Parent Directory
|
Revision Log
|
Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint65: | (view) (download) (annotate) |
Sticky Tag: |
remove "recip_Cp" from common block ; add thetaConst (for pStar)
add input files for 2-D additional Western and Southern cell-edge wall (e.g., to add "thin-wall" where it is =1)
remove parameter "useOldFreezing" from PARAMS.h and push it to the retired list of parameters
move FCORI_MACROS.h from PARAMS(_MACROS).h to GRID_MACROS.h (left from 8 yrs ago modif when Coriolis arrays were moved from PARAMS.h to GRID.h)
add run-time parameters for isotropic 3-D Smagorinsky (Smag3D)
add entry point for new pkg Atm_Phys
remove unused forcing field "dQdT" and associated parameter "dQdTFile"
add run-time parameter to select CG2D solver minimum-residual solution (in case of a poor convergence)
- allow to read-in time-constant addMass field from file (addMassFile); - heating due to friction (and Kinetic Energy dissipation).
add logical flag, true if using Cubed-Sphere Exch with CS-corners inside the domain
create new header file "AUTODIFF_PARAMS.h" for pkg/autodiff parameters which are now read from new parameter file "data.autodiff" (inAdExact previously in "data", use{KPP/GMRedi/SEAICE}inAdMode previously in data.pkg)
- introduce ALLOW_BALANCE_RELAX which allow the removal of the global mean of relaxation terms by setting balanceThetaClimRelax and balanceSaltClimRelax - disable balanceEmPmR and balanceQnet in the case when useSeaice. This case is now treated appropriately in seaice_growth.F - do_oceanic_physics.F : include EXF_OPTIONS.h to avoid recomputations in the ALLOW_ECCO_EVOLUTION case.
- add run-time switch usePROFILES.
add coeffs (1-D array) for vertical biharmonic diffusion on T & S.
add an internal flag, true when free-surface is always and everywhere at level k=1
adding pkg/frazil - see frazil_description.tex for details
Breaking three rules (at least): 1. No check-ins Friday after 5:30pm 2. No check-ins after two beers 3. Forgot the third one
- remove recip_rhoNil (not used, and no reason to use it)
move delX,delY to new header file (SET_GRID.h) and adjust length to 1rst face dimensions.
new run-time switch "doResetHFactors" (default=false) to reset (or not) thickness factors (hFac*) at the beginning of forward_step.F.
new internal flag "calc_wVelocity" ti turn off wVel calculation
o adding package bbl (Bottom Boundary Layer) description in MITgcm/pkg/bbl/bbl_description.tex example/test experiment in MITgcm_contrib/bbl
add parameter "printResidualFreq" for printing residual in CG iterations
move debugMode from PARAMS.h to EEPARAMS.h
Add allowInteriorFreezing option to check for water below freezing point at depth and bring the negative heat anomaly to the surface level. Modified Files: doc/tag-index, model/inc/PARAMS.h, model/src/do_oceanic_phys.F, ini_parms.F, set_defaults.F, thermodynamics.F Added File: model/src/freeze_interior.F
Add parameters that allow to turn of parts of the adjoint code at run time. For now, there are only useKPPinAdMode, useGMrediInAdMode, and useSEAICEinAdMode. These parameters are set in data.pkg. This is the lazy coward's version of doing this, but is still useful for debugging. In order to do it right, everything needs to be moved to pkg/autodiff.
fix typo in comments
add new param to scale curvilinear grid distance and area when using a different rSphere.
add flag "printDomain " to control printing of domain fields (bathy, hFac ...)
add parameter adTapeDir
add description of debugMode (+update debugLevel): debugMode :: controls printing of debug messages (sequence of S/R calls). debugLevel :: controls printing of algorithm intermediate results and stats.
- remove useConstantF, useBetaPlaneF, useSphereF and replace them with integer parameter "selectCoriMap" (=0,1,2). - add parameter "fPrime" for constant second Coriolis coeff (default=0).
move "useOASIS" from PARAMS.h to EEPARAMS.h and read it from "eedata"
Update new var. from v4.
add hooks for new packages OASIS, the package will follow (hooks exclude the seaice pkg for now)
first check-in of sigma (and hybrid-sigma) coordinate code
move useSingleCpuIO from PARAMS.h to EEPARAMS.h cvs: ----------------------------------------------------------------------
Adding parameters to specify temperature and salinity of addMass array separately from temp_EvPrRn and salt_EvPrRn
ALLOW_3D_VISCAH/ALLOW_3D_VISCA4 => 3D specification of Viscosity => addition to the viscosity field as computed by others schemes
Adding the shell of, and the hooks to, a new package that will be used to model melting and freezing of vertical glacier ice fronts: Modified Files: doc/tag-index model/inc/PARAMS.h model/src/do_oceanic_phys.F model/src/external_forcing.F model/src/packages_boot.F model/src/packages_check.F model/src/packages_init_fixed.F model/src/packages_init_variables.F model/src/packages_readparms.F Added Files: pkg/icefront/ICEFRONT.h pkg/icefront/ICEFRONT_OPTIONS.h pkg/icefront/icefront_check.F pkg/icefront/icefront_description.tex pkg/icefront/icefront_diagnostics_init.F pkg/icefront/icefront_init_fixed.F pkg/icefront/icefront_init_varia.F pkg/icefront/icefront_readparms.F pkg/icefront/icefront_tendency_apply.F pkg/icefront/icefront_thermodynamics.F
add parameter for Non-Hydrostatic free-surface option (in development)
new parameter "implicitNHPress" (similar to implicSurfPress but for Non-Hydrostatic pressure gradient)
add Christopher Wolfe's implemetation of the single reduction cg2d (d'Azevedo, Eijkhout, and Romine, 1999) with CPP-flag ALLOW_SRCG and runtime flag useSRCGSolver
add epsAB_CD, useSMOOTH ; remove "delT"
add run time params to check and mask initial T & S
allow to specify a vertical profile of vertical viscosity
added useLayers to PARAMS.h
rename thetaMin,phiMin -> xgOrigin,ygOrigin (temporary backward compatibility in ini_parms.F, until next checkpoint)
Add smoothing parameter for mixed-layer diagnostics
dRhoSmall (for mixed-layer diagnostics) now a run-time paramater
disentangle parameters: retire shelfIceFile in data/PARM05 and substitute with SHELFICEtopoFile in data.shelfice, update data files in verification experiment
add reference vertical profile for density (for now, only used for Anelastic)
change my mind along the way: integer selector "selectAddFluid" is better than logical run-time flag "useAddFluid".
add run-time flag "useAddFluid".
new pkg "down_slope" (+ re-order package list by function-group)
From Nicolas: add cheapaml pkg
moved fixed parameters from PARAMS.h to EEPARAMS.h
o bridging the gap between eddy stress and GM. -> eddyTau is replaced with eddyPsi (eddyTau = f x rho0 x eddyPsi) along with a change in CPP option (now ALLOW_EDDYPSI). -> when using GM w/ GM_AdvForm: The total eddy streamfunction (Psi = eddyPsi + K x Slope) is applied either in the tracer Eq. or in momentum Eq. depending on data.gmredi (intro. GM_InMomAsStress). -> ALLOW_EDDYPSI_CONTROL for estimation purpose. The key modifications are in model/src/taueddy_external_forcing.F pkg/gmredi/gmredi_calc_*F pkg/gmredi/gmredi_*transport.F
fix tempIsActiveTr, saltIsActiveTr new params
Sort list of parameters (for now, only Logical Params) by groups and in the same order (description + common block list + declaration); + remove: doTr1ClimRelax, tauTr1ClimRelax, lambdaTr1ClimRelax + add : tempIsActiveTr, saltIsActiveTr
new parameter "selectVortScheme" to select which scheme to use for vorticty-term (in Vector Inv.); remove "SadournyCoriolis" flag.
add a flag writePickupAtEnd (default=true) to be able to suppress writing a pickup at the last timestep
add parameter rotateGrid and Euler angles EulerPhi/Theta/Psi. For usingSphericalGrid, this allows to define the rotated grid coordinates via phiMin/thetaMin/dxSpacing/dySpacing, etc., but then re-compute the geographical coordinates according to the inverse of the rotation defined by the Euler angles, so that Coriolis parameter and online-interpolation by exf works with the geographical coordinates on XC/YC/XG/YG. The three Euler angles PhiEuler, ThetaEuler, and PsiEuler define the rotation about the original z-axis (of an sphere centered cartesian grid), the new x-axis, and the new z-axis, respectively. Naturally, this feature does not work with all packages, so the some combinations are prohibited in config_summary (flt, flt_zonal, ecco, profiles), because there the coordinates are assumed to be regular spherical grid coordinates.
add "monitorSelect" to reduce number of monitored fields (default unchanged)
Added following comment to FFIELDS.h and to PARAMS.h C NOTE: for backward compatibility EmPmRfile is specified in C m/s when using external_fields_load.F. It is converted C to kg/m2/s by multiplying by rhoConstFresh.
added check, readparms, and more diagnostice to pkg/salt_plume also changed package flag from useSaltPlume to useSALT_PLUME
added pkg/salt_plume by gathering code, which were previously spread around various files in model/inc and model/src results remain numerically identical to before, as a first step towards adding more options, etc., to this package
Fix a bug reported by An Nguyen: calc_salt_plume_depth requires that sigmaR be available. Bug fixed by adding flag "usePLUME", which is also a first step for addition of pkg/plume
add new run-time parameter: "pickupStrictlyMatch", when reading pickup, check and stop if pickup-file do not stricly match; default=T.
prepare for "clever pickup" implementation: new header file: RESTART.h for internal parameters related to restart process (move parameters from PARAMS.h & GAD.h to new header file RESTART.h)
finishing EmPmR unit changes: replace convertEmP2rUnit by mass2rUnit
use mass2rUnit & rUnit2mass as units conversion factor (for surface forcing) and remove horiVertRatio (& recip_horiVertRatio);
add temperature criteria (<0) for mixed-layer diagnostic
latitudinal dependence of Bryan and Lewis, 1979 fixed and reworked as per JM suggestions
o Added capability for latitudinal dependence of Bryan and Lewis, 1979 vertical diffusivity, similar to that in MOM4; vertical diffusivity is specified using diffKrBL79* diffKrBLEQ* and KbryanLewisLatTransition
Modified capability for 3D specification of background vertical diffusion coefficient as per JM requests. 3D diffusion is now specified by (i) #define ALLOW_3D_DIFFKR in CPP_OPTIONS.h and (ii) specifying file diffKrFile in runtime "data" file that contains the 3D vertical diffusivity coefficients.
o Added capability for 3D specification of vertical diffusion coefficient. This is done by specifying files diffKr3dSfile and diffKr3dTfile that contain the 3D vertical diffusivity coefficients. Modified files: doc/tag-index model/inc/PARAMS.h model/src/calc_3d_diffusivity.F, calc_diffusivity.F, ini_mixing.F, ini_parms.F, and set_defaults.F Added missing file verification/tutorial_global_oce_latlon/run/.cvsignore
add units conversion factor between rVel and vertical speed: rVel2wUnit & wUnit2rVel (used for Non-Hydrostatic in pressure).
add flag "useGAD" (turned on from temp,saltStepping & usePtracers)
usePickupBeforeC35 no longer supported ; remove this option.
initial check in: correction of tracer source/sink due to Linear Free surface
make "the_run_name" shorter (default: 100 characters)
add "deepAtmosphere" flag.
allow to read vertical vectors: tRef,sRef,delR & delRc from (binary) file ; + start adding anelastic-code parameters
add switch for atm2d pkg
add the regrid package hooks
add flag "use3dCoriolis" for Coriolis term in omega.cos_Phi (3-D Cor.)
Adding template package MYPACKAGE to serve as reference. Does nothing.
Pass the variable viscosities on to calc_gw.
Modifications for bottom topography control o replace hFacC by _hFacC at various places o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL o add non-self-adjoint cg2d_nsa o update autodiff support routines o re-initialise hfac after ctrl_depth_ini o works for 5x5 box, doesnt work for global_ocean.90x40x15
fix units of bottom-drag coeff (comments were wrong).
move calendarDumps from "data" to "data.cal" and clean-up the code with a simple call to pkg/cal S/R: CAL_TIME2WRITE (the former piece of code started to spread over newly checked-in S/R) add useEXF & useCAL flags (for now, set in hard-coded way)
remove internal parameter "usingSphericalPolarMTerms".
add on/off flag for package OFFLINE
change forcing_In_AB to affects both T,S forcing and Momentum forcing (allow to differentiate between forcing components using new integer flags: momForcingOutAB=1/0 & tracForcingOutAB=1/0) and add new flag to put Dissipation tendency out of Adams-Bashforth.
move tauThetaClimRelax3Dim & tauSaltClimRelax3Dim from common block to "retired parameter" list (in ini_parms.F)
add internal parameter "use3Dsolver".
o add run time parameters for balancing surface fluxes EmPmR and Qnet
o add 2 new parameter relevant for the shelfice package
make embed_files act more like a normal package per JMC's suggestions
Adding unfinished 3-dim relaxation code.
add new parameter (implicitIntGravWave) even if the code is not yet ready; (hard to maintain a different version of this file during testing phase)
o add useRBCS for new package rbcs
store geopotential profile (computed from tRef) at center & interface level.
new parameter: doAB_onGtGs to (always) apply Adams.Bashforth on tracer tendencies (rather than on tracers)
new parameter: sideDragFactor to enable half-slip-side BC.
add KEscheme selector
Allow use of old scheme for viscous lengths with useAreaViscLength=.TRUE. Default: .FALSE.
Adding clean version of mom_calc_visc and viscAhRemax and viscA4Remax params.
Parameter and config_summary changes for mom_calc_visc.F
"dumpInitAndLast" replaces "nodumps" (& partly MINIMAL_TAVE_OUTPUT)
Add new flag in PARM03 namelist called nodumps - true to turn off all dumps, indep of freq
reading of delXfile & delYfile moved from ini_parms.F to ini_grid.F
add "horizGridFile" for curvilinear-grid input file
"usingPCoords" replaces "groundAtK1" (<- removed)
add flag for momentum vertical advection (upwindShear)
New package for controlling termination of the model based on the wall clock: This is handy for those of us who keep losing 5000 cpuhours because the model took 5 minutes longer than it did the day before. To use: In package.conf, add runclock In data.pkg, add useRunClock=.TRUE. Add data.runclock to read &RUNCLOCK RC_maxtime_hr=2, RC_maxtime_mi=30, RC_maxtime_sc=0, & The package also write the delta Wall Clock between each model step. Who can explain a 30% slow down after 60 iterations? Who even knew about it? Now you can find out lots of dark secrets about the EM EYE TEE GEE SEE EM...
Added run-time parameters nh_Am2 which scales the non-hydrostatic terms and changes internal scales (i.e. allows convection at different Rayleigh numbers).
Added flag useMATRIX for pkg/matrix
o fix mnc flags in pkg/seaice so that they are "owned" by seaice, not mnc -- this mistake was found by JMC and is now corrected
add parameters for AB-3 ; remove readPickupWithTracer & writePickupWithTracer
Added flag useAnisotropicViscAGridMax to turn on and off (off by default) Alistair's latest length scale computation for horizontal viscosity. It is used only for maximum viscosity calculations. Alistair recommends a value of viscA*GridMax=.25
Move new lambda fields to FFIELDS.h, and move again fCori to GRID.h.
Make lambda[Theta,Salt]ClimRelax spatially varying.
add "baseTime" parameter (= time corresponding to iteration zero); move Coriolis arrays from PARAMS.h to GRID.h
o mnc-ifying the seaice package
Add viscC4leithD to common block.
Added Harmonic Smagorinsky Viscosity. May not work with strongly anisotropic grids.
Expanded Leith viscosity to follow Ahgridmin and Ahgridmax, and select between 'full' and approximate form. Also added leith-like viscosity that is proportional to grad(div.v_h).
Adding eddy stress controls a la Ferreira et al.
o parameter calendarDumps: when set, approximate months (30-31 days) and years (360-372 days) for parameters chkPtFreq, pChkPtFreq, taveFreq, SEAICE_taveFreq, KPP_taveFreq, and freq in pkg/diagnostics are converted to exact calendar months and years. Requires pkg/cal.
Add flag(s) inAdExact to help D. grow seaice in the Sahara.
added ability to set inner and outer rotating tank temperatures
add saltFlux(+File) forcing capability with periodicExternalForcing
add horizontal bi-harmonic viscosity of vertical viscosity - used only in non-hydrostatic code - add a parameter viscA4W that defaults to viscA4 if unset, otherwise usefull if you want to use the Leith viscosity for horizontal velocity an biharmonic viscosity in the vertical.
depth convergence accelerator: replace deltaTtracer by dTtracerLev(k)
GCHEM: introduced a useGCHEM runtime flag
remove some obsolete params
o added viscA4GridMin and viscA4GridMax for more control on biharmonic viscosity
add separated viscosity for Divergence and Vorticity
set flags: fluidIsAir, fluidIsWater, usingPCoords, usingZCoords according to buoyancyRelation
o remove all the *_ioinc flags and replace them with the single global outputTypesInclusive flag
allow to set a vertical profile of vertical diffusivity for T & S
o do package initialization earlier in the boot-up sequence - make MNC follow the package guidelines
o I am *sick* of moving these variables around. But Jean-Michel has all but threatened a hissy fit if they aren't removed from PARAMS.h. So now here they are *back* in MNC_PARAMS.h where they were just a few days ago.
o move useMNC and related runtime switches to PARAMS.h
o non-hydrostatic code: - add new parameter viscAhW, replaces viscAh in calc_gw, defaults to viscAh. Useful when viscAh=0 in non-hydrostatic simulations
o remove all tr1-related code (ALLOW_PASSIVE_TRACER) (adjoint stuff still has some tr1 names, but all use ptracer arrays)
o prepare addition of new packages GGL90 and OPPS - new parameters useGGL90 and useOPPS - include call to the new routines at the (hopefully) right places
o fix name error: "monitor_mdsio" --> "monitor_stdio" - add "monitor_grid" output for ini_cori.F,ini_parms.F
o overhaul of IO so that we now have flags for MDSIO and/or MNC - all verification tests compile and run with linux_ia32_g77 - defaults are compatible with current input files--nothing should change if you were not previously using MNC - MNC output has been added in numerous places (eg. timeave) but there are still a few writes not yet do-able with MNC (this is in progress) - flags now allow for either/or/both use of MDSIO and MNC and documentation will soon follow - numerous small formatting cleanups for ProTeX
o make the mon_iotype setup in monitor the poster child for MNC/MDSIO flag handling
o add header info to both the NetCDF output and the model stdout - requested by Steph
o add new parameter for two new packages - pp81 (Packanowski and Philander, 1981), Richardson number and stratification dependent mixing - my82 (Mellor and Yamada, 1982) level 2 turbulence closure scheme
change Qnet to always be the net heat flux, (+upward).
Only update cg2d preconditioner every "cg2dPreCondFreq" iter. (default=1)
needs valid U,V in halo region for multi-Dim-Advec; do Exch(U,V) if staggerTimeStep
re-write staggerTimeStep: change pickup file ; (flag usePickupBeforeC54 to start from old pickup)
put tCyl in less offending place
T & S: separate Vert.Advec.Scheme from horizontal Advec.Scheme
merged cylindrical coord configuration and rotating_tank exp
Added new flag to fix aim.5l_cs - useJamartMomAdv distingiushes the non-linear terms from linear Coriolis when using Jamart wet points
Added vertical diffusivity profile (T/S) due to Bryan and Lewis, 1979. New parameters: diffKrBL79surf - surface diffusivity diffKrBL79deep - deep diffusivity diffKrBL79Ho - turning depth for arctan function diffKrBL79scl - depth scale for arctan function This diffusivity is added to all other diffusivities. The defaults are set so as to give zero diffusivity.
Added Sadourny discretization of Coriolis in V.I. mode - moved some PARAMETERS from mom_*_coriolis.F to PARAMS.h - re-enabled use of omega3 in mom_vecinv.F
Added variable viscosity for the vector invariant equations based on Leith, 1968, Phys. Fluids (10) 1409-1416 - the use of the variable viscosty in the no-slip boundary conditions has not been implemented (but should be) - new parameters viscC2leith and viscC4leith are non-dimensional - I decided to modulate the variable viscosuty with the same viscAhMax and viscA4max; ideally we should have another maximum based on dx^2/dt etc.
Commiting new energy balance model to repository o package is pkg/ebm o verif. is verification/global_ocean_ebm o references are in ebm_driver.F Will need long integration testing.
o adding MNC calls and flags for reading/writing checkpoints
o fix a serious memory-wasting bug in MNC_GRID_INIT_ALL() o give the "monitor" package the ability to write to NetCDF files - requested by JMC - tested and works but needs more run-time options
o per AJA & JMC request, re-write the MNC directory creation code: - directory names (strings) are passed, encoded using integers - everything is run-time optional with flags in "data.mnc" - tested and works but would benefit from some cleanup
o read the MNC run-time params at the eeboot stage - mnc will be gracefully disabled if the data.mnc file does not exist o add look-up tables for AJA's unlimited-dim interface
o add "useMNC" flag for run-time selection of MNC
adding parameter adjDumpFreq
Added new grid-dependent viscosity and biharmonic dissipation terms: o new parameters = viscAhGrid, viscAhMax, viscA4Grid and viscA4Max o new stuff in mom_vi_hdissip.F which is bound to break the adjoint!!!! This has been "verified" against old experiments **BUT** there is a known issue involving exch2 - results are dependent on using exch1 or exch2 and we don't know which is right (if either).
Initial check in of gridalt and fizhi (fake!) package routines
add run-time parameter & CPP_OPTION for implicit vertical advection
o added some infrastructure to call fizhi and gridalt routines o added package dependencies for fizhi
New Therm.Sea-Ice pkg: useThSIce replace useThermSeaIce.
add logical flag "useOldFreezing" to use the old version of FREEZE
delz,delp viscAz,viscAp ... no longer in a common bloc
* reverse gravitySign back to "logical" value: +1 when R increases downward * add a parameter to apply surface relaxation only in a latitude band
specific volume (atmospheric geopotential) includes water vapor effect
Retain TAMC compatibility: - avoid "_d" constructs in PARAMETER declarations - avoid interrupting lines by comment lines
o introducing integer flag debugLevel o introducing pathname variable mdsioLocalDir for mdsio
add logical flag for land package ; add celsius2K (=273.16) and remove Lamba_theta (not used)
New variable in PARM03: pickupSuff is a string that can be set to indicate the suffix on pickup files. This allows us to avoid renaming the temporary pickup files.
new flag "useCDscheme" (default=F);
set the Earth rotation either directly (omega) or from the rotation period
o compute locally the pressure for use in EOS : UNESCO, JMD95P or MDJWF o store total Potential in totPhyHyd for diagnostic (DYNVARS.h) o fix restart and overlap Pb when using Z-coord and EOS funct. of P
Modified File model/inc/PARAMS.h
Merging from release1_p12: o Modifications for using pkg/exf with pkg/seaice - improved description of the various forcing configurations - added basic radiation bulk formulae to pkg/exf - units/sign fix for evap computation in exf_getffields.F - updated verification/global_with_exf/results/output.txt o Added pkg/sbo for computing IERS Special Bureau for the Oceans (SBO) core products, including oceanic mass, center-of-mass, angular, and bottom pressure (see pkg/sbo/README.sbo). o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F to avoid negative values in shallow regions. - updated verification/natl_box/results/output.txt - updated verification/lab_sea/results/output.txt o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F o Added useSingleCpuIO option (see PARAMS.h). o Updated useSingleCpuIO option in mdsio_writefield.F to work with multi-field files, e.g., for single-file pickup. o pkg/seaice: - bug fix in growth.F: QNET for no shortwave case - added HeffFile for specifying initial sea-ice thickness - changed SEAICE_EXTERNAL_FLUXES wind stress implementation o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf, kpp_transport_t.F, forward_step.F, and the_main_loop.F o pkg/seaice: - adjoint-friendly modifications - added a SEAICE_WRITE_PICKUP at end of the_model_main.F
first step in r* implementation: add param "select_rStar".
allows a more accurate definition of Ro_Surf (selectFindRoSurf=1) when using P-coordinate; only implemented for atmospheric config.
Two packages: bulk_force (Bulk forcing) and therm_seaice (thermodynamic_seaice) - adopted from LANL CICE.v2.0.2 Earlier integration from Stephaine Dutkiewicz and Patrick Heimbach. Two ifdef statements for compile time, ALLOW_THERM_SEAICE and ALLOW_BULK_FORCE Two switches in data.pkg to turn on at run-time: cat data.pkg # Packages &PACKAGES useBulkForce=.TRUE., useThermSeaIce=.TRUE., & WARNING: useSEAICE and useThermSEAICE are mutually exclusive. The bulk package requires an additional parameter file with two namelists, data.ice and data.blk. c ADAPTED FROM: c LANL CICE.v2.0.2 c----------------------------------------------------------------------- c.. thermodynamics (vertical physics) based on M. Winton 3-layer model c.. See Bitz, C. M. and W. H. Lipscomb, 1999: "An energy-conserving c.. thermodynamic sea ice model for climate study." J. Geophys. c.. Res., 104, 15669 - 15677. c.. Winton, M., 1999: "A reformulated three-layer sea ice model." c.. Submitted to J. Atmos. Ocean. Technol. c.. authors Elizabeth C. Hunke and William Lipscomb c.. Fluid Dynamics Group, Los Alamos National Laboratory c-----------------------------------------------------------------------
Two packages: bulk_forcing (Bulk forcing) and thermodynamic_seaice (adapted from LANL CICE.v2.0.2) Earlier integration from Stephaine Dutkiewicz and Patrick Heimbach. Two ifdef statements for compile time, ALLOW_TSEAICE and ALLOW_BULKFORMULA Two switches in data.pkg to turn on at run-time: cat data.pkg # Packages &PACKAGES useBulkf=.TRUE., useTSeaIce=.TRUE., & The bulk package requires an additional parameter file with two namelists. cat data.blk &BULKF_PARM01 RainFile= 'ncep_precip_m_cubed.bin', SolarFile= 'ncep_downsolr_cubed.bin', AirTempFile= 'ncep_tair_cubed.bin', AirhumidityFile='ncep_qair_g_cubed.bin', LongwaveFile= 'ncep_netlw_cubed.bin', UWindFile= 'ncep_uwind_cubed.bin', VWindFile= 'ncep_vwind_cubed.bin', WspeedFile= ' ', RunoffFile= ' ', QnetFile= ' ', EmPFile= 'ncep_emp_calc_cubed.bin', CloudFile= 'ncep_totalcloud_cubed.bin', & &BULKF_PARM02 qnet_off=0.0, empmr_off=0.0, conservcycle=311040000., & c ADAPTED FROM: c LANL CICE.v2.0.2 c----------------------------------------------------------------------- c.. thermodynamics (vertical physics) based on M. Winton 3-layer model c.. See Bitz, C. M. and W. H. Lipscomb, 1999: "An energy-conserving c.. thermodynamic sea ice model for climate study." J. Geophys. c.. Res., 104, 15669 - 15677. c.. Winton, M., 1999: "A reformulated three-layer sea ice model." c.. Submitted to J. Atmos. Ocean. Technol. c.. authors Elizabeth C. Hunke and William Lipscomb c.. Fluid Dynamics Group, Los Alamos National Laboratory c----------------------------------------------------------------------- WARNING: useSEAICE and useTSEAICE are mutually exclusive. todo: thermodynamic.F should be reviewed and cleaned up a bit.
Merging from release1_p8 branch: Adding package parameters and hooks for new seaice package.
Added new routine quasihydrostaticterms() and flag "quasihydrostatic" which is false by default and enables QH mode. Exlcusive with nonhydrostatic flag.
Added non-hydrostatic Coriolis term to U equation - needs new PARAMS.h arraya fCoriCos(i,j,bi,bj) - new routine: mom_u_coriolis_nh()
Added new flag "useNHMTerms" which controls appearance of non-hydrostatic metric terms: - defaults to TRUE but is set to false when metricTerms is false. This means no output is currently affected since N-H metric terms have always been associated with spherical metric terms to date. - note that N-H metric terms are both incomplete and disctetized incorrectly and are not fixed as yet. - turning off useNHMTerms affects these experiments adjustment.128x64x1, aim.5l_Equatorial_Channel, exp1, exp2, global_ocean.90x40x1, hs94.128x64x5, hs94.1x64x5, natl_box which means they all have non-hydrostatic metric terms in them.
* update timeave pkg for wVel diagnostic ; put convertEmP2rUnit in PARAMS.h
o cleaned up the use of rhoNil and rhoConst. - rhoNil should only appear in the LINEAR equation of state, everywhere else rhoNil is replaced by rhoConst, e.g. find_rho computes rho-rhoConst and the dynamical equations are all divided by rhoConst o introduced new parameter rhoConstFresh, a reference density of fresh water, to remove the fresh water flux's dependence on rhoNil. The default value is 999.8 kg/m^3 o cleanup up external_forcing.F and external_forcing_surf.F - can now be used by both OCEANIC and OCEANICP
o Added new equation of state -> JMD95Z and JMD95P - EOS of Jackett and McDougall, 1995, JPO - moved all EOS parameters into EOS.h - new routines ini_eos.F, store_pressure.F o Added UNESCO EOS, but not recommended because it requires in-situ temperature (see JMD95) o Modified formatting for knudsen2.f in utils/knudsen2 and added unesco.f to be used with POLY3
Added pressure loading term and experiment based on Wunsch and Stammer (1997) o new field in FFIELDS.h, etc... o new cpp flag ATMOSPHERIC_LOADING o Changed hFacC to _hFacC in calc_phi_hyd.F o Added SHORTWAVE_HEATING to some files for consistency
Added new parameter: deltaTfreesurf Previously, the free-surface equation was intergrated forward synchronously with the momentum equations. It is more consistent to use the tracer time-step. This increases the number of iterations required but strengthens the damping. We *SHOULD* make the default time-step equal to the tracer time-step. However, we don't for backward compatibility. At some point in the future we need to change the default behaviour. It turns out that the reason for the "reduced stability" encountered in large-scale runs seems to be related to excess variability in the free surface which in turn happens when the waves aren't damped. Using a longer time-step fixes this.
new flag to move T,S forcing outside Adams-Bashforh
o define cell Center vertical spacing and then put Interface at the middle
Added PTRACERS package This allows an arbitrary number of passive tracers to be integrated forward simultaneously with the dynamicaly model. + Implemented so far: - basic forward algorithm (time-stepping, advection, diffusion, convection) - I/O and checkpointing - GM/Redi *but* using the GM/Redi coefficient of Salt + Not implemented so far: - KPP - OBCS + No specific example supplied (yet) but global_ocean.90x40x15 has the necessary data.ptracer file. Simply use -enable=ptracers and uncomment line in data.pkg. PTRACER01 then reproduces Salt exactly. + This package is disabled by default since it increases storage.
add parameters to use real fresh water flux (replace USE_NATURALBCS option) with non-linear free-surface.
move zonal_filt parameters to pkg/zonal_filt/ZONAL_FILT.h file
Added flag and implementation of Jamart and Ozer, 1986.
Added energy conserving discretization for Coriolis term. o don't panic - the default is off so you can continue not conserving energy just like you always have... o new flag: useEnergyConservingCoriolis defaults to .F.
Fixed single instance of '"' that breaks cpp-2.96-81
More comments up to date and formatted for document extraction of "prototypes".
Added package "flt". o pkg/flt o verification/flt_example o visualization of trajectories supplied o works but output not available to testscript
Added multi-dimensional form of advection o available only for single step schemes (ie. can't be used with ABII) o stable for max(cfl_u,cfl_v,cfl_w)<=1 (without cfl_u+cfl_v+cfl_w <=1) o selected using multiDimAdvection=.T. (default) o had to hack some existing routines to work on local arrays
Added tension/strain form of dissipation. * NOT working on cubed sphere.
Added method for dumping intermediate local arrays: mdsio_writetile - same as mdsio_writefield except works from inside bi,bj loop mdsio_writelocal - same as mdsio_writetile except works for local arrays write_local_r? - higher-level wrapper for mdsio_writelocal Controlled by diagFreq. Defaults to zero (ie. no dumps) Example given at end of mom_vecinv.F that dumps some local arrays.
Added run-time control of vector-invariant/flux-form momentum eqns.
Added run-time control of advection schemes. - advection scheme determines method of forward integration. - unfortunately, we have to use integers in "data" since ENUM_CENTERED_2ND doesn't mean anything to fortran - defaults are centered second - output differs due to these mods! This is due to the g77 optimization. I have tested that using -ffloat-store, these mods do not affect the output so am confident about changes. T S U V C D M c m s m s m s m s n p a R g m m e . m m e . m m e . m m e . f n k u 2 i a a d i a a d i a a d i a a d g d e n d n x n . n x n . n x n . n x n . Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 22 16 16 pass adjustment.128x64x1 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass adjustment.cs-32x32x1 Y Y N N -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- N/O aim.5l_Equatorial_Channel Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass aim.5l_LatLon Y Y N N -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- N/O aim.5l_zon-ave Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 22 16 pass exp0 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 22 16 pass exp1 Y Y Y Y 13 16 16 16 16 16 16 16 13 16 13 13 13 13 13 13 16 pass exp2 Y Y Y Y 12 16 16 13 16 16 16 16 16 13 16 16 16 16 13 13 16 FAIL exp4 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 22 16 16 16 22 16 pass exp5 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass front_relax Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 22 16 16 16 11 16 pass hs94.128x64x5 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 22 16 pass hs94.1x64x5 Y Y Y Y 14 16 16 16 16 16 16 16 16 16 13 16 16 16 16 16 13 pass hs94.cs-32x32x5 Y Y Y Y 16 16 16 22 16 16 16 16 16 16 16 22 16 16 16 16 16 pass internal_wave Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass natl_box Y Y Y Y 16 16 16 16 16 13 16 13 16 16 16 16 16 16 16 16 16 pass solid-body.cs-32x32x1
o Added paramters for passive tracers o Added passive tracer fields
add options related to Geopotential computation and Orography definition: read orography (in m) from file ; compute Bo_surf(P_ground); select the form of geopotential integration; atmospheric constant (Ideal gas EOS) in common.
Added a debugMode that uses same statistics stuff as monitor.F Can be disabled with -DEXCLUDE_DEBUGMODE. Turn on at run-time with debugMode=.true. Default is enabled but off.
Adding skeleton "monitor" routines. The default is to do it every time-step. monitorFreq=0 disables.
Merge from branch pre38: o essential mods for cubed sphere o debugged atmosphere, dynamcis + physics (aim) o new packages (mom_vecinv, mom_fluxform, ...)
See doc/tag-index and doc/notes_c37_adj.txt Preparation for stand-alone autodifferentiability.
Modifications and additions to enable automatic differentiation. Detailed info's in doc/notes_c37_adj.txt
AIM (Atmosphere Intermediate Physics) define as a standard package
add 2 parameters to define a Crank-Nickelson barotropic time-stepping
Made sure each .F and .h file had the CVS keywords Header and Name at its start. Most had header but very few currently have Name, so lots of changes!
Merged changes from branch "branch-atmos-merge" into MAIN (checkpoint34) - substantial modifications to algorithm sequence (dynamics.F) - packaged OBCS, Shapiro filter, Zonal filter, Atmospheric Physics
Included variable surfQswfile for shortwave heating. Change variable names useKPP, useGMRedi, useECCO. Tested for exp(0,2,4).
Moved GM/Redi parameters to private common block. Added a "package" common block which ultimately should be elsewhere.
Added separate initialization routine for pSurf (otherwise known as cg2d_x). This allows easy initial value problem in free surface height (read from file in pSurfInitFile) and helps split up the initializations of "fixed" and "variable" arrays.
Corrected interaction between OBCs and algorithm. The positioning of set_obcs() within the time-stepping sequence is crucial for stable open-boundaries. Forcing the boundaries with time-dependent flow previously led to horrible results...
Added IVDC (Implicit Vertical Diffusion Convection). Also facilitated a "convection counter" that is output through "diags".
Added a parameter "implicitViscosity" to separately control implicit viscosity and diffusion.
Added COS(latitude)^cosPower dependence to viscosity terms. New parameter "cosPower" defaults to 0.0 which removes latitudinal dependence.
Implemented new I/O package (mdsio.F). This package does parallel I/O in much the same way as dfile.F used to except it uses "direct access" rather than (f77) unformatted sequential access. Problems with dfile.F package included: o unnecessary memory use (each process had two global sized buffers) o inability to read the files it had written without post-processing o "tiled" files were tiled by process/thread rather than actual tiles o created huge numbers of files with no alternatives Features of the mdsio.F package: o direct-access binary writes o no excessive memory use o ability to read/write from multiple record files o "tiled" files are based on "WRAPPER" tiles so that the number and content of files is independent of the number of threads and/or processes o option to create single "global" files rather than "tiled" files o ability to read both "global" and "tiled" files [Caveat: the tiling of files must match the model tiles] o checkpoints now use a single file per model section ie. one file for the hydrostatic model core, one file for the non-hydrostatic extensions and one file for the C-D extensions o the mid-level I/O routines now is broken into more source files read_write_fld.F supplies basic I/O routines with the same interface as the original I/O package read_write_rec.F supplies I/O routines which allow multiple records write_state.F writes the model state checkpoint.F supplies the read/write checkpoint routines All the example input data has had to be modified to be direct-access. Otherwise only routines that used I/O have been affected and not all of those have been due to the continuity of arguments in the read_write_fld.F routines. What needs to be done? We have to create a suite of conversion utilities for users with old-style data. Also supply the option for using old-style I/O, not just for die-hards but for reading data too extensive to be converted. And more...
Modifications for non-hydrostatic ability + updates for open-boundaries.
o Added "natural BCs" as alternative to "virtual salt flux" o Re-difined precFloat32 and precFloat64 to be 32 and 64 so that their values can be meaningfuly set in the data file o Modified read_write.F to create an exception if readBinaryPrec is not set o Replaced CPP control of viscous BCs with run-time control o Tidied up input-data precision (ie. ini_depths cnh_dbg...) o ini_forcing.F now initialises *all* forcing arrays to zero o Definitively tested verification experiments 0,1,2 and 4 (3 is atmospheric set-up which is in a state of flux)
Implementation of Open Boundaries: o new source code: ini_obcs.F set_obcs.F apply_obcs1.F apply_obcs2.F OBCS.h o modified code at a few points, key changes are in dynamcis.F the_model_main.F and ini_cg2d.F o documentation in OBCS.h and doc/OpenBound.*
Changes to allow for atmospheric integration builds of the code
Changes to support - g77 compilation under Linux - LR(1) form of 64-bit is D or E for constants - Modified adjoint of exch with adjoint variables acuumulated.
Consistent isomorphism changes
Consistent isomorphism chages
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Isomorphism consistency changes
Consistent isomorphism changes
Changes for moving from z -> r as a vertical coordinate Required changing r -> recip for reciprocal variable notation.
Changed Z co-ordinate and lopping code: o Z now increases upwards (ie. for the ocean, z<0) This needed changes only in ini_vertical_grid() where zC and zFace are calculated and in ini_masks_etc() where hFacC is calculated using IF's (eg. IF H(i,j,bi,bj).LT.zFace(K) ...). o The lopping code needed a correction to the hydrostatic pressure calculation. o Two new parameters control the lopping: hFacMin - is the lower limit for water fraction in a cell hFacMinDz - is the lower limit for water thickness in lopped cells Both default to 0 so that pure lopping is the default. To force full cells, using continuous bathymetry, set hFacMin=1
Added diagnostics for KapGM. Added GMmaxval to limit values of KapGM when using the Ri # formula.
Added time-averaging (written by Elodie K.). Controlled by parameter taveFreq. taveFreq=0 turns it off.
Introduced time-dependant forcing, loaded and interpolated in load_external_fields.F in a subroutine load_interpolate_forcing(). Control is by one logical and two real variables in PARAMS.h: periodicExternalForcing, externForcingCycle and externForcingPeriod. The code in load_external_fields.F is "customized" so needs to be edited for non-global type runs. We'll tidy it up later.
Fairly coplete 4 degree global intercomparison setup. Includes changes to make convective adjustment and hydrostatic pressure correct as well as IO for climatological datasets
Added code to bring "salt" up-to-date with "theta". One caveat is that implicit diffusion of salt is done with the diffusivity of theta. We'll sort this out later. In explicit mode, diffKzS is used.
Changes to support topography, hydrography and forcing from files
Merge of GM Redi and spherical polar and inplicit diffusion and CD. Everything for a global run is now included, however, still some discrepancies with GM Redi.
Various corrections: o implicitDiffusion was missing from PARAMS.h (obviously forgot to commit) o maskUp in calc_common_fact() is now correct o find_rho() now has the proper "referencing" for "LINEAR" eos-mode [also affected a call from dynamics()]
Further memory saving macros for particular grids
Changes to: o read in coefficients for POLY3 EOS. o find_rho() polynomial evaluation has been factorized. o additional density field needed in calc_iso_slopes() with non-linear EOS. This EOS must use the appropriate version of KNUDSEN to generate the coefficients file (POLY3.COEFFS). C7 and C8 were back to front in all previous versions of the model (compare01).
Changes to support "low" memory mode of operation - Small change to allow _RS -> REAL*4 to work - Added some macros for case where grid variations are a a subset of the general case. e.g. dx constnat or flat bottom
Added flags for turning off momentum equation and/or temperature equation
Added extra IO features - runtime on/off flags - more reporting of configuration
Added changes to support implicit free-surface. - included gBaro a "barotropic" gravity that can be set differently to the g.rhoprime gravity. - discovered and fixed coding error in dynamics loop. Per tile temporaries that needed correct initial values were not being reset for each tile.
Added support for binary IO of model fields for restart and/or postprocessing
GM/Redi parameterization. calc_isoslopes() calculates components of Redi tensor. calc_gt() then uses these components in a modified vertical tracer flux. AJA
Added coefficients for non-linear equation of state (common block PARAMS_EOS_NL). Also moved the tAlpha and sBeta (linear EOS) coefficients into a new PARAMS_EOS_LIN common block.
Further changes to reporting of model configuration on standard output
Improvements to I/O and feedback info.
$Id to $Header changes
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.22 |