! PROGRAM P81 ! ! Shows use of passing data via COMMON ! IMPLICIT NONE REAL :: X,Y(10),START,STEP INTEGER :: K ! INTERFACE SUBROUTINE CALC(K,X,Y) IMPLICIT NONE REAL, INTENT(IN OUT) :: X,Y(:) INTEGER, INTENT(IN OUT) :: K END SUBROUTINE CALC END INTERFACE ! PRINT *, 'This is Program >> P81 - SUBROUTINE' ! 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,10 CALL CALC(K,X,Y) 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 PROGRAM P81 ! SUBROUTINE CALC(K,X,Y) IMPLICIT NONE REAL, INTENT(IN OUT) :: X,Y(:) INTEGER, INTENT(IN OUT) :: K REAL :: SD,PI,U,C,GAUSS U=0.0 SD=1.0 PI=3.14159 C=1.0/(SD*SQRT(2.0*PI)) GAUSS=C*EXP(-(X-U)**2/(2.0*SD**2)) Y(K)=GAUSS RETURN END SUBROUTINE CALC !