[MITgcm-devel] iMin, iMax, jMin, and jMax in EXTERNAL_FORCING_T

Jean-Michel Campin jmc at ocean.mit.edu
Sat Jan 30 10:51:36 EST 2010


Hi Dimitris,

On Fri, Jan 29, 2010 at 06:28:06PM -0800, Dimitris Menemenlis wrote:
> Jean-Michel, again thank you for very helpful answer.
> 
> I cannot identify horizontal difusion acting on gt.
> 
> The artifacts happen at tile edges.
> An example is the adjoint-model-based adjustment fields
> shown on slide 10 of Hong's ECCO2 meeting presentation:
> Progress towards a 16-month CS510 adjoint state estimate.

slide 10 & 11 are plots of atmos wind ; Do you see the same problem
in other fields (air temp ? air humidity ? ...) ?

Thanks,
Jean-Michel

> 
> I will try your suggestion of adding exchanges on gt, etc., as a check.
> 
> Thanks, Dimitris
> 
> On Jan 29, 2010, at 9:57 AM, Jean-Michel Campin wrote:
> 
> > Hi Dimitris,
> > 
> > On Fri, Jan 29, 2010 at 08:07:29AM -0800, Dimitris Menemenlis wrote:
> >> Jean-Michel thanks for getting back.
> >> 
> >> Can I rephrase my question a little differently then:
> >> What is the correct range for EXTERNAL_FORCING_T computations?
> >> 
> >> The i-j-Min-Max range going in EXTERNAL_FORCING_T is:
> >>          iMin = 1-OLx+2
> >>          iMax = sNx+OLx-1
> >>          jMin = 1-OLy+2
> >>          jMax = sNy+OLy-1
> >> 
> >> Yet most computations (except for OBCS_SPONGE_T) are carried out
> >> in a smaller domain:
> >>        iMin = 1
> >>        iMax = sNx
> >>        jMin = 1
> >>        jMax = sNy
> >> 
> > 
> > I think it's right to set the forcing (T & S) in the interior only,
> > and when it's needed in some part of the overlap (e.g.: fresh-water
> > flux when using real-fresh water form), there are exchanges.
> > For U & V forcing, this is different (see comment inside
> > external_forcing.F), but we know why.
> > 
> > So, the interesting comes later:
> >> As far as I can see there is no exchange on gT between
> >> EXTERNAL_FORCING_T and the application of diffusion terms that follow
> >> in THERMODYNAMICS.  Is this correct?
> > can you identify any horizontal diffusion acting on gt ?
> > There are some subtil stuff with implicit gravity waves, but I think
> > it's done carefully.
> > And when a scheme requires valid overlap, e.g. shapiro filter, 
> > the scheme take care of calling exchanges where needed.
> > 
> >> In adjoint cube-sphere computations, if I squint the right way, I can see
> >> lines at the tile edges.  I am wondering whether the above discrepancy
> >> in computation domain could be part of the cause?
> > 
> > All tile eges or only face eges ?
> > There are ways to check for "discrepancy in computation domain" 
> > and overlap update problem (e.g., #define DYNAMICS_GUGV_EXCH_CHECK
> > in dynamics.F, and some DEBUG_CS_CORNER_UV in gad_advection.F),
> > and you could check by adding an exchange on gT, it should not 
> > change the solution (with zero compiler optimisation).
> > The last time we turned-on DYNAMICS_GUGV_EXCH_CHECK was
> > because of piece of code that got removed under an
> > #ifndef ALLOW_AUTODIFF
> > 
> > Cheers,
> > Jean-Michel
> >> 
> >> Dimitris
> >> 
> >> On Jan 29, 2010, at 7:17 AM, Jean-Michel Campin wrote:
> >> 
> >>> Hi Dimitris,
> >>> 
> >>> Here is what I think (might not be completly true, but ...)
> >>> 1) Hard coded loop range can speed-up the compiler optimisation.
> >>> 2) removing those arguments from the EXTERNAL_FORCING_ S/R 
> >>> could embarasse people that have their own version of these S/R
> >>> and I think it's why Alistair was reluctant to change this.
> >>> 
> >>> Cheers,
> >>> Jean-Michel
> >>> 
> >>> On Thu, Jan 28, 2010 at 04:02:55PM -0800, Dimitris Menemenlis wrote:
> >>>> Jean-Michel or Martin, is there a reason why iMin, iMax, jMin, and jMax
> >>>> are passed to EXTERNAL_FORCING_T but then are ignored?
> >>>> 
> >>>> Most computations (with exception of OBCS_SPONGE_T) are carried out in a 1, sNx, 1, sNy domain.
> >>>> 
> >>>> In particular, SHELFICE_FORCING_T only applies forcing a 1, sNx, 1, sNy domain.
> >>>> 
> >>>> Is this the correct way to proceed?  Thanks, Dimitris
> >>>> 
> >>>> 
> >>>> _______________________________________________
> >>>> MITgcm-devel mailing list
> >>>> MITgcm-devel at mitgcm.org
> >>>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> >>> 
> >>> _______________________________________________
> >>> MITgcm-devel mailing list
> >>> MITgcm-devel at mitgcm.org
> >>> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> >> 
> >> 
> >> _______________________________________________
> >> MITgcm-devel mailing list
> >> MITgcm-devel at mitgcm.org
> >> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> > 
> > _______________________________________________
> > MITgcm-devel mailing list
> > MITgcm-devel at mitgcm.org
> > http://mitgcm.org/mailman/listinfo/mitgcm-devel
> 

> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list