Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

smooth_cg_topo and ERA-5 / ERA-Interim data

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

douglowe

Member
Hi all,

I'm interested in using the "smooth_cg_topo" namelist option for my simulations. However, from looking in the WRF code it appears that this requires an input variable (SOILHGT) which isn't provided in the ERA-5 or ERA-Interim datasets. These do have the surface geopotential (supplied as the variable "orography"), from which the geopotential height can easily be calculated. Is there a straightforward way for me to create a "SOILHGT" variable from this (and has anyone else used this option with these datasets)?

thanks,
Doug
 
For ECMWF and ERA, the Vtable says it uses grib code 129 level 0 for both SOILGEO and SOILHGT.

I built some invariant files for ERA-I years ago, but my ERA-5 download script doesn't include anything like that. I have been following https://dreambooker.site/2019/10/03/Initializing-the-WRF-model-with-ERA5-pressure-level/ for downloading ERA5 data for WRF.

https://confluence.ecmwf.int/pages/viewpage.action?pageId=82870405#ERA5:datadocumentation-Table1 lists 'geopotential' as having paramID 129 so perhaps that's the same as grib code 129. But it's not included in the first link's surface-level download script, only in the pressure_levels download script - which does get 'geopotential' at 1000mb. Maybe it should be added to the surface-level script?

As I test, I did so and now see the parameter "Z" with grib code 129 in the downloaded file:

Code:
----------------------------------------------------
 rec GRIB GRIB  Lvl  Lvl  Lvl         Time      Fcst
 Num Code name  Code one  two                   hour
----------------------------------------------------
  10 129 Z        1    0    0  2017-09-01_00:00 + 00

And yet, I have been able to use smooth_cg_topo with ERA5 data for some time now. WRF doesn't bomb, nor does it warn me, so perhaps it's silently not using it?

For completeness, here's how I created the ERA-Interim invariant files. This is so old that the download script probably won't work anymore, but you get the idea.

Code:
# cat create_invariant.csh
#!/bin/csh -f

download_invariant.py

if (-e Vtable) rm Vtable
ln -s /usr/local/src/wrf/WPSV3.5/ungrib/Variable_Tables/Vtable.ERA-interim.pl \
    Vtable

foreach type (landsea soilgeo)

    if (-e GRIBFILE.AAA) rm GRIBFILE.AAA
    ln -s ERA.$type.grb GRIBFILE.AAA
    cat namelist.wps.default | sed "s/XXXX/$type/g" >! namelist.wps
    /usr/local/src/wrf/WPSV3.5/ungrib.exe

end
rm ungrib.log namelist.wps

# cat download_invariant.py
#!/usr/bin/env python
import sys, os, calendar
from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()

year=1989
month=01
day=01
hr=12


bdate="%04d%02d%02d"%(year,month,day)
sthr="%02d"%(hr)

filename="ERA.landsea.grb"
print "################################"
if os.path.isfile(filename):
    print bdate, hr,' already downloaded'
else:
    print bdate, hr,' downloading...'
    print "################################"
server.retrieve({
    "dataset"   : "interim",
    "date"      : "%s"%(bdate),
    "stream"    : "oper",
    "levtype"   : "sfc",
    "param"     : "172.128",
    "step"      : "0",
    "time"      : "%s"%(sthr),
    "type"      : "an",
    "grid"      : "0.75/0.75",
    "target"    : filename,
   })

filename="ERA.soilgeo.grb"
print "################################"
if os.path.isfile(filename):
    print bdate, hr,' already downloaded'
else:
    print bdate, hr,' downloading...'
    print "################################"
server.retrieve({
    "dataset"   : "interim",
    "date"      : "%s"%(bdate),
    "stream"    : "oper",
    "levtype"   : "sfc",
    "param"     : "129.128",
    "step"      : "0",
    "time"      : "%s"%(sthr),
    "type"      : "an",
    "grid"      : "0.75/0.75",
    "target"    : filename,
   })

# cat namelist.wps.default
&share
 wrf_core = 'ARW',
 max_dom = 1,
 start_date = '1989-01-01_12:00:00',
 end_date   = '1989-01-01_12:00:00',
 interval_seconds = 21600
 io_form_geogrid = 2,
/

&ungrib
 out_format = 'WPS',
 prefix = 'XXXX',
/
 
As soon as I clicked Submit, I thought of a better answer - the system probably uses the output from geogrid.exe, HGT_M, to construct SOILGEO. That's why it still works without downloading 'geopotential' for ERA5.
 
Doug,
Please download ERA5 terrain data from
/FS/DECS/DS630.0/e5.oper.invariant/201601/e5.oper.invariant.128_129_z.regn320sc.2016010100_2016010100.grb
ERA-I terrain can be found in https://rda.ucar.edu/datasets/ds627.0/, where if you download any sfc dataset, you can find terrain data in it.
 
Top