File indexing completed on 2024-05-11 05:10:14 UTC
view on githubraw file Latest commit 41c4545f on 2024-05-10 15:00:41 UTC
a10c595eb6 Timo*0001 #include "AUTODIFF_OPTIONS.h"
0002 #include "AD_CONFIG.h"
0003
0004
0005
0006
0007 SUBROUTINE DUMP_ADJ_XY(
0008 I var2DRS, var2DRL, diagName, dumpName, vType,
0009 I doDump, dumpAdRec, myTime, myIter, myThid )
0010
0011
0012
0013
0014
0015
0016 IMPLICIT NONE
0017
0018
0019 #include "SIZE.h"
0020 #include "EEPARAMS.h"
0021 #include "PARAMS.h"
0022 #include "AUTODIFF_PARAMS.h"
0023 #ifdef ALLOW_AUTODIFF_MONITOR
0024 # ifdef ALLOW_DIAGNOSTICS
41c4545f8f Jean*0025 # include "DIAGNOSTICS_P2SHARE.h"
a10c595eb6 Timo*0026 # endif
0027 #endif /* ALLOW_AUTODIFF_MONITOR */
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 _RS var2DRS(*)
0046 _RL var2DRL(*)
0047 CHARACTER*(8) diagName
0048 CHARACTER*(*) dumpName
0049 INTEGER vType
0050 LOGICAL doDump
0051 INTEGER dumpAdRec
0052 _RL myTime
0053 INTEGER myIter
0054 INTEGER myThid
0055
0056 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
0057 #ifdef ALLOW_AUTODIFF_MONITOR
0058
0059
0060
0061
0062 CHARACTER*(10) suff
0063 _RL var2Dc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0064
0065
0066
0067
0068
0069
0070
0071 IF ( doDump ) THEN
0072
0073
0074 IF ( rwSuffixType.EQ.0 ) THEN
0075 WRITE(suff,'(I10.10)') myIter
0076 ELSE
0077 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
0078 ENDIF
0079
0080 IF ( dumpAdVarExch.EQ.2 ) THEN
0081
0082
0083 CALL COPY_ADVAR_OUTP( var2DRS, var2DRL,
0084 & var2Dc, 1, vType, myThid )
0085 IF ( dumpAdByRec ) THEN
0086 CALL WRITE_REC_XY_RL( dumpName, var2Dc, dumpAdRec,
0087 & myIter, myThid )
0088 ELSE
0089 CALL WRITE_FLD_XY_RL( dumpName, suff, var2Dc,
0090 & myIter, myThid )
0091 ENDIF
0092
0093 ELSE
0094
0095
0096 IF ( MOD(vType,2).NE.1 ) THEN
0097 IF ( dumpAdByRec ) THEN
0098 CALL WRITE_REC_XY_RL( dumpName, var2DRL, dumpAdRec,
0099 & myIter, myThid )
0100 ELSE
0101 CALL WRITE_FLD_XY_RL( dumpName, suff, var2DRL,
0102 & myIter, myThid )
0103 ENDIF
0104 ELSE
0105 IF ( dumpAdByRec ) THEN
0106 CALL WRITE_REC_XY_RS( dumpName, var2DRS, dumpAdRec,
0107 & myIter, myThid )
0108 ELSE
0109 CALL WRITE_FLD_XY_RS( dumpName, suff, var2DRS,
0110 & myIter, myThid )
0111 ENDIF
0112 ENDIF
0113
0114 ENDIF
0115 ENDIF
0116
0117
0118 #ifdef ALLOW_DIAGNOSTICS
0119 IF ( useDiag4AdjOutp .AND. diagName.NE.'- None -' ) THEN
0120 IF ( dumpAdVarExch.EQ.2 ) THEN
0121 IF ( .NOT.doDump )
0122 & CALL COPY_ADVAR_OUTP( var2DRS, var2DRL,
0123 & var2Dc, 1, vType, myThid )
0124 CALL DIAGNOSTICS_FILL( var2Dc, diagName, 0,1, 0,1,1, myThid )
0125 ELSE
0126 IF ( MOD(vType,2).NE.1 ) THEN
0127 CALL DIAGNOSTICS_FILL( var2DRL, diagName,
0128 & 0, 1, 0, 1, 1, myThid )
0129 ELSE
0130 CALL DIAGNOSTICS_FILL_RS( var2DRS, diagName,
0131 & 0, 1, 0, 1, 1, myThid )
0132 ENDIF
0133 ENDIF
0134 ENDIF
0135 #endif /* ALLOW_DIAGNOSTICS */
0136
0137 #endif /* ALLOW_AUTODIFF_MONITOR */
0138 #endif /* ALLOW_ADJOINT_RUN */
0139
0140 RETURN
0141 END