/[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.3 - (show annotations) (download)
Thu Mar 26 23:38:26 2015 UTC (9 years, 1 month ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65t, checkpoint65u, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m
Changes since 1.2: +1 -0 lines
add #include STREAMICE_OPTIONS.h to allow compilation

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

  ViewVC Help
Powered by ViewVC 1.1.22