Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
f74be0a
General infrastructure changes for COSP-RTTOV.
jshaw35 Jun 8, 2024
f0b147a
Kitchen sink of cospsimulator_intr changes. Everything needed for RTT…
jshaw35 Jun 8, 2024
76818e6
Move assignment of allcld_ice and allcld_liq values
jshaw35 Aug 19, 2024
9005548
Merge tag 'cam6_4_097' into cam6_3_144_cosprttov
jshaw35 Jun 30, 2025
1db8f04
Remove initials, change inequality checks to modern fortran, remove o…
jshaw35 Jun 30, 2025
920045d
Prepend COSP-related namelist fields with "cosp_" and add more comple…
jshaw35 Jun 30, 2025
fa1e764
update imports and Makefile following COSPv2.0 reorg
jshaw35 Jul 8, 2025
5334bfe
Correct COSP utils path in Makefile
jshaw35 Jul 9, 2025
da5fa8b
Update cosp2 repo information for git fleximod
jshaw35 Jul 9, 2025
8e47f70
Address error in CESM build with COSP but not RTTOV.
jshaw35 Jul 9, 2025
2c433f0
Change cosp2 git fleximod reference to a stable hash following recomm…
jshaw35 Jul 9, 2025
7f3a24c
Missed correction
jshaw35 Jul 9, 2025
04adadb
Update cospsimulator_intr.F90 logic to work with new namelist variables.
jshaw35 Jul 16, 2025
aeb8df3
Correct allocation and assignment of cospstateIN%hgt_matrix_half. Pe…
jshaw35 Jul 16, 2025
496a7ec
Clean up print statement
jshaw35 Jul 16, 2025
7015d6b
Merge branch 'cam_development' into cam6_3_144_cosprttov
jshaw35 Jul 16, 2025
d2adfcc
At logic to masking that allows for swaths to work correctly.
jshaw35 Jul 16, 2025
a318f50
Revert "Clean up print statement"
jshaw35 Jul 16, 2025
4287774
Revert "Merge pull request #1343 from jimmielin/hplin/vdiff_answer_ch…
jshaw35 Jul 16, 2025
8b021fb
Revert changes for comparison of swathed fields.
jshaw35 Jul 16, 2025
7124d23
Clean up print statements
jshaw35 Jul 16, 2025
57e6fb4
Correct cld_cal_un outfld call to outside of if statement
jshaw35 Jul 17, 2025
fef0719
Update COSPv.20 tag
jshaw35 Jul 17, 2025
a5c4c17
Merge tag 'cam6_4_106' into cam6_3_144_cosprttov
jshaw35 Aug 5, 2025
1579bbd
Revert diffusion_solver and ChangeLog
jshaw35 Aug 5, 2025
e799da1
Change request for CAM PR
jshaw35 Aug 5, 2025
c90094c
Merge branch 'cam_development' into cam6_3_144_cosprttov
jshaw35 Sep 3, 2025
3d22bce
Merge branch 'cam6_3_144_cosprttov' of https://github.com/jshaw35/CAM…
jshaw35 Dec 29, 2025
6984db6
Merge remote-tracking branch 'upstream/cam_development' into cam6_3_1…
jshaw35 Dec 29, 2025
cbbc65a
Re-add COSP2 information to .gitmodules
jshaw35 Dec 29, 2025
95110d2
Put back in submodule information
cacraigucar Jan 13, 2026
7343973
Merge branch 'cam6_3_144_cosprttov' of https://github.com/jshaw35/CAM…
jshaw35 Jan 26, 2026
f6c158b
Bring Makefile.in inline with COSP changes.
jshaw35 Jan 26, 2026
b0b90eb
Merge tag 'cam6_4_147' into cam6_3_144_cosprttov
cacraigucar Jan 29, 2026
41a032a
Update cospsimulator_intr.F90 to COSP2.2.0 (part 1)
jshaw35 Feb 2, 2026
d79c714
Add appropriate dependencies for radar simulator and shift MODIS hist…
jshaw35 Feb 11, 2026
baa77f2
Merge branch 'temp_branch' into cam6_3_144_cosprttov
jshaw35 Feb 12, 2026
4a8eaec
Use symbolic links for RTTOV *.a files and move dependency on $(RTTOV…
jshaw35 Feb 18, 2026
b5bb6a3
Create COSP-RTTOV_examples for documenting usage.
jshaw35 Feb 18, 2026
b5de26e
Updates to set the RTTOV environment variable
cacraigucar Feb 26, 2026
ce734cd
Merge branch 'cam6_3_144_cosprttov' of https://www.github.com/jshaw35…
jshaw35 Feb 27, 2026
d2044bb
Remove commented out code
cacraigucar Feb 27, 2026
4a5dcac
Remove debug flag from COSP_SIMULATOR masterproc call.
jshaw35 Mar 5, 2026
e3b510e
Merge branch 'cam6_3_144_cosprttov' of https://www.github.com/jshaw35…
jshaw35 Mar 5, 2026
63fc821
Merge tag 'cam6_4_168' into cam6_3_144_cosprttov
cacraigucar Apr 27, 2026
437a9bb
Changes to get a single CAM_LINKED_LIBS to work
cacraigucar Apr 28, 2026
8b5ad28
test case for RTTOV
cacraigucar Apr 28, 2026
ecc23e7
Update the RTTOV library location
cacraigucar Apr 28, 2026
6130066
Add regression test, update COSP library and have Makefile point to a…
cacraigucar May 1, 2026
7cfceb6
update externals
cacraigucar May 1, 2026
c4a8c3b
Merge branch 'cam6_3_144_cosprttov' of https://github.com/jshaw35/CAM…
jshaw35 May 4, 2026
49dccb1
Respond to code review comments
jshaw35 May 4, 2026
482b6f8
Remove rttov_libdir
jshaw35 May 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@
fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git

[submodule "cosp2"]
path = src/physics/cosp2/src
url = https://github.com/CFMIP/COSPv2.0
path = src/physics/cosp2/src
url = https://github.com/CFMIP/COSPv2.0
fxrequired = AlwaysRequired
fxsparse = ../.cosp_sparse_checkout
fxtag = v2.1.9
fxDONOTUSEurl = https://github.com/CFMIP/COSPv2.0
fxtag = v2.2.1
fxDONOTUSEurl = https://github.com/CFMIP/COSPv2.0

[submodule "clubb"]
path = src/physics/clubb
Expand Down
4 changes: 4 additions & 0 deletions bld/config_files/definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,10 @@ Switch to enable building COSP simulator package. 1 => build COSP.
<entry id="cosp_libdir" value="">
Directory containing COSP library.
</entry>
<entry id="rttov" valid_values="0,1" value="0">
Switch to enable building the RTTOV radiative transfer model. With COSP.
1 => link COSP with RTTOV when building.
</entry>
<entry id="fv3core_libdir" value="">
Directory containing FV3CORE library.
</entry>
Expand Down
22 changes: 22 additions & 0 deletions bld/configure
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ OPTIONS
-co2_cycle This option modifies the CAM configuration by
increasing the number of advected constituents by 4.
-cosp Enable the COSP simulator.
-rttov Enable RTTOV within the COSP simulator.
-cppdefs <string> A string of user specified CPP defines. Appended to
Makefile defaults. E.g. -cppdefs '-DVAR1 -DVAR2'
-cpl Coupling framework [mct | nuopc]. Default: mct.
Expand Down Expand Up @@ -245,6 +246,7 @@ GetOptions(
"co2_cycle" => \$opts{'co2_cycle'},
"cosp" => \$opts{'cosp'},
"cosp_libdir=s" => \$opts{'cosp_libdir'},
"rttov" => \$opts{'rttov'},
"cppdefs=s" => \$opts{'cppdefs'},
"cpl=s" => \$opts{'cpl'},
"debug" => \$opts{'debug'},
Expand Down Expand Up @@ -1008,6 +1010,17 @@ if (defined $opts{'cosp'}) {
}
my $cosp = $cfg_ref->get('cosp');

# Option to build COSP with RTTOV
if ( $cosp and defined $opts{'rttov'}) {
$cfg_ref->set('rttov', $opts{'rttov'});
print "COSP-RTTOV enabled$eol";
}
elsif ( defined $opts{'rttov'} ) {
die "configure ERROR: rttov defined but cosp undefined. \n";
}

my $rttov = $cfg_ref->get('rttov');

# cosp is only implemented with the cam5, cam6, and cam7 physics packages
if ($cosp and ($phys_pkg ne 'cam5' and $phys_pkg ne 'cam6' and $phys_pkg ne 'cam7')) {
die "configure ERROR: cosp not implemented for the $phys_pkg physics package \n";
Expand Down Expand Up @@ -1850,6 +1863,15 @@ if ($cosp) {
die "** Could not create the cosp build directory: $bld_dir\n";
}

# Turn on RTTOV.
# NOTE: Specialized linking with RTTOV is handled here and in buildlib. A single, unified linking
if ($rttov) {
# Add the rttov library dependencies to the ldflags. The cosp-rttov Makefile links these libraries to the $cosp_libdir path.
# A more functional code would read these ldflags from Makefile.rttov in the COSP2 directory in CAM instead of hardcoding.
$ldflags .= " -L$cosp_libdir -lrttov13_wrapper -lrttov13_mw_scatt -lrttov13_brdf_atlas -lrttov13_emis_atlas -lrttov13_other -lrttov13_parallel -lrttov13_coef_io -lrttov13_hdf -lrttov13_main ";
$cfg_ref->set('ldflags', $ldflags);
print "Adding rttov libraries as dependencies in ldflags.\n";
}
Comment on lines +1868 to +1874
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just adding a note here (maybe to include in a future work issue) that there are two locations (here and in buildlib) that are handling specialized linking for RTTOV, and so it would probably be good long-term to unify them in a single location.

# Create the COSP Makefile from a template and copy it into the cosp bld directory
if ($print) { print "creating $cosp_libdir/Makefile\n"; }
write_cosp_makefile("$cfgdir/../src/physics/cosp2/Makefile.in", "$cosp_libdir/Makefile");
Expand Down
171 changes: 171 additions & 0 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2454,6 +2454,15 @@ will be saved.
Default: FALSE
</entry>

<entry id="cosp_lrttov_sim" type="logical" category="cosp"
group="cospsimulator_nl" valid_values="">
If true, RTTOV simulator will be run and output
will be saved according to the appropriate RTTOV
instrument namelist files in "rttov_instrument_namelists".

Default: FALSE
</entry>

<!-- COSP input control parameters -->

<entry id="cosp_ncolumns" type="integer" category="cosp"
Expand All @@ -2463,6 +2472,168 @@ This default logical is set in cospsimulator_intr.F90
Default: 50
</entry>

<entry id="cosp_rttov_Ninstruments" type="integer" category="cosp"
group="cospsimulator_nl" valid_values="">
Number of RTTOV instruments to simulate.
This default logical is set in cospsimulator_intr.F90
Default: 0
</entry>

<entry id="cosp_rttov_instrument_namelists" type="char*256(50)" category="cosp"
group="cospsimulator_nl" valid_values="" >
List of RTTOV instrument namelist files to read when running RTTOV in COSP.
File paths are read relative to the case run directory
(e.g. /glade/derecho/scratch/$USER/$CASENAME/run/) if an absolute path is not provided (recommended). Each namelist file
contains information specifying the simulated instrument, channels, and
outputs. Templates and instructions can be found in src/physics/cosp2/COSP-RTTOV_examples/.
Default: none
</entry>

<!-- Swathing input control parameters. -->
<entry id="cosp_N_SWATHS_ISCCP" type="integer*10" category="cosp"
Comment thread
cacraigucar marked this conversation as resolved.
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP ISCCP data.
Default: none
</entry>

<entry id="cosp_N_SWATHS_MISR" type="integer*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP MISR data.
Default: none
</entry>

<entry id="cosp_N_SWATHS_MODIS" type="integer*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP MODIS data.
Default: none
</entry>

<entry id="cosp_N_SWATHS_CSCAL" type="integer*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP CloudSat-CALIPSO data.
Default: none
</entry>

<entry id="cosp_N_SWATHS_PARASOL" type="integer*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP PARASOL data.
Default: none
</entry>

<entry id="cosp_N_SWATHS_ATLID" type="integer*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Number of satellite sampling swaths used to mask COSP ATLID data.
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_ISCCP" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP ISCCP data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_MISR" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP MISR data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_MODIS" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP MODIS data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_CSCAL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP CloudSat-CALIPSO data. The
sampling "local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_PARASOL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP PARASOL data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_LOCALTIMES_ATLID" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath localtimes (hours) for masking COSP ATLID data. The sampling
"local time" refers to a linear shift from UTC as a function of a
gridcell’s longitude (t_local = t_UTC − longitude * 24/360).
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_ISCCP" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP ISCCP data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_MISR" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP MISR data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_MODIS" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP MODIS data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_CSCAL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP CSCAL data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_PARASOL" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP PARASOL data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<entry id="cosp_SWATH_WIDTHS_ATLID" type="real*10" category="cosp"
group="cospsimulator_nl" valid_values="" >
Swath widths (kilometers) for masking COSP ATLID data. The "swath width"
determines the spatial region around each local time that is simulated.
Supplying a swath width in units of distance rather than radians produces
a larger sampling density at higher latitudes that is consistent with
observations.
Default: none
</entry>

<!-- COSP output parameters -->

<entry id="cosp_histfile_num" type="integer" category="cosp"
Expand Down
43 changes: 34 additions & 9 deletions cime_config/buildlib
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,40 @@ def _build_cam(caseroot, libroot, bldroot):
except:
raise RuntimeError("CAM's 'buildcpp' script failed to run properly.")

#--------------------------------------------------------
# Check if RTTOV is being requested by the user,
# and if so, set a needed environment variable
# and update the CAM_LINKED_LIBS list:
#--------------------------------------------------------

env_vars = ''
config_opts = case.get_value("CAM_CONFIG_OPTS")

if "-rttov" in config_opts:
# Set environment variable needed by COSP Makefile
env_vars = "env RTTOV=true "

hdf5_lib_path = os.environ.get("NCAR_LDFLAGS_HDF5")

# Add HDF5 library to CAM linked library list:
linked_libs = case.get_value("CAM_LINKED_LIBS",
subgroup="build_component_cam")
hdf5_link_opts = f" -L{hdf5_lib_path}"
hdf5_link_opts += " -lhdf5_fortran -lhdf5_hl_fortran -lhdf5"
case.set_value("CAM_LINKED_LIBS",
linked_libs + hdf5_link_opts)


with Case(caseroot) as case:

casetools = case.get_value("CASETOOLS")
srcroot = case.get_value("SRCROOT")
gmake_j = case.get_value("GMAKE_J")
gmake = case.get_value("GMAKE")
mach = case.get_value("MACH")
casetools = case.get_value("CASETOOLS")
srcroot = case.get_value("SRCROOT")
gmake_j = case.get_value("GMAKE_J")
gmake = case.get_value("GMAKE")
mach = case.get_value("MACH")
config_opts = case.get_value("CAM_CONFIG_OPTS")
user_incldir = None
cam_dycore = case.get_value("CAM_DYCORE")
cam_dycore = case.get_value("CAM_DYCORE")
if cam_dycore == "fv3":
slr = os.path.abspath(case.get_value("SHAREDLIBROOT"))
compiler = case.get_value("COMPILER")
Expand Down Expand Up @@ -138,14 +163,14 @@ def _build_cam(caseroot, libroot, bldroot):
expect(os.path.isfile(libfms), "FMS library not found {}".format(libfms))
shutil.copy(libfms, libroot)

# -------------------------------------------------------
# build the library
# -------------------------------------------------------
complib = os.path.join(libroot, "libatm.a")
makefile = os.path.join(casetools, "Makefile")

cmd = "{} complib -j {} COMP_NAME=cam COMPLIB={} -f {} {} ".format(
gmake, gmake_j, complib, makefile, get_standard_makefile_args(case)
cmd = "{}{} complib -j {} COMP_NAME=cam COMPLIB={} -f {} {} ".format(
env_vars, gmake, gmake_j, complib, makefile,
get_standard_makefile_args(case)
)
if cam_cppdefs:
cmd += " USER_CPPDEFS='{}'".format(cam_cppdefs)
Expand Down
1 change: 1 addition & 0 deletions cime_config/config_component.xml
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@
<desc>User mods to apply to specific compset matches. </desc>
</entry>


<help>
=========================================
CAM naming conventions
Expand Down
9 changes: 9 additions & 0 deletions cime_config/testdefs/testlist_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1138,6 +1138,15 @@
</options>
</test>

<test compset="QPC7" grid="ne3_ne3_mg37" name="ERC_D_Ln9" testmods="cam/outfrq9s_rttov">
<machines>
<machine name="derecho" compiler="intel" category="aux_cam"/>
</machines>
<options>
<option name="comment" >CAM7 aquaplanet w/ RTTOV</option>
<option name="wallclock">00:20:00</option>
</options>
</test>
<test compset="QPC6" grid="f19_f19_mt232" name="ERC_D_Ln9" testmods="cam/outfrq3s_cosp">
<machines>
<machine name="derecho" compiler="intel" category="aux_cam"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
./xmlchange --append CAM_CONFIG_OPTS="-cosp -rttov"
./xmlchange ROF_NCPL=\$ATM_NCPL
./xmlchange GLC_NCPL=\$ATM_NCPL
./xmlchange FORCE_BUILD_SMP="TRUE"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
mfilt=1,1,1,1,1,1
ndens=1,1,1,1,1,1
nhtfrq=9,9,9,9,9,9
write_nstep0=.true.
inithist='ENDOFRUN'
cosp_lrttov_sim=.true.
cosp_rttov_Ninstruments=1
cosp_rttov_instrument_namelists='/glade/campaign/cesm/community/amwg/rttov/RTTOV/namelists/cosp2_rttov_inst_CESM.txt'
27 changes: 27 additions & 0 deletions cime_config/testdefs/testmods_dirs/cam/outfrq9s_rttov/user_nl_clm
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
!----------------------------------------------------------------------------------
! Users should add all user specific namelist changes below in the form of
! namelist_var = new_namelist_value
!
! Include namelist variables for drv_flds_in ONLY if -megan and/or -drydep options
! are set in the CLM_NAMELIST_OPTS env variable.
!
! EXCEPTIONS:
! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting
! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting
! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting
! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting
! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting
! Set irrigate by the CLM_BLDNML_OPTS -irrig setting
! Set dtime with L_NCPL option
! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options
! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases
! (includes $inst_string for multi-ensemble cases)
! Set glc_grid with CISM_GRID option
! Set glc_smb with GLC_SMB option
! Set maxpatch_glcmec with GLC_NEC option
! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable
!----------------------------------------------------------------------------------
hist_nhtfrq = 9
hist_mfilt = 1
hist_ndens = 1

Loading
Loading