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

Gust_Wind Implementation?

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.

ac_soaring

New member
I am upgrading older wrf models to wrf 3.7. One goal was to add windgust to the output parameters. It appears clwrf_gust_wind was added in wrf 3.3.1, but the information available on how to accomplish that seems very limited (from forum and google searches). It appears additional parameters were required in the compilation (-DCLWRFXTR -DCLWRFGHG -DCLWRFHVY \ added to configure.wrf), changes were required to files in the /Registry folder, and "clwrf_gust_wind = 1" must be added to namelist.input (unclear what section?). It also appears that "output_diagnostics = 1," must be set in the time_control section, but that is less clear.

The standard namelist.input glossaries (https://esrl.noaa.gov/gsd/wrfportal/namelist_input_options.html, https://pubs.usgs.gov/sir/2014/5089/downloads/namelist.READMEdo not include any of the clwrf parameters apparently added in wrf 3.3.1.

Is there a better resource on how to implement gust_wind?

I do see references to people computing gust as a post-process. Is this still the recommended approach?

Thank you,
Alan
 
Hi,
If you want to output max wind, there are a couple of diagnostics options built-in. They are available in V3.7, but not in 3.3. The options are output_diagnostics (which you mentioned, but does not have to be used with CLWRF) and nwp_diagnostics. You can read more about these in Version 3.7 of the Users' Guide.

As for adding a new output variable, unfortunately we don't have the resources to assist with that, unless we know how to do it off the top of our head. I will refer you to the FAQ section on adding new features, though. There are several types of new features and perhaps one of these will be useful.
 
Hello:
Thank you for the quick response. I am not proposing a new output variable as there are many references to this being forecast. However, it is quite unclear how this is being achieved. To clarify, I am trying to produce "Surface Wind Gust" in parallel with the existing wind parameters for each forecast time over the entire model. Here are some examples from the Internet of such output:

https://www.weather.gov/akq/slideshow_gust
https://www.weather.gov/tae/wrfnmm04km_maxgust
https://a.atmos.washington.edu/wrfrt/gfsinit.html (note, both 10m Wind speed and 10M Wind Gust are included)
https://forecast.weather.gov/MapClick.php?lat=33.9916&lon=-116.9639&unit=0&lg=english&FcstType=digital

Hopefully there are pointers somewhere to the steps required to implement this model variable.

Thank you,

Alan
 
Alan,
I would suggest trying to contact some of the entities or groups connected to the work mentioned in the links you shared. If they've done it before, hopefully someone there will have some knowledge or a contact for you. Good luck!
 
Just a note:

I have reached out to the contacts identified on the various web pages (awaiting responses).

Also, it appears both NOAA and the European equivalent have included wind_gust as a standard part of their wrf-based modeling. NOAA refers to their model as WRF-ARW (which would appear to be the standard wrf with the ARW core). For ECMWF : http://apps.ecmwf.int/codes/grib/param-db?id=49#grib2, for NOAA, parameter 180, http://www.nco.ncep.noaa.gov/pmb/docs/on388/table2.html.

I mention this here hoping someone on this list may have worked on, or be familiar with one of these implementations.

Thank you,

Alan
 
Alan,
I just reviewed your questions about the wind gust. CLWRF is not a standard WRF we maintain here in NCAR. The research group that develop(?) CLWRF never shared any information with us, which is very unfortunate. At present it is not our priority to produce gust wind by standard WRF. However, we do welcome community contribution to add this capability.
 
No response yet from the contacts, but I have located some information from NOAA. It appears wind-gust was part of post processing in 2012: https://www.weather.gov/media/notification/tins/tin12-24nam_wind_gust.pdf. The document provides notice of a computational change to the NOAA NAM/DGEX post-processing code. However, DGEX seems to have been retired in 2016 https://www.weather.gov/media/notification/tins/tin16-41nam_updates.pdf. I'm still trying to track down the current process.

Alan
 
I found some very old code on the WRF User's Forum: https://forum.wrfforum.com/viewtopic.php?f=8&t=948
from Robert Rosumalski.

SUBROUTINE CALGUST(LPBL,ZPBL,GUST)
C$$$ SUBPROGRAM DOCUMENTATION BLOCK
C . . .
C SUBPROGRAM: CALGUST COMPUTE MAX WIND LEVEL
C PRGRMMR: MANIKIN ORG: W/NP2 DATE: 97-03-04
C
C ABSTRACT:
C THIS ROUTINE COMPUTES SURFACE WIND GUST BY MIXING
C DOWN MOMENTUM FROM THE LEVEL AT THE HEIGHT OF THE PBL
C
C
C PROGRAM HISTORY LOG:
C 03-10-15 GEOFF MANIKIN
C 05-03-09 H CHUANG - WRF VERSION
C 05-06-30 R ROZUMALSKI - DYNAMIC MEMORY ALLOCATION AND SMP
C THREAD-SAFE VERSION
C
C USAGE: CALL CALGUST(GUST)
C INPUT ARGUMENT LIST:
C NONE
C
C OUTPUT ARGUMENT LIST:
C GUST - SPEED OF THE MAXIMUM SFC WIND GUST
C
C OUTPUT FILES:
C NONE
C
C SUBPROGRAMS CALLED:
C UTILITIES:
C H2V
C
C LIBRARY:
C COMMON -
C LOOPS
C OPTIONS
C MASKS
C INDX
C
C ATTRIBUTES:
C LANGUAGE: FORTRAN 90
C MACHINE : CRAY C-90
C$$$
C
C
use vrbls3d
use vrbls2d
C
C INCLUDE ETA GRID DIMENSIONS. SET/DERIVE PARAMETERS.
C
!
INCLUDE "params"
C
INCLUDE "CTLBLK.comm"
C
C DECLARE VARIABLES.
C
INTEGER :: LPBL(IM,JM)
REAL :: GUST(IM,JM)
REAL ZPBL(IM,jsta_2l:jend_2u)
C
C
C*****************************************************************************
C START CALMXW HERE.
C
C LOOP OVER THE GRID.
C
DO J=JSTA,JEND
DO I=1,IM
! GUST(I,J) = SPVAL
GUST(I,J) = 0.
ENDDO
ENDDO
C
C ASSUME THAT U AND V HAVE UPDATED HALOS
C
!$omp parallel do
!$omp& private(ie,iw,mxww,u0,v0,wind)
DO 20 J=JSTA_M,JEND_M
DO 20 I=2,IM-1
L=LPBL(I,J)
IF(MODELNAME .EQ. 'NMM')THEN
IE=I+MOD(J+1,2)
IW=I+MOD(J+1,2)-1

USFC=D25*(U10(I,J-1)+U10(IW,J)+
X U10(IE,J)+U10(I,J+1))
VSFC=D25*(V10(I,J-1)+V10(IW,J)+
X V10(IE,J)+V10(I,J+1))
SFCWIND=SQRT(USFC**2 + VSFC**2)
U0 = D25*(U(I,J-1,L)+U(IW,J,L)+
X U(IE,J,L)+U(I,J+1,L))
V0 = D25*(V(I,J-1,L)+V(IW,J,L)+
X V(IE,J,L)+V(I,J+1,L))
WIND=SQRT(U0**2 + V0**2)

ELSE IF(MODELNAME .EQ. 'NCAR')THEN
USFC=U10(I,J)
VSFC=V10(I,J)
SFCWIND=SQRT(USFC**2 + VSFC**2)
U0=U(I,J,L)
V0=V(I,J,L)
WIND=SQRT(U0**2 + V0**2)
END IF
DELWIND=WIND - SFCWIND
ZSFC=FIS(I,J)*GI
DELWIND=DELWIND*(1.0-AMIN1(0.5,ZPBL(I,J)/2000.))
GUST(I,J)=SFCWIND+DELWIND
10 CONTINUE
20 CONTINUE

C END OF ROUTINE.
C
RETURN
END
 
I received information from one of the NOAA contacts regarding their implementation of gust:

"The NAM wind gust is a diagnostic field computed in post-processing. To compute wind gust speed, the NAM post-processing code determines the height of the top of the planetary boundary layer (PBL). It then determines the wind speed at the top of the PBL and computes the difference between this wind speed and the speed at the surface".

I note that the long retired wrf post-processor (WPP) calculated wind-gust and this functionality was carried forward into the Universal Post-Processor (UPP). End of wrf support within UPP has been announced with no successor identified.
 
If you are interested in internal computation of wind gust whilst the model is running...

We worked on an in-line implementation in the WRF model within the WRF-CORDEX module. Is based in Brasseur, 2001 work. Here you find all the information:

https://www.geosci-model-dev.net/12/1029/2019/gmd-12-1029-2019.html

I have the code for WRFv4.1.2 too

Lluís
 
Dear LluisFB,

I am interested the code too.
Could you please share the Code with us.
Any help would be Appreciated.

Thanks

Sima
 
There appears to be code in a tab attached to the article linked in the original post. https://gmd.copernicus.org/articles/12/1029/2019/gmd-12-1029-2019-assets.html

Is that what folks are looking for?

Alan
 
Top