28 integer :: iatms, ibbl, ibiology, idriver
29 integer :: ivelHadv, ivelVadv, ivmix, nearshore
31 integer :: sbed_load, sbed_type
33 integer :: is, lstr, ng
58 10
FORMAT (/,
' Activated C-preprocessing Options:',/)
59 20
FORMAT (1x,a,t27,a)
70#if defined AD_AVERAGES && defined ADJOINT
73 &
'Writing out time-averaged adjoint model fields'
77#if defined AD_OUTPUT_STATE && defined ADJOINT
80 &
'Writing full adjoint state solution by adding time levels'
82 coptions(is:is+17)=
' AD_OUTPUT_STATE,'
84#if defined ADD_FSOBC && defined SSH_TIDES
87 &
'Adding tidal elevation to processed OBC data'
91#if defined ADD_M2OBC && defined UV_TIDES
94 &
'Adding tidal currents to processed OBC data'
105#if defined ADJUST_BOUNDARY && \
106 (defined correlation || \
108 defined i4dvar_ana_sensitivity || \
109 defined rbl4dvar || \
111 defined sensitivity_4dvar || \
115 &
'Including boundary conditions in 4D-Var state estimation'
117 coptions(is:is+17)=
' ADJUST_BOUNDARY,'
119#if defined ADJUST_STFLUX && \
120 (defined correlation || \
122 defined i4dvar_ana_sensitivity || \
123 defined rbl4dvar || \
125 defined sensitivity_4dvar || \
129 &
'Including surface tracer flux in 4D-Var state estimation'
131 coptions(is:is+15)=
' ADJUST_STFLUX,'
133#if defined ADJUST_WSTRESS && \
134 (defined correlation || \
136 defined i4dvar_ana_sensitivity || \
137 defined rbl4dvar || \
139 defined sensitivity_4dvar || \
143 &
'Including surface wind stress in 4D-Var state estimation'
145 coptions(is:is+16)=
' ADJUST_WSTRESS,'
147#if defined AD_IMPULSE
150 &
'Force adjoint model with intermittent impulses'
157 &
'Generic adjoint model driver'
165 &
'Adjoint Sensitivity Analysis'
167 coptions(is:is+16)=
' AD_SENSITIVITY,'
173 &
'Adjoint Finite Time Eigenvalues'
175 coptions(is:is+16)=
' AFT_EIGENMODES,'
178#if defined AGE_MEAN && defined T_PASSIVE && defined SOLVE3D
181 &
'Computing Mean Age of inert passive tracer'
186#if defined ALBEDO && defined ANA_SRFLUX
189 &
'Shortwave radiation from albedo equation'
193#if defined ALLOW_BOTTOM_OBS && \
194 (defined four_dvar || \
195 defined verification) && defined observations
198 &
'Allow observations that lie in the lower bottom grid cell'
200 coptions(is:is+18)=
' ALLOW_BOTTOM_OBS,'
202#if defined BIOLOGY && defined ANA_BIOLOGY
205 &
'Analytical biology initial conditions'
209#if defined BIOLOGY || defined SEDIMENT || defined T_PASSIVE
213 &
'Analytical bottom passive tracers fluxes'
221 &
'Analytical kinematic bottom salinity flux'
228 &
'Analytical kinematic bottom temperature flux'
232#if defined ANA_CLOUD && defined BULK_FLUXES
235 &
'Analytical cloud fraction'
239#if defined ANA_DRAG && defined UV_DRAG_GRID
242# if defined UV_LOGDRAG || defined BBL_MODEL
243 &
'Analytical spatially varying bottom roughness length'
244# elif defined UV_LDRAG
245 &
'Analytical spatially varying linear drag coefficient'
246# elif defined UV_QDRAG
247 &
'Analytical spatially varying quadratic drag coefficient'
255 &
'Customized diagnostics'
259#if defined ANA_DQDSST && defined QCORRECTION
262 &
'Analytical surface heat flux sensitivity to SST'
269 &
'Analytical free-surface boundary conditions'
276 &
'Analytical grid set-up'
280#if defined ANA_HUMIDITY && defined BULK_FLUXES
283 &
'Analytical surface air humidity'
290 &
'Analytical initial conditions'
297 &
'Analytical 2D momentum climatology'
304 &
'Analytical 2D momentum boundary conditions'
308#if defined ANA_M3CLIMA && defined SOLVE3D
311 &
'Analytical 3D momentum climatology'
315#if defined ANA_M3OBC && defined SOLVE3D
318 &
'Analytical 3D momentum boundary conditions'
325 &
'Analytical Land/Sea Masking'
333 &
'Analytical spatially varying nudging time-scales'
338#if defined ANA_PAIR && defined BULK_FLUXES
341 &
'Analytical surface air pressure'
345#if defined ANA_PASSIVE && defined T_PASSIVE && defined SOLVE3D
348 &
'Analytical initial conditions for inert tracers'
352#if defined ANA_PERTURB
355 &
'Perturb initial conditions'
362 &
'Analytical point sources and sinks'
366#if defined ANA_RAIN && defined BULK_FLUXES
369 &
'Analytical rain fall rate'
373#if defined ANA_RESPIRATION && defined HYPOXIA_SRM
376 &
'Analytical respiration rate'
378 coptions(is:is+17)=
' ANA_RESPIRATION,'
380#if defined ANA_SCOPE && \
381 (defined ad_sensitivity || \
382 defined i4dvar_ana_sensitivity || \
383 defined opt_observations || \
384 defined sensitivity_4dvar || \
388 &
'Analytical spatial scope masking arrays'
392#if defined ANA_SEDIMENT && (defined SEDIMENT || defined BBL_MODEL)
395 &
'Analytical sediment initial conditions'
402 &
'Analytical kinematic surface momentum flux'
406#if defined BIOLOGY || defined SEDIMENT || defined T_PASSIVE
410 &
'Analytical surface passive tracer fluxes'
418 &
'Analytical time-varying rotation force'
426 &
'Analytical enhanced viscosity/diffusion sponge'
434 &
'Analytical kinematic shortwave radiation flux'
441 &
'Analytical sea surface height climatology'
448 &
'Analytical sea surface salinity'
452#if defined ANA_SST && defined QCORRECTION
455 &
'Analytical sea surface temperature, SST'
462 &
'Analytical kinematic surface salinity flux'
469 &
'Analytical kinematic surface temperature flux'
473#if defined ANA_TCLIMA && defined SOLVE3D
476 &
'Analytical tracer climatology'
480#if defined ANA_TOBC && defined SOLVE3D
483 &
'Analytical tracers boundary conditions'
487#if defined ANA_VMIX && defined SOLVE3D
490 &
'Analytical vertical mixing coefficients'
495#if defined ANA_WINDS && defined BULK_FLUXES
498 &
'Analytical surface wind components'
502#if defined ANA_WTYPE && defined WTYPE_GRID && \
503 (defined
lmd_skpp || defined solar_source)
506 &
'Analytical spatially varying Jerlov water type index'
513 &
'Analytical wind induced waves'
520 &
'Stabilized Representer Matrix Array Modes'
524# ifdef ARRAY_MODES_SPLIT
527 &
'Separate analysis due to IC, surface forcing, and OBC'
529 coptions(is:is+19)=
' ARRAY_MODES_SPLIT,'
532#if defined DISTRIBUTE && defined NESTING
533# if defined ASSEMBLE_ALLGATHER
536 &
'Using mpi_allgather in mp_assemble routine'
538 coptions(is:is+20)=
' ASSEMBLE_ALLGATHER,'
539# elif defined ASSEMBLE_ALLREDUCE
542 &
'Using mpi_allreduce in mp_assemble routine'
544 coptions(is:is+20)=
' ASSEMBLE_ALLGATHER,'
545# elif defined ASSEMBLE_SENDRECV
548 &
'Using mpi_isend/mpi_recv in mp_assemble routine'
550 coptions(is:is+19)=
' ASSEMBLE_SENDRECV,'
556 &
'Using assumed-shape arrays'
558 coptions(is:is+15)=
' ASSUMED_SHAPE,'
560#if defined ASYNCHRONOUS_PIO && defined PIO_LIB && defined DISTRIBUTE
563 &
'PIO library with disjointed dedicated I/O processes'
565 coptions(is:is+18)=
' ASYNCHRONOUS_PIO,'
567#if defined ASYNCHRONOUS_SCORPIO && defined PIO_LIB && defined DISTRIBUTE
570 &
'SCORPIO library with disjointed dedicated I/O processes'
572 coptions(is:is+22)=
' ASYNCHRONOUS_SCORPIO,'
577 &
'Impose inverse barometer effect in pressure gradient term'
584 &
'Writing out time-averaged nonlinear model fields'
587# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
590 &
'Writing out time-averaged nonlinear model detided fields'
592 coptions(is:is+17)=
' AVERAGES_DETIDE,'
594# ifdef AVERAGES_UV_KIRBY
596 &
'Writing out time-averaged uwave and vwave Kirby velocities'
598 coptions(is:is+17)=
' AVERAGES_UV_KIRBY,'
602 &
'Writing out time-averaged nearshore radiation fields'
607#if defined BACKGROUND && defined FOUR_DVAR
610 &
'Include background cost function'
614#ifdef BALANCE_OPERATOR
617 &
'Error Covariance Multivariate Balance Operator'
619 coptions(is:is+18)=
' BALANCE_OPERATOR,'
621#if defined SEDIMENT && defined BEDLOAD_MPM
624 &
'Activate bed load sediment transport Meyer-Peter-Mueller'
627 sbed_load=sbed_load+1
629#if defined SEDIMENT && defined BEDLOAD_SOULSBY
632 &
'Activate bed load sediment transport Soulsby formula'
634 coptions(is:is+17)=
' BEDLOAD_SOULSBY,'
636#if defined SEDIMENT && defined BEDLOAD_VANDERA
639 &
'Activate bed load sediment transport vanDerA formula'
641 coptions(is:is+17)=
' BEDLOAD_VANDERA,'
643#if defined SEDIMENT && defined BEDLOAD_VANDERA_ASYM_LIMITS
645 IF (
master)
WRITE (
stdout,20)
'BEDLOAD_VANDERA_ASYM_LIMITS', &
646 &
'Activate bed load vanDerA asymmetry limits'
648 coptions(is:is+29)=
' BEDLOAD_VANDERA_ASYM_LIMITS,'
650#if defined SEDIMENT && defined BEDLOAD_VANDERA_SURFACE_WAVE
652 IF (
master)
WRITE (
stdout,20)
'BEDLOAD_VANDERA_SURFACE_WAVE', &
653 &
'Activate bed load vanDerA surface wave'
655 coptions(is:is+30)=
' BEDLOAD_VANDERA_SURFACE_WAVE,'
657#if defined SEDIMENT && defined BEDLOAD_VANDERA_WAVE_AVGD_STRESS
659 IF (
master)
WRITE (
stdout,20)
'BEDLOAD_VANDERA_WAVE_AVGD_STRESS', &
660 &
'Activate bed load vanDerA wave avg stress'
662 coptions(is:is+34)=
' BEDLOAD_VANDERA_WAVE_AVGD_STRESS,'
664#if defined SEDIMENT && defined BEDLOAD_VANDERA_MADSEN_UDELTA
666 IF (
master)
WRITE (
stdout,20)
'BEDLOAD_VANDERA_MADSEN_UDELTA', &
667 &
'Activate bed load madsen current calculation'
669 coptions(is:is+31)=
' BEDLOAD_VANDERA_MADSEN_UDELTA,'
671#if defined SEDIMENT && defined BEDLOAD_VANDERA_DIRECT_UDELTA
673 IF (
master)
WRITE (
stdout,20)
'BEDLOAD_VANDERA_DIRECT_UDELTA', &
674 &
'Activate bed load direct elevation current calculation'
676 coptions(is:is+30)=
' BEDLOAD_VANDERA_DIRECT_UDELTA,'
678#if defined BGQC && defined FOUR_DVAR
681 &
'Background quality control of observations'
685#if defined BEOFS_ONLY && defined WEAK_CONSTRAINT
688 &
'Compute EOFs of the background error covariance matrix'
695 &
'Fennel et al. (2006) nitrogen-based model'
700#if defined BNORM && defined HESSIAN_SV
703 &
'Background normalization of Hessian singular vectors'
707#if defined BIO_OPTIC && defined ECOSIM
710 &
'Underwater light field calculations'
714#if defined BIO_SEDIMENT && \
715 (defined bio_fennel || defined nemuro || defined ecosim)
718 &
'Restore fallen particulate material to the nutrient pool'
725 &
'Momentum stresses as body-forces'
730# if defined BOUNDARY_ALLGATHER
733 &
'Using mpi_allgather in mp_boundary routine'
735 coptions(is:is+20)=
' BOUNDARY_ALLGATHER,'
736# elif defined BOUNDARY_ALLREDUCE
738 &
'Using mpi_allreduce in mp_boundary routine'
740 coptions(is:is+20)=
' BOUNDARY_ALLREDUCE,'
743#if defined BOTTOM_STREAMING && defined WEC_VF
745 &
'Wave current streaming term'
747 coptions(is:is+18)=
' BOTTOM_STREAMING,'
752 &
'Surface bulk fluxes parameterization'
759 &
'Brunt-Vaisala frequency based vertical mixing'
764#if defined CANUTO_A && defined GLS_MIXING
767 &
'Canuto A-stability function formulation'
771#if defined CANUTO_B && defined GLS_MIXING
774 &
'Canuto B-stability function formulation'
778#if defined CARBON && defined BIO_FENNEL
781 &
'Add Carbon constituents'
785#if defined CELERITY_READ && defined FORWARD_READ
788 &
'Read in radiation celerity from forward file'
790 coptions(is:is+15)=
' CELERETY_READ,'
792#if defined CELERITY_WRITE && defined FORWARD_WRITE
795 &
'Write out radiation celerity in forward file'
797 coptions(is:is+16)=
' CELERITY_WRITE,'
802 &
'Report order-invariant checksum (hash) when processing I/O'
806#ifdef CHECK_OPEN_FILES
809 &
'Monitor the number opened, closed, and created NetCDF files'
811 coptions(is:is+18)=
' CHECK_OPEN_FILES,'
816 &
'Stabilized Representer Matrix clipping spectrum analysis'
820# ifdef CLIPPING_SPLIT
823 &
'Separate analysis due to IC, surface forcing, and OBC'
825 coptions(is:is+16)=
' CLIPPING_SPLIT,'
828#if defined CMEPS && defined ESMF_LIB
831 &
'Using Community Mediator for Earth Prediction Systems'
835#ifdef COAMPS_COUPLING
838 &
'Atmosphere coupling with COAMPS'
840 coptions(is:is+17)=
' COAMPS_COUPLING,'
843#if defined DISTRIBUTE
844# if defined COLLECT_ALLGATHER
847 &
'Using mpi_allgather in mp_collect routine'
849 coptions(is:is+19)=
' COLLECT_ALLGATHER,'
850# elif defined COLLECT_ALLREDUCE
853 &
'Using mpi_allreduce in mp_collect routine'
855 coptions(is:is+19)=
' COLLECT_ALLGATHER,'
856# elif defined COLLECT_SENDRECV
859 &
'Using mpi_isend/mpi_recv in mp_collect routine'
861 coptions(is:is+18)=
' COLLECT_SENDRECV,'
864#if defined COMPUTE_MLD && defined STD_MODEL && defined FOUR_DVAR
867 &
'Compute Mixed Layer Depth for background error modeling'
871#if defined CONCURRENT_KERNEL && defined DISJOINTED && \
872 defined distribute && defined sp4dvar
875 &
'Concurrent TLM and ADM in saddle-point 4D-Var'
877 coptions(is:is+19)=
' CONCURRENT_KERNEL,'
882 &
'Background-error Correlation Model'
890 &
'DATA model included in coupling'
892 coptions(is:is+15)=
' DATA_COUPLING,'
894#if defined DATALESS_LOOPS && defined R4DVAR
897 &
'Testing convergence of RPM Picard iterations'
899 coptions(is:is+16)=
' DATALESS_LOOPS,'
901#if defined GLS_MIXING && defined CHARNOK
904 &
'Charnock surface roughness from wind stress'
908#if defined PROPAGATOR && defined CHECKPOINTING
911 &
'Processing checkpointing NetCDF for GST analysis'
913 coptions(is:is+15)=
' CHECKPOINTING,'
915#if defined GLS_MIXING && defined CRAIG_BANNER
918 &
'Craig and Banner wave breaking surface flux'
922#if defined COARE_OOST
925 &
'Oost et al (2002) relation for ZoW in bulk fluxes'
929#if defined COARE_TAYLOR_YELLAND
932 &
'Taylor and Yelland (2001) relation for ZoW in bulk fluxes'
934 coptions(is:is+22)=
' COARE_TAYLOR_YELLAND,'
936#if defined COOL_SKIN && defined BULK_FLUXES
939 &
'Surface cool skin correction'
943#if defined COSINE2 && defined SOLVE3D
946 &
'Cosine-squared shape time-averaging barotropic filter'
953 &
'Orthogonal curvilinear grid'
957#if defined DAILY_SHORTWAVE && defined RED_TIDE
960 &
'Daily-averaged surface solar shortwave radiation flux'
962 coptions(is:is+17)=
' DAILY_SHORTWAVE,'
967 &
'Internal debugging switch activated'
971#ifdef DEEPWATER_WAVES
974 &
'Deep water waves approx in bulk fluxes'
976 coptions(is:is+17)=
' DEEPWATER_WAVES,'
978#if defined DEFLATE && defined HDF5
981 &
'Setting compression in output NetCDF-4/HDF5 files'
985#if defined DENITRIFICATION && defined BIO_FENNEL
988 &
'Add denitrification processes'
990 coptions(is:is+17)=
' DENITRIFICATION,'
992#if defined DIAGNOSTICS_BIO && defined BIO_FENNEL
995 &
'Computing and writing biological diagnostic terms'
997 coptions(is:is+17)=
' DIAGNOSTICS_BIO,'
1002 &
'Computing and writing tracer diagnostic terms'
1004 coptions(is:is+16)=
' DIAGNOSTICS_TS,'
1006#ifdef DIAGNOSTICS_UV
1009 &
'Computing and writing momentum diagnostic terms'
1011 coptions(is:is+16)=
' DIAGNOSTICS_UV,'
1013#if defined DIFF_3DCOEF
1016 &
'Horizontal, time-dependent 3D diffusion coefficient'
1020#if defined TS_DIF2 || defined TS_DIF4
1024 &
'Horizontal diffusion coefficient scaled by grid size'
1029#if defined DISJOINTED && defined DISTRIBUTE
1032 &
'Split mpi-communicator into disjointed subgroups'
1036#ifdef DIURNAL_SRFLUX
1039 &
'Modulate shortwave radiation by the local diurnal cycle'
1041 coptions(is:is+16)=
' DIURNAL_SRFLUX,'
1046 &
'Parabolic Splines density Jacobian (Shchepetkin, 2002)'
1050#ifdef DOUBLE_PRECISION
1053 &
'Double precision arithmetic numerical kernel'
1055 coptions(is:is+18)=
' DOUBLE_PRECISION,'
1059 &
'Drennan et al (2003) relation for ZoW in bulk fluxes'
1066 &
'Bio-Optical EcoSim model'
1071#if defined EMINUSP && defined BULK_FLUXES
1074 &
'Compute Salt Flux using E-P'
1078#if defined ESMF_LIB && defined MODEL_COUPLING
1081 &
'Using Earth System Modeling Framework library'
1088 &
'Writting fields for offline Ensemble Kalman Filter'
1090 coptions(is:is+14)=
' ENKF_RESTART,'
1095 &
'Ensemble Forecasting Propagator'
1099#if defined ESM_SETRUNCLOCK && defined MODEL_COUPLING && \
1103 &
'Sets coupled component specialized SetRunClock method'
1105 coptions(is:is+17)=
' ESM_SETRUNCLOCK,'
1107#if defined EVOLVED_LCZ && defined FOUR_DVAR
1110 &
'Compute 4D-Var evolved Hessian singular vectors'
1114# if defined EXCLUDE_SPONGE && defined MODEL_COUPLING && \
1115 (defined data_coupling &&
1118 &
'Exclude sponge points in export fields during coupling'
1120 coptions(is:is+16)=
' EXCLUDE_SPONGE,'
1125 &
'Simulated Lagrangian drifters'
1129#if defined FLOAT_BIOLOGY && defined FLOATS
1132 &
'Biological behavior on Lagrangian drifters'
1134 coptions(is:is+15)=
' FLOAT_BIOLOGY,'
1136#if defined FLOAT_OYSTER && defined FLOATS
1139 &
'Oyster model behavior on Lagrangian drifters'
1141 coptions(is:is+14)=
' FLOAT_OYSTER,'
1143#if defined FLOAT_STICKY && defined FLOATS && defined SOLVE3D
1146 &
'Reflect (stick) floats that hit the surface (bottom)'
1148 coptions(is:is+14)=
' FLOAT_STICKY,'
1150#if defined FLOATS && defined FLOAT_VWALK && defined SOLVE3D
1153 &
'Lagrangian drifters with vertical diffusion, random walk'
1160 &
'Forcing Singular Vectors Propagator'
1165#if defined FORWARD_FLUXES
1168 &
'Using nonlinear model Forward fluxes for Tangent/Adjoint'
1170 coptions(is:is+16)=
' FORWARD_FLUXES,'
1172#if defined FORWARD_MIXING && defined SOLVE3D
1175 &
'Read in Forward vertical mixing for Tangent/Adjoint'
1177 coptions(is:is+16)=
' FORWARD_MIXING,'
1182 &
'Read in Forward solution for Tangent/Adjoint'
1184 coptions(is:is+14)=
' FORWARD_READ,'
1189 &
'Process Forward RHS terms for Tangent/Adjoint'
1196 &
'Write out Forward solution for Tangent/Adjoint'
1198 coptions(is:is+15)=
' FORWARD_WRITE,'
1200#if defined FRC_COUPLING && defined MODEL_COUPLING
1203 &
'Atmospheric forcing fields are from ESM coupling'
1205 coptions(is:is+14)=
' FRC_COUPLING,'
1210 &
'Using free-surface data in reduced physics conditions'
1212 coptions(is:is+15)=
' FSOBC_REDUCED,'
1217 &
'Finite Time Eigenmodes: Normal Modes'
1219 coptions(is:is+15)=
' FT_EIGENMODES,'
1222#if defined FOUR_DVAR || defined PROPAGATOR || defined VERIFICATION
1226# if (defined FOUR_DVAR || defined VERIFICATION)
1227 &
'Considering observations at interior and boundary points'
1228# elif defined PROPAGATOR
1229 &
'State vector includes interior and boundary points'
1236# if (defined FOUR_DVAR || defined VERIFICATION)
1237 &
'Considering observations at interior points only'
1238# elif defined PROPAGATOR
1239 &
'State vector includes interior points only'
1246# ifdef GATHER_SENDRECV
1248 &
'Using mpi_isend/mpi_irecv in mp_gather2d/mp_gather3d routines'
1250 coptions(is:is+17)=
' GATHER_SENDRECV,'
1253 &
'Using mpi_gatherv in mp_gather2d/mp_gather3d routines'
1255 coptions(is:is+18)=
' !GATHER_SENDRECV,'
1258#ifdef GENERIC_DSTART
1261 &
'Avoid using ''dstart'' as initial time in ADM, TLM, and RPM'
1263 coptions(is:is+16)=
' GENERIC_DSTART,'
1265#if defined GEOPOTENTIAL_HCONV && defined FOUR_DVAR && defined SOLVE3D
1268 &
'Horizontal convolutions along geopetential surfaces'
1270 coptions(is:is+20)=
' GEOPOTENTIAL_HCONV,'
1275 &
'Generic Length-Scale turbulence closure'
1283 &
'Writing output extraction history file'
1285 coptions(is:is+14)=
' GRID_EXTRACT,'
1290 &
'Creating NetCDF-4/HDF5 format files'
1297 &
'Hessian (4D-Var) Forcing Singular Vectors Propagator'
1304 &
'Hessian (4D-Var) Stochastic Optimals Propagator'
1311 &
'Hessian (4D-Var) Singular Vectors Propagator'
1315#if defined HOLLING_GRAZING && defined NEMURO
1318 &
'Holling-type s-shaped grazing algorithm, Implicit'
1320 coptions(is:is+17)=
' HOLLING_GRAZING,'
1325 &
'Hypoxia Simple Respiration Model'
1330#if defined ICE_MODEL && defined SOLVE3D
1333 &
'Native Sea-Ice Model (Budgell; Durski and Kurapov)'
1339 &
'Including advection of ice tracers'
1346 &
'Albedo computation from Ebert and Curry'
1348 coptions(is:is+14)=
' ICE_ALB_EC92,'
1350# ifdef ICE_BULK_FLUXES
1353 &
'Including ice terms in the bulk flux computation'
1355 coptions(is:is+17)=
' ICE_BULK_FLUXES,'
1360 &
'Conversion of flooded snow to ice'
1362 coptions(is:is+14)=
' ICE_CONVSNOW,'
1364# if defined ICE_EVP && defined ICE_MOMENTUM
1367 &
'Elastic-viscous-plastic rheology'
1374 &
'Mellor-Kantha thermodynamics'
1381 &
'Including momentum term'
1383 coptions(is:is+14)=
' ICE_MOMENTUM,'
1388 &
'Alternated ice-water stress computation'
1390 coptions(is:is+14)=
' ICE_MOM_BULK,'
1392# ifdef ICE_STRENGTH_QUAD
1395 &
'Quadratic ice strength, a function of thickness'
1397 coptions(is:is+19)=
' ICE_STRENGTH_QUAD,'
1399# if defined ICE_SMOLAR && defined ICE_ADVECT
1402 &
'MPDATA advection scheme'
1406# if defined ICE_UPWIND && defined ICE_ADVECT
1409 &
'Upwind advection scheme'
1417 &
'Include Ice Shelf Cavities'
1421#if defined IMPACT_INNER && \
1422 defined obs_impact && \
1423 (defined i4dvar_ana_sensitivity || \
1424 defined rbl4dvar_ana_sensitivity || \
1425 defined rbl4dvar_fct_sensitivity || \
1426 defined r4dvar_ana_sensitivity)
1429 &
'Writing observations impacts for each inner loop'
1431 coptions(is:is+14)=
' IMPACT_INNER,'
1433#ifdef IMPLICIT_NUDGING
1436 &
'Implicit nudging term in momentum radiation conditions'
1438 coptions(is:is+18)=
' IMPLICIT_NUDGING,'
1440#if defined IMPLICIT_VCONV && defined FOUR_DVAR && defined VCONVOLUTION
1443 &
'Implicit Vertical Convolution Algorithm'
1445 coptions(is:is+16)=
' IMPLICIT_VCONV,'
1447#ifdef INITIALIZE_AUTOMATIC
1449 IF (
master)
WRITE (
stdout,20)
'INITIALIZE_AUTOMATIC', &
1450 &
'Initialize automatic arrays in step2d for debugging'
1452 coptions(is:is+22)=
' INITIALIZE_AUTOMATIC,'
1456 &
'Joint Effort for Data Assimilation Integration'
1460#if defined LIMIT_BSTRESS && defined SOLVE3D && !defined BBL_MODEL
1463 &
'Limit bottom stress to maintain bottom velocity direction'
1465 coptions(is:is+15)=
' LIMIT_BSTRESS,'
1467#if defined LIMIT_STFLX_COOLING && defined SOLVE3D
1470 &
'Suppress further cooling if SST is at freezing point'
1472 coptions(is:is+21)=
' LIMIT_STFLX_COOLING,'
1474#if defined NPZD_IRON && defined IRON_LIMIT
1477 &
'Include dissolved iron limitation on phytoplankton growth'
1481#if defined NPZD_IRON && defined IRON_LIMIT && defined IRON_RELAX
1484 &
'Nudge dissolved iron over the shelf, h <= FeHmin'
1491 &
'Processing Adjoint Impulse forcing'
1498 &
'Tangent/Adjoint State Matrices Inner Product Test'
1500 coptions(is:is+15)=
' INNER_PRODUCT,'
1503#if defined I4DVAR && !defined SPLIT_4DVAR
1506 &
'Incremental, strong constraint 4D-Var data assimilation'
1511#ifdef I4DVAR_ANA_SENSITIVITY
1513 IF (
master)
WRITE (
stdout,20)
'I4DVAR_ANA_SENSITIVITY', &
1514 &
'I4D-Var Observations Sensitivity Analysis'
1516 coptions(is:is+24)=
' I4DVAR_ANA_SENSITIVITY,'
1519#if defined INLINE_2DIO && defined DISTRIBUTE
1522 &
'Processing 3D IO level by level to reduce memory needs'
1526#if defined IVLEV_EXPLICIT && defined NEMURO
1529 &
'Ivlev Grazing algorithm, Explicit'
1531 coptions(is:is+16)=
' IVLEV_EXPLICIT,'
1533#if defined KANTHA_CLAYSON && (defined GLS_MIXING || defined MY25_MIXING)
1536 &
'Kantha and Clayson stability function formulation'
1538 coptions(is:is+16)=
' KANTHA_CLAYSON,'
1540#if defined LCZ_FINAL && defined FOUR_DVAR
1543 &
'Compute 4D-Var Hessian singular vectors'
1547#if defined LIMIT_VDIFF && \
1548 (defined gls_mixing || defined lmd_mixing || defined my25_mixing)
1551 &
'Impose an upper limit on vertical diffusion coefficient'
1555#if defined LIMIT_VVISC && \
1556 (defined gls_mixing || defined lmd_mixing || defined my25_mixing)
1559 &
'Impose an upper limit on vertical viscosity coefficient'
1566 &
'KPP bottom boundary layer mixing'
1573 &
'LMD convective mixing due to shear instability'
1580 &
'LMD double-diffusive mixing'
1587 &
'Large/McWilliams/Doney interior mixing'
1595 &
'LMD convective nonlocal transport'
1597 coptions(is:is+14)=
' LMD_NONLOCAL,'
1602 &
'LMD diffusivity due to shear instability'
1609 &
'Shapiro filtering boundary layer depth'
1616 &
'KPP surface boundary layer mixing'
1620#if defined LONGWAVE && defined BULK_FLUXES
1623 &
'Compute net longwave radiation internally'
1627#if defined LONGWAVE_OUT && defined BULK_FLUXES
1630 &
'Compute outgoing longwave radiation internally'
1632 coptions(is:is+14)=
' LONGWAVE_OUT,'
1637 &
'Land/Sea masking'
1644 &
'Blaas Bottom Boundary Layer'
1651 &
'Internal computation of bottom orbital velocity'
1658 &
'Internal computation of bottom roughness'
1660 coptions(is:is+14)=
' MB_CALC_ZNOT,'
1665 &
'Biogenic bedform roughness ripple height and length'
1672 &
'Bedload roughness for ripples'
1679 &
'Bedform roughness ripple height and length'
1684#if defined MCT_LIB && defined MODEL_COUPLING
1687 &
'Using Model Coupling Toolkit library'
1691#ifdef METADATA_REPORT
1694 &
'Reports/dumps YAML metadata dictionary'
1696 coptions(is:is+10)=
' METADATA_REPORT,'
1698#if defined MINRES && defined FOUR_DVAR
1701 &
'Minimal Residual Method for 4D-Var minimization'
1705#if (defined TS_DIF2 || defined TS_DIF4) && defined SOLVE3D
1709 &
'Mixing of tracers along geopotential surfaces'
1716 &
'Mixing of tracers along isopycnal surfaces'
1723 &
'Mixing of tracers along constant S-surfaces'
1728#if (defined UV_VIS2 || defined UV_VIS4) && defined SOLVE3D
1732 &
'Mixing of momentum along geopotential surfaces'
1739 &
'Mixing of momentum along constant S-surfaces'
1747 &
'MPI distributed-memory configuration'
1751#if defined DISTRIBUTE
1752# if defined MULTI_THREAD
1755 &
'Using mpi_init_thread with multiple thread level processing'
1757 coptions(is:is+17)=
' MULTIPLE_THREAD,'
1761 &
'Using mpi_init with single thread level processing'
1763 coptions(is:is+18)=
' !MULTIPLE_THREAD,'
1766#if defined MULTIPLE_TLM && defined TANGENT
1769 &
'Create multiple TLM history files'
1771 coptions(is:is+14)=
' MULTIPLE_TLM,'
1776 &
'Mellor/Yamada Level-2.5 mixing closure'
1784 &
'Nemuro Lower Trophic Level Ecosystem Model'
1792 &
'Nesting grids: Composite and Refinement'
1795# ifdef NESTING_DEBUG
1798 &
'Checking mass fluxes conservation in refinement'
1800 coptions(is:is+15)=
' NESTING_DEBUG,'
1803#if defined NLM_OUTER && defined WEAK_CONSTRAINT
1806 &
'Using the Nonlinear model as Basic State in Outer Loop'
1817#if defined NO_SCORRECTION_ICE && defined ICE_MODEL && defined SOLVE3D
1820 &
'No salinity correction under the ice'
1822 coptions(is:is+20)=
' NO_SCORRECTION_ICE,'
1825# if defined NONLIN_EOS
1828 &
'Nonlinear Equation of State for seawater'
1834 &
'Linear Equation of State for seawater'
1839#if defined NO_CORRECT_TRACER && defined NESTING && defined SOLVE3D
1842 &
'Avoid two-way correction of coaser grid boundary tracer'
1844 coptions(is:is+19)=
' NO_CORRECT_TRACER,'
1849 &
'Not checking NetCDF global attribute NLM_LBC during restart'
1853#if defined NO_READ_GHOST && defined DISTRIBUTE
1856 &
'Not including ghost points during scattering read data'
1858 coptions(is:is+15)=
' NO_READ_GHOST,'
1863 &
'Not Writing grid arrays into NetCDF ouput files'
1865 coptions(is:is+15)=
' NO_WRITE_GRID,'
1870 &
'NPZD Biological Model, Franks et al. fomulation'
1878 &
'NPZD Biological Model (Powell et al.) with iron limitation'
1886 &
'NPZD Biological Model, Powell et al. fomulation'
1891#if defined N2S2_HORAVG && (defined GLS_MIXING || defined MY25_MIXING)
1894 &
'Horizontal smoothing of buoyancy and shear'
1901 &
'Processing 4D-Var observations'
1903 coptions(is:is+13)=
' OBSERVATIONS,'
1908 &
'Compute observation impact to the 4D-Var system'
1912#if defined OBS_IMPACT && defined OBS_IMPACT_SPLIT
1915 &
'Separate impact due to IC, surface forcing, and OBC'
1917 coptions(is:is+18)=
' OBS_IMPACT_SPLIT,'
1919#if defined OBS_SPACE && defined RBL4DVAR_FCT_SENSITIVITY
1922 &
'Forecast metric in observation-space instead of state-space'
1926#if defined OMEGA_IMPLICIT && defined SOLVE3D
1929 &
'Adaptive, Courant-number based implicit vertical advection'
1931 coptions(is:is+16)=
' OMEGA_IMPLICIT,'
1937 &
'One-way nesting in refinement grids'
1943 &
'Two-way nesting in refinement grids'
1951 &
'Double precision output fields in NetCDF files'
1958 &
'Reporting NetCDF output fields statistics'
1960 coptions(is:is+14)=
' OUTPUT_STATS,'
1965 &
'OpenMP parallel shared-memory directives'
1969#ifdef OPT_OBSERVATIONS
1972 &
'Optimal Observations Driver'
1974 coptions(is:is+18)=
' OPT_OBSERVATIONS,'
1977#ifdef OPT_PERTURBATION
1980 &
'Optimal Perturbation Propagator'
1982 coptions(is:is+18)=
' OPT_PERTURBATION,'
1985#if defined OXYGEN && defined BIO_FENNEL
1986# ifdef OCMIP_OXYGEN_SC
1989 &
'Schmidt number from Keeling et al. (1998)'
1991 coptions(is:is+17)=
' OCMIP_OXYGEN_SC,'
1995 &
'Schmidt number from Wanninkhof (1992)'
1997 coptions(is:is+18)=
' !OCMIP_OXYGEN_SC,'
2001 &
'Add oxygen dynamics'
2005#if defined HYPOXIA_SRM && !defined SURFACE_DO_SATURATION
2006# ifdef OCMIP_OXYGEN_SC
2009 &
'Schmidt number from Keeling et al. (1998)'
2011 coptions(is:is+17)=
' OCMIP_OXYGEN_SC,'
2015 &
'Schmidt number from Wanninkhof (1992)'
2017 coptions(is:is+18)=
' !OCMIP_OXYGEN_SC,'
2020#if defined PARALLEL_IO && defined DISTRIBUTE
2023 &
'Parallel I/O processing'
2027#if defined CARBON && defined BIO_FENNEL
2028# if defined PCO2AIR_DATA
2031 &
'CO2 gas exchange from Laurent et al. (2017)'
2033 coptions(is:is+14)=
' PCO2AIR_DATA,'
2034# elif defined PCO2AIR_SECULAR
2037 &
'CO2 gas exchange time-dependent evolution'
2039 coptions(is:is+17)=
' PCO2AIR_SECULAR,'
2042#ifdef PERFECT_RESTART
2045 &
'Processing perfect restart variables'
2047 coptions(is:is+17)=
' PERFECT_RESTART,'
2052 &
'Representers tangent linear model Picard iterations test'
2057#if defined PIO_LIB && defined DISTRIBUTE
2060 &
'Using Parallel-IO from the PIO library'
2067 &
'Finite volume Pressure Jacobian (Lin, 1997)'
2074 &
'Quartic 2 polynomial Pressure Jacobian (Shchepetkin, 2002)'
2081 &
'Quartic 4 polynomial Pressure Jacobian (Shchepetkin, 2002)'
2085#if defined PRESS_COMPENSATE && defined ATM_PRESS
2088 &
'Compensate for boundary data without ATM pressure effect'
2090 coptions(is:is+18)=
' PRESS_COMPENSATE,'
2092#if defined PO4 && defined BIO_FENNEL
2095 &
'Phytoplanckton growth limited by Phosphorus'
2099#if defined PRIOR_BULK_FLUXES && defined BULK_FLUXES && \
2103 &
'Impose prior surface fluxes in other outer loops and analysis'
2105 coptions(is:is+19)=
' PRIOR_BULK_FLUXES,'
2110 &
'Impose positive zero in output data'
2112 coptions(is:is+15)=
' POSITIVE_ZERO,'
2114#if defined POSTERIOR_EOFS && defined WEAK_CONSTRAINT
2117 &
'Estimating posterior analysis error covariace matrix EOFs'
2119 coptions(is:is+16)=
' POSTERIOR_EOFS,'
2121#if defined POSTERIOR_ERROR_F && defined WEAK_CONSTRAINT
2124 &
'Estimating final posterior analysis error covariace matrix'
2126 coptions(is:is+16)=
' POSTERIOR_ERROR_F,'
2128#if defined POSTERIOR_ERROR_I && defined WEAK_CONSTRAINT
2131 &
'Estimating initial posterior analysis error covariace matrix'
2133 coptions(is:is+16)=
' POSTERIOR_ERROR_F,'
2135#if defined POWER_LAW && defined SOLVE3D
2138 &
'Power-law shape time-averaging barotropic filter'
2142#if !(defined PJ_GRADPQ4 || defined PJ_GRADPQ2 || defined PJ_GRADP || \
2143 defined dj_gradps) && defined solve3d
2146 &
'Standard density Jacobian formulation (Song, 1998)'
2153 &
'Time profiling activated'
2160 &
'Pseudospectra Propagator'
2162 coptions(is:is+15)=
' PSEUDOSPECTRA,'
2167 &
'Surface net heat flux correction'
2172# ifdef RADIAL_ANGLE_CCW_EAST
2174 IF (
master)
WRITE (
stdout,20)
'RADIAL_ANGLE_CCW_EAST', &
2175 &
'Radial observations as an azimuth counterclockwise from EAST'
2177 coptions(is:is+23)=
' RADIAL_ANGLE_CCW_EAST,'
2179 IF (
master)
WRITE (
stdout,20)
'!RADIAL_ANGLE_CCW_EAST', &
2180 &
'Radial observations as an azimuth clockwise from NORTH'
2182 coptions(is:is+24)=
' !RADIAL_ANGLE_CCW_EAST,'
2185#if defined NESTING && defined REFINE_BOUNDARY
2188 &
'Fine-to-Coarse momentum averaging at coarse grid boundary'
2190 coptions(is:is+17)=
' REFINE_BOUNDARY,'
2192#if defined REMOVE_LAPACK_GOTOS && defined FOUR_DVAR
2195 &
'Modernizing adapted LAPACK routines by replacing GOTOs'
2197 coptions(is:is+21)=
' REMOVE_LAPACK_GOTOS,'
2199#if defined OXYGEN && defined BIO_FENNEL
2200# if defined OCMIP_OXYGEN_SC
2203 &
'Schmidt number from Keeling et al. (1998)'
2205 coptions(is:is+17)=
' OCMIP_OXYGEN_SC,'
2206# elif defined RW14_OXYGEN_SC
2209 &
'O2 Schmidt number from Wanninkhof (2014)'
2211 coptions(is:is+16)=
' RW14_OXYGEN_SC,'
2215 &
'Schmidt number from Wanninkhof (1992)'
2217 coptions(is:is+17)=
' !RW14_OXYGEN_SC,'
2220#if defined GLS_MIXING || defined MY25_MIXING
2221# if defined K_C2ADVECTION
2224 &
'Second-order centered differences advection of TKE fields'
2226 coptions(is:is+15)=
' K_C2ADVECTION,'
2227# elif defined K_C4ADVECTION
2230 &
'Fourth-order centered differences advection of TKE fields'
2232 coptions(is:is+15)=
' K_C4ADVECTION,'
2236 &
'Third-order upstream advection of TKE fields'
2243 &
'Harmonic mixing of TKE fields'
2250 &
'Biharmonic mixing of TKE fields'
2258 &
'Use tangential phase speed in radiation conditions'
2260 coptions(is:is+14)=
' RADIATION_2D,'
2262#if defined RAMP_TIDES && (defined SSH_TIDES || defined UV_TIDES)
2265 &
'Ramping tidal forcing for one day'
2269#if defined RBL4DVAR && !defined SPLIT_RBL4DVAR
2272 &
'Strong/Weak constraint RBL4D-VAR data assimilation'
2277#ifdef RBL4DVAR_ANA_SENSITIVITY
2279 IF (
master)
WRITE (
stdout,20)
'RBL4DVAR_ANA_SENSITIVITY', &
2280 &
'RBL4D-VAR analysis observation sensitivity'
2282 coptions(is:is+26)=
' RBL4DVAR_ANA_SENSITIVITY,'
2285#ifdef RBL4DVAR_FCT_SENSITIVITY
2287 IF (
master)
WRITE (
stdout,20)
'RBL4DVAR_FCT_SENSITIVITY', &
2288 &
'RBL4D-VAR forecast observation sensitivity'
2290 coptions(is:is+26)=
' RBL4DVAR_FCT_SENSITIVITY,'
2293#if defined READ_WATER && defined MASKING
2296 &
'Reading data at water points only'
2300#if defined RECOMPUTE_4DVAR && defined FOUR_DVAR
2303 &
'Recomputing 4D-Var during data assimilation analysis'
2305 coptions(is:is+17)=
' RECOMPUTE_4DVAR,'
2307#if defined DISTRIBUTE
2308# if defined REDUCE_ALLGATHER
2311 &
'Using mpi_allgather in mp_reduce routine'
2313 coptions(is:is+18)=
' REDUCE_ALLGATHER,'
2314# elif defined REDUCE_ALLREDUCE
2317 &
'Using mpi_allreduce in mp_reduce routine'
2319 coptions(is:is+18)=
' REDUCE_ALLREDUCE,'
2320# elif defined REDUCE_SENDRECV
2323 &
'Using mpi_isend/mpi_recv in mp_reduce routine'
2325 coptions(is:is+17)=
' REDUCE_SENDRECV,'
2328#ifdef REGCM_COUPLING
2331 &
'Atmosphere coupling with RegCM'
2333 coptions(is:is+16)=
' REGCM_COUPLING,'
2339 &
'Red tide biological model'
2344#if defined REGRESS_STARTCLOCK && defined MODEL_COUPLING && \
2348 &
'Regressing start clock by one coupling interval'
2350 coptions(is:is+20)=
' REGRESS_STARTCLOCK,'
2352#ifdef REGRID_SHAPIRO
2355 &
'Applying Shapiro filter to regridded data'
2357 coptions(is:is+16)=
' REGRID_SHAPIRO,'
2359#if defined RIVER_DON && defined BIO_FENNEL
2362 &
'DON non-skinking source from rivers'
2369 &
"Writes ROMS standard output into 'log.roms' file"
2376 &
'Representers Matrix Symmetry Test'
2381#if defined LMD_MIXING
2385 &
'Smooth Richardson number horizontally'
2392 &
'Smooth Richardson number vertically'
2397#if defined SOLVE3D && \
2398 (defined gls_mixing || defined lmd_mixing || defined my25_mixing)
2402 &
'Parabolic Spline Reconstruction for Richardson Number'
2407#if !(defined PJ_GRADPQ4 || defined PJ_GRADPQ2 || defined PJ_GRADP || \
2408 defined dj_gradps) && defined rho_surf && defined solve3d
2411 &
'Include difference between rho0 and surface density'
2415#if defined ROLLER_MONO && defined WEC_ROLLER && defined WEC_VF
2418 &
'Wave energy roller from monochromatic waves'
2422#ifdef ROLLER_RENIERS && defined WEC_ROLLER && defined WEC_VF
2425 &
'Wave energy roller based on Reniers 2004'
2427 coptions(is:is+16)=
' ROLLER_RENIERS,'
2429#ifdef ROLLER_SVENDSEN && defined WEC_ROLLER && defined WEC_VF
2432 &
'Wave energy roller based on Svendsen 1984'
2434 coptions(is:is+17)=
' ROLLER_SVENDSEN,'
2436#if defined RPCG && defined WEAK_CONSTRAINT
2439 &
'Restricted B-preconditioned Lanczos minimization solver'
2443#if defined RP_AVERAGES && defined TL_IOMS
2446 &
'Writing out time-averaged representer model fields'
2453 &
'Generic representers tangent linear model driver'
2458#ifdef RPM_RELAXATION
2461 &
'Diffusive Relaxation of RPM in Picard Iterations'
2463 coptions(is:is+16)=
' RPM_RELAXATION,'
2468 &
'Single precision fields in restart NetCDF file'
2474 &
'Double precision fields in restart NetCDF file'
2478#if defined R4DVAR && !defined SPLIT_R4DVAR
2481 &
'Strong/Weak constraint, R4D-Var data assimilation'
2486#ifdef R4DVAR_ANA_SENSITIVITY
2488 IF (
master)
WRITE (
stdout,20)
'R4DVAR_ANA_SENSITIVITY', &
2489 &
'R4D-Var analysis observation sensitivity'
2491 coptions(is:is+24)=
' R4DVAR_ANA_SENSITIVITY,'
2504 &
'Tangent Linear and Adjoint Models Correctness Check'
2506 coptions(is:is+14)=
' SANITY_CHECK,'
2510# ifdef SCATTER_BCAST
2512 &
'Using mpi_bcast in mp_scatter2d/mp_scatter3d routines'
2514 coptions(is:is+15)=
' SCATTER_BCAST,'
2517 &
'Using mpi_scatterv in mp_scatter2d/mp_scatter3d routines'
2519 coptions(is:is+16)=
' !SCATTER_BCAST,'
2525 &
'Surface salinity flux correction'
2532 &
'Cohesive and noncohesive sediments'
2538 &
'Include density of suspended sediment in equation of state'
2545 &
'Allow bottom model elevation to evolve'
2552 &
'Activate suspended sediment transport'
2557#if defined STD_MODEL && defined FOUR_DVAR
2560 &
'Background error covariance Standard Deviation model'
2564#if defined STEP2D_FB_AB3_AM4
2567 &
'Generalized Forward-Backward AB3-AM4 stepping scheme'
2569 coptions(is:is+19)=
' STEP2D_FB_AB3_AM4,'
2570#elif defined STEP2D_FB_LF_AM3
2573 &
'Predictor/Corrector Forward-Backward LF-AM3 stepping scheme'
2575 coptions(is:is+18)=
' STEP2D_FB_LF_AM3,'
2579 &
'Predictor/Corrector LF-AM3 stepping scheme'
2581 coptions(is:is+15)=
' STEP2D_LF_AM3,'
2586 &
'Styles and Glenn Bottom Boundary Layer'
2593 &
'Internal computation of bottom orbital velocity'
2600 &
'Internal computation of bottom roughness'
2602 coptions(is:is+14)=
' SG_CALC_ZNOT,'
2607 &
'Bottom currents logarithmic interpolation'
2612#ifdef SINGLE_PRECISION
2615 &
'Single precision arithmetic numerical kernel'
2617 coptions(is:is+18)=
' SINGLE_PRECISION,'
2619#if defined SKIP_NLM && defined SENSITIVITY_4DVAR
2622 &
'Skipping running NLM, reading NLM state trajectory'
2626#ifdef SPECTRUM_STOKES
2629 &
'Stokes drift estimated from wave spectrum'
2631 coptions(is:is+17)=
' SPECTRUM_STOKES,'
2636 &
'Surface salinity relaxation as surface flux'
2643 &
'Solar Radiation Source Term'
2645 coptions(is:is+14)=
' SOLAR_SOURCE,'
2650 &
'Solving 3D Primitive Equations'
2657 &
'Stochastic Optimals Propagator, Semi-norm Estimation'
2665 &
'Stochastic Optimals Propagator, Randomized Trace Estimation'
2671# ifdef SO_SEMI_WHITE
2674 &
'Stochastic Optimals, white noise processes'
2676 coptions(is:is+15)=
' SO_SEMI_WHITE,'
2680 &
'Stochastic Optimals, red noise processes'
2682 coptions(is:is+16)=
' !SO_SEMI_WHITE,'
2688 &
'Incremental, strong constraint Split 4D-Var data assimilation'
2690 coptions(is:is+14)=
' SPLIT_I4DVAR,'
2693#ifdef SPLIT_RBL4DVAR
2696 &
'Strong/Weak constraint Split RBL4D-VAR data assimilation'
2698 coptions(is:is+16)=
' SPLIT_RBL4DVAR,'
2704 &
'Strong/Weak constraint, Split R4D-Var data assimilation'
2706 coptions(is:is+14)=
' SPLIT_R4DVAR,'
2712 &
'Weak Constraint, Saddle-Point Split 4D-Var Data Assimilation'
2714 coptions(is:is+15)=
' SPLIT_SP4DVAR,'
2717#if defined SP4DVAR && !defined SPLIT_4DVAR
2720 &
'Weak Constraint, Saddle-Point 4D-Var Data Assimilation'
2728 &
'Spherical grid configuration'
2732#if defined SPLINES_VCONV && defined FOUR_DVAR && defined VCONVOLUTION
2735 &
'Implicit, Parabolic Splines Vertical Convolution Algorithm'
2737 coptions(is:is+16)=
' SPLINES_VCONV,'
2739#if defined SPLINES_VDIFF && defined SOLVE3D
2742 &
'Parabolic Spline Reconstruction for Vertical Diffusion'
2744 coptions(is:is+15)=
' SPLINES_VDIFF,'
2746#if defined SPLINES_VVISC && defined SOLVE3D
2749 &
'Parabolic Spline Reconstruction for Vertical Viscosity'
2751 coptions(is:is+15)=
' SPLINES_VVISC,'
2753#if defined SSH_TIDES
2756 &
'Adding tidal elevation to SSH climatology'
2760#if defined STEP2D_CORILIS && defined SOLVE3D && \
2761 (defined step2d_fb_ab3_am4 || defined step2d_fb_lf_am3)
2764 &
'Adding Coriolis force to barotropic kernel in 3D set-up'
2766 coptions(is:is+16)=
' STEP2D_CORILIS,'
2771 &
'Styles and Glenn Bottom Boundary Layer - modified'
2778 &
'Internal computation of bottom orbital velocity'
2782# ifdef SSW_CALC_ZNOT
2785 &
'Internal computation of bottom roughness'
2787 coptions(is:is+14)=
' SSW_CALC_ZNOT,'
2789# ifdef SSW_FORM_DRAG_COR
2792 &
'Form drag coefficient'
2794 coptions(is:is+19)=
' SSW_FORM_DRAG_COR,'
2799 &
'Biogenic bedfrom roughness from ripples'
2806 &
'Bedload roughness from ripples'
2813 &
'Bedfrom roughness from ripples'
2820 &
'Bottom currents logarithmic interpolation'
2824# ifdef SSW_LOGINT_WBL
2827 &
'Bottom currents logarithmic interpolation at wbl'
2829 coptions(is:is+16)=
' SSW_LOGINT_WBL,'
2831# ifdef SSW_LOGINT_DIRECT
2834 &
'Bottom currents logarithmic interpolation at user elev'
2836 coptions(is:is+19)=
' SSW_LOGINT_DIRECT,'
2842 &
'Writing out station data'
2846#if defined STATIONS_CGRID && defined STATIONS
2849 &
'Extracting station data at native C-grid locations'
2851 coptions(is:is+16)=
' STATIONS_CGRID,'
2853#ifdef STOCHASTIC_OPT
2856 &
'Stochastic Optimals Propagator'
2858 coptions(is:is+16)=
' STOCHASTIC_OPT,'
2860# ifdef STOCH_OPT_WHITE
2863 &
'Stochastic Optimals, white noise processes'
2865 coptions(is:is+17)=
' STOCH_OPT_WHITE,'
2869 &
'Stochastic Optimals, red noise processes'
2871 coptions(is:is+18)=
' !STOCH_OPT_WHITE,'
2874#if defined SURFACE_DO_SATURATION && defined HYPOXIA_SRM
2876 IF (
master)
WRITE (
stdout,20)
'SURFACE_DO_SATURATION', &
2877 &
'Use surface dissolved oxygen saturation'
2879 coptions(is:is+23)=
' SURFACE_DO_SATURATION,'
2881#if defined SUBOBJECT_DEALLOCATION
2883 IF (
master)
WRITE (
stdout,20)
'SUBOBJECT_DEALLOCATION', &
2884 &
'Deallocate each variable in structure objects separately'
2886 coptions(is:is+24)=
' SUBOBJECT_DEALLOCATION,'
2888#if defined SUPPRESS_REPORT && defined SPLIT_4DVAR
2891 &
'Suppress report of repetitive configuration information'
2893 coptions(is:is+17)=
' SUPPRESS_REPORT,'
2895#if defined SURFACE_STREAMING && defined WEC_VF
2898 &
'Wave current streaming term'
2900 coptions(is:is+18)=
' SURFACE_STREAMING,'
2905 &
'Two-way SWAN/ROMS coupling'
2907 coptions(is:is+15)=
' SWAN_COUPLING,'
2909#if defined CARBON && defined BIO_FENNEL
2910# ifdef TALK_NONCONSERV
2913 &
'Alkalinity is affected by changes in nitrate or ammonium'
2915 coptions(is:is+17)=
' TALK_NONCONSERV,'
2919 &
'Alkalinity is passive and unaffected by nitrate or ammonium'
2921 coptions(is:is+18)=
' !TALK_NONCONSERV,'
2927 &
'Tangent Linear Model'
2931#ifdef TIDE_GENERATING_FORCES
2933 IF (
master)
WRITE (
stdout,20)
'TIDE_GENERATING_FORCES', &
2934 &
'Adding astronomical TGF term to pressure gradient'
2936 coptions(is:is+24)=
' TIDE_GENERATING_FORCES,'
2938#if defined TIME_CONV && defined WEAK_CONSTRAINT
2941 &
'Weak-constraint 4D-Var time convolution'
2945#if defined TIME_INTERP && defined MODEL_COUPLING
2948 &
'Time interpolation from imported coupling snapshots data'
2952#if defined TIME_INTERP_FLUX && defined NESTING && defined SOLVE3D
2955 &
'Time interpolate coaser grid mass flux in refinement'
2957 coptions(is:is+18)=
' TIME_INTERP_FLUX,'
2959#if defined TL_AVERAGES && defined TANGENT
2962 &
'Writing out time-averaged tangent linear model fields'
2969 &
'Generic tangent linear model driver'
2974#if defined GLS_MIXING && defined TKE_WAVEDISS
2977 &
'Wave breaking surface tke flux based on wave amplitude'
2979 coptions(is:is+14)=
' TKE_WAVEDISS,'
2984 &
'Representers Tangent Linear Model'
2991 &
'Tangent Linear Model Linearization Check'
2995#if defined TRACING && defined PROFILE
2998 &
'Tracing sequence of routine calls for debugging'
3003# if defined T_PASSIVE
3006 &
'Advecting and diffusing inert passive tracer'
3010# if defined TS_MIX_CLIMA && \
3011 (defined ts_dif2 || defined ts_dif4)
3014 &
'Horizontal diffusion of tracer perturbation (T-Tclm)'
3016 coptions(is:is+14)=
' TS_MIX_CLIMA,'
3018# if defined TS_MIX_MAX_SLOPE && defined MIX_ISO_TS && \
3019 (defined ts_dif2 || defined ts_dif4)
3022 &
'Maximum density slope in isopycnal diffusion'
3024 coptions(is:is+18)=
' TS_MIX_MAX_SLOPE,'
3026# if defined TS_MIX_MAX_SLOPE && defined MIX_ISO_TS && \
3027 (defined ts_dif2 || defined ts_dif4)
3030 &
'Minimum density stratification in isopycnal diffusion'
3032 coptions(is:is+18)=
' TS_MIX_MAX_STRAT,'
3034# if defined TS_MIX_STABILITY && \
3035 (defined ts_dif2 || defined ts_dif4)
3038 &
'Weighting diffusion between two time levels'
3040 coptions(is:is+18)=
' TS_MIX_STABILITY,'
3042# ifdef TS_MPDATA_LIMIT
3045 &
'Further limiter in upwind corrector fluxes for stability'
3047 coptions(is:is+17)=
' TS_MPDATA_LIMIT,'
3050#if defined TS_DIF2 && defined SOLVE3D
3053 &
'Harmonic mixing of tracers'
3057#if defined TS_DIF4 && defined SOLVE3D
3060 &
'Biharmonic mixing of tracers'
3067 &
'Diagnostic configuration, no evolution of tracer'
3071#if defined TS_SMAGORINSKY && (defined TS_DIF2 || defined TS_DIF4)
3074 &
'Smagorinksy-like time-dependent diffusion coefficients'
3076 coptions(is:is+16)=
' TS_SMAGORINSKY,'
3081 &
'Advection of momentum'
3092#ifdef UV_DESTAGGERED
3095 &
'Currents destaggering to cell-center for data assimilation'
3097 coptions(is:is+16)=
' UV_DESTAGGERED,'
3100# ifdef UV_C2ADVECTION
3103 &
'Second-order centered differences advection of momentum'
3105 coptions(is:is+16)=
' UV_C2ADVECTION,'
3109# if defined UV_C4ADVECTION || defined UV_U3ADV_SPLIT
3112 &
'Fourth-order centered differences advection of momentum'
3114 coptions(is:is+16)=
' UV_C4ADVECTION,'
3119# if !(defined UV_C2ADVECTION || defined UV_C4ADVECTION)
3122 &
'Third-order upstream horizontal advection of 3D momentum'
3124 coptions(is:is+17)=
' UV_U3HADVECTION,'
3127# if !(defined UV_C2ADVECTION || defined UV_C4ADVECTION || \
3128 defined uv_sadvection)
3131 &
'Fourth-order centered vertical advection of momentum'
3133 coptions(is:is+16)=
' UV_C4VADVECTION,'
3138 &
'Compute uwave and vwave Kirby avg velocities'
3142# ifdef UV_SADVECTION
3145 &
'Parabolic splines vertical advection of momentum'
3147 coptions(is:is+15)=
' UV_SADVECTION,'
3150# ifdef UV_U3ADV_SPLIT
3153 &
'Split third-order upstream advection of momentum'
3155 coptions(is:is+16)=
' UV_U3ADV_SPLIT,'
3162# if defined UV_LOGDRAG || defined BBL_MODEL
3163 &
'Spatially varying bottom roughness length'
3164# elif defined UV_LDRAG
3165 &
'Spatially varying linear drag coefficient'
3166# elif defined UV_QDRAG
3167 &
'Spatially varying quadratic drag coefficient'
3170 coptions(is:is+14)=
' UV_DRAG_GRID,'
3175 &
'Linear bottom stress'
3183 &
'Logarithmic bottom stress'
3191 &
'Quadratic bottom stress'
3199 &
'Add tidal currents to 2D momentum climatologies'
3206 &
'Harmonic mixing of momentum'
3213 &
'Biharmonic mixing of momentum'
3217#if defined UV_SMAGORINSKY && (defined UV_VIS2 || defined UV_VIS4)
3220 &
'Smagorinksy-like time-dependent viscosity coefficients'
3222 coptions(is:is+16)=
' UV_SMAGORINSKY,'
3224#if defined VAR_RHO_2D && defined SOLVE3D
3227 &
'Variable density barotropic mode'
3231#if defined UV_VIS2 || defined UV_VIS4
3235 &
'Horizontal viscosity coefficient scaled by grid size'
3240#if defined VCONVOLUTION && defined FOUR_DVAR && defined SOLVE3D
3243 &
'Include vertical correlations in convolutions'
3245 coptions(is:is+14)=
' VCONVOLUTION,'
3250 &
'Proccess model solution at observation locations'
3252 coptions(is:is+14)=
' VERIFICATION,'
3254#if defined FLOATS && defined FLOAT_VWALK && defined SOLVE3D
3255# ifdef VWALK_FORWARD
3258 &
'Lagrangian drifters, forward stepping random walk'
3260 coptions(is:is+15)=
' VWALK_FORWARD,'
3264 &
'Lagrangian drifters, predictor/corrector random walk'
3266 coptions(is:is+16)=
' !VWALK_FORWARD,'
3269#if defined VISC_3DCOEF
3272 &
'Horizontal, time-dependent 3D viscosity coefficient'
3279 &
'Enhanced veritcal mixing from waves term'
3283#if defined WDISS_THORGUZA && defined WEC_VF
3286 &
'Wave energy dissipation computed from Thorton/Guza 1986'
3288 coptions(is:is+16)=
' WDISS_THORGUZA,'
3290#if defined WDISS_CHURTHOR && defined WEC_VF
3293 &
'Wave energy dissipation computed from Church/Thorton 1986'
3295 coptions(is:is+16)=
' WDISS_CHURTHOR,'
3300 &
'Wave energy dissipation acquired from coupled wave model'
3302 coptions(is:is+15)=
' WDISS_WAVEMOD,'
3307 &
'Two-way wave-ocean models coupling'
3309 coptions(is:is+13)=
' WAV_COUPLING,'
3311#ifdef WEAK_CONSTRAINT
3314 &
'Activated weak constraint assimilation set-up'
3316 coptions(is:is+17)=
' WEAK_CONSTRAINT,'
3318#if defined WEAK_NOINTERP && defined WEAK_CONSTRAINT
3321 &
'Avoid time interpolation in weak constraint forcing'
3323 coptions(is:is+15)=
' WEAK_NOINTERP,'
3328 &
'Vortex Force wave current interaction'
3331 nearshore=nearshore+1
3333#if defined WRITE_WATER && defined MASKING
3336 &
'Writing data at water points only'
3343 &
'Wetting and drying activated'
3347#ifdef WIND_MINUS_CURRENT && defined BULK_FLUXES && defined SOLVE3D
3350 &
'Compute effective wind by removing surface ocean current'
3352 coptions(is:is+20)=
' WIND_MINUS_CURRENT,'
3357 &
'Wind-induced wave data available'
3361#if !(defined PJ_GRADPQ4 || defined PJ_GRADPQ2 || defined PJ_GRADP || \
3362 defined dj_gradps) && defined wj_gradp
3365 &
'Weighted Jacobians pressure gradient adjustment'
3372 &
'Atmosphere coupling with WRF'
3374 coptions(is:is+14)=
' WRF_COUPLING,'
3379 &
'WRF Exports time-averaged fields over the coupling interval'
3384#if defined WTYPE_GRID && \
3385 (defined
lmd_skpp || defined solar_source) && \
3389 &
'Spatially varying Jerlov water type index'
3393#if defined ZETA_ELLIPTIC && defined BALANCE_OPERATOR && \
3397 &
'Solving SSH elliptic equation in balance operator'
3399 coptions(is:is+15)=
' ZETA_ELLIPTIC,'
3404 &
'Wave amplitude used for Zos calculation'
3422 IF (
master.and.(ivmix.gt.1))
THEN
3424 30
FORMAT (/,
' CHECKDEFS - only one vertical closure scheme', &
3431 IF (
master.and.(ibbl.gt.1))
THEN
3433 40
FORMAT (/,
' CHECKDEFS - only one bottom stress formulation is', &
3440 IF (
master.and.(ibbl.eq.0))
THEN
3442 50
FORMAT (/,
' CHECKDEFS - no bottom stress formulation is', &
3449 IF (
master.and.(ibiology.gt.1))
THEN
3451 60
FORMAT (/,
' CHECKDEFS - only one biology MODULE is allowed.')
3457 IF (
master.and.(idriver.gt.1))
THEN
3459 70
FORMAT (/,
' CHECKDEFS - only one model example is allowed.')
3470 80
FORMAT (/,
' CHECKDEFS - explicit time-step splitting is ', &
3471 &
' inconsistent.', &
3472 & /,13x,
'Change parameter NDTFAST to unity.')
3477#if defined ADJOINT && defined _OPENMP
3480 90
FORMAT (/,
' CHECKDEFS - cannot run the adjoint model in', &
3481 &
' shared-memory mode.')
3485#if defined NEMURO && defined HOLLING_GRAZING && defined IVLEV_EXPLICIT
3491 100
FORMAT (/,
' CHECKDEFS - More than one grazing algorithm', &
3492 &
' selected for Nemuro model.')
3496#if defined FOUR_DVAR && defined VCONVOLUTION
3497# if defined IMPLICIT_VCONV && defined SPLINES_VCONV
3503 110
FORMAT (/,
' CHECKDEFS - More than one vertical convolution', &
3504 &
' algorithm selected.')
3509#if defined MODEL_COUPLING && (defined ESMF_LIB && defined MCT_LIB)
3512 120
FORMAT (/,
' CHECKDEFS - More than one coupling library', &
3517#if defined POSTERIOR_ERROR_F && defined POSTERIOR_ERROR_I && \
3518 defined weak_constraint
3521 130
FORMAT (/,
' CHECKDEFS - Both initial and final posterior', &
3522 &
' error covariance analysis selected, choose one.')
3530 IF (
master.and.(ivelhadv.gt.1))
THEN
3531 WRITE (
stdout,140)
'horizontal',
'momentum',
'ivelHadv =',ivelhadv
3535 IF (
master.and.(ivelvadv.gt.1))
THEN
3536 WRITE (
stdout,140)
'vertical',
'momentum',
'ivelVadv =',ivelvadv
3541 140
FORMAT (/,
' CHECKDEFS - only one ',a,
' advection scheme', &
3542 & /,13x,
'is allowed for ',a,
', ',a,1x,i1)
3543#if defined SOLVE3D && defined NEMURO
3544# if !(defined IVLEV_EXPLICIT || defined HOLLING_GRAZING)
3548 150
FORMAT (/,
' CHECKDEFS - Need to choose a zooplankton grazing', &
3549 &
' option;',/,13x,
'use either ',a,
' or implicit ',a, &
3550 &
'.',/,13x,
'The default implicit IVLEV algorithm', &
3551 &
' does not work well yet.')
3560 IF (
master.and.(nearshore.gt.1))
THEN
3562 160
FORMAT (/,
' CHECKDEFS - only one wave current formulation' &
3568 IF (
master.and.(sbed_type.gt.1))
THEN
3570 170
FORMAT (/,
' CHECKDEFS - More than one sediment bed type ', &
3574 IF (
master.and.(sbed_load.gt.1))
THEN
3576 180
FORMAT (/,
' CHECKDEFS - More than one sediment bed load ', &
3582# if !(defined HDF5 || defined PNETCDF)
3586 190
FORMAT (/,
' CHECKDEFS - Need to activate either ',a,
' or ',a, &
3587 &
' options',/,13x,
'for parallel I/O processing.')
3591# if defined HDF5 && defined PNETCDF
3595 200
FORMAT (/,
' CHECKDEFS - Both ',a,
' and ',a,
' options', &
3596 &
' selected',/,13x,
'for parallel I/O processing.', &
3597 & /,13x,
'Choose only one.')
3602#if defined WRITE_WATER && defined WET_DRY
3611 210
FORMAT (/,
' CHECKDEFS - cannot activate ',a,
' and ',a, &
3612 &
' together',/,13x,
'because of time dependent ', &
3613 &
' Land/Sea masking.')
3617#if ((defined AD_AVERAGES && defined ADJOINT) && defined AVERAGES) || \
3618 ((defined rp_averages && defined tl_ioms) && defined averages) || \
3619 ((defined tl_averages && defined tangent) && defined averages) || \
3620 (defined ad_averages && defined tl_averages) || \
3621 (defined ad_averages && defined rp_averages) || \
3622 (defined rp_averages && defined tl_averages)
3633 220
FORMAT (/,
' CHECKDEFS - cannot activate ',a,
' ',a,
' ',a, &
3634 &
' or',a,/,13x,
'at the same time. Choose one!')
3638#if !defined DISTRIBUTE && defined TS_MPDATA
3651 230
FORMAT (/,
' CHECKDEFS - cannot activate option: ',a, &
3652 & /,13x,
'in serial with partitions or shared-memory...', &
3653 & /,13x,
'Use distributed-memory (MPI) in parallel runs.')
3663 240
FORMAT (/,
' CHECKDEFS - cannot use obsolete option: ',a, &
3664 & /,13x,
'Use instead standard input switch: ',a, &
3665 & /,13x,
'Edit header file or build script!')
3669#if defined TS_PSOURCE && defined SOLVE3D
3676 250
FORMAT (/,
' CHECKDEFS - cannot use obsolete option: ',a, &
3677 & /,13x,
'Use instead standard input switch: ',a, &
3678 & /,13x,
'Edit header file or build script!')
3689 260
FORMAT (/,
' CHECKDEFS - cannot use obsolete option: ',a, &
3690 & /,13x,
'Use instead standard input switch: ',a, &
3691 & /,13x,
'Edit header file or build script!')
3695#if defined SPLINES && defined SOLVE3D
3703 &
'https://www.myroms.org/projects/src/ticket/681'
3704 270
FORMAT (/,
' CHECKDEFS - cannot use obsolete option: ',a, &
3705 & /,13x,
'See following trac ticket for details: ', &
3706 & /,13x,a,/,13x,
'please change header file accordingly.')
3710#if !defined DISTRIBUTE && defined NESTING
3723 280
FORMAT (/,
' CHECKDEFS - cannot activate option: ',a, &
3724 & /,13x,
'in serial with partitions or shared-memory...', &
3725 & /,13x,
'We have bugs in shared-memory that need fixing.',&
3726 & /,13x,
'Use distributed-memory (MPI) in parallel runs.')
3733 IF (
master.and.(iatms.gt.1))
THEN
3735 290
FORMAT (/,
' CHECKDEFS - only one atmosphere model coupling', &
3740#if defined TIDE_GENERATING_FORCES && \
3754 300
FORMAT (/,
' CHECKDEFS - cannot activate option: ',a, &
3755 & /,13x,
'in analytical Cartesian grids applications...', &
3756 & /,13x,
'The grid (lon,lat) is needed to compute the', &
3757 & /,13x,
'equilibrium tide harmonics.')