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_XYZ_UV(
0008 I u3DRS, u3DRL, uDiagName, uDumpName,
0009 I v3DRS, v3DRL, vDiagName, vDumpName,
0010 I vType, doDump, dumpAdRec, myTime, myIter, myThid )
0011
0012
0013
0014
0015
0016
0017 IMPLICIT NONE
0018
0019
0020 #include "SIZE.h"
0021 #include "EEPARAMS.h"
0022 #include "PARAMS.h"
0023 #include "AUTODIFF_PARAMS.h"
0024 #ifdef ALLOW_AUTODIFF_MONITOR
0025 # ifdef ALLOW_DIAGNOSTICS
41c4545f8f Jean*0026 # include "DIAGNOSTICS_P2SHARE.h"
a10c595eb6 Timo*0027 # endif
0028 #endif /* ALLOW_AUTODIFF_MONITOR */
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 _RS u3DRS(*)
0052 _RL u3DRL(*)
0053 _RS v3DRS(*)
0054 _RL v3DRL(*)
0055 CHARACTER*(8) uDiagName
0056 CHARACTER*(8) vDiagName
0057 CHARACTER*(*) uDumpName
0058 CHARACTER*(*) vDumpName
0059 INTEGER vType
0060 LOGICAL doDump
0061 INTEGER dumpAdRec
0062 _RL myTime
0063 INTEGER myIter
0064 INTEGER myThid
0065
0066 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
0067 #ifdef ALLOW_AUTODIFF_MONITOR
0068
0069
0070
0071
0072
0073 CHARACTER*(10) suff
0074 _RL uCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
0075 _RL vCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
0076
0077
0078
0079
0080
0081
0082
0083 IF ( doDump ) THEN
0084
0085
0086 IF ( rwSuffixType.EQ.0 ) THEN
0087 WRITE(suff,'(I10.10)') myIter
0088 ELSE
0089 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
0090 ENDIF
0091
0092 IF ( dumpAdVarExch.EQ.2 ) THEN
0093
0094
0095 CALL COPY_AD_UV_OUTP( u3DRS, v3DRS, u3DRL, v3DRL,
0096 & uCopy, vCopy, Nr, vType, myThid )
0097 IF ( dumpAdByRec ) THEN
0098 CALL WRITE_REC_XYZ_RL( uDumpName, uCopy, dumpAdRec,
0099 & myIter, myThid )
0100 CALL WRITE_REC_XYZ_RL( vDumpName, vCopy, dumpAdRec,
0101 & myIter, myThid )
0102 ELSE
0103 CALL WRITE_FLD_XYZ_RL( uDumpName, suff, uCopy,
0104 & myIter, myThid )
0105 CALL WRITE_FLD_XYZ_RL( vDumpName, suff, vCopy,
0106 & myIter, myThid )
0107 ENDIF
0108
0109 ELSE
0110
0111
0112 IF ( MOD(vType,2).NE.1 ) THEN
0113 IF ( dumpAdByRec ) THEN
0114 CALL WRITE_REC_XYZ_RL( uDumpName, u3DRL, dumpAdRec,
0115 & myIter, myThid )
0116 CALL WRITE_REC_XYZ_RL( vDumpName, v3DRL, dumpAdRec,
0117 & myIter, myThid )
0118 ELSE
0119 CALL WRITE_FLD_XYZ_RL( uDumpName, suff,u3DRL,
0120 & myIter, myThid )
0121 CALL WRITE_FLD_XYZ_RL( vDumpName, suff,v3DRL,
0122 & myIter, myThid )
0123 ENDIF
0124 ELSE
0125 IF ( dumpAdByRec ) THEN
0126 CALL WRITE_REC_XYZ_RS( uDumpName, u3DRS, dumpAdRec,
0127 & myIter, myThid )
0128 CALL WRITE_REC_XYZ_RS( uDumpName, v3DRS, dumpAdRec,
0129 & myIter, myThid )
0130 ELSE
0131 CALL WRITE_FLD_XYZ_RS( uDumpName, suff, u3DRS,
0132 & myIter, myThid )
0133 CALL WRITE_FLD_XYZ_RS( vDumpName, suff, v3DRS,
0134 & myIter, myThid )
0135 ENDIF
0136 ENDIF
0137
0138 ENDIF
0139 ENDIF
0140
0141
0142 #ifdef ALLOW_DIAGNOSTICS
0143 IF ( useDiag4AdjOutp .AND. uDiagName.NE.'- None -'
0144 & .AND. vDiagName.NE.'- None -' ) THEN
0145 IF ( dumpAdVarExch.EQ.2 ) THEN
0146 IF ( .NOT.doDump )
0147 & CALL COPY_AD_UV_OUTP( u3DRS, v3DRS, u3DRL, v3DRL,
0148 & uCopy, vCopy, Nr, vType, myThid )
0149 CALL DIAGNOSTICS_FILL( uCopy, uDiagName, 0,Nr,0,1,1, myThid )
0150 CALL DIAGNOSTICS_FILL( vCopy, vDiagName, 0,Nr,0,1,1, myThid )
0151 ELSE
0152 IF ( MOD(vType,2).NE.1 ) THEN
0153 CALL DIAGNOSTICS_FILL( u3DRL, uDiagName,
0154 & 0, Nr, 0, 1, 1, myThid )
0155 CALL DIAGNOSTICS_FILL( v3DRL, vDiagName,
0156 & 0, Nr, 0, 1, 1, myThid )
0157 ELSE
0158 CALL DIAGNOSTICS_FILL_RS( u3DRS, uDiagName,
0159 & 0, Nr, 0, 1, 1, myThid )
0160 CALL DIAGNOSTICS_FILL_RS( v3DRS, vDiagName,
0161 & 0, Nr, 0, 1, 1, myThid )
0162 ENDIF
0163 ENDIF
0164 ENDIF
0165 #endif /* ALLOW_DIAGNOSTICS */
0166
0167 #endif /* ALLOW_AUTODIFF_MONITOR */
0168 #endif /* ALLOW_ADJOINT_RUN */
0169
0170 RETURN
0171 END