tide problem
-
- Posts: 4
- Joined: Thu Jun 05, 2014 5:03 pm
- Location: Florida Atlantic University
tide problem
Hi everyone,
I am trying to add tide into my model, but I just cannot get it to work reasonably. Maybe I didn’t do it right. Hopefully I can get some tips here.
The model domain covers the southern West Florida Shelf and the Florida Straits. The model runs from 2011-2012. The open boundary values are provided by Gulf of Mexico HYCOM. Surface forcing are from NARR. The open boundary conditions are as figure 1. tide start date are as figure 2. And the CPP keys are as following:
#define UV_ADV
#define UV_U3HADVECTION
#define UV_COR
#define UV_VIS2
#define UV_QDRAG
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#undef TS_MPDATA
#undef TS_A4HADVECTION
#undef TS_A4VADVECTION
#define TS_DIF2
#undef TS_DIF4
#define SALINITY
#define NONLIN_EOS
#define QCORRECTION
#undef SCORRECTION
#define SOLAR_SOURCE
#undef PJ_GRADPQ4
#define DJ_GRADPS
#define SOLVE3D
#define CURVGRID
#define MASKING
#undef BODYFORCE
#define AVERAGES
#undef DIAGNOSTICS_UV
#define SPLINES
#undef PERFECT_RESTART
#undef RADIATION_2D
#define ANA_BSFLUX
#define ANA_BTFLUX
#define MIX_GEO_UV
#define MIX_GEO_TS
#define MY25_MIXING
#ifdef MY25_MIXING
# define N2S2_HORAVG
# define KANTHA_CLAYSON
# define K_C4ADVECTION
#endif
#undef LMD_MIXING
#ifdef LMD_MIXING
# define LMD_RIMIX
# define LMD_CONVEC
# define LMD_SKPP
# define LMD_NONLOCAL
#endif
#undef GLS_MIXING
#define RI_HORAVG
#define RI_VERAVG
#define SSH_TIDES
#define UV_TIDES
#define RAMP_TIDES
Without tide, the model runs fine (figure 3 right panel). Then I used the TPXO2ROMS_v4pt0 package (developed by johnluick in this thread: viewtopic.php?f=23&t=2482) to generate tidal forcing file from TPXO8 for my model domain. The tide reference time is 01/01/2011. I have compared several tidal constituents’ Eamp, Ephase, tidal eclipses and tidal currents (generated from this package) with literatures, all seem ok. However, when I applied the tidal file to the model domain, the model runs but the Florida Current quickly (in about 3 weeks) broke into several big eddies in the Florida Straits, which is quite problematic (see the following figure left panel).
I have tried two other tidal packages (Rutgers otps2frc_v4 package with TPXO7.2 and ROMS Agrif package with TPXO7.0). The results are similar to those using TPXO2ROMS_v4pt0 package. I am not sure where have I done wrong. Can anybody help me out, please?
I am trying to add tide into my model, but I just cannot get it to work reasonably. Maybe I didn’t do it right. Hopefully I can get some tips here.
The model domain covers the southern West Florida Shelf and the Florida Straits. The model runs from 2011-2012. The open boundary values are provided by Gulf of Mexico HYCOM. Surface forcing are from NARR. The open boundary conditions are as figure 1. tide start date are as figure 2. And the CPP keys are as following:
#define UV_ADV
#define UV_U3HADVECTION
#define UV_COR
#define UV_VIS2
#define UV_QDRAG
#define TS_U3HADVECTION
#define TS_C4VADVECTION
#undef TS_MPDATA
#undef TS_A4HADVECTION
#undef TS_A4VADVECTION
#define TS_DIF2
#undef TS_DIF4
#define SALINITY
#define NONLIN_EOS
#define QCORRECTION
#undef SCORRECTION
#define SOLAR_SOURCE
#undef PJ_GRADPQ4
#define DJ_GRADPS
#define SOLVE3D
#define CURVGRID
#define MASKING
#undef BODYFORCE
#define AVERAGES
#undef DIAGNOSTICS_UV
#define SPLINES
#undef PERFECT_RESTART
#undef RADIATION_2D
#define ANA_BSFLUX
#define ANA_BTFLUX
#define MIX_GEO_UV
#define MIX_GEO_TS
#define MY25_MIXING
#ifdef MY25_MIXING
# define N2S2_HORAVG
# define KANTHA_CLAYSON
# define K_C4ADVECTION
#endif
#undef LMD_MIXING
#ifdef LMD_MIXING
# define LMD_RIMIX
# define LMD_CONVEC
# define LMD_SKPP
# define LMD_NONLOCAL
#endif
#undef GLS_MIXING
#define RI_HORAVG
#define RI_VERAVG
#define SSH_TIDES
#define UV_TIDES
#define RAMP_TIDES
Without tide, the model runs fine (figure 3 right panel). Then I used the TPXO2ROMS_v4pt0 package (developed by johnluick in this thread: viewtopic.php?f=23&t=2482) to generate tidal forcing file from TPXO8 for my model domain. The tide reference time is 01/01/2011. I have compared several tidal constituents’ Eamp, Ephase, tidal eclipses and tidal currents (generated from this package) with literatures, all seem ok. However, when I applied the tidal file to the model domain, the model runs but the Florida Current quickly (in about 3 weeks) broke into several big eddies in the Florida Straits, which is quite problematic (see the following figure left panel).
I have tried two other tidal packages (Rutgers otps2frc_v4 package with TPXO7.2 and ROMS Agrif package with TPXO7.0). The results are similar to those using TPXO2ROMS_v4pt0 package. I am not sure where have I done wrong. Can anybody help me out, please?
Re: tide problem
Try adding these options to your defs:
Check to be sure you are still reading in the ubar/vbar boundary conditions.
Code: Select all
# define ADD_FSOBC
# define ADD_M2OBC
Re: tide problem
Here are the cpp defs I use for tides ONLY runs. I think Kate adds tides differently to the way I do - I don't define ADD_FSOBC and ADD_M2OBC. Either approach works but probably it will fail if you try to use both together. Note - be sure to set N == 1 in your inputs file, (the line after where you set Lm and Mm).
/* Model grid */
#define CURVGRID /*Using curvilinear coordinates grid*/
#define MASKING /*Using land-sea masking*/
/* Model physics */
#define UV_ADV /*Include momentum advection terms*/
#define UV_COR /*Include coriolis term*/
#define UV_VIS2 /*Include harmonic horizontal mixing of momentum*/
#define UV_QDRAG /*Use quadratic bottom friction*/
#define TS_DIF2 /*Harmonic mixing of tracers*/
#define MIX_S_TS /*Mixing of tracers along geopotential (constant Z) surfaces*/
#define MY25_MIXING /*M-Y scheme for vertical mixing coefficients with...*/
#define KANTHA_CLAYSON /*...Kantha-Clayson stability function and...*/
#define N2S2_HORAVG /*...horizontal smoothing of buoyancy/shear*/
/* Tides and boundary conditions */
#define SSH_TIDES /*Provide tidal elevations*/
#define UV_TIDES /*Provide tidal currents*/
#define RAMP_TIDES /*Ramp tides*/
/* General instructionts to ROMS */
#define AVERAGES /*Compute averages file at prescribed intervals*/
#define STATIONS /*Write station time series at prescribed intevals*/
/* Analyticals */
#define ANA_BTFLUX /*Prescribe bottom temperature flux analytically*/
#define ANA_BSFLUX /*Prescribe bottom salinity flux analytically*/
#undef ANA_INITIAL
#define ANA_SMFLUX
#define ANA_SSFLUX
#define ANA_STFLUX
#define ANA_SRFLUX
#define ANA_FSOBC /*Analytical (or zero-added) BCs*/
#define ANA_M2OBC /*Analytical (or zero-added) BCs*/
Hope that helps. By the way, in that TPXO2ROMS matlab script, I suggest a certain choice of TIME_REF, DSTART, and TIDE_START. What you are doing with them may be fine, but if you still have problems, you might follow those suggestions.
/* Model grid */
#define CURVGRID /*Using curvilinear coordinates grid*/
#define MASKING /*Using land-sea masking*/
/* Model physics */
#define UV_ADV /*Include momentum advection terms*/
#define UV_COR /*Include coriolis term*/
#define UV_VIS2 /*Include harmonic horizontal mixing of momentum*/
#define UV_QDRAG /*Use quadratic bottom friction*/
#define TS_DIF2 /*Harmonic mixing of tracers*/
#define MIX_S_TS /*Mixing of tracers along geopotential (constant Z) surfaces*/
#define MY25_MIXING /*M-Y scheme for vertical mixing coefficients with...*/
#define KANTHA_CLAYSON /*...Kantha-Clayson stability function and...*/
#define N2S2_HORAVG /*...horizontal smoothing of buoyancy/shear*/
/* Tides and boundary conditions */
#define SSH_TIDES /*Provide tidal elevations*/
#define UV_TIDES /*Provide tidal currents*/
#define RAMP_TIDES /*Ramp tides*/
/* General instructionts to ROMS */
#define AVERAGES /*Compute averages file at prescribed intervals*/
#define STATIONS /*Write station time series at prescribed intevals*/
/* Analyticals */
#define ANA_BTFLUX /*Prescribe bottom temperature flux analytically*/
#define ANA_BSFLUX /*Prescribe bottom salinity flux analytically*/
#undef ANA_INITIAL
#define ANA_SMFLUX
#define ANA_SSFLUX
#define ANA_STFLUX
#define ANA_SRFLUX
#define ANA_FSOBC /*Analytical (or zero-added) BCs*/
#define ANA_M2OBC /*Analytical (or zero-added) BCs*/
Hope that helps. By the way, in that TPXO2ROMS matlab script, I suggest a certain choice of TIME_REF, DSTART, and TIDE_START. What you are doing with them may be fine, but if you still have problems, you might follow those suggestions.
Re: tide problem
In the FAQ https://www.myroms.org/wiki/Frequently_ ... ndaries.3F note point (3):
I notice you have clamped 3D velocity, which is somewhat contradictory with adding harmonic barotropic tidal velocity - because you are not also adding the 3-D harmonic tidal velocity.
You will probably find that a simple radiation (or even gradient) condition on 3-D velocity works better.
... if you #define ADD_FSOBC and #define ADD_M2OBC.You can specify other 2-d currents and surface elevation signals as coming in, plus have tides
I notice you have clamped 3D velocity, which is somewhat contradictory with adding harmonic barotropic tidal velocity - because you are not also adding the 3-D harmonic tidal velocity.
You will probably find that a simple radiation (or even gradient) condition on 3-D velocity works better.
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: tide problem
I should clarify - I thought Kate was suggesting that tides could be added using ADD_FSOBC and ADD_M2OBC as an alternative to using SSH_TIDES and UV_TIDES - in other words, by adding tidal time series to the subtidal 2D sea level and velocity time series at the boundary (outside of ROMS). My point was just a reminder to turn SSH_TIDES and UV_TIDES off if that were done.
Re: tide problem
If you are getting your tides from the XX_TIDES options, you leave that on when adding tides to the subtidal flows coming from your FSOBC and M2OBC. The only domain in which I don't have ADD_FSOBC, SSH_TIDES and so forth is when my boundary file temporally resolves the tides and brings the tides in directly.
Re: tide problem
Thank you for spelling that out Kate (and John W). I saw a comment once which made me think that your usual procedure was to have your boundary file temporally resolve the tides, so that is what I thought you meant by suggesting "ADD_XXOBC". But now I understand from your last comment that you would actually turn ADD_XXOBC off for that. Sorry if I have caused confusion.
-
- Posts: 4
- Joined: Thu Jun 05, 2014 5:03 pm
- Location: Florida Atlantic University
Re: tide problem
Thank you kate, johnluick and wilkin for the tips!
I have added ADD_FSOBC and ADD_M2OBC in the CPP keys, and the modeling is running great! The new cpp for tidal forcing is as the following figure.
By the way, johnluick, your TPXO8 tidal package is great! Very easy to use and everything works! Thank you very much!
I have added ADD_FSOBC and ADD_M2OBC in the CPP keys, and the modeling is running great! The new cpp for tidal forcing is as the following figure.
By the way, johnluick, your TPXO8 tidal package is great! Very easy to use and everything works! Thank you very much!
- Attachments
-
- New CPP for tide
- new_cpp.JPG (15.46 KiB) Viewed 6490 times
Re: tide problem
Hi Kate, does this mean that when you input tidal constituents (phase and amplitude) on your boundary, you turn onkate wrote:If you are getting your tides from the XX_TIDES options, you leave that on when adding tides to the subtidal flows coming from your FSOBC and M2OBC. The only domain in which I don't have ADD_FSOBC, SSH_TIDES and so forth is when my boundary file temporally resolves the tides and brings the tides in directly.
ADD_FSOBC and ADD_M2OBC together with XX_TIDES, ANA_FSOBC and ANA_M2OBC?
Re: tide problem
Yes, though I don't always have ANA_FSOBC and ANA_M2OBC if I'm getting boundary info from say SODA or HYCOM.