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

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

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

revision 1.20 by edhill, Wed Oct 13 04:37:37 2004 UTC revision 1.21 by jmc, Wed Jan 26 00:45:53 2005 UTC
# Line 43  C     Initialise coriolis parameter Line 43  C     Initialise coriolis parameter
43  C       Constant F case  C       Constant F case
44          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
45            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
46              DO K=1,Nr  c           DO K=1,Nr
47                DO J=1-Oly,sNy+Oly                DO J=1-Oly,sNy+Oly
48                  DO I=1-Olx,sNx+Olx                  DO I=1-Olx,sNx+Olx
49                    fCori(i,j,bi,bj)=f0                    fCori(i,j,bi,bj)=f0
# Line 51  C       Constant F case Line 51  C       Constant F case
51                    fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
52                  ENDDO                  ENDDO
53                ENDDO                ENDDO
54              ENDDO  c           ENDDO
55            ENDDO            ENDDO
56          ENDDO          ENDDO
57        ELSEIF ( useBetaPlaneF ) THEN        ELSEIF ( useBetaPlaneF ) THEN
# Line 60  C       Beta plane case Line 60  C       Beta plane case
60          IF ( usingSphericalPolarGrid ) facGrid = deg2rad*rSphere          IF ( usingSphericalPolarGrid ) facGrid = deg2rad*rSphere
61          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
62            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
63              DO K=1,Nr  c           DO K=1,Nr
64                DO J=1-Oly,sNy+Oly                DO J=1-Oly,sNy+Oly
65                  DO I=1-Olx,sNx+Olx                  DO I=1-Olx,sNx+Olx
66                    fCori(i,j,bi,bj)=f0+beta*_yC(i,j,bi,bj)*facGrid                    fCori(i,j,bi,bj)=f0+beta*_yC(i,j,bi,bj)*facGrid
# Line 68  C       Beta plane case Line 68  C       Beta plane case
68                    fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
69                  ENDDO                  ENDDO
70                ENDDO                ENDDO
71              ENDDO  c           ENDDO
72            ENDDO            ENDDO
73          ENDDO          ENDDO
74        ELSEIF ( useSphereF ) THEN        ELSEIF ( useSphereF ) THEN
# Line 76  C       Spherical case Line 76  C       Spherical case
76  C       Note in this case we assume yC is in degrees.  C       Note in this case we assume yC is in degrees.
77          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
78            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
79              DO K=1,Nr  c           DO K=1,Nr
80                DO J=1-Oly,sNy+Oly                DO J=1-Oly,sNy+Oly
81                  DO I=1-Olx,sNx+Olx                  DO I=1-Olx,sNx+Olx
82                    fCori(i,j,bi,bj)=                    fCori(i,j,bi,bj)=
# Line 87  C       Note in this case we assume yC i Line 87  C       Note in this case we assume yC i
87       &                 2. _d 0*omega*cos(_yC(i,j,bi,bj)*deg2rad)       &                 2. _d 0*omega*cos(_yC(i,j,bi,bj)*deg2rad)
88                  ENDDO                  ENDDO
89                ENDDO                ENDDO
90              ENDDO  c           ENDDO
91            ENDDO            ENDDO
92          ENDDO          ENDDO
93    c       CALL WRITE_FLD_XY_RL('fCoriC',' ',fCori ,  0,myThid)
94    c       CALL WRITE_FLD_XY_RL('fCoriG',' ',fCoriG , 0,myThid)
95    c       CALL WRITE_FLD_XY_RL('fCorCs',' ',fCoriCos,0,myThid)
96        ELSE        ELSE
97  C       Special custom form  C       Special custom form
98          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
99            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
100              DO K=1,Nr  c           DO K=1,Nr
101                DO J=1-Oly,sNy+Oly                DO J=1-Oly,sNy+Oly
102                  DO I=1-Olx,sNx+Olx                  DO I=1-Olx,sNx+Olx
103                    fCori(i,j,bi,bj)=0.                    fCori(i,j,bi,bj)=0.
# Line 102  C       Special custom form Line 105  C       Special custom form
105                    fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
106                  ENDDO                  ENDDO
107                ENDDO                ENDDO
108              ENDDO  c           ENDDO
109            ENDDO            ENDDO
110          ENDDO          ENDDO
111            CALL READ_REC_XY_RS( 'fCoriC.bin', fCori,   1, 0, myThid )
112            CALL READ_REC_XY_RS( 'fCoriG.bin', fCoriG,  1, 0, myThid )
113            CALL READ_REC_XY_RS( 'fCorCs.bin', fCoriCos,1, 0, myThid )
114            IF ( useCubedSphereExchange ) THEN
115    C-       deal with the 2 missing corners (for fCoriG):
116             DO bj = myByLo(myThid), myByHi(myThid)
117              DO bi = myBxLo(myThid), myBxHi(myThid)
118    C-  Notes: this will only works with 6 tiles (1 per face) and
119    C    with 2 polar faces + 4 equatorials:
120               IF (bi.LE.3 .OR. bi.GE.5) THEN
121                 fCoriG(sNx+1,1,bi,bj) = fCoriG(1,1,bi,bj)
122               ELSE
123                 fCoriG(sNx+1,1,bi,bj) = -fCoriG(1,1,bi,bj)
124               ENDIF
125               IF (bi.GE.3) THEN
126                 fCoriG(1,sNy+1,bi,bj) = fCoriG(1,1,bi,bj)
127                 fCoriG(sNx+1,sNy+1,bi,bj) = fCoriG(sNx+1,1,bi,bj)
128               ELSE
129                 fCoriG(1,sNy+1,bi,bj) = -fCoriG(1,1,bi,bj)
130                 fCoriG(sNx+1,sNy+1,bi,bj) = -fCoriG(sNx+1,1,bi,bj)
131               ENDIF
132              ENDDO
133             ENDDO
134            ENDIF
135    
136            _EXCH_XY_R4(fCori,myThid)
137            CALL EXCH_Z_XY_RS(fCoriG,myThid)
138            _EXCH_XY_R4(fCoriCos,myThid)
139        ENDIF        ENDIF
 C      
 C     _EXCH_XY_R4(fCori,myThid)  
 C     CALL EXCH_Z_XY_RS(fCoriG,myThid)  
 C     _EXCH_XY_R4(fCoriCos,myThid)  
140    
141  #ifdef ALLOW_MONITOR  #ifdef ALLOW_MONITOR
142        mon_write_stdout = .FALSE.        mon_write_stdout = .FALSE.

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21

  ViewVC Help
Powered by ViewVC 1.1.22