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

Annotation of /MITgcm/pkg/exf/README

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


Revision 1.3 - (hide annotations) (download)
Tue Feb 18 05:33:54 2003 UTC (21 years, 4 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint48f_post, checkpoint51k_post, checkpoint53f_post, checkpoint54a_pre, checkpoint55c_post, checkpoint53b_pre, checkpoint51l_post, checkpoint51j_post, checkpoint57m_post, checkpoint52l_pre, checkpoint48i_post, checkpoint52e_pre, hrcube4, hrcube5, checkpoint57g_pre, checkpoint52j_post, checkpoint51o_pre, checkpoint57f_post, checkpoint50e_post, checkpoint52e_post, checkpoint50c_post, checkpoint51n_pre, checkpoint57j_post, checkpoint57b_post, checkpoint52d_pre, checkpoint53c_post, checkpoint53d_post, checkpoint57f_pre, checkpoint55d_pre, checkpoint51f_pre, checkpoint57g_post, checkpoint57c_pre, checkpoint48h_post, checkpoint55j_post, checkpoint56b_post, checkpoint50c_pre, checkpoint57h_pre, branchpoint-genmake2, checkpoint52j_pre, checkpoint54a_post, branch-netcdf, checkpoint50d_pre, checkpoint55h_post, checkpoint51r_post, checkpoint52b_pre, checkpoint52n_post, checkpoint54b_post, checkpoint51i_post, checkpoint57e_post, checkpoint54d_post, checkpoint56c_post, checkpoint54e_post, checkpoint55b_post, checkpoint51e_post, checkpoint51b_post, checkpoint51l_pre, checkpoint52m_post, checkpoint51c_post, checkpoint55, checkpoint53a_post, checkpoint55a_post, checkpoint57a_post, checkpoint49, checkpoint56, checkpoint57o_post, checkpoint55g_post, checkpoint57h_done, checkpoint51o_post, checkpoint48g_post, checkpoint57k_post, checkpoint57d_post, checkpoint55f_post, checkpoint57i_post, checkpoint51q_post, checkpoint52l_post, checkpoint52k_post, checkpoint57h_post, checkpoint57a_pre, checkpoint54, checkpoint57, checkpoint53b_post, checkpoint51, checkpoint50, checkpoint53, checkpoint52, checkpoint50d_post, checkpoint52d_post, checkpoint51b_pre, checkpoint52a_post, checkpoint52b_post, checkpoint53g_post, checkpoint52f_post, checkpoint57n_post, checkpoint52c_post, checkpoint57p_post, checkpoint51h_pre, checkpoint50g_post, checkpoint50b_pre, checkpoint51g_post, ecco_c52_e35, checkpoint54f_post, checkpoint51f_post, checkpoint50b_post, eckpoint57e_pre, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint52a_pre, checkpoint51d_post, checkpoint51m_post, checkpoint51t_post, checkpoint53d_pre, checkpoint55e_post, checkpoint54c_post, checkpoint50h_post, checkpoint52i_post, checkpoint51a_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51p_post, checkpoint51n_post, checkpoint55i_post, checkpoint51i_pre, checkpoint57l_post, checkpoint52i_pre, checkpoint51u_post, checkpoint52h_pre, checkpoint52f_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint56a_post, checkpoint51s_post, checkpoint55d_post
Branch point for: netcdf-sm0, branch-genmake2, branch-nonh, tg2-branch, checkpoint51n_branch
Changes since 1.2: +6 -121 lines
Merging from release1_p12:
o Modifications for using pkg/exf with pkg/seaice
  - improved description of the various forcing configurations
  - added basic radiation bulk formulae to pkg/exf
  - units/sign fix for evap computation in exf_getffields.F
  - updated verification/global_with_exf/results/output.txt
o Added pkg/sbo for computing IERS Special Bureau for the Oceans
  (SBO) core products, including oceanic mass, center-of-mass,
  angular, and bottom pressure (see pkg/sbo/README.sbo).
o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F
  to avoid negative values in shallow regions.
  - updated verification/natl_box/results/output.txt
  - updated verification/lab_sea/results/output.txt
o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F
o Added useSingleCpuIO option (see PARAMS.h).
o Updated useSingleCpuIO option in mdsio_writefield.F to
  work with multi-field files, e.g., for single-file pickup.
o pkg/seaice:
  - bug fix in growth.F: QNET for no shortwave case
  - added HeffFile for specifying initial sea-ice thickness
  - changed SEAICE_EXTERNAL_FLUXES wind stress implementation
o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf,
  kpp_transport_t.F, forward_step.F, and the_main_loop.F
o pkg/seaice:
  - adjoint-friendly modifications
  - added a SEAICE_WRITE_PICKUP at end of the_model_main.F

1 dimitri 1.3 c $Header: /u/gcmpack/MITgcm/pkg/exf/README,v 1.1.4.3 2003/02/12 07:55:53 dimitri Exp $
2 heimbach 1.1 c
3     c
4     c =========================================
5     c External Forcing Package for the MITgcmUV
6     c =========================================
7     c
8 dimitri 1.3 c Current Version: 0.2.2 (11-Jan-2003)
9 heimbach 1.1 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 dimitri 1.2 c (a) Reading-in atmospheric state and/or surface fluxes from files
19     c and bi-linear interpolation in time.
20     c
21     c (b) Surface flux forcing by:
22 heimbach 1.1 c
23     c surface heat flux --> qnet
24 dimitri 1.2 c short wave radiation --> qsw (optional)
25 heimbach 1.1 c fresh water flux --> empmr
26     c zonal wind stress --> fu
27     c meridional wind stress --> fv
28     c
29     c In order to get the appropriate fluxes users can either use
30 dimitri 1.2 c flux data directly or they can provide atmospheric state
31 heimbach 1.1 c (atmospheric temperature, atmospheric specific humidity, etc.)
32 dimitri 1.2 c which is subsequently used to estimate the fluxes by using
33 heimbach 1.1 c bulk parameterizations.
34     c
35 dimitri 1.2 c (c) Relaxation to monthly climatologies of:
36 heimbach 1.1 c
37 dimitri 1.2 c sea surface temperature --> theta( k = 1 )
38     c sea surface salinity --> salt ( k = 1 )
39 heimbach 1.1 c potential temperature --> theta( k = 1,nr )
40     c salinity --> salt ( k = 1,nr )
41     c
42 dimitri 1.2 c As of version 0.2.1, pkg/exf only supports the reading-in
43     c of the relaxation fields. See TODO.txt for suggestions on
44     c completing the relaxation package.
45 heimbach 1.1 c
46     c
47 dimitri 1.2 c Interface to MITgcm release1:
48 heimbach 1.1 c -----------------------------
49 dimitri 1.2 c
50     c The following MITgcm files are affected by pkg/exf:
51     c
52     c CPPOPTIONS.h - Define INCLUDE_EXTERNAL_FORCING_PACKAGE
53     c and append desired pkg/exf CPP options.
54     c
55     c packages_readparms.F - EXF_READPARMS
56     c
57     c packages_init_variables.F - EXF_INIT
58     c
59     c the_main_loop.F - Adjoint compiler directives.
60     c
61     c forward_step.F - EXF_GETFORCING
62 heimbach 1.1 c
63     c
64     c CPP options:
65     c ------------
66     c
67 dimitri 1.3 c See EXF_CPPOPTIONS.h for definition of pkg/exf CPP options.
68 heimbach 1.1 c
69     c
70     c Data files:
71     c -----------
72     c
73 dimitri 1.2 c data.exf :: variables related to surface fluxes
74     c data.exf_clim :: variables for relaxation to climatological fields
75 heimbach 1.1 c
76 dimitri 1.3 c
77 heimbach 1.1 c Routines:
78     c ----------
79     c
80     c The package consists of two sets of routines. The first set is
81     c related to surface fluxes, the second set allows one to include
82     c relaxation to climatological fields.
83     c
84 dimitri 1.3 c
85 heimbach 1.1 c Call trees:
86     c -----------
87     c
88 dimitri 1.2 c exf_readparms
89     c |
90     c |---- exf_summary
91     c |---- exf_clim_readparms
92     c |---- exf_clim_summary
93     c
94 heimbach 1.1 c
95     c exf_Init
96     c |
97 dimitri 1.2 c |---- exf_init_hflux
98     c |---- exf_init_sflux
99     c |---- exf_init_ustress
100     c |---- exf_init_vstress
101     c |---- exf_init_evap
102     c |---- exf_init_runoff
103     c |---- exf_init_atemp
104     c |---- exf_init_aqh
105     c |---- exf_init_lwflux
106     c |---- exf_init_swflux
107     c |---- exf_init_precip
108     c |---- exf_init_uwind
109     c |---- exf_init_vwind
110     c |---- exf_clim_init
111 heimbach 1.1 c
112     c
113     c exf_GetForcing
114     c |
115 dimitri 1.2 c |---- exf_getclim
116     c |---- exf_getffields
117 heimbach 1.1 c |---- exf_GetSurfaceFluxes
118     c |---- exf_MapFields
119     c
120     c
121     c ===============
122     c Surface fluxes:
123     c ===============
124     c
125     c Getting the forcing fields:
126     c
127 dimitri 1.2 c o exf_init_??? - Initialise external forcing fields ???.
128 heimbach 1.1 c
129     c o exf_GetsurfaceFluxes - Mid-level routine for adding fluxes as
130     c control variables.
131     c
132     c o exf_GetFFields - Get the current field values.
133     c
134     c o exf_SwapFFields - Swap data fields.
135     c
136     c Routines specific to bulk formulae:
137     c
138 dimitri 1.2 c o exf_bulkqsat - Compute the saturation specific humidity.
139 heimbach 1.1 c
140 dimitri 1.2 c o exf_bulkcdn - Evaluate the neutral drag coefficient as a
141 heimbach 1.1 c function of the mean wind speed at a given
142     c height.
143     c
144 dimitri 1.2 c o exf_bulkrhn - Evaluate the Stanton number.
145 heimbach 1.1 c
146     c Getting the time data (calendar):
147     c
148     c o exf_GetFFieldsRec - Get the record number for the current
149     c timestep of a given field, some flags,
150     c and the linear interpolation factor.
151     c
152     c Reading the forcing data:
153     c
154 dimitri 1.2 c o exf_set_atemp - Read an atmospheric temperature record.
155 heimbach 1.1 c
156 dimitri 1.2 c o exf_set_aqh - Read an atmospheric humidity record.
157 heimbach 1.1 c
158 dimitri 1.2 c o exf_set_hflux - Read an atmospheric heat flux record.
159 heimbach 1.1 c
160 dimitri 1.2 c o exf_set_ustress - Read an atmospheric zonal wind stress record.
161 heimbach 1.1 c
162 dimitri 1.2 c o exf_set_vstress - Read an atmospheric meridional wind stress
163 heimbach 1.1 c record.
164     c
165 dimitri 1.2 c o exf_set_uwind - Read an atmospheric zonal wind record.
166 heimbach 1.1 c
167 dimitri 1.2 c o exf_set_vwind - Read an atmospheric meridional wind record.
168 heimbach 1.1 c
169 dimitri 1.2 c o exf_set_precip - Read a precipitation record.
170 heimbach 1.1 c
171 dimitri 1.2 c o exf_set_sflux - Read a salt flux record.
172 heimbach 1.1 c
173 dimitri 1.2 c o exf_set_lwflux - Read a long wave radiative flux record.
174 heimbach 1.1 c
175 dimitri 1.2 c o exf_set_swflux - Read a short wave radiative flux record.
176 heimbach 1.1 c
177     c
178     c At the moment, a basic premise of this package is that the external
179     c forcing fields are available as data sets that are regularly spaced
180     c in time and space. In later versions this assumption will be relaxed
181     c for time as well as for space.
182     c
183     c
184     c ============
185     c Climatology:
186     c ============
187     c
188 dimitri 1.2 c o exf_clim_init - Initialise the climatology code.
189 heimbach 1.1 c
190 dimitri 1.2 c o exf_set_climtemp - Get the temperature climatology's
191 heimbach 1.1 c value for a given model timestep.
192     c
193 dimitri 1.2 c o exf_set_climsalt - Get the salinity climatology's
194 heimbach 1.1 c value for a given model timestep.
195     c
196 dimitri 1.2 c o exf_set_climsst - Get the sea surface temp. climatology's
197 heimbach 1.1 c value for a given model timestep.
198     c
199 dimitri 1.2 c o exf_set_climsss - Get the sea surface salin. climatology's
200 heimbach 1.1 c value for a given model timestep.
201     c
202     c
203     c HOW TO GET STARTED?
204     c
205 dimitri 1.2 c There are two verification experiments, global_with_exf and
206     c lab_sea that use pkg/exf. Experiment verification/global_with_exf
207     c is a repeat of verification/global_ocean.90x40x15, except that it
208     c uses the pkg/exf and pkg/cal instead of the external_fields_load
209     c routine. Experiment verification/lab_sea gives exaples of using
210     c pkg/exf in conjunction with pkg/seaice.
211 heimbach 1.1 c
212     c
213     c ATTENTION:
214     c ==========
215     c
216     c Users of this package are urged to CHECK THE SIGNS AND UNITS of
217     c their data sets, especially in relation to the sign conventions
218     c of the MITgcmUV!
219     c
220     c Relevant MITgcmUV routines are:
221     c
222     c calc_gt.F
223     c calc_gs.F
224     c calc_mom_rhs.F
225     c external_forcing.F
226     c
227     c Relevant external forcing package routines are:
228     c
229 dimitri 1.2 c exf_set_hflux
230 heimbach 1.1 c .
231     c .
232 dimitri 1.2 c exf_set_vwind
233 heimbach 1.1 c exf_MapFields
234     c
235     c All adaptations of signs and units to specific data sets should be
236     c done in the routines that read the respective data. Users should
237     c neither modify "external_forcing" nor "exf_MapFields" for this
238     c purpose.Each data set has its own read routine. This eases customi-
239     c zation (signs and units etc.).
240     c
241     c Some routines have to be customized for the current specific
242     c application:
243     c
244 dimitri 1.2 c e.g. exf_set_climtemp
245     c exf_set_climsalt
246     c exf_set_climsst
247     c exf_set_climsss
248 heimbach 1.1 c
249     c
250     c ========
251     c HISTORY:
252     c ========
253     c
254     c started: Christian Eckert eckert@mit.edu 30-Jun-1999
255     c
256     c changed: Christian Eckert eckert@mit.edu 11-Jan-2000
257     c - Restructured the code in order to create a package
258     c for the MITgcmUV.
259     c
260     c Christian Eckert eckert@mit.edu 12-Feb-2000
261     c - Changed Routine names (package prefix: exf_)
262     c
263     c Christian Eckert eckert@mit.edu 02-May-2000
264     c - CVS version of the package.
265     c
266     c Patrick Heimbach, heimbach@mit.edu 04-May-2000
267     c - Added computation of evaporation rate for
268     c ALLOW_ATM_TEMP case
269     c - changed the handling of precip and sflux with respect
270     c to CPP options ALLOW_BULKFORMULAE and ALLOW_ATM_TEMP
271     c - included some CPP flags ALLOW_BULKFORMULAE to make
272     c sure ALLOW_ATM_TEMP, ALLOW_ATM_WIND are used only in
273     c conjunction with defined ALLOW_BULKFORMULAE
274     c - statement functions discarded and external functions
275     c initialised.
276     c - file precision and field type are now prescribed in
277     c data.exf;
278     c separately possible for exf_sflx.h and exf_clim.h
279     c related fields.
280     c - created exf_constants.h that contains
281     c 1. numbers
282     c 2. physical constants
283     c 3. empirical parameters
284     c 4. control parameters
285     c
286     c Ralf Giering ralf.giering@fastopt.de 18-Jun-2000
287     c - exf_getffields.F:
288     c Swapping of forcing fields has to be switched off
289     c if TAMC is used, because of generation of spurious
290     c dependencies. (P.H.)
291     c
292     c Patrick Heimbach heimbach@mit.edu 20-Jun-2000
293     c - sign change of ustress/vstress incorporated into
294     c scaling factors scal_ust, scal_vst in exf_mapfields.F
295     c - Corrected description on how to implement exf package
296     c for c27 onwards.
297     c - Included unit and sign conventions valid for c28
298     c in README.
299 dimitri 1.2 c
300 dimitri 1.3 c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
301 heimbach 1.1 c
302     c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22