Releases: RAMSmodel/RAMS
RAMS release version 6.3.04
*Updated lateral boundary conditions for nested grids so that features translate from parent grid to nested grid more accurately and seamlessly. There are some hard coded coefficients in bc/rbnd.f90 and/or nesting/nest_intrp.f90 that could be customized as needed, but default values are reasonable for most situations. (Work done by Leah Grant)
*In microphysics, put a cloud droplet nucleation limiter at 0.01microns (10nm) so that if the aerosol distribution median radius drops below 10nm, nucleation is stopped. Our nucleation lookup tables do not go below 10nm median radius. In the past, nucleation could continue as the median radius of the aerosol distribution was forced to the minimum size. In some situations it seemed that overnucleation was occurring, and a limiter was perhaps needed.
*Nucleate cloud droplets at the minimum droplet size instead of diagnosing a size based on nucleation number and available vapor. This will reduce the amount of mass in the microphysics budgets for nucleation, but this is compsentated for via the vapor condensation routines.
In microphysics, updates were done to permit better prediction of heterogeneous ice nucleation when values are realtively small. Ryan Patnaude, (Kreidenweis & DeMott group) used INP data and ice crystal concentration data from the SPICULE field project from congestus clouds for initializing and validating RAMS ice nucleation scheme. The following code changes greatly improved the prediction:
*In mic_adj.f90, I modified a condition statement from cx(k,lcat)<=0.0 to cx(k,lcat)<cxmin to check cx and rx and set things to zero if needed. Former method occasionally created NaNs due to attempted division by zero.
*Add call to “psxfer” in the mic_driv.f90 after the call to “colxfers”. This is necessary so that cloud ice and snow and be moved to the correct category after collision-coalescence. Otherwise, the number adjustment routine “enemb” can artificially add pristine ice number concentration in order to keep the mean pristine ice diameter in bounds from 15-125 microns.
*In mic_nuc.f90 and mic_nucpre.f90 added an IIFN=2 constraint so that the DeMott formulas are only applied between temperatures of -35C to 0.0C. In the past we permitted this to occur at colder temperatures, which perhaps should not be done since the formula is not meant to be extrapolated below -35C.
*In mic_nuc.f90 heterogeneous ice nucleation, I modified the nucleation limiter code from “diagni-cx(k,3)” to “diagni-cx(k,3)-cx(k,4)” to also consider the number concentration of snow in addition to pristine ice since snow is just vapor grown pristine ice. This seems to help limit the heterogeneous ice nucleation. This provides more reasonable concentration compared to SPICULE observations mentioned above in this section header.
*In micphys.f90 change rxmin to 1.e-16 and cxmin to 1.e-5 to permit lower pristine ice concentrations that occur from INP at warmer temperatures.
*In mic_nuc.f90 heterogeneous ice nucleation section, decided to permit nucleation at temperatures less than -35C, but only allow the DeMott formulas to provide an air temperature down to -35C. So, if actual air temperature is -45C, the DeMott formula will use a max cold temperature of -35C. This should permit nucleation without over extrapolating the DeMott fomulas.
*Throughout the RAMS code, I changed the CCN and GCCN naming conventions since GCCN do now actually have to be giant. They can be whatever size and solubility we choose. So, providing more generalized names avoids the issue of thinking we can only specify giant particles in the GCCN variable. The 2 dust modes, for example, are named MD1NP and MD2NP for the mode 1 and mode 2 number concentrations. They could be any size we choose. So, I’ve changed CCN and GCCN number to CN1NP and CN2NP. I’ve also changed their mass to CN1MP and CN2MP. This way we could have 2 aerosol modes that are Aitken mode and accumulation mode or say, accumulation mode and ultra-giant mode. There’s flexibility here as to what the modes of aerosols can be.
*Added optional IFN(ice forming nuclei) / INP(ice nucleating particles) initialization option in the subroutine “init_ifn” in file mic_init.f90 that allows the user to initialize simulations with the:
- SPICULE field campaign fitted vertical profile from aircraft obs assuming the user sets IIFN=2, IFN_FORMULA=2, and CIN_MAX = -1.0 (or)
- MC3E field campaign fitted vertical profiles from aircraft obs assuming the user sets IIFN=2, IFN_FORMULA=1, and CIN_MAX = -2.0.
These are reasonable continental profiles and likely a better default choice than the former default exponentially decreasing profile with height. When using the exponential profile (for CIN_MAX > 0.0, it’s probably most realistic to get CIN_MAX >= 0.5 /mg. Smaller values are probably too small even for a default scenario.
*Added RAMSIN namelist flags ISPONG_PTS and SPONGE_TAU related to the nested grid sponge layer which works to better transition scalar from a parent grid to nested grid.
What's Changed
Full Changelog: v6.3.03...v6.3.04
RAMS release version 6.3.03
RAMS 6.3.03 updates - code notes
-
Set IMONO=1 in radvc.f90 to turn the monotonic flux limiter back on. We should still check this to see if there are bugs in this routine related to density and pressure. But some results show this performs better along boundaries and helps prevent aerosol concentrations from getting too high in unusual circumstances.
-
Set all “A80” string limits related to namelists to “A256”. This limit was causing random segmentation faults if users used really long strings in the RAMSIN namelist.
-
In the BULK microphysics only, I separated out microphysics process rate variables for condensation/deposition and evaporation/sublimation. So, for example, VAPCLDT is now the vapor deposition growth only for cloud water categories (+ values only). EVAPCLDT is the evaporation of the cloud water category only (+ values only). In past RAMS versions, VAPCLDT was the net of vapor growth and evaporation summed over time between output writes (+ or – values with + being net growth and – being net loss). The new evaporation process rate is given a positive value now, not negative. Also added process rates FREEZINGT and MELTINGT that are totals computed in association with the computation of the latent heating rates that are associated with net phase changes in the microphysics. NOTE THAT THESE CHANGES ONLY APPLY TO THE BULK MICROPHYSICS AND NOT THE HUCM BIN MICROPHYSICS.
-
Eliminated the RAMS version directory below /src so that we do not have to keep changing the version directory name on Github. This is also reflected in the “include.mk” file by removing the “RAMS_VERSION” flag since it’s no longer needed.
-
Small bounds checking change in the aerosol deposition code.
RAMS release version 6.3.02
RAMS 6.3.02 updates - code notes
- Added smoke aerosols, that is, absorbing carbon (AbCarb,ABC) aerosols with 2 modes.
Absorbing carbon (ABC) is defined here as a mixture of organic carbon (OC) and black carbon
(BC). We chose AbCarb-1 as 1%BC, and AbCarb-2 as 2%BC. The AbCarb modes are added as
aerosol species numbers 8 and 9. Regnerated aerosols are moved to species 10 and 11, or more
generally as “aerocat” and “aerocat-1” where aerocat = the number of aerosol categories. So the
regenerated species will always be the final two categories from now on. - Smoke aerosols are added to microphysics for nucleation and to the radiation routines. New
radiation lookup tables were added for brown carbon based on what is used in WRF-chem. But
we chose to represent them as 1% BC and 2% BC. More BC = more absorption. We also altered
the sulfate radiation tables to be more scattering and less absorbing. Sulfate is now assumed to be
80% soluble and 20% insoluble dust core. The dust in the core has assumed imaginary index of
refraction of 0.0015i for UV and visible wavelengths. The former dust core assumed R(im) of
0.008i, which we considered too absorbing. - Updates to RAMSIN to add IABCARB for turning smoke on and off. Also added ABC1_MAX
and ABC2_MAX to input maximum smoke number concentrations for initialzing smoke
aerosols in the two modes. The chemistry and size of smoke are in places 8 and 9 in
IAERO_CHEM, AERO_EPSILON, AERO_MEDRAD. Added initialization routines for smoke
in mic_init.f90 named “init_absorbing_carbon” and added the call to this in rdint.f90. - Bug fix to tracking of aerosol mass in aerosol deposition. Needed to add a density factor.
- In grid_dims.f90, updated “maxisn”, “maxtimes”, and “maxsigz” from 100 to 200 to consider
the use of potentially more varfile vertical levels to store and more file times to create. - Update to mic_adj.f90 to restore aerosols when small values of hydrometeors are set to zero.
This helps prevent too much artificial removal of aerosols that are contained within
hydrometeors, but rather restore this mass and assumed number to the regenerated aerosol
species. - Added a function to keep sedimention table parameter “densrtgt” from getting too large if the
model top density gets very low for model simulation that go very high up. This was occurring
for the RAMS SCM version applied to CCPP for host model tests with model tops over 50km
AGL. - Modifications to aerosol radiation in rad_aero.f90 to add absorbing carbon / smoke and also
changes to the dust modes to include dust that is low-absorbing, mid-absorbing, and high
absorbing. The associated imaginary indices of refraction (UV and VIS wavelengths) were
0.0015i, 0.003i, and 0.008i, respectively. Past versions used 0.008i which is typically too high.
The default choice can be chosen in rrad3.f90 with the hardcoded flag “dust_ref_im”; it will be
set as “2” by default which uses the mid-absorbing values of 0.003i. This can be user altered
depending on the type of dust absorption your want to simulate. If you make a change to
“dust_ref_im” you need to do a full model recompile for the change to take effect.
What's Changed
- Update of RAMS version 6.3.02 by @ldgrantcsu in #10
- Update .zenodo.json by @ldgrantcsu in #11
- Updating zenodo file by @freemansw1 in #12
Full Changelog: v6.3.01...v6.3.02
RAMS release version 6.3.01
VERSION 6.3.01
- Removing some unused / obsolete subroutines. Standardizing syntax related to newer
subroutines and calls. - Bug fix to HUCM-SBM microphysics that was only recently accidentally introduced due to a
merging of minimum hydrometeor mixing ratio thresholds between the bulk and bin
microphysics. This was fixed to keep thresholds separate in the separate microphysics schemes. - Additional fixes to HUCM for aerosol tracking and microphysical budgets related to vapor
growth of cloud and rain.
RAMS release version 6.3.00
VERSION 6.3.00
- Removing some unused variables in the calls to “predict” from the subroutine “hadvance”. Also
tested out some preliminary code there to install the R-A-W filter. See notes in the code about
installation. Testing shows that there are some issues in the installation that need a deeper look. - In micphys.f90, changed the minimum hydrometeor mixing ratio allowed from 1.e-12 to 1.e-9
kg/kg. This value is used for positive definite application for hydrometeor mixing ratios and for
determining if a subroutine is run within the microphysics. This prevents wasting runtime or
nearly negligible amounts of condensate. Testing show that this threshold change has only minor
impacts to solutions since these amounts are still quite small. However, runtime is sped up, and
compressed file space is reduced. - Changed “r3min” and “rimin” within subroutine “make_autotab” from 0.01e-6 to 0.01e8g/cm3. This allows for lookup table space involving collisions between rain or ice with cloud
water. This change prevents very small amounts of collector mass from collecting cloud water at
a more rapid pace. In a stratocumulus test, this reduced the frequency of occurrence of small rain
rates. This should be more realistic. - Small change in land surface model to prevent read-in soil moisture from exceeding the
volumetric capacity that coincides with the LEAF/SiB soil classes.
RAMS release version 6.2.16
This version is the first with a DOI.
VERSION 6.2.16
- Via Sean Freeman, we have updated HDF5 I/O routines for upgrading from hdf5-1.8.9 to hdf5-
1.10.x. Only newer hdf5 versions are available on some supercomputing systems, so the upgrade
was necessary. - New flag for using hdf5 with parallel compression. This feature can be turned on in the
“include.mk” compile file. At this time, this should be considered experimental because
sometimes parallel compression simply does not work. If it fails at runtime, it will fail at the first
model analysis file write time. So you can try it out and know right away if it will function or
not. - Sean Freeman also updated the hdf5 file/variable chunking size determination for better
optimization.