warren (08/06/82)
#N:uicsovax:2200003:000:3269 uicsovax!warren Jun 23 11:14:00 1982 The following 60 lines of common block from the CORE graphics standard does not compile under f77 correctly, it does compile elsewhere correctly. I had earlier made the statement that I thought it was the way f77 was parsing common blocks, perhaps I was incorrect, here is the offending block of code: (try f77 -c thisfile.f) SUBROUTINE SLSTYL(NEWLS) C COMMON/ATR/LWIDT,LWMAX,LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX, 1 CHSIZ,CHSPC,CHPREC,CHPLN,PIKID,PIKMAX,CHPATH,CHJUST, 2 MRKR,MRKMAX,CHARUP,CURPOS,BGDNDX,BGDCOL,BGDINT, 3 LINNDX,LINCOL,LININT,FILNDX,FILCOL,FILINT,TEXNDX, 4 TEXCOL,TEXINT,NDXMAX,PINTR,PEDGE,COLMOD INTEGER*2 LSTYL,LSMAX,PEN,PENMAX,FONT,FONMAX,CHPREC,PIKID, 1 PIKMAX,CHPATH,CHJUST(2),MRKR,MRKMAX,BGDNDX,LINNDX, 2 FILNDX,TEXNDX,NDXMAX,PINTR,PEDGE,COLMOD REAL LWIDT,LWMAX,CHSIZ(2),CHSPC,CHPLN(3),CHARUP(3),CURPOS(4), 1 BGDCOL(3),BGDINT,LINCOL(3),LININT,FILCOL(3),FILINT, 2 TEXCOL(3),TEXINT COMMON /CON/ SINIT,BOUPDT,OUTLEV,DIMENS,HIDSRF,DISPMD, 1 NWFRMR, IMMED LOGICAL SINIT, BOUPDT, NWFRMR(5), IMMED INTEGER*2 OUTLEV,DIMENS,HIDSRF,DISPMD COMMON /SEG/ VISIB,DETECT,HILITE,IXFORM,SEGTYP,OPSEG, 1 OPSEGX,OPTSGX,ANGLES LOGICAL VISIB, DETECT, HILITE, OPSEGX, OPTSGX REAL IXFORM(4,4),ANGLES(3) INTEGER*2 SEGTYP, OPSEG COMMON/OPC/PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE, 1 IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV, 2 PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS, 3 INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY, 4 BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX, 5 LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP, 6 STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG, 7 POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL, 8 RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT INTEGER*2 PMARK3,PMARK2,PLIN3,PLIN2,POLY3,POLY2,TEXT,MOVE, 1 IMTRAN,HGHLTG,VSIBLE,DTECT,NWFRM,DELETS,DELETA,IMMEDV, 2 PICCUR,BGNBAT,ENDBAT,CRSEG,CTSEG,CLOSRS,CLOSTS,RENAMS, 3 INITDD,TERMDD,INTIZE,TRM,SNDC,INQDVC,COLR,BGCOLR,TENSTY, 4 BGINTY,SNDX,BGINDX,COLNDX,INTNDX,IQCNDX,IQINDX, 5 LNSTYL,ILNSTL,LNWITH,PENS,IDENSE,CHFONT,CHARSZ,CHARSP, 6 STRROT,CHARPH,CHARJT,CHAREX,MRKSYM,PICK,ALLATR,POLEDG, 7 POLINT,PIXCOL,PIXINT,PIXNDX,WRSCOL,WRSINT,WRSNDX,RRSCOL, 8 RRSINT,RRSNDX,ESCAP,IESCAP,AMODE,OUTUNT C COMMON /PAR/ PARRAY,MAXARY INTEGER*4 PARRAY(5000),MAXARY C---------------------------------------------------------------- INTEGER*2 NEWLS,NAME(3) DATA NAME/'SL','ST','YL'/ C------------------------------------------------------------------- C------------------------------------------------------------------ C CHECK SINIT TO VERIFY THAT THE SYSTEM HAS BEEN INITIALIZED C------------------------------------------------------------------ C this block of code from the GWCORE graphics standard C the above common block does not compile with f77 -c ff.f C i have extracted this part and tried it by itself and the C same error messages of common block alignment are output. C stop end
hamilton (08/06/82)
#R:uicsovax:2200003:uicsovax:2200004:000:543 uicsovax!hamilton Jun 23 22:43:00 1982 the compiler error messages will go away if you redefine the INTEGERs in the COMMON block from INTEGER*2 to INTEGER*4, or re-arrange the order of the members of the COMMON block so that each REAL follows an even number of INTEGER*2s (either by actually re-arranging the members, or inserting dummy INTEGER*2s for alignment padding). f77 is acting rather peculiar here? i would expect it to provide any alignment padding necessary (as C does for structs) with at most a warning. wayne hamilton (decvax!pur-ee!uiucdcs!uicsovax!hamilton)
lvan (08/06/82)
#R:uicsovax:2200003:uicsovax:2200005:000:38 uicsovax!lvan Jun 27 15:21:00 1982 That fixed the problem, thanks wayne.