CDXWRF

De Wikicima
Saltar a: navegación, buscar

The `Coordinated Regional Climate Downscaling Experiment' (CORDEX) is a scientific effort of the World Climate Research Program (WRCP) for the coordination of regional climate initiatives. In order to accept an experiment, CORDEX provides experiment guidelines, specifications of regional domains and data access/archiving. Data requirements are intended to cover all the possible needs of stake holders, and scientists working on climate change mitigation and adaptation policies in various scientific communities. The required data and diagnostics are grouped into different levels of frequency (sub-daily, daily, monthly and seasonal), priority (Core, Tier1, Tier2), and some of them even have to be provided as statistics (minimum, maximum, mean). Here is presented the development of a specialized module called module_diag_cordex (version 1.3) for the Weather Research and Forecasting ((WRF, Skamarok et al. 2008)) model, capable of outputting the required CORDEX variables. Additional diagnostic variables not required by CORDEX, but of potential interest to the regional climate modeling community, are also included in the module. `Generic' definitions of variables are adopted in order to overcome model and/or physics parameterization dependence of certain diagnostics and variables, thus facilitating a robust comparison among simulations. The module is computationally optimized, and the output is divided in different priority levels following CORDEX specifications (Core, Tier1, and additional) by selecting pre-compilation flags. This implementation of the module does not add a significant extra cost when running the model, for example the addition of the Core variables slows the model time-step by less than a 5%. The use of the module reduces the requirements of disk storage by about a 50%.

An article is available in `Geosciences Model Development' journal:

Lluís Fita, Jan Polcher, Theodore M. Giannaros, Torge Lorenz, Josipa Milovac, Giannis Sofiadis, Eleni Katragkou and Sophie Bastin, 2019: CORDEX-WRF v1.3: development of a module for the Weather Research and Forecasting (WRF) model to support the CORDEX community, Geosci. Model Dev., 12, 1029-1066, 2019, https://doi.org/10.5194/gmd-12-1029-2019

It is recommend to contact Lluís Fita (lluis.fita [a] cima.fcen.uba.ar) in order to keep a track and being able to inform of new versions/corrections.

Disclaimer

Authors decline any responsibility of the possible unexpected consequence of the use of this software. This piece 
of code is provided following the scientific spirit of sharing knowledge and technical advances. Please, use it 
with the same intention and willingness.

There are four working versions of the code for WRFV3.7.1, WRFV3.8.1, WRFV3.9.1.1, WRFV4.0. :

GIT repository

Recently all the code was uploaded to a GIT server. All new developments / updates / new WRF versions, will carried out only the GIT version of the codes. Please visit:

https://git.cima.fcen.uba.ar/lluis.fita/cdxwrf/-/wikis/home


Although a pull of the WRF source code has been made and the module is currently being direclty added to the official source of the code of the model, and its final inclusion will be done by decission of the development team of the model.

Be aware that certain surface variables and their statistics (clWRF, Fita et al 2010) are retrieved from namelist configuration (from WRF users web page)

4. output_diagnostics = 1 in &time_control. Climate diagnostics. This option outputs 36 surface diagnostic variables:
maximum and minimum, times when max and min occur, mean value, standard deviation of the mean for T2, Q2, TSK, U10, 
V10, 10 m wind speed, RAINCV, RAINNCV (the last two are time-step rain). The output goes to auxiliary output stream 3, 
and hence it needs the following:

auxhist3_outname = “wrfxtrm_d<domain>_<date>”
auxhist3_interval = 1440, 1440,
frames_per_auxhist3 = 100, 100,
io_form_auxhist3 = 2

In this page CDXWRFevolution one founds updates, bug fixes of the module.

With this module, now all CORDEX variables (except `snow melt') are available with the files wrfxtrm, wrfpress and wrfcdx, except for the fied values such as 'areacella'. See CDXvariablestable for more detail

Contenido

CORDEX requirements

CORDEX requirements of data must cover all the possible needs of stake holders, and scientists working on the adaptation and mitigation strategies. They are grouped in different levels of frequency and priority. A working copy of this list is available here from the CORDEX convection permitting Flag Ship Pilot study.

Some of the variables are not directly computed in the WRF model which require to extend the model output in order to provide enough variables to post-process the variables.

The implementation of the module_diag_cordex module should allow to avoid the post-processing by computing the CORDEX-required (Core & Tier) variables during model integration. At the same time, some extra variables, which might be of interest to the community but not required by CORDEX, have also been added.

NOTE:

Be aware that any systematic checking process has been applied to this module. Use it and the
variables therein at your own risk !! It has been tested on a 2-nested domain configuration with the 
inner domain at cloud resolving resolution (< 5 km, without cumulus scheme), making use of restarts 
and on serial, pure distributed memory and hybrid distributed/shared parallel environment

module_diag_cordex

The module is basically based on two modules:

  • phys/module_diag_cordex.F: Main module which manages the calls to the variables and the accumulations for the means, ...
  • phys/module_diagvar_cordex.F: Module with the computation of all the variables

This module is accompanied with a new Registry/registry.cordex where the variables and a new section in the namelist.input labeled cordex are defined. There are other necessary complementary modifications on phys/module_diagnostics_driver.F encompassed by the pre-compilaton flag CORDEXDIAG, as well some modifications in the main/depend.common and phys/Makefile. Output is provided by the auxiliary history output #9 with a provisional file name: wrfcordex_d<domain>_<date> All that variables which are only required at output time step, are computed only at that exact time.

Description of the installation process can be found here CDXWRFinstall

Description of the usage of the model can be found here CDXWRFuse

Description of the additional pressure level interpolation variables can be found here CDXWRFpvars

Description of the `Core' variables can be found here CDXWRFcore

Description of the `Tier1' variables can be found here CDXWRFtier

Description of the `Additional' variables can be found here CDXWRFadditional

Description of the studies about optimization of the module can be found here CDXWRFopt

Variables

These are the different variables added and their implementations from the WRF point of view. There might be necessary to revise some of them, or even decide which version to use In case of accumulation/mean they are also be included

These variables are:

  • Instantaneous diagnostics (only computed on output times)
    • Core
    - prw: Total water path
    - clwvi: Total liquid water path (QCLOUD + QRAIN)
    - clivi: Total ice water path (QSNOW+QICE+GRAUPEL+QHAIL)
    - uas: 10m earth-rotated eastward wind [ms-1]
    - vas: 10m earth-rotated northward wind [ms-1]
    - wss: 10m wind speed [ms-1]
    - hurs: 2m relative humidty [1]
    - huss: 2m specific humidty [1]
    - mrso: total soil moisture content [kgm-2]
    - slw: total liquid water content [kgm-2]
    - ws100: 100m wind speed [ms-1]
    - uz100: 100m wind x-direction [ms-1]
    - vz100: 100m wind y-direction [ms-1]
    - tauu, tauuv: components of the downward wind stress at 10 m [m2s-2] (might be zero if sf_sfclay_physics /= 1, 5)
    - tauugen, tauuvgen: generic components of the downward wind stress at 10 m [m2s-2]
    - cdcdx: drag coefficient [-] (might be zero if sf_sfclay_physics /= 1, 5)
    - cdgen: generic drag coefficient [-]
    - ps: surface pressure [Pa]
    - ts: skin temperature [K]
    • Tier1
    - zmla: pbl height following a generic method [m]
    - clgvi: Total graupel path (QGRAUPEL)
    - clhvi: Total hail path (QHAIL)
    • Additional
    - ua: 3D earth-rotated eastward wind [ms-1]
    - va: 3D earth-rotated northward wind [ms-1]
    - ws: 3D wind speed [ms-1]
    - ta: 3D air-temperature [K]
    - press: 3D air pressure [Pa]
    - zg: 3D geopotential height [m]
    - hur: 3D relative humidty [1]
    - hus: 3D specific humidty [1]
    - psl: sea level pressure [Pa] (three different ways)
    • Only via changes in the registry
    - clt: total cloud cover [1]
    - cll: low-level cloud cover [1]
    - clm: mid-level cloud cover [1]
    - clh: high-level cloud cover [1]
    - cape: Convective Available Potential Energy [Jkg-1]
    - cin: Convective inhibition [Jkg-1]
    - zlfc: Height at the Level of free convection [m]
    - plfc: Pressure at the Level of free convection [Pa]
    - li: Lifted index [1]
    - tds: 2m dew point temperature [K]
  • Accumulated or similar time dependency (computed at every time-step). They are initialized after each output time-step. Thus, they represent statistics (mean, accumulation) only from between output time-steps.
    • Core
    - cltmean: mean clt
    - cllmean: mean cll
    - clmmean: mean clm
    - clhmean: mean clh
    - wsgsmax: maximum surface wind gust [ms-1] (two different methods)
    - ugsmax: eastward maximum surface gust wind direction [ms-1]
    - vgsmax: northward maximum surface gust wind direction [ms-1]
    - wsgspercen: percentage of times when grid point got gust wind [%]
    - totwsgsmax: maximum surface wind gust [ms-1] (addition of different methods)
    - totugsmax: eastward maximum surface gust wind direction [ms-1]
    - totvgsmax: northward maximum surface gust wind direction [ms-1]
    - totwsgspercen: percentage of times when grid point got total gust wind [%]
    - wsz100max: maximum 100m wind [ms-1] (two different methods)
    - uz100max: eastward maximum 100m wind direction [ms-1]
    - vz100max: northward maximum 100m wind direction [ms-1]
    - sund: sunshine length [s]
    - rsds: mean surface Downwelling Shortwave Radiation [Wm-2]
    - rlds: mean surface Downwelling Longwave Radiation [Wm-2]
    - hfls: mean surface Upward Latent Heat Flux [Wm-2]
    - hfss: mean surface Upward Sensible Heat Flux [Wm-2]
    - rsus: mean surface Upwelling Shortwave Radiation [Wm-2]
    - rlus: mean surface Upwelling Longwave Radiation [Wm-2]
    - rsusgen: mean generic surface Upwelling Shortwave Radiation [Wm-2]
    - rlusgen: mean generic surface Upwelling Longwave Radiation [Wm-2]
    - evspsbl: mean evaporation [kgm-2s-1]
    - evspsblpot: mean potential evapotranspiration [kgm-2s-1]
    - evspsblpotgen: mean generic potential evapotranspiration [kgm-2s-1]
    - snc: mean snow area fraction [%]
    - snd: mean snow depth [m]
    - mrros: mean surface Runoff [kgm-2s-1]
    - mrro: mean total Runoff [kgm-2s-1]
    - mrsol: mean total water content of soil layer [kgm-2]
    - pr: precipitation flux [kgm-2s-1]
    - prl: large scale precipitation flux [kgm-2s-1]
    - prc: convective precipitation flux [kgm-2s-1]
    - prsh: shallow-cumulus precipitation flux [kgm-2s-1]
    - prsn: solid precipitation flux [kgm-2s-1]
    - snw: accumulated snow [ksm-2]
    - rsdt: Top Of the Atmosphere incident shortwave radiation [kgm-2]
    - rsut: TOA outgoing shortwave radiation [kgm-2]
    - rlut: TOA outgoing Longwave radiation [kgm-2]
    • Tier1
    - capemin: minimum CAPE [Jkg-1] (activated if convxtrm_diag =1)
    - cinmin: minimum CIN [Jkg-1] (activated if convxtrm_diag =1)
    - zlfcmin: minimum height at LFC [m] (activated if convxtrm_diag =1)
    - plfcmin: minimum Pressure at LFC [Pa] (activated if convxtrm_diag =1)
    - lidxmin: minimum Lifted index [1] (activated if convxtrm_diag =1)
    - capemax: maximum CAPE [Jkg-1] (activated if convxtrm_diag =1)
    - cinmax: maximum CIN [Jkg-1] (activated if convxtrm_diag =1)
    - zlfcmax: maximum height at LFC [m] (activated if convxtrm_diag =1)
    - plfcmax: maximum Pressure at LFC [Pa] (activated if convxtrm_diag =1)
    - lidxmax: maximum Lifted index [1] (activated if convxtrm_diag =1)
    - capemean: mean CAPE [Jkg-1] (activated if convxtrm_diag =1)
    - cinmean: mean CIN [Jkg-1] (activated if convxtrm_diag =1)
    - zlfcmean: mean height at LFC [m] (activated if convxtrm_diag =1)
    - plfcmean: mean Pressure at LFC [Pa] (activated if convxtrm_diag =1)
    - lidxmean: mean Lifted index [1] (activated if convxtrm_diag =1)
    • Additional (not required by CORDEX)
    - tfog: time of presence of fog [s]
    - fogvisbltymin: minimun visibility inside fog [km]
    - fogvisbltymax: maximun visibility inside fog [km]
    - fogvisbltymean: mean visibility inside fog [km]
    - tdsmin: minimum 2m dew point temperature [K]
    - tdsmax: maximum 2m dew point temperature [K]
    - tdsmean: mean 2m dew point temperature [K]
    • Additionally added referred to the water budget in the atmosphere:
      • wbacdiabh: Water-budget vertically integrated accumulated of diabatic heating from microphysics [K]
      • wbacpw, wbacpw[c/r/s/i/g/h]: Water-budget vertically integrated accumulated total tendency for water vapour, cloud, rain, snow, ice, graupel, hail [mm]
      • wbacf, wbacf[c/r/s/i/g/h]: Water-budget vertically integrated accumulated horizontal advection for water vapour, cloud, rain, snow, ice, graupel, hail [mm]
      • wbacz, wbacz[c/r/s/i/g/h]: Water-budget vertically integrated accumulated vertical advection for water vapour, cloud, rain, snow, ice, graupel, hail [mm]
      • wbacdiabh{l/m/h}: Water-budget vertically integrated accumulated of diabatic heating from microphysics at low, medium and high levels (same as cloudiness) [K]
      • wbacpw{l/m/h}[v/c/r/s/i/g/h]: Water-budget vertically integrated accumulated total tendency for water vapour, cloud, rain, snow, ice, graupel, hail at low, medium and high levels (same as cloudiness) [mm]
      • wbacf{l/m/h}[v/c/r/s/i/g/h]: Water-budget vertically integrated accumulated horizontal advection for water vapour, cloud, rain, snow, ice, graupel, hail at low, medium and high levels (same as cloudiness) [mm]
      • wbacz{l/m/h}[v/c/r/s/i/g/h]: Water-budget vertically integrated accumulated vertical advection for water vapour, cloud, rain, snow, ice, graupel, hail at low, medium and high levels (same as cloudiness) [mm]
  • Pressure interplation (Core)
    - hus_pl: specific humidity [1]
    - w_pl: vertical wind speed [ms-1]
    - uer_pl: Earth-rotated wind x-component [ms-1]
    - ver_pl: Earth-rotated wind y-component [ms-1]
    - ws_pl: wind speed [ms-1]


Missing variables

There are certain variables from CORDEX `Core' and/or `Tier1' which could not yet be introduced

snw: snow melt

Accumulation of melted snow

wsgsmax100: Daily Maximum Near-Surface Wind Speed of Gust at 100 m

The wind gust at 100 m is understood that should follow similar processes that the wind gust at the surface (like in wsgsmax). At this version of the module there has not been considered to be included in the search for the right equations and approximations.

ic_lightning, cg_lightning, tot_lightning: intra-cloud, ground and total lightning flashes

There is lightning scheme implementation in WRF. (lightning_option among other from namelist.input). It might require some adjustment prior it's use. It does not sees to provide a wolrdwide cloud/ground discrimination

Accordingly to the value given to the pre-compilation variable CDXWRF one obtains:

  • Without adding the variable: all CORDEX 'Core' variables
  • CDXWRF=1 CORDEX 'Tier' variables: clgvi, clhvi, zmla, [cape/cin/zlfc/plfc/lidx]{min/max/mean}
  • CDXWRF=2 The same as with CDXWRF=1 and additional variables: ua, va, ws, ta, press, zg, hur, hus, tfog, fogvisblty{min/max/mean}, tds{min/max/mean} and the Water-Budget relarted ones: wbacdiabh, wbacpw, wbacpw[c/r/s/i/g/h], wbacf, wbacf[c/r/s/i/g/h], wbacz, wbacz[c/r/s/i/g/h], wbacdiabh{l/m/h}, wbacpw{l/m/h}, wbacpw{l/m/h}[c/r/s/i/g/h], wbacf{l/m/h}, wbacf{l/m/h}[c/r/s/i/g/h], wbacz{l/m/h}, wbacz{l/m/h}[c/r/s/i/g/h]

Simultanesouly, one needs to modify the Registry/registry.cordex accordingly to the value of CDXWRF:

  • Without adding CDXWRF, nothing needs to be changed
  • Adding CDXWRF=1, one needs to remove the comment ##CDXWRF1## at the beginning of the line of the definition of certain variables
  • Adding CDXWRF=2, one needs to remove the comment ##CDXWRF1## and ##CDXWRF2## at the beginning of the line of the definition of certain variables

Additionally, now interpolation of 3D fields to pressure levels is only done at the same frequency as the output of the wrfpress file.

Others

It will be some other hard work to do related to it.

New variables

Pretty sure that as we get closer to stake-holders, decision makers, impact and mitigation communities more variables will arise... keep in touch !?

CF-compilant file

The module provides almost all the required all the CORDEX variables. However, user still needs to perform some postprocessing of the output data in order to meet CORDEX standards. Mainly:

  • Computation of the required different statistical values as daily, monthly and seasonal extremes (minimum, maximum, accumulations, means)
  • Cmorization of the output understood as: 1 file per variable, right metadata and attributes and general CF-compilant standard specifications

WRF output does not fully follows CF-conventions. Thus a huge coding effort needs to be done in order to provide a full CF-compliant output directly from it. User still needs to process the output of the model in order to provide data following all the CORDEX guidelines. Due to uncovered steps of the CF-standard, a user of the WRF model still needs to: concatenate files, change names and attributes of variables, calculate temporal statistics over different periods (daily, monthly, seasonal) and provide the right time-variables in order to fully reach the CF-standard which followed by CORDEX. However, these steps are computationally lighter and easier to perform in comparison to the computation of the different diagnostics and the vertical pressure interpolation already introduced in the module.

The incompatibility between WRF output and CF-convention can be overcame with the use of a complementary dedicated I/O library. This has been done for example in the [RegIPSL] platform (which uses WRF as atmospheric model) which uses [XIOS] libraries to manage the I/O.

Instantaneous values

As an additional work, all the instantaneous variables used for the different accumuluations and extremes, can also be retrieved. It is only necessary to:

  1. Give an output unit on the registry.cordex (see instructions at the end of the file)
  2. Uncomment in the code (phys/module_diagnostics_dirver.F and module_diag_cordex.F), the commented lines with the key word: INSTVALS
  3. re-compile WRF after cleaning all the code (due to the modification in the Registry)

WRF output names

Open page for the list of variables added with the module CDXWRFout

Acknowledgements

All the coders of WRF, LMDZ and ORCHIDEE models are acknowledged for their hard work on the developing and maintaining of the models. M. A. Jiménez from Universitat de les Illes Balears is acknowledged by her explanations on certain PBL calculations. D. Argüeso from UIB. V. Galligani, J. Ruiz and M. Sebastián from CIMA are also acknowldeged by their commentaries. A. Sörensson and E. Borrell are also acknowledged by their assistance. Implementation tests where performed in CIMA HPC resources ‘hydra’ cluster supported by the High Performance Computing National System (SNCAD) of Argentina L. Fita thanks the CIMA-IT support for their work. E. Katragkou and I. Sofiadis acknowledge the technical support and provision of resources from the Scientific Computing Center of [AUTH] and the [GRNET] National HPC infrastucture. J.Milovac gratefully acknowledge the support by the German Science Foundation (DFG) through project FOR 1695 and the supercomputing center HLRS in Stuttgart Germany for granting the computing time necessary for the test simulations. T. Lorenz acknowledges the support from the Research Council of Norway and its basic institute support of their strategic project on Climate Services. The simulations were performed on resources provided by UNINETT Sigma2 - the National Infrastructure for High Performance Computing and Data Storage in Norway. Figures were produced with python (except performarnce tests drawn with GNUplot) and L. Fita thanks the development of matplotlib above which he developed and make available a suite in python for netCDF management and plotting purposes called [PyNCplot]. Authors thank the commentaries of the topical editor (J. Kala) which remarkably improve the manuscript.

Herramientas personales