Skip to content

Commit 7b87f9c

Browse files
reconcile with dev-access-esm1.6 - util- snmin threshold thru namelist (#552)
## Description In ESM1.6 we have upgraded snmin(the threshold snow depth triggering 3-layer treatment) to a runtime configurable constant. Merging ESM1.6 code we already have modifications to cable_common and cable_runtime_opts. Strictly speaking, it shouldn't be necessary to make any mods to offline at all. However, with some very minor modifications (on top of those that are already coming through the merge anyway), we can implement snmin as a runtime configurable constant in offline as well. put snmin=1.0 in cable.nml to reproduce main. ## Type of change Enhancement following ESM1.6 ## Checklist - [x] The new content is accessible and located in the appropriate section - [x] I have checked that links are valid and point to the intended content - [x] I have checked my code/text and corrected any misspellings ## Testing - [x] Are the changes bitwise-compatible with the main branch? If working on an optional feature, are the results bitwise-compatible when this feature is off? If yes, copy benchcab output showing successful completion of the bitwise compatibility tests or equivalent results below this line. 2025-03-03 16:40:25,871 - INFO - benchcab.benchcab.py:391 - 0 failed, 20 passed <!-- readthedocs-preview cable start --> ---- 📚 Documentation preview 📚: https://cable--552.org.readthedocs.build/en/552/ <!-- readthedocs-preview cable end --> --------- Co-authored-by: Claire Carouge <[email protected]>
1 parent 284e1ef commit 7b87f9c

File tree

6 files changed

+21
-159
lines changed

6 files changed

+21
-159
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11

22
# Namelist file cable.nml #
33

4-
The namelist file for CABLE is cable.nml. For offline applications it
5-
should be located in the directory in which you are running CABLE. For
6-
ACCESS cases, cable.nml should be located in ~/CABLE-AUX/UM on the
7-
machine that CABLE is being executed on.
4+
The control namelist file for CABLE is cable.nml.
85

9-
The cable.nml file includes some settings that are common across all CABLE
10-
applications and others that are required only for offline
11-
applications. The following are annotated examples of cable.nml:
6+
The cable.nml file includes some settings that are common across all CABLE applications and others that are required only for offline applications. Please refer to [the supported configurations][config_examples] for namelist examples.
127

138
!!! Note
149

@@ -40,6 +35,7 @@ applications. The following are annotated examples of cable.nml:
4035
| spinup | logical | .TRUE. .FALSE. | .FALSE. | Spin up the model when .TRUE. |
4136
| delsoilM | real | any real number | uninitialised | Allowed variation in soil moisture for spin up. |
4237
| delsoilT | real | any real number | uninitialised | Allowed variation in soil temperature for spin up. |
38+
| snmin | real | any real number | 1.0 | Threshold/minimum snow depth triggering 3-layer snow model. \((m)\) |
4339
| output%restart | logical | .TRUE. .FALSE. | uninitialised | Create a restart file when .TRUE.. |
4440
| output%met | logical | .TRUE. .FALSE. | .FALSE. | Output input meteorological data when .TRUE.. |
4541
| output%flux | logical | .TRUE. .FALSE. | .FALSE. | Output convective, runoff, NEE when TRUE |
@@ -138,151 +134,7 @@ applications. The following are annotated examples of cable.nml:
138134
| cable_user%NtilesThruMetFile | logical | .TRUE. .FALSE. | .FALSE. | Specify Ntiles through met file. |
139135
| cable_user%l_ice_consistency | logical | .TRUE. .FALSE. | .FALSE. | If true, ensures consistency between soil and vegetation tiles with permanent ice. All tiles with permanent ice for soil will have ice for vegetation and vice-versa. All the parameters for these new ice tiles are updated to the ice parameters. |
140136

141-
## For offline applications ##
142-
143-
```fortran
144-
&cable
145-
filename%met = '/projects/access/CABLE-AUX/offline/TumbaFluxnet.1.3_met.nc'
146-
filename%out = 'out_cable.nc'
147-
filename%log = 'log_cable.txt'
148-
filename%restart_in = ' '
149-
filename%restart_out = './restart_out.nc'
150-
filename%type = '/projects/access/CABLE-AUX/offline/gridinfo_CSIRO_1x1.nc'
151-
vegparmnew = .TRUE. ! using new format when true
152-
soilparmnew = .TRUE. ! using new format when true
153-
spinup = .TRUE. ! do we spin up the model?
154-
delsoilM = 0.001 ! allowed variation in soil moisture for spin up
155-
delsoilT = 0.01 ! allowed variation in soil temperature for spin up
156-
output%restart = .TRUE. ! should a restart file be created?
157-
output%met = .TRUE. ! input met data
158-
output%flux = .TRUE. ! convective, runoff, NEE
159-
output%soil = .TRUE. ! soil states
160-
output%snow = .TRUE. ! snow states
161-
output%radiation = .TRUE. ! net rad, albedo
162-
output%carbon = .TRUE. ! NEE, GPP, NPP, stores
163-
output%veg = .TRUE. ! vegetation states
164-
output%params = .TRUE. ! input parameters used to produce run
165-
output%balances = .TRUE. ! energy and water balances
166-
check%ranges = 1 ! Range-checks on every timestep
167-
check%exit = .TRUE. ! Exit the program if range checks fail
168-
check%energy_bal = .TRUE. ! energy balance
169-
check%mass_bal = .TRUE. ! water/mass balance
170-
verbose = .TRUE. ! write details of every grid cell init and params to log?
171-
leaps = .TRUE. ! calculate timing with leap years
172-
logn = 88 ! log file number - declared in input module
173-
fixedCO2 = 350.0 ! if not found in met file, in ppmv
174-
spincasa = .FALSE. ! spin casa before running the model if TRUE, and should be set to FALSE if spincasainput = .TRUE.
175-
l_casacnp = .FALSE. ! using casaCNP with CABLE
176-
l_laiFeedbk = .FALSE. ! using prognostic LAI
177-
l_vcmaxFeedbk = .FALSE. ! using prognostic Vcmax
178-
icycle = 0 ! BP pull it out from casadimension and put here; 0 for not using casaCNP, 1 for C, 2 for C+N, 3 for C+N+P
179-
casafile%cnpipool='/projects/access/CABLE-AUX/core/biogeochem/poolcnpInTumbarumba.csv' !
180-
casafile%cnpbiome='/projects/access/CABLE-AUX/core/biogeochem/pftlookup_csiro_v16_17tiles.csv' ! biome specific BGC parameters
181-
casafile%cnpepool='poolcnpOut.csv' ! end of run pool size
182-
casafile%cnpmetout='casamet.nc' ! output daily met forcing for spinning casacnp
183-
casafile%cnpmetin='' ! list of daily met files for spinning casacnp
184-
casafile%phen='/projects/access/CABLE-AUX/core/biogeochem/modis_phenology_csiro.txt' ! modis phenology
185-
casafile%cnpflux='cnpfluxOut.csv'
186-
ncciy = 0 ! 0 for not using gswp; 4-digit year input for year of gswp met
187-
gswpfile%rainf = 'gswp/Rainf_gswp1987.nc'
188-
gswpfile%snowf = 'gswp/Snowf_gswp1987.nc'
189-
gswpfile%LWdown= 'gswp/LWdown_srb1987.nc'
190-
gswpfile%SWdown= 'gswp/SWdown_srb1987.nc'
191-
gswpfile%PSurf = 'gswp/PSurf_ecor1987.nc'
192-
gswpfile%Qair = 'gswp/Qair_cru1987.nc'
193-
gswpfile%Tair = 'gswp/Tair_cru1987.nc'
194-
gswpfile%wind = 'gswp/Wind_ncep1987.nc'
195-
redistrb = .FALSE. ! Turn on/off the hydraulic redistribution
196-
wiltParam = 0.5
197-
satuParam = 0.8
198-
cable_user%FWSOIL_SWITCH = 'standard' ! choices are: 'standard', 'non-linear extrapolation' or 'Lai and Ktaul 2000'
199-
cable_user%DIAG_SOIL_RESP = 'ON '
200-
cable_user%LEAF_RESPIRATION = 'ON '
201-
cable_user%RUN_DIAG_LEVEL= 'BASIC' ! choices are: 'BASIC', 'NONE'
202-
cable_user%CONSISTENCY_CHECK= .TRUE. ! TRUE outputs combined fluxes at each timestep for comparison to a control run
203-
cable_user%CASA_DUMP_READ = .FALSE. ! TRUE reads CASA forcing from netcdf format
204-
cable_user%CASA_DUMP_WRITE = .FALSE. ! TRUE outputs CASA forcing in netcdf format
205-
cable_user%SSNOW_POTEV= 'HDM' ! Humidity Deficit Method
206-
&end
207-
```
208-
209-
## For ACCESS applications ##
210-
211-
212-
```fortran
213-
&cable
214-
!!
215-
!! cable namelist variables applicable to ACCESS/UM runs
216-
!! default parameter files are available in the following directory on raijin
217-
!! vegetation parameters in def_veg_params.txt or for vbeta=1 veg_params_vbeta1.txt
218-
!! vbeta=1 recommended but should be tested for your applications
219-
!
220-
filename%veg = '/projects/access/CABLE-AUX/core/biogeophys/veg_params_vbeta1.txt'
221-
!
222-
!! or checkout to your own area
223-
! filename%veg = '~/CABLE-AUX/core/biogeophys/def_veg_params.txt' !relative to your home dir
224-
!!
225-
!! soil parameters in def_soil_params.txt. Not used except for isoil=9 (permanent ice) and
226-
!! rhosoil and css values (isoil=2 used for all non-ice tiles).
227-
!! Other soil parameters from spatially explicit ancillary files.
228-
!
229-
filename%soil = '/projects/access/CABLE-AUX/core/biogeophys/def_soil_params.txt'
230-
!
231-
! filename%soil = '~/CABLE-AUX/core/biogeophys/def_soil_params.txt' !relative to your home dir
232-
!
233-
!! cable_user flags
234-
!
235-
cable_user%CABLE_RUNTIME_COUPLED = .TRUE. ! controls whether snow initialised if
236-
! ktau_gl=1
237-
! must be set true for coupled run
238-
! use true for atmosphere only runs if
239-
! want to take snow from start dump
240-
! default is .false.
241-
cable_user%FWSOIL_SWITCH = 'standard' ! Controls root water uptake function
242-
! choices are:
243-
! 'standard'
244-
! 'non-linear extrapolation'
245-
! 'Lai and Ktaul 2000' NB TYPO IS IN CODE (should be Katul)
246-
cable_user%DIAG_SOIL_RESP = 'ON ' ! Controls soil respiration scheme when CASA-CNP not used
247-
! 'ON' uses scheme tuned with parameter veg%vegcf
248-
! 'OFF' uses scheme tuned with parameter veg%rs20
249-
cable_user%LEAF_RESPIRATION = 'OFF' ! Controls what is output into the GPP stash variable
250-
! 'OFF' is true GPP (photosynthesis + leaf respiration)
251-
! 'ON' is only photosynthesis, canopy%fpn
252-
cable_user%RUN_DIAG_LEVEL= 'BASIC' ! Controls output from CABLE to standard out
253-
! choices are:
254-
! 'BASIC'
255-
! 'NONE'
256-
! 'zero' (in cable_explicit_driver - what does this do?)
257-
cable_user%ssnow_POTEV = '' ! Controls method used for soil evaporation
258-
! Choices are:
259-
! 'P-M' Penman_Monteith, otherwise defaults to
260-
! humidity deficit method
261-
!!--------------Test Switches--------------
262-
cable_user%l_new_roughness_soil = .FALSE. ! for new soil roughness, E.Kowalczyk Mar14
263-
cable_user%l_new_runoff_speed = .FALSE. ! for new increase in runoff speed, E.Kowalczyk Mar14
264-
cable_user%l_new_reduce_soilevp = .FALSE. ! to reduce soil evaporation, E.Kowalczyk Mar14
265-
!!-----------------------------------------
266-
!
267-
redistrb = .FALSE. ! Turn on/off the hydraulic redistribution
268-
wiltParam = 0.5 ! only used if hydraulic redistribution .true.
269-
satuParam = 0.8 ! only used if hydraulic redistribution .true.
270-
!
271-
! CASA-CNP flags
272-
l_casacnp = .true. ! redundant? actually controlled by icycle
273-
icycle = 3 ! Controls whether CASA-CNP is run and for which species
274-
! Choices are:
275-
! 0 CASA-CNP not run
276-
! 1 Carbon only
277-
! 2 Carbon and nitrogen
278-
! 3 Carbon, nitrogen and phosphorus
279-
l_laiFeedbk = .TRUE. ! using prognostic LAI
280-
l_vcmaxFeedbk = .TRUE. ! using prognostic Vcmax
281-
! filenames for CASA-CNP input files
282-
casafile%cnpbiome='~/CABLE-AUX/core/biogeochem/pftlookup_csiro_v16_17tiles.csv' ! biome specific BGC parameters
283-
casafile%phen='~/CABLE-AUX/core/biogeochem/modis_phenology_csiro.txt' ! phenology by latitude (modis derived)
284-
&end
285-
```
286137

287138
<!-- markdown-link-check-disable-line --> [Walker]: https://doi.org/10.1002/ece3.1173
288-
[obsolete]: ../other_resources/obsolete_and_deprecated_features/obsolete_and_deprecated_features.md
139+
[obsolete]: ../other_resources/obsolete_and_deprecated_features/obsolete_and_deprecated_features.md
140+
[config_examples]: index.md#example-configurations

documentation/docs/user_guide/inputs/index.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
CABLE can be used in many configurations, in part determined by the input files supplied to the code.
44
Table 1 lists the various input files used in offline CABLE. A description of each file can be accessed through the left navigation bar.
55

6-
76
## Table 1: CABLE input files for the offline case
87

98
| Input file | Description |
@@ -16,4 +15,11 @@ Table 1 lists the various input files used in offline CABLE. A description of ea
1615
| Surface forcing | information about the surface characteristics |
1716
| Restart | information from a previous CABLE run to restart a simulation |
1817

18+
## Example configurations
19+
20+
CABLE is used as a standalone model or in the ACCESS Earth System model. You can find example configurations for each of its applications at:
21+
22+
- CABLE standalone: files under CABLE/src/offline
23+
- ACCESS-ESM1.5: ACCESS-NRI supported configurations at [access-esm1.5-configs repository][access-esm1.5-configs]
1924

25+
[access-esm1.5-configs]: https://github.com/ACCESS-NRI/ACCESS-esm1.5-configs/

src/offline/cable.nml

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
redistrb = .FALSE. ! Turn on/off the hydraulic redistribution
5555
wiltParam = 0.5
5656
satuParam = 0.8
57+
snmin = 1.0
5758
cable_user%FWSOIL_SWITCH = 'standard' ! choices are:
5859
! 1. standard
5960
! 2. non-linear extrapolation

src/offline/cable_driver_common.F90

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ MODULE cable_driver_common_mod
1010
redistrb, &
1111
wiltParam, &
1212
satuParam, &
13+
snmin, &
1314
cable_user, &
1415
gw_params, &
1516
cable_runtime
@@ -93,6 +94,7 @@ MODULE cable_driver_common_mod
9394
redistrb, &
9495
wiltParam, &
9596
satuParam, &
97+
snmin, &
9698
cable_user, & ! additional USER switches
9799
gw_params
98100

src/util/cable_common.F90

+1-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ MODULE cable_common_module
2626
USE cable_runtime_opts_mod ,ONLY : cable_user
2727
USE cable_runtime_opts_mod ,ONLY : satuparam
2828
USE cable_runtime_opts_mod ,ONLY : wiltparam
29+
USE cable_runtime_opts_mod ,ONLY : snmin
2930

3031
IMPLICIT NONE
3132

@@ -205,9 +206,6 @@ MODULE cable_common_module
205206
REAL, SAVE :: &!should be able to change parameters!
206207
max_glacier_snowd=1100.0,&
207208
snow_ccnsw = 2.0, &
208-
!jh!an:clobber - effectively force single layer snow
209-
!snmin = 100.0, & ! for 1-layer;
210-
snmin = 1., & ! for 3-layer;
211209
max_ssdn = 750.0, & !
212210
max_sconds = 2.51, & !
213211
frozen_limit = 0.85 ! EAK Feb2011 (could be 0.95)

src/util/cable_runtime_opts_mod.F90

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ MODULE cable_runtime_opts_mod
22

33
IMPLICIT NONE
44

5-
! hydraulic_redistribution parameters _soilsnow module
6-
REAL :: wiltParam = 0.0, satuParam = 0.0
5+
! hydraulic_redistribution parameters _soilsnow module
6+
REAL :: wiltParam = 0.0
7+
REAL :: satuParam = 0.0
8+
! depth at which to switch to 3 layer snow, default is ESM1.5 value
9+
REAL :: snmin = 1.0
710

811
! user switches turned on/off by the user thru namelists
912
! CABLE-2.0 user switches all in single namelist file cable.nml

0 commit comments

Comments
 (0)