[MITgcm-devel] Problem in some adjoint experiments after load_fields_driver.F changes

Jean-Michel Campin jmc at mit.edu
Mon Sep 11 13:50:17 EDT 2017


Hi Patrick,

With your changes, every tests came back to normal, and it's good.

I've just change it (again) since there is no need to do this
call for atmospheric set-up, and any conditional call fixes the TAF
issue we had.

Cheers,
Jean-Michel

On Sun, Sep 10, 2017 at 03:35:49PM +0000, Patrick Heimbach wrote:
> Yes, let's do that so test report starts producing passes again.
> Cheers
> p.
> 
> > On Sep 10, 2017, at 8:04 AM, Jean-Michel Campin <jmc at mit.edu> wrote:
> > 
> > Hi Patrick,
> > 
> > Thanks for looking at this. Very helpful.
> > I will check with Oliver tomorrow and with can decide what to do then. 
> > But if you prefer to have this fixed earlier, we could add 
> >  IF ( .NOT.useEXF ) THEN 
> > line within #ifdef ALLOW_AUTODIFF / #endif
> > (not pretty, but just as a temporary fix).
> > 
> > Cheers,
> > Jean-Michel
> > 
> > On Sun, Sep 10, 2017 at 06:04:54AM +0000, Patrick Heimbach wrote:
> >> Hi there,
> >> 
> >> up until Revision 1.12 there was the following line in load_fields_driver.F
> >>       IF ( .NOT.(useEXF.OR.useCheapAML) ) THEN
> >> ...
> >> 
> >> This was reduced in Revision 1.13 (for reasons that are not clear to me) to
> >>       IF ( .NOT.useCheapAML ) THEN
> >> ...
> >> 
> >> If, in the latest revision one puts back in
> >> (where there previously was the IF ( .NOT.useCheapAML ) - statement)
> >>       IF ( .NOT.useEXF ) THEN
> >> ...
> >> (i.e. preserve the conditional statement on useEXF)
> >> then that fixes the adjoint 
> >> (I won't check in this fix now since overnight reports are running).
> >> 
> >> The question remains, why the change in Revision 1.13
> >> 
> >> What happens without the .NOT.useEXF statement is that
> >> TAF thinks that all arrays of FFIELDS.h that have been assigned via EXF
> >> (earlier in S/R LOAD_FIELDS_DRIVER)
> >> are subsequently reassigned/overwritten via call to S/R EXTERNAL_FIELDS_LOAD
> >> (since now S/R EXTERNAL_FIELDS_LOAD is *always* called).
> >> Thus, all dependencies are killed, and there are no sensitivities
> >> to EXF fields (you'll see that TAF isn't producing any variables
> >> for aduwind, advwind, adatemp, ...)
> >> 
> >> p.
> >> 
> >>> On Sep 9, 2017, at 9:02 AM, Jean-Michel Campin <jmc at mit.edu> wrote:
> >>> 
> >>> Hi,
> >>> 
> >>> Not clear why, but after this (small) modification to load_fields_driver.F
> >>> several AD test are now failing.
> >>> There are also significant changes with tangent-linear test.
> >>> 
> >>> Here are the list of (adm) experiments that change:
> >>> After changes:
> >>> < Sat Sep 9 00:15:09 EDT 2017
> >>> < Y Y Y Y 16> 0<16 FAIL  1D_ocean_ice_column  (e=0, w=3)
> >>> < Y Y Y Y 16> 2<16 FAIL  global_ocean.cs32x15.seaice
> >>> < Y Y Y Y 16> 1<16 FAIL  global_ocean.cs32x15.seaice_dynmix
> >>> < Y Y Y Y 16> 1<10 FAIL  global_ocean.cs32x15.thsice
> >>> < Y Y Y Y 16> 0<16 FAIL  global_with_exf  (e=0, w=9)
> >>> < Y Y Y Y 16> 2<16 FAIL  lab_sea  (e=0, w=8)
> >>> < Y Y Y Y 13> 0< 6 FAIL  lab_sea.noseaice
> >>> < Y Y Y Y 16> 5<16 FAIL  lab_sea.noseaicedyn
> >>> < Y Y Y Y 16> 2<16 FAIL  offline_exf_seaice  (e=0, w=38)
> >>> < Y Y Y Y 16> 5<16 FAIL  offline_exf_seaice.thsice
> >>> 
> >>> Before:
> >>>> Fri Sep 8 00:15:10 EDT 2017
> >>>> Y Y Y Y 16>16<16 pass  1D_ocean_ice_column  (e=0, w=3)
> >>>> Y Y Y Y 16>16<16 pass  global_ocean.cs32x15.seaice
> >>>> Y Y Y Y 16>16<16 pass  global_ocean.cs32x15.seaice_dynmix
> >>>> Y Y Y Y 16>16<10 pass  global_ocean.cs32x15.thsice
> >>>> Y Y Y Y 16>16<16 pass  global_with_exf  (e=0, w=9)
> >>>> Y Y Y Y 16>16<16 pass  lab_sea  (e=0, w=8)
> >>>> Y Y Y Y 13>14< 6 pass  lab_sea.noseaice
> >>>> Y Y Y Y 16>16<16 pass  lab_sea.noseaicedyn
> >>>> Y Y Y Y 16>16<16 pass  offline_exf_seaice  (e=0, w=38)
> >>>> Y Y Y Y 16>16<16 pass  offline_exf_seaice.thsice
> >>> 
> >>> Cheers,
> >>> Jean-Michel
> >>> 
> >>> On Fri, Sep 08, 2017 at 10:42:28AM -0400, bderembl at forge.csail.mit.edu wrote:
> >>>> Update of /u/gcmpack/MITgcm/model/src
> >>>> In directory forge:/tmp/cvs-serv23380
> >>>> 
> >>>> Modified Files:
> >>>> 	load_fields_driver.F 
> >>>> Log Message:
> >>>> removed IF ( .NOT.useCheapAML )  before EXTERNAL_FIELDS_LOAD. in case you need both cheapaml and SST/SSS restoring
> >>>> 
> >>>> _______________________________________________
> >>>> MITgcm-cvs mailing list
> >>>> MITgcm-cvs at mitgcm.org
> >>>> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-cvs
> >>> _______________________________________________
> >>> MITgcm-devel mailing list
> >>> MITgcm-devel at mitgcm.org
> >>> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-devel
> >> 
> > 
> > 
> > 
> >> _______________________________________________
> >> MITgcm-devel mailing list
> >> MITgcm-devel at mitgcm.org
> >> http://mailman.mitgcm.org/mailman/listinfo/mitgcm-devel
> > 
> > _______________________________________________
> > MITgcm-devel mailing list
> > MITgcm-devel at mitgcm.org
> > http://mailman.mitgcm.org/mailman/listinfo/mitgcm-devel
> 



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



More information about the MITgcm-devel mailing list