[Wrf-users] ECMWF and WRF3
Hálfdán Ágústsson
halfdana at hi.is
Tue Jun 24 03:24:44 MDT 2008
Morning
We have a somewhat different solution to this problem, which is the same
as we have used for initializing MM5 with ECMWF model-level data.
1. We first run cdo "http://www.mpimet.mpg.de/fileadmin/software/cdo/"
to transform the model-level grib-data to chosen pressure-levels.
2. In addition, we use one or more pressure-level from the ECMWF which
only has to include the geopotential (which does not come from the
model-level data).
3. Modfifications to the rrpr.F routine in the ungrib part of WPS
(similar to pregrid in MM5) inter-/extrapolate the geopotential to the
levels where it is missing (using dz=-RT/g dlnp).
4. Then the WPS- and WRF-suites are run as usual when using ECMWF
pressure-level data.
Regards,
Halfdan
wrfhelp wrote:
> If Ravan can give these suggestions a try and let us know, it would be
> helpful. Let us know.
> Thanks for helping out,
>
> wrfhelp
>
> On Jun 23, 2008, at 11:59 AM, Jean-Louis Monge wrote:
>
>> 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
>
> _______________________________________________
> Wrf-users mailing list
> Wrf-users at ucar.edu
> http://mailman.ucar.edu/mailman/listinfo/wrf-users
More information about the Wrf-users
mailing list