1 |
C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_init_fixed.F,v 1.25 2012/08/28 19:17:46 gforget Exp $ |
2 |
C $Name: $ |
3 |
|
4 |
#include "EXF_OPTIONS.h" |
5 |
#ifdef ALLOW_ICEFRONT |
6 |
# include "ICEFRONT_OPTIONS.h" |
7 |
#endif |
8 |
|
9 |
CBOP |
10 |
C !ROUTINE: EXF_INIT_FIXED |
11 |
C !INTERFACE: |
12 |
SUBROUTINE EXF_INIT_FIXED( myThid ) |
13 |
|
14 |
C !DESCRIPTION: \bv |
15 |
C *==========================================================* |
16 |
C | SUBROUTINE EXF_INIT_FIXED |
17 |
C | o Routine to initialize EXF variables |
18 |
C | that are kept fixed during the run. |
19 |
C *==========================================================* |
20 |
C \ev |
21 |
C !USES: |
22 |
IMPLICIT NONE |
23 |
|
24 |
C === Global variables === |
25 |
#include "EEPARAMS.h" |
26 |
#include "SIZE.h" |
27 |
#include "PARAMS.h" |
28 |
#include "EXF_PARAM.h" |
29 |
#include "EXF_CONSTANTS.h" |
30 |
#ifdef ALLOW_ICEFRONT |
31 |
# include "ICEFRONT.h" |
32 |
#endif |
33 |
|
34 |
C !INPUT/OUTPUT PARAMETERS: |
35 |
C === Routine arguments === |
36 |
C myThid :: my Thread Id number |
37 |
INTEGER myThid |
38 |
CEOP |
39 |
|
40 |
C !LOCAL VARIABLES: |
41 |
C === Local variables === |
42 |
#ifdef USE_EXF_INTERPOLATION |
43 |
INTEGER j |
44 |
#endif |
45 |
|
46 |
#ifdef ALLOW_DEBUG |
47 |
IF (debugMode) CALL DEBUG_ENTER('EXF_INIT_FIXED',myThid) |
48 |
#endif |
49 |
|
50 |
_BEGIN_MASTER( myThid ) |
51 |
|
52 |
C-- Set mask for each input field |
53 |
C ' ' = no masking; 'c' = centered mask; 'w' = western mask; 's' = southern |
54 |
hfluxmask = 'c' |
55 |
sfluxmask = 'c' |
56 |
atempmask = 'c' |
57 |
aqhmask = 'c' |
58 |
evapmask = 'c' |
59 |
precipmask = 'c' |
60 |
snowprecipmask='c' |
61 |
runoffmask = 'c' |
62 |
IF ( stressIsOnCgrid ) THEN |
63 |
ustressmask = 'w' |
64 |
vstressmask = 's' |
65 |
ELSE |
66 |
ustressmask = 'c' |
67 |
vstressmask = 'c' |
68 |
ENDIF |
69 |
uwindmask = 'c' |
70 |
vwindmask = 'c' |
71 |
wspeedmask = 'c' |
72 |
swfluxmask = 'c' |
73 |
lwfluxmask = 'c' |
74 |
swdownmask = 'c' |
75 |
lwdownmask = 'c' |
76 |
apressuremask= 'c' |
77 |
areamaskmask = 'c' |
78 |
climsstmask = 'c' |
79 |
climsssmask = 'c' |
80 |
climustrmask = 'w' |
81 |
climvstrmask = 's' |
82 |
sgrunoffmask = 'c' |
83 |
|
84 |
IF ( useSEAICE ) THEN |
85 |
C Avoid masking of vector fields with pkg/seaice (for B/C-grid interp.) |
86 |
C but keep it for fields that might involve calculation using SST on land |
87 |
hfluxmask = ' ' |
88 |
sfluxmask = ' ' |
89 |
c atempmask = ' ' |
90 |
c aqhmask = ' ' |
91 |
c evapmask = ' ' |
92 |
c precipmask = ' ' |
93 |
c snowprecipmask=' ' |
94 |
c runoffmask = ' ' |
95 |
ustressmask = ' ' |
96 |
vstressmask = ' ' |
97 |
uwindmask = ' ' |
98 |
vwindmask = ' ' |
99 |
wspeedmask = ' ' |
100 |
swfluxmask = ' ' |
101 |
swdownmask = ' ' |
102 |
c lwfluxmask = ' ' |
103 |
c lwdownmask = ' ' |
104 |
apressuremask= ' ' |
105 |
c areamaskmask = ' ' |
106 |
c climsstmask = ' ' |
107 |
c climsssmask = ' ' |
108 |
climustrmask = ' ' |
109 |
climvstrmask = ' ' |
110 |
c sgrunoffmask = ' ' |
111 |
ENDIF |
112 |
|
113 |
C-- Complete the start date specifications for the forcing |
114 |
C fields to get a complete calendar date array. |
115 |
C FLDstartdate, for FLD = { uwind, vwind, wspeed, etc. }, |
116 |
C returns time in seconds of first FLD record from the |
117 |
C beginning of the model integration or, if useYearlyFields, |
118 |
C from the beginning of the year. |
119 |
|
120 |
IF ( useAtmWind ) THEN |
121 |
IF ( uwindfile .NE. ' ' .AND. uwindperiod .GT. 0. ) THEN |
122 |
# ifdef ALLOW_DEBUG |
123 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START uwind',myThid) |
124 |
# endif |
125 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
126 |
I uwindstartdate1, uwindstartdate2, |
127 |
O uwindstartdate, |
128 |
I myThid ) |
129 |
ENDIF |
130 |
IF ( vwindfile .NE. ' ' .AND. vwindperiod .GT. 0. ) THEN |
131 |
# ifdef ALLOW_DEBUG |
132 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START vwind',myThid) |
133 |
# endif |
134 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
135 |
I vwindstartdate1, vwindstartdate2, |
136 |
O vwindstartdate, |
137 |
I myThid ) |
138 |
ENDIF |
139 |
ENDIF |
140 |
|
141 |
IF ( wspeedfile .NE. ' ' .AND. wspeedperiod .GT. 0. ) THEN |
142 |
# ifdef ALLOW_DEBUG |
143 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START wspeed',myThid) |
144 |
# endif |
145 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
146 |
I wspeedstartdate1, wspeedstartdate2, |
147 |
O wspeedstartdate, |
148 |
I myThid ) |
149 |
ENDIF |
150 |
|
151 |
IF ( .NOT.useAtmWind ) THEN |
152 |
IF ( ustressfile .NE. ' ' .AND. ustressperiod .GT. 0. ) THEN |
153 |
# ifdef ALLOW_DEBUG |
154 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START ustress',myThid) |
155 |
# endif |
156 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
157 |
I ustressstartdate1, ustressstartdate2, |
158 |
O ustressstartdate, |
159 |
I myThid ) |
160 |
ENDIF |
161 |
IF ( vstressfile .NE. ' ' .AND. vstressperiod .GT. 0. ) THEN |
162 |
# ifdef ALLOW_DEBUG |
163 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START vstress',myThid) |
164 |
# endif |
165 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
166 |
I vstressstartdate1, vstressstartdate2, |
167 |
O vstressstartdate, |
168 |
I myThid ) |
169 |
ENDIF |
170 |
ENDIF |
171 |
|
172 |
#ifdef ALLOW_ATM_TEMP |
173 |
IF ( atempfile .NE. ' ' .AND. atempperiod .GT. 0. ) THEN |
174 |
# ifdef ALLOW_DEBUG |
175 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START atemp',myThid) |
176 |
# endif |
177 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
178 |
I atempstartdate1, atempstartdate2, |
179 |
O atempstartdate, |
180 |
I myThid ) |
181 |
ENDIF |
182 |
IF ( aqhfile .NE. ' ' .AND. aqhperiod .GT. 0. ) THEN |
183 |
# ifdef ALLOW_DEBUG |
184 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START aqh',myThid) |
185 |
# endif |
186 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
187 |
I aqhstartdate1, aqhstartdate2, |
188 |
O aqhstartdate, |
189 |
I myThid ) |
190 |
ENDIF |
191 |
IF ( lwfluxfile .NE. ' ' .AND. lwfluxperiod .GT. 0. ) THEN |
192 |
# ifdef ALLOW_DEBUG |
193 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START lwflux',myThid) |
194 |
# endif |
195 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
196 |
I lwfluxstartdate1, lwfluxstartdate2, |
197 |
O lwfluxstartdate, |
198 |
I myThid ) |
199 |
ENDIF |
200 |
IF ( precipfile .NE. ' ' .AND. precipperiod .GT. 0. ) THEN |
201 |
# ifdef ALLOW_DEBUG |
202 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START precip',myThid) |
203 |
# endif |
204 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
205 |
I precipstartdate1, precipstartdate2, |
206 |
O precipstartdate, |
207 |
I myThid ) |
208 |
ENDIF |
209 |
IF ( snowprecipfile .NE. ' ' .AND. snowprecipperiod .GT. 0. ) THEN |
210 |
# ifdef ALLOW_DEBUG |
211 |
IF (debugMode) |
212 |
& CALL DEBUG_CALL('GETFIELD_START snowprecip',myThid) |
213 |
# endif |
214 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
215 |
I snowprecipstartdate1, snowprecipstartdate2, |
216 |
O snowprecipstartdate, |
217 |
I myThid ) |
218 |
ENDIF |
219 |
#else /* ifndef ALLOW_ATM_TEMP */ |
220 |
IF ( hfluxfile .NE. ' ' .AND. hfluxperiod .GT. 0. ) THEN |
221 |
# ifdef ALLOW_DEBUG |
222 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START hflux',myThid) |
223 |
# endif |
224 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
225 |
I hfluxstartdate1, hfluxstartdate2, |
226 |
O hfluxstartdate, |
227 |
I myThid ) |
228 |
ENDIF |
229 |
IF ( sfluxfile .NE. ' ' .AND. sfluxperiod .GT. 0. ) THEN |
230 |
# ifdef ALLOW_DEBUG |
231 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START sflux',myThid) |
232 |
# endif |
233 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
234 |
I sfluxstartdate1, sfluxstartdate2, |
235 |
O sfluxstartdate, |
236 |
I myThid ) |
237 |
ENDIF |
238 |
#endif /* ALLOW_ATM_TEMP */ |
239 |
|
240 |
#if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) |
241 |
IF ( swfluxfile .NE. ' ' .AND. swfluxperiod .GT. 0. ) THEN |
242 |
# ifdef ALLOW_DEBUG |
243 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START swflux',myThid) |
244 |
# endif |
245 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
246 |
I swfluxstartdate1, swfluxstartdate2, |
247 |
O swfluxstartdate, |
248 |
I myThid ) |
249 |
ENDIF |
250 |
#endif /* defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) */ |
251 |
|
252 |
#ifdef EXF_READ_EVAP |
253 |
IF ( evapfile .NE. ' ' .AND. evapperiod .GT. 0. ) THEN |
254 |
# ifdef ALLOW_DEBUG |
255 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START evap',myThid) |
256 |
# endif |
257 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
258 |
I evapstartdate1, evapstartdate2, |
259 |
O evapstartdate, |
260 |
I myThid ) |
261 |
ENDIF |
262 |
#endif /* EXF_READ_EVAP */ |
263 |
|
264 |
#ifdef ALLOW_RUNOFF |
265 |
IF ( runofffile .NE. ' ' .AND. runoffperiod .GT. 0. ) THEN |
266 |
# ifdef ALLOW_DEBUG |
267 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START runoff',myThid) |
268 |
# endif |
269 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
270 |
I runoffstartdate1, runoffstartdate2, |
271 |
O runoffstartdate, |
272 |
I myThid ) |
273 |
ENDIF |
274 |
#endif /* ALLOW_RUNOFF */ |
275 |
|
276 |
#ifdef ALLOW_ICEFRONT |
277 |
IF ( sgrunofffile .NE. ' ' .AND. sgrunoffperiod .GT. 0. ) THEN |
278 |
# ifdef ALLOW_DEBUG |
279 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START sgrunoff',myThid) |
280 |
# endif |
281 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
282 |
I sgrunoffstartdate1, sgrunoffstartdate2, |
283 |
O sgrunoffstartdate, |
284 |
I myThid ) |
285 |
ENDIF |
286 |
#endif /* ALLOW_ICEFRONT */ |
287 |
|
288 |
#ifdef ALLOW_DOWNWARD_RADIATION |
289 |
IF ( swdownfile .NE. ' ' .AND. swdownperiod .GT. 0. ) THEN |
290 |
# ifdef ALLOW_DEBUG |
291 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START swdown',myThid) |
292 |
# endif |
293 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
294 |
I swdownstartdate1, swdownstartdate2, |
295 |
O swdownstartdate, |
296 |
I myThid ) |
297 |
ENDIF |
298 |
IF ( lwdownfile .NE. ' ' .AND. lwdownperiod .GT. 0. ) THEN |
299 |
# ifdef ALLOW_DEBUG |
300 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START lwdown',myThid) |
301 |
# endif |
302 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
303 |
I lwdownstartdate1, lwdownstartdate2, |
304 |
O lwdownstartdate, |
305 |
I myThid ) |
306 |
ENDIF |
307 |
#endif /* ALLOW_DOWNWARD_RADIATION */ |
308 |
|
309 |
#ifdef ATMOSPHERIC_LOADING |
310 |
IF ( apressurefile .NE. ' ' .AND. apressureperiod .GT. 0. ) THEN |
311 |
# ifdef ALLOW_DEBUG |
312 |
IF (debugMode) |
313 |
& CALL DEBUG_CALL('GETFIELD_START apressure',myThid) |
314 |
# endif |
315 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
316 |
I apressurestartdate1, apressurestartdate2, |
317 |
O apressurestartdate, |
318 |
I myThid ) |
319 |
ENDIF |
320 |
#endif /* ATMOSPHERIC_LOADING */ |
321 |
|
322 |
#ifdef EXF_SEAICE_FRACTION |
323 |
IF ( areamaskfile .NE. ' ' .AND. areamaskperiod .GT. 0. ) THEN |
324 |
# ifdef ALLOW_DEBUG |
325 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START areamask',myThid) |
326 |
# endif |
327 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
328 |
I areamaskstartdate1, areamaskstartdate2, |
329 |
O areamaskstartdate, |
330 |
I myThid ) |
331 |
ENDIF |
332 |
#endif /* EXF_SEAICE_FRACTION */ |
333 |
|
334 |
#ifdef ALLOW_OBCS |
335 |
IF ( obcsNperiod .GT. 0. ) THEN |
336 |
# ifdef ALLOW_DEBUG |
337 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START obcsN',myThid) |
338 |
# endif |
339 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
340 |
I obcsNstartdate1, obcsNstartdate2, |
341 |
O obcsNstartdate, |
342 |
I myThid ) |
343 |
ENDIF |
344 |
IF ( obcsSperiod .GT. 0. ) THEN |
345 |
# ifdef ALLOW_DEBUG |
346 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START obcsS',myThid) |
347 |
# endif |
348 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
349 |
I obcsSstartdate1, obcsSstartdate2, |
350 |
O obcsSstartdate, |
351 |
I myThid ) |
352 |
ENDIF |
353 |
IF ( obcsEperiod .GT. 0. ) THEN |
354 |
# ifdef ALLOW_DEBUG |
355 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START obcsE',myThid) |
356 |
# endif |
357 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
358 |
I obcsEstartdate1, obcsEstartdate2, |
359 |
O obcsEstartdate, |
360 |
I myThid ) |
361 |
ENDIF |
362 |
IF ( obcsWperiod .GT. 0. ) THEN |
363 |
# ifdef ALLOW_DEBUG |
364 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START obcsW',myThid) |
365 |
# endif |
366 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
367 |
I obcsWstartdate1, obcsWstartdate2, |
368 |
O obcsWstartdate, |
369 |
I myThid ) |
370 |
ENDIF |
371 |
# ifdef ALLOW_SEAICE |
372 |
IF ( siobNperiod .GT. 0. ) THEN |
373 |
# ifdef ALLOW_DEBUG |
374 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START siobN',myThid) |
375 |
# endif |
376 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
377 |
I siobNstartdate1, siobNstartdate2, |
378 |
O siobNstartdate, |
379 |
I myThid ) |
380 |
ENDIF |
381 |
IF ( siobSperiod .GT. 0. ) THEN |
382 |
# ifdef ALLOW_DEBUG |
383 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START siobS',myThid) |
384 |
# endif |
385 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
386 |
I siobSstartdate1, siobSstartdate2, |
387 |
O siobSstartdate, |
388 |
I myThid ) |
389 |
ENDIF |
390 |
IF ( siobEperiod .GT. 0. ) THEN |
391 |
# ifdef ALLOW_DEBUG |
392 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START siobE',myThid) |
393 |
# endif |
394 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
395 |
I siobEstartdate1, siobEstartdate2, |
396 |
O siobEstartdate, |
397 |
I myThid ) |
398 |
ENDIF |
399 |
IF ( siobWperiod .GT. 0. ) THEN |
400 |
# ifdef ALLOW_DEBUG |
401 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START siobW',myThid) |
402 |
# endif |
403 |
CALL EXF_GETFIELD_START( useOBCSYearlyFields, |
404 |
I siobWstartdate1, siobWstartdate2, |
405 |
O siobWstartdate, |
406 |
I myThid ) |
407 |
ENDIF |
408 |
# endif /* ALLOW_SEAICE */ |
409 |
#endif /* ALLOW_OBCS */ |
410 |
|
411 |
#ifdef ALLOW_CLIMSST_RELAXATION |
412 |
IF ( climsstfile .NE. ' ' .AND. climsstperiod .GT. 0. ) THEN |
413 |
# ifdef ALLOW_DEBUG |
414 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START climsst',myThid) |
415 |
# endif |
416 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
417 |
I climsststartdate1, climsststartdate2, |
418 |
O climsststartdate, |
419 |
I myThid ) |
420 |
ENDIF |
421 |
#endif /* ALLOW_CLIMSST_RELAXATION */ |
422 |
|
423 |
#ifdef ALLOW_CLIMSSS_RELAXATION |
424 |
IF ( climsssfile .NE. ' ' .AND. climsssperiod .GT. 0. ) THEN |
425 |
# ifdef ALLOW_DEBUG |
426 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START climsss',myThid) |
427 |
# endif |
428 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
429 |
I climsssstartdate1, climsssstartdate2, |
430 |
O climsssstartdate, |
431 |
I myThid ) |
432 |
ENDIF |
433 |
#endif /* ALLOW_CLIMSSS_RELAXATION */ |
434 |
|
435 |
#ifdef ALLOW_CLIMSTRESS_RELAXATION |
436 |
IF ( climustrfile .NE. ' ' .AND. climustrperiod .GT. 0. ) THEN |
437 |
# ifdef ALLOW_DEBUG |
438 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START climustr',myThid) |
439 |
# endif |
440 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
441 |
I climustrstartdate1, climustrstartdate2, |
442 |
O climustrstartdate, |
443 |
I myThid ) |
444 |
ENDIF |
445 |
|
446 |
IF ( climvstrfile .NE. ' ' .AND. climvstrperiod .GT. 0. ) THEN |
447 |
# ifdef ALLOW_DEBUG |
448 |
IF (debugMode) CALL DEBUG_CALL('GETFIELD_START climvstr',myThid) |
449 |
# endif |
450 |
CALL EXF_GETFIELD_START( useExfYearlyFields, |
451 |
I climvstrstartdate1, climvstrstartdate2, |
452 |
O climvstrstartdate, |
453 |
I myThid ) |
454 |
ENDIF |
455 |
#endif /* ALLOW_CLIMSTRESS_RELAXATION */ |
456 |
|
457 |
#ifdef USE_EXF_INTERPOLATION |
458 |
C-- For vector fields, set flag to interpolate the 2 components together |
459 |
C- wind-stress: |
460 |
IF ( .NOT.useAtmWind ) THEN |
461 |
uvInterp_stress = ustressfile.NE.' ' .AND. vstressfile.NE.' ' |
462 |
& .AND. ustress_interpMethod.GE.1 .AND. vstress_interpMethod.GE.1 |
463 |
uvInterp_stress = uvInterp_stress |
464 |
& .AND. ustressstartdate .EQ. vstressstartdate |
465 |
& .AND. ustressperiod .EQ. vstressperiod |
466 |
uvInterp_stress = uvInterp_stress |
467 |
& .AND. ustress_nlon .EQ. vstress_nlon |
468 |
& .AND. ustress_nlat .EQ. vstress_nlat |
469 |
& .AND. ustress_lon0 .EQ. vstress_lon0 |
470 |
& .AND. ustress_lat0 .EQ. vstress_lat0 |
471 |
& .AND. ustress_lon_inc .EQ. vstress_lon_inc |
472 |
IF ( uvInterp_stress ) THEN |
473 |
DO j=1,MIN(ustress_nlat-1,MAX_LAT_INC) |
474 |
uvInterp_stress = uvInterp_stress |
475 |
& .AND. ustress_lat_inc(j) .EQ. vstress_lat_inc(j) |
476 |
ENDDO |
477 |
ENDIF |
478 |
ENDIF |
479 |
C- wind: |
480 |
IF ( useAtmWind ) THEN |
481 |
uvInterp_wind = uwindfile.NE.' ' .AND. vwindfile.NE.' ' |
482 |
& .AND. uwind_interpMethod.GE.1 .AND. vwind_interpMethod.GE.1 |
483 |
uvInterp_wind = uvInterp_wind |
484 |
& .AND. uwindstartdate .EQ. vwindstartdate |
485 |
& .AND. uwindperiod .EQ. vwindperiod |
486 |
uvInterp_wind = uvInterp_wind |
487 |
& .AND. uwind_nlon .EQ. vwind_nlon |
488 |
& .AND. uwind_nlat .EQ. vwind_nlat |
489 |
& .AND. uwind_lon0 .EQ. vwind_lon0 |
490 |
& .AND. uwind_lat0 .EQ. vwind_lat0 |
491 |
& .AND. uwind_lon_inc .EQ. vwind_lon_inc |
492 |
IF ( uvInterp_wind ) THEN |
493 |
DO j=1,MIN(uwind_nlat-1,MAX_LAT_INC) |
494 |
uvInterp_wind = uvInterp_wind |
495 |
& .AND. uwind_lat_inc(j) .EQ. vwind_lat_inc(j) |
496 |
ENDDO |
497 |
ENDIF |
498 |
ENDIF |
499 |
C- clim wind-stress: |
500 |
uvInterp_climstr = climustrfile.NE.' ' .AND. climvstrfile.NE.' ' |
501 |
& .AND.climustr_interpMethod.GE.1 .AND.climvstr_interpMethod.GE.1 |
502 |
uvInterp_climstr = uvInterp_climstr |
503 |
& .AND. climustrstartdate .EQ. climvstrstartdate |
504 |
& .AND. climustrperiod .EQ. climvstrperiod |
505 |
uvInterp_climstr = uvInterp_climstr |
506 |
& .AND. climustr_nlon .EQ. climvstr_nlon |
507 |
& .AND. climustr_nlat .EQ. climvstr_nlat |
508 |
& .AND. climustr_lon0 .EQ. climvstr_lon0 |
509 |
& .AND. climustr_lat0 .EQ. climvstr_lat0 |
510 |
& .AND. climustr_lon_inc .EQ. climvstr_lon_inc |
511 |
IF ( uvInterp_climstr ) THEN |
512 |
DO j=1,MIN(climustr_nlat-1,MAX_LAT_INC) |
513 |
uvInterp_climstr = uvInterp_climstr |
514 |
& .AND. climustr_lat_inc(j) .EQ. climvstr_lat_inc(j) |
515 |
ENDDO |
516 |
ENDIF |
517 |
# ifdef EXF_USE_OLD_INTERP_POLE |
518 |
uvInterp_stress = .FALSE. |
519 |
uvInterp_wind = .FALSE. |
520 |
uvInterp_climstr= .FALSE. |
521 |
# endif |
522 |
#endif /* USE_EXF_INTERPOLATION */ |
523 |
|
524 |
_END_MASTER( myThid ) |
525 |
_BARRIER |
526 |
|
527 |
#ifdef ALLOW_ZENITHANGLE |
528 |
IF ( useExfZenAlbedo .OR. useExfZenIncoming ) THEN |
529 |
# ifdef ALLOW_DEBUG |
530 |
IF (debugMode) CALL DEBUG_CALL('EXF_ZENITHANGLE_TABLE',myThid) |
531 |
# endif |
532 |
CALL EXF_ZENITHANGLE_TABLE(myThid) |
533 |
ENDIF |
534 |
#endif /* ALLOW_ZENITHANGLE */ |
535 |
|
536 |
C-- Summarize the External forcing setup. |
537 |
# ifdef ALLOW_DEBUG |
538 |
IF (debugMode) CALL DEBUG_CALL('EXF_SUMMARY',myThid) |
539 |
# endif |
540 |
CALL EXF_SUMMARY( myThid ) |
541 |
|
542 |
#ifdef ALLOW_DIAGNOSTICS |
543 |
IF ( useDiagnostics ) THEN |
544 |
# ifdef ALLOW_DEBUG |
545 |
IF (debugMode) CALL DEBUG_CALL('EXF_DIAGNOSTICS_INIT',myThid) |
546 |
# endif |
547 |
CALL EXF_DIAGNOSTICS_INIT( myThid ) |
548 |
ENDIF |
549 |
#endif |
550 |
|
551 |
#ifdef ALLOW_DEBUG |
552 |
IF (debugMode) CALL DEBUG_LEAVE('EXF_INIT_FIXED',myThid) |
553 |
#endif |
554 |
|
555 |
RETURN |
556 |
END |