File indexing completed on 2018-03-02 18:38:00 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
eaefeccd63 Jean*0001 #include "AUTODIFF_OPTIONS.h"
70bc3cb58c Jean*0002 #include "AD_CONFIG.h"
eaefeccd63 Jean*0003
0004
0005
0006
0007 SUBROUTINE COPY_AD_UV_OUTP(
0008 I uFldRS, vFldRS, uFldRL, vFldRL,
0009 O uFldOut, vFldOut,
0010 I nNz, vType, myThid )
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 IMPLICIT NONE
0024
0025
0026 #include "EEPARAMS.h"
0027 #include "SIZE.h"
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 INTEGER nNz
0041 _RS uFldRS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0042 _RS vFldRS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0043 _RL uFldRL (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0044 _RL vFldRL (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0045 _RL uFldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0046 _RL vFldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0047 INTEGER vType
0048 INTEGER myThid
0049
0050 #ifdef ALLOW_AUTODIFF_MONITOR
70bc3cb58c Jean*0051 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
eaefeccd63 Jean*0052
0053
0054
0055
0056 INTEGER i,j,k,bi,bj
0057 INTEGER gridloc
0058 LOGICAL wSign
0059
0060
0061 gridloc = vType/10
0062 IF ( MOD(vType,10).LT.1 .OR. MOD(vType,10).GT.4
0063 & .OR. gridloc.LT.1 .OR. gridloc.GT.4 ) THEN
0064 STOP 'ABNORMAL END: COPY_AD_UV_OUTP invalid vType'
0065 ENDIF
0066 wSign = MOD(vType,10).GE.3
0067
0068 IF ( MOD(vType,2).EQ.1 ) THEN
0069 DO bj = myByLo(myThid), myByHi(myThid)
0070 DO bi = myBxLo(myThid), myBxHi(myThid)
0071 DO k=1,nNz
0072 DO j=1-OLy,sNy+OLy
0073 DO i=1-OLx,sNx+OLx
0074 uFldOut(i,j,k,bi,bj) = uFldRS(i,j,k,bi,bj)
0075 vFldOut(i,j,k,bi,bj) = vFldRS(i,j,k,bi,bj)
0076 ENDDO
0077 ENDDO
0078 ENDDO
0079 ENDDO
0080 ENDDO
0081 ELSE
0082 DO bj = myByLo(myThid), myByHi(myThid)
0083 DO bi = myBxLo(myThid), myBxHi(myThid)
0084 DO k=1,nNz
0085 DO j=1-OLy,sNy+OLy
0086 DO i=1-OLx,sNx+OLx
0087 uFldOut(i,j,k,bi,bj) = uFldRL(i,j,k,bi,bj)
0088 vFldOut(i,j,k,bi,bj) = vFldRL(i,j,k,bi,bj)
0089 ENDDO
0090 ENDDO
0091 ENDDO
0092 ENDDO
0093 ENDDO
0094 ENDIF
0095
61dfb3115e Jean*0096 #ifdef ALLOW_OPENAD
0097
0098 #else /* ALLOW_OPENAD */
0099
eaefeccd63 Jean*0100 IF ( gridloc.EQ.1 ) THEN
0101 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0102
0103 #else
0104
0105 #endif
0106 STOP 'ABNORMAL END: COPY_AD_UV_OUTP missing vType=11-14'
0107 ELSEIF ( gridloc.EQ.2 ) THEN
0108 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0109
0110 #else
0111
0112 #endif
0113 STOP 'ABNORMAL END: COPY_AD_UV_OUTP missing vType=21-24'
0114 ELSEIF ( gridloc.EQ.3 ) THEN
0115 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0116 CALL ADEXCH_UV_3D_RL( wSign,nNz,myThid, uFldOut,vFldOut )
0117 #else
0118 CALL ADEXCH_UV_3D_RL( uFldOut,vFldOut, wSign,nNz,myThid )
0119 #endif
0120 ELSEIF ( gridloc.EQ.4 ) THEN
0121 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0122
0123 #else
0124
0125 #endif
0126 STOP 'ABNORMAL END: COPY_AD_UV_OUTP missing vType=41-44'
0127 ENDIF
0128
61dfb3115e Jean*0129 #endif /* ALLOW_OPENAD */
0130
70bc3cb58c Jean*0131 #endif /* ALLOW_ADJOINT_RUN or ALLOW_ADMTLM */
eaefeccd63 Jean*0132 #endif /* ALLOW_AUTODIFF_MONITOR */
0133 RETURN
0134 END