/[MITgcm]/MITgcm/verification/global_ocean.cs32x15/code/EXF_OPTIONS.h
ViewVC logotype

Contents of /MITgcm/verification/global_ocean.cs32x15/code/EXF_OPTIONS.h

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


Revision 1.12 - (show annotations) (download)
Fri Oct 6 00:13:56 2017 UTC (4 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, HEAD
Changes since 1.11: +8 -2 lines
File MIME type: text/plain
- keep this version up-to-date with standard version (in pkg/exf)
- define EXF_ALLOW_TIDES to test that this code compiles

1 C $Header: /u/gcmpack/MITgcm/verification/global_ocean.cs32x15/code/EXF_OPTIONS.h,v 1.11 2017/03/07 18:01:50 jmc Exp $
2 C $Name: $
3
4 CBOP
5 C !ROUTINE: EXF_OPTIONS.h
6 C !INTERFACE:
7 C #include "EXF_OPTIONS.h"
8
9 C !DESCRIPTION:
10 C *==================================================================*
11 C | CPP options file for EXternal Forcing (EXF) package:
12 C | Control which optional features to compile in this package code.
13 C *==================================================================*
14 CEOP
15
16 #ifndef EXF_OPTIONS_H
17 #define EXF_OPTIONS_H
18 #include "PACKAGES_CONFIG.h"
19 #include "CPP_OPTIONS.h"
20
21 #ifdef ALLOW_EXF
22 #ifdef ECCO_CPPOPTIONS_H
23
24 C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included
25 C in CPP_OPTIONS.h), this option file is left empty since all options that
26 C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h
27
28 #else /* ndef ECCO_CPPOPTIONS_H */
29
30 C-- Package-specific Options & Macros go here
31
32 C --------------------
33 C pkg/exf CPP options:
34 C (see also table below on how to combine options)
35
36 C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev"
37 C
38 C >>> ALLOW_ATM_WIND <<<
39 C If defined, set default value of run-time param. "useAtmWind" to True.
40 C If useAtmWind=True, read-in and use wind vector (uwind/vwind)
41 C to compute surface wind stress.
42 C
43 C >>> ALLOW_ATM_TEMP <<<
44 C This is the main EXF option controlling air-sea buoyancy fluxes:
45 C If undefined, net heat flux (Qnet) and net fresh water flux
46 C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting.
47 C If defined, net heat flux and net fresh water flux are computed
48 C from sum of various components (radiative SW,LW + turbulent heat
49 C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring
50 C hfluxfile & sfluxfile.
51 C In addition, it allows to read-in from files atmospheric temperature
52 C and specific humidity, net radiative fluxes, and precip.
53 C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or
54 C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined).
55 C
56 C >>> ALLOW_DOWNWARD_RADIATION <<<
57 C If defined, downward long-wave and short-wave radiation
58 C can be read-in form files to compute net lwflux and swflux.
59 C
60 C >>> ALLOW_ZENITHANGLE <<<
61 C If defined, ocean albedo varies with the zenith angle, and
62 C incoming fluxes at the top of the atmosphere are computed
63 C
64 C >>> ALLOW_BULKFORMULAE <<<
65 C Allows the use of bulk formulae in order to estimate
66 C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface.
67 C
68 C >>> EXF_CALC_ATMRHO
69 C Calculate the local air density as function of temp, humidity
70 C and pressure
71 C
72 C >>> EXF_READ_EVAP <<<
73 C If defined, evaporation field is read-in from file;
74 C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from
75 C atmospheric state will be replaced by read-in evap but computed
76 C latent heat flux will be kept.
77 C
78 C >>> ALLOW_READ_TURBFLUXES <<<
79 C If defined, turbulent heat fluxes (sensible and latent) can be read-in
80 C from files (but overwritten if ALLOW_BULKFORMULAE is defined).
81 C
82 C >>> ALLOW_RUNOFF <<<
83 C If defined, river and glacier runoff can be read-in from files.
84 C
85 C >>> ALLOW_SALTFLX <<<
86 C If defined, upward salt flux can be read-in from files.
87 C
88 C >>> ALLOW_RUNOFTEMP <<<
89 C If defined, river and glacier runoff temperature
90 C can be read-in from files.
91 C
92 C >>> ATMOSPHERIC_LOADING <<<
93 C If defined, atmospheric pressure can be read-in from files.
94 C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h
95 C and cannot be changed here (in EXF_OPTIONS.h)
96 C
97 C >>> EXF_ALLOW_TIDES <<<
98 C If defined, 2-D tidal geopotential can be read-in from files
99 C
100 C >>> EXF_SEAICE_FRACTION <<<
101 C If defined, seaice fraction can be read-in from files (areaMaskFile)
102 C
103 C >>> ALLOW_CLIMSST_RELAXATION <<<
104 C Allow the relaxation to a monthly climatology of sea surface
105 C temperature, e.g. the Reynolds climatology.
106 C
107 C >>> ALLOW_CLIMSSS_RELAXATION <<<
108 C Allow the relaxation to a monthly climatology of sea surface
109 C salinity, e.g. the Levitus climatology.
110 C
111 C >>> USE_EXF_INTERPOLATION <<<
112 C Allows to provide input field on arbitrary Lat-Lon input grid
113 C (as specified in EXF_NML_04) and to interpolate to model grid.
114 C Note: default is to interpolate unless {FLD}_interpMethod is set to 0
115 C
116 C ====================================================================
117 C
118 C The following CPP options:
119 C ALLOW_ATM_WIND / useAtmWind (useWind)
120 C ALLOW_ATM_TEMP (TEMP)
121 C ALLOW_DOWNWARD_RADIATION (DOWN)
122 C ALLOW_BULKFORMULAE (BULK)
123 C EXF_READ_EVAP (EVAP)
124 C ALLOW_READ_TURBFLUXES (TURB)
125 C
126 C permit all ocean-model forcing configurations listed in the 2 tables below.
127 C The first configuration (A1,B1) is the flux-forced, ocean model.
128 C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae
129 C to compute, from atmospheric variables, the missing surface fluxes.
130 C The forcing fields in the rightmost column are defined in EXF_FIELDS.h
131 C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h)
132 C
133 C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress]
134 C
135 C # |useWind| actions
136 C ---|-------|-------------------------------------------------------------
137 C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed)
138 C | |
139 C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress.
140 C ---|-------|-------------------------------------------------------------
141 C
142 C (B) Surface buoyancy flux:
143 C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux)
144 C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ]
145 C
146 C # |TEMP |DOWN |BULK |EVAP |TURB | actions
147 C ---|-----|-----|-----|-----|-----|-------------------------------------
148 C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux.
149 C | | | | | |
150 C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux.
151 C | | | | | | Compute swflux.
152 C | | | | | |
153 C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown,
154 C | | | | | | precip, and runoff.
155 C | | | | | | Compute hflux, swflux and sflux.
156 C | | | | | |
157 C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux,
158 C | | | | | | precip, and runoff.
159 C | | | | | | Compute hflux and sflux.
160 C | | | | | |
161 C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown,
162 C | | | | | | evap, precip and runoff.
163 C | | | | | | Compute hflux, swflux and sflux.
164 C | | | | | |
165 C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux,
166 C | | | | | | evap, precip and runoff.
167 C | | | | | | Compute hflux and sflux.
168 C
169 C =======================================================================
170
171 C- Bulk formulae related flags.
172 #define ALLOW_ATM_TEMP
173 #undef ALLOW_ATM_WIND
174 #define ALLOW_DOWNWARD_RADIATION
175 #ifdef ALLOW_ATM_TEMP
176 C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP
177 # define ALLOW_BULKFORMULAE
178 # define ALLOW_BULK_LARGEYEAGER04
179 # undef EXF_READ_EVAP
180 # ifndef ALLOW_BULKFORMULAE
181 C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to
182 C be defined but ALLOW_BULKFORMULAE needs to be undef
183 # define ALLOW_READ_TURBFLUXES
184 # endif
185 #endif /* ALLOW_ATM_TEMP */
186
187 C- Other forcing fields
188 #define ALLOW_RUNOFF
189 #define ALLOW_RUNOFTEMP
190 #undef ALLOW_SALTFLX
191
192 #if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING))
193 C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE
194 C and ATMOSPHERIC_LOADING need to be defined
195 # undef EXF_CALC_ATMRHO
196 #endif
197
198 C- Zenith Angle/Albedo related flags.
199 #ifdef ALLOW_DOWNWARD_RADIATION
200 # define ALLOW_ZENITHANGLE
201 #endif
202
203 C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined
204 C unless to reproduce old results (obtained with inconsistent old code)
205 #ifdef ALLOW_DOWNWARD_RADIATION
206 # define EXF_LWDOWN_WITH_EMISSIVITY
207 #endif
208
209 C- Relaxation to monthly climatologies.
210 #define ALLOW_CLIMSST_RELAXATION
211 #define ALLOW_CLIMSSS_RELAXATION
212
213 C- Allows to read-in (2-d) tidal geopotential forcing
214 #define EXF_ALLOW_TIDES
215
216 C- Allows to read-in seaice fraction from files (areaMaskFile)
217 #undef EXF_SEAICE_FRACTION
218
219 C- Use spatial interpolation to interpolate
220 C forcing files from input grid to model grid.
221 #undef USE_EXF_INTERPOLATION
222 C for interpolated vector fields, rotate towards model-grid axis
223 C using old rotation formulae (instead of grid-angles)
224 #undef EXF_USE_OLD_VEC_ROTATION
225 C for interpolation around N & S pole, use the old formulation
226 C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole)
227 #undef EXF_USE_OLD_INTERP_POLE
228
229 #undef EXF_INTERP_USE_DYNALLOC
230 #if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS )
231 # define EXF_IREAD_USE_GLOBAL_POINTER
232 #endif
233
234 #endif /* ndef ECCO_CPPOPTIONS_H */
235 #endif /* ALLOW_EXF */
236 #endif /* EXF_OPTIONS_H */

  ViewVC Help
Powered by ViewVC 1.1.22