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

Diff of /MITgcm/tools/OAD_support/ad_template.streamice_vel_phistage.F

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

revision 1.2 by dgoldberg, Mon Mar 2 18:16:02 2015 UTC revision 1.3 by dgoldberg, Mon Mar 23 14:08:18 2015 UTC
# Line 14  Line 14 
14    
15        integer iaddr        integer iaddr
16        external iaddr        external iaddr
       _RL err_max  
17  !<------------------Begin user declarations ---------------------->!  !<------------------Begin user declarations ---------------------->!
18  ! Insert declarations of dummy variables for calling adjoint computation  ! Insert declarations of dummy variables for calling adjoint computation
19  ! without side effects, and storing adjoint variable iterates  ! without side effects, and storing adjoint variable iterates
# Line 49  Line 48 
48        IF(ISINLOOP .eq. 0) THEN        IF(ISINLOOP .eq. 0) THEN
49          CONVERGED = .FALSE.          CONVERGED = .FALSE.
50          ADJ_CONVERGED = .FALSE.          ADJ_CONVERGED = .FALSE.
51          ERR_LAST_CHANGE = 10.          !ERR_LAST_CHANGE = 10.
52        end if        end if
53        IF(ISINLOOP .ne. 0) THEN        IF(ISINLOOP .ne. 0) THEN
54          IF(.NOT. CONVERGED) THEN          IF(.NOT. CONVERGED) THEN
55            NL_ITER = (NL_ITER + 1)            NL_ITER = (NL_ITER + 1)
56            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
57       +,CG_ITERS)       +,CG_ITERS,err_max)
58    
59            WRITE(MSGBUF,'(A,I5,A,I4,A)') 'streamice linear solve number',            WRITE(MSGBUF,'(A,I5,A,I4,A)') 'streamice linear solve number',
60       +NL_ITER,' ',CG_ITERS,' iterations '       +NL_ITER,' ',CG_ITERS,' iterations '
# Line 66  Line 65 
65    
66            if (STREAMICE_chkresidconvergence) then            if (STREAMICE_chkresidconvergence) then
67    
            CALL openad_STREAMICE_GET_VEL_RESID_ERR_OAD (err_max,myThid)  
68    
69             WRITE(msgBuf,'(A,E15.7)') 'err/err_init',             WRITE(msgBuf,'(A,E15.7)') 'err/err_init',
70       &                       err_max/err_init       &                       err_max/err_init
# Line 88  Line 86 
86             ENDIF             ENDIF
87    
88            endif            endif
89              
90            if (STREAMICE_chkfixedptconvergence) then            if (STREAMICE_chkfixedptconvergence) then
91    
92             CALL openad_STREAMICE_GET_FP_ERR_OAD ( err_max_fp, myThid )             CALL openad_STREAMICE_GET_FP_ERR_OAD ( err_max_fp, myThid )
# Line 105  Line 103 
103    
104            endif            endif
105    
 !!!!!!!!!!!! end conv check  
106    
107            DO bj = myByLo(myThid), myByHi(myThid)            DO bj = myByLo(myThid), myByHi(myThid)
108             DO bi = myBxLo(myThid), myBxHi(myThid)             DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 126  Line 123 
123             ENDDO             ENDDO
124            ENDDO            ENDDO
125    
126    !!!!!!!!!!!! end conv check
127    
128    
129          end if                  end if        
130        end if        end if
131                
# Line 154  Line 154 
154            our_rev_mode%tape=.false.            our_rev_mode%tape=.false.
155            our_rev_mode%adjoint=.false.            our_rev_mode%adjoint=.false.
156            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
157       +,CG_ITERS)       +,CG_ITERS,err_max)
158    
159  !---- write out number of cg iters  !---- write out number of cg iters
160    
# Line 167  Line 167 
167                        
168            if (STREAMICE_chkresidconvergence) then            if (STREAMICE_chkresidconvergence) then
169    
            CALL openad_STREAMICE_GET_VEL_RESID_ERR_OAD (err_max,myThid)  
170    
171             WRITE(msgBuf,'(A,E15.7)') 'err/err_init',             WRITE(msgBuf,'(A,E15.7)') 'err/err_init',
172       &                       err_max/err_init       &                       err_max/err_init
# Line 205  Line 204 
204    
205            endif            endif
206    
 !--------conv check done  
   
207            DO bj = myByLo(myThid), myByHi(myThid)            DO bj = myByLo(myThid), myByHi(myThid)
208              DO bi = myBxLo(myThid), myBxHi(myThid)              DO bi = myBxLo(myThid), myBxHi(myThid)
209                DO j=1-OLy,sNy+OLy                DO j=1-OLy,sNy+OLy
# Line 227  Line 224 
224                ENDDO                ENDDO
225              ENDDO              ENDDO
226            ENDDO            ENDDO
227    
228    
229    
230    
231    
232    !--------conv check done
233    
234            if (converged .OR. nl_iter.eq.MAXNLITER) then            if (converged .OR. nl_iter.eq.MAXNLITER) then
235              !Run once in tape mode if this is the last time              !Run once in tape mode if this is the last time
236              our_rev_mode%plain=.false.              our_rev_mode%plain=.false.
237              our_rev_mode%tape=.true.              our_rev_mode%tape=.true.
238              our_rev_mode%adjoint=.false.              our_rev_mode%adjoint=.false.
239              CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CG              CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CG
240       +TOL,CG_ITERS)       +TOL,CG_ITERS,err_max)
241            end if            end if
242          end if          end if
243        end if        end if
244        if(isinloop.eq.2 ) then        if(isinloop.eq.2 ) then
245    
246          CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL          CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
247       +,CG_ITERS)       +,CG_ITERS,err_max)
248    
249          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
250            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 306  Line 310 
310          ENDDO          ENDDO
311    
312          CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL          CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
313       +,CG_ITERS)       +,CG_ITERS,err_max)
314    
315          DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1          DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1
316            DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1            DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1
# Line 449  Line 453 
453    
454    
455            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
456       +,CG_ITERS)       +,CG_ITERS,err_max)
457    
458            DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1            DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1
459              DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1              DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1
# Line 569  Line 573 
573    
574        if(isinloop.eq.0) then        if(isinloop.eq.0) then
575    
576            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL,CG_ITERS)            CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL
577         +,CG_ITERS,err_max)
578    
579            DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1            DO BJ = MYBYLO(MYTHID), MYBYHI(MYTHID), 1
580              DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1              DO BI = MYBXLO(MYTHID), MYBXHI(MYTHID), 1

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

  ViewVC Help
Powered by ViewVC 1.1.22