/[MITgcm]/MITgcm/pkg/exf/exf_readparms.F
ViewVC logotype

Contents of /MITgcm/pkg/exf/exf_readparms.F

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


Revision 1.13.2.1 - (show annotations) (download)
Fri Oct 8 06:21:29 2004 UTC (19 years, 8 months ago) by dimitri
Branch: checkpoint51n_branch
Changes since 1.13: +278 -114 lines
these mods are for a dead-end branch used for tracer
Green function computations.

1 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_readparms.F,v 1.19 2004/10/07 01:10:43 dimitri Exp $
2 C $Name: $
3
4 #include "EXF_OPTIONS.h"
5 #ifdef ALLOW_OBCS
6 # include "OBCS_OPTIONS.h"
7 #endif
8
9 subroutine exf_readparms( mythid )
10
11 c ==================================================================
12 c SUBROUTINE exf_readparms
13 c ==================================================================
14 c
15 c o This routine initialises the package that calculates external
16 c forcing fields for a given timestep of the MITgcmUV. Parameters
17 c for this package are set in "data.externalforcing". Some additional
18 c precompiler switches have to be specified in "EXF_OPTIONS.h".
19 c
20 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
21 c
22 c changed: Christian Eckert eckert@mit.edu 11-Jan-2000
23 c - Restructured the code in order to create a package
24 c for the MITgcmUV.
25 c Christian Eckert eckert@mit.edu 12-Feb-2000
26 c - Changed Routine names (package prefix: exf_)
27 c changed: Patrick Heimbach, heimbach@mit.edu 04-May-2000
28 c - changed the handling of precip and sflux with respect
29 c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
30 c changed: Ralf.Giering@FastOpt.de 25-Mai-20000
31 c - moved relaxation and climatology to extra routines
32 c Patrick Heimbach, heimbach@mit.edu 04-May-2000
33 c - added obcs parameters
34 c changed: Virginie Thierry, vthierry@ucsd.edu 04-June-2001
35 c - added new obcs parameters (for each boundaries)
36 c included runoff D. Stammer, Nov. 25, 2001
37 c included pressure forcing. heimbach@mit.edu 05-Nov-2002
38 c added "repeatPeriod" for cycling of forcing datasets 19-Dec-2002
39 c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
40 c
41 c ==================================================================
42 c SUBROUTINE exf_readparms
43 c ==================================================================
44
45 implicit none
46
47 c == global variables ==
48
49 #include "EEPARAMS.h"
50 #include "SIZE.h"
51 #include "PARAMS.h"
52 #include "cal.h"
53 #include "exf.h"
54 #include "exf_param.h"
55 #include "exf_constants.h"
56
57 c == routine arguments ==
58
59 integer mythid
60
61 c == local variables ==
62
63 integer i
64 integer date_array(4), difftime(4)
65
66 c == external ==
67
68 integer ilnblnk
69 external ilnblnk
70
71 c == end of interface ==
72
73 c Surface flux data.
74 namelist /exf_nml/
75 & windstressmax, repeatPeriod, exf_albedo,
76 & hfluxstartdate1, hfluxstartdate2, hfluxperiod,
77 & atempstartdate1, atempstartdate2, atempperiod,
78 & aqhstartdate1, aqhstartdate2, aqhperiod,
79 & sfluxstartdate1, sfluxstartdate2, sfluxperiod,
80 & evapstartdate1, evapstartdate2, evapperiod,
81 & precipstartdate1, precipstartdate2, precipperiod,
82 & runoffstartdate1, runoffstartdate2, runoffperiod,
83 & ustressstartdate1, ustressstartdate2, ustressperiod,
84 & vstressstartdate1, vstressstartdate2, vstressperiod,
85 & uwindstartdate1, uwindstartdate2, uwindperiod,
86 & vwindstartdate1, vwindstartdate2, vwindperiod,
87 & swfluxstartdate1, swfluxstartdate2, swfluxperiod,
88 & lwfluxstartdate1, lwfluxstartdate2, lwfluxperiod,
89 & swdownstartdate1, swdownstartdate2, swdownperiod,
90 & lwdownstartdate1, lwdownstartdate2, lwdownperiod,
91 & obcsNstartdate1, obcsNstartdate2, obcsNperiod,
92 & obcsSstartdate1, obcsSstartdate2, obcsSperiod,
93 & obcsEstartdate1, obcsEstartdate2, obcsEperiod,
94 & obcsWstartdate1, obcsWstartdate2, obcsWperiod,
95 &apressurestartdate1,apressurestartdate2,apressureperiod,
96 & hfluxfile, atempfile, aqhfile,
97 & sfluxfile, precipfile, runofffile,
98 & ustressfile, vstressfile, evapfile,
99 & uwindfile, vwindfile,
100 & swfluxfile, lwfluxfile, apressurefile,
101 & swdownfile, lwdownfile,
102 & exf_iprec, exf_yftype,
103 & exf_inscal_hflux, exf_inscal_sflux,
104 & exf_inscal_ustress, exf_inscal_vstress,
105 & exf_inscal_uwind, exf_inscal_vwind, exf_inscal_evap,
106 & exf_inscal_atemp, exf_offset_atemp, exf_inscal_aqh,
107 & exf_inscal_sst, exf_inscal_sss,
108 & exf_inscal_swflux, exf_inscal_lwflux, exf_inscal_precip,
109 & exf_inscal_runoff, exf_inscal_apressure,
110 & exf_inscal_swdown, exf_inscal_lwdown,
111 & exf_outscal_hflux, exf_outscal_ustress, exf_outscal_vstress,
112 & exf_outscal_swflux, exf_outscal_sst, exf_outscal_sss,
113 & exf_outscal_sflux, exf_outscal_apressure,
114 & hfluxconst,
115 & atempconst,
116 & aqhconst,
117 & sfluxconst,
118 & evapconst,
119 & precipconst,
120 & runoffconst,
121 & ustressconst,
122 & vstressconst,
123 & uwindconst,
124 & vwindconst,
125 & swfluxconst,
126 & lwfluxconst,
127 & swdownconst,
128 & lwdownconst,
129 & apressureconst
130 #ifdef USE_EXF_INTERPOLATION
131 & ,ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
132 & ustress_nlon, ustress_nlat,
133 & vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
134 & vstress_nlon, vstress_nlat,
135 & hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
136 & hflux_nlon, hflux_nlat,
137 & sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
138 & sflux_nlon, sflux_nlat,
139 & swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
140 & swflux_nlon, swflux_nlat,
141 & runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
142 & runoff_nlon, runoff_nlat,
143 & atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
144 & atemp_nlon, atemp_nlat,
145 & aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc,
146 & aqh_nlon, aqh_nlat,
147 & evap_lon0, evap_lon_inc, evap_lat0, evap_lat_inc,
148 & evap_nlon, evap_nlat,
149 & precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
150 & precip_nlon, precip_nlat,
151 & uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
152 & uwind_nlon, uwind_nlat,
153 & vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
154 & vwind_nlon, vwind_nlat,
155 & lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
156 & lwflux_nlon, lwflux_nlat,
157 & swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
158 & swdown_nlon, swdown_nlat,
159 & lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
160 & lwdown_nlon, lwdown_nlat,
161 & apressure_lon0,apressure_lon_inc,
162 & apressure_lat0,apressure_lat_inc,
163 & apressure_nlon,apressure_nlat
164 #endif
165
166 _BEGIN_MASTER(mythid)
167
168 c Set default values.
169
170 c Calendar data.
171 hfluxstartdate1 = 0
172 hfluxstartdate2 = 0
173 hfluxperiod = 0.0 _d 0
174 hfluxconst = 0.0 _d 0
175
176 atempstartdate1 = 0
177 atempstartdate2 = 0
178 atempperiod = 0.0 _d 0
179 atempconst = celsius2K
180
181 aqhstartdate1 = 0
182 aqhstartdate2 = 0
183 aqhperiod = 0.0 _d 0
184 aqhconst = 0.0 _d 0
185
186 sfluxstartdate1 = 0
187 sfluxstartdate2 = 0
188 sfluxperiod = 0.0 _d 0
189 sfluxconst = 0.0 _d 0
190
191 evapstartdate1 = 0
192 evapstartdate2 = 0
193 evapperiod = 0.0 _d 0
194 evapconst = 0.0 _d 0
195
196 precipstartdate1 = 0
197 precipstartdate2 = 0
198 precipperiod = 0.0 _d 0
199 precipconst = 0.0 _d 0
200
201 runoffstartdate1 = 0
202 runoffstartdate2 = 0
203 runoffperiod = 0.0 _d 0
204 runoffconst = 0.0 _d 0
205
206 ustressstartdate1 = 0
207 ustressstartdate2 = 0
208 ustressperiod = 0.0 _d 0
209 ustressconst = 0.0 _d 0
210
211 vstressstartdate1 = 0
212 vstressstartdate2 = 0
213 vstressperiod = 0.0 _d 0
214 vstressconst = 0.0 _d 0
215
216 uwindstartdate1 = 0
217 uwindstartdate2 = 0
218 uwindperiod = 0.0 _d 0
219 uwindconst = 0.0 _d 0
220
221 vwindstartdate1 = 0
222 vwindstartdate2 = 0
223 vwindperiod = 0.0 _d 0
224 vwindconst = 0.0 _d 0
225
226 swfluxstartdate1 = 0
227 swfluxstartdate2 = 0
228 swfluxperiod = 0.0 _d 0
229 swfluxconst = 0.0 _d 0
230
231 lwfluxstartdate1 = 0
232 lwfluxstartdate2 = 0
233 lwfluxperiod = 0.0 _d 0
234 lwfluxconst = 0.0 _d 0
235
236 swdownstartdate1 = 0
237 swdownstartdate2 = 0
238 swdownperiod = 0.0 _d 0
239 swdownconst = 0.0 _d 0
240
241 lwdownstartdate1 = 0
242 lwdownstartdate2 = 0
243 lwdownperiod = 0.0 _d 0
244 lwdownconst = 0.0 _d 0
245
246 obcsNstartdate1 = 0
247 obcsNstartdate2 = 0
248 obcsNperiod = 0.0 _d 0
249
250 obcsSstartdate1 = 0
251 obcsSstartdate2 = 0
252 obcsSperiod = 0.0 _d 0
253
254 obcsEstartdate1 = 0
255 obcsEstartdate2 = 0
256 obcsEperiod = 0.0 _d 0
257
258 obcsWstartdate1 = 0
259 obcsWstartdate2 = 0
260 obcsWperiod = 0.0 _d 0
261
262 apressurestartdate1 = 0
263 apressurestartdate2 = 0
264 apressureperiod = 0.0 _d 0
265 apressureconst = 0.0 _d 0
266
267 repeatPeriod = 0.0 _d 0
268 exf_albedo = 0.1 _d 0
269 windstressmax = 2.0 _d 0
270
271 c Data files.
272 hfluxfile = ' '
273 atempfile = ' '
274 aqhfile = ' '
275 evapfile = ' '
276 precipfile = ' '
277 sfluxfile = ' '
278 runofffile = ' '
279 ustressfile = ' '
280 vstressfile = ' '
281 uwindfile = ' '
282 vwindfile = ' '
283 swfluxfile = ' '
284 lwfluxfile = ' '
285 swdownfile = ' '
286 lwdownfile = ' '
287 apressurefile = ' '
288
289 c Start dates.
290 hfluxstartdate = 0
291 atempstartdate = 0
292 aqhstartdate = 0
293 evapstartdate = 0
294 precipstartdate = 0
295 sfluxstartdate = 0
296 runoffstartdate = 0
297 ustressstartdate = 0
298 vstressstartdate = 0
299 uwindstartdate = 0
300 vwindstartdate = 0
301 swfluxstartdate = 0
302 lwfluxstartdate = 0
303 swdownstartdate = 0
304 lwdownstartdate = 0
305 obcsNstartdate = 0
306 obcsSstartdate = 0
307 obcsEstartdate = 0
308 obcsWstartdate = 0
309 apressurestartdate = 0
310
311 c Initialise file type and field precision
312 exf_iprec = 32
313 exf_yftype = 'RL'
314
315 c Input scaling factors.
316 exf_inscal_hflux = 1. _d 0
317 exf_inscal_sflux = 1. _d 0
318 exf_inscal_ustress = 1. _d 0
319 exf_inscal_vstress = 1. _d 0
320 exf_inscal_uwind = 1. _d 0
321 exf_inscal_vwind = 1. _d 0
322 exf_inscal_swflux = 1. _d 0
323 exf_inscal_lwflux = 1. _d 0
324 exf_inscal_precip = 1. _d 0
325 exf_inscal_sst = 1. _d 0
326 exf_inscal_sss = 1. _d 0
327 exf_inscal_atemp = 1. _d 0
328 exf_offset_atemp = 0. _d 0
329 exf_inscal_aqh = 1. _d 0
330 exf_inscal_evap = 1. _d 0
331 exf_inscal_apressure = 1. _d 0
332 cds convert runoff from m/yr to m/s and change sign.
333 exf_inscal_runoff = -1.0/(86400.*365.0)
334 exf_inscal_swdown = 1. _d 0
335 exf_inscal_lwdown = 1. _d 0
336
337 c Output scaling factors.
338 exf_outscal_hflux = 1. _d 0
339 exf_outscal_sflux = 1. _d 0
340 exf_outscal_ustress = 1. _d 0
341 exf_outscal_vstress = 1. _d 0
342 exf_outscal_swflux = 1. _d 0
343 exf_outscal_sst = 1. _d 0
344 exf_outscal_sss = 1. _d 0
345 exf_outscal_apressure= 1. _d 0
346
347 #ifdef USE_EXF_INTERPOLATION
348 ustress_lon0 = thetaMin
349 uwind_lon0 = thetaMin
350 vstress_lon0 = thetaMin + delX(1) / 2
351 hflux_lon0 = thetaMin + delX(1) / 2
352 sflux_lon0 = thetaMin + delX(1) / 2
353 swflux_lon0 = thetaMin + delX(1) / 2
354 runoff_lon0 = thetaMin + delX(1) / 2
355 atemp_lon0 = thetaMin + delX(1) / 2
356 aqh_lon0 = thetaMin + delX(1) / 2
357 evap_lon0 = thetaMin + delX(1) / 2
358 precip_lon0 = thetaMin + delX(1) / 2
359 vwind_lon0 = thetaMin + delX(1) / 2
360 lwflux_lon0 = thetaMin + delX(1) / 2
361 swdown_lon0 = thetaMin + delX(1) / 2
362 lwdown_lon0 = thetaMin + delX(1) / 2
363 apressure_lon0 = thetaMin + delX(1) / 2
364 vstress_lat0 = phimin
365 vwind_lat0 = phimin
366 ustress_lat0 = phimin + delY(1) / 2
367 hflux_lat0 = phimin + delY(1) / 2
368 sflux_lat0 = phimin + delY(1) / 2
369 runoff_lat0 = phimin + delY(1) / 2
370 swflux_lat0 = phimin + delY(1) / 2
371 atemp_lat0 = phimin + delY(1) / 2
372 aqh_lat0 = phimin + delY(1) / 2
373 evap_lat0 = phimin + delY(1) / 2
374 precip_lat0 = phimin + delY(1) / 2
375 uwind_lat0 = phimin + delY(1) / 2
376 lwflux_lat0 = phimin + delY(1) / 2
377 swdown_lat0 = phimin + delY(1) / 2
378 lwdown_lat0 = phimin + delY(1) / 2
379 apressure_lat0 = phimin + delY(1) / 2
380 ustress_nlon = Nx
381 ustress_nlat = Ny
382 vstress_nlon = Nx
383 vstress_nlat = Ny
384 hflux_nlon = Nx
385 hflux_nlat = Ny
386 sflux_nlon = Nx
387 sflux_nlat = Ny
388 swflux_nlon = Nx
389 swflux_nlat = Ny
390 runoff_nlon = Nx
391 runoff_nlat = Ny
392 atemp_nlon = Nx
393 atemp_nlat = Ny
394 aqh_nlon = Nx
395 aqh_nlat = Ny
396 evap_nlon = Nx
397 evap_nlat = Ny
398 precip_nlon = Nx
399 precip_nlat = Ny
400 uwind_nlon = Nx
401 uwind_nlat = Ny
402 vwind_nlon = Nx
403 vwind_nlat = Ny
404 lwflux_nlon = Nx
405 lwflux_nlat = Ny
406 swdown_nlon = Nx
407 swdown_nlat = Ny
408 lwdown_nlon = Nx
409 lwdown_nlat = Ny
410 apressure_nlon = Nx
411 apressure_nlat = Ny
412 Ustress_lon_inc = delX(1)
413 vstress_lon_inc = delX(1)
414 hflux_lon_inc = delX(1)
415 sflux_lon_inc = delX(1)
416 swflux_lon_inc = delX(1)
417 runoff_lon_inc = delX(1)
418 atemp_lon_inc = delX(1)
419 aqh_lon_inc = delX(1)
420 evap_lon_inc = delX(1)
421 precip_lon_inc = delX(1)
422 uwind_lon_inc = delX(1)
423 vwind_lon_inc = delX(1)
424 lwflux_lon_inc = delX(1)
425 swdown_lon_inc = delX(1)
426 lwdown_lon_inc = delX(1)
427 apressure_lon_inc = delX(1)
428 DO i=1,MAX_LAT_INC
429 IF (i.LT.Ny) THEN
430 vstress_lat_inc(i) = delY(i)
431 vwind_lat_inc(i) = delY(i)
432 ustress_lat_inc(i) = (delY(i) + delY(i)) / 2.
433 hflux_lat_inc(i) = (delY(i) + delY(i)) / 2.
434 sflux_lat_inc(i) = (delY(i) + delY(i)) / 2.
435 swflux_lat_inc(i) = (delY(i) + delY(i)) / 2.
436 runoff_lat_inc(i) = (delY(i) + delY(i)) / 2.
437 atemp_lat_inc(i) = (delY(i) + delY(i)) / 2.
438 aqh_lat_inc(i) = (delY(i) + delY(i)) / 2.
439 evap_lat_inc(i) = (delY(i) + delY(i)) / 2.
440 precip_lat_inc(i) = (delY(i) + delY(i)) / 2.
441 uwind_lat_inc(i) = (delY(i) + delY(i)) / 2.
442 lwflux_lat_inc(i) = (delY(i) + delY(i)) / 2.
443 swdown_lat_inc(i) = (delY(i) + delY(i)) / 2.
444 lwdown_lat_inc(i) = (delY(i) + delY(i)) / 2.
445 apressure_lat_inc(i) = (delY(i) + delY(i)) / 2.
446 ELSE
447 ustress_lat_inc(i) = 0.
448 vstress_lat_inc(i) = 0.
449 hflux_lat_inc(i) = 0.
450 sflux_lat_inc(i) = 0.
451 swflux_lat_inc(i) = 0.
452 runoff_lat_inc(i) = 0.
453 atemp_lat_inc(i) = 0.
454 aqh_lat_inc(i) = 0.
455 evap_lat_inc(i) = 0.
456 precip_lat_inc(i) = 0.
457 uwind_lat_inc(i) = 0.
458 vwind_lat_inc(i) = 0.
459 lwflux_lat_inc(i) = 0.
460 swdown_lat_inc(i) = 0.
461 lwdown_lat_inc(i) = 0.
462 apressure_lat_inc(i) = 0.
463 ENDIF
464 ENDDO
465 #endif /* USE_EXF_INTERPOLATION */
466
467 c Check for the availability of the right calendar version.
468 if ( calendarversion .ne. usescalendarversion ) then
469 print*,' exf_readparms: You are not using the appropriate'
470 print*,' version of the calendar package.'
471 print*
472 print*,' You are using Calendar version: ', calendarversion
473 print*,' Please use Calendar version: ', usescalendarversion
474 stop ' stopped in exf_readparms.'
475 endif
476
477 c Next, read the forcing data file.
478 call nml_filter( 'data.exf', scrunit1, myThid )
479 if (scrunit1 .eq. 0) then
480 stop 'exf_readparms: reading namelist failed'
481 end if
482 read( scrunit1, nml = exf_nml )
483 close( scrunit1 )
484
485 c Complete the start date specifications for the forcing
486 c fields to get a complete calendar date array.
487
488 c check for consistency
489
490 if (.NOT.
491 & (exf_iprec .EQ. 32 .OR. exf_iprec .EQ. 64)
492 & ) then
493 stop 'stop in exf_readparms: value of exf_iprec not allowed'
494 else if (.NOT.
495 & (exf_yftype .EQ. 'RS' .OR.
496 & exf_yftype .EQ. 'RL')
497 & ) then
498 stop 'stop in exf_readparms: value of exf_yftype not allowed'
499 end if
500
501 #ifdef ALLOW_ATM_WIND
502 if ( uwindfile .NE. ' ' ) then
503 call cal_FullDate ( uwindstartdate1 , uwindstartdate2,
504 & date_array ,mythid )
505 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
506 call cal_ToSeconds ( difftime, uwindstartdate ,mythid )
507 uwindstartdate = modelstart + uwindstartdate
508 endif
509 if ( vwindfile .NE. ' ' ) then
510 call cal_FullDate ( vwindstartdate1 , vwindstartdate2,
511 & date_array ,mythid )
512 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
513 call cal_ToSeconds ( difftime, vwindstartdate ,mythid )
514 vwindstartdate = modelstart + vwindstartdate
515 endif
516 #else
517 if ( ustressfile .NE. ' ' ) then
518 call cal_FullDate ( ustressstartdate1 , ustressstartdate2,
519 & date_array ,mythid )
520 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
521 call cal_ToSeconds ( difftime, ustressstartdate ,mythid )
522 ustressstartdate = modelstart + ustressstartdate
523 endif
524 if ( vstressfile .NE. ' ' ) then
525 call cal_FullDate ( vstressstartdate1 , vstressstartdate2,
526 & date_array ,mythid )
527 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
528 call cal_ToSeconds ( difftime, vstressstartdate ,mythid )
529 vstressstartdate = modelstart + vstressstartdate
530 endif
531 #endif
532
533 #ifdef ALLOW_ATM_TEMP
534 if ( atempfile .NE. ' ' ) then
535 call cal_FullDate ( atempstartdate1 , atempstartdate2,
536 & date_array ,mythid )
537 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
538 call cal_ToSeconds ( difftime, atempstartdate ,mythid )
539 atempstartdate = modelstart + atempstartdate
540 endif
541 if ( aqhfile .NE. ' ' ) then
542 call cal_FullDate ( aqhstartdate1 , aqhstartdate2,
543 & date_array ,mythid )
544 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
545 call cal_ToSeconds ( difftime, aqhstartdate ,mythid )
546 aqhstartdate = modelstart + aqhstartdate
547 endif
548 if ( lwfluxfile .NE. ' ' ) then
549 call cal_FullDate ( lwfluxstartdate1 , lwfluxstartdate2,
550 & date_array ,mythid )
551 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
552 call cal_ToSeconds ( difftime, lwfluxstartdate ,mythid )
553 lwfluxstartdate = modelstart + lwfluxstartdate
554 endif
555 if ( precipfile .NE. ' ' ) then
556 call cal_FullDate ( precipstartdate1 , precipstartdate2,
557 & date_array ,mythid )
558 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
559 call cal_ToSeconds ( difftime, precipstartdate ,mythid )
560 precipstartdate = modelstart + precipstartdate
561 endif
562 #else
563 if ( hfluxfile .NE. ' ' ) then
564 call cal_FullDate ( hfluxstartdate1 , hfluxstartdate2,
565 & date_array ,mythid )
566 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
567 call cal_ToSeconds ( difftime, hfluxstartdate ,mythid )
568 hfluxstartdate = modelstart + hfluxstartdate
569 endif
570 if ( sfluxfile .NE. ' ' ) then
571 call cal_FullDate ( sfluxstartdate1 , sfluxstartdate2,
572 & date_array ,mythid )
573 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
574 call cal_ToSeconds ( difftime, sfluxstartdate ,mythid )
575 sfluxstartdate = modelstart + sfluxstartdate
576 endif
577 #endif
578
579 #if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING)
580 if ( swfluxfile .NE. ' ' ) then
581 call cal_FullDate ( swfluxstartdate1 , swfluxstartdate2,
582 & date_array ,mythid )
583 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
584 call cal_ToSeconds ( difftime, swfluxstartdate ,mythid )
585 swfluxstartdate = modelstart + swfluxstartdate
586 endif
587 #endif
588
589 #ifdef EXF_READ_EVAP
590 if ( evapfile .NE. ' ' ) then
591 call cal_FullDate ( evapstartdate1 , evapstartdate2,
592 & date_array ,mythid )
593 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
594 call cal_ToSeconds ( difftime, evapstartdate ,mythid )
595 evapstartdate = modelstart + evapstartdate
596 endif
597 #endif
598
599 #ifdef ALLOW_RUNOFF
600 if ( runofffile .NE. ' ' ) then
601 call cal_FullDate ( runoffstartdate1 , runoffstartdate2,
602 & date_array ,mythid )
603 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
604 call cal_ToSeconds ( difftime, runoffstartdate ,mythid )
605 runoffstartdate = modelstart + runoffstartdate
606 endif
607 #endif
608
609 #ifdef ALLOW_DOWNWARD_RADIATION
610 if ( swdownfile .NE. ' ' ) then
611 call cal_FullDate ( swdownstartdate1 , swdownstartdate2,
612 & date_array ,mythid )
613 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
614 call cal_ToSeconds ( difftime, swdownstartdate ,mythid )
615 swdownstartdate = modelstart + swdownstartdate
616 endif
617 if ( lwdownfile .NE. ' ' ) then
618 call cal_FullDate ( lwdownstartdate1 , lwdownstartdate2,
619 & date_array ,mythid )
620 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
621 call cal_ToSeconds ( difftime, lwdownstartdate ,mythid )
622 lwdownstartdate = modelstart + lwdownstartdate
623 endif
624 #endif
625
626 #ifdef ATMOSPHERIC_LOADING
627 if ( apressurefile .NE. ' ' ) then
628 call cal_FullDate ( apressurestartdate1, apressurestartdate2,
629 & date_array ,mythid )
630 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
631 call cal_ToSeconds ( difftime, apressurestartdate ,mythid )
632 apressurestartdate = modelstart + apressurestartdate
633 endif
634 #endif
635
636 #ifdef ALLOW_OBCS
637 #ifdef ALLOW_OBCS_NORTH
638 if ( obcsNperiod .NE. 0 ) then
639 call cal_FullDate ( obcsNstartdate1 , obcsNstartdate2,
640 & date_array ,mythid )
641 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
642 call cal_ToSeconds ( difftime, obcsNstartdate ,mythid )
643 obcsNstartdate = modelstart + obcsNstartdate
644 endif
645 #endif
646 #ifdef ALLOW_OBCS_SOUTH
647 if ( obcsSperiod .NE. 0 ) then
648 call cal_FullDate ( obcsSstartdate1 , obcsSstartdate2,
649 & date_array ,mythid )
650 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
651 call cal_ToSeconds ( difftime, obcsSstartdate ,mythid )
652 obcsSstartdate = modelstart + obcsSstartdate
653 endif
654 #endif
655 #ifdef ALLOW_OBCS_EAST
656 if ( obcsEperiod .NE. 0 ) then
657 call cal_FullDate ( obcsEstartdate1 , obcsEstartdate2,
658 & date_array ,mythid )
659 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
660 call cal_ToSeconds ( difftime, obcsEstartdate ,mythid )
661 obcsEstartdate = modelstart + obcsEstartdate
662 endif
663 #endif
664 #ifdef ALLOW_OBCS_WEST
665 if ( obcsNperiod .NE. 0 ) then
666 call cal_FullDate ( obcsWstartdate1 , obcsWstartdate2,
667 & date_array ,mythid )
668 call cal_TimePassed(modelstartdate,date_array,difftime,mythid)
669 call cal_ToSeconds ( difftime, obcsWstartdate ,mythid )
670 obcsWstartdate = modelstart + obcsWstartdate
671 endif
672 #endif
673 #endif /* ALLOW_OBCS */
674
675 _END_MASTER( mythid )
676
677 _BARRIER
678
679 c-- Summarize the External forcing's setup.
680 call exf_summary( mythid )
681
682 c-- set climatology parameters
683 call exf_clim_readparms( mythid )
684
685 c-- summarize climatologic forcing configuration
686 call exf_clim_summary( mythid )
687
688 end

  ViewVC Help
Powered by ViewVC 1.1.22