Potential tides & phase conventions

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Posts: 1
Joined: Mon Sep 10, 2012 8:10 pm
Location: Earth and Space Research

Potential tides & phase conventions

#1 Post by showard » Fri May 10, 2019 2:09 am


I am working with the ROMS3.7 version of ROMS with Potential Tides in it, and I am working on converting an old fortran program that creates the potential tide amp and phases into a matlab script. In doing so, I am trying to clean up some of the code in it. And I want to make sure I am treating the phases correctly. There are there some comments in the file that I am not quite certain about. And I am happy to share this code but need to be sure it is working properly first.

I am using a package that was passed to me by Kate Hedstrom (but who wasn't the initial author). And tracing the code back to it's source hasn't helped clear this completely up. It was written a while ago. I think Mike Foreman wrote part of this code.

The program is called tidpot_load.f and it grabs the Self Attraction and Loading (SAL) values from GOT 99.2 files and combines them with the equilibrium tide from love numbers.

! this program will calculate the combined equilibrium +
! load +self-attraction tide for inclusion into my revision of fundy5sp
! The load +self attraction tide is taken from Ray's solution
! while the equilibrium tide is calculated
! for specific constituents following the formulae
! given by Schwiderski (NWSC, 1978, pages 22 and 3),
! and cross-checked with Flather and Cartwright
! See also my 1993 JGR paper.

Does anyone have any experience with this program? or alternatively, another method of building these files?

Basically, Potential Tides that goes into the NETCDF forcing files is:
Pot tide = Equilibrium tide (generating potential and earth tides) + SAL (self attraction and Loading)

I think the code indicates that if your tidal argument uses exp(-i(omega*t+vo-g), Then the tides should be added as:

= (1.+xk(k)-xh(k))*amp(k)*cexp(-eye*ph(k)) + conj(Samp.*exp(-eye*squeeze(Sph)));

or, more simply

= (1.+xk(k)-xh(k))*amp(k)*cexp(-eye*ph(k)) + Samp.*exp(eye*squeeze(Sph));

If your tidal argument uses exp(i(omega*t+vo-g)), then

= (1.+xk(k)-xh(k))*amp(k)*cexp(eye*ph(k)) + Samp.*exp(-eye*squeeze(Sph));

where eye=complex(0.,1.)

The code for the equilibrium tide looks like this:

(note there are two cases described in it): one where they use a + phase and one where they use a -phase

! Roy's programs assume the tidal argument is
! exp(-i(omega*t+vo-g)) so we have make our
! phases negative for that program
! But fundy5 assumes exp(i(omega*t+vo-g))
if(k.le.4) then
! tide3d
! ph(k)=-(xlon(i)+v0(k))*fac
! fundy5
! tide3d
! ph(k)=-(2.*xlon(i)+v0(k))*fac
! fundy5
end if

! as we are calculating elevation-load-potential
! we simply add here
! see Ray (1998) equn 6
! fundy5
! tide3d: switch SAL phases to be consistent with tidpot
! atot(i,k)=aeq+conjg(aint)

Here the aint variable is the SAL in complex form : Samp.*exp(-eye*squeeze(Sph)))

From the Foreman et al, 2000 paper. It does state that they use exp(i(omega*t+vo-g))for fundy5: "A
harmonic e^i*omega*t dependency is assumed for the tidal constituent with frequency omega."

I am not sure where to look for this info in ROMS. Are they referring to the code in the model, or does it depend on the the way the tidal forcing files are put together ?

If anyone has experience with this, I would appreciate any advice you can give. I just want make sure that I am translating this code correctly and adding components together consistently.

We intend to update the SAL GOT99.2 files with a TPXO-Atlas-Based SAL as well, but wanted to start from the code we had.



Post Reply