Hi,
I think FORCES(ng)%Tair is defined at the 'rho' points. I am not sure about FORCES(ng)%Uwind and FORCES(ng)%Vwind. Are they defined at the 'rho' points as well? I noticed that in the forcing data (coamps_wc13_wind.nc), u,v have coordinates at the 'rho' points.
Thanks,
James
grid points for defining FORCES
Re: grid points for defining FORCES
It depends. If ROMS has to interpolate and rotate the winds, it wants them at rho points. If you have already interpolated and rotated them, then Uwind is at u-points and Vwind is at v-points.
Re: grid points for defining FORCES
Kate,
Thank you for the reply and help to clarify.
I have a question about wind rotation.
The code set_data.F has the following. Appears that the wind is rotate from (e,n)ward to (x,y)ward. Is this correct?
Thanks,
James
===================
# ifdef CURVGRID
!
! If input point surface winds or interpolated from coarse data, rotate
! to curvilinear grid.
!
IF (.not.Linfo(1,idUair,ng).or. &
& (Iinfo(5,idUair,ng).ne.Lm(ng)+2).or. &
& (Iinfo(6,idUair,ng).ne.Mm(ng)+2)) THEN
DO j=JstrR,JendR
DO i=IstrR,IendR
cff1=FORCES(ng)%Uwind(i,j)*GRID(ng)%CosAngler(i,j)+ &
& FORCES(ng)%Vwind(i,j)*GRID(ng)%SinAngler(i,j)
cff2=FORCES(ng)%Vwind(i,j)*GRID(ng)%CosAngler(i,j)- &
& FORCES(ng)%Uwind(i,j)*GRID(ng)%SinAngler(i,j)
FORCES(ng)%Uwind(i,j)=cff1
FORCES(ng)%Vwind(i,j)=cff2
END DO
END DO
Thank you for the reply and help to clarify.
I have a question about wind rotation.
The code set_data.F has the following. Appears that the wind is rotate from (e,n)ward to (x,y)ward. Is this correct?
Thanks,
James
===================
# ifdef CURVGRID
!
! If input point surface winds or interpolated from coarse data, rotate
! to curvilinear grid.
!
IF (.not.Linfo(1,idUair,ng).or. &
& (Iinfo(5,idUair,ng).ne.Lm(ng)+2).or. &
& (Iinfo(6,idUair,ng).ne.Mm(ng)+2)) THEN
DO j=JstrR,JendR
DO i=IstrR,IendR
cff1=FORCES(ng)%Uwind(i,j)*GRID(ng)%CosAngler(i,j)+ &
& FORCES(ng)%Vwind(i,j)*GRID(ng)%SinAngler(i,j)
cff2=FORCES(ng)%Vwind(i,j)*GRID(ng)%CosAngler(i,j)- &
& FORCES(ng)%Uwind(i,j)*GRID(ng)%SinAngler(i,j)
FORCES(ng)%Uwind(i,j)=cff1
FORCES(ng)%Vwind(i,j)=cff2
END DO
END DO
Re: grid points for defining FORCES
Yes, that's right. For ROMS to do the interpolation/rotation, the winds have to be on a regular lat/lon grid.
Re: grid points for defining FORCES
I don't think that's correct. Stresses sustr,svstr are at the corresponding u,v points, but the wind components Uwind,Vwind are always represented at rho-points, even after they are interpolated from a simple gridded input file that is not aligned with the ROMS grid.It depends. If ROMS has to interpolate and rotate the winds, it wants them at rho points. If you have already interpolated and rotated them, then Uwind is at u-points and Vwind is at v-points.
This is apparent in code that uses Uwind,Vwind like Nonlinear_bulk_flux.F. There you see that the wind stress components Taux,Tauy are computed at rho-points, and only at the end are they mapped to the velocity points with a step like:
Code: Select all
sustr(i,j)=cff*(Taux(i-1,j)+Taux(i,j))
...
svstr(i,j)=cff*(Tauy(i,j-1)+Tauy(i,j))
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
Re: grid points for defining FORCES
It just goes to show that you need to check the source code to know the answer for sure.