We have recently completed a version of WACCM-X which will be released with the CESM and will be merged with the CAM trunk. Below are the recent changes including recommendations made recently from Brian and the CAM development group. Below I am listing changes I have made to the modules with WACCM-X mods and any additions of files and modules:

scripts/f_2000_waccmx.xml - Added this compset xml file
scripts/f_2003_waccmx.xml - Added this compset xml file

models/atm/cam/bld/build_namelist

  • Added run time WACCM-X option
    models/atm/cam/bld/config_files/defaults_waccmx.xml
  • Defaults for WACCM-X file added
    models/atm/cam/bld/config_files/definition.xml
  • Added definition of WACCM-X configure flag
    models/atm/cam/bld/configure
  • Added configure flag for WACCM-X including adding WACCM-X physics directory to file paths
    models/atm/cam/bld/namelist_files/namelist_defaults_cam.xml
  • Added defaults when WACCM-X configure flag used and set run time WACCM-X option if configure flag set
    models/atm/cam/bld/namelist_files/namelist_definition.xml
  • Added WACCM-X run time switch to namelist
    /models/atm/cam/bld/namelist_files/use_cases/waccmx_2000_cam4.xml
  • New file
    /models/atm/cam/bld/namelist_files/use_cases/waccmx_2000_cam4_ionosphere.xml
  • New file
    models/atm/cam/src/chemistry/mozart/chemistry.F90
  • Removed MODAL_AERO ifdef
  • Added waccmx_is run time flag
  • Added calls to photo_register and aurora_register methods
  • Added flags for has_fixed_ubflx and molectype
  • No fixed upper boundary for WACCM-X
  • Set flags for upper boundary and major or minor molecular diffusion
    models/atm/cam/src/chemistry/mozart/mo_aurora.F90
  • Added aurora_register for auroral ion production rates
  • Added pbuf to aurora_ions method call
  • Added ion production rates to pbuf
    models/atm/cam/src/chemistry/mozart/mo_gas_phase_chemdr.F90
  • Removed MODAL_AERO ifdef
  • Added pbuf to table_photo and setext methods
    models/atm/cam/src/chemistry/mozart/mo_jeuv.F90
  • Added number of photo-ionization production rates
    models/atm/cam/src/chemistry/mozart/mo_jshort.F90
  • Added WACCM-X run time flag
  • Added increased scale height for WACCM-X
  • Set minimum values for cross sections
    models/atm/cam/src/chemistry/mozart/mo_mean_mass.F90
  • Added WACCM-X run time flag to unset fixed mean mass for WACCM-X
    models/atm/cam/src/chemistry/mozart/mo_photo.F90
  • Added WACCM-X run time flag and photo_register method
  • Increase maximum zenith angle for WACCM-X and WACCM
  • Added pbuf to table_photo method and store photo-ionization rates in pbuf
    models/atm/cam/src/chemistry/mozart/mo_setext.F90
  • Added pbuf to setext and aurora methods
    models/atm/cam/src/chemistry/mozart/mo_tgcm_ubc.F90
  • Mean mass changed from scalar to columns array
    models/atm/cam/src/chemistry/mozart/mo_waccm_hrates.F90
  • Increase zenith angle for WACCM-X and WACCM
  • Use constituent dependent mean mass for WACCM-X instead of calling set_mean_mass method
  • Use constituent dependent specific heat
    models/atm/cam/src/chemistry/mozart/upper_bc.F90
  • Added upper boundary flux to ubc_get_vals method
  • Use constituent dependent gas constant in calculating upper boundary mixing ratio
  • Calculate upper boundary flux for H
  • Add constituent dependent mean mass to set_tgcm_ubc method
    models/atm/cam/src/chemistry/pp_none/chemistry.F90
  • Added pbl height to chem_timestep_tend method
    models/atm/cam/src/chemistry/pp_waccm_mozart_v1/mo_jeuv.F90
  • Added number of photo-ionization rates to be compatible with MOZART mo_jeuv.F90
    models/atm/cam/src/chemistry/pp_waccm_mozart_v1/mo_photo.F90
  • Added WACCM-X run time flag and call to photo_register method
  • Increase maximum zenith angle for WACCM-X and WACCM
  • Added pbuf to table_photo method and store photo-ionization rates in pbuf
    models/atm/cam/src/control/physconst.F90
  • Added physconst_init (constituent dependent variables) and physconst_update methods (update constituent dependent variables)
    models/atm/cam/src/dynamics/eul/dp_coupling.F90
  • Added WACCM-X run time switch and constituent dependent zvir and rair to geopotential_t method call to be compatible with fv dp_coupling.F90
    models/atm/cam/src/dynamics/fv/dp_coupling.F90
  • Added WACCM-X run time switch and constituent dependent zvir and rair to geopotential_t method call
  • Call physconst_update method to update constituent dependent variables
  • Update dry static energy with constituent dependent rair
    models/atm/cam/src/dynamics/fv/te_map.F90
  • Added WACCM-X run time flag
  • Set vertical motion to zero at TOA for WACCM-X
    models/atm/cam/src/dynamics/homme/dp_coupling.F90
  • Added WACCM-X run time switch and constituent dependent zvir and rair to geopotential_t method call to be compatible with fv dp_coupling.F90
    models/atm/cam/src/dynamics/sld/dp_coupling.F90
  • Added WACCM-X run time switch and constituent dependent zvir and rair to geopotential_t method call to be compatible with fv dp_coupling.F90
    models/atm/cam/src/physics/cam/constituents.F90
  • Added flags to cnst_add method interface for type of molecular diffusion and fixed upper boundary flux with defaults 'minor' and '.false.'
  • Added method to retrieve molecular diffusion flag value
    models/atm/cam/src/physics/cam/diffusion_solver.F90
  • Add field list for molecular diffusion
  • Add molecular field list, cpairv, rairi, and kvt to compute_vdiff method interface
  • Add waccmx_is run time flag
  • Add flag and variable arrays for upper boundary flux for each constituent
  • Change mw_fac to a constiuent dependent variable
  • Declare temporary arrays for solving for temperature
  • Use constituent dependent rairi in density calculation for WACCM-X
  • Replace kvh with kvt, add ub flux and flag, and change mw_fac to constituent dependent
  • Set top levels of matrix diagonals to zero in dse solving for WACCM-X
  • Added solving for temperature using molecular conductivity and update dse for WACCM-X
  • Changed mw_fac to constituent dependent and added chunk number, midpoint and interface pressure, temperature, and constituent index number to minor species diffusion call
  • Added cpairv to vd_lu_decomp call and use in matrix diagonal calculations for WACCM-X
    models/atm/cam/src/physics/cam/eddy_diff.F90
  • Calculate constituent dependent rairv for WACCM-X
  • Add molecular diffusion field list, cpairv, and rairi to call to compute_vdiff
    models/atm/cam/src/physics/cam/geopotential.F90
  • Change a number of scalars to 2D arrays, columns, levels and use in geopotential height calculations in geopotential_t and geopotential_dse methods
    models/atm/cam/src/physics/cam/initindx.F90
  • Add waccmx_is run time flag
  • Add iondrag_register and ionos_register method calls for WACCM-X
    models/atm/cam/src/physics/cam/iondrag.F90
  • Added as CAM dummy module for WACCM iondrag.F90 module
    models/atm/cam/src/physics/cam/ionosphere.F90
  • Added as CAM dummy module for WACCM-X ionosphere.F90 module
    models/atm/cam/src/physics/cam/majorsp_diffusion.F90
  • Added as CAM dummy module for WACCM-X majorsp_diffusion.F90 module
    models/atm/cam/src/physics/cam/micro_mg_cam.F90
  • Fixed PGI compiler bug by removing unused pcnst variable
    models/atm/cam/src/physics/cam/molec_diff.F90
  • Added initialization of thermal diffusion coefficient
  • Added ubc_flux and cnst_fixed_ubflx_out to compute_molec_diff
  • Added calculation of constituent dependent mw_fac for WACCM-X
  • Added calculation of molecular conductivity
    models/atm/cam/src/physics/cam/phys_control.F90
  • added access to WACCM-X run time option and add phys_ctl_init method to set top
    and bottom levels for eddy and molecular diffusion operate and molecular
    diffusion switch. Also added access to the these through phys_getopts method
    models/atm/cam/src/physics/cam/physics_types.F90
  • set maximum values for H and H2 mixing ratios for WACCM-X, add call to
    physconst_update method, add update of dry static energy, and add
    constituent dependent variables to geopotential_dse call
    models/atm/cam/src/physics/cam/physpkg.F90
  • add calls to physconst_init, phys_ctl_init, mspd_init, and ionos_init methods
    models/atm/cam/src/physics/cam/tphysac.F90
  • access molecular viscosity from pbuf and gw_intr call, add pblh to chem_timestep_tend call, and add WACCM-X calls to mspd_intr and ionos_intr methods
    models/atm/cam/src/physics/cam/vertical_diffusion.F90
  • add molecular diffusion field list, add molecular conductivity to pbuf, and add calls to
    phys_getopts to get molecular diffusion switch and top and bottom levels for eddy and
    molecular diffusion to operate
    models/atm/cam/src/physics/waccm/gw_drag.F90
  • calculate and use molecular diffusivity instead of molecular+eddy diffusivity and access bottom level for molecular diffusion using phys_getopts method
    models/atm/cam/src/physics/waccm/iondrag.F90
  • add Pedersen and Hall conductivities to pbuf
    models/atm/cam/src/physics/waccm/nlte_lw.F90
  • use constituent dependent constants for output heating rate calculations
    models/atm/cam/src/physics/waccm/radheat.F90
  • use constituent dependent constants for heating rate calculations
  • No labels