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

Contents 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 - (show annotations) (download)
Wed Mar 25 17:35:29 2015 UTC (9 years, 1 month ago) by dgoldberg
Branch: MAIN
Changes since 1.1: +2 -1 lines
allow mechanical adjoint with OAD

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 #if (defined (ALLOW_STREAMICE_OAD_FP))
15
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 #endif
101 end subroutine template

  ViewVC Help
Powered by ViewVC 1.1.22