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_ADVAR_OUTP(
0008 I inpFldRS, inpFldRL,
0009 O outFld,
0010 I nNz, vType, myThid )
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 IMPLICIT NONE
0023
0024
0025 #include "EEPARAMS.h"
0026 #include "SIZE.h"
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 INTEGER nNz
0037 _RS inpFldRS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0038 _RL inpFldRL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0039 _RL outFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy)
0040 INTEGER vType
0041 INTEGER myThid
0042
0043 #ifdef ALLOW_AUTODIFF_MONITOR
70bc3cb58c Jean*0044 #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM))
eaefeccd63 Jean*0045
0046
0047
0048
0049 INTEGER i,j,k,bi,bj
0050 INTEGER gridloc
0051 LOGICAL wSign
0052
0053
0054 gridloc = vType/10
0055 IF ( MOD(vType,10).LT.1 .OR. MOD(vType,10).GT.4
0056 & .OR. gridloc.LT.1 .OR. gridloc.GT.2 ) THEN
0057 STOP 'ABNORMAL END: COPY_ADVAR_OUTP invalid vType'
0058 ENDIF
0059 wSign = MOD(vType,10).GE.3
0060
0061 IF ( MOD(vType,2).EQ.1 ) THEN
0062 DO bj = myByLo(myThid), myByHi(myThid)
0063 DO bi = myBxLo(myThid), myBxHi(myThid)
0064 DO k=1,nNz
0065 DO j=1-OLy,sNy+OLy
0066 DO i=1-OLx,sNx+OLx
0067 outFld(i,j,k,bi,bj) = inpFldRS(i,j,k,bi,bj)
0068 ENDDO
0069 ENDDO
0070 ENDDO
0071 ENDDO
0072 ENDDO
0073 ELSE
0074 DO bj = myByLo(myThid), myByHi(myThid)
0075 DO bi = myBxLo(myThid), myBxHi(myThid)
0076 DO k=1,nNz
0077 DO j=1-OLy,sNy+OLy
0078 DO i=1-OLx,sNx+OLx
0079 outFld(i,j,k,bi,bj) = inpFldRL(i,j,k,bi,bj)
0080 ENDDO
0081 ENDDO
0082 ENDDO
0083 ENDDO
0084 ENDDO
0085 ENDIF
0086
61dfb3115e Jean*0087 #ifdef ALLOW_OPENAD
0088
0089 #else /* ALLOW_OPENAD */
0090
eaefeccd63 Jean*0091 IF ( gridloc.EQ.1 ) THEN
0092 IF ( wSign ) THEN
0093 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0094
0095 #else
0096
0097 #endif
0098 STOP 'ABNORMAL END: COPY_ADVAR_OUTP missing wSign,loc=1'
0099 ELSE
0100 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0101 CALL ADEXCH_3D_RL( nNz, myThid, outFld )
0102 #else
0103 CALL ADEXCH_3D_RL( outFld, nNz, myThid )
0104 #endif
0105 ENDIF
0106 ELSEIF ( gridloc.EQ.2 ) THEN
0107 IF ( wSign ) THEN
0108 STOP 'ABNORMAL END: COPY_ADVAR_OUTP wSign,loc=2 not coded'
0109 ELSE
0110 #ifdef AUTODIFF_TAMC_COMPATIBILITY
0111
0112 #else
0113
0114 #endif
0115 STOP 'ABNORMAL END: COPY_ADVAR_OUTP missing noSign,loc=2'
0116 ENDIF
0117 ENDIF
61dfb3115e Jean*0118 #endif /* ALLOW_OPENAD */
eaefeccd63 Jean*0119
70bc3cb58c Jean*0120 #endif /* ALLOW_ADJOINT_RUN or ALLOW_ADMTLM */
eaefeccd63 Jean*0121 #endif /* ALLOW_AUTODIFF_MONITOR */
0122 RETURN
0123 END