Hi guys,
I never had to deal with curvilinear grid before until now. When I interpolate U-wind and V-wind component onto the model grid in order to generate surface forcing file, if the model grid is a curvilinear grid (not east-west and south-north oriented), then the U-wind and V-wind are NOT true east-west and south-north component of the wind vector, right?
In another word, I have to use the angle in grid file to calculate the component at XI direction as the U-wind value, and the component at eta direction as V-wind value, correct?
Thank you very much for taking the time to answer my question!
U-wind direction question
-
- Posts: 4
- Joined: Thu Jun 05, 2014 5:03 pm
- Location: Florida Atlantic University
Re: U-wind direction question
Yes, that is all true. What is the source of your winds? If they are on a rectangular grid aligned NS and EW, then ROMS can do the interpolation and rotation for you.
-
- Posts: 4
- Joined: Thu Jun 05, 2014 5:03 pm
- Location: Florida Atlantic University
Re: U-wind direction question
Hi Kate,kate wrote:Yes, that is all true. What is the source of your winds? If they are on a rectangular grid aligned NS and EW, then ROMS can do the interpolation and rotation for you.
My wind source is from North America Regional Reanalysis, so they are indeed on rectangular grid aligned NS and EW. How do I set it up to make ROMS do the interpolation and rotation automatically? Should I set it up when I generate the forcing nc file? If yes, could you post a sample of the cdl file for wind forcing?
My wind forcing is like this:
dimensions:
xi_u = 641 ;
eta_u = 562 ;
xi_v = 642 ;
eta_v = 561 ;
xi_rho = 642 ;
eta_rho = 562 ;
xi_psi = 641 ;
eta_psi = 561 ;
sms_time = UNLIMITED ; // (0 currently)
variables:
float sms_time(sms_time) ;
sms_time:long_name = "surface momentum stress time" ;
sms_time:units = "days" ;
sms_time:cycle_length = 731. ;
float Uwind(sms_time,eta_rho,xi_rho) ;
Uwind:long_name = "surface u-wind component" ;
Uwind:units = "meter second-1" ;
float Vwind(sms_time,eta_rho,xi_rho) ;
Vwind:long_name = "surface v-wind component" ;
Vwind:units = "meter second-1" ;
How do I change it in order for roms to do the interpolation and rotation?
Thanks Kate!
Re: U-wind direction question
Here's the CDL of a global winds file I use:
I believe you need the coordinates attribute and the time attribute. Also, the grid dimensions of the winds have to be different from the grid dimensions of your ROMS grid. That is, if your global forcing is 360x180 in size, don't build a grid of that same size.
You can always check the resulting wind stress as computed by ROMS to make sure things are looking sensible.
Code: Select all
dimensions:
lon = 540 ;
lat = 361 ;
time = UNLIMITED ; // (2920 currently)
variables:
double lon(lon) ;
lon:units = "degrees_east" ;
lon:valid_min = 0. ;
lon:valid_max = 359.333333333333 ;
lon:long_name = "longitude" ;
double lat(lat) ;
lat:units = "degrees_north" ;
lat:valid_min = -90. ;
lat:valid_max = 90. ;
lat:long_name = "latitude" ;
double time(time) ;
time:units = "days since 1900-01-01 00:00:00" ;
time:valid_min = 28854.0625 ;
time:valid_max = 29218.9375 ;
time:calendar = "LEAP" ;
float Uwind(time, lat, lon) ;
Uwind:long_name = "Eastward wind at 2 m above the displacement height" ;
Uwind:units = "m/s" ;
Uwind:coordinates = "lon lat" ;
Uwind:time = "time" ;
Uwind:_FillValue = 1.e+15f ;
Uwind:missing_value = 1.e+15f ;
Uwind:valid_range = -19.90967f, 17.66533f ;
You can always check the resulting wind stress as computed by ROMS to make sure things are looking sensible.