!
! =====> Program - P81.F90
!
! Shows use of passing data via COMMON
!
REAL Y(10)
COMMON K,X,Y
!
PRINT *, 'This is Program >> P81 - Common example'
!
START=0.0
STEP=0.1
X=START
!
PRINT 16,START,STEP
16 FORMAT(' INITIAL VALUE =',F5.2/ &
' INCREMENT =',F5.2/)
!
L1: DO K=1,11
CALL CALC
PRINT 17,X,Y(K) ! Y values are stored and
X=X+STEP
END DO L1 ! could be used again
17 FORMAT(2F10.4)
STOP
END
!
SUBROUTINE CALC ! No parameters - data passed in COMMON
COMMON I,X,Z(10) ! correspond to K, X and Y in main
COMMON /PARMS/ PI,U,SD
C=1.0/(SD*SQRT(2.0*PI))
GAUSS=C*EXP(-(X-U)**2/(2.0*SD**2))
Z(I)=GAUSS
RETURN
END
!
BLOCK DATA
COMMON /PARMS/ PIE,U,S
DATA PIE,U,S/3.14159,0.0,1.0/
END
DATA:
0.0 0.1
OUTPUT:
Program entered
This is Program >> P81 - Common example
INITIAL VALUE = 0.00
INCREMENT = 0.10
0.0000 0.3989
0.1000 0.3969
0.2000 0.3910
0.3000 0.3813
0.4000 0.3682
0.5000 0.3520
0.6000 0.3332
0.7000 0.3122
0.8000 0.2896
0.9000 0.2660
1.0000 0.2419
Fortran-90 STOP
Page builder: Charles Boivin
Last modified: 11/07/95