What's New in CESM1.1
The purpose of the CESM1.1.0 (CESM1.1) release is to make available to the CESM user community model functionality and infrastructure improvements. It is to be used as a code base for new model developments that require this new infrastructure. This release contains no scientifically validated (i.e. supported) component sets. As such, it is not to be used for scientific simulations.
atmosphere/CAM
- New features in CAM-5.2:
- CAM-SE
- Add tuning mods for SE/cam5 on ne30np4 grid (nominal 1 deg). New utility for creating the topography datasets is also included.
- CAM-FV
- Change default vertical remap subcycles for 1-deg FV to nspltvrm=2. This is to make the 1-deg simulation more stable.
- CARMA
- Add CARMA (Community Aerosol and Radiation Model for Atmospheres), along with several CARMA models: bc_strat, cirrus, meteor_smoke, pmc, sea_salt, sulfate and dust.
- New features used by CARMA, but potentially relevant outside of CARMA, include:
- The ability to turn off some processes in MG microphysics and Park macrophysics.
- A flag specifying the stage at which a constituent will undergo convective transport.
- New spectral flux outputs for radiation.
- The ability to calculate the Obukhov length outside the HB/HBR eddy scheme.
- CLUBB
- CLUBB (Cloud Layers Unified by Bi-normals) is a higher-order turbulence closure centered around an assumed double Guassian PDF. It is a unified parametrization in that it returns tendencies due to PBL, shallow convection, and cloud macrophysical processes. This unified moist turbulence parametrization uses multivariate PDFs to predict moments to generate shallow and stratiform clouds that are then passed to the microphysics.
- Diagnostic radiation calculations enabled for modal aerosols.
- The previous version of diagnostic radiation calculations with modal aerosols had hardcoded the restriction that no modal aerosols were present in any diagnostic calculation. This restriction has been removed.
- The capability to do diagnostic radiation calculations with the modal aerosols is functional, but with the important restriction that the derived QAERWAT and DGNUMWET fields are not recomputed for the modes used in a diagnostic calculation.
- new variable, mode_defs, provides the metadata necessary to define the modes. The default value is set by build-namelist.
- The existing namelist variables used by rad_constituents, i.e., rad_climate and rad_diag_*, have been updated to accept modes as entities that can effect the climate and diagnostic radiation calculations. The default value of rad_climate is set by build-namelist.
- The syntax of the rad_climate and rad_diag_* variables has been changed. The source term has been renamed: 'P' has been changed to 'A' (for advected) and 'D' has been changed to 'N' (for non-advected).
- Chemistry updates
- Revived broken trop_mam7 and super_fast_llnl_mam3 chem packages.
- Add new chemistry packages for MAM: trop_mozart_mam3, trop_strat_mam3, trop_strat_mam7.
- Added new chemistry packages: trop_mozart_soa and waccm_mozart_sulfur.
- Add flexibility in specifying VOC emissions from MEGAN in CLM.
- Add ability in offline dynamics driver to turn off surface feedbacks to climate.
- Invoke O1D_to_2OH_adj subroutine when chemistry is super_fast_llnl_mam3
- Include wet removal of H2SO4 for aerosol chemistry packages other than trop_mam3.
- H2SO4 added to drydep and wetdep lists.
- Include HCOOH emissions in default namelist for tropospheric chemistry packages.
- Simplified specifications of default emission files for MAM-chemistry packages.
- Chemistry preprocessor changes:
- supports chem species names up to 16 chars
- remove references to het specifications -- all species can have wet removal
- carbon mass of species output
- calculates molecular masses using double precision to get consistent masses wrt invoking the preprocessor on different platforms and compilers
- new functionality for generating chem rate diagnostics
- Added ability to support chemistry species names up to 16 characters
- Maximum length for history increased to 24 characters.
- Mods to mo_setsox to generalize the method for calculating pH value of cloud water.
- WACCM
- Add features for WACCM5 compatibility.
- Troposphere cloud physics "top" added to more modules.
- Enable RRTMG radiation with cam4 physics.
- Enable WACCM with cam5 physics and RRTMG radiation.
- Add chemistry package: waccm_mozart_mam3.
- Add use_case for WACCM-X solar minimum conditions.
- Include of solar/geomagnetic activity data in history files for WACCM.
- TMS turned on for SC WACCM and SD WACCM.
- Code cleanup and refactoring:
- Changes to the build:
- Mods to CAM standalone build to support running SE in F compset configurations (i.e., active land, thermodynamic cice, and data ocean). Up to now the standalone build has only worked for SE running in adiabatic, ideal physics, or aquaplanet configurations.
- MCT is now built as a stand alone library. In order to build mct, changes where made to configure and Makefile.in.
- Removed CSIM4 as a sea ice option.
- Implemented new physics buffer, this involves introduction of two new modules - utils/buffer.F90 and physics/cam/physics_buffer.F90
- buffer.F90 introduces low level support for persistent arrays of types r8, r4, and i4 and up to 7 dimensions (the max allowed in fortran90 arrays). These arrays are accessed and manipulated through a common (type independent) API.
- physics_buffer.F90 uses the low level buffer module and provides additional methods for physics. The physics buffer array is a derived type array declared in the cam_comp module with dimensions (pbufflds,begchunk:endchunk) within this structure arrays can be of type r8, r4, or i4 and always have first dimension pcols, all further dimensions are optional.
- Some cleanup in the dynamics initialization layer. In particular remove a bunch of dead code from the SE dynamics interfaces.
- Remove lots of unused code left over from the original cam5 development. This was a consequence of the cam5 macro/micro physics being developed in the stratiform module, and then later moved to separate macrop and micro_mg modules.
- Move several pbuf_add calls to the modules that are responsible for setting the pbuf field.
- Call the init routine for the pbl_utils from phys_init, not from init_eddy_diff and init_hb_diff.
- Remove #ifdef MODAL_AERO from vertical_diffusion.
- Make trb_mtn_stress module fully portable.
- Added ref_pres_nl namelist group to handle options for the reference pressure module.
- Added trop_cloud_top_press in namelist_definitions and always added by build_namelist.
- Added ability for default namelist values to depend on the ocean model.
- Allow sat_hist to use more than one column near a given point, as well as giving columns from more than one timestep, to allow interpolation in time and space.
- Updated ESMF interfaces for ESMF ver 5.2.0.
- The microp_driver and cldwat2m_micro modules have been refactored to create a three layered architecture comprised of a driver, cam physics interfaces, and a portable physics parameterization.
- Refactor the way the "state" was being used in the macrop and microp drivers to conform to the physics interface design.
- Add missing explicit r8 kind to F90 code
- Memory reduction in src/chemistry/mozart/mo_drydep.F90
- Memory reduction in CAM5 (don't allocate 4D camrt variables)
- Memory reduction in CAM-SE.
- The attempt to access the initial file from the dyn_init routine created a circular dependency. Resolved by separating the code that opens the initial and topo files (and is not dycore dependent) from the initial_conds routine which reads the initial file and is dycore dependent.
- Bugs fixed:
- Several physics buffer fields declared with the pbuf_times dimension were being incorrectly accessed. This is only a bug for cam5 physics using Eulerian dycore. Note in particular that this affected SCAM.
- The T_TTEND diagnostic had the wrong sign, and due to incorrect use of the physics buffer was completely invalid for runs using Eulerian dycore.
- Fix for unreasonable concentration of some species in WACCM. The fix prevents large fluxes of species with very small concentrations.
- Fix to wet radius calculation in the modal_aero_wateruptake module.
- Provide a computed value for the Obukhov length in the cam5 physics package. It was inadvertently left set to zero. This impacted dry deposition calculations.
- Mods in zm_conv to fix some inconsistency in the initialization of hu, and to define su at cloud base using hu.
- Fix memory leak in stratiform.F90. When use_shfrc was false shfrc was allocated, but never deallocated.
- Fix mass conservation bug in molecular diffision used in WACCM and WACCMX
- Fix bug with column data written to multiple history files
- Fix for writing out N-dimensional fields to the "satellite" history file.
- COSP bug fix for addfld call for U_COSP and V_COSP.
- Fix added so COSP branch runs will work when using restart files from a non COSP run.
- Fixed a restart problem that occured when empty_htapes=.true. in waccm configurations.
- bug fix in CO+OH reaction rate for super_fast_llnl chemistry
- bug fix in "WMO" method of tropopause calculation
- Corrections to reactions in tropospheric chemistry packages
to include M in reactions:
-
MPAN + OH
HCN + OH
land/CLM
New Capabilities for Science (functionality):
- Multiple instance capability
- Support to run CLM on non lat/lon and cubed sphere and unstructured grids
- New high resolution datasets available for creating surface datasets (most datasets at 10X the previous half-degree datasets [which are also available])
- MEGAN model updated to general format to model 120 species
- Option for tenth degree RTM
- Updated pct_glacier data for mksurfdata_map based on Randolph Glacier Inventory, and new surface datasets for GLC-MEC runs
- Bug fix for glacier virtual columns for GLC-MEC runs
Refactoring or changes to software Infrastructure:
- New support for user-specification of model grids
- CLM tool input dataset tool chain changed extensively
- Remove CASA
- Use RTM mapping files
- RTM removed from CLM as a separate -- River Model Component
ice/CICE
- Multi-instance capability
- New build-namelist infrastructure
- Enhancements including new decompositions along with decomposition fixes
ocn/POP
- New build-namelist functionality (NEW infrastructure)
- Multiple instance capability (new functionality)
- Bugs that have been fixed (improved functionality):
- There were issues in overflows when using gfortran
- The units of TPOWER were incorrect in history file
- Global sums were not bit-for-bit with threading
- In some modified configurations, N_HEAT and N_SALT tavg computation caused aborts
- A freshwater boundary computation was using temperature when it needed salinity (does not affect standard builds because freshwater boundaries are not used for out-of-the-box runs)
land-ice/cism
New Capabilities for Science (functionality):
- New TG compset allows running standalone ice sheet model forced by output from a previous, coupled CESM simulation
- Multiple instance capability
Refactoring or changes to software Infrastructure:
- New build-namelist functionality
- Modified time manager to support longer time steps (e.g., 1-year)
- ESMF interface
Bug fixes:
- Fixed memory leak
Answer changing modifications:
- Changed default GLC grid to 5 km (previously was 20 km)
- Changed a number of other default CISM configuration settings to produce a more robust ice sheet evolution, especially at 5 km resolution
river/RTM
- New river component (previously part of CLM)
data models
- New namelist generation capability (build-namelist) for all data model components
- datm - fix wet/dry deposition bug
- dlnd - remove rof coupling, moved to drof
- dice - add NULL mode
- docn - none
- drof - new component split out from dlnd
driver/coupler
- new support for multi-instance capability including support for NINST LAYOUT options to support concurrent or sequential multiple instances
- refactor field indices, no longer pre computed by the coupler
- new specification for fields to be transferred between components, can specify new fields in namelist without modifying driver code
- separate rtm, support rof-lnd 2-way coupling
- new namelist generation capability (build-namelist)
- new mapping capability
- refactor implementation
- cart3d vs npfix. cart3d supports vector mapping in 3d cartesian space (and is the default mechanism when the spectral element dynamical core is utilized by CAM
- ability to map non-conservative fields either with patch or vector map - velocity fields can be mapped with patch and other fields with bilinear. supported via a new mapping name, Va2o.
- add time axis to coupler history files
- add cpl_decomp namelist option
- add ability to change base coupling period from per day to other units using NCPL_BASE_PERIOD in the env variables.
- add ability to map with esmf library
- update pio settings through coupler
csm_share
- updates for new esmf_wrf_timemgr as well as esmf interface update
- update streams spatial interpolation to allow north-south and east-west oriented input
- update stream restart file handling to allow changes to stream input mid-run
- update scam capabilities
- add shr_pio code from driver
mapping (NEW)
- Consolidate tools for generating ocn <-> atm maps, run_off -> ocn maps, and data component domain files into a single directory (new infrastructure)
- New tool to test the quality of the ocn <-> atm maps (new infrastructure)
- Availability on all machines with ESMF library (new infrastructure) **
scripts
- new generation of component namelists
- All components now use build-namelist, no longer have an env_conf.xml
- Locking phases are now case generation, batch script geenration, build and run
- new capability to have multiple experiments use one executable
- new specification of compsets
- new specification of grids, domains and mapping files
- new support for multi-instance capability
- new support for pio settings at top level
Machines, Build, Performance, Timing
- new specification of machine Macros auto-generated from xml files
- supported machines for release - Lynx, Janus, Hopper, Intrepid
- New hierarchical compiler flags eases porting, more consistant across machines
PIO
- New tunable parameters -
PIO_BUFFER_SIZE_LIMIT: sets the maximum memory per task for buffering writes
PIO_BLOCKSIZE: sets size of optimal contiguous block for writes
- Improved performance on bluegene systems (set pio_numiotasks < 0 for BG tuning)
MCT
- update to MCT 2.8