mccalpin@masig1.ocean.fsu.edu (John D. McCalpin) (03/05/88)
(1) VMS Fortran is available under ULTRIX. For my numerically intensive codes, it compiles 4 times faster than f77, and the resulting code runs twice as fast (on an 11/780). (2) The Fortran-8x proposed standard is very different from DEC VMS Fortran. This is because (a) the VMS extensions are NOT an industry standard - they are a DEC standard ! ; and (b) many of the extensions in Fortran-8x are not standardizations of existing features, but are completely new implementations and/or syntaxes. If one can put aside one's religious biases, it is not hard to see that VMS is a powerful and reasonably robust operating system. My observations are that VMS is preferred by novice and occassional users and that UNIX is preferred by people who are doing software development full-time. I have no interest in getting stuck in a single-vendor environment. ------------------------------------------------------------------------- John D. McCalpin Control Data PACER Fellow mccalpin@masig1.ocean.fsu.edu (128.186.3.1) mcalpin@fsu.BITNET mccalpin@fsu.MFENET -------------------------------------------------------------------------
mg@cidam.rmit.oz (Mike A. Gigante) (03/07/88)
I'm very quick to criticize the quality of the standard f77, many of the fortran programs we have hanging around here cause most vanilla f77s to page themselves to death, take forever to compile and run (relatively) slowly. However there *ARE* good unix f77 compilers available; we use SVS (Silicon Valley Software) here and there are others (such as ABSOFT). I have previously posted some comparisons b/n SVS and f77 (a long time ago), suffice to say they are stunning. However, I should point out that we personally don't write much in fortran here and haven't for a long time... But now, to show those unix programmers what wonderful things are missing from f77 and friends, we have a VMS fortran programmers masterpiece. I expect that this will cause campuses all over the world to chuck out those Unix tapes, purge those disks, trade in all those suns/apollos/irises etc so as to buy vaxes to run VMS fortran on :-) ----------------------------- C------------------------------------------------------------------ C Contains only one subroutine ACCESS C------------------------------------------------------------------ SUBROUTINE ACCESS(I7) IMPLICIT INTEGER*4(A-Z) INCLUDE '($SMGDEF)' CHARACTER*18 CMPF,MNS CHARACTER*40 AVAL,K CHARACTER*12 ID,bns,AVIND CHARACTER*3 GOID,GO CHARACTER*10 bmpf CHARACTER*5 ART_QUAN,ART_LEVEL REAL*8 DECVAL,DECVAL1 INCLUDE 'COMMON.FOR' DIMENSION K(100,1) STRUCTURE/FILE_STRUC/ CHARACTER*12 ART_NO CHARACTER*12 ART_DESC INTEGER*4 ART_QUAN INTEGER*4 ART_LEVEL CHARACTER*8 DUMMY END STRUCTURE RECORD/FILE_STRUC/FILEREC STATUS = SMG$CREATE_PASTEBOARD(PI,,,,) STATUS = SMG$CREATE_VIRTUAL_DISPLAY(20,78,SED,SMG$M_BORDER,,) STATUS = SMG$CREATE_VIRTUAL_KEYBOARD(KEY) STATUS = SMG$PASTE_VIRTUAL_DISPLAY(SED,PI,2,2) OPEN(UNIT = 26, 1 FILE = 'SEARCH.DAT', 1 ORGANIZATION = 'INDEXED', 1 ACCESS = 'KEYED', 1 STATUS = 'UNKNOWN', 1 RECL = 40, 1 KEY = (1:12:CHARACTER), 1 RECORDTYPE = 'VARIABLE') 40 STATUS = SMG$PUT_CHARS(SED,'WHAT IS THE ARTICLE NUMBER OF THE PART 1 PLEASE?',4,10,,,,) STATUS = SMG$SET_CURSOR_ABS(SED,5,15) STATUS = SMG$READ_STRING(KEY,ID,'->>',12,,,,TEXT_SIZE,,SED) READ(UNIT=26,KEY= ID,KEYID = 0,IOSTAT=IER,ERR=22)FILEREC DECVAL = FLOAT(FILEREC.ART_QUAN) call onvrt(art_quan,decval,2) DECVAL1 = FLOAT(FILEREC.ART_LEVEL) call onvrt(art_LEVEL,decval1,2) STATUS = SMG$PUT_CHARS(SED,'ARTICLE NUMBER :',6,10,,,,) STATUS = SMG$PUT_CHARS(SED,FILEREC.ART_NO,6,30,,,,) STATUS = SMG$PUT_CHARS(SED,'DESCRIPTION :',8,10,,,,) STATUS = SMG$PUT_CHARS(SED,FILEREC.ART_DESC,8,30,,,,) STATUS = SMG$PUT_CHARS(SED,'QUANTITY PER PART :',10,10,,,,) STATUS = SMG$PUT_CHARS(SED,ART_QUAN,10,30,,,,) STATUS = SMG$PUT_CHARS(SED,'ASSEMBLY LEVEL :',12,10,,,,) STATUS = SMG$PUT_CHARS(SED,ART_LEVEL,12,30,,,,) 22 IF(IER.EQ.36)THEN STATUS = SMG$PUT_CHARS(SED,'ARTICLE NUMBER IS NOT ON FILE,SORRY !' 1,8,10,,,,) STATUS = SMG$PUT_CHARS(SED,'DO YOU WISH TO GO AGAIN (Y/N)' 1,9,10,,,,) STATUS = SMG$SET_CURSOR_ABS(SED,10,15) STATUS = SMG$READ_STRING(KEY,GOID,'->>',3,,,,TEXT_SIZE,,SED) STATUS = STR$UPCASE(GO,GOID) STATUS = SMG$ERASE_DISPLAY(SED) IF(GO.EQ.'Y')GO TO 40 GO TO 60 END IF 50 STATUS = SMG$PUT_CHARS(SED,'DO YOU WISH TO GO AGAIN (Y/N)' 1,14,10,,,,) STATUS = SMG$SET_CURSOR_ABS(SED,15,15) STATUS = SMG$READ_STRING(KEY,GOID,'->>',3,,,,TEXT_SIZE,,SED) STATUS = SMG$ERASE_DISPLAY(SED) STATUS = STR$UPCASE(GO,GOID) IF(GO.EQ.'Y')GO TO 40 60 STATUS = SMG$DELETE_PASTEBOARD(PI) STATUS = SMG$DELETE_VIRTUAL_DISPLAY(SED) STATUS = SMG$DELETE_VIRTUAL_KEYBOARD(KEY) 9999 CLOSE(UNIT= 26) RETURN END * * ------------------------------ I think I'll g and read some JCL tonight, it'll put me in the mood to appreciate more of this wonderful VMS fortran. (seriously, give an engineer enough rope and they'll hang themselves! This rather extreme example illustrates just how far from standard fortran you can go...)
mlight@hpiacla.HP.COM (Mike Light ) (03/12/88)
> But now, to show those unix programmers what wonderful things are missing from > f77 and friends, we have a VMS fortran programmers masterpiece. > C------------------------------------------------------------------ > C Contains only one subroutine ACCESS > C------------------------------------------------------------------ > SUBROUTINE ACCESS(I7) > IMPLICIT INTEGER*4(A-Z) > INCLUDE '($SMGDEF)' > CHARACTER*18 CMPF,MNS > CHARACTER*40 AVAL,K (ETC ETC ETC) My GOD - oh my aching eyes! Is this standard VMS FORTRAN TO KEEP THE CAPS KEY LOCKED?!?!? :-) Thank GOD there's "c". -- Mike Light. {world}\!hpda\!hpiacla\!mlight