/[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.48 - (show annotations) (download)
Mon May 14 19:36:37 2007 UTC (17 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59c, checkpoint59b, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j
Changes since 1.47: +76 -291 lines
- implement A-grid / C-grid selection for wind-stress input files
- move start date specifications for the forcing from EXF_READPARMS
  to EXF_INIT_FIXED (+ fix for windspeed input + 2. component wind-stress)

1 C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_readparms.F,v 1.47 2007/05/08 03:49:33 jmc Exp $
2 C $Name: $
3
4 #include "EXF_OPTIONS.h"
5
6 SUBROUTINE EXF_READPARMS( myThid )
7
8 c ==================================================================
9 c SUBROUTINE exf_readparms
10 c ==================================================================
11 c
12 c o This routine initialises the package that calculates external
13 c forcing fields for a given timestep of the MITgcmUV. Parameters
14 c for this package are set in "data.externalforcing". Some additional
15 c precompiler switches have to be specified in "EXF_OPTIONS.h".
16 c
17 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
18 c
19 c changed: Christian Eckert eckert@mit.edu 11-Jan-2000
20 c - Restructured the code in order to create a package
21 c for the MITgcmUV.
22 c Christian Eckert eckert@mit.edu 12-Feb-2000
23 c - Changed Routine names (package prefix: exf_)
24 c changed: Patrick Heimbach, heimbach@mit.edu 04-May-2000
25 c - changed the handling of precip and sflux with respect
26 c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
27 c changed: Ralf.Giering@FastOpt.de 25-Mai-20000
28 c - moved relaxation and climatology to extra routines
29 c Patrick Heimbach, heimbach@mit.edu 04-May-2000
30 c - added obcs parameters
31 c changed: Virginie Thierry, vthierry@ucsd.edu 04-June-2001
32 c - added new obcs parameters (for each boundaries)
33 c included runoff D. Stammer, Nov. 25, 2001
34 c included pressure forcing. heimbach@mit.edu 05-Nov-2002
35 c added "repeatPeriod" for cycling of forcing datasets 19-Dec-2002
36 c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
37 c
38 c ==================================================================
39 c SUBROUTINE exf_readparms
40 c ==================================================================
41
42 implicit none
43
44 c == global variables ==
45
46 #include "EEPARAMS.h"
47 #include "SIZE.h"
48 #include "PARAMS.h"
49 c#include "cal.h"
50 #include "EXF_PARAM.h"
51 #include "EXF_CONSTANTS.h"
52
53 c == routine arguments ==
54
55 integer myThid
56
57 c == local variables ==
58
59 integer i, idummy
60 integer iUnit
61
62 character*(max_len_mbuf) msgbuf
63
64 c == end of interface ==
65
66 c Surface flux data.
67 NAMELIST /EXF_NML_01/
68 & windstressmax, repeatPeriod, exf_albedo,
69 & ocean_emissivity, ice_emissivity, snow_emissivity,
70 & exf_iceCd, exf_iceCe, exf_iceCh,
71 & exf_scal_BulkCdn, climtempfreeze,
72 & exf_iprec, exf_yftype, exf_monFreq,
73 & useExfYearlyFields, twoDigitYear, useExfCheckRange,
74 & useStabilityFct_overIce, readStressOnAgrid, readStressOnCgrid,
75 & hu, ht, umin, atmrho, atmcp, cen2kel, gravity_mks,
76 & cdrag_1, cdrag_2, cdrag_3, cstanton_1, cstanton_2, cdalton,
77 & flamb, flami, zolmin, zref,
78 & cvapor_fac, cvapor_exp, cvapor_fac_ice, cvapor_exp_ice,
79 & humid_fac, gamma_blk, saltsat, psim_fac
80
81 NAMELIST /EXF_NML_02/
82 & hfluxfile, atempfile, aqhfile,
83 & sfluxfile, precipfile, runofffile,
84 & ustressfile, vstressfile, evapfile,
85 & snowprecipfile, uwindfile, vwindfile,
86 & wspeedfile, swfluxfile, lwfluxfile,
87 & apressurefile, swdownfile, lwdownfile,
88 & climsstfile, climsssfile,
89 & hfluxstartdate1, hfluxstartdate2, hfluxperiod,
90 & atempstartdate1, atempstartdate2, atempperiod,
91 & aqhstartdate1, aqhstartdate2, aqhperiod,
92 & sfluxstartdate1, sfluxstartdate2, sfluxperiod,
93 & evapstartdate1, evapstartdate2, evapperiod,
94 & precipstartdate1, precipstartdate2, precipperiod,
95 & snowprecipstartdate1, snowprecipstartdate2, snowprecipperiod,
96 & runoffstartdate1, runoffstartdate2, runoffperiod,
97 & ustressstartdate1, ustressstartdate2, ustressperiod,
98 & vstressstartdate1, vstressstartdate2, vstressperiod,
99 & uwindstartdate1, uwindstartdate2, uwindperiod,
100 & vwindstartdate1, vwindstartdate2, vwindperiod,
101 & wspeedstartdate1, wspeedstartdate2, wspeedperiod,
102 & swfluxstartdate1, swfluxstartdate2, swfluxperiod,
103 & lwfluxstartdate1, lwfluxstartdate2, lwfluxperiod,
104 & swdownstartdate1, swdownstartdate2, swdownperiod,
105 & lwdownstartdate1, lwdownstartdate2, lwdownperiod,
106 &apressurestartdate1,apressurestartdate2,apressureperiod,
107 & climsststartdate1, climsststartdate2, climsstperiod,
108 & climsssstartdate1, climsssstartdate2, climsssperiod
109
110 NAMELIST /EXF_NML_03/
111 & exf_inscal_hflux, exf_inscal_sflux, exf_inscal_evap,
112 & exf_inscal_ustress, exf_inscal_vstress,
113 & exf_inscal_uwind, exf_inscal_vwind, exf_inscal_wspeed,
114 & exf_inscal_atemp, exf_offset_atemp, exf_inscal_aqh,
115 & exf_inscal_sst, exf_inscal_sss,
116 & exf_inscal_swflux, exf_inscal_lwflux, exf_inscal_precip,
117 & exf_inscal_runoff, exf_inscal_apressure, exf_inscal_snowprecip,
118 & exf_inscal_swdown, exf_inscal_lwdown,
119 & exf_inscal_climsst, exf_inscal_climsss,
120 & exf_outscal_hflux, exf_outscal_ustress, exf_outscal_vstress,
121 & exf_outscal_swflux, exf_outscal_sst, exf_outscal_sss,
122 & exf_outscal_sflux, exf_outscal_apressure,
123 & hfluxconst, atempconst, aqhconst, sfluxconst, evapconst,
124 & precipconst, snowprecipconst, runoffconst, ustressconst,
125 & vstressconst, uwindconst, vwindconst, wspeedconst, swfluxconst,
126 & lwfluxconst, swdownconst, lwdownconst, apressureconst,
127 & climsstconst, climsssconst,
128 & hflux_exfremo_intercept, hflux_exfremo_slope,
129 & atemp_exfremo_intercept, atemp_exfremo_slope,
130 & aqh_exfremo_intercept, aqh_exfremo_slope,
131 & sflux_exfremo_intercept, sflux_exfremo_slope,
132 & evap_exfremo_intercept, evap_exfremo_slope,
133 & precip_exfremo_intercept, precip_exfremo_slope,
134 & snowprecip_exfremo_intercept, snowprecip_exfremo_slope,
135 & runoff_exfremo_intercept, runoff_exfremo_slope,
136 & ustress_exfremo_intercept, ustress_exfremo_slope,
137 & vstress_exfremo_intercept, vstress_exfremo_slope,
138 & uwind_exfremo_intercept, uwind_exfremo_slope,
139 & vwind_exfremo_intercept, vwind_exfremo_slope,
140 & wspeed_exfremo_intercept, wspeed_exfremo_slope,
141 & swflux_exfremo_intercept, swflux_exfremo_slope,
142 & lwflux_exfremo_intercept, lwflux_exfremo_slope,
143 & swdown_exfremo_intercept, swdown_exfremo_slope,
144 & lwdown_exfremo_intercept, lwdown_exfremo_slope,
145 & apressure_exfremo_intercept, apressure_exfremo_slope,
146 & climsst_exfremo_intercept, climsst_exfremo_slope,
147 & climsss_exfremo_intercept, climsss_exfremo_slope
148
149 NAMELIST /EXF_NML_04/
150 & idummy
151 #ifdef USE_EXF_INTERPOLATION
152 & , ustress_lon0, ustress_lon_inc, ustress_lat0, ustress_lat_inc,
153 & vstress_lon0, vstress_lon_inc, vstress_lat0, vstress_lat_inc,
154 & ustress_nlon, ustress_nlat, vstress_nlon, vstress_nlat,
155 & hflux_lon0, hflux_lon_inc, hflux_lat0, hflux_lat_inc,
156 & sflux_lon0, sflux_lon_inc, sflux_lat0, sflux_lat_inc,
157 & hflux_nlon, hflux_nlat, sflux_nlon, sflux_nlat,
158 & swflux_lon0, swflux_lon_inc, swflux_lat0, swflux_lat_inc,
159 & lwflux_lon0, lwflux_lon_inc, lwflux_lat0, lwflux_lat_inc,
160 & swflux_nlon, swflux_nlat, lwflux_nlon, lwflux_nlat,
161 & atemp_lon0, atemp_lon_inc, atemp_lat0, atemp_lat_inc,
162 & atemp_nlon, atemp_nlat,
163 & aqh_lon0, aqh_lon_inc, aqh_lat0, aqh_lat_inc, aqh_nlon, aqh_nlat,
164 &evap_lon0,evap_lon_inc,evap_lat0,evap_lat_inc,evap_nlon,evap_nlat,
165 & precip_lon0, precip_lon_inc, precip_lat0, precip_lat_inc,
166 & runoff_lon0, runoff_lon_inc, runoff_lat0, runoff_lat_inc,
167 & precip_nlon, precip_nlat, runoff_nlon, runoff_nlat,
168 & snowprecip_lon0, snowprecip_lon_inc, snowprecip_nlon,
169 & snowprecip_lat0, snowprecip_lat_inc, snowprecip_nlat,
170 & uwind_lon0, uwind_lon_inc, uwind_lat0, uwind_lat_inc,
171 & vwind_lon0, vwind_lon_inc, vwind_lat0, vwind_lat_inc,
172 & uwind_nlon, uwind_nlat, vwind_nlon, vwind_nlat,
173 & wspeed_lon0, wspeed_lon_inc, wspeed_lat0, wspeed_lat_inc,
174 & wspeed_nlon, wspeed_nlat,
175 & swdown_lon0, swdown_lon_inc, swdown_lat0, swdown_lat_inc,
176 & lwdown_lon0, lwdown_lon_inc, lwdown_lat0, lwdown_lat_inc,
177 & swdown_nlon, swdown_nlat, lwdown_nlon, lwdown_nlat,
178 & apressure_lon0,apressure_lon_inc,apressure_nlon,
179 & apressure_lat0,apressure_lat_inc,apressure_nlat,
180 & climsst_lon0, climsst_lon_inc, climsst_nlon,
181 & climsst_lat0, climsst_lat_inc, climsst_nlat,
182 & climsss_lon0, climsss_lon_inc, climsss_nlon,
183 & climsss_lat0, climsss_lat_inc, climsss_nlat
184 #endif
185
186 NAMELIST /EXF_NML_OBCS/
187 & obcsNstartdate1, obcsNstartdate2, obcsNperiod,
188 & obcsSstartdate1, obcsSstartdate2, obcsSperiod,
189 & obcsEstartdate1, obcsEstartdate2, obcsEperiod,
190 & obcsWstartdate1, obcsWstartdate2, obcsWperiod
191
192 _BEGIN_MASTER(mythid)
193
194 c Set default values.
195
196 year2sec = 365.*86400.
197 exf_monFreq = monitorFreq
198 useExfCheckRange = .TRUE.
199 readStressOnAgrid = .FALSE.
200 readStressOnCgrid = .FALSE.
201
202 C- default value should be set to main model parameter:
203 c cen2kel = celsius2K
204 c gravity_mks = gravity
205 c atmcp = atm_Cp
206 c humid_fac = atm_Rq <- default is zero !!!
207
208 cen2kel = 273.150 _d 0
209 gravity_mks = 9.81 _d 0
210 atmrho = 1.200 _d 0
211 atmcp = 1005.000 _d 0
212 flamb = 2500000.000 _d 0
213 flami = 334000.000 _d 0
214 cvapor_fac = 640380.000 _d 0
215 cvapor_exp = 5107.400 _d 0
216 cvapor_fac_ice = 11637800.000 _d 0
217 cvapor_exp_ice = 5897.800 _d 0
218 humid_fac = 0.606 _d 0
219 gamma_blk = 0.010 _d 0
220 saltsat = 0.980 _d 0
221 cdrag_1 = 0.0027000 _d 0
222 cdrag_2 = 0.0001420 _d 0
223 cdrag_3 = 0.0000764 _d 0
224 cstanton_1 = 0.0327 _d 0
225 cstanton_2 = 0.0180 _d 0
226 cdalton = 0.0346 _d 0
227 zolmin = -100.000 _d 0
228 psim_fac = 5.000 _d 0
229 zref = 10.000 _d 0
230 hu = 10.000 _d 0
231 ht = 2.000 _d 0
232 umin = 0.5 _d 0
233 useStabilityFct_overIce = .FALSE.
234 exf_iceCd = 1.63 _d -3
235 exf_iceCe = 1.63 _d -3
236 exf_iceCh = 1.63 _d -3
237 exf_albedo = 0.1 _d 0
238 c-- this default is chosen to be backward compatible with
239 c-- an earlier setting of 5.5 = ocean_emissivity*stefanBoltzmann
240 ocean_emissivity = 5.50 _d-8 / 5.670 _d-8
241 ice_emissivity = 0.95 _d 0
242 snow_emissivity = 0.95 _d 0
243
244 c Calendar data.
245 hfluxstartdate1 = 0
246 hfluxstartdate2 = 0
247 hfluxperiod = 0.0 _d 0
248 hfluxconst = 0.0 _d 0
249 hflux_exfremo_intercept = 0.0 _d 0
250 hflux_exfremo_slope = 0.0 _d 0
251
252 atempstartdate1 = 0
253 atempstartdate2 = 0
254 atempperiod = 0.0 _d 0
255 atempconst = celsius2K
256 atemp_exfremo_intercept = 0.0 _d 0
257 atemp_exfremo_slope = 0.0 _d 0
258
259 aqhstartdate1 = 0
260 aqhstartdate2 = 0
261 aqhperiod = 0.0 _d 0
262 aqhconst = 0.0 _d 0
263 aqh_exfremo_intercept = 0.0 _d 0
264 aqh_exfremo_slope = 0.0 _d 0
265
266 sfluxstartdate1 = 0
267 sfluxstartdate2 = 0
268 sfluxperiod = 0.0 _d 0
269 sfluxconst = 0.0 _d 0
270 sflux_exfremo_intercept = 0.0 _d 0
271 sflux_exfremo_slope = 0.0 _d 0
272
273 evapstartdate1 = 0
274 evapstartdate2 = 0
275 evapperiod = 0.0 _d 0
276 evapconst = 0.0 _d 0
277 evap_exfremo_intercept = 0.0 _d 0
278 evap_exfremo_slope = 0.0 _d 0
279
280 precipstartdate1 = 0
281 precipstartdate2 = 0
282 precipperiod = 0.0 _d 0
283 precipconst = 0.0 _d 0
284 precip_exfremo_intercept = 0.0 _d 0
285 precip_exfremo_slope = 0.0 _d 0
286
287 snowprecipstartdate1 = 0
288 snowprecipstartdate2 = 0
289 snowprecipperiod = 0.0 _d 0
290 snowprecipconst = 0.0 _d 0
291 snowprecip_exfremo_intercept = 0.0 _d 0
292 snowprecip_exfremo_slope = 0.0 _d 0
293
294 runoffstartdate1 = 0
295 runoffstartdate2 = 0
296 runoffperiod = 0.0 _d 0
297 runoffconst = 0.0 _d 0
298 runoff_exfremo_intercept = 0.0 _d 0
299 runoff_exfremo_slope = 0.0 _d 0
300
301 ustressstartdate1 = 0
302 ustressstartdate2 = 0
303 ustressperiod = 0.0 _d 0
304 ustressconst = 0.0 _d 0
305 ustress_exfremo_intercept = 0.0 _d 0
306 ustress_exfremo_slope = 0.0 _d 0
307
308 vstressstartdate1 = 0
309 vstressstartdate2 = 0
310 vstressperiod = 0.0 _d 0
311 vstressconst = 0.0 _d 0
312 vstress_exfremo_intercept = 0.0 _d 0
313 vstress_exfremo_slope = 0.0 _d 0
314
315 uwindstartdate1 = 0
316 uwindstartdate2 = 0
317 uwindperiod = 0.0 _d 0
318 uwindconst = 0.0 _d 0
319 uwind_exfremo_intercept = 0.0 _d 0
320 uwind_exfremo_slope = 0.0 _d 0
321
322 vwindstartdate1 = 0
323 vwindstartdate2 = 0
324 vwindperiod = 0.0 _d 0
325 vwindconst = 0.0 _d 0
326 vwind_exfremo_intercept = 0.0 _d 0
327 vwind_exfremo_slope = 0.0 _d 0
328
329 wspeedstartdate1 = 0
330 wspeedstartdate2 = 0
331 wspeedperiod = 0.0 _d 0
332 wspeedconst = 0.0 _d 0
333 wspeed_exfremo_intercept = 0.0 _d 0
334 wspeed_exfremo_slope = 0.0 _d 0
335
336 swfluxstartdate1 = 0
337 swfluxstartdate2 = 0
338 swfluxperiod = 0.0 _d 0
339 swfluxconst = 0.0 _d 0
340 swflux_exfremo_intercept = 0.0 _d 0
341 swflux_exfremo_slope = 0.0 _d 0
342
343 lwfluxstartdate1 = 0
344 lwfluxstartdate2 = 0
345 lwfluxperiod = 0.0 _d 0
346 lwfluxconst = 0.0 _d 0
347 lwflux_exfremo_intercept = 0.0 _d 0
348 lwflux_exfremo_slope = 0.0 _d 0
349
350 swdownstartdate1 = 0
351 swdownstartdate2 = 0
352 swdownperiod = 0.0 _d 0
353 swdownconst = 0.0 _d 0
354 swdown_exfremo_intercept = 0.0 _d 0
355 swdown_exfremo_slope = 0.0 _d 0
356
357 lwdownstartdate1 = 0
358 lwdownstartdate2 = 0
359 lwdownperiod = 0.0 _d 0
360 lwdownconst = 0.0 _d 0
361 lwdown_exfremo_intercept = 0.0 _d 0
362 lwdown_exfremo_slope = 0.0 _d 0
363
364 apressurestartdate1 = 0
365 apressurestartdate2 = 0
366 apressureperiod = 0.0 _d 0
367 apressureconst = 0.0 _d 0
368 apressure_exfremo_intercept = 0.0 _d 0
369 apressure_exfremo_slope = 0.0 _d 0
370
371 climsststartdate1 = 0
372 climsststartdate2 = 0
373 climsstperiod = 0
374 climsstconst = 0.0 _d 0
375 climsst_exfremo_intercept = 0.0 _d 0
376 climsst_exfremo_slope = 0.0 _d 0
377
378 climsssstartdate1 = 0
379 climsssstartdate2 = 0
380 climsssperiod = 0
381 climsssconst = 0.0 _d 0
382 climsss_exfremo_intercept = 0.0 _d 0
383 climsss_exfremo_slope = 0.0 _d 0
384
385 obcsNstartdate1 = 0
386 obcsNstartdate2 = 0
387 obcsNperiod = 0.0 _d 0
388
389 obcsSstartdate1 = 0
390 obcsSstartdate2 = 0
391 obcsSperiod = 0.0 _d 0
392
393 obcsEstartdate1 = 0
394 obcsEstartdate2 = 0
395 obcsEperiod = 0.0 _d 0
396
397 obcsWstartdate1 = 0
398 obcsWstartdate2 = 0
399 obcsWperiod = 0.0 _d 0
400
401 repeatPeriod = 0.0 _d 0
402 windstressmax = 2.0 _d 0
403
404 exf_scal_BulkCdn = 1.0 _d 0
405
406 c Initialise freezing temperature of sea water
407 climtempfreeze = -1.9 _d 0
408
409 c Data files.
410 hfluxfile = ' '
411 atempfile = ' '
412 aqhfile = ' '
413 evapfile = ' '
414 precipfile = ' '
415 snowprecipfile = ' '
416 sfluxfile = ' '
417 runofffile = ' '
418 ustressfile = ' '
419 vstressfile = ' '
420 uwindfile = ' '
421 vwindfile = ' '
422 wspeedfile = ' '
423 swfluxfile = ' '
424 lwfluxfile = ' '
425 swdownfile = ' '
426 lwdownfile = ' '
427 apressurefile = ' '
428 climsstfile = ' '
429 climsssfile = ' '
430
431 c Start dates.
432 hfluxstartdate = 0.
433 atempstartdate = 0.
434 aqhstartdate = 0.
435 evapstartdate = 0.
436 precipstartdate = 0.
437 snowprecipstartdate= 0.
438 sfluxstartdate = 0.
439 runoffstartdate = 0.
440 ustressstartdate = 0.
441 vstressstartdate = 0.
442 uwindstartdate = 0.
443 vwindstartdate = 0.
444 wspeedstartdate = 0.
445 swfluxstartdate = 0.
446 lwfluxstartdate = 0.
447 swdownstartdate = 0.
448 lwdownstartdate = 0.
449 obcsNstartdate = 0.
450 obcsSstartdate = 0.
451 obcsEstartdate = 0.
452 obcsWstartdate = 0.
453 apressurestartdate = 0.
454 climsststartdate = 0.
455 climsssstartdate = 0.
456
457 c Initialise file type and field precision
458 exf_iprec = 32
459 exf_yftype = 'RL'
460 useExfYearlyFields = .FALSE.
461 twoDigitYear = .FALSE.
462
463 c Input scaling factors.
464 exf_inscal_hflux = 1. _d 0
465 exf_inscal_sflux = 1. _d 0
466 exf_inscal_ustress = 1. _d 0
467 exf_inscal_vstress = 1. _d 0
468 exf_inscal_uwind = 1. _d 0
469 exf_inscal_vwind = 1. _d 0
470 exf_inscal_wspeed = 1. _d 0
471 exf_inscal_swflux = 1. _d 0
472 exf_inscal_lwflux = 1. _d 0
473 exf_inscal_precip = 1. _d 0
474 exf_inscal_snowprecip= 1. _d 0
475 exf_inscal_sst = 1. _d 0
476 exf_inscal_sss = 1. _d 0
477 exf_inscal_atemp = 1. _d 0
478 exf_offset_atemp = 0. _d 0
479 exf_inscal_aqh = 1. _d 0
480 exf_inscal_evap = 1. _d 0
481 exf_inscal_apressure = 1. _d 0
482 exf_inscal_runoff = 1. _d 0
483 exf_inscal_swdown = 1. _d 0
484 exf_inscal_lwdown = 1. _d 0
485 exf_inscal_climsst = 1. _d 0
486 exf_inscal_climsss = 1. _d 0
487
488 c Output scaling factors.
489 exf_outscal_hflux = 1. _d 0
490 exf_outscal_sflux = 1. _d 0
491 exf_outscal_ustress = 1. _d 0
492 exf_outscal_vstress = 1. _d 0
493 exf_outscal_swflux = 1. _d 0
494 exf_outscal_sst = 1. _d 0
495 exf_outscal_sss = 1. _d 0
496 exf_outscal_apressure= 1. _d 0
497
498 #ifdef USE_EXF_INTERPOLATION
499 ustress_lon0 = thetaMin
500 uwind_lon0 = thetaMin
501 vstress_lon0 = thetaMin + delX(1)*exf_half
502 hflux_lon0 = thetaMin + delX(1)*exf_half
503 sflux_lon0 = thetaMin + delX(1)*exf_half
504 swflux_lon0 = thetaMin + delX(1)*exf_half
505 runoff_lon0 = thetaMin + delX(1)*exf_half
506 atemp_lon0 = thetaMin + delX(1)*exf_half
507 aqh_lon0 = thetaMin + delX(1)*exf_half
508 evap_lon0 = thetaMin + delX(1)*exf_half
509 precip_lon0 = thetaMin + delX(1)*exf_half
510 snowprecip_lon0= thetaMin + delX(1)*exf_half
511 vwind_lon0 = thetaMin + delX(1)*exf_half
512 wspeed_lon0 = thetaMin + delX(1)*exf_half
513 lwflux_lon0 = thetaMin + delX(1)*exf_half
514 swdown_lon0 = thetaMin + delX(1)*exf_half
515 lwdown_lon0 = thetaMin + delX(1)*exf_half
516 apressure_lon0 = thetaMin + delX(1)*exf_half
517 vstress_lat0 = phimin
518 vwind_lat0 = phimin
519 wspeed_lat0 = phimin
520 ustress_lat0 = phimin + delY(1)*exf_half
521 hflux_lat0 = phimin + delY(1)*exf_half
522 sflux_lat0 = phimin + delY(1)*exf_half
523 runoff_lat0 = phimin + delY(1)*exf_half
524 swflux_lat0 = phimin + delY(1)*exf_half
525 atemp_lat0 = phimin + delY(1)*exf_half
526 aqh_lat0 = phimin + delY(1)*exf_half
527 evap_lat0 = phimin + delY(1)*exf_half
528 precip_lat0 = phimin + delY(1)*exf_half
529 snowprecip_lat0= phimin + delY(1)*exf_half
530 uwind_lat0 = phimin + delY(1)*exf_half
531 lwflux_lat0 = phimin + delY(1)*exf_half
532 swdown_lat0 = phimin + delY(1)*exf_half
533 lwdown_lat0 = phimin + delY(1)*exf_half
534 apressure_lat0 = phimin + delY(1)*exf_half
535 ustress_nlon = Nx
536 ustress_nlat = Ny
537 vstress_nlon = Nx
538 vstress_nlat = Ny
539 hflux_nlon = Nx
540 hflux_nlat = Ny
541 sflux_nlon = Nx
542 sflux_nlat = Ny
543 swflux_nlon = Nx
544 swflux_nlat = Ny
545 runoff_nlon = Nx
546 runoff_nlat = Ny
547 atemp_nlon = Nx
548 atemp_nlat = Ny
549 aqh_nlon = Nx
550 aqh_nlat = Ny
551 evap_nlon = Nx
552 evap_nlat = Ny
553 precip_nlon = Nx
554 snowprecip_nlon= Nx
555 precip_nlat = Ny
556 snowprecip_nlat= Ny
557 uwind_nlon = Nx
558 uwind_nlat = Ny
559 vwind_nlon = Nx
560 vwind_nlat = Ny
561 wspeed_nlon = Nx
562 wspeed_nlat = Ny
563 lwflux_nlon = Nx
564 lwflux_nlat = Ny
565 swdown_nlon = Nx
566 swdown_nlat = Ny
567 lwdown_nlon = Nx
568 lwdown_nlat = Ny
569 apressure_nlon = Nx
570 apressure_nlat = Ny
571 Ustress_lon_inc = delX(1)
572 vstress_lon_inc = delX(1)
573 hflux_lon_inc = delX(1)
574 sflux_lon_inc = delX(1)
575 swflux_lon_inc = delX(1)
576 runoff_lon_inc = delX(1)
577 atemp_lon_inc = delX(1)
578 aqh_lon_inc = delX(1)
579 evap_lon_inc = delX(1)
580 precip_lon_inc = delX(1)
581 snowprecip_lon_inc= delX(1)
582 uwind_lon_inc = delX(1)
583 vwind_lon_inc = delX(1)
584 wspeed_lon_inc = delX(1)
585 lwflux_lon_inc = delX(1)
586 swdown_lon_inc = delX(1)
587 lwdown_lon_inc = delX(1)
588 apressure_lon_inc = delX(1)
589 climsst_lon0 = thetaMin + delX(1)*exf_half
590 climsss_lon0 = thetaMin + delX(1)*exf_half
591 climsst_lat0 = phimin + delY(1)*exf_half
592 climsss_lat0 = phimin + delY(1)*exf_half
593 climsst_nlon = Nx
594 climsst_nlat = Ny
595 climsss_nlon = Nx
596 climsss_nlat = Ny
597 climsst_lon_inc = delX(1)
598 climsss_lon_inc = delX(1)
599 DO i=1,MAX_LAT_INC
600 IF (i.LT.Ny) THEN
601 vstress_lat_inc(i) = delY(i)
602 vwind_lat_inc(i) = delY(i)
603 wspeed_lat_inc(i) = delY(i)
604 ustress_lat_inc(i) = (delY(i) + delY(i))*exf_half
605 hflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
606 sflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
607 swflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
608 runoff_lat_inc(i) = (delY(i) + delY(i))*exf_half
609 atemp_lat_inc(i) = (delY(i) + delY(i))*exf_half
610 aqh_lat_inc(i) = (delY(i) + delY(i))*exf_half
611 evap_lat_inc(i) = (delY(i) + delY(i))*exf_half
612 precip_lat_inc(i) = (delY(i) + delY(i))*exf_half
613 snowprecip_lat_inc(i)= (delY(i) + delY(i))*exf_half
614 uwind_lat_inc(i) = (delY(i) + delY(i))*exf_half
615 lwflux_lat_inc(i) = (delY(i) + delY(i))*exf_half
616 swdown_lat_inc(i) = (delY(i) + delY(i))*exf_half
617 lwdown_lat_inc(i) = (delY(i) + delY(i))*exf_half
618 apressure_lat_inc(i) = (delY(i) + delY(i))*exf_half
619 climsst_lat_inc(i) = (delY(i) + delY(i))*exf_half
620 climsss_lat_inc(i) = (delY(i) + delY(i))*exf_half
621 ELSE
622 ustress_lat_inc(i) = 0.
623 vstress_lat_inc(i) = 0.
624 hflux_lat_inc(i) = 0.
625 sflux_lat_inc(i) = 0.
626 swflux_lat_inc(i) = 0.
627 runoff_lat_inc(i) = 0.
628 atemp_lat_inc(i) = 0.
629 aqh_lat_inc(i) = 0.
630 evap_lat_inc(i) = 0.
631 precip_lat_inc(i) = 0.
632 snowprecip_lat_inc(i)= 0.
633 uwind_lat_inc(i) = 0.
634 vwind_lat_inc(i) = 0.
635 wspeed_lat_inc(i) = 0.
636 lwflux_lat_inc(i) = 0.
637 swdown_lat_inc(i) = 0.
638 lwdown_lat_inc(i) = 0.
639 apressure_lat_inc(i) = 0.
640 climsst_lat_inc(i) = 0.
641 climsss_lat_inc(i) = 0.
642 ENDIF
643 ENDDO
644 #endif /* USE_EXF_INTERPOLATION */
645
646 c Next, read the forcing data file.
647 WRITE(msgBuf,'(A)') 'EXF_READPARMS: opening data.exf'
648 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
649 & SQUEEZE_RIGHT , 1)
650
651 CALL OPEN_COPY_DATA_FILE(
652 I 'data.exf', 'EXF_READPARMS',
653 O iUnit,
654 I myThid )
655
656 WRITE(msgBuf,'(A)')
657 & 'EXF_READPARMS: reading EXF_NML_01'
658 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
659 & SQUEEZE_RIGHT , 1)
660 READ( iUnit, nml = EXF_NML_01 )
661 WRITE(msgBuf,'(A)')
662 & 'EXF_READPARMS: reading EXF_NML_02'
663 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
664 & SQUEEZE_RIGHT , 1)
665 READ( iUnit, nml = EXF_NML_02 )
666 WRITE(msgBuf,'(A)')
667 & 'EXF_READPARMS: reading EXF_NML_03'
668 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
669 & SQUEEZE_RIGHT , 1)
670 READ( iUnit, nml = EXF_NML_03 )
671 WRITE(msgBuf,'(A)')
672 & 'EXF_READPARMS: reading EXF_NML_04'
673 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
674 & SQUEEZE_RIGHT , 1)
675 READ( iUnit, nml = EXF_NML_04 )
676 #ifdef ALLOW_OBCS
677 WRITE(msgBuf,'(A)')
678 & 'EXF_READPARMS: reading EXF_NML_OBCS'
679 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
680 & SQUEEZE_RIGHT , 1)
681 READ( iUnit, nml = EXF_NML_OBCS )
682 #endif
683
684 WRITE(msgBuf,'(A)')
685 & 'EXF_READPARMS: finished reading data.exf'
686 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
687 & SQUEEZE_RIGHT , 1)
688
689 CLOSE( iUnit )
690
691 C-- Derive other parameters:
692 hq = ht
693 #if ( ( defined (ALLOW_BULKFORMULAE) && defined (ALLOW_ATM_WIND) ) \
694 || defined (USE_EXF_INTERPOLATION) )
695 stressIsOnCgrid = .FALSE.
696 #else
697 stressIsOnCgrid = readStressOnCgrid
698 #endif
699
700 CALL EXF_CHECK( myThid )
701
702 c Complete the start date specifications for the forcing
703 c fields to get a complete calendar date array.
704 C => moved to EXF_INIT_FIXED
705
706 _END_MASTER( mythid )
707 _BARRIER
708
709 RETURN
710 END

  ViewVC Help
Powered by ViewVC 1.1.22