[Wrf-users] ECMWF and WRF3

Jean-Louis Monge jeanlouis.monge at free.fr
Mon Jun 23 11:59:21 MDT 2008


On Monday 23 June 2008 17:48:13 Ravan Ahmadov wrote:
> Dear all,
>
> Is someone able to run successfully WPS/WRF3 with ECMWF model level
> data? The data which worked in the previous versions of WRF/WPS don't
> work with the latest ones.
>

Hi Ravan,

It's a long story, but you can do it. Be patient.
Here is a summary of my own fights against wrf-3 and ECMWF model levels.
I hope I did not forget too many things.

Fisrst, there is a risk of segfault in geogrid, depending on the compiler you 
use. It was already present in version 2, so you can skip if you are happy 
with it. Here is my diff in WPS/geogrid/src/source_data_module.F :
************************
@@ -632 +633,2 @@
-            if (ie - is <= 0) ie = 128
+            if ((ie - is <= 0) .and. (is <= 128)) then
+               ie = 128
@@ -633,0 +636 @@
+            end if
@@ -663 +669,2 @@
-            if (ie - is <= 0) ie = 128
+            if ((ie - is <= 0) .and. (is <= 128)) then
+               ie = 128
@@ -664,0 +672 @@
+            end if
**************************

Then, the way they compute PSFC in real.F in WRFV3 is different. To make it 
compatible with ECMWF model levels, you have to force the use of subroutine 
sfcprs2 in module_interp_real.F. This is done by adding this line to 
the "domains" section of namelist.input :
    sfcp_to_sfcp = .true.

Next, if you download lnsp instead of sp from Mars, it works but you have to 
modify ungrib.F :
*****************************
@@ -278 +278,2 @@
-           if (((field == "SST").or.(field == "SKINTEMP")) .and. &
+           if (((field == "SST").or.(field == "SKINTEMP").or. &
+                (field == "LOGSFP")) .and.                    & ! modif jlm 
***************************** 
Finally, I have modified calc_ecmwf_p.F to make it possible to use only a 
subset of the 96  ECMWF model levels. It saves disk space and download time. 
If some people are interested, I will mail them the modified code.

Last : do not use "ucmcall = 1,1,1" in the "physics" section of namelist.input 
if you use two-way nesting with "input_from_file = .true., .true., .true." 
For me, it fills all the fields with NaNs at the first simulation hour.

I hope this helps.

-- 
Jean-Louis Monge
Ingénieur-conseil
09 50 51 14 43
jeanlouis.monge at free.fr


More information about the Wrf-users mailing list