I am using ROMS 736
in ferret, the station results(e.g.ocean_sta.nc) always note error below:
"*** NOTE: unsupported ordering of axes in variable u
*** NOTE: The default ordering will be used
*** NOTE: Axis S_RHO marked as DU
*** NOTE: but it has different directions in grids. Axes in grids may be inconsistent.
*** NOTE: Axis S_W marked as DU
*** NOTE: but it has different directions in grids. Axes in grids may be inconsistent.
*** NOTE: Axis OCEAN_TIME marked as TI
*** NOTE: but it has different directions in grids. Axes in grids may be inconsistent."
and the structure is :
LON_RHO longitude of RHO-points ... 1:8 ... ...
LAT_RHO latitude of RHO-points ... 1:8 ... ...
ANGLE angle between XI-axis and EAST ... 1:8 ... ...
ZETA free-surface ... 1:8 ... 1:2141
UBAR vertically integrated u-momentu ... 1:8 ... 1:2141
VBAR vertically integrated v-momentu ... 1:8 ... 1:2141
U u-momentum component 1:30 1:8 1:2141 ...
V v-momentum component 1:30 1:8 1:2141 ...
W vertical momentum component 1:31 1:8 1:2141 ...
OMEGA S-coordinate vertical momentum 1:31 1:8 1:2141 ...
TEMP potential temperature 1:30 1:8 1:2141 ...
SUSTR surface u-momentum stress ... 1:8 ... 1:2141
SVSTR surface v-momentum stress ... 1:8 ... 1:2141
BUSTR bottom u-momentum stress ... 1:8 ... 1:2141
BVSTR bottom v-momentum stress ... 1:8 ... 1:2141"
so you can not plot figure in ferret directly.
this can be corrected in "def_station.f" and "wrt_station.f"
"def_station.f"
in line 172-182
"! Define dimension vector for cast variables at vertical RHO-points.
!
rgrd(1)=DimIDs( 9) ==> rgrd(2=DimIDs( 9)
rgrd(2)=DimIDs(13) ==> rgrd(1)=DimIDs(13)
rgrd(3)=DimIDs(12)
!
! Define dimension vector for cast variables at vertical W-points.
!
wgrd(1)=DimIDs(10) ==> wgrd(2)=DimIDs(10)
wgrd(2)=DimIDs(13) ==> wgrd(1)=DimIDs(13)
wgrd(3)=DimIDs(12)
"wrt_station.f"
add lines below in line 68-69
real(r8), dimension(Nstation(ng),N(ng)+1) :: rsta2dw !jyw
real(r8), dimension(N(ng),Nstation(ng)) :: rsta2drho !jyw
and modify some in each 3D variables e.g. u,v,w, t, s...
variables at vertical RHO-points, for example 272-277:
IF (Sout(idUvel,ng)) THEN
scale=1.0_r8
CALL extract_sta3d (ng, iNLM, Cgrid, idUvel, u3dvar, &
& LBi, UBi, LBj, UBj, 1, N(ng), &
& scale, OCEAN(ng)%u(:,:,:,NOUT), &
& NposR, XposR, YposR, ZposR, rsta)
rsta2drho=reshape(rsta,shape(rsta2drho)) !jyw
CALL netcdf_put_fvar (ng, iNLM, STA(ng)%name, &
& TRIM(Vname(1,idUvel)),transpose(rsta2drho),& !jyw
& (/1,1,STA(ng)%Rindex/), &
& (/Nstation(ng),N(ng),1/), &
& ncid = STA(ng)%ncid, &
& varid = STA(ng)%Vid(idUvel))
IF (exit_flag.ne.NoError) RETURN
END IF
variables at vertical W-points,for example 363-378:
! Write out vertical velocity (m/s).
!
IF (Sout(idWvel,ng)) THEN
scale=1.0_r8
CALL extract_sta3d (ng, iNLM, Cgrid, idWvel, w3dvar, &
& LBi, UBi, LBj, UBj, 0, N(ng), &
& scale, OCEAN(ng)%wvel, &
& NposW, XposW, YposW, ZposW, rsta)
rsta2dw=reshape(rsta,shape(rsta2dw)) !jyw
CALL netcdf_put_fvar (ng, iNLM, STA(ng)%name, &
& TRIM(Vname(1,idWvel)),transpose(rsta2dw), & !jyw
& (/1,1,STA(ng)%Rindex/), &
& (/Nstation(ng),N(ng)+1,1/), &
& ncid = STA(ng)%ncid, &
& varid = STA(ng)%Vid(idWvel))
IF (exit_flag.ne.NoError) RETURN
END IF
!
and the data structure can be corrected as :
"
CS_R S-coordinate stretching curves ... ... 1:30 ...
CS_W S-coordinate stretching curves ... ... 1:31 ...
IPOS stations I-direction positions 1:8 ... ... ...
JPOS stations J-direction positions 1:8 ... ... ...
H bathymetry at RHO-points 1:8 ... ... ...
LON_RHO longitude of RHO-points 1:8 ... ... ...
LAT_RHO latitude of RHO-points 1:8 ... ... ...
ANGLE angle between XI-axis and EAST 1:8 ... ... ...
ZETA free-surface 1:8 ... ... 1:220
UBAR vertically integrated u-momentu 1:8 ... ... 1:220
VBAR vertically integrated v-momentu 1:8 ... ... 1:220
U u-momentum component 1:8 ... 1:30 1:220
V v-momentum component 1:8 ... 1:30 1:220
U_EASTWARD
eastward momentum component at 1:8 ... 1:30 1:220
V_NORTHWARD
northward momentum component at 1:8 ... 1:30 1:220
W vertical momentum component 1:8 ... 1:31 1:220
OMEGA S-coordinate vertical momentum 1:8 ... 1:31 1:220
TEMP potential temperature 1:8 ... 1:30 1:220
SALT salinity 1:8 ... 1:30 1:220
RHO density anomaly 1:8 ... 1:30 1:220
AKV vertical viscosity coefficient 1:8 ... 1:31 1:220
TKE turbulent kinetic energy 1:8 ... 1:31 1:220"
the netcdf structure is always confuse us
the nc file of station
Re: the nc file of station
This strikes me as more a ferret bug than a ROMS bug. I'm glad you found a work-around.
My stations file looks like:I have read them with NCL and Python, no problem.
My stations file looks like:
Code: Select all
netcdf bering_sta {
dimensions:
station = 4 ;
boundary = 4 ;
ocean_time = UNLIMITED ; // (2881 currently)
variables:
...
double ocean_time(ocean_time) ;
ocean_time:long_name = "time since initialization" ;
ocean_time:units = "seconds since 1900-01-01 00:00:00" ;
ocean_time:calendar = "gregorian" ;
ocean_time:field = "time, scalar, series" ;
float zeta(ocean_time, station) ;
zeta:long_name = "free-surface" ;
zeta:units = "meter" ;
zeta:time = "ocean_time" ;
zeta:field = "free-surface, scalar, series" ;
zeta:_FillValue = 1.e+37f ;
float sustr(ocean_time, station) ;
sustr:long_name = "surface u-momentum stress" ;
sustr:units = "newton meter-2" ;
sustr:time = "ocean_time" ;
sustr:field = "surface u-momentum stress, scalar, series" ;
sustr:_FillValue = 1.e+37f ;
...