Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint53: | (view) (download) (annotate) |
Sticky Tag: |
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 |