[MITgcm-support] Diagnostics & temperature transport equation

Martin Losch Martin.Losch at awi.de
Tue Jul 12 02:24:12 EDT 2011


Hi Krishnakumar,

computing the tracer balance is complicated. There are many things one can miss. In your case, the tutorial_global_oce_latlon has some form of convection turned on:
 ivdc_kappa=100.,
 implicitDiffusion=.TRUE.,
This gives rise to another term for "implicit diffusion" (diagnostics name is DFrI_TH) that is computed elsewhere (impldiff, called from thermodynamics). You need to take that term into account as well (in the same way as DFrE_TH). And I am sure that I am overlooking something else (o:

Good luck,
Martin


On Jul 11, 2011, at 11:53 PM, Krishnakumar Rajagopalan wrote:

> Hi All,
>  
> I am  (re)calculating theta in the temperature transport equation ( equation 2.166 of manual) implemented in  gad_calc_rhs.F using the diagnostics ( advective & diffusive fluxes of potential temperature and transports)  and i am ending up with a difference between the instantaneous theta calculated by the MITgcm solver and theta recalculated using the diagnostics.  I am unable to figure out the mistake I am making with the diagnostics. Any help is most welcome.
>  
> The tutorial is : tutorial_global_oce_latlon ( global ocean simulation at 4deg resolution with GMREDI scheme). I am focusing on the second layer. Thus there is no external forcing.
>  I am using this bit of fortran code from gad_calc_rhs.F as a guide to calculate gTracer :
> //////////////////////////////////////////////////////////////////////
>  gTracer(i,j,k,bi,bj)=gTracer(i,j,k,bi,bj)
>      &   -_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)
>      &   *recip_rA(i,j,bi,bj)*recip_deepFac2C(k)*recip_rhoFacC(k)
>      &   *( (fZon(i+1,j)-fZon(i,j))
>      &     +(fMer(i,j+1)-fMer(i,j))
>      &     +(fVerT(i,j,kDown)-fVerT(i,j,kUp))*rkSign
>      &     -localT(i,j)*( (uTrans(i+1,j)-uTrans(i,j))
>      &                   +(vTrans(i,j+1)-vTrans(i,j))
>      &                   +(rTransKp1(i,j)-rTrans(i,j))*rAdvFac
>      &                  )*advFac
>      &    )
> ///////////////////////////////////////////////////////////////
> fZon=ADVx_TH + DFxE_TH ; from 2nd layer 2
> fMer=ADVy_TH + DFyE_TH; from 2nd layer 2
> fVerT(i,j,kDown)=ADVr_TH+DFrE_TH from bottom of 2nd layer
> fVerT(i,j,kUp)     =ADVr_TH+DFrE_TH from top of 2nd layer
> For the transports, i multiply the velocity diagnostics with the respective area (The transport terms  play only a small role). All diagnostics are averaged montly. So the change in theta after 1month is gTracer*1month (in seconds)  with the gTracer calculated from averaged diagnostics. But this value (change in theta) is different when I calculate with instantaneous theta output by the solver.
>  
> My data.diagnostics file, say for, for ADVr_TH averaged for 1 month is here :
>  
>  &diagnostics_list
>   frequency(1) = 2592000,
>   fields(1,1)= 'ADVr_TH',
>    filename(1) = 'flux',
>  &
>  
> Thanks in advance
> Krishnakumar
>  
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list