> dimension x(3) > call glu(3,x) > print *,x(1) > call sglu(x) > print *,x(2) > end > subroutine glu(n,a) > dimension a(n) > a(1)=1. > return > entry sglu(a) > a(2)=2. > end MULTIVAC> fortran test dimension a(n) ..................^ %FORT-W-DAUNDEFEP, Dummy argument N is undefined at entry point SGLU at line number 8 in file DISK$SCRATCH:[HELBIG]TEST.FOR;1 dimension a(n) ..................^ %FORT-W-UNINIT, Variable N is used before its value has been defined at line number 8 in file DISK$SCRATCH:[HELBIG]TEST.FOR;1 MULTIVAC> link test %LINK-W-WRNERS, compilation warnings in module TEST$MAIN file DISK$SCRATCH:[HELBIG]TEST.OBJ;1 MULTIVAC> r test 1.000000 2.000000 MULTIVAC> f90 test entry sglu(a) ............^ %F90-W-WARNING, This entry point does not define all dummy variables used in bou nds or length expressions of other dummy objects in its dummy argument list. [ SGLU] at line number 11 in file DISK$SCRATCH:[HELBIG]TEST.F90;1 entry sglu(a) .................^ %F90-E-ERROR, All bounds or length dummy variables for this object must be defin ed in the same dummy argument list as the object. [A] at line number 11 in file DISK$SCRATCH:[HELBIG]TEST.F90;1 These are the Digital FORTRAN and F90 compilers on VMS with their default options set. I would conclude that o your code is in any case bad style o both Digital compilers complain loud enough about the problem o the results from the FORTRAN(77) compiler might be what you expect, but one can't depend on this behaviour o I'm not sure if the fact that F90 gives an error instead of just warnings is related to Fortran 90 requiring pickier (I would say better) specifications. XLF and XLF90 (with all four possible -qlanglvl settings) don't complain at all about the code (except that f77 complains about lower case, as it should (I normally have this option set with DEC Fortran; note that it is also an OPTION with xlf, not the default) and produce the `expected' output. Digital UNIX: as expected, very similar: fire.palmod.uni-bremen.de> f90 testy.f90 f90: Warning: testy.f90, line 11: This entry point does not define all dummy var iables used in bounds or length expressions of other dummy objects in its dummy argument list. [SGLU] entry sglu(a) ------------^ f90: Error: testy.f90, line 11: All bounds or length dummy variables for this ob ject must be defined in the same dummy argument list as the object. [A] entry sglu(a) -----------------^ fire.palmod.uni-bremen.de> SUN: `Complains', not sure about what, and produces `expected' output: ceres_72_% cat test.f dimension x(3) call glu(3,x) print *,x(1) call sglu(x) print *,x(2) end subroutine glu(n,a) dimension a(n) a(1)=1. return entry sglu(a) a(2)=2. end ceres_73_% cp test.f test.f90 ceres_74_% f77 test.f test.f: MAIN: glu: entry sglu: ceres_75_% ./a.out 1.00000 2.00000 ceres_76_% f90 test.f90 ceres_77_% ./a.out 1. 2. ceres_78_% -- Phillip Helbig Email .......... [log in to unmask] Nuffield Radio Astronomy Laboratories Tel. ..... +44 1477 571 321 (ext. 297) Jodrell Bank Fax ................. +44 1477 571 618 Macclesfield Telex ................. 36149 JODREL G UK-Cheshire SK11 9DL Web .... http://www.jb.man.ac.uk/~pjh/ My opinions are not necessarily those of NRAL or the University of Manchester. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%