Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions iceplume_test/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Create a verification test for pkg/iceplume,
a simplified version of Cowton et al., JGR 2015
2 changes: 2 additions & 0 deletions iceplume_test/build/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*
!/genmake_local
189 changes: 189 additions & 0 deletions iceplume_test/code/CPP_OPTIONS.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
#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-- Forcing code options:

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
#undef ALLOW_GEOTHERMAL_FLUX

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

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 checking for negative salinity
#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES

C-- Options to discard parts of the main code:

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 phi_hyd calculation code
#define INCLUDE_PHIHYD_CALCULATION_CODE

C o Include/exclude sound speed calculation code
C o (Note that this is a diagnostic from Del Grasso algorithm, not derived
C from EOS)
#undef INCLUDE_SOUNDSPEED_CALC_CODE

C-- Vertical mixing code options:

C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT
#define INCLUDE_CONVECT_CALL

C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by
C default because it is an unpopular historical left-over
#undef INCLUDE_CONVECT_INI_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
#undef ALLOW_3D_DIFFKR

C o Allow latitudinally varying BryanLewis79 vertical diffusivity
#undef ALLOW_BL79_LAT_VARY

C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing
C this allows to account for partial-cell in vertical viscosity and diffusion,
C either from grid-spacing reduction effect or as artificially enhanced mixing
C near surface & bottom for too thin grid-cell
#define EXCLUDE_PCELL_MIX_CODE

C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity
C for tracers (after scaling by constant Prandtl number)
#undef ALLOW_SMAG_3D_DIFFUSIVITY

C-- Time-stepping code options:

C o Include/exclude combined Surf.Pressure and Drag Implicit solver code
#undef ALLOW_SOLVE4_PS_AND_DRAG

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 Quasi-Hydrostatic Stagger Time-step AdamsBashforth code
#undef ALLOW_QHYD_STAGGER_TS

C-- Model formulation options:

C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation
C that ensures 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 grid-cell thickness (hFactors) varies with time
#define NONLIN_FRSURF
C o Disable code for rStar coordinate and/or code for Sigma coordinate
#undef DISABLE_RSTAR_CODE
#define DISABLE_SIGMA_CODE

C o Include/exclude nonHydrostatic code
#define ALLOW_NONHYDROSTATIC

C o Include/exclude GM-like eddy stress in momentum code
#undef ALLOW_EDDYPSI

C-- Algorithm options:

C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver
#undef ALLOW_CG2D_NSA

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
#undef SOLVE_DIAGONAL_KINNER

C-- Retired code options:

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-- Other option files:

C o Execution environment support options
#include "CPP_EEOPTIONS.h"

C o Include/exclude single header file containing multiple packages options
C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where
C each of the above pkg get its own options from its specific option file.
C Although this method, inherited from ECCO setup, has been traditionally
C used for all adjoint built, work is in progress to allow to use the
C standard method also for adjoint built.
c#ifdef PACKAGES_CONFIG_H
c# include "ECCO_CPPOPTIONS.h"
c#endif

#endif /* CPP_OPTIONS_H */
32 changes: 32 additions & 0 deletions iceplume_test/code/DIAGNOSTICS_SIZE.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
C $Header: /u/gcmpack/MITgcm_contrib/icefront/2D_example/code/DIAGNOSTICS_SIZE.h,v 1.1 2012/03/19 23:43:54 yunx 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 = 70, numperlist = 30, numLevels=10*Nr )
PARAMETER( numDiags = 3000 )
PARAMETER( nRegions = 20 , sizRegMsk = 1 , nStats = 4 )
PARAMETER( diagSt_size = 50*Nr )


CEH3 ;;; Local Variables: ***
CEH3 ;;; mode:fortran ***
CEH3 ;;; End: ***
Loading