/[MITgcm]/MITgcm/tools/OAD_support/ad_template.streamice_get_fp_err_oad.F
ViewVC logotype

Annotation of /MITgcm/tools/OAD_support/ad_template.streamice_get_fp_err_oad.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Wed Mar 25 17:35:29 2015 UTC (9 years, 2 months ago) by dgoldberg
Branch: MAIN
Changes since 1.1: +2 -1 lines
allow mechanical adjoint with OAD

1 dgoldberg 1.1
2     SUBROUTINE template()
3     use OAD_cp
4     use OAD_tape
5     use OAD_rev
6    
7     C
8     C **** Global Variables & Derived Type Definitions ****
9     C
10    
11     C
12     C **** Parameters and Result ****
13     C
14 dgoldberg 1.2 #if (defined (ALLOW_STREAMICE_OAD_FP))
15 dgoldberg 1.1
16    
17     if (our_rev_mode%plain) then
18     err_max = 0. _d 0
19    
20     DO bj = myByLo(myThid), myByHi(myThid)
21     DO bi = myBxLo(myThid), myBxHi(myThid)
22     DO j=1,sNy
23     DO i=1,sNx
24     err_tempu = 0. _d 0
25     err_tempv = 0. _d 0
26     IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
27     err_tempu =
28     & ABS (U_streamice(i,j,bi,bj)%v-u_new_SI(i,j,bi,bj)%v)
29     ENDIF
30     IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
31     err_tempv = MAX( err_tempu,
32     & ABS (V_streamice(i,j,bi,bj)%v-v_new_SI(i,j,bi,bj)%v))
33     ENDIF
34     IF (err_tempv .ge. err_max) err_max = err_tempv
35     ENDDO
36     ENDDO
37     ENDDO
38     ENDDO
39    
40     CALL GLOBAL_MAX_R8 (err_max, myThid)
41     end if
42    
43    
44     if (our_rev_mode%tape) then
45    
46     err_max = 0. _d 0
47    
48     DO bj = myByLo(myThid), myByHi(myThid)
49     DO bi = myBxLo(myThid), myBxHi(myThid)
50     DO j=1,sNy
51     DO i=1,sNx
52     err_tempu = 0. _d 0
53     err_tempv = 0. _d 0
54     IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
55     err_tempu =
56     & ABS (U_streamice(i,j,bi,bj)%v-u_new_SI(i,j,bi,bj)%v)
57     ENDIF
58     IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
59     err_tempv = MAX( err_tempu,
60     & ABS (V_streamice(i,j,bi,bj)%v-v_new_SI(i,j,bi,bj)%v))
61     ENDIF
62     IF (err_tempv .ge. err_max) err_max = err_tempv
63     ENDDO
64     ENDDO
65     ENDDO
66     ENDDO
67    
68     CALL GLOBAL_MAX_R8 (err_max, myThid)
69    
70     end if
71    
72    
73     if (our_rev_mode%adjoint) then
74    
75     err_max = 0. _d 0
76    
77     DO bj = myByLo(myThid), myByHi(myThid)
78     DO bi = myBxLo(myThid), myBxHi(myThid)
79     DO j=1,sNy
80     DO i=1,sNx
81     err_tempu = 0. _d 0
82     err_tempv = 0. _d 0
83     IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
84     err_tempu =
85     & ABS (U_streamice(i,j,bi,bj)%d-u_new_SI(i,j,bi,bj)%d)
86     ENDIF
87     IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
88     err_tempv = MAX( err_tempu,
89     & ABS (V_streamice(i,j,bi,bj)%d-v_new_SI(i,j,bi,bj)%d))
90     ENDIF
91     IF (err_tempv .ge. err_max) err_max = err_tempv
92     ENDDO
93     ENDDO
94     ENDDO
95     ENDDO
96    
97     CALL GLOBAL_MAX_R8 (err_max, myThid)
98    
99     end if
100 dgoldberg 1.2 #endif
101 dgoldberg 1.1 end subroutine template

  ViewVC Help
Powered by ViewVC 1.1.22