Skip to content

Add WSMR missing crop surface types #136

Description

@maggiehendry

#115 highlighted that there was a surface configuration with npft=9 with ncpft=4 with a different set of surface tiles than the npft=9 with ncpft=0. There are 21 upgrade macro files (version*) that contain a mention of npft, but only 3 that contain both npft and ncpft. There are a lot of incomplete upgrade macros that haven't accounted for ncpft. This issue adds the missing four crops types identified as WSMR (wheat, soybean, maize, rice) (see Osborne, T., Gornall, J., Hooker, J., Williams, K., Wiltshire, A., Betts, R., and Wheeler, T.: JULES-crop: a parametrisation of crops in the Joint UK Land Environment Simulator, Geosci. Model Dev., 8, 1139–1155, https://doi.org/10.5194/gmd-8-1139-2015, 2015.).

This ticket needs to be committed before #115.

The upgrade macro addressing this issue does not correct the jules_surface_types namelist as this would require making more assumptions about the surface configuration. Instead the upgrade macro adds the missing crop varieties with value "0" and are triggered off when ncpft = 0, but will fail the validator macro of npft > 0 highlighting to the user that these must be set properly. If ncpft > 0 the upgrade macro issues the following warning:

[U] Upgrade_vn8.2-vn8.2_t136: warnings: 1
    None=None=None
        This configuration contains crop varieties (ncpft > 0). Previous upgrade macros were incomplete for configurations with crops. Please see https://github.com/MetOffice/jules/issues/136 for guidance.
        * jules_surface_types: This macro adds the WSMR crop varieties with an index of 0, rather than assume the surface types present. This namelist will need correcting.
        * jules_pftparm: Please ensure parameters are correct as upgrade macros may have assumed the wrong surface types.

It is highly likely that a configuration with npft=9 with ncpft=4 will require the following jules_surface_types namelist. This is the original natural PFTs configuration (npft=5) followed by the four WSMR crop PFTs (ncpft=4). The crop PFTs need to follow on from the natural PFTs.

[namelist:jules_surface_types]
brd_leaf=1
c3_crop_rice=9
c3_crop_soybean=7
c3_crop_wheat=6
c3_grass=3
!!c3_irrig=0
c4_crop_maize=8
c4_grass=4
!!c4_irrig=0
!!elev_ice=0
!!elev_rock=0
ice=13
lake=11
ncpft=4
ndl_leaf=2
nnvg=4
npft=9
shrub=5
soil=12
urban=10
!!urban_canyon=0
!!urban_roof=0

There are code checks in place and if the namelist is not corrected after the upgrade macro is run. The error message will be of the form (dependent on the original configuration).

[INFO] jules_surface_types: Contents of namelist jules_surface_types
[INFO] jules_surface_types:    npft =            9
[INFO] jules_surface_types:    ncpft =            4
[INFO] jules_surface_types:    nnvg =            4
[INFO] jules_surface_types:    brd_leaf_dec =            1
[INFO] jules_surface_types:    brd_leaf_eg_trop =            2
[INFO] jules_surface_types:    brd_leaf_eg_temp =            3
[INFO] jules_surface_types:    ndl_leaf_dec =            4
[INFO] jules_surface_types:    ndl_leaf_eg =            5
[INFO] jules_surface_types:    c3_grass =            6
[INFO] jules_surface_types:    c4_grass =            7
[INFO] jules_surface_types:    crop_wheat =            0
[INFO] jules_surface_types:    crop_soybean =            0
[INFO] jules_surface_types:    crop_maize =            0
[INFO] jules_surface_types:    crop_rice =            0
[INFO] jules_surface_types:    shrub_dec =            8
[INFO] jules_surface_types:    shrub_eg =            9
[INFO] jules_surface_types:    urban =           10
[INFO] jules_surface_types:    lake =           11
[INFO] jules_surface_types:    soil =           12
[INFO] jules_surface_types:    ice =           13
[INFO] jules_surface_types: - - - - - - end of namelist - - - - - -
[INFO] set_tile_id_arrays:  Surface types present =    101    102    103    201    202      3      4    501    502      6      7      8      9
[INFO] check_jules_surface_types: crop_wheat tile is present but is out of range
[INFO] check_jules_surface_types: crop_soybean tile is present but is out of range
[INFO] check_jules_surface_types: crop_maize tile is present but is out of range
[INFO] check_jules_surface_types: crop_rice tile is present but is out of range
[INFO] check_jules_surface_types: The number of surface types present in namelist is either not consistent with the number expected (ntype) or
       the number of checks completed (nchecks); ntype = 13, nchecks = 17
[INFO] check_jules_surface_types: This could indicate that the surface configuration is incorrect or a new surface type does not have a range check.

The WSMR has been added with 0 and are present in the configuration, but have an invalid range [nnpft+1:npft]. The total number of surface types present in the configuration is therefore 17 and 17 range checks have been performed. In this configuration though, ntype = npft + nnvg = 13. The IDs of the valid surface types are "101, 102, 103, 201, 202, 3, 4, 501, 502, 6, 7, 8, 9", which is what the configuration was incorrectly, originally assumed to be.

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions