How to use Climatology fields for nudging in sponge areas?

General scientific issues regarding ROMS

Moderators: arango, robertson

Post Reply
Message
Author
Hanq
Posts: 16
Joined: Wed Jul 30, 2014 11:04 pm
Location: Nanjing University of Sci&Tec

How to use Climatology fields for nudging in sponge areas?

#1 Unread post by Hanq »

Hi all,

I have some questions about open boundary conditions and climatology fields. Now, I have two cases.
The first one, I set the *.in file like this:
LBC(isFsur) == Cha Cha Cha Cha ! free-surface
LBC(isUbar) == Fla Fla Fla Fla ! 2D U-momentum
LBC(isVbar) == Fla Fla Fla Fla ! 2D V-momentum
LBC(isUvel) == RadNud RadNud RadNud RadNud ! 3D U-momentum
LBC(isVvel) == RadNud RadNud RadNud RadNud ! 3D V-momentum
LBC(isMtke) == Rad Rad Rad Rad ! mixing TKE

LBC(isTvar) == RadNud RadNud RadNud RadNud \ ! temperature
RadNud RadNud RadNud RadNud ! salinity

! Adjoint-based algorithms can have different lateral boundary
! conditions keywords.

ad_LBC(isFsur) == Per Clo Per Clo ! free-surface
ad_LBC(isUbar) == Per Clo Per Clo ! 2D U-momentum
ad_LBC(isVbar) == Per Clo Per Clo ! 2D U-momentum
ad_LBC(isUvel) == Per Clo Per Clo ! 3D U-momentum
ad_LBC(isVvel) == Per Clo Per Clo ! 3D V-momentum
ad_LBC(isMtke) == Per Clo Per Clo ! mixing TKE

ad_LBC(isTvar) == Per Clo Per Clo \ ! temperature
Per Clo Per Clo ! salinity

! Set lateral open boundary edge volume conservation switch for
! nonlinear model and adjoint-based algorithms. Usually activated
! with radiation boundary conditions to enforce global mass
! conservation, except if tidal forcing is enabled. [1:Ngrids].

VolCons(west) == F ! western boundary
VolCons(east) == F ! eastern boundary
VolCons(south) == F ! southern boundary
VolCons(north) == F ! northern boundary

ad_VolCons(west) == F ! western boundary
ad_VolCons(east) == F ! eastern boundary
ad_VolCons(south) == F ! southern boundary
ad_VolCons(north) == F ! northern boundary

...

! Nudging/relaxation time scales, inverse scales will be computed
! internally, [1:Ngrids].

TNUDG == 2*120.0d0 ! days
ZNUDG == 0.0d0 ! days
M2NUDG == 0.0d0 ! days
M3NUDG == 120.0d0 ! days

! Factor between passive (outflow) and active (inflow) open boundary
! conditions, [1:Ngrids]. If OBCFAC > 1, nudging on inflow is stronger
! than on outflow (recommended).

OBCFAC == 60.0d0 ! nondimensional

...
And the kinetic energy drifted.

In order to solve this problem, I active the climatology fields, the changes in the *.h cpp file and *.in file like this:
#define ANA_NUDGCOEF
! Logical switches (TRUE/FALSE) to read and process climatology fields.
! See glossary below for details.

LsshCLM == F ! sea-surface height
Lm2CLM == F ! 2D momentum
Lm3CLM == F ! 3D momentum

LtracerCLM == T T ! temperature, salinity, inert

! Logical switches (TRUE/FALSE) to nudge the desired climatology field(s).
! If not analytical climatology fields, users need to turn ON the logical
! switches above to process the fields from the climatology NetCDF file
! that are needed for nudging. See glossary below for details.

LnudgeM2CLM == F ! 2D momentum
LnudgeM3CLM == F ! 3D momentum

LnudgeTCLM == T T ! temperature, salinity, inert
Then the kinetic energy changed to be a little stable. Here I have a question: the tracers(T,S) were very similar to the climatology fields, so can I say this case is more affected by climatology data rather than the physical calculation of the ROMS itself?

So, how to solve the problem of kinetic energy drifted? Active sponge? Or set nudging layers? But how to do? I am not clear about the usage of climatology fields.
Please help me. I am looking forward to replying.

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: How to use Climatology fields for nudging in sponge area

#2 Unread post by kate »

Your description is thorough except in how you set your ana_nudgcoef. I have only used the climatology nudging around the edges, to keep the boundaries from getting too weird. If you are applying it everywhere with a short timescale then you are probably over-damping.

For a drift in kinetic energy, I would think of looking to the forcing fields first. What are you using there? Or what are the patterns of the kinetic energy - are they reasonable or just too strong at the boundaries? You need to look deeper.

Hanq
Posts: 16
Joined: Wed Jul 30, 2014 11:04 pm
Location: Nanjing University of Sci&Tec

Re: How to use Climatology fields for nudging in sponge area

#3 Unread post by Hanq »

Hi, Kate, thanks very much for your reply.
I did nothing in the ana_nudgcoef. I never change the codes anywhere. According to you, I should change somewhere in ana_nudgcoef.h or write a new NUDNAME netcdf file, right?By the way, can you tell me where I should change in ana_nudgcoef.h? And which variable is appropriate to be nudged, tracers only or tracers and momentum fields?

For the kinetic energy, I plotted the KINETIC_ENRG in *.log file.
STEP Day HH:MM:SS KINETIC_ENRG POTEN_ENRG TOTAL_ENRG NET_VOLUME
C => (i,j,k) Cu Cv Cw Max Speed

0 0 00:00:00 2.259474E-03 2.171866E+04 2.171867E+04 3.173579E+16
(219,049,26) 2.012377E-02 3.158206E-02 0.000000E+00 1.736464E+00
DEF_HIS - creating history file, Grid 01: ECS_his_0001.nc
WRT_HIS - wrote history fields (Index=1,1) into time record = 0000001
72 0 06:00:00 2.595093E-03 2.176518E+04 2.176519E+04 3.167405E+16
(177,267,08) 6.632844E-03 0.000000E+00 2.051647E+00 2.162249E+00
144 0 12:00:00 3.028662E-03 2.176142E+04 2.176142E+04 3.166808E+16
(177,267,08) 6.646135E-03 0.000000E+00 2.046034E+00 2.162249E+00
216 0 18:00:00 3.221001E-03 2.176556E+04 2.176556E+04 3.167315E+16
(177,267,08) 6.380263E-03 0.000000E+00 2.046209E+00 2.963430E+00
288 1 00:00:00 3.550095E-03 2.176142E+04 2.176142E+04 3.166728E+16
(177,267,08) 8.471156E-03 0.000000E+00 2.005940E+00 2.914242E+00
...
This is the evolutions of the kinetic energy for the two cases mentioned above:
Image
Image
I used monthly mean climatology data of COADS to force the model. The data are composed of the monthly mean wind stresses, net heat fluxes, net fresh water fluxes, surface solar shortwave radiation, sea surface temperature, sea surface salinity and dQdSST, which were made by Roms_Agrif. This is the surface kinetic energy in August, the fifth year for the first case:
Image
Could you give me any suggestion?
Thanks very much! Kate.
Attachments
QQ图片20160504101744.png
QQ图片20160504101744.png (31.35 KiB) Viewed 5383 times
hycom3.png
hycom3.png (10.89 KiB) Viewed 5383 times
hycom1-noclm.png
hycom1-noclm.png (10.13 KiB) Viewed 5383 times

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: How to use Climatology fields for nudging in sponge area

#4 Unread post by kate »

What is the purpose of this model run? Why monthly forcing? Why worry about gaining kinetic energy?

Hanq
Posts: 16
Joined: Wed Jul 30, 2014 11:04 pm
Location: Nanjing University of Sci&Tec

Re: How to use Climatology fields for nudging in sponge area

#5 Unread post by Hanq »

Hi Kate,

This is the climatological run to gain the stable 3D currents. And then we want to study the transport of other parameters(for example: carbon).
Also,we want to use the results to provide the initial condition for the realistic modeling.

User avatar
kate
Posts: 4091
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: How to use Climatology fields for nudging in sponge area

#6 Unread post by kate »

I don't see why any of these need you to suppress the natural eddy-induced variability. Especially for the carbon transport clamping to the climatology is going to give you the absolute minimum lateral mixing. Is that what you want?

As for ANA_XXX, I would always always see what I'm going to end up with in analytical.f90. Blindly taking defaults is a sure road to trouble - and won't even always compile. Those ana_xxx.h files are the one place Hernan expects you to get your hands dirty with code modifications - don't cheat yourself of the opportunity. :wink:

jzavala
Posts: 8
Joined: Sat Jan 28, 2006 1:58 am
Location: IMCS

Re: How to use Climatology fields for nudging in sponge area

#7 Unread post by jzavala »

Hanq,
As Kate mention you would need to tailor ana_nudgcoef.h for your specific needs.
However, if you are using a recent version of ROMS you can use a nudge coefficient
netcdf input file, which also allows you to define a depth dependence of the relaxation time.

The details are here:
https://www.myroms.org/projects/src/ticket/627

Javier

Post Reply