To recap, the vertical fluid velocity in s coordinates, ds/dt, is conventionally called omega and has units s^-1. However the ROMS vertical velocity variable, which typically appears in the code as ocean(ng)%W, is scaled as described in mod_ocean.F as
Code: Select all
! W S-coordinate (omega*Hz/mn) vertical velocity (m3/s). !
For output to history files, as the netCDF variable "omega", ocean(ng)%W is scaled by subroutine scale_omega in omega.F. The metadata says, correctly, that the result has units of m/s:
Code: Select all
float omega(ocean_time, s_w, eta_rho, xi_rho) ;
omega:long_name = "S-coordinate vertical momentum component" ;
omega:units = "meter second-1" ;
omega:time = "ocean_time" ;
omega:coordinates = "x_rho y_rho s_w ocean_time" ;
omega:field = "omega, scalar, series" ;
For output to averages files, a variable AVERAGE(ng)%avgw3d is defined in mod_average.F. The file header describes this variable as
Code: Select all
! avgw3d S-coordinate [omega*Hz/mn] vertical velocity (m3/s). !
Code: Select all
IF (Aout(idOvel,ng)) THEN
DO k=0,N(ng)
DO j=JstrR,JendR
DO i=IstrR,IendR
AVERAGE(ng)%avgw3d(i,j,k)=AVERAGE(ng)%avgw3d(i,j,k)+ &
& OCEAN(ng)%W(i,j,k)* &
& GRID(ng)%pm(i,j)* &
& GRID(ng)%pn(i,j)
END DO
END DO
END DO
END IF
Code: Select all
float omega(ocean_time, s_w, eta_rho, xi_rho) ;
omega:long_name = "time-averaged S-coordinate vertical momentum
component" ;
omega:units = "meter3 second-1" ;
omega:time = "ocean_time" ;
omega:coordinates = "x_rho y_rho s_w ocean_time" ;
omega:field = "omega, scalar, series" ;
Code: Select all
!
! Write S-coordinate "omega" vertical velocity (m3/s).
!
IF (Sout(idOvel,ng)) THEN
scale=1.0_r8
CALL extract_sta3d (ng, iNLM, Cgrid, idOvel, w3dvar, &
& LBi, UBi, LBj, UBj, 0, N(ng), &
& scale, OCEAN(ng)%W, &
& NposW, XposW, YposW, ZposW, rsta)
CALL netcdf_put_fvar (ng, iNLM, STAname(ng), &
& TRIM(Vname(1,idOvel)), rsta, &
& (/1,1,tSTAindx(ng)/), &
& (/N(ng)+1,Nstation(ng),1/), &
& ncid = ncSTAid(ng), &
& varid = staVid(idOvel,ng))
IF (exit_flag.ne.NoError) RETURN
END IF
The metadata says, correctly, that it's in m3/s:
Code: Select all
float omega(ocean_time, station, s_w) ;
omega:long_name = "S-coordinate vertical momentum component" ;
omega:units = "meter3 second-1" ;
omega:time = "ocean_time" ;
omega:field = "omega, scalar, series" ;
So, I'm glad I could clear that up . But the fact that I've put this post in "ROMS Bugs" indicates that I think the inconsistencies need to be ironed out.