Skip to content

Macro handling the parameter with Int type #427

@loganxingfang

Description

@loganxingfang

I have a CRHM user that has a project with 'Parameter_change' macro prj. In the macro, there are a few parameters that are declared as Int type; that is, they are not floating numbers. See below:

declparam, groundcover, NHRU,"[1]", 1, 6, "groundcover: 1 - bare soil, 2 - row crop, 3 - poor pasture, 4 - small grains, 5 - good pasture, 6 - forested.", (), Int

declparam, cov_type, NHRU,"[1]", 0, 2, "Vegetation evaporation for HRU: 0 = bare soil (no evaporation), 1 = crops (recharge layer), 2 = grasses & shrubs (all soil moisture)", (), Int

declparam, change_enable, NHRU, "[0]", 0, 1, "enable parameter change by macro, 1 -> enable", (), Int

I attached this prj file
Interior grasslands(IG)_t1_p2_d00_1_with_Crop_rotation_macro_m2_LF_edit_16Mar2023_obs_directory.zip

The obs files used by the prj file are
obs_files.zip

I opened this prj file in Borland CRHM, and have the screen shot below showing all parameters are displayed in Parameters GUI. Parameter groundcover declared in the 'Parameter_change' macro has same parameter values as that in PrairieInfiltration module, so it is listed in the Shared.
screen shot 1

However, when I opened this prj file in CRHMcode chrm, then none of those parameters that declared as Int type in the 'Parameter_change' macro are displayed in Parameters GUI. See screen shot:
screen shot 2

In addition, I thought maybe CRHMcode crhm needs more explicit declaration for the Int type parameter in the macro, so I added double quotes for () and Int for these parameters:

declparam, groundcover, NHRU,"[1]", 1, 6, "groundcover: 1 - bare soil, 2 - row crop, 3 - poor pasture, 4 - small grains, 5 - good pasture, 6 - forested.", "()", "Int"

declparam, cov_type, NHRU,"[1]", 0, 2, "Vegetation evaporation for HRU: 0 = bare soil (no evaporation), 1 = crops (recharge layer), 2 = grasses & shrubs (all soil moisture)", "()", "Int"

declparam, change_enable, NHRU, "[0]", 0, 1, "enable parameter change by macro, 1 -> enable", "()", "Int"

I saved these changes in the prj
Interior grasslands(IG)_t1_p2_d00_1_with_Crop_rotation_macro_m2_LF_edit_16Mar2023_obs_directory_for_crhm.zip

While these Int type parameters are still not displayed in Parameters GUI
screen shot 3

I think there might some bug in CRHMcode that does not handle the declaration of parameter with Int type at the moment.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions