NCAR / icar

The Intermediate Complexity Atmospheric Research model (ICAR)
MIT License
72 stars 53 forks source link

Enhancement/lake: inclusion of lake model, and fixes to water_simple/Noah #140

Closed bertjebertjek closed 2 years ago

bertjebertjek commented 2 years ago

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

  1. changing the condition that runs NoahMP to include both landmask=2 and lansmaks=0
  2. 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.