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