[MITgcm-devel] ptracers

Patrick Heimbach heimbach at MIT.EDU
Fri Oct 24 00:01:45 EDT 2003


You pick your favorite flavour ;o)
-p.

Chris Hill wrote:
> Sure!! That's a lot less than Fast Opt rates...
> 
> 
>>-----Original Message-----
>>From: mitgcm-devel-bounces at mitgcm.org 
>>[mailto:mitgcm-devel-bounces at mitgcm.org] On Behalf Of Patrick Heimbach
>>Sent: Friday, October 24, 2003 2:02 AM
>>To: MITgcm-devel at mitgcm.org
>>Subject: Re: [MITgcm-devel] ptracers
>>
>>
>>Want to bet an ice cream that fixing 3 alone
>>doesn't do the trick?
>>-p.
>>
>>Chris Hill wrote:
>>
>>>You're right anything is possible! But I would try 3 first.
>>>
>>>
>>>
>>>>-----Original Message-----
>>>>From: mitgcm-devel-bounces at mitgcm.org
>>>>[mailto:mitgcm-devel-bounces at mitgcm.org] On Behalf Of 
>>>
>>Patrick Heimbach
>>
>>>>Sent: Thursday, October 23, 2003 11:27 PM
>>>>To: MITgcm-devel at mitgcm.org
>>>>Subject: Re: [MITgcm-devel] ptracers
>>>>
>>>>
>>>>1 and 2 may mess up the flow dependencies though,
>>>>depending on how TAF does them.
>>>>I'll try it incrementally.
>>>>-p.
>>>>
>>>>Chris Hill wrote:
>>>>
>>>>
>>>>>That's great. Lets hope that 3 fixes it.
>>>>>
>>>>>1 and 2 will be tidied up. Its very unlikely they could
>>>>
>>>>ever cause a
>>>>
>>>>
>>>>>problem as is because all references within the routines and lower
>>>>>down in the call trees are only to the dummy args and there are no 
>>>>>refs to the common members. However, it is messy and unecessary to 
>>>>>have the global refs visible so it should be cleaned up.
>>>>>
>>>>>Chris
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>-----Original Message-----
>>>>>>From: mitgcm-devel-bounces at mitgcm.org 
>>>>>>[mailto:mitgcm-devel-bounces at mitgcm.org] On Behalf Of
>>>>>
>>>>Patrick Heimbach
>>>>
>>>>
>>>>>>Sent: Thursday, October 23, 2003 10:51 PM
>>>>>>To: MITgcm-devel at mitgcm.org
>>>>>>Subject: [MITgcm-devel] ptracers
>>>>>>
>>>>>>
>>>>>>Hi there,
>>>>>>
>>>>>>I'm copying this message from Ralf.
>>>>>>He was looking into why the derivative code
>>>>>>of ptracers gave wrong gradient checks.
>>>>>>
>>>>>>I'll hopefully check in the modif's tomorrow
>>>>>>together with AD-related modif.s for genmake2.
>>>>>>
>>>>>>We need to discuss point 2.
>>>>>>
>>>>>>-Patrick
>>>>>>
>>>>>>--------------------------------------------------
>>>>>>
>>>>>>Hi,
>>>>>>
>>>>>>I have worked on the problem in the ptracer adjoint. 
>>>>>
>>Thereby I found 
>>
>>>>>>three problematic things in the code. The third one causes the 
>>>>>>adjoint to be wrong.
>>>>>>
>>>>>>Please find enclosed my changes to the code which fixes 1) and 3) 
>>>>>>but not 2).
>>>>>>
>>>>>>Ralf
>>>>>>
>>>>>>
>>>>>>1) Aliasing problem in ptracers_forcing.F
>>>>>>
>>>>>>C !INTERFACE: 
>>>>>>==========================================================
>>>>>>     SUBROUTINE PTRACERS_FORCING(
>>>>>>    I                            bi,bj,k,iTracer,
>>>>>>    U                            gPtracer,
>>>>>>    I                            myIter,myTime,myThid )
>>>>>>
>>>>>>C !DESCRIPTION:
>>>>>>C     Adds sources and sinks of passive tracers to the 
>>>>>
>>>>tendancy arrays
>>>>
>>>>
>>>>>>C !USES: 
>>>>>>===============================================================
>>>>>>     IMPLICIT NONE
>>>>>>#include "SIZE.h"
>>>>>>#include "EEPARAMS.h"
>>>>>>#include "PTRACERS.h"
>>>>>>#include "PARAMS.h"
>>>>>>#include "FFIELDS.h"
>>>>>>#include "GRID.h"
>>>>>>
>>>>>>It is not necessary to include PTRACERS.h and it even 
>>>>>
>>violates the 
>>
>>>>>>Fortran standard. Thats because the variable gPtr is passed as 
>>>>>>argument and becomes dummy argument gPtracer. Now there are local 
>>>>>>arrays gPtr and gPtracer being the same array! This 
>>>>>
>>aliasing is not 
>>
>>>>>>allowed if one of them is modified, which is the case here.
>>>>>>Fix: just remove #include PTRACERS.h  .
>>>>>>
>>>>>>
>>>>>>2) Similar in GAD_CALC_RHS, gTracer is dummy argument and 
>>>>>
>>is aliased 
>>
>>>>>>to gS by the call in calc_gs and aliased to gT by the call in 
>>>>>>calc_gt. But here
>>>>>> #include "DYNVARS.h"
>>>>>>cannot be removed since the arrays UVEL, VVEL, and WVEL 
>>>>>
>>are needed.
>>
>>>>>>Fix: not as simple, split DYNVARS.h, pass UVEL, VVEL, and
>>>>>>WVEL, or use tracerIdentity to identify which array is to be 
>>>>>>used instead of dummy argument ptracer.
>>>>>>
>>>>>>
>>>>>>3) In ptracers_integrate.F there is a local array rFlx 
>>>>>
>>which is only 
>>
>>>>>>initialized for k.EQ.Nr . My guess it that it is updated for all 
>>>>>>k.lt.Nr . But in this case it must either be saved or declared in 
>>>>>>thermodynamics and passed as argument to 
>>>>>
>>ptracers_integrate (similar 
>>
>>>>>>to fVerS in thermodynamics) otherwise its not initialised 
>>>>>
>>and used 
>>
>>>>>>if not k.EQ.Nr !
>>>>>>
>>>>>>C  rFlx			:: vertical flux
>>>>>>     INTEGER i,j,iTracer
>>>>>>     INTEGER iMin,iMax,jMin,jMax
>>>>>>     INTEGER kUp,kDown,km1
>>>>>>     _RL rFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2,PTRACERS_num)
>>>>>>     LOGICAL calcAdvection
>>>>>>CEOP
>>>>>>
>>>>>>C Loop over tracers
>>>>>>     DO iTracer=1,PTRACERS_numInUse
>>>>>>
>>>>>>C Initialize vertical flux to zero and set no-flux across k=Nr+1
>>>>>>      IF (k.EQ.Nr) THEN
>>>>>>       DO j=1-Oly,sNy+Oly
>>>>>>        DO i=1-Olx,sNx+Olx
>>>>>>         rFlx(i,j,1,iTracer)=0.
>>>>>>         rFlx(i,j,2,iTracer)=0.
>>>>>>        ENDDO
>>>>>>       ENDDO
>>>>>>      ENDIF
>>>>>>
>>>>>>
>>>>>>--
>>>>>>###################################################
>>>>>>Dr. Ralf Giering
>>>>>>NEW ADDRESS:
>>>>>>FastOpt, Schanzenstr. 36, 20357 Hamburg, Germany
>>>>>>Tel.: +49 40 48096347
>>>>>>Fax : +49 40 48096357
>>>>>>Email: Ralf.Giering at FastOpt.de
>>>>>>URL : http://www.FastOpt.de
>>>>>>###################################################
>>>>>>
>>>>>>_______________________________________________
>>>>>>MITgcm-devel mailing list
>>>>>>MITgcm-devel at mitgcm.org 
>>>>>>http://dev.mitgcm.org/mailman/listinfo/mitgcm-> devel
>>>>>>
>>>>>
>>>>>
>>>>>_______________________________________________
>>>>>MITgcm-devel mailing list
>>>>>MITgcm-devel at mitgcm.org
>>>>>http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel
>>>>
>>>>
>>>>--
>>>>Patrick Heimbach ........................... M.I.T
>>>>FON: +1/617/253-5259 .......... EAPS, Room 54-1518
>>>>FAX: +1/617/253-4464 ..... 77 Massachusetts Avenue 
>>>
>>>mailto:heimbach at mit.edu ....... Cambridge MA 02139 
>>>http://www.mit.edu/~heimbach/ .............. U.S.A
>>>
>>>_______________________________________________
>>>MITgcm-devel mailing list
>>>MITgcm-devel at mitgcm.org 
>>>http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel
>>>
>>>_______________________________________________
>>>MITgcm-devel mailing list
>>>MITgcm-devel at mitgcm.org 
>>>http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel
>>
>>
>>-- 
>>Patrick Heimbach ........................... M.I.T
>>FON: +1/617/253-5259 .......... EAPS, Room 54-1518
>>FAX: +1/617/253-4464 ..... 77 Massachusetts Avenue 
> 
> mailto:heimbach at mit.edu ....... Cambridge MA 02139
> http://www.mit.edu/~heimbach/ .............. U.S.A
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://dev.mitgcm.org/mailman/listinfo/mitgcm-devel


-- 
Patrick Heimbach ........................... M.I.T
FON: +1/617/253-5259 .......... EAPS, Room 54-1518
FAX: +1/617/253-4464 ..... 77 Massachusetts Avenue
mailto:heimbach at mit.edu ....... Cambridge MA 02139
http://www.mit.edu/~heimbach/ .............. U.S.A




More information about the MITgcm-devel mailing list