[MITgcm-devel] problem with TAF tang-Lin exp. hs94.1x64x5
Martin Losch
Martin.Losch at awi.de
Fri Sep 22 03:56:53 EDT 2023
PS. I tried halpice_streamice with this ( "./testreport -oad -devel -t halfpipe_streamice”) and it worked, maybe Dan can quickly confirm.
Shall I submit a quick PR?
Martin
> On 22. Sep 2023, at 09:22, Martin Losch <Martin.Losch at awi.de> wrote:
>
> Hi Jean-Michel,
>
> that makes sense, I was just referring to just changing the two lines in question (which didn’t work), but reverting the entire routine works for me, too.
>
> Anyway, based on the current master, these changes work for me, but I don’t know if OpenAD is happy with that. Maybe Dan can quickly try:
>
> diff --git a/pkg/ctrl/ctrl_map_ini_gentim2d.F b/pkg/ctrl/ctrl_map_ini_gentim2d.F
> index 7459b7fda..98dc1f4c7 100644
> --- a/pkg/ctrl/ctrl_map_ini_gentim2d.F
> +++ b/pkg/ctrl/ctrl_map_ini_gentim2d.F
> @@ -57,7 +57,6 @@ C temporary values in the do loop during reverse pass.
> CHARACTER*(MAX_LEN_FNAM) fnamegenIn(1:maxCtrlTim2D)
> CHARACTER*(MAX_LEN_FNAM) fnamegenOut(1:maxCtrlTim2D)
> CHARACTER*(MAX_LEN_FNAM) fnamegenTmp(1:maxCtrlTim2D)
> - CHARACTER*(MAX_LEN_FNAM) fnamebase(1:maxCtrlTim2D)
> CHARACTER*(MAX_LEN_FNAM) temp_genarr_fnamA
> CHARACTER*(MAX_LEN_FNAM) temp_genarr_fnamB
> integer startrec
> @@ -121,9 +120,8 @@ C-- generic 2D control variables
>
> ilgen=ilnblnk( xx_gentim2d_file(iarr) )
> temp_genarr_fnamA = xx_gentim2d_file(iarr)
> - fnamebase(iarr) = temp_genarr_fnamA(1:ilgen)
>
> - call ctrl_init_rec ( fnamebase(iarr),
> + call ctrl_init_rec ( temp_genarr_fnamA(1:ilgen),
> I xx_gentim2d_startdate1(iarr),
> I xx_gentim2d_startdate2(iarr),
> I xx_gentim2d_period(iarr),
> @@ -165,9 +163,8 @@ C print statements are removed. See "Automatic Differentiation" chap. in the doc
> endif
> enddo
>
> - ilgen=ilnblnk( xx_gentim2d_file(iarr) )
> - temp_genarr_fnamA = xx_gentim2d_file(iarr)
> - fnamebase(iarr) = temp_genarr_fnamA(1:ilgen)
> +CML ilgen=ilnblnk( xx_gentim2d_file(iarr) )
> +CML temp_genarr_fnamA = xx_gentim2d_file(iarr)
> write(temp_genarr_fnamB,'(2a,i10.10)')
> & ctrlDir(1:ilDir)//temp_genarr_fnamA(1:ilgen),'.',optimcycle
> fnamegenIn(iarr) = temp_genarr_fnamB
>
> M
>
>> On 21. Sep 2023, at 20:40, Jean-Michel Campin <jmc at mit.edu> wrote:
>>
>> Hi Martin,
>>
>>> I tried reverting the code to the previous version, but that does not help.
>> This does not match what I found:
>> 1) this test is run every night (e.g., on villon), and was passing on Sep 20 and it's now failing to run.
>> And TAF has not been upgraded (both days it's Version 5.8.8).
>> 2) using the code just after merging PR #751, this test fails but if I use the previous
>> (before PR #751 was merged) version of ctrl_map_ini_gentim2d.F it run fine (since
>> TAF does not remove the 2 lines I copied in my ealier eamil.
>>
>> Cheers,
>> Jean-Michel
>>
>> On Thu, Sep 21, 2023 at 06:46:46PM +0200, Martin Losch wrote:
>>> Hi Jean-Michel,
>>>
>>> I tried reverting the code to the previous version, but that does not help. Going back to version 5.8.0 does not either, not the combination of both.
>>> Going back to pre PR 517 works.
>>> Using ???staf -keep??? works, but we don???t want that.
>>> That???s weird, so TAF is confused.
>>>
>>> This works:
>>>
>>> ilgen=ilnblnk( xx_gentim2d_file(iarr) )
>>> temp_genarr_fnamA = xx_gentim2d_file(iarr)
>>>
>>> call ctrl_init_rec ( temp_genarr_fnamA(1:ilgen),
>>> [???]
>>>
>>> but does it work with OpenAD/Tapenade?
>>>
>>> Looking at the code the character array "fnamebase(1:maxCtrlTim2D)??? is not necessary at all, definitely it does not need to be an array. Maybe that???s what upsets TAF?
>>>
>>> Martin
>>>
>>> BTW, the second assignment of fnamebase(parr) can be dropped, too, it???s not used after that. I say we drop the entire variable.
>>>
>>>> On 21. Sep 2023, at 17:37, Jean-Michel Campin <jmc at mit.edu> wrote:
>>>>
>>>> Hi Martin and Dan,
>>>>
>>>> With the changes in ctrl_map_ini_gentim2d.F from Dan's PR #751 (got merged yesterday)
>>>> the TAF tang-lin experiment "hs94.1x64x5" does not run anymore with gfortran and -devel
>>>> see, without MPI:
>>>> http://mitgcm.org/testing/results/2023_09/tr_villon-b_20230921_1/summary.txt
>>>> and with MPI:
>>>> http://mitgcm.org/testing/results/2023_09/tr_engaging-gfoTlm_20230921_0/summary.txt
>>>>
>>>> It looks like a TAF problem, current Version 5.8.8, which remove lines 122 & 124:
>>>> 122 ilgen=ilnblnk( xx_gentim2d_file(iarr) )
>>>> 123 temp_genarr_fnamA = xx_gentim2d_file(iarr)
>>>> 124 fnamebase(iarr) = temp_genarr_fnamA(1:ilgen)
>>>> in the Tang-Lin version of this routine (i.e., in ctrl_map_ini_gentim2d_tl.f),
>>>> just before the call to "ctrl_init_rec".
>>>> And since this experiment is using "debugLevel = 2" (the only TLM test with debugLevel > 1),
>>>> it triggers an error in ctrl_init_rec (with -devel, local var fnamebase(iarr) is not set at all).
>>>>
>>>> With the older version of ctrl_map_ini_gentim2d.F (before PR #751), TAF was keeping
>>>> these 2 lines:
>>>>> ilgen = ilnblnk(xx_gentim2d_file(iarr))
>>>>> fnamebase(iarr) = xx_gentim2d_file(iarr)(1:ilgen)
>>>>
>>>> If you know a trick to convince TAF to keep these 2 lines, let me know.
>>>> Otherwise, will likely submit the problem to Ralf Giering.
>>>>
>>>> Cheers,
>>>> Jean-Michel
>>>> _______________________________________________
>>>> 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