1. Driver and Coupling

This section describes the NoahMP land model National Unified Operation Prediction Capability (NUOPC) “cap”, which is a light weight software layer that is required when the model is used as a part of the coupled modeling systems compatible with NOUPC such as UFS Weather Model

1.1. Supported Drivers

The driver and coupling layer is found under drivers/ directory.

Within the drivers/nuopc/ directory, the following files are found,

Table 1.1 List of files under drivers/nuopc/ directory

File

Short Description

lnd_comp_domain.F90

Includes subroutines/functions that are used to create ESMF Grid/Mesh using mosaic or ESMF Mesh files

lnd_comp_driver.F90

Includes subroutines (init, run and finalize) that are used to drive the NoahMP land model

lnd_comp_import_export.F90

Includes subroutines to define import and export states as well as diagnostic code to check the fields in states

lnd_comp_io.F90

Includes subroutines to read in static information and initial conditions from tiled files and writing model output in tiled format. The I/O routines currently using FMS <https://github.com/NOAA-GFDL/FMS> library to access multi-tile files but this will be replaced with ESMF calls in the near future and FMS dependency from NUOPC “cap” will be removed.

lnd_comp_kind.F90

Stores parameters that define used kind types etc.

lnd_comp_nuopc.F90

Top level file that defines NUOPC cap for NoahMP Land Model

lnd_comp_shr.F90

Shared code that aims to read parameters from ESMF config file and manuplating strings

lnd_comp_types.F90

Definition of NoahMP Land component specific data types for forcing, initial condition, model etc.

1.2. NoahMP Land Model Specific ESMF Configuration Options

The NUOPC “cap” uses set of namelist options provided as ESMF Config file format to define domain and configure the NoahMP Land Model. The list of relevant namelist options, which needs to be defined under LND_attributes:: group can be seen in the following table.

Table 1.2 Namelist options for NoahMP Land Model

Option

Short Description

mosaic_file

The path and name of the mosaic grid file (i.e. INPUT/C96_mosaic.nc) in Grid Spec format

input_dir

The directory that stores initial conditions, static information and grid related files that are pointed by mosaic file

ic_type

Indicates the source of the initial conditions. Two options are supported ‘custom’ (i.e. C96.initial.tile[1-6].nc) and ‘sfc’ (default, sfc_data.tile[1-6].nc).

layout

Defines decompositions in each direction on each tile (i.e. 3:8 for C96). This needs to be consistent with resolution. If this is missing, then the NUOPC “cap” tries to calculate the tiles using FMS’s mpp_define_layout() call.

num_soil_levels

Number of soil levels used by NoahMP Land Model (i.e. 4)

forcing_height

Height of the atmospheric forcing in meters (i.e. 10)

soil_level_thickness (Note: soil thickness are hard-coded in the NoahMP at this point)

Thickness of the soil levels (i.e. 0.10:0.30:0.60:1.00). The number of soil level thickness needs to be consistent with num_soil_levels.

soil_level_nodes

Depths of the node points for each soil level (i.e. 0.05:0.25:0.70:1.50). The number of node points needs to be consistent with num_soil_levels.

dynamic_vegetation_option (idveg)

Options for dynamic vegetation (i.e. 4)

canopy_stomatal_resistance_option (iopt_crs)

Canopy stomatal resistance (1->ball-berry; 2->jarvis)

soil_wetness_option (iopt_btr)

Options for soil moisture factor for stomatal resistance (1->noah; 2->clm; 3->ssib)

runoff_option (iopt_run)

Options for runoff and groundwater (1->simgm; 2->simtop; 3->schaake96; 4->bats)

surface_exchange_option (iopt_sfc)

Options for surface layer drag coeff (ch and cm) (1->m-o; 2->chen97)

supercooled_soilwater_option (iopt_frz)

Options for supercooled liquid water (1-> ny06; 2->koren99)

frozen_soil_adjust_option (iopt_inf)

Options for frozen soil permeability (1-> ny06; 2->koren99)

radiative_transfer_option (iopt_rad)

Options for radiation transfer (1->gap=f(3d,cosz); 2->gap=0; 3->gap=1-fveg)

snow_albedo_option (iopt_alb)

Options for snow surface albedo (1->bats; 2->class)

precip_partition_option (iopt_snf)

Options for rainfall & snowfall (1-jordan91; 2->bats; 3->noah)

soil_temp_lower_bdy_option (iopt_tbot)

Options for lower boundary of soil temperature (1->zero-flux; 2->noah)

soil_temp_time_scheme_option (iopt_stc)

Options for snow/soil temperature time scheme (only layer 1, 1->semi-implicit; 2->full implicit/original noah)

surface_evap_resistance_option (iopt_rsf, Note: this is not used currently and fixed to 4 in noahmpdrv.F90)

Options for surface resistance (1->sakaguchi/zeng; 2->seller; 3->mod sellers; 4->1+snow)

glacier_option (iopt_gla, Note: this is not used currently and fixed to 2 in noahmpdrv.F90)

Options for glacier treatment (1->phase change; 2->simple)

output_freq

Options for output frequency in seconds (i.e. 21600 for 6-hourly output, 1 output every coupling time-step and can be used for debugging)

do_mynnedmf

Option for MYNN-EDMF (default value is .false.)

do_mynnsfclay

Option for MYNN surface layer scheme (default value is .false.)

soil_type_category (isot)

Option for soil type (0->Zobler - 9 category; 1->STATSGO - 19 category; 2->STAS-RUC - 19 category)

veg_type_category (ivegsrc)

Option for source of vegetation data (0->USGS; 1->IGBP; 2->UMD; 3->NLCD40; 4->USGS-RUC; 5->MODI-RUC)

initial_emiss

Option for initial surface lw emissivity in fraction (default value is 0.95)

initial_albedo

Option for initial mean surface albedo (value is default 0.2)

Note

: symbol is used as a seperator for namelist options with multiple values such as layout, soil_level_thickness.

1.3. Underlying Model Interfaces

1.3.1. Domain Creation

The current version of the NUOPC “cap” is able to create ESMF grid by reading mosaic grid file. Then, NOUPC “cap” converts created ESMF multi-tile grid to ESMF Mesh to standardize interface and allow running same NUOPC “cap” also reading domain information in ESMF Mesh format (not implemented yet). In this design, only ESMF Mesh is exposed to coupler or mediator via defining fields in import and export states using ESMF Mesh. The land fraction information (land_frac) is provided by reading *oro_data.tile* files and it is also used to define the land-sea mask (if land_frac is greater than 0 then it is assumed as land, otherwise it is water). The orography data is also defined using orog_raw variable in the same files.

1.3.2. Initialization

During the InitializeAdvertise phase, call is made to fms_init() to use Flexible Modeling System (FMS) for reading and writing cubed-sphere tiled output. In this case, The MPI communicator is pulled in through the ESMF VM object and used by FMS. This phase also calls advertise_fields() to setup import and export states. The FMS initialization will be removed once the multi-tile I/O calls is supported by ESMF.

1.3.3. Run

During the ModelAdvance phase, the cap updates the import state and calls NoahMP driver routine (drv_run, which is found in drivers/nuopc/lnd_comp_driver.F90) to run the model and updates the export state with the information calculated by model. The drv_run call mainly read in static information as well as initial conditions when it is first called and interpolate monthly data provided by the static information such as fractional coverage of green vegetation and surface albedo to the date of the simulation. Then calculates solar zenith angle based on the time information extracted from cap and calls noahmpdrv_run subroutine provided by the NoahMP. This phase also responsible to write NoahMP model output in tiled format by taking advantage of FMS and ESMF routines.

Note

: the restart capability is only tested with DATM+NOAHMP configuration.

1.3.4. Finalize

This phase is not implemented yet.

1.3.5. Model Fields Used for Coupling

Table 1.3 Import fields

Standard Name

Units

Model Variable

Description

Notes

inst_height_lowest (Sa_z)

m

noahmp%forc%hgt

bottom layer height

namelist option `forcing_height

inst_temp_height_lowest (Sa_tbot)

K

noahmp%forc%t1

bottom layer temperature

inst_temp_height_lowest_from_phys (Sa_ta)

K

noahmp%forc%t1

bottom layer temperature

used under UFS Weather Model, and active atmosphere

inst_temp_height_surface (Sa_tskn)

K

noahmp%forc%tskin

surface skin temperature

inst_pres_height_lowest (Sa_pbot)

Pa

noahmp%forc%pbot

pressure at lowest model layer

inst_pres_height_lowest_from_phys (Sa_prsl)

Pa

noahmp%forc%pbot

pressure at lowest model layer

used under UFS Weather Model, and active atmosphere

inst_pres_height_surface (Sa_pslv)

Pa

noahmp%forc%ps

surface pressure

inst_spec_humid_height_lowest (Sa_shum)

kg kg-1

noahmp%forc%q1

bottom layer specific humidity

inst_spec_humid_height_lowest_from_phys (Sa_qa)

kg kg-1

noahmp%forc%q1

bottom layer specific humidity

used under UFS Weather Model, and active atmosphere

inst_zonal_wind_height_lowest (Sa_u)

m s-1

noahmp%forc%u1

bottom layer zonal wind

inst_merid_wind_height_lowest (Sa_v)

m s-1

noahmp%forc%v1

bottom layer meridional wind

inst_zonal_wind_height_lowest_from_phys (Sa_ua)

m s-1

noahmp%forc%u1

bottom layer zonal wind

used under UFS Weather Model, and active atmosphere

inst_merid_wind_height_lowest_from_phys (Sa_va)

m s-1

noahmp%forc%v1

bottom layer meridional wind

used under UFS Weather Model, and active atmosphere

inst_exner_function_height_lowest (Sa_exner)

1

noahmp%forc%prslk1

dimensionless exner function at surface adjacent layer

surface_friction_velocity (Sa_ustar)

m s-1

noahmp%forc%ustar1

surface friction velocity

mean_down_sw_flx (Faxa_swdn)

W m-2

noahmp%forc%dswsfc

mean downward SW heat flux

mean_down_lw_flx (Faxa_lwdn)

W m-2

noahmp%forc%dlwflx

mean downward LW heat flux

mean_net_sw_flx (Faxa_swnet)

W m-2

noahmp%forc%dlwflx

net SW radiation

if it is not available, it will be calculated by using mean_down_sw_flx and surface albedo

mean_prec_rate_conv (Faxa_rainc)

kg m-2 s-1

noahmp%forc%tprcpc

convective precipitation

provided when coupled with data atmosphere

Faxa_rainl

kg m-2 s-1

noahmp%forc%tprcpl

large-scale precipitation

provided when coupled with data atmosphere

mean_prec_rate (Faxa_rain)

kg m-2 s-1

noahmp%forc%tprcp

total precipitation

total precipitation can be calculated by its components (tprcpc and tprcpl) or provided by directly from active atmosphere

Faxa_snowc

kg m-2 s-1

noahmp%forc%snowc

convective part of snow precipitation

Faxa_snowl

kg m-2 s-1

noahmp%forc%snowl

large-scale part of snow precipitation

mean_fprec_rate (Faxa_snow)

kg m-2 s-1

noahmp%forc%snow

total snow precipitation

vfrac

1

noahmp%forc%vegfrac

areal fractional cover of green vegetation

zorl

cm

noahmp%forc%zorl

surface roughness

Table 1.4 Export fields

Standard Name

Units

Model Variable

Description

Notes

Sl_lfrin

0-1

noahmp%domain%frac

land fraction

required by mediator

Sl_t

K

noahmp%model%t2mmp

land surface temperature