Compiling 'AVERAGES_TIDE'
Compiling 'AVERAGES_TIDE'
I have a cpp.h working working well (tested with a recent version of ROMS codes) for tide only run with following options.
#define SSH_TIDES /* flag - impose tidal elevation */
#define UV_TIDES /* flag - tidal currents */
#undef RAMP_TIDES /* ramp OBC data or the body forcing */
#define ADD_FSOBC /* add tidal elevation to processed OBC data */
#define ADD_M2OBC /* tidal currents to processed OBC data */
However, when I added on the following for tidal harmonic analysis,
# define AVERAGES_DETIDE
I got the following compiling errors (I did 'make clean' before the 'make'):
wrt_tides.f90(73): error #6460: This is not a field name that is defined in the encompassing structure. [COSW_SUM]
& TIDES(ng) % CosW_sum, &
----------------------------------------^
wrt_tides.f90(71): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(83): error #6460: This is not a field name that is defined in the encompassing structure. [SINW_SUM]
& TIDES(ng) % SinW_sum, &
----------------------------------------^
wrt_tides.f90(81): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(93): error #6460: This is not a field name that is defined in the encompassing structure. [COSWCOSW]
& TIDES(ng) % CosWCosW, &
----------------------------------------^
wrt_tides.f90(91): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(103): error #6460: This is not a field name that is defined in the encompassing structure. [SINWSINW]
& TIDES(ng) % SinWSinW, &
----------------------------------------^
wrt_tides.f90(101): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(113): error #6460: This is not a field name that is defined in the encompassing structure. [SINWCOSW]
& TIDES(ng) % SinWCosW, &
----------------------------------------^
wrt_tides.f90(111): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(128): error #6460: This is not a field name that is defined in the encompassing structure. [ZETA_TIDE]
& TIDES(ng) % zeta_tide)
---------------------------------------^
wrt_tides.f90(128): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [ZETA_TIDE]
& TIDES(ng) % zeta_tide)
---------------------------------------^
wrt_tides.f90(148): error #6460: This is not a field name that is defined in the encompassing structure. [UBAR_TIDE]
& TIDES(ng) % ubar_tide)
---------------------------------------^
wrt_tides.f90(148): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [UBAR_TIDE]
& TIDES(ng) % ubar_tide)
---------------------------------------^
wrt_tides.f90(168): error #6460: This is not a field name that is defined in the encompassing structure. [VBAR_TIDE]
& TIDES(ng) % vbar_tide)
---------------------------------------^
wrt_tides.f90(168): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [VBAR_TIDE]
& TIDES(ng) % vbar_tide)
---------------------------------------^
wrt_tides.f90(189): error #6460: This is not a field name that is defined in the encompassing structure. [U_TIDE]
& TIDES(ng) % u_tide)
---------------------------------------^
wrt_tides.f90(189): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [U_TIDE]
& TIDES(ng) % u_tide)
---------------------------------------^
wrt_tides.f90(210): error #6460: This is not a field name that is defined in the encompassing structure. [V_TIDE]
& TIDES(ng) % v_tide)
---------------------------------------^
wrt_tides.f90(210): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [V_TIDE]
& TIDES(ng) % v_tide)
---------------------------------------^
wrt_tides.f90(232): error #6460: This is not a field name that is defined in the encompassing structure. [T_TIDE]
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------------------^
wrt_tides.f90(232): error #6158: The structure-name is invalid or is missing. [TIDES]
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------^
wrt_tides.f90(232): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------^
compilation aborted for wrt_tides.f90 (code 1)
make: *** [Build/wrt_tides.o] Error 1
Thanks in advance!
#define SSH_TIDES /* flag - impose tidal elevation */
#define UV_TIDES /* flag - tidal currents */
#undef RAMP_TIDES /* ramp OBC data or the body forcing */
#define ADD_FSOBC /* add tidal elevation to processed OBC data */
#define ADD_M2OBC /* tidal currents to processed OBC data */
However, when I added on the following for tidal harmonic analysis,
# define AVERAGES_DETIDE
I got the following compiling errors (I did 'make clean' before the 'make'):
wrt_tides.f90(73): error #6460: This is not a field name that is defined in the encompassing structure. [COSW_SUM]
& TIDES(ng) % CosW_sum, &
----------------------------------------^
wrt_tides.f90(71): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(83): error #6460: This is not a field name that is defined in the encompassing structure. [SINW_SUM]
& TIDES(ng) % SinW_sum, &
----------------------------------------^
wrt_tides.f90(81): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(93): error #6460: This is not a field name that is defined in the encompassing structure. [COSWCOSW]
& TIDES(ng) % CosWCosW, &
----------------------------------------^
wrt_tides.f90(91): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(103): error #6460: This is not a field name that is defined in the encompassing structure. [SINWSINW]
& TIDES(ng) % SinWSinW, &
----------------------------------------^
wrt_tides.f90(101): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(113): error #6460: This is not a field name that is defined in the encompassing structure. [SINWCOSW]
& TIDES(ng) % SinWCosW, &
----------------------------------------^
wrt_tides.f90(111): error #6285: There is no matching specific subroutine for this generic subroutine call. [NETCDF_PUT_FVAR]
CALL netcdf_put_fvar (ng, iNLM, TIDE(ng)%name, &
-----------^
wrt_tides.f90(128): error #6460: This is not a field name that is defined in the encompassing structure. [ZETA_TIDE]
& TIDES(ng) % zeta_tide)
---------------------------------------^
wrt_tides.f90(128): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [ZETA_TIDE]
& TIDES(ng) % zeta_tide)
---------------------------------------^
wrt_tides.f90(148): error #6460: This is not a field name that is defined in the encompassing structure. [UBAR_TIDE]
& TIDES(ng) % ubar_tide)
---------------------------------------^
wrt_tides.f90(148): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [UBAR_TIDE]
& TIDES(ng) % ubar_tide)
---------------------------------------^
wrt_tides.f90(168): error #6460: This is not a field name that is defined in the encompassing structure. [VBAR_TIDE]
& TIDES(ng) % vbar_tide)
---------------------------------------^
wrt_tides.f90(168): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [VBAR_TIDE]
& TIDES(ng) % vbar_tide)
---------------------------------------^
wrt_tides.f90(189): error #6460: This is not a field name that is defined in the encompassing structure. [U_TIDE]
& TIDES(ng) % u_tide)
---------------------------------------^
wrt_tides.f90(189): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [U_TIDE]
& TIDES(ng) % u_tide)
---------------------------------------^
wrt_tides.f90(210): error #6460: This is not a field name that is defined in the encompassing structure. [V_TIDE]
& TIDES(ng) % v_tide)
---------------------------------------^
wrt_tides.f90(210): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated. [V_TIDE]
& TIDES(ng) % v_tide)
---------------------------------------^
wrt_tides.f90(232): error #6460: This is not a field name that is defined in the encompassing structure. [T_TIDE]
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------------------^
wrt_tides.f90(232): error #6158: The structure-name is invalid or is missing. [TIDES]
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------^
wrt_tides.f90(232): error #6634: The shape matching rules of actual arguments and dummy arguments have been violated.
& TIDES(ng) % t_tide(:,:,:,:,itrc))
-----------------------------^
compilation aborted for wrt_tides.f90 (code 1)
make: *** [Build/wrt_tides.o] Error 1
Thanks in advance!
Re: Compiling 'AVERAGES_TIDE'
The answer is to also #define AVERAGES.
His/her next problem is a bug in set_avg.F in which the "use mod_grid" is enclosed in #ifdef WET_DRY. There are uses of the GRID structure outside of the WET_DRY options in set_avg.F.
His/her next problem is a bug in set_avg.F in which the "use mod_grid" is enclosed in #ifdef WET_DRY. There are uses of the GRID structure outside of the WET_DRY options in set_avg.F.
Re: Compiling 'AVERAGES_TIDE'
Thanks, Kate!
I tested and the ROMS code passed compilation only with
#undef WET_DRY
# define AVERAGES_DETIDE
# define AVERAGE
With "define WET_DRY", it gives error messages like
set_avg.f90(2330): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [GRID]
& GRID(ng)%umask_io(i,j)* &
I tested and the ROMS code passed compilation only with
#undef WET_DRY
# define AVERAGES_DETIDE
# define AVERAGE
With "define WET_DRY", it gives error messages like
set_avg.f90(2330): error #6837: The leftmost part-ref in a data-ref can not be a function reference. [GRID]
& GRID(ng)%umask_io(i,j)* &
Re: Compiling 'AVERAGES_TIDE'
Did you take out the '#ifdef WET_DRY' on the 'use mod_grid' statement? Try that.
Re: Compiling 'AVERAGES_TIDE'
I've tried that and still it showed the same error messages. I'll use the non-'wet-dry'. It should serve my purpose well. Thanks!
Re: Compiling 'AVERAGES_TIDE'
Another issue for help:
I got the following error message:
DEF_VAR - unable to define variable: Hcount
in NetCDF file ./my_harmonic.nc
What's the issue here? What's the Hcount?
I got the following error message:
DEF_VAR - unable to define variable: Hcount
in NetCDF file ./my_harmonic.nc
What's the issue here? What's the Hcount?
Re: Compiling 'AVERAGES_TIDE'
Code: Select all
Vinfo( 1)='Hcount'
Vinfo( 2)='number of time-accumulated tide harmonics'
Re: Compiling 'AVERAGES_TIDE'
Hello,
I am trying to use the AVERAGES_DETIDE function and it seems to be compiling okay but when the model has run y averages file only contains the following and is missing some variables i.e: hcount, cos_W and sin_W..I'm assuming I've just not switched something on? Help would be greatly appreciated, thank you
netcdf ocean_avg {
dimensions:
xi_rho = 325 ;
xi_u = 324 ;
xi_v = 325 ;
xi_psi = 324 ;
eta_rho = 472 ;
eta_u = 472 ;
eta_v = 471 ;
eta_psi = 471 ;
s_rho = 10 ;
s_w = 11 ;
tracer = 2 ;
boundary = 4 ;
ocean_time = UNLIMITED ; // (408 currently)
variables:
int ntimes ;
ntimes:long_name = "number of long time-steps" ;
int ndtfast ;
ndtfast:long_name = "number of short time-steps" ;
double dt ;
dt:long_name = "size of long time-steps" ;
dt:units = "second" ;
double dtfast ;
dtfast:long_name = "size of short time-steps" ;
dtfast:units = "second" ;
double dstart ;
dstart:long_name = "time stamp assigned to model initilization" ;
dstart:units = "days since 2000-01-01 00:00:00" ;
int nHIS ;
nHIS:long_name = "number of time-steps between history records" ;
int ndefHIS ;
ndefHIS:long_name = "number of time-steps between the creation of history files" ;
int nRST ;
nRST:long_name = "number of time-steps between restart records" ;
nRST:cycle = "only latest two records are maintained" ;
int ntsAVG ;
ntsAVG:long_name = "starting time-step for accumulation of time-averaged fields" ;
int nAVG ;
nAVG:long_name = "number of time-steps between time-averaged records" ;
int ndefAVG ;
ndefAVG:long_name = "number of time-steps between the creation of average files" ;
int nSTA ;
nSTA:long_name = "number of time-steps between stations records" ;
double Falpha ;
Falpha:long_name = "Power-law shape barotropic filter parameter" ;
double Fbeta ;
Fbeta:long_name = "Power-law shape barotropic filter parameter" ;
double Fgamma ;
Fgamma:long_name = "Power-law shape barotropic filter parameter" ;
double nl_tnu2(tracer) ;
nl_tnu2:long_name = "nonlinear model Laplacian mixing coefficient for tracers" ;
nl_tnu2:units = "meter2 second-1" ;
double nl_visc2 ;
nl_visc2:long_name = "nonlinear model Laplacian mixing coefficient for momentum" ;
nl_visc2:units = "meter2 second-1" ;
double Akt_bak(tracer) ;
Akt_bak:long_name = "background vertical mixing coefficient for tracers" ;
Akt_bak:units = "meter2 second-1" ;
double Akv_bak ;
Akv_bak:long_name = "background vertical mixing coefficient for momentum" ;
Akv_bak:units = "meter2 second-1" ;
double Akk_bak ;
Akk_bak:long_name = "background vertical mixing coefficient for turbulent energy" ;
Akk_bak:units = "meter2 second-1" ;
double Akp_bak ;
Akp_bak:long_name = "background vertical mixing coefficient for length scale" ;
Akp_bak:units = "meter2 second-1" ;
double rdrg ;
rdrg:long_name = "linear drag coefficient" ;
rdrg:units = "meter second-1" ;
double rdrg2 ;
rdrg2:long_name = "quadratic drag coefficient" ;
double Zob ;
Zob:long_name = "bottom roughness" ;
Zob:units = "meter" ;
double Zos ;
Zos:long_name = "surface roughness" ;
Zos:units = "meter" ;
double gls_p ;
gls_p:long_name = "stability exponent" ;
double gls_m ;
gls_m:long_name = "turbulent kinetic energy exponent" ;
double gls_n ;
gls_n:long_name = "turbulent length scale exponent" ;
double gls_cmu0 ;
gls_cmu0:long_name = "stability coefficient" ;
double gls_c1 ;
gls_c1:long_name = "shear production coefficient" ;
double gls_c2 ;
gls_c2:long_name = "dissipation coefficient" ;
double gls_c3m ;
gls_c3m:long_name = "buoyancy production coefficient (minus)" ;
double gls_c3p ;
gls_c3p:long_name = "buoyancy production coefficient (plus)" ;
double gls_sigk ;
gls_sigk:long_name = "constant Schmidt number for TKE" ;
double gls_sigp ;
gls_sigp:long_name = "constant Schmidt number for PSI" ;
double gls_Kmin ;
gls_Kmin:long_name = "minimum value of specific turbulent kinetic energy" ;
double gls_Pmin ;
gls_Pmin:long_name = "minimum Value of dissipation" ;
double Charnok_alpha ;
Charnok_alpha:long_name = "Charnok factor for surface roughness" ;
double Zos_hsig_alpha ;
Zos_hsig_alpha:long_name = "wave amplitude factor for surface roughness" ;
double sz_alpha ;
sz_alpha:long_name = "surface flux from wave dissipation" ;
double CrgBan_cw ;
CrgBan_cw:long_name = "surface flux due to Craig and Banner wave breaking" ;
double Znudg ;
Znudg:long_name = "free-surface nudging/relaxation inverse time scale" ;
Znudg:units = "day-1" ;
double M2nudg ;
M2nudg:long_name = "2D momentum nudging/relaxation inverse time scale" ;
M2nudg:units = "day-1" ;
double M3nudg ;
M3nudg:long_name = "3D momentum nudging/relaxation inverse time scale" ;
M3nudg:units = "day-1" ;
double Tnudg(tracer) ;
Tnudg:long_name = "Tracers nudging/relaxation inverse time scale" ;
Tnudg:units = "day-1" ;
double rho0 ;
rho0:long_name = "mean density used in Boussinesq approximation" ;
rho0:units = "kilogram meter-3" ;
double R0 ;
R0:long_name = "background density used in linear equation of state" ;
R0:units = "kilogram meter-3" ;
double Tcoef ;
Tcoef:long_name = "thermal expansion coefficient" ;
Tcoef:units = "Celsius-1" ;
double Scoef ;
Scoef:long_name = "Saline contraction coefficient" ;
double gamma2 ;
gamma2:long_name = "slipperiness parameter" ;
int spherical ;
spherical:long_name = "grid type logical switch" ;
spherical:flag_values = 0, 1 ;
spherical:flag_meanings = "Cartesian spherical" ;
double xl ;
xl:long_name = "domain length in the XI-direction" ;
xl:units = "meter" ;
double el ;
el:long_name = "domain length in the ETA-direction" ;
el:units = "meter" ;
int Vtransform ;
Vtransform:long_name = "vertical terrain-following transformation equation" ;
int Vstretching ;
Vstretching:long_name = "vertical terrain-following stretching function" ;
double theta_s ;
theta_s:long_name = "S-coordinate surface control parameter" ;
double theta_b ;
theta_b:long_name = "S-coordinate bottom control parameter" ;
double Tcline ;
Tcline:long_name = "S-coordinate surface/bottom layer width" ;
Tcline:units = "meter" ;
double hc ;
hc:long_name = "S-coordinate parameter, critical depth" ;
hc:units = "meter" ;
double s_rho(s_rho) ;
s_rho:long_name = "S-coordinate at RHO-points" ;
s_rho:valid_min = -1. ;
s_rho:valid_max = 0. ;
s_rho:positive = "up" ;
s_rho:standard_name = "ocean_s_coordinate_g1" ;
s_rho:formula_terms = "s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc" ;
s_rho:field = "s_rho, scalar" ;
double s_w(s_w) ;
s_w:long_name = "S-coordinate at W-points" ;
s_w:valid_min = -1. ;
s_w:valid_max = 0. ;
s_w:positive = "up" ;
s_w:standard_name = "ocean_s_coordinate_g1" ;
s_w:formula_terms = "s: s_w C: Cs_w eta: zeta depth: h depth_c: hc" ;
s_w:field = "s_w, scalar" ;
double Cs_r(s_rho) ;
Cs_r:long_name = "S-coordinate stretching curves at RHO-points" ;
Cs_r:valid_min = -1. ;
Cs_r:valid_max = 0. ;
Cs_r:field = "Cs_r, scalar" ;
double Cs_w(s_w) ;
Cs_w:long_name = "S-coordinate stretching curves at W-points" ;
Cs_w:valid_min = -1. ;
Cs_w:valid_max = 0. ;
Cs_w:field = "Cs_w, scalar" ;
double h(eta_rho, xi_rho) ;
h:long_name = "bathymetry at RHO-points" ;
h:units = "meter" ;
h:coordinates = "lon_rho lat_rho" ;
h:field = "bath, scalar" ;
double f(eta_rho, xi_rho) ;
f:long_name = "Coriolis parameter at RHO-points" ;
f:units = "second-1" ;
f:coordinates = "lon_rho lat_rho" ;
f:field = "coriolis, scalar" ;
double pm(eta_rho, xi_rho) ;
pm:long_name = "curvilinear coordinate metric in XI" ;
pm:units = "meter-1" ;
pm:coordinates = "lon_rho lat_rho" ;
pm:field = "pm, scalar" ;
double pn(eta_rho, xi_rho) ;
pn:long_name = "curvilinear coordinate metric in ETA" ;
pn:units = "meter-1" ;
pn:coordinates = "lon_rho lat_rho" ;
pn:field = "pn, scalar" ;
double lon_rho(eta_rho, xi_rho) ;
lon_rho:long_name = "longitude of RHO-points" ;
lon_rho:units = "degree_east" ;
lon_rho:standard_name = "longitude" ;
lon_rho:field = "lon_rho, scalar" ;
double lat_rho(eta_rho, xi_rho) ;
lat_rho:long_name = "latitude of RHO-points" ;
lat_rho:units = "degree_north" ;
lat_rho:standard_name = "latitude" ;
lat_rho:field = "lat_rho, scalar" ;
double lon_u(eta_u, xi_u) ;
lon_u:long_name = "longitude of U-points" ;
lon_u:units = "degree_east" ;
lon_u:standard_name = "longitude" ;
lon_u:field = "lon_u, scalar" ;
double lat_u(eta_u, xi_u) ;
lat_u:long_name = "latitude of U-points" ;
lat_u:units = "degree_north" ;
lat_u:standard_name = "latitude" ;
lat_u:field = "lat_u, scalar" ;
double lon_v(eta_v, xi_v) ;
lon_v:long_name = "longitude of V-points" ;
lon_v:units = "degree_east" ;
lon_v:standard_name = "longitude" ;
lon_v:field = "lon_v, scalar" ;
double lat_v(eta_v, xi_v) ;
lat_v:long_name = "latitude of V-points" ;
lat_v:units = "degree_north" ;
lat_v:standard_name = "latitude" ;
lat_v:field = "lat_v, scalar" ;
double lon_psi(eta_psi, xi_psi) ;
lon_psi:long_name = "longitude of PSI-points" ;
lon_psi:units = "degree_east" ;
lon_psi:standard_name = "longitude" ;
lon_psi:field = "lon_psi, scalar" ;
double lat_psi(eta_psi, xi_psi) ;
lat_psi:long_name = "latitude of PSI-points" ;
lat_psi:units = "degree_north" ;
lat_psi:standard_name = "latitude" ;
lat_psi:field = "lat_psi, scalar" ;
double mask_rho(eta_rho, xi_rho) ;
mask_rho:long_name = "mask on RHO-points" ;
mask_rho:flag_values = 0., 1. ;
mask_rho:flag_meanings = "land water" ;
mask_rho:coordinates = "lon_rho lat_rho" ;
double mask_u(eta_u, xi_u) ;
mask_u:long_name = "mask on U-points" ;
mask_u:flag_values = 0., 1. ;
mask_u:flag_meanings = "land water" ;
mask_u:coordinates = "lon_u lat_u" ;
double mask_v(eta_v, xi_v) ;
mask_v:long_name = "mask on V-points" ;
mask_v:flag_values = 0., 1. ;
mask_v:flag_meanings = "land water" ;
mask_v:coordinates = "lon_v lat_v" ;
double mask_psi(eta_psi, xi_psi) ;
mask_psi:long_name = "mask on psi-points" ;
mask_psi:flag_values = 0., 1. ;
mask_psi:flag_meanings = "land water" ;
mask_psi:coordinates = "lon_psi lat_psi" ;
double ocean_time(ocean_time) ;
ocean_time:long_name = "averaged time since initialization" ;
ocean_time:units = "seconds since 2000-01-01 00:00:00" ;
ocean_time:calendar = "gregorian" ;
ocean_time:field = "time, scalar, series" ;
float zeta(ocean_time, eta_rho, xi_rho) ;
zeta:long_name = "time-averaged free-surface" ;
zeta:units = "meter" ;
zeta:time = "ocean_time" ;
zeta:coordinates = "lon_rho lat_rho ocean_time" ;
zeta:field = "free-surface, scalar, series" ;
zeta:_FillValue = 1.e+37f ;
float zeta_detided(ocean_time, eta_rho, xi_rho) ;
zeta_detided:long_name = "time-averaged detided free-surface" ;
zeta_detided:units = "meter" ;
zeta_detided:time = "ocean_time" ;
zeta_detided:coordinates = "lon_rho lat_rho ocean_time" ;
zeta_detided:field = "zeta_detided, scalar, series" ;
zeta_detided:_FillValue = 1.e+37f ;
float ubar(ocean_time, eta_u, xi_u) ;
ubar:long_name = "time-averaged vertically integrated u-momentum component" ;
ubar:units = "meter second-1" ;
ubar:time = "ocean_time" ;
ubar:coordinates = "lon_u lat_u ocean_time" ;
ubar:field = "ubar-velocity, scalar, series" ;
ubar:_FillValue = 1.e+37f ;
float ubar_detided(ocean_time, eta_u, xi_u) ;
ubar_detided:long_name = "time-averaged detided 2D u-momentum" ;
ubar_detided:units = "meter second-1" ;
ubar_detided:time = "ocean_time" ;
ubar_detided:coordinates = "lon_u lat_u ocean_time" ;
ubar_detided:field = "ubar_detided, scalar, series" ;
ubar_detided:_FillValue = 1.e+37f ;
float vbar(ocean_time, eta_v, xi_v) ;
vbar:long_name = "time-averaged vertically integrated v-momentum component" ;
vbar:units = "meter second-1" ;
vbar:time = "ocean_time" ;
vbar:coordinates = "lon_v lat_v ocean_time" ;
vbar:field = "vbar-velocity, scalar, series" ;
vbar:_FillValue = 1.e+37f ;
float vbar_detided(ocean_time, eta_v, xi_v) ;
vbar_detided:long_name = "time-averaged detided 2D v-momentum" ;
vbar_detided:units = "meter second-1" ;
vbar_detided:time = "ocean_time" ;
vbar_detided:coordinates = "lon_v lat_v ocean_time" ;
vbar_detided:field = "vbar_detided, scalar, series" ;
vbar_detided:_FillValue = 1.e+37f ;
I am trying to use the AVERAGES_DETIDE function and it seems to be compiling okay but when the model has run y averages file only contains the following and is missing some variables i.e: hcount, cos_W and sin_W..I'm assuming I've just not switched something on? Help would be greatly appreciated, thank you
netcdf ocean_avg {
dimensions:
xi_rho = 325 ;
xi_u = 324 ;
xi_v = 325 ;
xi_psi = 324 ;
eta_rho = 472 ;
eta_u = 472 ;
eta_v = 471 ;
eta_psi = 471 ;
s_rho = 10 ;
s_w = 11 ;
tracer = 2 ;
boundary = 4 ;
ocean_time = UNLIMITED ; // (408 currently)
variables:
int ntimes ;
ntimes:long_name = "number of long time-steps" ;
int ndtfast ;
ndtfast:long_name = "number of short time-steps" ;
double dt ;
dt:long_name = "size of long time-steps" ;
dt:units = "second" ;
double dtfast ;
dtfast:long_name = "size of short time-steps" ;
dtfast:units = "second" ;
double dstart ;
dstart:long_name = "time stamp assigned to model initilization" ;
dstart:units = "days since 2000-01-01 00:00:00" ;
int nHIS ;
nHIS:long_name = "number of time-steps between history records" ;
int ndefHIS ;
ndefHIS:long_name = "number of time-steps between the creation of history files" ;
int nRST ;
nRST:long_name = "number of time-steps between restart records" ;
nRST:cycle = "only latest two records are maintained" ;
int ntsAVG ;
ntsAVG:long_name = "starting time-step for accumulation of time-averaged fields" ;
int nAVG ;
nAVG:long_name = "number of time-steps between time-averaged records" ;
int ndefAVG ;
ndefAVG:long_name = "number of time-steps between the creation of average files" ;
int nSTA ;
nSTA:long_name = "number of time-steps between stations records" ;
double Falpha ;
Falpha:long_name = "Power-law shape barotropic filter parameter" ;
double Fbeta ;
Fbeta:long_name = "Power-law shape barotropic filter parameter" ;
double Fgamma ;
Fgamma:long_name = "Power-law shape barotropic filter parameter" ;
double nl_tnu2(tracer) ;
nl_tnu2:long_name = "nonlinear model Laplacian mixing coefficient for tracers" ;
nl_tnu2:units = "meter2 second-1" ;
double nl_visc2 ;
nl_visc2:long_name = "nonlinear model Laplacian mixing coefficient for momentum" ;
nl_visc2:units = "meter2 second-1" ;
double Akt_bak(tracer) ;
Akt_bak:long_name = "background vertical mixing coefficient for tracers" ;
Akt_bak:units = "meter2 second-1" ;
double Akv_bak ;
Akv_bak:long_name = "background vertical mixing coefficient for momentum" ;
Akv_bak:units = "meter2 second-1" ;
double Akk_bak ;
Akk_bak:long_name = "background vertical mixing coefficient for turbulent energy" ;
Akk_bak:units = "meter2 second-1" ;
double Akp_bak ;
Akp_bak:long_name = "background vertical mixing coefficient for length scale" ;
Akp_bak:units = "meter2 second-1" ;
double rdrg ;
rdrg:long_name = "linear drag coefficient" ;
rdrg:units = "meter second-1" ;
double rdrg2 ;
rdrg2:long_name = "quadratic drag coefficient" ;
double Zob ;
Zob:long_name = "bottom roughness" ;
Zob:units = "meter" ;
double Zos ;
Zos:long_name = "surface roughness" ;
Zos:units = "meter" ;
double gls_p ;
gls_p:long_name = "stability exponent" ;
double gls_m ;
gls_m:long_name = "turbulent kinetic energy exponent" ;
double gls_n ;
gls_n:long_name = "turbulent length scale exponent" ;
double gls_cmu0 ;
gls_cmu0:long_name = "stability coefficient" ;
double gls_c1 ;
gls_c1:long_name = "shear production coefficient" ;
double gls_c2 ;
gls_c2:long_name = "dissipation coefficient" ;
double gls_c3m ;
gls_c3m:long_name = "buoyancy production coefficient (minus)" ;
double gls_c3p ;
gls_c3p:long_name = "buoyancy production coefficient (plus)" ;
double gls_sigk ;
gls_sigk:long_name = "constant Schmidt number for TKE" ;
double gls_sigp ;
gls_sigp:long_name = "constant Schmidt number for PSI" ;
double gls_Kmin ;
gls_Kmin:long_name = "minimum value of specific turbulent kinetic energy" ;
double gls_Pmin ;
gls_Pmin:long_name = "minimum Value of dissipation" ;
double Charnok_alpha ;
Charnok_alpha:long_name = "Charnok factor for surface roughness" ;
double Zos_hsig_alpha ;
Zos_hsig_alpha:long_name = "wave amplitude factor for surface roughness" ;
double sz_alpha ;
sz_alpha:long_name = "surface flux from wave dissipation" ;
double CrgBan_cw ;
CrgBan_cw:long_name = "surface flux due to Craig and Banner wave breaking" ;
double Znudg ;
Znudg:long_name = "free-surface nudging/relaxation inverse time scale" ;
Znudg:units = "day-1" ;
double M2nudg ;
M2nudg:long_name = "2D momentum nudging/relaxation inverse time scale" ;
M2nudg:units = "day-1" ;
double M3nudg ;
M3nudg:long_name = "3D momentum nudging/relaxation inverse time scale" ;
M3nudg:units = "day-1" ;
double Tnudg(tracer) ;
Tnudg:long_name = "Tracers nudging/relaxation inverse time scale" ;
Tnudg:units = "day-1" ;
double rho0 ;
rho0:long_name = "mean density used in Boussinesq approximation" ;
rho0:units = "kilogram meter-3" ;
double R0 ;
R0:long_name = "background density used in linear equation of state" ;
R0:units = "kilogram meter-3" ;
double Tcoef ;
Tcoef:long_name = "thermal expansion coefficient" ;
Tcoef:units = "Celsius-1" ;
double Scoef ;
Scoef:long_name = "Saline contraction coefficient" ;
double gamma2 ;
gamma2:long_name = "slipperiness parameter" ;
int spherical ;
spherical:long_name = "grid type logical switch" ;
spherical:flag_values = 0, 1 ;
spherical:flag_meanings = "Cartesian spherical" ;
double xl ;
xl:long_name = "domain length in the XI-direction" ;
xl:units = "meter" ;
double el ;
el:long_name = "domain length in the ETA-direction" ;
el:units = "meter" ;
int Vtransform ;
Vtransform:long_name = "vertical terrain-following transformation equation" ;
int Vstretching ;
Vstretching:long_name = "vertical terrain-following stretching function" ;
double theta_s ;
theta_s:long_name = "S-coordinate surface control parameter" ;
double theta_b ;
theta_b:long_name = "S-coordinate bottom control parameter" ;
double Tcline ;
Tcline:long_name = "S-coordinate surface/bottom layer width" ;
Tcline:units = "meter" ;
double hc ;
hc:long_name = "S-coordinate parameter, critical depth" ;
hc:units = "meter" ;
double s_rho(s_rho) ;
s_rho:long_name = "S-coordinate at RHO-points" ;
s_rho:valid_min = -1. ;
s_rho:valid_max = 0. ;
s_rho:positive = "up" ;
s_rho:standard_name = "ocean_s_coordinate_g1" ;
s_rho:formula_terms = "s: s_rho C: Cs_r eta: zeta depth: h depth_c: hc" ;
s_rho:field = "s_rho, scalar" ;
double s_w(s_w) ;
s_w:long_name = "S-coordinate at W-points" ;
s_w:valid_min = -1. ;
s_w:valid_max = 0. ;
s_w:positive = "up" ;
s_w:standard_name = "ocean_s_coordinate_g1" ;
s_w:formula_terms = "s: s_w C: Cs_w eta: zeta depth: h depth_c: hc" ;
s_w:field = "s_w, scalar" ;
double Cs_r(s_rho) ;
Cs_r:long_name = "S-coordinate stretching curves at RHO-points" ;
Cs_r:valid_min = -1. ;
Cs_r:valid_max = 0. ;
Cs_r:field = "Cs_r, scalar" ;
double Cs_w(s_w) ;
Cs_w:long_name = "S-coordinate stretching curves at W-points" ;
Cs_w:valid_min = -1. ;
Cs_w:valid_max = 0. ;
Cs_w:field = "Cs_w, scalar" ;
double h(eta_rho, xi_rho) ;
h:long_name = "bathymetry at RHO-points" ;
h:units = "meter" ;
h:coordinates = "lon_rho lat_rho" ;
h:field = "bath, scalar" ;
double f(eta_rho, xi_rho) ;
f:long_name = "Coriolis parameter at RHO-points" ;
f:units = "second-1" ;
f:coordinates = "lon_rho lat_rho" ;
f:field = "coriolis, scalar" ;
double pm(eta_rho, xi_rho) ;
pm:long_name = "curvilinear coordinate metric in XI" ;
pm:units = "meter-1" ;
pm:coordinates = "lon_rho lat_rho" ;
pm:field = "pm, scalar" ;
double pn(eta_rho, xi_rho) ;
pn:long_name = "curvilinear coordinate metric in ETA" ;
pn:units = "meter-1" ;
pn:coordinates = "lon_rho lat_rho" ;
pn:field = "pn, scalar" ;
double lon_rho(eta_rho, xi_rho) ;
lon_rho:long_name = "longitude of RHO-points" ;
lon_rho:units = "degree_east" ;
lon_rho:standard_name = "longitude" ;
lon_rho:field = "lon_rho, scalar" ;
double lat_rho(eta_rho, xi_rho) ;
lat_rho:long_name = "latitude of RHO-points" ;
lat_rho:units = "degree_north" ;
lat_rho:standard_name = "latitude" ;
lat_rho:field = "lat_rho, scalar" ;
double lon_u(eta_u, xi_u) ;
lon_u:long_name = "longitude of U-points" ;
lon_u:units = "degree_east" ;
lon_u:standard_name = "longitude" ;
lon_u:field = "lon_u, scalar" ;
double lat_u(eta_u, xi_u) ;
lat_u:long_name = "latitude of U-points" ;
lat_u:units = "degree_north" ;
lat_u:standard_name = "latitude" ;
lat_u:field = "lat_u, scalar" ;
double lon_v(eta_v, xi_v) ;
lon_v:long_name = "longitude of V-points" ;
lon_v:units = "degree_east" ;
lon_v:standard_name = "longitude" ;
lon_v:field = "lon_v, scalar" ;
double lat_v(eta_v, xi_v) ;
lat_v:long_name = "latitude of V-points" ;
lat_v:units = "degree_north" ;
lat_v:standard_name = "latitude" ;
lat_v:field = "lat_v, scalar" ;
double lon_psi(eta_psi, xi_psi) ;
lon_psi:long_name = "longitude of PSI-points" ;
lon_psi:units = "degree_east" ;
lon_psi:standard_name = "longitude" ;
lon_psi:field = "lon_psi, scalar" ;
double lat_psi(eta_psi, xi_psi) ;
lat_psi:long_name = "latitude of PSI-points" ;
lat_psi:units = "degree_north" ;
lat_psi:standard_name = "latitude" ;
lat_psi:field = "lat_psi, scalar" ;
double mask_rho(eta_rho, xi_rho) ;
mask_rho:long_name = "mask on RHO-points" ;
mask_rho:flag_values = 0., 1. ;
mask_rho:flag_meanings = "land water" ;
mask_rho:coordinates = "lon_rho lat_rho" ;
double mask_u(eta_u, xi_u) ;
mask_u:long_name = "mask on U-points" ;
mask_u:flag_values = 0., 1. ;
mask_u:flag_meanings = "land water" ;
mask_u:coordinates = "lon_u lat_u" ;
double mask_v(eta_v, xi_v) ;
mask_v:long_name = "mask on V-points" ;
mask_v:flag_values = 0., 1. ;
mask_v:flag_meanings = "land water" ;
mask_v:coordinates = "lon_v lat_v" ;
double mask_psi(eta_psi, xi_psi) ;
mask_psi:long_name = "mask on psi-points" ;
mask_psi:flag_values = 0., 1. ;
mask_psi:flag_meanings = "land water" ;
mask_psi:coordinates = "lon_psi lat_psi" ;
double ocean_time(ocean_time) ;
ocean_time:long_name = "averaged time since initialization" ;
ocean_time:units = "seconds since 2000-01-01 00:00:00" ;
ocean_time:calendar = "gregorian" ;
ocean_time:field = "time, scalar, series" ;
float zeta(ocean_time, eta_rho, xi_rho) ;
zeta:long_name = "time-averaged free-surface" ;
zeta:units = "meter" ;
zeta:time = "ocean_time" ;
zeta:coordinates = "lon_rho lat_rho ocean_time" ;
zeta:field = "free-surface, scalar, series" ;
zeta:_FillValue = 1.e+37f ;
float zeta_detided(ocean_time, eta_rho, xi_rho) ;
zeta_detided:long_name = "time-averaged detided free-surface" ;
zeta_detided:units = "meter" ;
zeta_detided:time = "ocean_time" ;
zeta_detided:coordinates = "lon_rho lat_rho ocean_time" ;
zeta_detided:field = "zeta_detided, scalar, series" ;
zeta_detided:_FillValue = 1.e+37f ;
float ubar(ocean_time, eta_u, xi_u) ;
ubar:long_name = "time-averaged vertically integrated u-momentum component" ;
ubar:units = "meter second-1" ;
ubar:time = "ocean_time" ;
ubar:coordinates = "lon_u lat_u ocean_time" ;
ubar:field = "ubar-velocity, scalar, series" ;
ubar:_FillValue = 1.e+37f ;
float ubar_detided(ocean_time, eta_u, xi_u) ;
ubar_detided:long_name = "time-averaged detided 2D u-momentum" ;
ubar_detided:units = "meter second-1" ;
ubar_detided:time = "ocean_time" ;
ubar_detided:coordinates = "lon_u lat_u ocean_time" ;
ubar_detided:field = "ubar_detided, scalar, series" ;
ubar_detided:_FillValue = 1.e+37f ;
float vbar(ocean_time, eta_v, xi_v) ;
vbar:long_name = "time-averaged vertically integrated v-momentum component" ;
vbar:units = "meter second-1" ;
vbar:time = "ocean_time" ;
vbar:coordinates = "lon_v lat_v ocean_time" ;
vbar:field = "vbar-velocity, scalar, series" ;
vbar:_FillValue = 1.e+37f ;
float vbar_detided(ocean_time, eta_v, xi_v) ;
vbar_detided:long_name = "time-averaged detided 2D v-momentum" ;
vbar_detided:units = "meter second-1" ;
vbar_detided:time = "ocean_time" ;
vbar_detided:coordinates = "lon_v lat_v ocean_time" ;
vbar_detided:field = "vbar_detided, scalar, series" ;
vbar_detided:_FillValue = 1.e+37f ;
Re: Compiling 'AVERAGES_TIDE'
There is a separate tides output file containing the tides used in detiding.
Re: Compiling 'AVERAGES_TIDE'
Thanks for your response Kate, I've found the variables now!
Re: Compiling 'AVERAGES_TIDE'
osua72,
(1) Where do you define the variable 'Hcount'? In the main input file?
(2) When you compiled, did you turn the 'wet_dry' on?
Thanks!
(1) Where do you define the variable 'Hcount'? In the main input file?
(2) When you compiled, did you turn the 'wet_dry' on?
Thanks!
Re: Compiling 'AVERAGES_TIDE'
Hi Stvyng,
1. I didn't have to define Hcount anywhere, you only need to define the U,V, elevation, temperature and salinity variables in your ocean.in file. Hcount is found after the model has run in your frc.nc file.
2. No I didn't
1. I didn't have to define Hcount anywhere, you only need to define the U,V, elevation, temperature and salinity variables in your ocean.in file. Hcount is found after the model has run in your frc.nc file.
2. No I didn't
Re: Compiling 'AVERAGES_TIDE'
Thanks, osua72!
- arango
- Site Admin
- Posts: 1361
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: Compiling 'AVERAGES_TIDE'
Come on people... With a little of curiosity and using "grep -r Hcount * | grep -v .svn" in the top of the ROMS tree directory you will find where Hcount is used. You will noticed that it is defined in def_tides.F and written in wrt_tides.F. If you do another search for def_tides you will find that it is call from get_idata.F:
Then, if you care and spend some time reading you will find out that all the appropriate variables for AVERAGES_DETIDE will be appended and written to input tide forcing NetCDF file and not to a new NetCDF file. I think that pretty much have the information that you seek. The compiling errors when using WET_DRY are easy to fix. Anyway, this was already corrected.
Ocean modelers need to be curious and need to learn how to solve problems and search for answers. There is no room for languidness in this field. Otherwise, we are in the wrong profession.
Code: Select all
#if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
!
!-----------------------------------------------------------------------
! If detiding and applicable, define additional variables to store
! time-accumulated tide harmonics variables. These variables are
! defined and written into input tide forcing NetCDF file.
!-----------------------------------------------------------------------
!
CALL def_tides (ng, LdefTIDE(ng))
IF (exit_flag.ne.NoError) RETURN
...
#endif
Ocean modelers need to be curious and need to learn how to solve problems and search for answers. There is no room for languidness in this field. Otherwise, we are in the wrong profession.