IMPORTANT: current procedure is to make changes to the develop branch and create pull requests into the develop branch. When making this Pull Reqest make sure to change the base branch to "develop".
TYPE: enhancement
KEYWORDS: lake model, enhancement, bugfix water_simple
SOURCE: Bert Kruyt, NCAR
DESCRIPTION OF CHANGES: The lake model from WRF has been adapted for- and included into ICAR. now, selecting water=3 in the namelist runs this lakemodel for lake grid points, while the simple water model is used for ocean gridpoints.
changes to original code
nr of soil levels below lake points reduced from 10 to 4
the clauses that determine lake points on init has been slightly modified.
Requirements:
the LU_INDEX in the hi-res file should have a lake category. If this is not provided, the lake model can estimate lake points based on the condition vegtype==water & hgt>lake_min_elev (currently hardcoded at 5m, as in WRF). This option is not well tested!
the hi-res domain file should have a lake-depth variable. If this is not provided, the lakedepth_default value is used (currently hardcoded at 50m)
Further developments/improvements:
several variables are currently hardcoded, that could become namelist options:
using the lake model without a lakes category in the input data is not well tested, and anecdotally using the condition vegtype==water & hgt>lake_min_elev to estimate lake points led to some ocean points being seen as lake. So if one wants to use this option, this should be investigated prior. Currently the model prints a warning when the lake model is used without a lakes category in the input.
Also, during development it appeared that both Noah, and the simple water model were turned on/off based on the condition of land_mask being 2 (water), while in many WPS-generated hi-res files, water=0 in the LANDMASK variable. in Noah(MP)_init, land_mask was being overwritten to 2 for LU_INDEX(vegtype) == water, but that means only oceans (and not lakes) were reset to land_mask=2. Consequentially, the simple water model only ran for oceans, and Noah(MP) ran for lake-gridpoints.
This has been resolved (redundantly) by
changing the condition that runs NoahMP to include both landmask=2 and lansmaks=0
the landmask is set to the value of kLC_WATER (=2) upon reading in the landmask from the input file in doman_obj.f90:
where(this%land_mask==0) this%land_mask = kLC_WATER. This condition used to exist in main/init.f90 (in V1?) but was commented out.
TESTS CONDUCTED: Run under various conditions, and output has been compared to previous settings. When using the lake model, a clear increase in latent heat flux and water vapor can be observed. Also, compared to the previous state of the model, now using water=0 leads to no fluxes at all from the lake points, whereas before there were fluxes, most likely due to NoahMP erroneously running for those grid-points.
NOTES: Previously, NoahMP (and potentially NoahLSM?) ran for lake points, regardless if water=0 or water=2 was selected. This may have led to too little laten heat- and vapor flux from the lakes, and should be considered when evaluating previous iterations of the model.
Checklist
Merging the PR depends on following checklist being completed. Add X between
each of the square brackets if they are completed in the PR itself. If a
bullet is not relevant to you, please comment on why below the bullet.
[ ] Closes issue #xxxx (An issue must exist or be created to be closed. The
issue describes and documents the problem and general solution, the PR
describes the technical details of the solution.)
IMPORTANT: current procedure is to make changes to the develop branch and create pull requests into the develop branch. When making this Pull Reqest make sure to change the base branch to "develop".
TYPE: enhancement
KEYWORDS: lake model, enhancement, bugfix water_simple
SOURCE: Bert Kruyt, NCAR
DESCRIPTION OF CHANGES: The lake model from WRF has been adapted for- and included into ICAR. now, selecting water=3 in the namelist runs this lakemodel for lake grid points, while the simple water model is used for ocean gridpoints.
changes to original code
Requirements:
Further developments/improvements:
Also, during development it appeared that both Noah, and the simple water model were turned on/off based on the condition of land_mask being 2 (water), while in many WPS-generated hi-res files, water=0 in the LANDMASK variable. in Noah(MP)_init, land_mask was being overwritten to 2 for LU_INDEX(vegtype) == water, but that means only oceans (and not lakes) were reset to land_mask=2. Consequentially, the simple water model only ran for oceans, and Noah(MP) ran for lake-gridpoints. This has been resolved (redundantly) by
TESTS CONDUCTED: Run under various conditions, and output has been compared to previous settings. When using the lake model, a clear increase in latent heat flux and water vapor can be observed. Also, compared to the previous state of the model, now using water=0 leads to no fluxes at all from the lake points, whereas before there were fluxes, most likely due to NoahMP erroneously running for those grid-points.
NOTES: Previously, NoahMP (and potentially NoahLSM?) ran for lake points, regardless if water=0 or water=2 was selected. This may have led to too little laten heat- and vapor flux from the lakes, and should be considered when evaluating previous iterations of the model.
Checklist
Merging the PR depends on following checklist being completed. Add
X
between each of the square brackets if they are completed in the PR itself. If a bullet is not relevant to you, please comment on why below the bullet.