#include "cppdefs.h" MODULE analytical_mod ! !git $Id$ !svn $Id: analytical.F 1151 2023-02-09 03:08:53Z arango $ !================================================== Hernan G. Arango === ! Copyright (c) 2002-2023 The ROMS/TOMS Group ! ! Licensed under a MIT/X style license ! ! See License_ROMS.md ! !======================================================================= ! ! ! ANALYTICAL PACKAGE: ! ! ! ! This package is used to provide various analytical fields to the ! ! model when appropriate. ! ! ! !! Include Files: ! !! ! !! ana_biology.h Analytical initial conditions for biological ! !! tracers. ! !! ana_btflux.h Analytical kinematic bottom flux of tracer ! !! type variables. ! !! ana_cloud.h Analytical cloud fraction. ! !! ana_diag.h Customized diagnostics. ! !! ana_dqdsst.h Analytical dQdSST used for heat flux correction.! !! ana_drag.h Analytical spatially varying bottom friction ! !! parameters. ! !! ana_fsobc.h Analytical free-surface boundary conditions. ! !! ana_grid.h Analytical model grid set-up. ! !! ana_humid.h Analytical surface air humidity. ! !! ana_initial.h Analytical initial conditions for momentum, ! !! free surface and tracers. ! !! ana_m2clima.h Analytical 2D momentum climatology. ! !! ana_m2obc.h Analytical 2D momentum boundary conditions. ! !! ana_m3clima.h Analytical 3D momentum climatology. ! !! ana_m3obc.h Analytical 3D momentum boundary conditions. ! !! ana_mask.h Analytical Land/Sea masking. ! !! ana_nudgcoef.h Analytical climatology nudging coefficients. ! !! ana_pair.h Analytical surface air pressure. ! !! ana_passive.h Analytical initial conditions for passive ! !! inert tracers. ! !! ana_perturb.h Peturb analytical initial conditions with ! !! analytical expressions. ! !! ana_psource.h Analytical mass/tracer point sources/sinks. ! !! ana_rain.h Analytical rain fall rate. ! !! ana_respiration.h Analytical total respiration for hypoxia. ! !! ana_scope.h Analytical adjoint sensitivity spatial scope ! !! mask. ! !! ana_sediment.h Analytical initial conditions for sediment ! !! tracers and bottom/bed properties. ! !! ana_smflux.h Analytical kinematic surface momentum flux ! !! (wind stress). ! !! ana_spinning.h Analytical time variable rotation forces. ! !! ana_sponge.h Analytical enhanced viscosity/diffusion sponge ! !! ana_srflux.h Analytical kinematic surface shortwave ! !! radiation flux. ! !! ana_specir.h Analytical calculation of spectral downwelling ! !! irradiance. ! !! ana_ssh.h Analytical sea surface height climatology. ! !! ana_sst.h Analytical SST used for heat flux correction. ! !! ana_sss.h Analytical sea surface salinity. ! !! ana_stflux.h Analytical kinematic surface flux of tracer ! !! type variables. ! !! ana_tair.h Analytical surface air temperature. ! !! ana_tclima.h Analytical tracer climatology fields. ! !! ana_tobc.h Analytical tracer boundary conditions. ! !! ana_vmix.h Analytical vertical mixing coefficients for ! !! momentum and tracers. ! !! ana_winds.h Analytical surface winds. ! !! ana_wtype.h Analytical Jerlov water type index. ! !! ana_wwave.h Analytical wind induced wave amplitude, ! !! direction and period. ! !! ! !! Notice that there is a template copy of each header file in the ! !! "User/Functionals" directory for user private applications. This ! !! will facilitate updating in the future by distinguishing between ! !! official idealized problems and user interface. ! !! ! !======================================================================= ! implicit none ! CONTAINS ! #ifdef ANALYTICAL # ifdef SOLVE3D # if defined ANA_BIOLOGY && defined BIOLOGY # include <ana_biology.h> # endif # endif # ifdef SOLVE3D # if defined ANA_BTFLUX || defined ANA_BSFLUX || defined ANA_BPFLUX # include <ana_btflux.h> # endif # endif # ifdef SOLVE3D # if defined ANA_CLOUD && defined CLOUDS # include <ana_cloud.h> # endif # endif # ifdef ANA_DIAG # include <ana_diag.h> # endif # ifdef SOLVE3D # if defined ANA_DQDSST && defined QCORRECTION # include <ana_dqdsst.h> # endif # endif # if defined ANA_DRAG && defined UV_DRAG_GRID # include <ana_drag.h> # endif # ifdef ANA_FSOBC # include <ana_fsobc.h> # endif # ifdef ANA_GRID # include <ana_grid.h> # endif # ifdef SOLVE3D # if defined ANA_HUMIDITY && \ (defined BULK_FLUXES || defined ECOSIM || \ (defined ANA_SRFLUX && defined ALBEDO) ) # include <ana_humid.h> # endif # endif # ifdef ANA_INITIAL # include <ana_initial.h> # endif # ifdef ANA_M2CLIMA # include <ana_m2clima.h> # endif # ifdef ANA_M2OBC # include <ana_m2obc.h> # endif # if defined ANA_M3CLIMA && defined SOLVE3D # include <ana_m3clima.h> # endif # if defined ANA_M3OBC && defined SOLVE3D # include <ana_m3obc.h> # endif # if defined ANA_GRID && defined MASKING # include <ana_mask.h> # endif # ifdef ANA_NUDGCOEF # include <ana_nudgcoef.h> # endif # if defined ANA_PAIR && (defined BULK_FLUXES || defined ECOSIM || \ defined ATM_PRESS) # include <ana_pair.h> # endif # if defined ANA_PASSIVE && defined T_PASSIVE && defined SOLVE3D # include <ana_passive.h> # endif # if defined ANA_PERTURB # include <ana_perturb.h> # endif # if defined ANA_PSOURCE # include <ana_psource.h> # endif # ifdef SOLVE3D # if defined ANA_RAIN && defined BULK_FLUXES # include <ana_rain.h> # endif # endif # ifdef SOLVE3D # if defined ANA_RESPIRATION && defined HYPOXIA_SRM # include <ana_respiration.h> # endif # endif # if defined ANA_GRID && \ (defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \ defined OPT_OBSERVATIONS || defined SENSITIVITY_4DVAR || \ defined SO_SEMI) # include <ana_scope.h> # endif # ifdef SOLVE3D # if defined ANA_SEDIMENT && (defined SEDIMENT || defined BBL_MODEL) # include <ana_sediment.h> # endif # endif # ifdef ANA_SMFLUX # include <ana_smflux.h> # endif # ifdef ANA_SPINNING # include <ana_spinning.h> # endif # ifdef ANA_SPONGE # include <ana_sponge.h> # endif # if (defined ANA_SRFLUX || defined DIURNAL_SRFLUX) && defined SOLVE3D # include <ana_srflux.h> # endif # if defined ECOSIM && defined SOLVE3D # include <ana_specir.h> # endif # ifdef ANA_SSH # include <ana_ssh.h> # endif # ifdef SOLVE3D # if defined SALINITY && defined ANA_SSS && \ (defined SCORRECTION || defined SRELAXATION) # include <ana_sss.h> # endif # endif # ifdef SOLVE3D # if defined ANA_SST && defined QCORRECTION # include <ana_sst.h> # endif # endif # ifdef SOLVE3D # if defined ANA_STFLUX || defined ANA_SSFLUX || defined ANA_SPFLUX # include <ana_stflux.h> # endif # endif # ifdef SOLVE3D # if defined ANA_TAIR && \ (defined BULK_FLUXES || defined ECOSIM || \ (defined ANA_SRFLUX && defined ALBEDO) ) # include <ana_tair.h> # endif # endif # if defined ANA_TCLIMA && defined SOLVE3D # include <ana_tclima.h> # endif # if defined ANA_TOBC && defined SOLVE3D # include <ana_tobc.h> # endif # if defined ANA_VMIX && defined SOLVE3D # include <ana_vmix.h> # endif # if defined ANA_WINDS && (defined BULK_FLUXES || defined ECOSIM) # include <ana_winds.h> # endif # ifdef SOLVE3D # if defined WTYPE_GRID && defined ANA_WTYPE && \ (defined LMD_SKPP || defined SOLAR_SOURCE) # include <ana_wtype.h> # endif # endif # if defined ANA_WWAVE # include <ana_wwave.h> # endif #endif END MODULE analytical_mod