[MITgcm-devel] pdaf in mitgcm
Patrick Heimbach
heimbach at mit.edu
Thu Jun 15 14:31:20 EDT 2017
A belated "fine with me".
p.
> On Jun 15, 2017, at 1:12 PM, Martin Losch <Martin.Losch at awi.de> wrote:
>
> Yes, would need to go into CCP_EEOPTIONS.h. I want to have the least incision, so Iam going for use_pdaf instead of allow_ ... etc. I hope that's Ok.
> Martin
>
>> On 14. Jun 2017, at 21:24, gael forget <gforget at mit.edu> wrote:
>>
>> Hi Martin,
>> sounds good to me too.
>> Cheers,
>> Gael
>>
>>> On Jun 14, 2017, at 11:41 AM, Jean-Michel Campin <jmc at mit.edu> wrote:
>>>
>>> Hi Martin,
>>>
>>> I think it would be good to have this checked-in.
>>> I did not look too much to the details but the option:
>>> USE_PDAF
>>> would have to be defined in CPP_EEOPTIONS.h I guess ?
>>>
>>> Cheers,
>>> Jean-Michel
>>>
>>>> On Tue, Jun 13, 2017 at 02:52:45PM +0200, Martin Losch wrote:
>>>> Hi all,
>>>> we use a sequential data assimilation framework (PDAF: http://pdaf.awi.de/trac/wiki) with the MITgcm. It requires minimal changes to the code (in eeboot_minimal.F and the_main_loop.F), where PDAF routines are called (currently enclosed with new CPP flag USE_PDAF). PDAF is freely available and Lars (the developer) will post example applications with the MITgcm very soon.
>>>>
>>>> I would like to add our version of eeboot_minimal.F and the_main_loop.F to main repository, so that it is easier to maintain PDAF+MITgcm for use.
>>>>
>>>> Any objections,
>>>>
>>>> Martin
>>>>
>>>> PS. below are the differences to current code (contextual diff):
>>>>
>>>> Index: model/src/the_main_loop.F
>>>> ===================================================================
>>>> RCS file: /u/gcmpack/MITgcm/model/src/the_main_loop.F,v
>>>> retrieving revision 1.181
>>>> diff -u -r1.181 the_main_loop.F
>>>> --- model/src/the_main_loop.F 20 Mar 2017 19:38:16 -0000 1.181
>>>> +++ model/src/the_main_loop.F 13 Jun 2017 12:34:49 -0000
>>>> @@ -1,5 +1,5 @@
>>>> C $Header: /u/gcmpack/MITgcm/model/src/the_main_loop.F,v 1.181 2017/03/20 19:38:16 mmazloff Exp $
>>>> -C $Name: $
>>>> +C $Name: BASE $
>>>>
>>>> #include "PACKAGES_CONFIG.h"
>>>> #include "CPP_OPTIONS.h"
>>>> @@ -340,6 +340,13 @@
>>>> c >>>>>>>>>>>>>>>>>>>>>>>>>>> LOOP <<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>> c >>>>>>>>>>>>>>>>>>>>>>>>>>> STARTS <<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>
>>>> +#ifdef USE_PDAF
>>>> +c Initialize PDAF
>>>> + CALL TIMER_START('INIT_PDAF [THE_MAIN_LOOP]', myThid)
>>>> + CALL init_pdaf( nIter0, myTime, myIter, myThid )
>>>> + CALL TIMER_STOP ('INIT_PDAF [THE_MAIN_LOOP]', myThid)
>>>> +#endif
>>>> +
>>>> c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> #ifndef ALLOW_OPENAD
>>>> # ifdef ALLOW_AUTODIFF
>>>> @@ -609,6 +616,13 @@
>>>> CALL MAIN_DO_LOOP( iloop, myTime, myIter, myThid )
>>>> CALL TIMER_STOP ('MAIN_DO_LOOP [THE_MAIN_LOOP]', myThid)
>>>>
>>>> +#ifdef USE_PDAF
>>>> +C PDAF analysis step
>>>> + CALL TIMER_START('ASSIMILATE_PDAF [THE_MAIN_LOOP]', myThid)
>>>> + CALL assimilate_pdaf( myTime, myIter, myThid )
>>>> + CALL TIMER_STOP ('ASSIMILATE_PDAF [THE_MAIN_LOOP]', myThid)
>>>> +#endif
>>>> +
>>>> c-- >>> Loop body end <<<
>>>> #ifndef ALLOW_OPENAD
>>>> # ifdef ALLOW_AUTODIFF
>>>>
>>>> Index: eesupp/src/eeboot_minimal.F
>>>> ===================================================================
>>>> RCS file: /u/gcmpack/MITgcm/eesupp/src/eeboot_minimal.F,v
>>>> retrieving revision 1.29
>>>> diff -u -r1.29 eeboot_minimal.F
>>>> --- eesupp/src/eeboot_minimal.F 28 Jan 2017 18:39:06 -0000 1.29
>>>> +++ eesupp/src/eeboot_minimal.F 13 Jun 2017 12:35:37 -0000
>>>> @@ -1,5 +1,5 @@
>>>> C $Header: /u/gcmpack/MITgcm/eesupp/src/eeboot_minimal.F,v 1.29 2017/01/28 18:39:06 jmc Exp $
>>>> -C $Name: $
>>>> +C $Name: BASE $
>>>>
>>>> #include "PACKAGES_CONFIG.h"
>>>> #include "CPP_EEOPTIONS.h"
>>>> @@ -48,7 +48,11 @@
>>>> C fNam :: Used to build file name for standard and error output.
>>>> C msgBuf :: Used to build messages for printing.
>>>> INTEGER myThid
>>>> +#ifdef USE_PDAF
>>>> + CHARACTER*18 fNam
>>>> +#else
>>>> CHARACTER*13 fNam
>>>> +#endif /* USE_PDAF */
>>>> CHARACTER*(MAX_LEN_MBUF) msgBuf
>>>> #ifdef ALLOW_USE_MPI
>>>> C mpiRC :: Error code reporting variable used with MPI.
>>>> @@ -61,6 +65,9 @@
>>>> #if defined(ALLOW_NEST_PARENT) || defined(ALLOW_NEST_CHILD)
>>>> INTEGER mpiMyWid, color
>>>> #endif
>>>> +#ifdef USE_PDAF
>>>> + INTEGER mpi_task_id
>>>> +#endif /* USE_PDAF */
>>>> #endif /* ALLOW_USE_MPI */
>>>> CEOP
>>>>
>>>> @@ -124,6 +131,13 @@
>>>> ENDIF
>>>>
>>>> doReport = .FALSE.
>>>> +#ifdef USE_PDAF
>>>> +C initialize PDAF
>>>> +C for more output increase second parameter from 1 to 2
>>>> + CALL init_parallel_pdaf(0, 1, MPI_COMM_MODEL, MPI_COMM_MODEL,
>>>> + & mpi_task_id)
>>>> +#endif /* USE_PDAF */
>>>> +
>>>> #ifdef ALLOW_OASIS
>>>> C add a 1rst preliminary call EESET_PARAMS to set useOASIS
>>>> C (needed to decide either to call OASIS_INIT or not)
>>>> @@ -169,7 +183,11 @@
>>>> GOTO 999
>>>> ENDIF
>>>> myProcId = mpiMyId
>>>> +#ifdef USE_PDAF
>>>> + WRITE(myProcessStr,'(I4.4,A1,I4.4)') mpi_task_id,'.',myProcId
>>>> +#else
>>>> WRITE(myProcessStr,'(I4.4)') myProcId
>>>> +#endif /* USE_PDAF */
>>>> mpiPidIo = myProcId
>>>> pidIO = mpiPidIo
>>>> IF ( mpiPidIo .EQ. myProcId ) THEN
>>>> @@ -177,8 +195,14 @@
>>>> IF( myProcId .EQ. 0 ) THEN
>>>> #endif
>>>> WRITE(fNam,'(A,A)') 'STDERR.', myProcessStr(1:4)
>>>> +#ifdef USE_PDAF
>>>> + WRITE(fNam,'(A,A)') 'STDERR.', myProcessStr(1:9)
>>>> +#endif
>>>> OPEN(errorMessageUnit,FILE=fNam,STATUS='unknown')
>>>> WRITE(fNam,'(A,A)') 'STDOUT.', myProcessStr(1:4)
>>>> +#ifdef USE_PDAF
>>>> + WRITE(fNam,'(A,A)') 'STDOUT.', myProcessStr(1:9)
>>>> +#endif
>>>> OPEN(standardMessageUnit,FILE=fNam,STATUS='unknown')
>>>> #ifdef SINGLE_DISK_IO
>>>> ELSE
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1845 bytes
Desc: not available
URL: <http://mitgcm.org/pipermail/mitgcm-devel/attachments/20170615/16af74ca/attachment.p7s>
More information about the MITgcm-devel
mailing list