/[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.17 by jmc, Sun Nov 23 04:19:11 2003 UTC revision 1.18 by edhill, Wed Sep 15 21:23:32 2004 UTC
# Line 6  C $Name$ Line 6  C $Name$
6    
7  CBOP  CBOP
8  C     !ROUTINE: INI_CORI  C     !ROUTINE: INI_CORI
9    
10  C     !INTERFACE:  C     !INTERFACE:
11        SUBROUTINE INI_CORI( myThid )        SUBROUTINE INI_CORI( myThid )
12  C     !DESCRIPTION: \bv  C     !DESCRIPTION:
13  C     *==========================================================*  C     Initialise coriolis term.                              
 C     | SUBROUTINE INI_CORI                                        
 C     | o Initialise coriolis term.                                
 C     *==========================================================*  
 C     \ev  
14    
15  C     !USES:  C     !USES:
16        IMPLICIT NONE        IMPLICIT NONE
 C     == Global variables ==  
17  #include "SIZE.h"  #include "SIZE.h"
18  #include "EEPARAMS.h"  #include "EEPARAMS.h"
19  #include "PARAMS.h"  #include "PARAMS.h"
20  #include "GRID.h"  #include "GRID.h"
21  #include "DYNVARS.h"  #include "DYNVARS.h"
22    #ifdef ALLOW_MONITOR
23    #include "MONITOR.h"
24    #endif
25    #ifdef ALLOW_MNC
26    #include "MNC_PARAMS.h"
27    #endif
28    
29  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
 C     == Routine arguments ==  
 C     myThid -  Number of this instance of INI_CORI  
30        INTEGER myThid        INTEGER myThid
31    CEOP
32    
33  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
 C     == Local variables ==  
34  C     bi,bj  - Loop counters  C     bi,bj  - Loop counters
35  C     I,J,K  C     I,J,K
36  C     facGrid - Factor for grid to meter conversion  C     facGrid - Factor for grid to meter conversion
37        INTEGER bi, bj        INTEGER bi, bj
38        INTEGER  I,  J, K        INTEGER  I,  J, K
39        _RL facGrid        _RL facGrid
 CEOP  
40    
41  C--   Initialise coriolis parameter  C     Initialise coriolis parameter
42        IF     ( useConstantF ) THEN        IF     ( useConstantF ) THEN
43  C      o 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              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
50              fCoriG(i,j,bi,bj)=f0                    fCoriG(i,j,bi,bj)=f0
51              fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
52             ENDDO                  ENDDO
53                  ENDDO
54                ENDDO
55            ENDDO            ENDDO
          ENDDO  
56          ENDDO          ENDDO
        ENDDO  
57        ELSEIF ( useBetaPlaneF ) THEN        ELSEIF ( useBetaPlaneF ) THEN
58  C      o Beta plane case  C       Beta plane case
59         facGrid = 1. _d 0          facGrid = 1. _d 0
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              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
67              fCoriG(i,j,bi,bj)=f0+beta*yG(i,j,bi,bj)*facGrid                    fCoriG(i,j,bi,bj)=f0+beta*yG(i,j,bi,bj)*facGrid
68              fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
69             ENDDO                  ENDDO
70                  ENDDO
71                ENDDO
72            ENDDO            ENDDO
          ENDDO  
73          ENDDO          ENDDO
        ENDDO  
74        ELSEIF ( useSphereF ) THEN        ELSEIF ( useSphereF ) THEN
75  C      o Spherical case  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              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)=
83       &       2. _d 0*omega*sin(_yC(i,j,bi,bj)*deg2rad)       &                 2. _d 0*omega*sin(_yC(i,j,bi,bj)*deg2rad)
84              fCoriG(i,j,bi,bj)=                    fCoriG(i,j,bi,bj)=
85       &       2. _d 0*omega*sin(yG(i,j,bi,bj)*deg2rad)       &                 2. _d 0*omega*sin(yG(i,j,bi,bj)*deg2rad)
86              fCoriCos(i,j,bi,bj)=                    fCoriCos(i,j,bi,bj)=
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
90                ENDDO
91            ENDDO            ENDDO
          ENDDO  
92          ENDDO          ENDDO
        ENDDO  
93        ELSE        ELSE
94  C      o Special custom form  C       Special custom form
95         DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
96          DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
97           DO K=1,Nr              DO K=1,Nr
98            DO J=1-Oly,sNy+Oly                DO J=1-Oly,sNy+Oly
99             DO I=1-Olx,sNx+Olx                  DO I=1-Olx,sNx+Olx
100              fCori(i,j,bi,bj)=0.                    fCori(i,j,bi,bj)=0.
101              fCoriG(i,j,bi,bj)=0.                    fCoriG(i,j,bi,bj)=0.
102              fCoriCos(i,j,bi,bj)=0.                    fCoriCos(i,j,bi,bj)=0.
103             ENDDO                  ENDDO
104                  ENDDO
105                ENDDO
106            ENDDO            ENDDO
          ENDDO  
107          ENDDO          ENDDO
        ENDDO  
108        ENDIF        ENDIF
109  C  C    
110  c     _EXCH_XY_R4(fCori,myThid)  C     _EXCH_XY_R4(fCori,myThid)
111  c     CALL EXCH_Z_XY_RS(fCoriG,myThid)  C     CALL EXCH_Z_XY_RS(fCoriG,myThid)
112  c     _EXCH_XY_R4(fCoriCos,myThid)  C     _EXCH_XY_R4(fCoriCos,myThid)
113    
114  #ifdef ALLOW_MONITOR  #ifdef ALLOW_MONITOR
115          mon_write_stdout = .FALSE.
116          mon_write_mnc    = .FALSE.
117          IF (monitor_stdio) THEN
118            mon_write_stdout = .TRUE.
119          ENDIF
120          
121    #ifdef ALLOW_MNC
122          IF (useMNC .AND. monitor_mnc) THEN
123            DO i = 1,MAX_LEN_MBUF
124              mon_fname(i:i) = ' '
125            ENDDO
126            mon_fname(1:12) = 'monitor_grid'
127            CALL MNC_CW_SET_UDIM(mon_fname, 1, myThid)
128            mon_write_mnc = .TRUE.
129          ENDIF
130    #endif /*  ALLOW_MNC  */
131          
132        CALL MON_PRINTSTATS_RS(1,fCori,'fCori',myThid)        CALL MON_PRINTSTATS_RS(1,fCori,'fCori',myThid)
133        CALL MON_PRINTSTATS_RS(1,fCoriG,'fCoriG',myThid)        CALL MON_PRINTSTATS_RS(1,fCoriG,'fCoriG',myThid)
134        CALL MON_PRINTSTATS_RS(1,fCoriCos,'fCoriCos',myThid)        CALL MON_PRINTSTATS_RS(1,fCoriCos,'fCoriCos',myThid)
135    
136          mon_write_stdout = .FALSE.
137          mon_write_mnc    = .FALSE.
138  #endif  #endif
139    
140        RETURN        RETURN

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22