a question about NUDGING_SST || defined NUDGING_T

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
zhaoqian
Posts: 45
Joined: Tue Nov 11, 2008 5:45 pm
Location: National Marine Environmental Mornitoring Center

a question about NUDGING_SST || defined NUDGING_T

#1 Unread post by zhaoqian »

Hi all:
In trunk/ROMS/Nonlinear,

Code: Select all

# if defined NUDGING_SST || defined NUDGING_T
!
!  Assimilate tracer observations via nudging.
!
        IF (update_T(itrc,ng)) THEN
          DO k=1,N(ng)
            DO j=JstrR,JendR
              DO i=IstrR,IendR
                cff=MIN(1.0_r8,MAX(0.0_r8,EobsT(i,j,k,itrc)))
                cff=dt(ng)*Tnudass(itrc,ng)*(1.0_r8-cff)
                t(i,j,k,nnew,itrc)=t(i,j,k,nnew,itrc)+                  &
     &                             cff*(Tobs(i,j,k,itrc)-               &
     &                                  t(i,j,k,nnew,itrc))t(i,j,k,nnew,itrc)=t(i,j,k,nnew,itrc)+                  &
     &                             cff*(Tobs(i,j,k,itrc)-               &
     &                                  t(i,j,k,nnew,itrc))
              END DO
            END DO
          END DO
        END IF
# endif
(1) What do EobsT and Tnudass mean and where are they defined?
(2) If only NUDGING_SST is defined, the Tobs will be zero below the surface layer,then the formula

Code: Select all

t(i,j,k,nnew,itrc)=t(i,j,k,nnew,itrc)+                  &
     &                             cff*(Tobs(i,j,k,itrc)-               &
     &                                  t(i,j,k,nnew,itrc))
will not be correct for the layer below surface because it becomes

Code: Select all

t(i,j,k,nnew,itrc)=t(i,j,k,nnew,itrc)+                  &
     &                             cff*(0 - t(i,j,k,nnew,itrc))
Can someone explain these for me? Thank you!

mathieu

Re: a question about NUDGING_SST || defined NUDGING_T

#2 Unread post by mathieu »

The basic idea of NUDGING_T is to use measurement of temperature and nudge the model towards those values. The problem is of course that temperature measurements are sparse: they are available typically at some point by CTD measurements or at the surface by satellite measurement. Thus enters the function NUDGING_SST that takes the temperature measurements at the surface and extend them towards the bottom.
For to know how the extension is done you have to look at the code. The function Nonlinear/set_data.F does this at lines 1121-1165 by using a polynomial extrapolation for the error and for the measurement.
You have to select the switch extend_SST == T and set up the polynomial coefficients in Pcoef_SST and Perr_SST.
If you find the polynomial method not great, then you can use NUDGING_T and do the extrapolation yourself off-line. If this is still not good, then you have to use 4Dvar but this is definitely a lot of work.

zhaoqian
Posts: 45
Joined: Tue Nov 11, 2008 5:45 pm
Location: National Marine Environmental Mornitoring Center

Re: a question about NUDGING_SST || defined NUDGING_T

#3 Unread post by zhaoqian »

First, Thanks mathieu a lot for your reply. I have read set_data.F and understood something.
According to your answer, when the NUDGING_SST and NUDGING_T flags are actived, we should set the assimilation.in file and include it when executing the program. Is that true?
If the sst and t(3D) used in nudging are the non-grided fields, should they be interpolated to the grided fields first?

mathieu

Re: a question about NUDGING_SST || defined NUDGING_T

#4 Unread post by mathieu »

The assimilation file has to be put in APARNAM if I am not mistaken.
Of course you have to interpolate fields to the grid of ROMS.

Post Reply