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

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

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


Revision 1.40 - (show annotations) (download)
Tue Dec 13 19:47:39 2005 UTC (18 years, 5 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint57z_post
Changes since 1.39: +33 -3 lines
Adding unfinished 3-dim. relaxation code.

1 C $Header: /u/gcmpack/MITgcm/model/src/ini_forcing.F,v 1.39 2005/11/07 18:26:02 cnh Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: INI_FORCING
9 C !INTERFACE:
10 SUBROUTINE INI_FORCING( myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE INI_FORCING
15 C | o Set model initial forcing fields.
16 C *==========================================================*
17 C \ev
18
19 C !USES:
20 IMPLICIT NONE
21 C === Global variables ===
22 #include "SIZE.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "GRID.h"
26 #include "FFIELDS.h"
27
28 C !INPUT/OUTPUT PARAMETERS:
29 C == Routine arguments ==
30 C myThid - Number of this instance of INI_FORCING
31 INTEGER myThid
32
33 C !LOCAL VARIABLES:
34 C == Local variables ==
35 C bi,bj - Loop counters
36 C I,J
37 INTEGER bi, bj
38 INTEGER I, J, K
39 CEOP
40
41 _BARRIER
42
43 DO bj = myByLo(myThid), myByHi(myThid)
44 DO bi = myBxLo(myThid), myBxHi(myThid)
45 DO j=1-OLy,sNy+OLy
46 DO i=1-OLx,sNx+OLx
47 fu (i,j,bi,bj) = 0. _d 0
48 fv (i,j,bi,bj) = 0. _d 0
49 Qnet (i,j,bi,bj) = 0. _d 0
50 EmPmR (i,j,bi,bj) = 0. _d 0
51 saltFlux (i,j,bi,bj) = 0. _d 0
52 SST (i,j,bi,bj) = 0. _d 0
53 SSS (i,j,bi,bj) = 0. _d 0
54 Qsw (i,j,bi,bj) = 0. _d 0
55 #ifdef ATMOSPHERIC_LOADING
56 pload (i,j,bi,bj) = 0. _d 0
57 sIceLoad (i,j,bi,bj) = 0. _d 0
58 #endif
59 surfaceForcingU(i,j,bi,bj) = 0. _d 0
60 surfaceForcingV(i,j,bi,bj) = 0. _d 0
61 surfaceForcingT(i,j,bi,bj) = 0. _d 0
62 surfaceForcingS(i,j,bi,bj) = 0. _d 0
63 surfaceForcingTice(i,j,bi,bj) = 0. _d 0
64 #ifndef ALLOW_EXF
65 taux0 (i,j,bi,bj) = 0. _d 0
66 taux1 (i,j,bi,bj) = 0. _d 0
67 tauy0 (i,j,bi,bj) = 0. _d 0
68 tauy1 (i,j,bi,bj) = 0. _d 0
69 Qnet0 (i,j,bi,bj) = 0. _d 0
70 Qnet1 (i,j,bi,bj) = 0. _d 0
71 EmPmR0 (i,j,bi,bj) = 0. _d 0
72 EmPmR1 (i,j,bi,bj) = 0. _d 0
73 saltFlux0 (i,j,bi,bj) = 0. _d 0
74 saltFlux1 (i,j,bi,bj) = 0. _d 0
75 SST0 (i,j,bi,bj) = 0. _d 0
76 SST1 (i,j,bi,bj) = 0. _d 0
77 SSS0 (i,j,bi,bj) = 0. _d 0
78 SSS1 (i,j,bi,bj) = 0. _d 0
79 #ifdef SHORTWAVE_HEATING
80 Qsw0 (i,j,bi,bj) = 0. _d 0
81 Qsw1 (i,j,bi,bj) = 0. _d 0
82 #endif
83 #ifdef ATMOSPHERIC_LOADING
84 pload0 (i,j,bi,bj) = 0. _d 0
85 pload1 (i,j,bi,bj) = 0. _d 0
86 #endif
87 #endif
88 ENDDO
89 ENDDO
90 DO k=1,Nr
91 DO j=1-OLy,sNy+OLy
92 DO i=1-OLx,sNx+OLx
93 #ifdef ALLOW_CLIMTEMP_RELAXATION
94 thetaStar (i,j,k,bi,bj) = 0. _d 0
95 #endif
96 #ifdef ALLOW_CLIMSALT_RELAXATION
97 saltStar (i,j,k,bi,bj) = 0. _d 0
98 #endif
99 ENDDO
100 ENDDO
101 ENDDO
102 ENDDO
103 ENDDO
104 C
105 DO bj = myByLo(myThid), myByHi(myThid)
106 DO bi = myBxLo(myThid), myBxHi(myThid)
107 DO J=1-Oly,sNy+Oly
108 DO I=1-Olx,sNx+Olx
109 IF ( doThetaClimRelax .AND.
110 & abs(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
111 lambdaThetaClimRelax(I,J,bi,bj) = 1./tauThetaClimRelax
112 ELSE
113 lambdaThetaClimRelax(I,J,bi,bj) = 0.D0
114 ENDIF
115 IF ( doSaltClimRelax .AND.
116 & abs(yC(i,j,bi,bj)).LE.latBandClimRelax ) THEN
117 lambdaSaltClimRelax(I,J,bi,bj) = 1./tauSaltClimRelax
118 ELSE
119 lambdaSaltClimRelax(I,J,bi,bj) = 0.D0
120 ENDIF
121 ENDDO
122 ENDDO
123 ENDDO
124 ENDDO
125 C
126 _BARRIER
127 _BEGIN_MASTER(myThid)
128 IF ( zonalWindFile .NE. ' ' ) THEN
129 CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
130 ENDIF
131 IF ( meridWindFile .NE. ' ' ) THEN
132 CALL READ_FLD_XY_RS( meridWindFile, ' ', fv, 0, myThid )
133 ENDIF
134 IF ( surfQFile .NE. ' ' ) THEN
135 CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )
136 ELSEIF ( surfQnetFile .NE. ' ' ) THEN
137 CALL READ_FLD_XY_RS( surfQnetFile, ' ', Qnet, 0, myThid )
138 ENDIF
139 IF ( EmPmRfile .NE. ' ' ) THEN
140 CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )
141 ENDIF
142 IF ( saltFluxFile .NE. ' ' ) THEN
143 CALL READ_FLD_XY_RS( saltFluxFile, ' ', saltFlux, 0, myThid )
144 ENDIF
145 IF ( thetaClimFile .NE. ' ' ) THEN
146 CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )
147 ENDIF
148 IF ( saltClimFile .NE. ' ' ) THEN
149 CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
150 ENDIF
151 IF ( lambdaThetaFile .NE. ' ' ) THEN
152 CALL READ_FLD_XY_RS( lambdaThetaFile, ' ',
153 & lambdaThetaClimRelax, 0, myThid )
154 ENDIF
155 IF ( lambdaSaltFile .NE. ' ' ) THEN
156 CALL READ_FLD_XY_RS( lambdaSaltFile, ' ',
157 & lambdaSaltClimRelax, 0, myThid )
158 ENDIF
159 #ifdef SHORTWAVE_HEATING
160 IF ( surfQswFile .NE. ' ' ) THEN
161 CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
162 IF ( surfQFile .NE. ' ' ) THEN
163 C- Qnet is now (after c54) the net Heat Flux (including SW)
164 DO bj = 1,nSy
165 DO bi = 1,nSx
166 DO j=1-OLy,sNy+OLy
167 DO i=1-OLx,sNx+OLx
168 Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) + Qsw(i,j,bi,bj)
169 ENDDO
170 ENDDO
171 ENDDO
172 ENDDO
173 ENDIF
174 ENDIF
175 #endif
176 #ifdef ATMOSPHERIC_LOADING
177 IF ( pLoadFile .NE. ' ' ) THEN
178 CALL READ_FLD_XY_RS( pLoadFile, ' ', pload, 0, myThid )
179 ENDIF
180 #endif
181 #ifdef ALLOW_CLIMTEMP_RELAXATION
182 IF ( hydrogThetaFile .NE. ' ' ) THEN
183 CALL READ_FLD_XYZ_RS(
184 & hydrogThetaFile, ' ', thetaStar, 0, myThid )
185 ENDIF
186 #endif
187 #ifdef ALLOW_CLIMSALT_RELAXATION
188 IF ( hydrogSaltFile .NE. ' ' ) THEN
189 CALL READ_FLD_XYZ_RS(
190 & hydrogSaltFile, ' ', saltStar, 0, myThid )
191 ENDIF
192 #endif
193
194 _END_MASTER(myThid)
195 C
196 _EXCH_XY_R4(fu , myThid )
197 _EXCH_XY_R4(fv , myThid )
198 _EXCH_XY_R4(Qnet , myThid )
199 _EXCH_XY_R4(EmPmR, myThid )
200 _EXCH_XY_R4( saltFlux, myThid )
201 _EXCH_XY_R4(SST , myThid )
202 _EXCH_XY_R4(SSS , myThid )
203 _EXCH_XY_R4(lambdaThetaClimRelax , myThid )
204 _EXCH_XY_R4(lambdaSaltClimRelax , myThid )
205 #ifdef SHORTWAVE_HEATING
206 _EXCH_XY_R4(Qsw , myThid )
207 #endif
208 #ifdef ATMOSPHERIC_LOADING
209 _EXCH_XY_R4(pload , myThid )
210 C CALL PLOT_FIELD_XYRS( pload, 'S/R INI_FORCING pload',1,myThid)
211 #endif
212 #ifdef ALLOW_CLIMTEMP_RELAXATION
213 _EXCH_XYZ_R4(thetaStar , myThid )
214 #endif
215 #ifdef ALLOW_CLIMSALT_RELAXATION
216 _EXCH_XYZ_R4(saltStar , myThid )
217 #endif
218 C CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)
219 C CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)
220
221 RETURN
222 END

  ViewVC Help
Powered by ViewVC 1.1.22