-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #70 from GEOS-ESM/develop
GitFlow: merge develop into main for release
- Loading branch information
Showing
45 changed files
with
11,163 additions
and
0 deletions.
There are no files selected for viewing
156 changes: 156 additions & 0 deletions
156
MIT_GEOS5PlugMod/configs/c90_llc90_03/code/CPP_EEOPTIONS.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
#ifndef _CPP_EEOPTIONS_H_ | ||
#define _CPP_EEOPTIONS_H_ | ||
|
||
CBOP | ||
C !ROUTINE: CPP_EEOPTIONS.h | ||
C !INTERFACE: | ||
C include "CPP_EEOPTIONS.h" | ||
C | ||
C !DESCRIPTION: | ||
C *==========================================================* | ||
C | CPP\_EEOPTIONS.h | | ||
C *==========================================================* | ||
C | C preprocessor "execution environment" supporting | | ||
C | flags. Use this file to set flags controlling the | | ||
C | execution environment in which a model runs - as opposed | | ||
C | to the dynamical problem the model solves. | | ||
C | Note: Many options are implemented with both compile time| | ||
C | and run-time switches. This allows options to be | | ||
C | removed altogether, made optional at run-time or | | ||
C | to be permanently enabled. This convention helps | | ||
C | with the data-dependence analysis performed by the | | ||
C | adjoint model compiler. This data dependency | | ||
C | analysis can be upset by runtime switches that it | | ||
C | is unable to recoginise as being fixed for the | | ||
C | duration of an integration. | | ||
C | A reasonable way to use these flags is to | | ||
C | set all options as selectable at runtime but then | | ||
C | once an experimental configuration has been | | ||
C | identified, rebuild the code with the appropriate | | ||
C | options set at compile time. | | ||
C *==========================================================* | ||
CEOP | ||
|
||
C In general the following convention applies: | ||
C ALLOW - indicates an feature will be included but it may | ||
C CAN have a run-time flag to allow it to be switched | ||
C on and off. | ||
C If ALLOW or CAN directives are "undef'd" this generally | ||
C means that the feature will not be available i.e. it | ||
C will not be included in the compiled code and so no | ||
C run-time option to use the feature will be available. | ||
C | ||
C ALWAYS - indicates the choice will be fixed at compile time | ||
C so no run-time option will be present | ||
|
||
C=== Macro related options === | ||
C-- Control storage of floating point operands | ||
C On many systems it improves performance only to use | ||
C 8-byte precision for time stepped variables. | ||
C Constant in time terms ( geometric factors etc.. ) | ||
C can use 4-byte precision, reducing memory utilisation and | ||
C boosting performance because of a smaller working set size. | ||
C However, on vector CRAY systems this degrades performance. | ||
C Enable to switch REAL4_IS_SLOW from genmake2 (with LET_RS_BE_REAL4): | ||
#ifdef LET_RS_BE_REAL4 | ||
#undef REAL4_IS_SLOW | ||
#else /* LET_RS_BE_REAL4 */ | ||
#define REAL4_IS_SLOW | ||
#endif /* LET_RS_BE_REAL4 */ | ||
|
||
C-- Control use of "double" precision constants. | ||
C Use D0 where it means REAL*8 but not where it means REAL*16 | ||
#define D0 d0 | ||
|
||
C=== IO related options === | ||
C-- Flag used to indicate whether Fortran formatted write | ||
C and read are threadsafe. On SGI the routines can be thread | ||
C safe, on Sun it is not possible - if you are unsure then | ||
C undef this option. | ||
#undef FMTFTN_IO_THREAD_SAFE | ||
|
||
C-- Flag used to indicate whether Binary write to Local file (i.e., | ||
C a different file for each tile) and read are thread-safe. | ||
#undef LOCBIN_IO_THREAD_SAFE | ||
|
||
C-- Flag to turn off the writing of error message to ioUnit zero | ||
#undef DISABLE_WRITE_TO_UNIT_ZERO | ||
|
||
C-- Alternative formulation of BYTESWAP, faster than | ||
C compiler flag -byteswapio on the Altix. | ||
#undef FAST_BYTESWAP | ||
|
||
C-- Flag to turn on old default of opening scratch files with the | ||
C STATUS='SCRATCH' option. This method, while perfectly FORTRAN-standard, | ||
C caused filename conflicts on some multi-node/multi-processor platforms | ||
C in the past and has been replace by something (hopefully) more robust. | ||
#undef USE_FORTRAN_SCRATCH_FILES | ||
|
||
C-- Flag defined for eeboot_minimal.F, eeset_parms.F and open_copy_data_file.F | ||
C to write STDOUT, STDERR and scratch files from process 0 only. | ||
C WARNING: to use only when absolutely confident that the setup is working | ||
C since any message (error/warning/print) from any proc <> 0 will be lost. | ||
#undef SINGLE_DISK_IO | ||
|
||
C=== MPI, EXCH and GLOBAL_SUM related options === | ||
C-- Flag turns off MPI_SEND ready_to_receive polling in the | ||
C gather_* subroutines to speed up integrations. | ||
#undef DISABLE_MPI_READY_TO_RECEIVE | ||
|
||
C-- Control MPI based parallel processing | ||
CXXX We no longer select the use of MPI via this file (CPP_EEOPTIONS.h) | ||
CXXX To use MPI, use an appropriate genmake2 options file or use | ||
CXXX genmake2 -mpi . | ||
CXXX #undef ALLOW_USE_MPI | ||
|
||
C-- Control use of communication that might overlap computation. | ||
C Under MPI selects/deselects "non-blocking" sends and receives. | ||
#undef ALLOW_ASYNC_COMMUNICATION | ||
#undef ALWAYS_USE_ASYNC_COMMUNICATION | ||
C-- Control use of communication that is atomic to computation. | ||
C Under MPI selects/deselects "blocking" sends and receives. | ||
#define ALLOW_SYNC_COMMUNICATION | ||
#undef ALWAYS_USE_SYNC_COMMUNICATION | ||
|
||
C-- Control XY periodicity in processor to grid mappings | ||
C Note: Model code does not need to know whether a domain is | ||
C periodic because it has overlap regions for every box. | ||
C Model assume that these values have been | ||
C filled in some way. | ||
#undef ALWAYS_PREVENT_X_PERIODICITY | ||
#undef ALWAYS_PREVENT_Y_PERIODICITY | ||
#define CAN_PREVENT_X_PERIODICITY | ||
#define CAN_PREVENT_Y_PERIODICITY | ||
|
||
C-- disconnect tiles (no exchange between tiles, just fill-in edges | ||
C assuming locally periodic subdomain) | ||
#undef DISCONNECTED_TILES | ||
|
||
C-- Always cumulate tile local-sum in the same order by applying MPI allreduce | ||
C to array of tiles ; can get slower with large number of tiles (big set-up) | ||
#define GLOBAL_SUM_ORDER_TILES | ||
|
||
C-- Alternative way of doing global sum without MPI allreduce call | ||
C but instead, explicit MPI send & recv calls. Expected to be slower. | ||
#undef GLOBAL_SUM_SEND_RECV | ||
|
||
C-- Alternative way of doing global sum on a single CPU | ||
C to eliminate tiling-dependent roundoff errors. Note: This is slow. | ||
#undef CG2D_SINGLECPU_SUM | ||
|
||
C=== Other options (to add/remove pieces of code) === | ||
C-- Flag to turn on checking for errors from all threads and procs | ||
C (calling S/R STOP_IF_ERROR) before stopping. | ||
#define USE_ERROR_STOP | ||
|
||
C-- Control use of communication with other component: | ||
C allow to import and export from/to Coupler interface. | ||
#undef COMPONENT_MODULE | ||
|
||
C-- Activate some pieces of code for coupling to GEOS AGCM | ||
#define HACK_FOR_GMAO_CPL | ||
|
||
C=== And define Macros === | ||
#include "CPP_EEMACROS.h" | ||
|
||
#endif /* _CPP_EEOPTIONS_H_ */ |
149 changes: 149 additions & 0 deletions
149
MIT_GEOS5PlugMod/configs/c90_llc90_03/code/CPP_OPTIONS.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
#ifndef CPP_OPTIONS_H | ||
#define CPP_OPTIONS_H | ||
|
||
CBOP | ||
C !ROUTINE: CPP_OPTIONS.h | ||
C !INTERFACE: | ||
C #include "CPP_OPTIONS.h" | ||
|
||
C !DESCRIPTION: | ||
C *==================================================================* | ||
C | main CPP options file for the model: | ||
C | Control which optional features to compile in model/src code. | ||
C *==================================================================* | ||
CEOP | ||
|
||
C CPP flags controlling particular source code features | ||
|
||
C o Turn off capping of precip with snowprecip. This will elimnates one | ||
C forward loop in the adjoint code. | ||
#define Turnoff_capping_precip_by_snowprecip | ||
|
||
C o Use 3d shiTransCoeffT and shiTransCoeffS | ||
#define ALLOW_shiTransCoeff_3d | ||
|
||
C o Shortwave heating as extra term in external_forcing.F | ||
C Note: this should be a run-time option | ||
#define SHORTWAVE_HEATING | ||
|
||
C o Include/exclude Geothermal Heat Flux at the bottom of the ocean | ||
#define ALLOW_GEOTHERMAL_FLUX | ||
|
||
C o Include/exclude phi_hyd calculation code | ||
#define INCLUDE_PHIHYD_CALCULATION_CODE | ||
|
||
C o Include/exclude call to S/R CONVECT | ||
#define INCLUDE_CONVECT_CALL | ||
|
||
|
||
C o Include/exclude call to S/R CALC_DIFFUSIVITY | ||
#define INCLUDE_CALC_DIFFUSIVITY_CALL | ||
|
||
C o Allow full 3D specification of vertical diffusivity | ||
#define ALLOW_3D_DIFFKR | ||
|
||
C o Allow latitudinally varying BryanLewis79 vertical diffusivity | ||
#undef ALLOW_BL79_LAT_VARY | ||
|
||
C o Include/exclude Implicit vertical advection code | ||
#define INCLUDE_IMPLVERTADV_CODE | ||
|
||
C o Include/exclude AdamsBashforth-3rd-Order code | ||
#undef ALLOW_ADAMSBASHFORTH_3 | ||
|
||
C o Include/exclude nonHydrostatic code | ||
#undef ALLOW_NONHYDROSTATIC | ||
#undef ALLOW_QHYD_STAGGER_TS | ||
|
||
C o Allow to account for heating due to friction (and momentum dissipation) | ||
#undef ALLOW_FRICTION_HEATING | ||
|
||
C o Allow mass source or sink of Fluid in the interior | ||
C (3-D generalisation of oceanic real-fresh water flux) | ||
#define ALLOW_ADDFLUID | ||
|
||
C o Include pressure loading code | ||
#define ATMOSPHERIC_LOADING | ||
#ifdef ATMOSPHERIC_LOADING | ||
#define ALLOW_IB_CORR | ||
#endif | ||
|
||
C o Calculate Phi-Hydrostatic at r-lower boundary during initialization. | ||
C Needed for obp cost. Otherwise, the first record of m_bp is wrong, | ||
C because phiHydLow is zero. | ||
#define CALC_PHI_RLOW_INI | ||
|
||
C o exclude/allow external forcing-fields load | ||
C this allows to read & do simple linear time interpolation of oceanic | ||
C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. | ||
#undef EXCLUDE_FFIELDS_LOAD | ||
|
||
C o Include/exclude balancing surface forcing fluxes code | ||
#undef ALLOW_BALANCE_FLUXES | ||
|
||
C o Include/exclude balancing surface forcing relaxation code | ||
#undef ALLOW_BALANCE_RELAX | ||
|
||
C o Include/exclude GM-like eddy stress in momentum code | ||
#undef ALLOW_EDDYPSI | ||
|
||
C o Use "Exact Convervation" of fluid in Free-Surface formulation | ||
C so that d/dt(eta) is exactly equal to - Div.Transport | ||
#define EXACT_CONSERV | ||
|
||
C o Allow the use of Non-Linear Free-Surface formulation | ||
C this implies that surface thickness (hFactors) vary with time | ||
#define NONLIN_FRSURF | ||
# undef DISABLE_RSTAR_CODE | ||
#undef DISABLE_SIGMA_CODE | ||
|
||
C o Include/exclude code for single reduction Conjugate-Gradient solver | ||
#undef ALLOW_SRCG | ||
|
||
C o Choices for implicit solver routines solve_*diagonal.F | ||
C The following has low memory footprint, but not suitable for AD | ||
#undef SOLVE_DIAGONAL_LOWMEMORY | ||
C The following one suitable for AD but does not vectorize | ||
#define SOLVE_DIAGONAL_KINNER | ||
|
||
C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when | ||
C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) | ||
C *only for use on a lat-lon grid* | ||
C Setting this flag here affects both momentum and tracer equation unless | ||
C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). | ||
C The definition of the flag is commented to avoid interference with | ||
C such other header files. | ||
C The preferred method is specifying a value for viscAhGrid or viscA4Grid | ||
C in data which is then automatically scaled by the grid size; | ||
C the old method of specifying viscAh/viscA4 and this flag is provided | ||
C for completeness only (and for use with the adjoint). | ||
C#define ISOTROPIC_COS_SCALING | ||
|
||
C o This flag selects the form of COSINE(lat) scaling of bi-harmonic term. | ||
C *only for use on a lat-lon grid* | ||
C Has no effect if ISOTROPIC_COS_SCALING is undefined. | ||
C Has no effect on vector invariant momentum equations. | ||
C Setting this flag here affects both momentum and tracer equation unless | ||
C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). | ||
C The definition of the flag is commented to avoid interference with | ||
C such other header files. | ||
C#define COSINEMETH_III | ||
|
||
C o Use "OLD" UV discretisation near boundaries (*not* recommended) | ||
C Note - only works with pkg/mom_fluxform and "no_slip_sides=.FALSE." | ||
C because the old code did not have no-slip BCs | ||
#undef OLD_ADV_BCS | ||
|
||
C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F | ||
C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO | ||
C is still useful with, e.g., single-domain curvilinear configurations. | ||
#undef OLD_GRID_IO | ||
|
||
C o Use old EXTERNAL_FORCING_U,V,T,S subroutines (for backward compatibility) | ||
#undef USE_OLD_EXTERNAL_FORCING | ||
|
||
C o Execution environment support options | ||
#include "CPP_EEOPTIONS.h" | ||
|
||
#endif /* CPP_OPTIONS_H */ | ||
|
32 changes: 32 additions & 0 deletions
32
MIT_GEOS5PlugMod/configs/c90_llc90_03/code/DIAGNOSTICS_SIZE.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
C $Header: /u/gcmpack/MITgcm_contrib/ecco_utils/ecco_v4_release3_devel/code/DIAGNOSTICS_SIZE.h,v 1.1 2017/05/04 17:46:37 ou.wang Exp $ | ||
C $Name: $ | ||
|
||
|
||
C Diagnostics Array Dimension | ||
C --------------------------- | ||
C ndiagMax :: maximum total number of available diagnostics | ||
C numlists :: maximum number of diagnostics list (in data.diagnostics) | ||
C numperlist :: maximum number of active diagnostics per list (data.diagnostics) | ||
C numLevels :: maximum number of levels to write (data.diagnostics) | ||
C numDiags :: maximum size of the storage array for active 2D/3D diagnostics | ||
C nRegions :: maximum number of regions (statistics-diagnostics) | ||
C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) | ||
C nStats :: maximum number of statistics (e.g.: aver,min,max ...) | ||
C diagSt_size:: maximum size of the storage array for statistics-diagnostics | ||
C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, | ||
C and "diagSt_size" (statistics-diags) since values here are deliberately small. | ||
INTEGER ndiagMax | ||
INTEGER numlists, numperlist, numLevels | ||
INTEGER numDiags | ||
INTEGER nRegions, sizRegMsk, nStats | ||
INTEGER diagSt_size | ||
PARAMETER( ndiagMax = 700 ) | ||
PARAMETER( numlists = 300, numperlist = 30, numLevels=5*Nr ) | ||
PARAMETER( numDiags = 4000 ) | ||
PARAMETER( nRegions = 20 , sizRegMsk = 1 , nStats = 4 ) | ||
PARAMETER( diagSt_size = 50*Nr ) | ||
|
||
|
||
CEH3 ;;; Local Variables: *** | ||
CEH3 ;;; mode:fortran *** | ||
CEH3 ;;; End: *** |
31 changes: 31 additions & 0 deletions
31
MIT_GEOS5PlugMod/configs/c90_llc90_03/code/GGL90_OPTIONS.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
C *=============================================================* | ||
C | GGL90_OPTIONS.h | ||
C | o CPP options file for GGL90 package. | ||
C *=============================================================* | ||
C | Use this file for selecting options within the GGL90 | ||
C | package. | ||
C *=============================================================* | ||
|
||
#ifndef GGL90_OPTIONS_H | ||
#define GGL90_OPTIONS_H | ||
#include "PACKAGES_CONFIG.h" | ||
#include "CPP_OPTIONS.h" | ||
|
||
#ifdef ALLOW_GGL90 | ||
C Package-specific Options & Macros go here | ||
|
||
C Enable horizontal diffusion of TKE. | ||
#undef ALLOW_GGL90_HORIZDIFF | ||
|
||
C Use horizontal averaging for viscosity and diffusivity as | ||
C originally implemented in OPA. | ||
#define ALLOW_GGL90_SMOOTH | ||
|
||
C allow IDEMIX model | ||
#undef ALLOW_GGL90_IDEMIX | ||
|
||
C include Langmuir circulation parameterization | ||
#undef ALLOW_GGL90_LANGMUIR | ||
|
||
#endif /* ALLOW_GGL90 */ | ||
#endif /* GGL90_OPTIONS_H */ |
Oops, something went wrong.