|
|
|||
Warning, /doc/phys_pkgs/exf.rst is written in an unsupported language. File is not indexed.
view on githubraw file Latest commit f1b47feb on 2026-01-19 00:25:25 UTC8679f9097b Jeff*0001 .. _sub_phys_pkg_exf: 0002 0003 EXF: The external forcing package 0004 --------------------------------- 0005 0006 Authors: Patrick Heimbach and Dimitris Menemenlis 0007 0008 .. _ssub_phys_pkg_exf_intro: 0009 0010 Introduction 0011 ++++++++++++ 0012 0013 The external forcing package, in conjunction with the calendar package** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 15.
0014 (cal), enables the handling of real-time (or “model-time”) forcing 0015 fields of differing temporal forcing patterns. It comprises 0016 climatological restoring and relaxation. Bulk formulae are implemented 0017 to convert atmospheric fields to surface fluxes. An interpolation 0018 routine provides on-the-fly interpolation of forcing fields an arbitrary 0019 grid onto the model grid. 0020 31c71ded02 Mart*0021 CPP options enable or disable different aspects of the package 0022 (:numref:`ssub_phys_pkg_exf_config`). Runtime options, flags, 0023 filenames and field-related dates/times are set in ``data.exf`` 0024 (:numref:`ssub_phys_pkg_exf_runtime`). A description of key subroutines 0025 is given in :numref:`ssub_phys_pkg_exf_subroutines`. Input fields, 0026 units and sign conventions are summarized in 0027 :numref:`ssub_phys_pkg_exf_inputs_units`, and available 0028 diagnostics output is listed in 0029 :numref:`ssub_phys_pkg_exf_diagnostics`. 8679f9097b Jeff*0030 0031 .. _ssub_phys_pkg_exf_config: 0032 0033 EXF configuration, compiling & running 0034 ++++++++++++++++++++++++++++++++++++++ 0035 0036 Compile-time options 0037 #################### 0038 0039 As with all MITgcm packages, EXF can be turned on or off at compile time 0040 0041 - using the ``packages.conf`` file by adding ``exf`` to it, 0042 0043 - or using ``genmake2`` adding ``-enable=exf`` or ``-disable=exf`` 0044 switches 0045 0046 - *required packages and CPP options*: 31c71ded02 Mart*0047 EXF (only) requires the calendar package ``cal`` to be enabled if 0048 the julian calendar will be used with the data ; no 8679f9097b Jeff*0049 additional CPP options are required. 0050 31c71ded02 Mart*0051 (see :numref:`building_code`). 8679f9097b Jeff*0052 0053 Parts of the EXF code can be enabled or disabled at compile time via CPP 0054 preprocessor flags. These options are set in either ``EXF_OPTIONS.h`` or 0055 in ``ECCO_CPPOPTIONS.h``. :numref:`tab_phys_pkg_exf_cpp_options` summarizes these 0056 options. 0057 0058 .. table:: EXF CPP options 0059 :name: tab_phys_pkg_exf_cpp_options 0060 0061 +----------------------------------+-----------------------------------------------------------+ 0062 | **CPP option** | **Description** | 0063 +==================================+===========================================================+ 0064 | :code:`EXF_VERBOSE` | verbose mode (recommended only for testing) | 0065 +----------------------------------+-----------------------------------------------------------+ 0066 | :code:`ALLOW_ATM_TEMP` | compute heat/freshwater fluxes from atmos. state input | 0067 +----------------------------------+-----------------------------------------------------------+ 0068 | :code:`ALLOW_ATM_WIND` | compute wind stress from wind speed input | 0069 +----------------------------------+-----------------------------------------------------------+ cc60455fbb Mart*0070 | :code:`ALLOW_BULKFORMULAE` | use bulk formulae following Large and Pond (1981, 1982); | 0071 | | requires to define :code:`ALLOW_ATM_TEMP`. | 0072 +----------------------------------+-----------------------------------------------------------+ 0073 | :code:`ALLOW_BULK_LARGEYEAGER04` | use modifications of Large and Pond (1981, 1982), as | 0074 | | described in Large and Yeager (2004) NCAR/TN-460+STR. | 0075 +----------------------------------+-----------------------------------------------------------+ 0076 | :code:`ALLOW_DRAG_LARGEYEAGER09` | compute drag cofficient following Large and Yeager | 0077 | | (2009), Climate Dynamics, 33, pages 341-364 | 8679f9097b Jeff*0078 +----------------------------------+-----------------------------------------------------------+ 0079 | :code:`EXF_READ_EVAP` | read evaporation instead of computing it | 0080 +----------------------------------+-----------------------------------------------------------+ 0081 | :code:`ALLOW_RUNOFF` | read time-constant river/glacier run-off field | 0082 +----------------------------------+-----------------------------------------------------------+ 0083 | :code:`ALLOW_DOWNWARD_RADIATION` | compute net from downward or downward from net radiation | 0084 +----------------------------------+-----------------------------------------------------------+ 0085 | :code:`USE_EXF_INTERPOLATION` | enable on-the-fly bilinear or bicubic | 0086 | | interpolation of input fields | 0087 +----------------------------------+-----------------------------------------------------------+ 0088 | *used in conjunction with relaxation to prescribed (climatological) fields* | 0089 +----------------------------------+-----------------------------------------------------------+ 0090 | :code:`ALLOW_CLIMSST_RELAXATION` | relaxation to 2-D SST climatology | 0091 +----------------------------------+-----------------------------------------------------------+ 0092 | :code:`ALLOW_CLIMSSS_RELAXATION` | relaxation to 2-D SSS climatology | 0093 +----------------------------------+-----------------------------------------------------------+ 0094 | *these are set outside of EXF in* :code:`CPP_OPTIONS.h` | 0095 +----------------------------------+-----------------------------------------------------------+ 0096 | :code:`SHORTWAVE_HEATING` | enable shortwave radiation | 0097 +----------------------------------+-----------------------------------------------------------+ 0098 | :code:`ATMOSPHERIC_LOADING` | enable surface pressure forcing | 0099 +----------------------------------+-----------------------------------------------------------+ 0100 0101 .. _ssub_phys_pkg_exf_runtime: 0102 0103 Run-time parameters 0104 +++++++++++++++++++ 0105 0106 Run-time parameters are set in files ``data.pkg`` and ``data.exf`` which 0107 is read in ``exf_readparms.F``. Run-time parameters may be broken into 3 0108 categories: (i) switching on/off the package at runtime, (ii) general 0109 flags and parameters, and (iii) attributes for each forcing and 0110 climatological field. 0111 0112 Enabling the package 0113 #################### 0114 0115 A package is switched on/off at runtime by setting (e.g. for EXF) 0116 ``useEXF = .TRUE.`` in ``data.pkg``. 0117 0118 General flags and parameters 0119 ############################ 0120 0121 .. table:: EXF runtime options 0122 :name: tab_phys_pkg_exf_runtime_params 0123 0124 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0125 | **Flag/parameter** | **default** | **Description** | 0126 +=========================+==================+===============================================================================+ 0127 | useExfCheckRange | :code:`.TRUE.` | check range of input fields and stop if out of range | 0128 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0129 | useExfYearlyFields | :code:`.FALSE.` | append current year postfix of form ``_YYYY`` on filename | 0130 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0131 | twoDigitYear | :code:`.FALSE.` | instead of appending ``_YYYY`` append ``YY`` | 0132 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0133 | repeatPeriod | 0.0 | > 0: cycle through all input fields at the same period (in seconds) | 0134 | | +-------------------------------------------------------------------------------+ 0135 | | | = 0: use period assigned to each field | 0136 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0137 | exf_offset_atemp | 0.0 | set to 273.16 to convert from deg. Kelvin (assumed input) to Celsius | 0138 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0139 | windstressmax | 2.0 | max. allowed wind stress N m\ :sup:`--2` | 0140 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0141 | exf_albedo | 0.1 | surface albedo used to compute downward vs. net radiative fluxes | 0142 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0143 | climtempfreeze | -1.9 | ??? | 0144 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0145 | ocean_emissivity | | longwave ocean-surface emissivity | 0146 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0147 | ice_emissivity | | longwave seaice emissivity | 0148 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0149 | snow_emissivity | | longwave snow emissivity | 0150 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0151 | exf_iceCd | 1.63E-3 | drag coefficient over sea-ice | 0152 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0153 | exf_iceCe | 1.63E-3 | evaporation transfer coeff. over sea-ice | 0154 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0155 | exf_iceCh | 1.63E-3 | sensible heat transfer coeff. over sea-ice | 0156 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0157 | exf_scal_BulkCdn | 1.0 | overall scaling of neutral drag coeff. | 0158 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0159 | useStabilityFct_overIce | :code:`.FALSE.` | compute turbulent transfer coeff. over sea-ice | 0160 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0161 | readStressOnAgrid | :code:`.FALSE.` | read wind-streess located on model-grid, A-grid point | 0162 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0163 | readStressOnCgrid | :code:`.FALSE.` | read wind-streess located on model-grid, C-grid point | 0164 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0165 | useRelativeWind | :code:`.FALSE.` | subtract [U/V]VEL or [U/VICE from U/V]WIND before | 0166 | | | computing [U/V]STRESS | 0167 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0168 | zref | 10.0 | reference height | 0169 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0170 | hu | 10.0 | height of mean wind | 0171 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0172 | ht | 2.0 | height of mean temperature and rel. humidity | 0173 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0174 | umin | 0.5 | minimum absolute wind speed for computing Cd | 0175 +-------------------------+------------------+-------------------------------------------------------------------------------+ cc60455fbb Mart*0176 | atmrho | 1.2 | mean atmospheric density [kg/m\ :sup:`3`] | 8679f9097b Jeff*0177 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0178 | atmcp | 1005.0 | mean atmospheric specific heat [J/kg/K] | 0179 +-------------------------+------------------+-------------------------------------------------------------------------------+ cc60455fbb Mart*0180 | cdrag_[n] | | n = 1,2,3,8; parameters for drag coeff. function | 0181 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0182 | cdrag_1 | 0.0027000 | [m/s] | 0183 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0184 | cdrag_2 | 0.0001420 | [-] | 0185 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0186 | cdrag_3 | 0.0000764 | [s/m] | 0187 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0188 | cdrag_8 | -3.14807e-13 | [(s/m)\ :sup:`6`] (only used with Large and Yeager, 2009) | 0189 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0190 | cdragMax | 0.00234 | maximum drag [-] (only Large and Yeager, 2009) for wind > umax | 0191 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0192 | umax | 33. | threshold above which cdragMax applies [m/s] (only Large and Yeager, 2009) | 8679f9097b Jeff*0193 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0194 | cstanton_[n] | ??? | n = 1,2; parameters for Stanton number function | 0195 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0196 | cdalton | ??? | parameter for Dalton number function | 0197 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0198 | flamb | 2500000.0 | latent heat of evaporation [J/kg] | 0199 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0200 | flami | 334000.0 | latent heat of melting of pure ice [J/kg] | 0201 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0202 | zolmin | -100.0 | minimum stability parameter | 0203 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0204 | cvapor_fac | 640380.0 | | 0205 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0206 | cvapor_exp | 5107.4 | | 0207 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0208 | cvapor_fac_ice | 11637800.0 | | 0209 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0210 | cvapor_fac_ice | 5897.8 | | 0211 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0212 | humid_fac | 0.606 | parameter for virtual temperature calculation | 0213 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0214 | gamma_blk | 0.010 | adiabatic lapse rate | 0215 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0216 | saltsat | 0.980 | reduction of saturation vapor pressure over salt-water | 0217 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0218 | psim_fac | 5.0 | | 0219 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0220 | exf_monFreq | monitorFreq | output frequency [s] | 0221 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0222 | exf_iprec | 32 | precision of input fields (32-bit or 64-bit) | 0223 +-------------------------+------------------+-------------------------------------------------------------------------------+ 0224 0225 Field attributes 0226 ################ 0227 31c71ded02 Mart*0228 All EXF fields are listed in 0229 :numref:`ssub_phys_pkg_exf_inputs_units`. Each field has a number of 0230 attributes which can be customized. They are summarized in 0231 :numref:`tab_phys_pkg_exf_runtime_attributes`. To obtain an attribute for a 8679f9097b Jeff*0232 specific field, e.g. ``uwind`` prepend the field name to the listed 0233 attribute, e.g. for attribute ``period`` this yields ``uwindperiod``: 0234 0235 .. math:: 0236 0237 \begin{aligned} 0238 \begin{array}{cccccc} 0239 ~ & \texttt{field} & \& & \texttt{attribute} & \longrightarrow & \texttt{parameter} \\ 0240 \text{e.g.} & \text{uwind} & \& & \text{period} & \longrightarrow & \text{uwindperiod} \\ 0241 \end{array}\end{aligned} 0242 31c71ded02 Mart*0243 .. table:: EXF runtime attributes 8679f9097b Jeff*0244 Note there is one exception for the default of ``atempconst`` = celsius2K = 273.16 0245 :name: tab_phys_pkg_exf_runtime_attributes 0246 0247 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0248 | **attribute** | **Default** | **Description** | 0249 +=============================+===========================+==============================================================================+ 0250 | *field* ``file`` | ' ' | filename; if left empty no file will be read; ``const`` will be used instead | 0251 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0252 | *field* ``const`` | 0.0 | constant that will be used if no file is read | 0253 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0254 | *field* ``startdate1`` | 0.0 | format: ``YYYYMMDD``; start year (YYYY), month (MM), day (YY) | 0255 | | | of field to determine record number | 0256 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0257 | *field* ``startdate2`` | 0.0 | format: ``HHMMSS``; start hour (HH), minute (MM), second(SS) | 0258 | | | of field to determine record number | 0259 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ deacece587 Oliv*0260 | *field* ``period`` | 0.0 | interval in seconds between two records; the special value -12 means | 0261 | | | 12 repeating (calendar) monthly records; the special value -1 means | 0262 | | | non-repeating (calendar) monthly records (see below) | 8679f9097b Jeff*0263 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0264 | ``exf_inscal_``\ *field* | | optional rescaling of input fields to comply with EXF units | 0265 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0266 | ``exf_outscal_``\ *field* | | optional rescaling of EXF fields when mapped onto MITgcm fields | 0267 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0268 | *used in conjunction with* ``EXF_USE_INTERPOLATION`` | 0269 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0270 | *field* ``_lon0`` | :code:`xgOrigin+delX/2` | starting longitude of input | 0271 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0272 | *field* ``_lon_inc`` | :code:`delX` | increment in longitude of input | 0273 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0274 | *field* ``_lat0`` | :code:`ygOrigin+delY/2` | starting latitude of input | 0275 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0276 | *field* ``_lat_inc`` | :code:`delY` | increment in latitude of input | 0277 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0278 | *field* ``_nlon`` | :code:`Nx` | number of grid points in longitude of input | 0279 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0280 | *field* ``_nlat`` | :code:`Ny` | number of grid points in longitude of input | 0281 +-----------------------------+---------------------------+------------------------------------------------------------------------------+ 0282 deacece587 Oliv*0283 For *field*\ ``period``\ =-1, the records in the forcing file represent 0284 averages over calendar months. If ``useExfYearlyFields = .TRUE.``, each yearly 0285 file must have 12 records, starting with January. For ``useExfYearlyFields = 0286 .FALSE.``, a single file starting with the month given by 0287 *field*\ ``startdate1`` is required. 0288 8679f9097b Jeff*0289 Example configuration 0290 ##################### 0291 0292 The following block is taken from the ``data.exf`` file of the f1b47febb7 Jean*0293 verification experiment ``global_oce_latlon``. It defines attributes for 8679f9097b Jeff*0294 the heat flux variable ``hflux``: 0295 0296 :: 0297 0298 hfluxfile = 'ncep_qnet.bin', 0299 hfluxstartdate1 = 19920101, 0300 hfluxstartdate2 = 000000, 0301 hfluxperiod = 2592000.0, 0302 hflux_lon0 = 2 0303 hflux_lon_inc = 4 0304 hflux_lat0 = -78 0305 hflux_lat_inc = 39*4 0306 hflux_nlon = 90 0307 hflux_nlat = 40 0308** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 310.
0309 EXF will read a file of name ’ncep\_qnet.bin’. Its first record 0310 represents January 1st, 1992 at 00:00 UTC. Next record is 2592000 0311 seconds (or 30 days) later. Note that the first record read and used by** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 313.
0312 the EXF package corresponds to the value ’startDate1’ set in data.cal. 0313 Therefore if you want to start the EXF forcing from later in the** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 315.
0314 ’ncep\_qnet.bin’ file, it suffices to specify startDate1 in data.cal as 0315 a date later than 19920101 (for example, startDate1 = 19940101, for** Warning **
Wide character in print at /usr/local/share/lxr/source line 1030, <$git> line 317.
0316 starting January 1st, 1994). For this to work, ’ncep\_qnet.bin’ must 0317 have at least 2 years of data because in this configuration EXF will 0318 read 2 years into the file to find the 1994 starting value. 0319 Interpolation on-the-fly is used (in the present case trivially on the 0320 same grid, but included nevertheless for illustration), and input field 0321 grid starting coordinates and increments are supplied as well. 0322 0323 .. _ssub_phys_pkg_exf_bulk_formulae: 0324 0325 EXF bulk formulae 0326 +++++++++++++++++ 0327 0328 T.B.D. (cross-ref. to parameter list table) 0329 0330 .. _ssub_phys_pkg_exf_inputs_units: 0331 0332 EXF input fields and units 0333 ++++++++++++++++++++++++++ 0334 0335 The following list is taken from the header file ``EXF_FIELDS.h``. It 0336 comprises all EXF input fields. 0337 0338 Output fields which EXF provides to the MITgcm are fields **fu**, 0339 **fv**, **Qnet**, **Qsw**, **EmPmR**, and **pload**. They are defined in 0340 ``FFIELDS.h``. 0341 0342 :: 0343 0344 c---------------------------------------------------------------------- 0345 c | 0346 c field :: Description 0347 c | 0348 c---------------------------------------------------------------------- 0349 c ustress :: Zonal surface wind stress in N/m^2 0350 c | > 0 for increase in uVel, which is west to 0351 c | east for cartesian and spherical polar grids 0352 c | Typical range: -0.5 < ustress < 0.5 0353 c | Southwest C-grid U point 0354 c | Input field 0355 c---------------------------------------------------------------------- 0356 c vstress :: Meridional surface wind stress in N/m^2 0357 c | > 0 for increase in vVel, which is south to 0358 c | north for cartesian and spherical polar grids 0359 c | Typical range: -0.5 < vstress < 0.5 0360 c | Southwest C-grid V point 0361 c | Input field 0362 c---------------------------------------------------------------------- 0363 c hs :: sensible heat flux into ocean in W/m^2 0364 c | > 0 for increase in theta (ocean warming) 0365 c---------------------------------------------------------------------- 0366 c hl :: latent heat flux into ocean in W/m^2 0367 c | > 0 for increase in theta (ocean warming) 0368 c---------------------------------------------------------------------- 0369 c hflux :: Net upward surface heat flux in W/m^2 0370 c | (including shortwave) 0371 c | hflux = latent + sensible + lwflux + swflux 0372 c | > 0 for decrease in theta (ocean cooling) 0373 c | Typical range: -250 < hflux < 600 0374 c | Southwest C-grid tracer point 0375 c | Input field 0376 c---------------------------------------------------------------------- 0377 c sflux :: Net upward freshwater flux in m/s 0378 c | sflux = evap - precip - runoff 0379 c | > 0 for increase in salt (ocean salinity) 0380 c | Typical range: -1e-7 < sflux < 1e-7 0381 c | Southwest C-grid tracer point 0382 c | Input field 0383 c---------------------------------------------------------------------- 0384 c swflux :: Net upward shortwave radiation in W/m^2 0385 c | swflux = - ( swdown - ice and snow absorption - reflected ) 0386 c | > 0 for decrease in theta (ocean cooling) 0387 c | Typical range: -350 < swflux < 0 0388 c | Southwest C-grid tracer point 0389 c | Input field 0390 c---------------------------------------------------------------------- 0391 c uwind :: Surface (10-m) zonal wind velocity in m/s 0392 c | > 0 for increase in uVel, which is west to 0393 c | east for cartesian and spherical polar grids 0394 c | Typical range: -10 < uwind < 10 0395 c | Southwest C-grid U point 0396 c | Input or input/output field 0397 c---------------------------------------------------------------------- 0398 c vwind :: Surface (10-m) meridional wind velocity in m/s 0399 c | > 0 for increase in vVel, which is south to 0400 c | north for cartesian and spherical polar grids 0401 c | Typical range: -10 < vwind < 10 0402 c | Southwest C-grid V point 0403 c | Input or input/output field 0404 c---------------------------------------------------------------------- 0405 c wspeed :: Surface (10-m) wind speed in m/s 0406 c | >= 0 sqrt(u^2+v^2) 0407 c | Typical range: 0 < wspeed < 10 0408 c | Input or input/output field 0409 c---------------------------------------------------------------------- 0410 c atemp :: Surface (2-m) air temperature in deg K 0411 c | Typical range: 200 < atemp < 300 0412 c | Southwest C-grid tracer point 0413 c | Input or input/output field 0414 c---------------------------------------------------------------------- 0415 c aqh :: Surface (2m) specific humidity in kg/kg 0416 c | Typical range: 0 < aqh < 0.02 0417 c | Southwest C-grid tracer point 0418 c | Input or input/output field 0419 c---------------------------------------------------------------------- 0420 c lwflux :: Net upward longwave radiation in W/m^2 0421 c | lwflux = - ( lwdown - ice and snow absorption - emitted ) 0422 c | > 0 for decrease in theta (ocean cooling) 0423 c | Typical range: -20 < lwflux < 170 0424 c | Southwest C-grid tracer point 0425 c | Input field 0426 c---------------------------------------------------------------------- 0427 c evap :: Evaporation in m/s 0428 c | > 0 for increase in salt (ocean salinity) 0429 c | Typical range: 0 < evap < 2.5e-7 0430 c | Southwest C-grid tracer point 0431 c | Input, input/output, or output field 0432 c---------------------------------------------------------------------- 0433 c precip :: Precipitation in m/s 0434 c | > 0 for decrease in salt (ocean salinity) 0435 c | Typical range: 0 < precip < 5e-7 0436 c | Southwest C-grid tracer point 0437 c | Input or input/output field 0438 c---------------------------------------------------------------------- 0439 c snowprecip :: snow in m/s 0440 c | > 0 for decrease in salt (ocean salinity) 0441 c | Typical range: 0 < precip < 5e-7 0442 c | Input or input/output field 0443 c---------------------------------------------------------------------- 0444 c runoff :: River and glacier runoff in m/s 0445 c | > 0 for decrease in salt (ocean salinity) 31c71ded02 Mart*0446 c | Typical range: 0 < runoff < 5e-7 8679f9097b Jeff*0447 c | Southwest C-grid tracer point 0448 c | Input or input/output field 0449 c---------------------------------------------------------------------- 0450 c swdown :: Downward shortwave radiation in W/m^2 0451 c | > 0 for increase in theta (ocean warming) 0452 c | Typical range: 0 < swdown < 450 0453 c | Southwest C-grid tracer point 0454 c | Input/output field 0455 c---------------------------------------------------------------------- 0456 c lwdown :: Downward longwave radiation in W/m^2 0457 c | > 0 for increase in theta (ocean warming) 0458 c | Typical range: 50 < lwdown < 450 0459 c | Southwest C-grid tracer point 0460 c | Input/output field 0461 c---------------------------------------------------------------------- 0462 c apressure :: Atmospheric pressure field in N/m^2 31c71ded02 Mart*0463 c | Typical range: 88000 < apressure < 108000 8679f9097b Jeff*0464 c | Southwest C-grid tracer point 0465 c | Input field 0466 c---------------------------------------------------------------------- 0467 0468 .. _ssub_phys_pkg_exf_subroutines: 0469 0470 Key subroutines 0471 +++++++++++++++ 0472 0473 Top-level routine: ``exf_getforcing.F`` 0474 0475 :: 0476 0477 C !CALLING SEQUENCE: 0478 c ... 0479 c exf_getforcing (TOP LEVEL ROUTINE) 0480 c | 0481 c |-- exf_getclim (get climatological fields used e.g. for relax.) 0482 c | |--- exf_set_climsst (relax. to 2-D SST field) 0483 c | |--- exf_set_climsss (relax. to 2-D SSS field) 0484 c | o 0485 c | 0486 c |-- exf_getffields <- this one does almost everything 0487 c | | 1. reads in fields, either flux or atmos. state, 0488 c | | depending on CPP options (for each variable two fields 0489 c | | consecutive in time are read in and interpolated onto 0490 c | | current time step). 0491 c | | 2. If forcing is atmos. state and control is atmos. state, 0492 c | | then the control variable anomalies are read here via ctrl_get_gen 0493 c | | (atemp, aqh, precip, swflux, swdown, uwind, vwind). 0494 c | | If forcing and control are fluxes, then 0495 c | | controls are added later. 0496 c | o 0497 c | 0498 c |-- exf_radiation 0499 c | | Compute net or downwelling radiative fluxes via 0500 c | | Stefan-Boltzmann law in case only one is known. 0501 c | o 0502 c |-- exf_wind 0503 c | | Computes wind speed and stresses, if required. 0504 c | o 0505 c | 0506 c |-- exf_bulkformulae 0507 c | | Compute air-sea buoyancy fluxes from 0508 c | | atmospheric state following Large and Pond, JPO, 1981/82 0509 c | o 0510 c | 0511 c |-- < hflux is sum of sensible, latent, longwave rad. > 0512 c |-- < sflux is sum of evap. minus precip. minus runoff > 0513 c | 0514 c |-- exf_getsurfacefluxes 0515 c | If forcing and control is flux, then the 0516 c | control vector anomalies are read here via ctrl_get_gen 0517 c | (hflux, sflux, ustress, vstress) 0518 c | 0519 c |-- < update tile edges here > 0520 c | 0521 c |-- exf_check_range 0522 c | | Check whether read fields are within assumed range 0523 c | | (may capture mismatches in units) 0524 c | o 0525 c | 0526 c |-- < add shortwave to hflux for diagnostics > 0527 c | 0528 c |-- exf_diagnostics_fill 0529 c | | Do EXF-related diagnostics output here. 0530 c | o 0531 c | 0532 c |-- exf_mapfields 0533 c | | Forcing fields from exf package are mapped onto 0534 c | | mitgcm forcing arrays. 0535 c | | Mapping enables a runtime rescaling of fields 0536 c | o 0537 C o 0538 0539 Radiation calculation: ``exf_radiation.F`` 0540 0541 Wind speed and stress calculation: ``exf_wind.F`` 0542 0543 Bulk formula: ``exf_bulkformulae.F`` 0544 0545 Generic I/O: ``exf_set_gen.F`` 0546 0547 Interpolation: ``exf_interp.F`` 0548 0549 Header routines 0550 0551 .. _ssub_phys_pkg_exf_diagnostics: 0552 0553 EXF diagnostics 0554 +++++++++++++++ 0555 31c71ded02 Mart*0556 Diagnostics output is available via the diagnostics package (see 0557 :numref:`sub_outp_pkg_diagnostics`). Available output fields are 0558 summarized below. 8679f9097b Jeff*0559 0560 :: 0561 0562 ---------+----+----+----------------+----------------- 0563 <-Name->|Levs|grid|<-- Units -->|<- Tile (max=80c) 0564 ---------+----+----+----------------+----------------- 0565 EXFhs | 1 | SM | W/m^2 | Sensible heat flux into ocean, >0 increases theta 0566 EXFhl | 1 | SM | W/m^2 | Latent heat flux into ocean, >0 increases theta 0567 EXFlwnet| 1 | SM | W/m^2 | Net upward longwave radiation, >0 decreases theta 0568 EXFswnet| 1 | SM | W/m^2 | Net upward shortwave radiation, >0 decreases theta 0569 EXFlwdn | 1 | SM | W/m^2 | Downward longwave radiation, >0 increases theta 0570 EXFswdn | 1 | SM | W/m^2 | Downward shortwave radiation, >0 increases theta 0571 EXFqnet | 1 | SM | W/m^2 | Net upward heat flux (turb+rad), >0 decreases theta 0572 EXFtaux | 1 | SU | N/m^2 | zonal surface wind stress, >0 increases uVel 0573 EXFtauy | 1 | SV | N/m^2 | meridional surface wind stress, >0 increases vVel 0574 EXFuwind| 1 | SM | m/s | zonal 10-m wind speed, >0 increases uVel 0575 EXFvwind| 1 | SM | m/s | meridional 10-m wind speed, >0 increases uVel 0576 EXFwspee| 1 | SM | m/s | 10-m wind speed modulus ( >= 0 ) 0577 EXFatemp| 1 | SM | degK | surface (2-m) air temperature 0578 EXFaqh | 1 | SM | kg/kg | surface (2-m) specific humidity 0579 EXFevap | 1 | SM | m/s | evaporation, > 0 increases salinity 0580 EXFpreci| 1 | SM | m/s | evaporation, > 0 decreases salinity 0581 EXFsnow | 1 | SM | m/s | snow precipitation, > 0 decreases salinity 0582 EXFempmr| 1 | SM | m/s | net upward freshwater flux, > 0 increases salinity 0583 EXFpress| 1 | SM | N/m^2 | atmospheric pressure field 0584 0585 References 0586 ++++++++++ 0587 0588 Experiments and tutorials that use exf 0589 ++++++++++++++++++++++++++++++++++++++ 0590 0591 - Global Ocean experiment, in global\_with\_exf verification directory 0592 0593 - Labrador Sea experiment, in lab\_sea verification directory
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated from https://github.com/darwinproject/darwin3 by the 2.3.7-MITgcm-0.1 LXR engine. The LXR team |
|