/[MITgcm]/MITgcm/pkg/exf/README
ViewVC logotype

Contents of /MITgcm/pkg/exf/README

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


Revision 1.1 - (show annotations) (download)
Mon May 14 22:08:40 2001 UTC (23 years, 1 month ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint40pre1, branch-exfmods-tag, checkpoint47e_post, checkpoint44h_pre, ecco_c44_e17, ecco_c44_e16, checkpoint46j_post, checkpoint47c_post, checkpoint46i_post, checkpoint47d_post, ecco_c44_e21, ecco_c44_e24, checkpoint44f_pre, checkpoint47a_post, checkpoint46f_post, checkpoint46d_pre, checkpoint46e_post, release1-branch_tutorials, checkpoint44g_post, checkpoint46h_pre, checkpoint44h_post, checkpoint44e_post, checkpoint46k_post, checkpoint46e_pre, ecco-branch-mod4, checkpoint43a-release1mods, checkpoint45d_post, checkpoint46l_pre, checkpoint46j_pre, checkpoint45b_post, checkpoint46b_pre, checkpoint46l_post, chkpt44a_pre, release1-branch-end, release1_final_v1, ecco_c44_e19, checkpoint46, ecco_c44_e20, checkpoint44, ecco_c44_e18, checkpoint44f_post, checkpoint47b_post, checkpoint40pre2, checkpoint40pre5, checkpoint40pre6, checkpoint40pre8, release1_b1, checkpoint44b_post, chkpt44c_post, chkpt44d_post, checkpoint42, release1_p9, release1_p8, checkpoint43, checkpoint46g_pre, release1_p2, release1_p3, release1_p4, release1_p6, checkpoint46a_post, chkpt44a_post, checkpoint44b_pre, release1_p1, checkpoint46m_post, checkpoint40pre4, checkpoint46a_pre, ecco-branch-mod1, checkpoint40pre3, checkpoint45c_post, release1_p5, checkpoint44e_pre, chkpt44c_pre, checkpoint40pre9, release1_p7, ecco_ice1, checkpoint46b_post, checkpoint46d_post, ecco-branch-mod2, checkpoint46g_post, checkpoint45a_post, checkpoint46c_pre, ecco-branch-mod3, checkpoint47d_pre, ecco-branch-mod5, ecco_c44_e22, release1_beta1, ecco_c44_e23, release1-branch_branchpoint, checkpoint47, checkpoint40pre7, checkpoint46c_post, checkpoint40, checkpoint45, checkpoint39, checkpoint46h_post, release1_chkpt44d_post, ecco_c44_e25, checkpoint41
Branch point for: c24_e25_ice, ecco-branch, release1_coupled, release1_final, release1-branch, release1, branch-exfmods-curt
Added external forcing package.
Not presently supported by mitgcm, i.e. disabled by default.

1 c $Header: /u/gcmpack/development/heimbach/ecco_env/pkg/exf/README,v 1.4 2001/02/02 19:43:45 heimbach Exp $
2 c
3 c
4 c =========================================
5 c External Forcing Package for the MITgcmUV
6 c =========================================
7 c
8 c Current Version: 0.2.0 (20-Jun-2000)
9 c
10 c
11 c General Outline:
12 c ----------------
13 c
14 c This package contains routines to handle external forcing of the
15 c MITgcmUV general circulation model. The following features are
16 c available:
17 c
18 c (a) Surface flux forcing by:
19 c
20 c surface heat flux --> qnet
21 c fresh water flux --> empmr
22 c zonal wind stress --> fu
23 c meridional wind stress --> fv
24 c
25 c In order to get the appropriate fluxes users can either use
26 c flux data directly or they can provide atmospheric states
27 c (atmospheric temperature, atmospheric specific humidity, etc.)
28 c which are subsequently used to estimate the fluxes by using
29 c bulk parameterizations.
30 c
31 c (b) Relaxation to monthly climatologies of:
32 c
33 c potential temperature --> theta( k = 1,nr )
34 c salinity --> salt ( k = 1,nr )
35 c sea surface temperature --> theta( k = 1 )
36 c sea surface salinity --> salt ( k = 1 )
37 c
38 c The relaxation can be done with relaxation coefficients
39 c that vary spatially. The corresponding routines will have
40 c to be customized.
41 c
42 c (c) Generic Routine prefix for this package:
43 c
44 c exf_<RoutineName>
45 c
46 c
47 c Modifying the MITgcmUV:
48 c -----------------------
49 c
50 c The package is set up such that it can be easily added to the
51 c MITgcmUV standard distribution. The following MITgcmUV files
52 c have to be modified:
53 c
54 c EXF_CPPOPTIONS.h - Append this file at of the MITgcmUV's
55 c "CPP_OPTIONS.h" file:
56 c
57 c #include "EXF_CPPOPTIONS.h"
58 c
59 c the_model_main.F - Replace the call to initialise by two
60 c calls ( see below) and replace the call
61 c of load_external_fields by get_forcing.
62 c
63 c
64 c Modifications in subroutine
65 c THE_MODEL_MAIN (before c27):
66 c ----------------------------
67 c .
68 c .
69 c .
70 c CALL TIMER_START('SPIN-UP',myThid)
71 c
72 c C-- Set model initial conditions
73 c CALL TIMER_START('INITIALISE [SPIN-UP]',myThid)
74 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
75 c call exf_InitialiseFixed( mythid )
76 c call exf_InitialiseVaria( mythid )
77 c #else
78 c CALL INITIALISE( myThid )
79 c #endif
80 c .
81 c .
82 c .
83 c C-- Begin time stepping loop
84 c CALL TIMER_START('MAIN LOOP',myThid)
85 c DO I=1, nTimeSteps
86 c
87 c C-- Load forcing/external data fields
88 c CALL TIMER_START('I/O (READ) [MAIN LOOP]',myThid)
89 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
90 c call exf_GetForcing(
91 c I mycurrenttime,
92 c I mycurrentiter,
93 c I mythid
94 c & )
95 c #else
96 c CALL LOAD_EXTERNAL_FIELDS( myCurrentTime, myCurrentIter, myThid )
97 c #endif
98 c CALL TIMER_STOP ('I/O (READ) [MAIN LOOP]',myThid)
99 c .
100 c .
101 c .
102 c
103 c
104 c Modifications in subroutine
105 c THE_MODEL_MAIN (from c27 on):
106 c -----------------------------
107 c .
108 c .
109 c .
110 c
111 c
112 c Modifications in subroutine
113 c FORWARD_STEP (from c27 on):
114 c ---------------------------
115 c .
116 c .
117 c .
118 c C-- Load forcing/external data fields
119 c CALL TIMER_START('I/O (READ) [MAIN LOOP]',myThid)
120 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
121 c call exf_GetForcing(
122 c I myCurrentTime,
123 c I myCurrentIter,
124 c I myThid
125 c & )
126 c #else
127 c CALL LOAD_EXTERNAL_FIELDS( myCurrentTime, myCurrentIter, myThid )
128 c #endif
129 c CALL TIMER_STOP ('I/O (READ) [MAIN LOOP]',myThid)
130 c .
131 c .
132 c .
133 c
134 c
135 c Modifications in subroutine
136 c INITIALISE_FIXED (from c27 on):
137 c -------------------------------
138 c .
139 c .
140 c .
141 c C-- Set coriolis operators
142 c CALL INI_CORI( myThid )
143 c
144 c#ifdef INCLUDE_LAT_CIRC_FFT_FILTER_CODE
145 cC-- Latitude circle filter initialisation
146 c CALL FILTER_LATCIRC_FFT_INIT(myThid)
147 c _BARRIER
148 c#endif
149 c
150 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
151 c
152 c call exf_Init( mythid )
153 c
154 c #ifdef ALLOW_CLIMTEMP_RELAXATION
155 c c-- Set the relaxation coefficient to the temperature climatology.
156 c call exf_GetTempClimLambda(
157 c I mythid
158 c & )
159 c _BARRIER
160 c #endif
161 c #ifdef ALLOW_CLIMSALT_RELAXATION
162 c c-- Set the relaxation coefficient to the salinity climatology.
163 c call exf_GetSaltClimLambda(
164 c I mythid
165 c & )
166 c _BARRIER
167 c #endif
168 c #ifdef ALLOW_CLIMSST_RELAXATION
169 c c-- Set the relaxation coefficient to the sst climatology.
170 c call exf_GetSSTClimLambda(
171 c I mythid
172 c & )
173 c _BARRIER
174 c #endif
175 c #ifdef ALLOW_CLIMSSS_RELAXATION
176 c c-- Set the relaxation coefficient to the sss climatology.
177 c call exf_GetSSSClimLambda(
178 c I mythid
179 c & )
180 c _BARRIER
181 c #endif
182 c #endif
183 c
184 c c-- Finally, summarise the model cofiguration.
185 c CALL CONFIG_SUMMARY( myThid )
186 c .
187 c .
188 c .
189 c
190 c
191 c external_forcing.F - Add relaxation to climatological fields.
192 c
193 c
194 c Modifications in subroutine
195 c EXTERNAL_FORCING_T (taken from c25):
196 c ------------------------------------
197 c .
198 c .
199 c .
200 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
201 c #include "exf_clim.h"
202 c #endif
203 c .
204 c .
205 c .
206 c C-- Forcing term
207 c C Add heat in top-layer
208 c IF ( kLev .EQ. 1 ) THEN
209 c DO j=jMin,jMax
210 c DO i=iMin,iMax
211 c gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
212 c & +maskC(i,j)*(
213 c & -lambdaThetaClimRelax*(theta(i,j,kLev,bi,bj)-SST(i,j,bi,bj))
214 c & -Qnet(i,j,bi,bj)*recip_Cp*recip_rhoNil*recip_dRf(kLev) )
215 c
216 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
217 c #ifdef ALLOW_CLIMSST_RELAXATION
218 c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) -
219 c & maskc(i,j)*lambda_climsst(i,j,bi,bj)*
220 c & ( theta(i,j,klev,bi,bj) -
221 c & climsst(i,j,bi,bj) )
222 c #endif
223 c #endif
224 c
225 c ENDDO
226 c ENDDO
227 c ENDIF
228 c
229 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
230 c #ifdef ALLOW_CLIMTEMP_RELAXATION
231 c do j=jmin,jmax
232 c do i=imin,imax
233 c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) -
234 c & maskc(i,j)*lambda_climtemp(i,j,klev,bi,bj)*
235 c & ( theta(i,j,klev,bi,bj) -
236 c & climtemp(i,j,klev,bi,bj) )
237 c enddo
238 c enddo
239 c #endif
240 c #endif
241 c .
242 c .
243 c .
244 c
245 c
246 c Modifications in subroutine
247 c EXTERNAL_FORCING_S (taken from c25):
248 c ------------------------------------
249 c .
250 c .
251 c .
252 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
253 c #include "exf_clim.h"
254 c #endif
255 c .
256 c .
257 c .
258 c C-- Forcing term
259 c C Add fresh-water in top-layer
260 c IF ( kLev .EQ. 1 ) THEN
261 c DO j=jMin,jMax
262 c DO i=iMin,iMax
263 c gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
264 c & +maskC(i,j)*(
265 c & -lambdaSaltClimRelax*(salt(i,j,kLev,bi,bj)-SSS(i,j,bi,bj))
266 c #ifdef ALLOW_NATURAL_BCS
267 c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*salt(i,j,kLev,bi,bj)
268 c #else
269 c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*35.
270 c #endif
271 c & )
272 c
273 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
274 c #ifdef ALLOW_CLIMSSS_RELAXATION
275 c gs(i,j,kLev,bi,bj) = gs(i,j,kLev,bi,bj) -
276 c & maskc(i,j)*lambda_climsss(i,j,bi,bj)*
277 c & ( salt(i,j,kLev,bi,bj) -
278 c & climsss(i,j,bi,bj) )
279 c #endif
280 c #endif
281 c
282 c ENDDO
283 c ENDDO
284 c ENDIF
285 c
286 c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
287 c #ifdef ALLOW_CLIMSALT_RELAXATION
288 c do j=jmin,jmax
289 c do i=imin,imax
290 c gs(i,j,klev,bi,bj) = gs(i,j,klev,bi,bj) -
291 c & maskc(i,j)*lambda_climsalt(i,j,klev,bi,bj)*
292 c & ( salt(i,j,klev,bi,bj) -
293 c & climsalt(i,j,klev,bi,bj) )
294 c enddo
295 c enddo
296 c #endif
297 c #endif
298 c .
299 c .
300 c .
301 c
302 c
303 c CPP options:
304 c ------------
305 c
306 c The following CPP options are available for this package:
307 c
308 c >>> INCLUDE_EXTERNAL_FORCING_PACKAGE <<<
309 c Include this package into the setup.
310 c
311 c >>> EXTERNAL_FORCING_VERBOSE <<<
312 c Do a bit more printout for the log file than usual.
313 c
314 c >>> ALLOW_BULKFORMULAE <<<
315 c Use bulk formulae to in order to estimate the turbulent
316 c fluxes at the ocean's surface.
317 c
318 c >>> ALLOW_ATM_TEMP <<<
319 c If defined use the atmospheric temperature and specific
320 c humidity to estimate the sensible and latent heat fluxes.
321 c
322 c >>> ALLOW_ATM_WIND <<<
323 c If defined use the atmospheric wind field to estimate the
324 c wind stress at the ocean's surface.
325 c
326 c >>> ALLOW_CLIMTEMP_RELAXATION <<<
327 c Allow the relaxation to a monthly climatology of potential
328 c temperature, e.g. the Levitus climatology.
329 c
330 c >>> ALLOW_CLIMSALT_RELAXATION <<<
331 c Allow the relaxation to a monthly climatology of salinity,
332 c e.g. the Levitus climatology.
333 c
334 c >>> ALLOW_CLIMSST_RELAXATION <<<
335 c Allow the relaxation to a monthly climatology of sea surface
336 c temperature, e.g. the Reynolds climatology.
337 c
338 c >>> ALLOW_CLIMSSS_RELAXATION <<<
339 c Allow the relaxation to a monthly climatology of sea surface
340 c salinity, e.g. the Levitus climatology.
341 c
342 c
343 c
344 c Unit and sign conventions for forcing fields (valid for c28 !)
345 c --------------------------------------------------------------
346
347 - tflux/qnet: net heat flux (ATTENTION: distinguish qnet vs. qnet-sw)
348 ---------------------------
349 -> read in as tflux: W/m**2 = kg/s**3 (>0 for oceanic cooling)
350 -> scaled to qnet: scal_hfl = +1
351 -> transformed to gT: Qnet -> Qnet/(rhonil*Cp*dR)
352 W/m**2 -> K/s
353 -> usage in gT: gT = gT - qnet[K/s]
354
355 - swflux/qsw: shortwave flux
356 ----------------------------
357 -> read in as swflux: W/m**2 = kg/s**3 (>0 for oceanic cooling)
358 -> for bulk forcing: swflux ADDED to hfl = tflux
359 -> scaled to qsw: scal_swf = +1
360 -> transformed to gT: only for #ifdef SHORTWAVE_HEATING
361 (currently not used)
362
363 - lwflux/qlw: longwave flux
364 ---------------------------
365 -> read in as lwflux: m/s (>0 for oceanic cooling)
366 -> for bulk forcing: lwflux ADDED to hfl = tflux
367 -> scaled to qlw: not used.
368 -> transformed to gT: not used.
369
370 - sflux/empmr: freshwater flux (Evap. minus precip. minus runoff)
371 ------------------------------
372 -> read in as tflux: m/s (>0 for ocean salting)
373 -> scaled to empmr: scal_hfl = +1
374 -> transformed to gS: empmr -> empmr*35./*dR
375 m/s -> psu/s
376 -> usage in gS: gS = gS + empmr[psu/s]
377
378 - ustress/fu: zonal wind stress (West/East)
379 -------------------------------
380 -> read in as ustress: N/m**2 (>0 from West to East)
381 -> scaled to fu : scal_ust = -1
382 -> transformed to gU: fu -> fu/(rhoNil*dR)
383 N/m**2 -> m/s**2
384 -> usage in gU: gU = gU + fu[m/s**2]
385
386 - vstress/fv: meridional wind stress (South/North)
387 ------------------------------------
388 -> read in as vstress: N/m**2 (>0 from South to North)
389 -> scaled to fv : scal_vst = -1
390 -> transformed to gV: fv -> fv/(rhoNil*dR)
391 N/m**2 -> m/s**2
392 -> usage in gV: gV = gV + fv[m/s**2]
393 c
394 c
395 c Data files:
396 c -----------
397 c
398 c There are 10 possible setups that can be covered by the external
399 c forcing package. For each of these setups a data file is available.
400 c
401 c data.forcing__blk__uat__uaw__kpp
402 c data.forcing__blk__uat__uaw_nkpp
403 c data.forcing__blk__uat_nuaw__kpp
404 c data.forcing__blk__uat_nuaw_nkpp
405 c data.forcing__blk_nuat__uaw__kpp
406 c data.forcing__blk_nuat__uaw_nkpp
407 c data.forcing__blk_nuat_nuaw__kpp
408 c data.forcing__blk_nuat_nuaw_nkpp
409 c data.forcing_nblk_nuat_nuaw__kpp
410 c data.forcing_nblk_nuat_nuaw_nkpp
411 c
412 c The naming convention is self-explanatory (hopefully).
413 c
414 c Once a specified setup is decided upon use the corresponding data
415 c file in order to set the file names for the individual variables and
416 c provide the necessary calendar information.
417 c
418 c Copy the appropriate data file to .../exe/data.exf .
419 c
420 c
421 c Routines:
422 c ----------
423 c
424 c The package consists of two sets of routines. The first set is
425 c related to surface fluxes, the second set allows one to include
426 c relaxation to climatological fields.
427 c
428 c Call trees:
429 c -----------
430 c
431 c
432 c exf_Init
433 c |
434 c |---- exf_Summary
435 c |---- exf_InitSurfaceFluxes
436 c |---- exf_InitClimatology
437 c
438 c
439 c exf_GetForcing
440 c |
441 c |---- exf_GetTempClim
442 c |---- exf_GetSaltClim
443 c |---- exf_GetSSTClim
444 c |---- exf_GetSSSClim
445 c |---- exf_GetSurfaceFluxes
446 c |---- exf_MapFields
447 c
448 c
449 c ===============
450 c Surface fluxes:
451 c ===============
452 c
453 c Getting the forcing fields:
454 c
455 c o exf_InitSurfaceFluxes - Initialise the external forcing fields.
456 c
457 c o exf_GetsurfaceFluxes - Mid-level routine for adding fluxes as
458 c control variables.
459 c
460 c o exf_GetFFields - Get the current field values.
461 c
462 c o exf_SwapFFields - Swap data fields.
463 c
464 c Routines specific to bulk formulae:
465 c
466 c o exf_qSat - Compute the saturation specific humidity.
467 c
468 c o exf_Cdn - Evaluate the neutral drag coefficient as a
469 c function of the mean wind speed at a given
470 c height.
471 c
472 c o exf_Rhn - Evaluate the Stanton number.
473 c
474 c Getting the time data (calendar):
475 c
476 c o exf_GetFFieldsRec - Get the record number for the current
477 c timestep of a given field, some flags,
478 c and the linear interpolation factor.
479 c
480 c Reading the forcing data:
481 c
482 c o exf_ReadAtmTemp - Read an atmospheric temperature record.
483 c
484 c o exf_ReadAtmQh - Read an atmospheric humidity record.
485 c
486 c o exf_ReadHeatFlux - Read an atmospheric heat flux record.
487 c
488 c o exf_ReadZonStress - Read an atmospheric zonal wind stress record.
489 c
490 c o exf_ReadMerStress - Read an atmospheric meridional wind stress
491 c record.
492 c
493 c o exf_ReadZonWind - Read an atmospheric zonal wind record.
494 c
495 c o exf_ReadMerWind - Read an atmospheric meridional wind record.
496 c
497 c o exf_ReadAtmPrecip - Read a precipitation record.
498 c
499 c o exf_ReadSaltFlux - Read a salt flux record.
500 c
501 c o exf_ReadLwFlux - Read a long wave radiative flux record.
502 c
503 c o exf_ReadSwFlux - Read a short wave radiative flux record.
504 c
505 c
506 c At the moment, a basic premise of this package is that the external
507 c forcing fields are available as data sets that are regularly spaced
508 c in time and space. In later versions this assumption will be relaxed
509 c for time as well as for space.
510 c
511 c
512 c ============
513 c Climatology:
514 c ============
515 c
516 c o exf_InitClimatology - Initialise the climatology code.
517 c
518 c o exf_GetMonthsRec - Get the record number of a monthly
519 c climatology data set for a given model
520 c timestep.
521 c
522 c Temperature climatology:
523 c
524 c o exf_GetTempClim - Get the temperature climatology's
525 c value for a given model timestep.
526 c
527 c o exf_GetTempClimRec - Get the record number, the linear
528 c interpolation factor, and some flags
529 c for the temperature climatology.
530 c
531 c o exf_ReadTempClim - Read a temperature climatology's
532 c data record.
533 c
534 c o exf_GetTempClimLambda - Calculate the relaxation coefficient
535 c for the temperature climatology.
536 c
537 c Salinity climatology.
538 c
539 c o exf_GetSaltClim - Get the salinity climatology's
540 c value for a given model timestep.
541 c
542 c o exf_GetSaltClimRec - Get the record number, the linear
543 c interpolation factor, and some flags
544 c for the salinity climatology.
545 c
546 c o exf_ReadSaltClim - Read a salinity climatology's
547 c data record.
548 c
549 c o exf_GetSaltClimLambda - Calculate the relaxation coefficient
550 c for salinity climatology.
551 c
552 c Sea surface temperature climatology.
553 c
554 c o exf_GetSSTClim - Get the sea surface temp. climatology's
555 c value for a given model timestep.
556 c
557 c o exf_GetSSTClimRec - Get the record number, the linear
558 c interpolation factor, and some flags
559 c for the sea surface temp. climatology.
560 c
561 c o exf_ReadSSTClim - Read a sea surface temp. climatology's
562 c data record.
563 c
564 c o exf_GetSSTClimLambda - Calculate the relaxation coefficient
565 c for the sea surface temperature
566 c climatology.
567 c
568 c Sea surface salinity climatology:
569 c
570 c o exf_GetSSSClim - Get the sea surface salin. climatology's
571 c value for a given model timestep.
572 c
573 c o exf_GetSSSClimRec - Get the record number, the linear
574 c interpolation factor, and some flags
575 c for the sea surface salin. climatology.
576 c
577 c o exf_ReadSSSClim - Read a sea surface salin. climatology's
578 c data record.
579 c
580 c o exf_GetSSSClimLambda - Calculate the relaxation coefficient
581 c for the sea surface salinity
582 c climatology.
583 c
584 c
585 c HOW TO GET STARTED?
586 c
587 c Copy the routines and headers to the distribution after you have
588 c installed the latter. Next, install the calendar tool, which is
589 c quite extenisvely used by the external forcing package.
590 c
591 c http://mitgcm.lcs.mit.edu/cgi-bin/cvsweb/packages/calendar_tool/
592 c
593 c
594 c ATTENTION:
595 c ==========
596 c
597 c Users of this package are urged to CHECK THE SIGNS AND UNITS of
598 c their data sets, especially in relation to the sign conventions
599 c of the MITgcmUV!
600 c
601 c Relevant MITgcmUV routines are:
602 c
603 c calc_gt.F
604 c calc_gs.F
605 c calc_mom_rhs.F
606 c external_forcing.F
607 c
608 c Relevant external forcing package routines are:
609 c
610 c exf_ReadHeatFlux
611 c .
612 c .
613 c exf_ReadZonWind
614 c exf_MapFields
615 c
616 c All adaptations of signs and units to specific data sets should be
617 c done in the routines that read the respective data. Users should
618 c neither modify "external_forcing" nor "exf_MapFields" for this
619 c purpose.Each data set has its own read routine. This eases customi-
620 c zation (signs and units etc.).
621 c
622 c Some routines have to be customized for the current specific
623 c application:
624 c
625 c e.g. exf_GetClimTempLambda
626 c exf_GetClimSaltLambda
627 c exf_GetClimSSTLambda
628 c exf_GetClimSSSLambda
629 c
630 c
631 c
632 c To Do:
633 c ------
634 c
635 c Many assumptions that are made in the current version should, and
636 c can, be relaxed in later versions:
637 c
638 c - gridded data sets --> general data set (other grids, inter-
639 c polation in space)
640 c
641 c - equidistancy in time --> general data set (non-equidistant in
642 c time)
643 c
644 c - climatologies --> arbitrary subinterval of a year, not
645 c just monthly values.
646 c
647 c - relaxation --> relaxation could be done to a given
648 c data set over the model's integration
649 c time. This would generalise the clima-
650 c tology block. One could have 'cyclic'
651 c and 'non-cyclic' fields. In the first
652 c case, the cycle length has to be spe-
653 c cified ('monthly','yearly','period') as
654 c well as the start of the cycle ( irec=1
655 c corresponds to a certain calendar date).
656 c The second case can be treated analog-
657 c ously.
658 c
659 c - There is an inconsistency in the formulation of frocing variables
660 c defined on southern and western points on the C-grid, since the
661 c the atmospheric stability is calculated on center points of the
662 c C-grid.
663 c
664 c ========
665 c HISTORY:
666 c ========
667 c
668 c
669 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
670 c
671 c changed: Christian Eckert eckert@mit.edu 11-Jan-2000
672 c
673 c - Restructured the code in order to create a package
674 c for the MITgcmUV.
675 c
676 c Christian Eckert eckert@mit.edu 12-Feb-2000
677 c
678 c - Changed Routine names (package prefix: exf_)
679 c
680 c Christian Eckert eckert@mit.edu 02-May-2000
681 c
682 c - CVS version of the package.
683 c
684 c Patrick Heimbach, heimbach@mit.edu 04-May-2000
685 c
686 c - Added computation of evaporation rate for
687 c ALLOW_ATM_TEMP case
688 c
689 c - changed the handling of precip and sflux with respect
690 c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
691 c
692 c - included some CPP flags ALLOW_BULKFORMULAE to make
693 c sure ALLOW_ATM_TEMP, ALLOW_ATM_WIND are used only in
694 c conjunction with defined ALLOW_BULKFORMULAE
695 c
696 c - statement functions discarded and external functions
697 c initialised.
698 c
699 c - file precision and field type are now prescribed in
700 c data.exf;
701 c separately possible for exf_sflx.h and exf_clim.h
702 c related fields.
703 c
704 c - created exf_constants.h that contains
705 c 1. numbers
706 c 2. physical constants
707 c 3. empirical parameters
708 c 4. control parameters
709 c
710 c Ralf Giering ralf.giering@fastopt.de 18-Jun-2000
711 c
712 c - exf_getffields.F:
713 c Swapping of forcing fields has to be switched off
714 c if TAMC is used, because of generation of spurious
715 c dependencies. (P.H.)
716 c
717 c Patrick Heimbach heimbach@mit.edu 20-Jun-2000
718 c
719 c - sign change of ustress/vstress incorporated into
720 c scaling factors scal_ust, scal_vst in exf_mapfields.F
721 c
722 c - Corrected description on how to implement exf package
723 c for c27 onwards.
724 c
725 c - Included unit and sign conventions valid for c28
726 c in README.
727 c
728 c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22