1 |
c $Header: /u/gcmpack/MITgcm/pkg/exf/exf_param.h,v 1.14 2004/03/03 05:17:44 dimitri Exp $ |
2 |
c |
3 |
c |
4 |
c ================================================================== |
5 |
c HEADER exf_param |
6 |
c ================================================================== |
7 |
c |
8 |
c o Header file for the surface flux data. Used by the external |
9 |
c forcing package. |
10 |
c |
11 |
c started: Christian Eckert eckert@mit.edu 30-Jun-1999 |
12 |
c |
13 |
c changed: Christian Eckert eckert@mit.edu 14-Jan-2000 |
14 |
c - Restructured the original version in order to have a |
15 |
c better interface to the MITgcmUV. |
16 |
c |
17 |
c Christian Eckert eckert@mit.edu 12-Feb-2000 |
18 |
c - Changed some variables names (package prefix: exf_) |
19 |
c |
20 |
c Patrick Heimbach, heimbach@mit.edu 04-May-2000 |
21 |
c - included exf_iprec, exf_yftype to enable easy |
22 |
c switch between 32bit/64 bit data format |
23 |
c |
24 |
c Patrick Heimbach, heimbach@mit.edu 01-May-2001 |
25 |
c - added obcs parameters |
26 |
c |
27 |
c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002 |
28 |
c |
29 |
c ================================================================== |
30 |
c HEADER exf_param |
31 |
c ================================================================== |
32 |
|
33 |
c Calendar data. |
34 |
_RL repeatPeriod |
35 |
|
36 |
c Sea-water albedo |
37 |
_RL exf_albedo |
38 |
|
39 |
integer hfluxstartdate1 |
40 |
integer hfluxstartdate2 |
41 |
_RL hfluxstartdate |
42 |
_RL hfluxperiod |
43 |
_RL hfluxconst |
44 |
character*1 hfluxmask |
45 |
parameter( hfluxmask = 's' ) |
46 |
|
47 |
integer atempstartdate1 |
48 |
integer atempstartdate2 |
49 |
_RL atempstartdate |
50 |
_RL atempperiod |
51 |
_RL atempconst |
52 |
character*1 atempmask |
53 |
parameter( atempmask = 's' ) |
54 |
|
55 |
integer aqhstartdate1 |
56 |
integer aqhstartdate2 |
57 |
_RL aqhstartdate |
58 |
_RL aqhperiod |
59 |
_RL aqhconst |
60 |
character*1 aqhmask |
61 |
parameter( aqhmask = 's' ) |
62 |
|
63 |
integer sfluxstartdate1 |
64 |
integer sfluxstartdate2 |
65 |
_RL sfluxstartdate |
66 |
_RL sfluxperiod |
67 |
_RL sfluxconst |
68 |
character*1 sfluxmask |
69 |
parameter( sfluxmask = 's' ) |
70 |
|
71 |
integer evapstartdate1 |
72 |
integer evapstartdate2 |
73 |
_RL evapstartdate |
74 |
_RL evapperiod |
75 |
_RL evapconst |
76 |
character*1 evapmask |
77 |
parameter( evapmask = 's' ) |
78 |
|
79 |
integer precipstartdate1 |
80 |
integer precipstartdate2 |
81 |
_RL precipstartdate |
82 |
_RL precipperiod |
83 |
_RL precipconst |
84 |
character*1 precipmask |
85 |
parameter( precipmask = 's' ) |
86 |
|
87 |
integer runoffstartdate1 |
88 |
integer runoffstartdate2 |
89 |
_RL runoffstartdate |
90 |
_RL runoffperiod |
91 |
_RL runoffconst |
92 |
character*1 runoffmask |
93 |
parameter( runoffmask = 's' ) |
94 |
|
95 |
integer ustressstartdate1 |
96 |
integer ustressstartdate2 |
97 |
_RL ustressstartdate |
98 |
_RL ustressperiod |
99 |
_RL ustressconst |
100 |
character*1 ustressmask |
101 |
parameter( ustressmask = 'u' ) |
102 |
|
103 |
integer vstressstartdate1 |
104 |
integer vstressstartdate2 |
105 |
_RL vstressstartdate |
106 |
_RL vstressperiod |
107 |
_RL vstressconst |
108 |
character*1 vstressmask |
109 |
parameter( vstressmask = 'v' ) |
110 |
|
111 |
integer uwindstartdate1 |
112 |
integer uwindstartdate2 |
113 |
_RL uwindstartdate |
114 |
_RL uwindperiod |
115 |
_RL uwindconst |
116 |
character*1 uwindmask |
117 |
parameter( uwindmask = 'u' ) |
118 |
|
119 |
integer vwindstartdate1 |
120 |
integer vwindstartdate2 |
121 |
_RL vwindstartdate |
122 |
_RL vwindperiod |
123 |
_RL vwindconst |
124 |
character*1 vwindmask |
125 |
parameter( vwindmask = 'v' ) |
126 |
|
127 |
integer swfluxstartdate1 |
128 |
integer swfluxstartdate2 |
129 |
_RL swfluxstartdate |
130 |
_RL swfluxperiod |
131 |
_RL swfluxconst |
132 |
character*1 swfluxmask |
133 |
parameter( swfluxmask = 's' ) |
134 |
|
135 |
integer lwfluxstartdate1 |
136 |
integer lwfluxstartdate2 |
137 |
_RL lwfluxstartdate |
138 |
_RL lwfluxperiod |
139 |
_RL lwfluxconst |
140 |
character*1 lwfluxmask |
141 |
parameter( lwfluxmask = 's' ) |
142 |
|
143 |
integer swdownstartdate1 |
144 |
integer swdownstartdate2 |
145 |
_RL swdownstartdate |
146 |
_RL swdownperiod |
147 |
_RL swdownconst |
148 |
character*1 swdownmask |
149 |
parameter( swdownmask = 's' ) |
150 |
|
151 |
integer lwdownstartdate1 |
152 |
integer lwdownstartdate2 |
153 |
_RL lwdownstartdate |
154 |
_RL lwdownperiod |
155 |
_RL lwdownconst |
156 |
character*1 lwdownmask |
157 |
parameter( lwdownmask = 's' ) |
158 |
|
159 |
integer obcsNstartdate1 |
160 |
integer obcsNstartdate2 |
161 |
_RL obcsNstartdate |
162 |
_RL obcsNperiod |
163 |
|
164 |
integer obcsSstartdate1 |
165 |
integer obcsSstartdate2 |
166 |
_RL obcsSstartdate |
167 |
_RL obcsSperiod |
168 |
|
169 |
integer obcsEstartdate1 |
170 |
integer obcsEstartdate2 |
171 |
_RL obcsEstartdate |
172 |
_RL obcsEperiod |
173 |
|
174 |
integer obcsWstartdate1 |
175 |
integer obcsWstartdate2 |
176 |
_RL obcsWstartdate |
177 |
_RL obcsWperiod |
178 |
|
179 |
integer apressurestartdate1 |
180 |
integer apressurestartdate2 |
181 |
_RL apressurestartdate |
182 |
_RL apressureperiod |
183 |
_RL apressureconst |
184 |
character*1 apressuremask |
185 |
parameter( apressuremask = 's' ) |
186 |
|
187 |
c File names. |
188 |
character*(128) hfluxfile |
189 |
character*(128) atempfile |
190 |
character*(128) aqhfile |
191 |
character*(128) evapfile |
192 |
character*(128) precipfile |
193 |
character*(128) sfluxfile |
194 |
character*(128) runofffile |
195 |
character*(128) ustressfile |
196 |
character*(128) vstressfile |
197 |
character*(128) uwindfile |
198 |
character*(128) vwindfile |
199 |
character*(128) swfluxfile |
200 |
character*(128) lwfluxfile |
201 |
character*(128) swdownfile |
202 |
character*(128) lwdownfile |
203 |
character*(128) apressurefile |
204 |
|
205 |
common /exf_param_i/ |
206 |
& hfluxstartdate1, hfluxstartdate2, |
207 |
& atempstartdate1, atempstartdate2, |
208 |
& aqhstartdate1, aqhstartdate2, |
209 |
& sfluxstartdate1, sfluxstartdate2, |
210 |
& evapstartdate1, evapstartdate2, |
211 |
& runoffstartdate1, runoffstartdate2, |
212 |
& precipstartdate1, precipstartdate2, |
213 |
& ustressstartdate1, ustressstartdate2, |
214 |
& vstressstartdate1, vstressstartdate2, |
215 |
& uwindstartdate1, uwindstartdate2, |
216 |
& vwindstartdate1, vwindstartdate2, |
217 |
& swfluxstartdate1, swfluxstartdate2, |
218 |
& lwfluxstartdate1, lwfluxstartdate2, |
219 |
& swdownstartdate1, swdownstartdate2, |
220 |
& lwdownstartdate1, lwdownstartdate2, |
221 |
& obcsNstartdate1, obcsNstartdate2, |
222 |
& obcsSstartdate1, obcsSstartdate2, |
223 |
& obcsEstartdate1, obcsEstartdate2, |
224 |
& obcsWstartdate1, obcsWstartdate2, |
225 |
& apressurestartdate1,apressurestartdate2 |
226 |
|
227 |
common /exf_param_r/ |
228 |
& repeatPeriod, exf_albedo, |
229 |
& hfluxperiod, hfluxstartdate, |
230 |
& atempperiod, atempstartdate, |
231 |
& aqhperiod, aqhstartdate, |
232 |
& sfluxperiod, sfluxstartdate, |
233 |
& evapperiod, evapstartdate, |
234 |
& precipperiod, precipstartdate, |
235 |
& runoffperiod, runoffstartdate, |
236 |
& ustressperiod, ustressstartdate, |
237 |
& vstressperiod, vstressstartdate, |
238 |
& uwindperiod, uwindstartdate, |
239 |
& vwindperiod, vwindstartdate, |
240 |
& swfluxperiod, swfluxstartdate, |
241 |
& lwfluxperiod, lwfluxstartdate, |
242 |
& swdownperiod, swdownstartdate, |
243 |
& lwdownperiod, lwdownstartdate, |
244 |
& obcsNperiod, obcsNstartdate, |
245 |
& obcsSperiod, obcsSstartdate, |
246 |
& obcsEperiod, obcsEstartdate, |
247 |
& obcsWperiod, obcsWstartdate, |
248 |
& apressureperiod, apressurestartdate, |
249 |
& hfluxconst, |
250 |
& atempconst, |
251 |
& aqhconst, |
252 |
& sfluxconst, |
253 |
& evapconst, |
254 |
& precipconst, |
255 |
& runoffconst, |
256 |
& ustressconst, |
257 |
& vstressconst, |
258 |
& uwindconst, |
259 |
& vwindconst, |
260 |
& swfluxconst, |
261 |
& lwfluxconst, |
262 |
& swdownconst, |
263 |
& lwdownconst, |
264 |
& apressureconst |
265 |
|
266 |
common /exf_param_c/ |
267 |
& hfluxfile, |
268 |
& atempfile, |
269 |
& aqhfile, |
270 |
& sfluxfile, |
271 |
& evapfile, |
272 |
& precipfile, |
273 |
& runofffile, |
274 |
& ustressfile, |
275 |
& vstressfile, |
276 |
& uwindfile, |
277 |
& vwindfile, |
278 |
& swfluxfile, |
279 |
& lwfluxfile, |
280 |
& swdownfile, |
281 |
& lwdownfile, |
282 |
& apressurefile |
283 |
|
284 |
c file precision and field type |
285 |
|
286 |
common /exf_param_type/ |
287 |
& exf_iprec, |
288 |
& exf_yftype |
289 |
|
290 |
integer exf_iprec |
291 |
character*(2) exf_yftype |
292 |
|
293 |
c exf_inscal_* input scaling factors |
294 |
c exf_offset_atemp input air temperature offset |
295 |
c (for conversion from C to K, if needed) |
296 |
c exf_outscale_* output scaling factors |
297 |
|
298 |
_RL exf_inscal_hflux |
299 |
_RL exf_inscal_sflux |
300 |
_RL exf_inscal_ustress |
301 |
_RL exf_inscal_vstress |
302 |
_RL exf_inscal_uwind |
303 |
_RL exf_inscal_vwind |
304 |
_RL exf_inscal_swflux |
305 |
_RL exf_inscal_lwflux |
306 |
_RL exf_inscal_precip |
307 |
_RL exf_inscal_sst |
308 |
_RL exf_inscal_sss |
309 |
_RL exf_inscal_atemp |
310 |
_RL exf_offset_atemp |
311 |
_RL exf_inscal_aqh |
312 |
_RL exf_inscal_evap |
313 |
_RL exf_inscal_apressure |
314 |
_RL exf_inscal_runoff |
315 |
_RL exf_inscal_swdown |
316 |
_RL exf_inscal_lwdown |
317 |
|
318 |
_RL exf_outscal_hflux |
319 |
_RL exf_outscal_sflux |
320 |
_RL exf_outscal_ustress |
321 |
_RL exf_outscal_vstress |
322 |
_RL exf_outscal_swflux |
323 |
_RL exf_outscal_sst |
324 |
_RL exf_outscal_sss |
325 |
_RL exf_outscal_apressure |
326 |
|
327 |
common /exf_param_scal/ |
328 |
& exf_inscal_hflux |
329 |
& , exf_inscal_sflux |
330 |
& , exf_inscal_ustress |
331 |
& , exf_inscal_vstress |
332 |
& , exf_inscal_uwind |
333 |
& , exf_inscal_vwind |
334 |
& , exf_inscal_swflux |
335 |
& , exf_inscal_lwflux |
336 |
& , exf_inscal_precip |
337 |
& , exf_inscal_sst |
338 |
& , exf_inscal_sss |
339 |
& , exf_inscal_atemp |
340 |
& , exf_offset_atemp |
341 |
& , exf_inscal_aqh |
342 |
& , exf_inscal_evap |
343 |
& , exf_inscal_apressure |
344 |
& , exf_inscal_runoff |
345 |
& , exf_inscal_swdown |
346 |
& , exf_inscal_lwdown |
347 |
& , exf_outscal_hflux |
348 |
& , exf_outscal_sflux |
349 |
& , exf_outscal_ustress |
350 |
& , exf_outscal_vstress |
351 |
& , exf_outscal_swflux |
352 |
& , exf_outscal_sst |
353 |
& , exf_outscal_sss |
354 |
& , exf_outscal_apressure |
355 |
|
356 |
#ifndef USE_EXF_INTERPOLATION |
357 |
c-- set dummy dimension 1 |
358 |
integer MAX_LAT_INC |
359 |
parameter(MAX_LAT_INC = 1) |
360 |
#else |
361 |
c for lat interpolation, arraysize currently set to 250 max data values |
362 |
integer MAX_LAT_INC |
363 |
parameter(MAX_LAT_INC = 250) |
364 |
_RL ustress_lon0, ustress_lon_inc |
365 |
_RL ustress_lat0, ustress_lat_inc(MAX_LAT_INC) |
366 |
INTEGER ustress_nlon, ustress_nlat |
367 |
_RL vstress_lon0, vstress_lon_inc |
368 |
_RL vstress_lat0, vstress_lat_inc(MAX_LAT_INC) |
369 |
INTEGER vstress_nlon, vstress_nlat |
370 |
_RL hflux_lon0, hflux_lon_inc |
371 |
_RL hflux_lat0, hflux_lat_inc(MAX_LAT_INC) |
372 |
INTEGER hflux_nlon, hflux_nlat |
373 |
_RL sflux_lon0, sflux_lon_inc |
374 |
_RL sflux_lat0, sflux_lat_inc(MAX_LAT_INC) |
375 |
INTEGER sflux_nlon, sflux_nlat |
376 |
_RL swflux_lon0, swflux_lon_inc |
377 |
_RL swflux_lat0, swflux_lat_inc(MAX_LAT_INC) |
378 |
INTEGER swflux_nlon, swflux_nlat |
379 |
_RL runoff_lon0, runoff_lon_inc |
380 |
_RL runoff_lat0, runoff_lat_inc(MAX_LAT_INC) |
381 |
INTEGER runoff_nlon, runoff_nlat |
382 |
_RL atemp_lon0, atemp_lon_inc |
383 |
_RL atemp_lat0, atemp_lat_inc(MAX_LAT_INC) |
384 |
INTEGER atemp_nlon, atemp_nlat |
385 |
_RL aqh_lon0, aqh_lon_inc |
386 |
_RL aqh_lat0, aqh_lat_inc(MAX_LAT_INC) |
387 |
INTEGER aqh_nlon, aqh_nlat |
388 |
_RL evap_lon0, evap_lon_inc |
389 |
_RL evap_lat0, evap_lat_inc(MAX_LAT_INC) |
390 |
INTEGER evap_nlon, evap_nlat |
391 |
_RL precip_lon0, precip_lon_inc |
392 |
_RL precip_lat0, precip_lat_inc(MAX_LAT_INC) |
393 |
INTEGER precip_nlon, precip_nlat |
394 |
_RL uwind_lon0, uwind_lon_inc |
395 |
_RL uwind_lat0, uwind_lat_inc(MAX_LAT_INC) |
396 |
INTEGER uwind_nlon, uwind_nlat |
397 |
_RL vwind_lon0, vwind_lon_inc |
398 |
_RL vwind_lat0, vwind_lat_inc(MAX_LAT_INC) |
399 |
INTEGER vwind_nlon, vwind_nlat |
400 |
_RL lwflux_lon0, lwflux_lon_inc |
401 |
_RL lwflux_lat0, lwflux_lat_inc(MAX_LAT_INC) |
402 |
INTEGER lwflux_nlon, lwflux_nlat |
403 |
_RL swdown_lon0, swdown_lon_inc |
404 |
_RL swdown_lat0, swdown_lat_inc(MAX_LAT_INC) |
405 |
INTEGER swdown_nlon, swdown_nlat |
406 |
_RL lwdown_lon0, lwdown_lon_inc |
407 |
_RL lwdown_lat0, lwdown_lat_inc(MAX_LAT_INC) |
408 |
INTEGER lwdown_nlon, lwdown_nlat |
409 |
_RL apressure_lon0,apressure_lon_inc |
410 |
_RL apressure_lat0,apressure_lat_inc(MAX_LAT_INC) |
411 |
INTEGER apressure_nlon,apressure_nlat |
412 |
|
413 |
common /exf_interpolation/ |
414 |
& ustress_lon0, ustress_lon_inc, |
415 |
& ustress_lat0, ustress_lat_inc, |
416 |
& ustress_nlon, ustress_nlat, |
417 |
& vstress_lon0, vstress_lon_inc, |
418 |
& vstress_lat0, vstress_lat_inc, |
419 |
& vstress_nlon, vstress_nlat, |
420 |
& hflux_lon0, hflux_lon_inc, |
421 |
& hflux_lat0, hflux_lat_inc, |
422 |
& hflux_nlon, hflux_nlat, |
423 |
& sflux_lon0, sflux_lon_inc, |
424 |
& sflux_lat0, sflux_lat_inc, |
425 |
& sflux_nlon, sflux_nlat, |
426 |
& swflux_lon0, swflux_lon_inc, |
427 |
& swflux_lat0, swflux_lat_inc, |
428 |
& swflux_nlon, swflux_nlat, |
429 |
& runoff_lon0, runoff_lon_inc, |
430 |
& runoff_lat0, runoff_lat_inc, |
431 |
& runoff_nlon, runoff_nlat, |
432 |
& atemp_lon0, atemp_lon_inc, |
433 |
& atemp_lat0, atemp_lat_inc, |
434 |
& atemp_nlon, atemp_nlat, |
435 |
& aqh_lon0, aqh_lon_inc, |
436 |
& aqh_lat0, aqh_lat_inc, |
437 |
& aqh_nlon, aqh_nlat, |
438 |
& evap_lon0, evap_lon_inc, |
439 |
& evap_lat0, evap_lat_inc, |
440 |
& evap_nlon, evap_nlat, |
441 |
& precip_lon0, precip_lon_inc, |
442 |
& precip_lat0, precip_lat_inc, |
443 |
& precip_nlon, precip_nlat, |
444 |
& uwind_lon0, uwind_lon_inc, |
445 |
& uwind_lat0, uwind_lat_inc, |
446 |
& uwind_nlon, uwind_nlat, |
447 |
& vwind_lon0, vwind_lon_inc, |
448 |
& vwind_lat0, vwind_lat_inc, |
449 |
& vwind_nlon, vwind_nlat, |
450 |
& lwflux_lon0, lwflux_lon_inc, |
451 |
& lwflux_lat0, lwflux_lat_inc, |
452 |
& lwflux_nlon, lwflux_nlat, |
453 |
& swdown_lon0, swdown_lon_inc, |
454 |
& swdown_lat0, swdown_lat_inc, |
455 |
& swdown_nlon, swdown_nlat, |
456 |
& lwdown_lon0, lwdown_lon_inc, |
457 |
& lwdown_lat0, lwdown_lat_inc, |
458 |
& lwdown_nlon, lwdown_nlat, |
459 |
& apressure_lon0,apressure_lon_inc, |
460 |
& apressure_lat0,apressure_lat_inc, |
461 |
& apressure_nlon,apressure_nlat |
462 |
#endif |