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

Diff 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 | View Patch Patch

revision 1.3 by dgoldberg, Thu Mar 26 23:38:26 2015 UTC revision 1.4 by dgoldberg, Fri Mar 18 19:17:35 2016 UTC
# Line 14  C     **** Parameters and Result **** Line 14  C     **** Parameters and Result ****
14  C  C
15  #if (defined (ALLOW_STREAMICE_OAD_FP))  #if (defined (ALLOW_STREAMICE_OAD_FP))
16    
17           err_max = 0. _d 0      
18           err_sum = 0. _d 0
19           if (streamice_err_norm .lt. 1. _d 0) conj_norm = 1.0
20           if (streamice_err_norm .eq. 1. _d 0) conj_norm = 0.0
21           if (streamice_err_norm .gt. 1. _d 0) conj_norm =
22         & streamice_err_norm / (streamice_err_norm - 1.0)  
23    
24           DO bj = myByLo(myThid), myByHi(myThid)
25            DO bi = myBxLo(myThid), myBxHi(myThid)
26             err_sum_tile(bi,bj) = 0. _d 0  
27            ENDDO
28           ENDDO
29    
30    
31        if (our_rev_mode%plain) then        if (our_rev_mode%plain) then
32         err_max = 0. _d 0        
33           if (streamice_err_norm .lt. 1.0) then
34    
35         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
36          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 39  C Line 53  C
53         ENDDO         ENDDO
54    
55         CALL GLOBAL_MAX_R8 (err_max, myThid)         CALL GLOBAL_MAX_R8 (err_max, myThid)
56    
57           ELSE
58    
59           DO bj = myByLo(myThid), myByHi(myThid)
60            DO bi = myBxLo(myThid), myBxHi(myThid)
61             DO j=1,sNy
62              DO i=1,sNx
63               IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
64                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
65         &       (ABS(U_streamice(i,j,bi,bj)%v-
66         &              u_new_SI(i,j,bi,bj)%v))**streamice_err_norm
67               ENDIF
68               IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
69                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
70         &       (ABS(v_streamice(i,j,bi,bj)%v-
71         &              v_new_SI(i,j,bi,bj)%v))**streamice_err_norm
72               ENDIF
73              ENDDO
74             ENDDO
75            ENDDO
76           ENDDO
77    
78           CALL GLOBAL_SUM_TILE_RL( err_sum_tile, err_sum, myThid )
79    
80           err_max = err_sum ** (1./streamice_err_norm)
81    
82           ENDIF
83    
84        end if        end if
85                
86    
87        if (our_rev_mode%tape) then        if (our_rev_mode%tape) then
88                
89         err_max = 0. _d 0         IF (streamice_err_norm .lt. 1.0) then
90    
91         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
92          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 67  C Line 109  C
109         ENDDO         ENDDO
110    
111         CALL GLOBAL_MAX_R8 (err_max, myThid)         CALL GLOBAL_MAX_R8 (err_max, myThid)
112    
113           ELSE
114    
115           DO bj = myByLo(myThid), myByHi(myThid)
116            DO bi = myBxLo(myThid), myBxHi(myThid)
117             DO j=1,sNy
118              DO i=1,sNx
119               IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
120                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
121         &       (ABS(U_streamice(i,j,bi,bj)%v-
122         &              u_new_SI(i,j,bi,bj)%v))**streamice_err_norm
123               ENDIF
124               IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
125                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
126         &       (ABS(v_streamice(i,j,bi,bj)%v-
127         &              v_new_SI(i,j,bi,bj)%v))**streamice_err_norm
128               ENDIF
129              ENDDO
130             ENDDO
131            ENDDO
132           ENDDO
133    
134           CALL GLOBAL_SUM_TILE_RL( err_sum_tile, err_sum, myThid )
135    
136           err_max = err_sum ** (1./streamice_err_norm)
137    
138           ENDIF
139            
140        end if        end if
         
141    
142        if (our_rev_mode%adjoint) then        if (our_rev_mode%adjoint) then
143    
144         err_max = 0. _d 0         if (conj_norm .lt. 1.0) then
145    
146         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
147          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 97  C Line 165  C
165    
166         CALL GLOBAL_MAX_R8 (err_max, myThid)         CALL GLOBAL_MAX_R8 (err_max, myThid)
167    
168           ELSE
169    
170           DO bj = myByLo(myThid), myByHi(myThid)
171            DO bi = myBxLo(myThid), myBxHi(myThid)
172             DO j=1,sNy
173              DO i=1,sNx
174               IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN
175                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
176         &       (ABS(U_streamice(i,j,bi,bj)%d-
177         &              u_new_SI(i,j,bi,bj)%d))**conj_norm
178               ENDIF
179               IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN
180                err_sum_tile(bi,bj) = err_sum_tile(bi,bj) +
181         &       (ABS(v_streamice(i,j,bi,bj)%d-
182         &              v_new_SI(i,j,bi,bj)%d))**conj_norm
183               ENDIF
184              ENDDO
185             ENDDO
186            ENDDO
187           ENDDO
188    
189           CALL GLOBAL_SUM_TILE_RL( err_sum_tile, err_sum, myThid )
190    
191           err_max = err_sum ** (1./conj_norm)
192    
193           ENDIF
194    
195        end if        end if
196  #endif  #endif
197        end subroutine template        end subroutine template

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22