[comp.unix.wizards] Defend us from VMS!

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