/[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.3 - (show annotations) (download)
Tue Feb 18 05:33:54 2003 UTC (21 years, 2 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 c $Header: /u/gcmpack/MITgcm/pkg/exf/README,v 1.1.4.3 2003/02/12 07:55:53 dimitri 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.2 (11-Jan-2003)
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) 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 c
23 c surface heat flux --> qnet
24 c short wave radiation --> qsw (optional)
25 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 c flux data directly or they can provide atmospheric state
31 c (atmospheric temperature, atmospheric specific humidity, etc.)
32 c which is subsequently used to estimate the fluxes by using
33 c bulk parameterizations.
34 c
35 c (c) Relaxation to monthly climatologies of:
36 c
37 c sea surface temperature --> theta( k = 1 )
38 c sea surface salinity --> salt ( k = 1 )
39 c potential temperature --> theta( k = 1,nr )
40 c salinity --> salt ( k = 1,nr )
41 c
42 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 c
46 c
47 c Interface to MITgcm release1:
48 c -----------------------------
49 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 c
63 c
64 c CPP options:
65 c ------------
66 c
67 c See EXF_CPPOPTIONS.h for definition of pkg/exf CPP options.
68 c
69 c
70 c Data files:
71 c -----------
72 c
73 c data.exf :: variables related to surface fluxes
74 c data.exf_clim :: variables for relaxation to climatological fields
75 c
76 c
77 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 c
85 c Call trees:
86 c -----------
87 c
88 c exf_readparms
89 c |
90 c |---- exf_summary
91 c |---- exf_clim_readparms
92 c |---- exf_clim_summary
93 c
94 c
95 c exf_Init
96 c |
97 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 c
112 c
113 c exf_GetForcing
114 c |
115 c |---- exf_getclim
116 c |---- exf_getffields
117 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 c o exf_init_??? - Initialise external forcing fields ???.
128 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 c o exf_bulkqsat - Compute the saturation specific humidity.
139 c
140 c o exf_bulkcdn - Evaluate the neutral drag coefficient as a
141 c function of the mean wind speed at a given
142 c height.
143 c
144 c o exf_bulkrhn - Evaluate the Stanton number.
145 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 c o exf_set_atemp - Read an atmospheric temperature record.
155 c
156 c o exf_set_aqh - Read an atmospheric humidity record.
157 c
158 c o exf_set_hflux - Read an atmospheric heat flux record.
159 c
160 c o exf_set_ustress - Read an atmospheric zonal wind stress record.
161 c
162 c o exf_set_vstress - Read an atmospheric meridional wind stress
163 c record.
164 c
165 c o exf_set_uwind - Read an atmospheric zonal wind record.
166 c
167 c o exf_set_vwind - Read an atmospheric meridional wind record.
168 c
169 c o exf_set_precip - Read a precipitation record.
170 c
171 c o exf_set_sflux - Read a salt flux record.
172 c
173 c o exf_set_lwflux - Read a long wave radiative flux record.
174 c
175 c o exf_set_swflux - Read a short wave radiative flux record.
176 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 c o exf_clim_init - Initialise the climatology code.
189 c
190 c o exf_set_climtemp - Get the temperature climatology's
191 c value for a given model timestep.
192 c
193 c o exf_set_climsalt - Get the salinity climatology's
194 c value for a given model timestep.
195 c
196 c o exf_set_climsst - Get the sea surface temp. climatology's
197 c value for a given model timestep.
198 c
199 c o exf_set_climsss - Get the sea surface salin. climatology's
200 c value for a given model timestep.
201 c
202 c
203 c HOW TO GET STARTED?
204 c
205 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 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 c exf_set_hflux
230 c .
231 c .
232 c exf_set_vwind
233 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 c e.g. exf_set_climtemp
245 c exf_set_climsalt
246 c exf_set_climsst
247 c exf_set_climsss
248 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 c
300 c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002
301 c
302 c ==================================================================

  ViewVC Help
Powered by ViewVC 1.1.22