In checkadj.F, I found that all of the options for vertical mixing (BVF, GLS, MY25 and LMD) were unsupported in adjoint model. Since I want to study tide and tide induced mxing using ROMS(with data assimilation), what kind of method can I use for vertical mixing scheme?
thanks a lot.
which option can I use for vertical mixing in adjoint model?
Re: which option can I use for vertical mixing in adjoint model?
One possibility that you have is to select the option ANA_VMIX. You then have to edit ana_vmix.h to put the values of Akt, Akv that you want to use.
- arango
- Site Admin
- Posts: 1367
- Joined: Wed Feb 26, 2003 4:41 pm
- Location: DMCS, Rutgers University
- Contact:
Re: which option can I use for vertical mixing in adjoint model?
You can use any of the available vertical mixing parameterizations in ROMS. These mixing parameterization are not differentiable (in the variational sense) and highly nonlinear. Therefore, no attempt was made to have the tangent linear and adjoint versions of these algorithms because they maybe unstable after the linearization. The strategy is to add the vertical mixing in nonlinear basic state (background trajectory) upon which the tangent liner and adjoint model trajectories are linearized. You need to activate FORWARD_MIXING and the appropriate nonlinear model flags for vertical mixing (LMD_MIXING, GLS_MIXING or MY25_MIXING). This works very well for us.
Re: which option can I use for vertical mixing in adjoint model?
I will try it.
thanks
thanks
Re: which option can I use for vertical mixing in adjoint model?
Would it be possible to have a similar option FORWARD_BULKFLUXES for the variables shflux, ssflux, sustr and svstr?
Re: which option can I use for vertical mixing in adjoint model?
In cppdefs.h, we can find FORWARD_MIXING,FORWARD_WRITE,FORWARD_READ and FORWARD_RHS.
Should all of these options be defined when we run 4dvar model?
Should all of these options be defined when we run 4dvar model?
Re: which option can I use for vertical mixing in adjoint model?
We don't need FORWARD_BULKFLUX. Yes, the linearization of bulk flux is problematic. The way to get around that is to save the surface tracer and momentum fluxes in the forward nonlinear simulation (remember to save the shortwaver radiation separately). The ROMS adjoint and tangent linear models will then read in these surface fluxes automatically, instead of linearing the bulk flux formula. The logic of this is similar to the FORWARD_MIXING.
If a forward nonlinear model is going to be used as the base state for tangent linear and adjoint models, FORWARD_WRITE should be turned on to write the 2D-3D coupling terms (DU_avg1, DU_avg2, DV_avg1, and DV_avg2) into the history or average files. And the FORWARD_READ should be turned on in the corresponding tangent linear and adjoint model to read in those coupling terms. In a 4dvar application, FORWARD_WRITE and FORWARD_READ should be on at the same time since the 4dvar system uses all nonlinear, tangent linear and adjoint component models.
I am not sure in what circumstances we need FORWARD_RHS.
If a forward nonlinear model is going to be used as the base state for tangent linear and adjoint models, FORWARD_WRITE should be turned on to write the 2D-3D coupling terms (DU_avg1, DU_avg2, DV_avg1, and DV_avg2) into the history or average files. And the FORWARD_READ should be turned on in the corresponding tangent linear and adjoint model to read in those coupling terms. In a 4dvar application, FORWARD_WRITE and FORWARD_READ should be on at the same time since the 4dvar system uses all nonlinear, tangent linear and adjoint component models.
I am not sure in what circumstances we need FORWARD_RHS.