/[MITgcm]/MITgcm/model/src/port_rand.F
ViewVC logotype

Diff of /MITgcm/model/src/port_rand.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.3 by cnh, Wed Sep 26 18:09:16 2001 UTC revision 1.4 by molod, Mon Jul 19 15:13:07 2004 UTC
# Line 9  C Portable random number generator Line 9  C Portable random number generator
9  CBOP  CBOP
10  C     !ROUTINE: port_rand  C     !ROUTINE: port_rand
11  C     !INTERFACE:  C     !INTERFACE:
12        real*8 function port_rand()        real*8 function port_rand(seed)
13    
14  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
15  C     Portable random number generator  C     Portable random number generator
# Line 20  C     !LOCAL VARIABLES: Line 20  C     !LOCAL VARIABLES:
20        integer nff        integer nff
21        parameter(nff=55)        parameter(nff=55)
22  #ifdef _USE_INTEGERS  #ifdef _USE_INTEGERS
23        integer mbig,mseed,mZ        integer mbig,mseed,mZ,seed
24  #else  #else
25        real*8 mbig,mseed,mz        real*8 mbig,mseed,mz,seed
26  #endif  #endif
27        real*8 fac        real*8 fac
28  #ifdef _USE_INTEGERS  #ifdef _USE_INTEGERS
29        parameter (mbig=1000000000,mseed=161803398,mz=0,fac=1./mbig)        parameter (mbig=1000000000,mz=0,fac=1./mbig)
30          data mseed/161803398/
31  #else  #else
32        parameter (mbig=4000000.,mseed=1618033.,mz=0.,fac=1./mbig)        parameter (mbig=4000000.,mz=0.,fac=1./mbig)
33          data mseed/1618033./
34  #endif  #endif
35        integer i,ii,inext,inextp,k,idum        integer i,ii,inext,inextp,k,idum
36        parameter(idum=-2)        parameter(idum=-2)
# Line 42  C     !LOCAL VARIABLES: Line 44  C     !LOCAL VARIABLES:
44        data firstCall /.true./        data firstCall /.true./
45  CEOP  CEOP
46  ! ------------------------------------------------------------------------------  ! ------------------------------------------------------------------------------
47          mseed = seed
48        if(firstCall)then        if(firstCall)then
49          firstCall=.false.          firstCall=.false.
50          mj=mseed-iabs(idum)          mj=mseed-iabs(idum)
# Line 80  CEOP Line 83  CEOP
83        implicit none        implicit none
84        integer n,i        integer n,i
85        real arr(n)        real arr(n)
86        real*8 port_rand        real*8 port_rand,seed
87          seed=1618033.0d0
88  ! ------------------------------------------------------------------------------  ! ------------------------------------------------------------------------------
89        do i=1,n        do i=1,n
90         arr(i)=port_rand()         arr(i)=port_rand(seed)
91        enddo        enddo
92    
93        return        return

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22