INIFOR - Mesoscale Interface for Initializing and Forcing PALM

INIFOR provides the meteorological fields of the velocity components, specific humidity and potential temperature required to initialize PALM as well as boundary data required for the offline nesting of PALM into larger-scale models. The required meteorological fields are interpolated from output data of the mesoscale model COSMO.

Compilation

INIFOR is being compiled automatically whenever you compile PALM using palmbuild.

Minimal Usage Example

  • Customize ./namelist (number or grid points and spacings, end_time)
  • Run current_version/trunk/SCRIPTS/inifor --path <scenario path> --date <YYYYMMDD> --elevation <height of z origin above sea level>

Usage

After compilation, the inifor binary resides in the $PALM_BIN path, i.e. in <PALM path>/current_version/trunk/SCRIPTS/.

In order to run, INIFOR requires three kinds of inputs:

  1. hourly COSMO model output,
  2. a steering namelist file, and
  3. command-line options.

In addition, a static driver file may be supplied (see --static-driver option below) in order to pass the coordinates of the PALM origin to INIFOR. If no static driver is passed to INIFOR, origin coordinates are read from the namelist file.

A typical inifor call looks like this:

inifor --path /data/evaluation/20170729 --date 2017073006 \
       --init-mode profile -n namelist -o dynamic_driver.nc \
       --elevation 110 --input-prefix lff0_

Input data: COSMO model output

Overview

INIFOR processes COSMO model output which it requires to be stored in a set of netCDF files located in a user-specified path (see --path option). These are:

  • hhl.nc: This file provides the COSMO numerical grid. (hhl abbreviates height of half layers, i.e. the heights of the vertical cell boundaries.)
  • soil.nc: This file provides the COSMO soil map and is used to destinguish land from water cells.
  • <prefix>YYYYMMDDHH-<suffix>.nc: Each of these files contains COSMO model of one time step at the given time in UTC (Y..year, M..month, D..day, H..hour).
    • The <prefix> distinguishes different DWD products, for instance COSMO analyses (laf) or forecasts (lff).
    • The <suffix> distinguishes thee kinds of COSMO model output data, namely
      • flow (atmospheric fields)
      • soil (soil moisture and temperature)
      • precip (surface precipitation rates, optional)
    • For example, laf2016010100-flow.nc contains the atmospheric fields of the COSMO analysis of January 1st, 2016 for 0:00 UTC.

How to download COSMO model output from the DWD data portal Pamore is described in this manual.

Required netCDF variables

Variables in hhl.nc

double rlon(rlon) ;
        rlon:standard_name = "grid_longitude" ;
        rlon:long_name = "longitude in rotated pole grid" ;
        rlon:units = "degrees" ;
        rlon:axis = "X" ;
double rlat(rlat) ;
        rlat:standard_name = "grid_latitude" ;
        rlat:long_name = "latitude in rotated pole grid" ;
        rlat:units = "degrees" ;
        rlat:axis = "Y" ;
char rotated_pole ;
        rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
        rotated_pole:grid_north_pole_latitude = 40. ;
        rotated_pole:grid_north_pole_longitude = -170. ;
float HHL(time, height, rlat, rlon) ;
        HHL:long_name = "Geometric Height of the layer limits above sea level(NN)" ;
        HHL:units = "m" ;
        HHL:param = "6.3.0" ;
        HHL:grid_mapping = "rotated_pole" ;

Variables in soil.nc

float SOILTYP(time, rlat, rlon) ;
        SOILTYP:long_name = "soil type of grid (1...9, local soilType.table)" ;
        SOILTYP:units = "Numeric" ;
        SOILTYP:param = "196.3.2" ;
        SOILTYP:grid_mapping = "rotated_pole" ;

Variables in <prefix>YYYYMMDDHH-flow.nc files:

float W(time, height, rlat, rlon) ;
        W:long_name = "Vertical Velocity (Geometric) (w)" ;
        W:units = "m s-1" ;
        W:param = "9.2.0" ;
        W:grid_mapping = "rotated_pole" ;
float U(time, height_2, rlat, rlon_2) ;
        U:standard_name = "eastward_wind" ;
        U:long_name = "U-Component of Wind" ;
        U:units = "m s-1" ;
        U:param = "2.2.0" ;
        U:grid_mapping = "rotated_pole" ;
float V(time, height_2, rlat_2, rlon) ;
        V:standard_name = "northward_wind" ;
        V:long_name = "V-Component of Wind" ;
        V:units = "m s-1" ;
        V:param = "3.2.0" ;
        V:grid_mapping = "rotated_pole" ;
float T(time, height_2, rlat, rlon) ;
        T:standard_name = "air_temperature" ;
        T:long_name = "Temperature" ;
        T:units = "K" ;
        T:param = "0.0.0" ;
        T:grid_mapping = "rotated_pole" ;
float P(time, height_2, rlat, rlon) ;
        P:long_name = "Pressure" ;
        P:units = "Pa" ;
        P:param = "192.3.0" ;
        P:grid_mapping = "rotated_pole" ;
float QV(time, height_2, rlat, rlon) ;
        QV:standard_name = "specific_humidity" ;
        QV:long_name = "Specific Humidity" ;
        QV:units = "kg kg-1" ;
        QV:param = "0.1.0" ;
        QV:grid_mapping = "rotated_pole" ;

Variables in <prefix>YYYYMMDDHH-soil.nc files:

double depth_2(depth_2) ;
        depth_2:long_name = "depth_below_land" ;
        depth_2:units = "m" ;
        depth_2:positive = "down" ;
        depth_2:axis = "Z" ;
        depth_2:bounds = "depth_2_bnds" ;
float T_SO(time, depth, rlat, rlon) ;
        T_SO:long_name = "Soil Temperature (multilayer model)" ;
        T_SO:units = "K" ;
        T_SO:param = "18.3.2" ;
        T_SO:grid_mapping = "rotated_pole" ;
float W_SO(time, depth_2, rlat, rlon) ;
        W_SO:long_name = "Column-integrated Soil Moisture (multilayers)" ;
        W_SO:units = "kg m-2" ;
        W_SO:param = "20.3.2" ;
        W_SO:grid_mapping = "rotated_pole" ;

Optional variabels

Variables in <prefix>YYYYMMDDHH-flow.nc files (will be interpolated automatically if present in input files):

float QC(time, height_2, rlat, rlon) ;
        QC:long_name = "Cloud Mixing Ratio" ;
        QC:units = "kg kg-1" ;
        QC:param = "22.1.0" ;
        QC:grid_mapping = "rotated_pole" ;
float QI(time, height_2, rlat, rlon) ;
        QI:long_name = "Cloud Ice Mixing Ratio" ;
        QI:units = "kg kg-1" ;
        QI:param = "82.1.0" ;
        QI:grid_mapping = "rotated_pole" ;
float QR(time, height_2, rlat, rlon) ;
        QR:long_name = "Rain mixing ratio" ;
        QR:units = "kg kg-1" ;
        QR:param = "24.1.0" ;
        QR:grid_mapping = "rotated_pole" ;
float QS(time, height_2, rlat, rlon) ;
        QS:long_name = "Snow mixing ratio" ;
        QS:units = "kg kg-1" ;
        QS:param = "25.1.0" ;
        QS:grid_mapping = "rotated_pole" ;
float QG(time, height_2, rlat, rlon) ;
        QG:long_name = "Grauple" ;
        QG:units = "kg kg-1" ;
        QG:param = "32.1.0" ;
        QG:grid_mapping = "rotated_pole" ;

Variables in <prefix>YYYYMMDDHH-precip.nc files (can be added to INIFOR processing with the --precipitation option):

float RAIN_GSP(time, rlat, rlon) ;
        RAIN_GSP:long_name = "Large scale rain (Accumulation)" ;
        RAIN_GSP:units = "kg m-2" ;
        RAIN_GSP:param = "77.1.0" ;
        RAIN_GSP:grid_mapping = "rotated_pole" ;
float SNOW_GSP(time, rlat, rlon) ;
        SNOW_GSP:long_name = "Large-Scale snowfall - water equivalent (Accumulation)" ;
        SNOW_GSP:units = "kg m-2" ;
        SNOW_GSP:param = "56.1.0" ;
        SNOW_GSP:grid_mapping = "rotated_pole" ;
float GRAU_GSP(time, rlat, rlon) ;
        GRAU_GSP:long_name = "Graupel (snow pellets) precipitation (Accumulation)" ;
        GRAU_GSP:units = "kg m-2" ;
        GRAU_GSP:param = "75.1.0" ;
        GRAU_GSP:grid_mapping = "rotated_pole" ;

Namelist parameters

INIFOR mirrors a subset of the PALM's Fortran namelists initialization_parameters and runtime_parameters and supports the following parameters. Note that, at the moment, INIFOR uses the old namelist descriptors inipar and d3par instead, which are the descriptors used in previous versions of PALM.

inipar

Parameter name Default value Description
nx, ny, nz None Number of PALM grid points in x, y, and z direction
dx, dy, dz(10) None PALM grid spacings in x, y, and z direction [m]
dz_stretch_level -9999999.9 Height above which the grid will be stretched [m]
dz_stretch_factor 1.08 Factor by which the grid will be stretched
dz_max 1000.0 Maximum vertical grid spacing [m]
dz_stretch_level_start(9) -9999999.9 Array of height levels above which the grid is to be stretched vertically [m]
dz_stretch_level_end(9) 9999999.9 Array of height levels until which the grid is to be stretched vertically [m]
longitude, latitude 0.0 Geographical coordinates of the PALM origin [deg]. Both will be ignored if the command-line option --static-driver is used (see below).

d3par

Parameter name Default value Description
end_time 0.0 PALM simulation time. INIFOR will produce hourly forcing data from the start date (see -d command-line option) to end_time seconds thereafter. [s]

Example namelist file

&inipar nx = 4679, ny = 3939, nz = 360
        dx = 10., dy = 10., dz = 10.
        dz_stretch_level = 2500.0, dz_stretch_factor = 1.08, dz_max = 100.0
        longitude = 13.082744, latitude = 52.325079
/

&d3par  end_time = 86400.0
/

Command-line options

INIFOR configuration

Option Default value Description
--averaging-mode <mode> level Selects how averaged quantities (large-scale forcing terms) are computed. INIFOR supports averaging along input model levels ('level') and along constant heights ('height').
-a, --averaging-angle <angle> 2.0 Width of the averaging box in longitudal and latitudal direction in the source coordinate system (COSMO rotated-pole) [deg].
-d, --date <date> 20130721 Start date of the simulation in the form YYYYMMDD or YYYYMMDDHH. If no hours (HH) are given, INIFOR assumes that the simulation starts at O UTC on that day.
-i, --init-mode <mode> profile Set the PALM initialization mode. INIFOR can provide initial conditions as either profiles or three-dimensional fields. The corresponding modes are 'profile' and 'volume'.
-i, --forcing-mode <mode> hetero Set the PALM forcing mode. INIFOR can supply heterogeneous boundary conditions spatially interpolated from the mesoscale model ('hetero') or homogenous boundary conditions horizontally averaged over the PALM domain ('homo').
-i, --soil-init-mode <mode> volume Set the PALM soil initialization mode. INIFOR can provide initial soil data as either profiles or three-dimensional fields. The corresponding modes are 'profile' and 'volume'.
-r, --surface-pressure <pressure> 1e5 Manually set the pressure at z=0 in the PALM domain [Pa]. If not given, the surface pressure is computed from the COSMO pressure field.
-u, --geostrophic-u <velocity> 0 Manually specify the geostrophic wind in x direction [m/s]. If not given, the geostrophic wind is computed from the COSMO pressure field.
-v, --geostrophic-v <velocity> 0 Manually specify the geostrophic wind in y direction [m/s]. If not given, the geostrophic wind is computed from the COSMO pressure field.
-z, --elevation <height> 35 Specifies the elevation of the PALM domain above sea level [m].
--precipitation -- Turn on surface precipitation output, requires COSMO precipitation output (*-precip.nc files)

I/O

Option Default value Description
-l, --hhl-file <netCDF file> <scenario path>/hhl.nc Location of the netCDF file containing the vertical COSMO-DE grid levels, specifically the heights of half levels (hhl, i.e. vertical cell faces).
-n, --namelist <namelist file> ./namelist Location of the PALM namelist file. INIFOR expects the file to contain two namelists, initialization_parameters and runtime_parameters, from which it will read grid parameters and the simulation time.
-o, --output <output file> ./palm-4u-input.nc Name of the INIFOR output file, i.e. the PALM dynamic driver.
-p, --path <scenario path> ./ Scenario path, i.e. the path of the meteorological input data.
-s, --soil-file <netCDF file> <scenario path>/soil.nc Location of the netCDF file containing the COSMO-DE soil type map.
-t, --static-driver <netCDF file> None Location of the netCDF file containing the static driver file for the case to be simulated with PALM. If given, INIFOR will ignore the namelist parameters longitude and latitude and will instead read the geographical coordinates for PALM's origin from the static driver attributes origin_lon, origin_lat, and origin_z.

File prefixes

Option Default value Description
--input-prefix <prefix> laf Set the file prefixes for all input files. Individual prefixes can be overwritten with the options below.
--flow-prefix <prefix> laf Set the file prefix of flow input files.
--precipitation-prefix <prefix> laf Set the file prefix of precipitation input files.
--soil-prefix <prefix> laf Set the file prefix of soil input files.

Non-argument options

Option Description
--debug Enable additional terminal messages and netCDF output for debugging.
--version Output version number and exit.
Last modified 3 years ago Last modified on Oct 27, 2020 8:36:19 AM

Attachments (1)

Download all attachments as: .zip