File indexing completed on 2025-03-03 06:11:41 UTC
view on githubraw file Latest commit b7b61e61 on 2025-03-02 15:55:22 UTC
feb9c444ae Patr*0001 #include "PTRACERS_OPTIONS.h"
93bee5c6a2 Jean*0002 #include "AD_CONFIG.h"
1198adf517 Jean*0003 #ifdef ALLOW_AUTODIFF
0004 # include "AUTODIFF_OPTIONS.h"
0005 #endif
feb9c444ae Patr*0006
0007
0008
0009
af20bc5e19 Jean*0010 SUBROUTINE ptracers_ad_dump( myTime, myIter, myThid )
feb9c444ae Patr*0011
0012
0013
4545c79864 Jean*0014
feb9c444ae Patr*0015
b7b61e618a Mart*0016
feb9c444ae Patr*0017
0018
0019
0020
0021
4545c79864 Jean*0022
feb9c444ae Patr*0023
0024
0025
0026
0027 IMPLICIT NONE
0028
0029
0030 #include "SIZE.h"
0031 #include "EEPARAMS.h"
0032 #include "PARAMS.h"
0033 #include "PTRACERS_SIZE.h"
0034 #include "PTRACERS_PARAMS.h"
0035 #ifdef ALLOW_AUTODIFF_MONITOR
a10c595eb6 Timo*0036 # include "AUTODIFF.h"
0037 # include "AUTODIFF_PARAMS.h"
9ed6d27358 Patr*0038 # include "ptracers_adcommon.h"
feb9c444ae Patr*0039 #endif
a10c595eb6 Timo*0040 #ifdef ALLOW_DIAGNOSTICS
41c4545f8f Jean*0041 # include "DIAGNOSTICS_P2SHARE.h"
a10c595eb6 Timo*0042 #endif
feb9c444ae Patr*0043
0044
4545c79864 Jean*0045
0046
0047
0048 _RL myTime
0049 INTEGER myIter
0050 INTEGER myThid
feb9c444ae Patr*0051
0052 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
0053 #ifdef ALLOW_AUTODIFF_MONITOR
0054
4545c79864 Jean*0055
0056 LOGICAL DIFFERENT_MULTIPLE
0057 EXTERNAL DIFFERENT_MULTIPLE
0058
feb9c444ae Patr*0059
4545c79864 Jean*0060
feb9c444ae Patr*0061 INTEGER ip
a10c595eb6 Timo*0062 CHARACTER*(8) diagName
0063 CHARACTER*(MAX_LEN_FNAM) dumpName
0064 LOGICAL doExch, doDump
0065 _RS dumRS(1)
feb9c444ae Patr*0066
0067
a10c595eb6 Timo*0068
0069 doDump = DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock)
0070 doExch = doDump
0071 #ifdef ALLOW_DIAGNOSTICS
0072 doExch = doExch.OR.useDiag4AdjOutp
0073 #endif
0074 IF (doExch) THEN
0075 IF (dumpAdVarExch.EQ.1) THEN
0076 DO ip = 1, PTRACERS_numInUse
0077 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0078 CALL ADEXCH_XYZ_RL(myThid, adptracer(1-OLx,1-OLy,1,1,1,ip))
0079 #else
0080 CALL ADEXCH_3D_RL(adptracer(1-OLx,1-OLy,1,1,1,ip), Nr, myThid)
0081 #endif
0082 ENDDO
0083 ENDIF
0084 ENDIF
4545c79864 Jean*0085
a10c595eb6 Timo*0086 IF (doDump) THEN
4545c79864 Jean*0087 CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid )
a10c595eb6 Timo*0088 ENDIF
feb9c444ae Patr*0089
a10c595eb6 Timo*0090 DO ip = 1, PTRACERS_numInUse
0091 WRITE(diagName,'(A6,A2)') 'ADJptr', PTRACERS_ioLabel(ip)
0092 WRITE(dumpName,'(A10,A2,A1)')
0093 & 'ADJptracer', PTRACERS_ioLabel(ip), '.'
feb9c444ae Patr*0094
a10c595eb6 Timo*0095 CALL DUMP_ADJ_XYZ( dumRS, adptracer(1-OLx,1-OLy,1,1,1,ip),
0096 & diagName, dumpName, 12, doDump,
0097 & dumpAdRecMn, myTime, myIter, myThid )
0098 ENDDO
feb9c444ae Patr*0099
a10c595eb6 Timo*0100 IF (doDump) THEN
4545c79864 Jean*0101 CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid )
feb9c444ae Patr*0102 ENDIF
0103
0104 #endif /* ALLOW_AUTODIFF_MONITOR */
0105 #endif /* ALLOW_ADJOINT_RUN */
0106
0107 RETURN
0108 END