Hi, everyone:
I'm using 4DVar in East China Sea. When I run the model without tidal forcing, the underestimated mixing on the continetal shelf causes bias of temperature. So I am trying to add tidal forcing when running 4DVar.
Dr. Powell and his team have successfully run 4DVar in Hawaii sea with tidal forcing, and results have been published in several papers (shown below). But the papers lack some technical details.
Here are my questions:
(1) How can we add tidal forcing in 4DVar? Should we use tidal forcing file, or provide the tidal signal in boundary condition file (hourly boundary condition that can explicitly resolve tide) ?
I found "SSH_TIDES_NOT_YET" and "UV_TIDES_NOT_YET" in some routinues of the tangent linear and adjoint model. Does this mean that the cpp options are not ready yet?
(2) As the tidal foricng cpp options are not ready, I think we should use boundary condition files that can explicitly resolve tide.
When adding tidal forcing in model simulation without data assimilation, we usually use Cha and Fla boundary condition for zeta, ubar and vbar, and RadNud boundary condition for 3D momentum and tracers. So we only provide tidal signals of zeta and 2d momentum.
However, in adjoint model, the radiation boundary condition is not supported. We can only use clamped boundary condition for 3D momentum, which means we have to provide 3D momentum tidal signals in the boundary condition files. As TPXO only has 2D momentum, how can we provide 3D momentum in the boundary condition? Can we simply add the 2D momentum to all levels of 3D momentum ? But this could overestimate velocities in the bottom layer.
Any suggestion is welcome, thanks in advance.
Zhiwei He
Reference:
Matthews, D., B. S. Powell, and I. Janekovic: "Analysis of Four-dimensional Variational State Estimation of the Hawaiian Waters", J. Geophys. Res., 117(C03013), 2012.
Partridge, D., Friedrich, T., Powell, B. S. (2019). Reanalysis of the PacIOOS Hawaiian Island Ocean Forecast System, an implementation of the Regional Ocean Modeling System v3.6. Geoscientific Model Development, 12(1), 195-213. doi: 10.5194/gmd-12-195-2019
Janeković, I., Powell, B. S., Matthews, D., McManus, M. A., Sevadjian, J. (2013). 4D-Var data assimilation in a nested, coastal ocean model: A Hawaiian case study. Journal of Geophysical Research: Oceans, 118(10), 5022-5035. doi: 10.1002/jgrc.20389
Problems about adding tidal forcing in 4DVar
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
Re: Problems about adding tidal forcing in 4DVar
There is no problem in using 4D-Var with tidal forcing, and all the info is in the papers. We are doing that quite often, where, for example, internal tides are important.
However, you have to be careful when you compute model error cov (!) not to allow for too much variability. We usually don't want to alter tidal boundary conditions (you can use different boundary update times), but you might if you wish to.
As Hernan pointed a long time ago, you can even run forward nonlinear model in a different setup than 4D-Var, or you can simply stick with clamped boundaries. Depending on how fancy/complex you want/need to go.
Cheers,
Ivica
However, you have to be careful when you compute model error cov (!) not to allow for too much variability. We usually don't want to alter tidal boundary conditions (you can use different boundary update times), but you might if you wish to.
As Hernan pointed a long time ago, you can even run forward nonlinear model in a different setup than 4D-Var, or you can simply stick with clamped boundaries. Depending on how fancy/complex you want/need to go.
Cheers,
Ivica
Re: Problems about adding tidal forcing in 4DVar
Dear Ivica:
Thank you for your kindly reply. It's really a surprise and encouraging to receive your reply , because I have read many of your papers regarding 4DVar and have been trying to follow your work. Right now I'm a phD candidate at Institute of Oceanology, Chinese Academy of Sciences.
I have successfully run 4DVar in the East China Sea without tidal forcing and submitted a manuscipt. But there are some problems when assimilating SST and CTD observation on the continental shelf of the East China Sea.
The first attached figure shows the SST RMSE for simulations with and without DA. I think the large positive bias of SST in summer might be associated with the underestimated mixing due to the absence of tidal forcing. The second figure shows the bias of model temperature compared with the CTD observations on the continental of East China Sea in summer. It is found that after adding tidal forcing, the positve bias in the free run (without DA) is reduced. After DA, the SST bias is corrected, but DA induces negative bias in the subsurface layer. Increasing the vertical decorrelation scale from 30m to 100m can reduce the negative bias a little, and the bias moves to deeper layer as a result. I think the lack of tidal mixing may be part of the reason. That's why I'm trying to add tidal forcing in 4DVar. Is there any problem in my hypothesis?
Unfortunately, when I try to add tidal forcing in 4DVar, the model always blow up.
At first, I put SSH_TIDES, UV_TIDES, ADD_M2OBC and ADD_FSOBC in the cpp options, the model blowed up when the adjoint model starts. The I searched the codes and found "SSH_TIDES_NOT_YET" and "UV_TIDES_NOT_YET" in the adjoint and tangent linear models. I realized the cpp option is not ready yet. So I have to put time series of tidal forcing in the BRYNAME file. Is that correct?
Another question is about the boundary condition when tidal forcing is added. Previously, I added tidal forcing using tidal forcing files with RadNud boundary condition for 3D variables, and the results show good agreement with observations. As RadNud boundary condition is not supported in the adjoint model, we have to use the clamed boudary condition for 3D current and tracers in 4DVar. But I have no idea how to configure tide with clamped boundary condition. Do we need to add tidal current to 3D current? Right now, I'm still struggling with adding tidal forcing.
Dear Ivica, I would really appreciate it if you could provide some suggestions regarding this problem. Thank you very much.
Any suggestion from any other one is welcome.
Zhiwei He
Thank you for your kindly reply. It's really a surprise and encouraging to receive your reply , because I have read many of your papers regarding 4DVar and have been trying to follow your work. Right now I'm a phD candidate at Institute of Oceanology, Chinese Academy of Sciences.
I have successfully run 4DVar in the East China Sea without tidal forcing and submitted a manuscipt. But there are some problems when assimilating SST and CTD observation on the continental shelf of the East China Sea.
The first attached figure shows the SST RMSE for simulations with and without DA. I think the large positive bias of SST in summer might be associated with the underestimated mixing due to the absence of tidal forcing. The second figure shows the bias of model temperature compared with the CTD observations on the continental of East China Sea in summer. It is found that after adding tidal forcing, the positve bias in the free run (without DA) is reduced. After DA, the SST bias is corrected, but DA induces negative bias in the subsurface layer. Increasing the vertical decorrelation scale from 30m to 100m can reduce the negative bias a little, and the bias moves to deeper layer as a result. I think the lack of tidal mixing may be part of the reason. That's why I'm trying to add tidal forcing in 4DVar. Is there any problem in my hypothesis?
Unfortunately, when I try to add tidal forcing in 4DVar, the model always blow up.
At first, I put SSH_TIDES, UV_TIDES, ADD_M2OBC and ADD_FSOBC in the cpp options, the model blowed up when the adjoint model starts. The I searched the codes and found "SSH_TIDES_NOT_YET" and "UV_TIDES_NOT_YET" in the adjoint and tangent linear models. I realized the cpp option is not ready yet. So I have to put time series of tidal forcing in the BRYNAME file. Is that correct?
Another question is about the boundary condition when tidal forcing is added. Previously, I added tidal forcing using tidal forcing files with RadNud boundary condition for 3D variables, and the results show good agreement with observations. As RadNud boundary condition is not supported in the adjoint model, we have to use the clamed boudary condition for 3D current and tracers in 4DVar. But I have no idea how to configure tide with clamped boundary condition. Do we need to add tidal current to 3D current? Right now, I'm still struggling with adding tidal forcing.
Dear Ivica, I would really appreciate it if you could provide some suggestions regarding this problem. Thank you very much.
Any suggestion from any other one is welcome.
Zhiwei He
- jivica
- Posts: 172
- Joined: Mon May 05, 2003 2:41 pm
- Location: The University of Western Australia, Perth, Australia
- Contact:
Re: Problems about adding tidal forcing in 4DVar
I think you can't escape from using tides in your domain, it is well known on internal tides/waves and I am not surprised with your NLM - baseline solution w/o tides, mixing and errors at the end.
Whenever I encounter errors in SST - model comparison larger than 2C then there is something wrong with the model setup. Saying that, or model is too simple, not including the physics or it is wrongly setup (wrong horizontal/vertical resolutions, boundaries, forcing etc etc).
In terms of simple 4D-Var experiment, I would start with tides and "normal" tidal forcing, and not using tides in the boundary file.
1) Spinup your NLM model, get some decent physical and stable history and initial state to start with (including tides) the 4D-Var.
2) Compute your standard deviations from NLM run by filtering tidal signal from variables that are influenced (usually 3D temp, zeta, 2/3D u/v) and used that for 4D-Var. Otherwise you'll have too loose STD.
3) Use standard tidal options in your .h file along with 4D-Var options;
#define RADIATION_2D
#define SSH_TIDES
#define UV_TIDES
#define ADD_FSOBC
#define ADD_M2OBC
and use clamped boundaries for 3D variables (Flather/Chapman type is OK for zeta and uvbar).
4) Why it is blowing up needs more investigation, for example MY25 is quite robust and stable, you can add more visc and diff to ADJ (in ocean.in), you can use sponge, are you having big free surface elevations in shallow region (change bathy), obs gridding in shallow and tidally driven flow can be challenge (obs out of grid in vertical), vertical de-correlation scales, etc etc.
Good luck!
Ivica
Whenever I encounter errors in SST - model comparison larger than 2C then there is something wrong with the model setup. Saying that, or model is too simple, not including the physics or it is wrongly setup (wrong horizontal/vertical resolutions, boundaries, forcing etc etc).
In terms of simple 4D-Var experiment, I would start with tides and "normal" tidal forcing, and not using tides in the boundary file.
1) Spinup your NLM model, get some decent physical and stable history and initial state to start with (including tides) the 4D-Var.
2) Compute your standard deviations from NLM run by filtering tidal signal from variables that are influenced (usually 3D temp, zeta, 2/3D u/v) and used that for 4D-Var. Otherwise you'll have too loose STD.
3) Use standard tidal options in your .h file along with 4D-Var options;
#define RADIATION_2D
#define SSH_TIDES
#define UV_TIDES
#define ADD_FSOBC
#define ADD_M2OBC
and use clamped boundaries for 3D variables (Flather/Chapman type is OK for zeta and uvbar).
4) Why it is blowing up needs more investigation, for example MY25 is quite robust and stable, you can add more visc and diff to ADJ (in ocean.in), you can use sponge, are you having big free surface elevations in shallow region (change bathy), obs gridding in shallow and tidally driven flow can be challenge (obs out of grid in vertical), vertical de-correlation scales, etc etc.
Good luck!
Ivica
Re: Problems about adding tidal forcing in 4DVar
Dear Ivica:
Thank you for your excellent guidance, I'll have a try.
I'll report back if I have any new result.
Zhiwei
Thank you for your excellent guidance, I'll have a try.
I'll report back if I have any new result.
Zhiwei