updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_update_bc / da_couple_ad.inc
blob51ed0094acd781b915e07005f0eeed707672c092
1 !        Generated by TAPENADE     (INRIA, Tropics team)
2 !  Tapenade 3.6 (r4165) - 21 sep 2011 20:54
4 !  Differentiation of da_couple in reverse (adjoint) mode:
5 !   gradient     of useful results: field
6 !   with respect to varying inputs: field mut
7 SUBROUTINE DA_COUPLE_B(mut, mutb, field, fieldb, msf, ids, ide, jds, jde&
8 &  , kds, kde)
9   IMPLICIT NONE
10 ! if (trace_use) call da_trace_exit("da_couple")
11   INTEGER, INTENT(IN) :: ids, ide, jds, jde, kds, kde
12   REAL, INTENT(IN) :: mut(ids:ide, jds:jde)
13   REAL :: mutb(ids:ide, jds:jde)
14   REAL, INTENT(IN) :: msf(ids:ide, jds:jde)
15   REAL, INTENT(INOUT) :: field(ids:ide, jds:jde, kds:kde)
16   REAL, INTENT(INOUT) :: fieldb(ids:ide, jds:jde, kds:kde)
17   INTEGER :: i, j, k
18   mutb = 0.0
19   DO j=jde,jds,-1
20     DO k=kde,kds,-1
21       DO i=ide,ids,-1
22         mutb(i, j) = mutb(i, j) + field(i, j, k)*fieldb(i, j, k)/msf(i, &
23 &          j)
24         fieldb(i, j, k) = mut(i, j)*fieldb(i, j, k)/msf(i, j)
25       END DO
26     END DO
27   END DO
28 END SUBROUTINE DA_COUPLE_B