[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