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

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

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


Revision 1.19 - (show annotations) (download)
Sun Oct 10 06:08:47 2004 UTC (19 years, 8 months ago) by edhill
Branch: MAIN
Changes since 1.18: +1 -4 lines
 o move useMNC and related runtime switches to PARAMS.h

1 C $Header: /u/gcmpack/MITgcm/model/src/ini_cori.F,v 1.18 2004/09/15 21:23:32 edhill Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: INI_CORI
9
10 C !INTERFACE:
11 SUBROUTINE INI_CORI( myThid )
12 C !DESCRIPTION:
13 C Initialise coriolis term.
14
15 C !USES:
16 IMPLICIT NONE
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "GRID.h"
21 #include "DYNVARS.h"
22 #ifdef ALLOW_MONITOR
23 #include "MONITOR.h"
24 #endif
25
26 C !INPUT/OUTPUT PARAMETERS:
27 INTEGER myThid
28 CEOP
29
30 C !LOCAL VARIABLES:
31 C bi,bj - Loop counters
32 C I,J,K
33 C facGrid - Factor for grid to meter conversion
34 INTEGER bi, bj
35 INTEGER I, J, K
36 _RL facGrid
37
38 C Initialise coriolis parameter
39 IF ( useConstantF ) THEN
40 C Constant F case
41 DO bj = myByLo(myThid), myByHi(myThid)
42 DO bi = myBxLo(myThid), myBxHi(myThid)
43 DO K=1,Nr
44 DO J=1-Oly,sNy+Oly
45 DO I=1-Olx,sNx+Olx
46 fCori(i,j,bi,bj)=f0
47 fCoriG(i,j,bi,bj)=f0
48 fCoriCos(i,j,bi,bj)=0.
49 ENDDO
50 ENDDO
51 ENDDO
52 ENDDO
53 ENDDO
54 ELSEIF ( useBetaPlaneF ) THEN
55 C Beta plane case
56 facGrid = 1. _d 0
57 IF ( usingSphericalPolarGrid ) facGrid = deg2rad*rSphere
58 DO bj = myByLo(myThid), myByHi(myThid)
59 DO bi = myBxLo(myThid), myBxHi(myThid)
60 DO K=1,Nr
61 DO J=1-Oly,sNy+Oly
62 DO I=1-Olx,sNx+Olx
63 fCori(i,j,bi,bj)=f0+beta*_yC(i,j,bi,bj)*facGrid
64 fCoriG(i,j,bi,bj)=f0+beta*yG(i,j,bi,bj)*facGrid
65 fCoriCos(i,j,bi,bj)=0.
66 ENDDO
67 ENDDO
68 ENDDO
69 ENDDO
70 ENDDO
71 ELSEIF ( useSphereF ) THEN
72 C Spherical case
73 C Note in this case we assume yC is in degrees.
74 DO bj = myByLo(myThid), myByHi(myThid)
75 DO bi = myBxLo(myThid), myBxHi(myThid)
76 DO K=1,Nr
77 DO J=1-Oly,sNy+Oly
78 DO I=1-Olx,sNx+Olx
79 fCori(i,j,bi,bj)=
80 & 2. _d 0*omega*sin(_yC(i,j,bi,bj)*deg2rad)
81 fCoriG(i,j,bi,bj)=
82 & 2. _d 0*omega*sin(yG(i,j,bi,bj)*deg2rad)
83 fCoriCos(i,j,bi,bj)=
84 & 2. _d 0*omega*cos(_yC(i,j,bi,bj)*deg2rad)
85 ENDDO
86 ENDDO
87 ENDDO
88 ENDDO
89 ENDDO
90 ELSE
91 C Special custom form
92 DO bj = myByLo(myThid), myByHi(myThid)
93 DO bi = myBxLo(myThid), myBxHi(myThid)
94 DO K=1,Nr
95 DO J=1-Oly,sNy+Oly
96 DO I=1-Olx,sNx+Olx
97 fCori(i,j,bi,bj)=0.
98 fCoriG(i,j,bi,bj)=0.
99 fCoriCos(i,j,bi,bj)=0.
100 ENDDO
101 ENDDO
102 ENDDO
103 ENDDO
104 ENDDO
105 ENDIF
106 C
107 C _EXCH_XY_R4(fCori,myThid)
108 C CALL EXCH_Z_XY_RS(fCoriG,myThid)
109 C _EXCH_XY_R4(fCoriCos,myThid)
110
111 #ifdef ALLOW_MONITOR
112 mon_write_stdout = .FALSE.
113 mon_write_mnc = .FALSE.
114 IF (monitor_stdio) THEN
115 mon_write_stdout = .TRUE.
116 ENDIF
117
118 #ifdef ALLOW_MNC
119 IF (useMNC .AND. monitor_mnc) THEN
120 DO i = 1,MAX_LEN_MBUF
121 mon_fname(i:i) = ' '
122 ENDDO
123 mon_fname(1:12) = 'monitor_grid'
124 CALL MNC_CW_SET_UDIM(mon_fname, 1, myThid)
125 mon_write_mnc = .TRUE.
126 ENDIF
127 #endif /* ALLOW_MNC */
128
129 CALL MON_PRINTSTATS_RS(1,fCori,'fCori',myThid)
130 CALL MON_PRINTSTATS_RS(1,fCoriG,'fCoriG',myThid)
131 CALL MON_PRINTSTATS_RS(1,fCoriCos,'fCoriCos',myThid)
132
133 mon_write_stdout = .FALSE.
134 mon_write_mnc = .FALSE.
135 #endif
136
137 RETURN
138 END

  ViewVC Help
Powered by ViewVC 1.1.22