5 |
c External Forcing Package for the MITgcmUV |
c External Forcing Package for the MITgcmUV |
6 |
c ========================================= |
c ========================================= |
7 |
c |
c |
8 |
c Current Version: 0.2.0 (20-Jun-2000) |
c Current Version: 0.2.1 (20-Dec-2002) |
9 |
c |
c |
10 |
c |
c |
11 |
c General Outline: |
c General Outline: |
15 |
c MITgcmUV general circulation model. The following features are |
c MITgcmUV general circulation model. The following features are |
16 |
c available: |
c available: |
17 |
c |
c |
18 |
c (a) Surface flux forcing by: |
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 |
c |
23 |
c surface heat flux --> qnet |
c surface heat flux --> qnet |
24 |
|
c short wave radiation --> qsw (optional) |
25 |
c fresh water flux --> empmr |
c fresh water flux --> empmr |
26 |
c zonal wind stress --> fu |
c zonal wind stress --> fu |
27 |
c meridional wind stress --> fv |
c meridional wind stress --> fv |
28 |
c |
c |
29 |
c In order to get the appropriate fluxes users can either use |
c In order to get the appropriate fluxes users can either use |
30 |
c flux data directly or they can provide atmospheric states |
c flux data directly or they can provide atmospheric state |
31 |
c (atmospheric temperature, atmospheric specific humidity, etc.) |
c (atmospheric temperature, atmospheric specific humidity, etc.) |
32 |
c which are subsequently used to estimate the fluxes by using |
c which is subsequently used to estimate the fluxes by using |
33 |
c bulk parameterizations. |
c bulk parameterizations. |
34 |
c |
c |
35 |
c (b) Relaxation to monthly climatologies of: |
c (c) Relaxation to monthly climatologies of: |
36 |
c |
c |
|
c potential temperature --> theta( k = 1,nr ) |
|
|
c salinity --> salt ( k = 1,nr ) |
|
37 |
c sea surface temperature --> theta( k = 1 ) |
c sea surface temperature --> theta( k = 1 ) |
38 |
c sea surface salinity --> salt ( k = 1 ) |
c sea surface salinity --> salt ( k = 1 ) |
39 |
|
c potential temperature --> theta( k = 1,nr ) |
40 |
|
c salinity --> salt ( k = 1,nr ) |
41 |
c |
c |
42 |
c The relaxation can be done with relaxation coefficients |
c As of version 0.2.1, pkg/exf only supports the reading-in |
43 |
c that vary spatially. The corresponding routines will have |
c of the relaxation fields. See TODO.txt for suggestions on |
44 |
c to be customized. |
c completing the relaxation package. |
|
c |
|
|
c (c) Generic Routine prefix for this package: |
|
|
c |
|
|
c exf_<RoutineName> |
|
|
c |
|
|
c |
|
|
c Modifying the MITgcmUV: |
|
|
c ----------------------- |
|
|
c |
|
|
c The package is set up such that it can be easily added to the |
|
|
c MITgcmUV standard distribution. The following MITgcmUV files |
|
|
c have to be modified: |
|
|
c |
|
|
c EXF_CPPOPTIONS.h - Append this file at of the MITgcmUV's |
|
|
c "CPP_OPTIONS.h" file: |
|
|
c |
|
|
c #include "EXF_CPPOPTIONS.h" |
|
|
c |
|
|
c the_model_main.F - Replace the call to initialise by two |
|
|
c calls ( see below) and replace the call |
|
|
c of load_external_fields by get_forcing. |
|
|
c |
|
|
c |
|
|
c Modifications in subroutine |
|
|
c THE_MODEL_MAIN (before c27): |
|
|
c ---------------------------- |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c CALL TIMER_START('SPIN-UP',myThid) |
|
|
c |
|
|
c C-- Set model initial conditions |
|
|
c CALL TIMER_START('INITIALISE [SPIN-UP]',myThid) |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c call exf_InitialiseFixed( mythid ) |
|
|
c call exf_InitialiseVaria( mythid ) |
|
|
c #else |
|
|
c CALL INITIALISE( myThid ) |
|
|
c #endif |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c C-- Begin time stepping loop |
|
|
c CALL TIMER_START('MAIN LOOP',myThid) |
|
|
c DO I=1, nTimeSteps |
|
|
c |
|
|
c C-- Load forcing/external data fields |
|
|
c CALL TIMER_START('I/O (READ) [MAIN LOOP]',myThid) |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c call exf_GetForcing( |
|
|
c I mycurrenttime, |
|
|
c I mycurrentiter, |
|
|
c I mythid |
|
|
c & ) |
|
|
c #else |
|
|
c CALL LOAD_EXTERNAL_FIELDS( myCurrentTime, myCurrentIter, myThid ) |
|
|
c #endif |
|
|
c CALL TIMER_STOP ('I/O (READ) [MAIN LOOP]',myThid) |
|
|
c . |
|
|
c . |
|
|
c . |
|
45 |
c |
c |
46 |
c |
c |
47 |
c Modifications in subroutine |
c Interface to MITgcm release1: |
|
c THE_MODEL_MAIN (from c27 on): |
|
48 |
c ----------------------------- |
c ----------------------------- |
49 |
c . |
c |
50 |
c . |
c The following MITgcm files are affected by pkg/exf: |
51 |
c . |
c |
52 |
c |
c CPPOPTIONS.h - Define INCLUDE_EXTERNAL_FORCING_PACKAGE |
53 |
c |
c and append desired pkg/exf CPP options. |
54 |
c Modifications in subroutine |
c |
55 |
c FORWARD_STEP (from c27 on): |
c packages_readparms.F - EXF_READPARMS |
56 |
c --------------------------- |
c |
57 |
c . |
c packages_init_variables.F - EXF_INIT |
58 |
c . |
c |
59 |
c . |
c the_main_loop.F - Adjoint compiler directives. |
60 |
c C-- Load forcing/external data fields |
c |
61 |
c CALL TIMER_START('I/O (READ) [MAIN LOOP]',myThid) |
c forward_step.F - EXF_GETFORCING |
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c call exf_GetForcing( |
|
|
c I myCurrentTime, |
|
|
c I myCurrentIter, |
|
|
c I myThid |
|
|
c & ) |
|
|
c #else |
|
|
c CALL LOAD_EXTERNAL_FIELDS( myCurrentTime, myCurrentIter, myThid ) |
|
|
c #endif |
|
|
c CALL TIMER_STOP ('I/O (READ) [MAIN LOOP]',myThid) |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c |
|
|
c |
|
|
c Modifications in subroutine |
|
|
c INITIALISE_FIXED (from c27 on): |
|
|
c ------------------------------- |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c C-- Set coriolis operators |
|
|
c CALL INI_CORI( myThid ) |
|
|
c |
|
|
c#ifdef INCLUDE_LAT_CIRC_FFT_FILTER_CODE |
|
|
cC-- Latitude circle filter initialisation |
|
|
c CALL FILTER_LATCIRC_FFT_INIT(myThid) |
|
|
c _BARRIER |
|
|
c#endif |
|
|
c |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c |
|
|
c call exf_Init( mythid ) |
|
|
c |
|
|
c #ifdef ALLOW_CLIMTEMP_RELAXATION |
|
|
c c-- Set the relaxation coefficient to the temperature climatology. |
|
|
c call exf_GetTempClimLambda( |
|
|
c I mythid |
|
|
c & ) |
|
|
c _BARRIER |
|
|
c #endif |
|
|
c #ifdef ALLOW_CLIMSALT_RELAXATION |
|
|
c c-- Set the relaxation coefficient to the salinity climatology. |
|
|
c call exf_GetSaltClimLambda( |
|
|
c I mythid |
|
|
c & ) |
|
|
c _BARRIER |
|
|
c #endif |
|
|
c #ifdef ALLOW_CLIMSST_RELAXATION |
|
|
c c-- Set the relaxation coefficient to the sst climatology. |
|
|
c call exf_GetSSTClimLambda( |
|
|
c I mythid |
|
|
c & ) |
|
|
c _BARRIER |
|
|
c #endif |
|
|
c #ifdef ALLOW_CLIMSSS_RELAXATION |
|
|
c c-- Set the relaxation coefficient to the sss climatology. |
|
|
c call exf_GetSSSClimLambda( |
|
|
c I mythid |
|
|
c & ) |
|
|
c _BARRIER |
|
|
c #endif |
|
|
c #endif |
|
|
c |
|
|
c c-- Finally, summarise the model cofiguration. |
|
|
c CALL CONFIG_SUMMARY( myThid ) |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c |
|
|
c |
|
|
c external_forcing.F - Add relaxation to climatological fields. |
|
|
c |
|
|
c |
|
|
c Modifications in subroutine |
|
|
c EXTERNAL_FORCING_T (taken from c25): |
|
|
c ------------------------------------ |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #include "exf_clim.h" |
|
|
c #endif |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c C-- Forcing term |
|
|
c C Add heat in top-layer |
|
|
c IF ( kLev .EQ. 1 ) THEN |
|
|
c DO j=jMin,jMax |
|
|
c DO i=iMin,iMax |
|
|
c gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj) |
|
|
c & +maskC(i,j)*( |
|
|
c & -lambdaThetaClimRelax*(theta(i,j,kLev,bi,bj)-SST(i,j,bi,bj)) |
|
|
c & -Qnet(i,j,bi,bj)*recip_Cp*recip_rhoNil*recip_dRf(kLev) ) |
|
|
c |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #ifdef ALLOW_CLIMSST_RELAXATION |
|
|
c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) - |
|
|
c & maskc(i,j)*lambda_climsst(i,j,bi,bj)* |
|
|
c & ( theta(i,j,klev,bi,bj) - |
|
|
c & climsst(i,j,bi,bj) ) |
|
|
c #endif |
|
|
c #endif |
|
|
c |
|
|
c ENDDO |
|
|
c ENDDO |
|
|
c ENDIF |
|
|
c |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #ifdef ALLOW_CLIMTEMP_RELAXATION |
|
|
c do j=jmin,jmax |
|
|
c do i=imin,imax |
|
|
c gt(i,j,klev,bi,bj) = gt(i,j,klev,bi,bj) - |
|
|
c & maskc(i,j)*lambda_climtemp(i,j,klev,bi,bj)* |
|
|
c & ( theta(i,j,klev,bi,bj) - |
|
|
c & climtemp(i,j,klev,bi,bj) ) |
|
|
c enddo |
|
|
c enddo |
|
|
c #endif |
|
|
c #endif |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c |
|
|
c |
|
|
c Modifications in subroutine |
|
|
c EXTERNAL_FORCING_S (taken from c25): |
|
|
c ------------------------------------ |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #include "exf_clim.h" |
|
|
c #endif |
|
|
c . |
|
|
c . |
|
|
c . |
|
|
c C-- Forcing term |
|
|
c C Add fresh-water in top-layer |
|
|
c IF ( kLev .EQ. 1 ) THEN |
|
|
c DO j=jMin,jMax |
|
|
c DO i=iMin,iMax |
|
|
c gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj) |
|
|
c & +maskC(i,j)*( |
|
|
c & -lambdaSaltClimRelax*(salt(i,j,kLev,bi,bj)-SSS(i,j,bi,bj)) |
|
|
c #ifdef ALLOW_NATURAL_BCS |
|
|
c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*salt(i,j,kLev,bi,bj) |
|
|
c #else |
|
|
c & +EmPmR(i,j,bi,bj)*recip_dRf(1)*35. |
|
|
c #endif |
|
|
c & ) |
|
|
c |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #ifdef ALLOW_CLIMSSS_RELAXATION |
|
|
c gs(i,j,kLev,bi,bj) = gs(i,j,kLev,bi,bj) - |
|
|
c & maskc(i,j)*lambda_climsss(i,j,bi,bj)* |
|
|
c & ( salt(i,j,kLev,bi,bj) - |
|
|
c & climsss(i,j,bi,bj) ) |
|
|
c #endif |
|
|
c #endif |
|
|
c |
|
|
c ENDDO |
|
|
c ENDDO |
|
|
c ENDIF |
|
|
c |
|
|
c #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE |
|
|
c #ifdef ALLOW_CLIMSALT_RELAXATION |
|
|
c do j=jmin,jmax |
|
|
c do i=imin,imax |
|
|
c gs(i,j,klev,bi,bj) = gs(i,j,klev,bi,bj) - |
|
|
c & maskc(i,j)*lambda_climsalt(i,j,klev,bi,bj)* |
|
|
c & ( salt(i,j,klev,bi,bj) - |
|
|
c & climsalt(i,j,klev,bi,bj) ) |
|
|
c enddo |
|
|
c enddo |
|
|
c #endif |
|
|
c #endif |
|
|
c . |
|
|
c . |
|
|
c . |
|
62 |
c |
c |
63 |
c |
c |
64 |
c CPP options: |
c CPP options: |
69 |
c >>> INCLUDE_EXTERNAL_FORCING_PACKAGE <<< |
c >>> INCLUDE_EXTERNAL_FORCING_PACKAGE <<< |
70 |
c Include this package into the setup. |
c Include this package into the setup. |
71 |
c |
c |
72 |
c >>> EXTERNAL_FORCING_VERBOSE <<< |
c >>> EXF_VERBOSE <<< |
73 |
c Do a bit more printout for the log file than usual. |
c Do a bit more printout for the log file than usual. |
74 |
c |
c |
75 |
c >>> ALLOW_BULKFORMULAE <<< |
c >>> ALLOW_BULKFORMULAE <<< |
76 |
c Use bulk formulae to in order to estimate the turbulent |
c Allows the use of bulk formulae in order to estimate |
77 |
c fluxes at the ocean's surface. |
c the turbulent fluxes at the ocean's surface. |
78 |
c |
c |
79 |
c >>> ALLOW_ATM_TEMP <<< |
c >>> ALLOW_ATM_TEMP <<< |
80 |
c If defined use the atmospheric temperature and specific |
c Allows the use the atmospheric temperature and specific |
81 |
c humidity to estimate the sensible and latent heat fluxes. |
c humidity to estimate the sensible and latent heat fluxes. |
82 |
c |
c |
83 |
c >>> ALLOW_ATM_WIND <<< |
c >>> ALLOW_ATM_WIND <<< |
84 |
c If defined use the atmospheric wind field to estimate the |
c Allows the use the atmospheric wind field to estimate the |
85 |
c wind stress at the ocean's surface. |
c wind stress at the ocean's surface. |
86 |
c |
c |
87 |
|
c >>> EXF_NO_BULK_COMPUTATIONS <<< |
88 |
|
c If defined, no bulk formulae computations are carried out |
89 |
|
c within pkg/exf. This option, in combination with |
90 |
|
c ALLOW_BULKFORMULAE, ALLOW_ATM_TEMP, and ALLOW_ATM_WIND |
91 |
|
c can be used to read-in the atmospheric state and pass it |
92 |
|
c on to a separate package for bulk formulae computations. |
93 |
|
c |
94 |
|
c >>> EXF_READ_EVAP <<< |
95 |
|
c If defined, evaporation is read-in from a file, rather than |
96 |
|
c computed from atmospheric state. |
97 |
|
c |
98 |
|
c >>> ALLOW_CLIM_CYCLIC <<< |
99 |
|
c If defined, relaxation file record numbers are assumed 1 to |
100 |
|
c 12 corresponding to Jan. through Dec. Otherwise relaxation |
101 |
|
c file record numbers are specified in data.exf_clim |
102 |
|
c |
103 |
c >>> ALLOW_CLIMTEMP_RELAXATION <<< |
c >>> ALLOW_CLIMTEMP_RELAXATION <<< |
104 |
c Allow the relaxation to a monthly climatology of potential |
c Allow the relaxation to a monthly climatology of potential |
105 |
c temperature, e.g. the Levitus climatology. |
c temperature, e.g. the Levitus climatology. |
172 |
c Data files: |
c Data files: |
173 |
c ----------- |
c ----------- |
174 |
c |
c |
175 |
c There are 10 possible setups that can be covered by the external |
c data.exf :: variables related to surface fluxes |
176 |
c forcing package. For each of these setups a data file is available. |
c data.exf_clim :: variables for relaxation to climatological fields |
|
c |
|
|
c data.forcing__blk__uat__uaw__kpp |
|
|
c data.forcing__blk__uat__uaw_nkpp |
|
|
c data.forcing__blk__uat_nuaw__kpp |
|
|
c data.forcing__blk__uat_nuaw_nkpp |
|
|
c data.forcing__blk_nuat__uaw__kpp |
|
|
c data.forcing__blk_nuat__uaw_nkpp |
|
|
c data.forcing__blk_nuat_nuaw__kpp |
|
|
c data.forcing__blk_nuat_nuaw_nkpp |
|
|
c data.forcing_nblk_nuat_nuaw__kpp |
|
|
c data.forcing_nblk_nuat_nuaw_nkpp |
|
|
c |
|
|
c The naming convention is self-explanatory (hopefully). |
|
|
c |
|
|
c Once a specified setup is decided upon use the corresponding data |
|
|
c file in order to set the file names for the individual variables and |
|
|
c provide the necessary calendar information. |
|
|
c |
|
|
c Copy the appropriate data file to .../exe/data.exf . |
|
|
c |
|
177 |
c |
c |
178 |
c Routines: |
c Routines: |
179 |
c ---------- |
c ---------- |
185 |
c Call trees: |
c Call trees: |
186 |
c ----------- |
c ----------- |
187 |
c |
c |
188 |
|
c exf_readparms |
189 |
|
c | |
190 |
|
c |---- exf_summary |
191 |
|
c |---- exf_clim_readparms |
192 |
|
c |---- exf_clim_summary |
193 |
|
c |
194 |
c |
c |
195 |
c exf_Init |
c exf_Init |
196 |
c | |
c | |
197 |
c |---- exf_Summary |
c |---- exf_init_hflux |
198 |
c |---- exf_InitSurfaceFluxes |
c |---- exf_init_sflux |
199 |
c |---- exf_InitClimatology |
c |---- exf_init_ustress |
200 |
|
c |---- exf_init_vstress |
201 |
|
c |---- exf_init_evap |
202 |
|
c |---- exf_init_runoff |
203 |
|
c |---- exf_init_atemp |
204 |
|
c |---- exf_init_aqh |
205 |
|
c |---- exf_init_lwflux |
206 |
|
c |---- exf_init_swflux |
207 |
|
c |---- exf_init_precip |
208 |
|
c |---- exf_init_uwind |
209 |
|
c |---- exf_init_vwind |
210 |
|
c |---- exf_clim_init |
211 |
c |
c |
212 |
c |
c |
213 |
c exf_GetForcing |
c exf_GetForcing |
214 |
c | |
c | |
215 |
c |---- exf_GetTempClim |
c |---- exf_getclim |
216 |
c |---- exf_GetSaltClim |
c |---- exf_getffields |
|
c |---- exf_GetSSTClim |
|
|
c |---- exf_GetSSSClim |
|
217 |
c |---- exf_GetSurfaceFluxes |
c |---- exf_GetSurfaceFluxes |
218 |
c |---- exf_MapFields |
c |---- exf_MapFields |
219 |
c |
c |
224 |
c |
c |
225 |
c Getting the forcing fields: |
c Getting the forcing fields: |
226 |
c |
c |
227 |
c o exf_InitSurfaceFluxes - Initialise the external forcing fields. |
c o exf_init_??? - Initialise external forcing fields ???. |
228 |
c |
c |
229 |
c o exf_GetsurfaceFluxes - Mid-level routine for adding fluxes as |
c o exf_GetsurfaceFluxes - Mid-level routine for adding fluxes as |
230 |
c control variables. |
c control variables. |
235 |
c |
c |
236 |
c Routines specific to bulk formulae: |
c Routines specific to bulk formulae: |
237 |
c |
c |
238 |
c o exf_qSat - Compute the saturation specific humidity. |
c o exf_bulkqsat - Compute the saturation specific humidity. |
239 |
c |
c |
240 |
c o exf_Cdn - Evaluate the neutral drag coefficient as a |
c o exf_bulkcdn - Evaluate the neutral drag coefficient as a |
241 |
c function of the mean wind speed at a given |
c function of the mean wind speed at a given |
242 |
c height. |
c height. |
243 |
c |
c |
244 |
c o exf_Rhn - Evaluate the Stanton number. |
c o exf_bulkrhn - Evaluate the Stanton number. |
245 |
c |
c |
246 |
c Getting the time data (calendar): |
c Getting the time data (calendar): |
247 |
c |
c |
251 |
c |
c |
252 |
c Reading the forcing data: |
c Reading the forcing data: |
253 |
c |
c |
254 |
c o exf_ReadAtmTemp - Read an atmospheric temperature record. |
c o exf_set_atemp - Read an atmospheric temperature record. |
255 |
c |
c |
256 |
c o exf_ReadAtmQh - Read an atmospheric humidity record. |
c o exf_set_aqh - Read an atmospheric humidity record. |
257 |
c |
c |
258 |
c o exf_ReadHeatFlux - Read an atmospheric heat flux record. |
c o exf_set_hflux - Read an atmospheric heat flux record. |
259 |
c |
c |
260 |
c o exf_ReadZonStress - Read an atmospheric zonal wind stress record. |
c o exf_set_ustress - Read an atmospheric zonal wind stress record. |
261 |
c |
c |
262 |
c o exf_ReadMerStress - Read an atmospheric meridional wind stress |
c o exf_set_vstress - Read an atmospheric meridional wind stress |
263 |
c record. |
c record. |
264 |
c |
c |
265 |
c o exf_ReadZonWind - Read an atmospheric zonal wind record. |
c o exf_set_uwind - Read an atmospheric zonal wind record. |
266 |
c |
c |
267 |
c o exf_ReadMerWind - Read an atmospheric meridional wind record. |
c o exf_set_vwind - Read an atmospheric meridional wind record. |
268 |
c |
c |
269 |
c o exf_ReadAtmPrecip - Read a precipitation record. |
c o exf_set_precip - Read a precipitation record. |
270 |
c |
c |
271 |
c o exf_ReadSaltFlux - Read a salt flux record. |
c o exf_set_sflux - Read a salt flux record. |
272 |
c |
c |
273 |
c o exf_ReadLwFlux - Read a long wave radiative flux record. |
c o exf_set_lwflux - Read a long wave radiative flux record. |
274 |
c |
c |
275 |
c o exf_ReadSwFlux - Read a short wave radiative flux record. |
c o exf_set_swflux - Read a short wave radiative flux record. |
276 |
c |
c |
277 |
c |
c |
278 |
c At the moment, a basic premise of this package is that the external |
c At the moment, a basic premise of this package is that the external |
285 |
c Climatology: |
c Climatology: |
286 |
c ============ |
c ============ |
287 |
c |
c |
288 |
c o exf_InitClimatology - Initialise the climatology code. |
c o exf_clim_init - Initialise the climatology code. |
|
c |
|
|
c o exf_GetMonthsRec - Get the record number of a monthly |
|
|
c climatology data set for a given model |
|
|
c timestep. |
|
289 |
c |
c |
290 |
c Temperature climatology: |
c o exf_set_climtemp - Get the temperature climatology's |
|
c |
|
|
c o exf_GetTempClim - Get the temperature climatology's |
|
291 |
c value for a given model timestep. |
c value for a given model timestep. |
292 |
c |
c |
293 |
c o exf_GetTempClimRec - Get the record number, the linear |
c o exf_set_climsalt - Get the salinity climatology's |
|
c interpolation factor, and some flags |
|
|
c for the temperature climatology. |
|
|
c |
|
|
c o exf_ReadTempClim - Read a temperature climatology's |
|
|
c data record. |
|
|
c |
|
|
c o exf_GetTempClimLambda - Calculate the relaxation coefficient |
|
|
c for the temperature climatology. |
|
|
c |
|
|
c Salinity climatology. |
|
|
c |
|
|
c o exf_GetSaltClim - Get the salinity climatology's |
|
294 |
c value for a given model timestep. |
c value for a given model timestep. |
295 |
c |
c |
296 |
c o exf_GetSaltClimRec - Get the record number, the linear |
c o exf_set_climsst - Get the sea surface temp. climatology's |
|
c interpolation factor, and some flags |
|
|
c for the salinity climatology. |
|
|
c |
|
|
c o exf_ReadSaltClim - Read a salinity climatology's |
|
|
c data record. |
|
|
c |
|
|
c o exf_GetSaltClimLambda - Calculate the relaxation coefficient |
|
|
c for salinity climatology. |
|
|
c |
|
|
c Sea surface temperature climatology. |
|
|
c |
|
|
c o exf_GetSSTClim - Get the sea surface temp. climatology's |
|
297 |
c value for a given model timestep. |
c value for a given model timestep. |
298 |
c |
c |
299 |
c o exf_GetSSTClimRec - Get the record number, the linear |
c o exf_set_climsss - Get the sea surface salin. climatology's |
|
c interpolation factor, and some flags |
|
|
c for the sea surface temp. climatology. |
|
|
c |
|
|
c o exf_ReadSSTClim - Read a sea surface temp. climatology's |
|
|
c data record. |
|
|
c |
|
|
c o exf_GetSSTClimLambda - Calculate the relaxation coefficient |
|
|
c for the sea surface temperature |
|
|
c climatology. |
|
|
c |
|
|
c Sea surface salinity climatology: |
|
|
c |
|
|
c o exf_GetSSSClim - Get the sea surface salin. climatology's |
|
300 |
c value for a given model timestep. |
c value for a given model timestep. |
301 |
c |
c |
|
c o exf_GetSSSClimRec - Get the record number, the linear |
|
|
c interpolation factor, and some flags |
|
|
c for the sea surface salin. climatology. |
|
|
c |
|
|
c o exf_ReadSSSClim - Read a sea surface salin. climatology's |
|
|
c data record. |
|
|
c |
|
|
c o exf_GetSSSClimLambda - Calculate the relaxation coefficient |
|
|
c for the sea surface salinity |
|
|
c climatology. |
|
|
c |
|
302 |
c |
c |
303 |
c HOW TO GET STARTED? |
c HOW TO GET STARTED? |
304 |
c |
c |
305 |
c Copy the routines and headers to the distribution after you have |
c There are two verification experiments, global_with_exf and |
306 |
c installed the latter. Next, install the calendar tool, which is |
c lab_sea that use pkg/exf. Experiment verification/global_with_exf |
307 |
c quite extenisvely used by the external forcing package. |
c is a repeat of verification/global_ocean.90x40x15, except that it |
308 |
c |
c uses the pkg/exf and pkg/cal instead of the external_fields_load |
309 |
c http://mitgcm.lcs.mit.edu/cgi-bin/cvsweb/packages/calendar_tool/ |
c routine. Experiment verification/lab_sea gives exaples of using |
310 |
|
c pkg/exf in conjunction with pkg/seaice. |
311 |
c |
c |
312 |
c |
c |
313 |
c ATTENTION: |
c ATTENTION: |
326 |
c |
c |
327 |
c Relevant external forcing package routines are: |
c Relevant external forcing package routines are: |
328 |
c |
c |
329 |
c exf_ReadHeatFlux |
c exf_set_hflux |
330 |
c . |
c . |
331 |
c . |
c . |
332 |
c exf_ReadZonWind |
c exf_set_vwind |
333 |
c exf_MapFields |
c exf_MapFields |
334 |
c |
c |
335 |
c All adaptations of signs and units to specific data sets should be |
c All adaptations of signs and units to specific data sets should be |
341 |
c Some routines have to be customized for the current specific |
c Some routines have to be customized for the current specific |
342 |
c application: |
c application: |
343 |
c |
c |
344 |
c e.g. exf_GetClimTempLambda |
c e.g. exf_set_climtemp |
345 |
c exf_GetClimSaltLambda |
c exf_set_climsalt |
346 |
c exf_GetClimSSTLambda |
c exf_set_climsst |
347 |
c exf_GetClimSSSLambda |
c exf_set_climsss |
|
c |
|
348 |
c |
c |
349 |
c |
c |
|
c To Do: |
|
|
c ------ |
|
|
c |
|
|
c Many assumptions that are made in the current version should, and |
|
|
c can, be relaxed in later versions: |
|
|
c |
|
|
c - gridded data sets --> general data set (other grids, inter- |
|
|
c polation in space) |
|
|
c |
|
|
c - equidistancy in time --> general data set (non-equidistant in |
|
|
c time) |
|
|
c |
|
|
c - climatologies --> arbitrary subinterval of a year, not |
|
|
c just monthly values. |
|
|
c |
|
|
c - relaxation --> relaxation could be done to a given |
|
|
c data set over the model's integration |
|
|
c time. This would generalise the clima- |
|
|
c tology block. One could have 'cyclic' |
|
|
c and 'non-cyclic' fields. In the first |
|
|
c case, the cycle length has to be spe- |
|
|
c cified ('monthly','yearly','period') as |
|
|
c well as the start of the cycle ( irec=1 |
|
|
c corresponds to a certain calendar date). |
|
|
c The second case can be treated analog- |
|
|
c ously. |
|
|
c |
|
|
c - There is an inconsistency in the formulation of frocing variables |
|
|
c defined on southern and western points on the C-grid, since the |
|
|
c the atmospheric stability is calculated on center points of the |
|
|
c C-grid. |
|
|
c |
|
350 |
c ======== |
c ======== |
351 |
c HISTORY: |
c HISTORY: |
352 |
c ======== |
c ======== |
353 |
c |
c |
|
c |
|
354 |
c started: Christian Eckert eckert@mit.edu 30-Jun-1999 |
c started: Christian Eckert eckert@mit.edu 30-Jun-1999 |
355 |
c |
c |
356 |
c changed: Christian Eckert eckert@mit.edu 11-Jan-2000 |
c changed: Christian Eckert eckert@mit.edu 11-Jan-2000 |
410 |
c - Included unit and sign conventions valid for c28 |
c - Included unit and sign conventions valid for c28 |
411 |
c in README. |
c in README. |
412 |
c |
c |
413 |
|
c Dimitris Menemenlis menemenlis@jpl.nasa.gov 20-Dec-2002 |
414 |
|
c |
415 |
|
c - Modifications for using pkg/exf with pkg/seaice. |
416 |
|
c |
417 |
c ================================================================== |
c ================================================================== |