/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_vel_solve.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/streamice_vel_solve.F

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

revision 1.13 by dgoldberg, Sat Apr 6 17:43:41 2013 UTC revision 1.14 by dgoldberg, Wed Aug 27 19:29:14 2014 UTC
# Line 6  C $Name$ Line 6  C $Name$
6  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7    
8  CBOP  CBOP
9        SUBROUTINE STREAMICE_VEL_SOLVE( myThid )        SUBROUTINE STREAMICE_VEL_SOLVE( myThid, maxNLIter, maxCGiter )
10  C     /============================================================\  C     /============================================================\
11  C     | SUBROUTINE                                                 |    C     | SUBROUTINE                                                 |
12  C     | o                                                          |  C     | o                                                          |
13  C     |============================================================|  C     |============================================================|
14  C     |                                                            |  C     |                                                            |
# Line 21  C     === Global variables === Line 21  C     === Global variables ===
21  #include "PARAMS.h"  #include "PARAMS.h"
22  #include "STREAMICE.h"  #include "STREAMICE.h"
23  #include "STREAMICE_CG.h"  #include "STREAMICE_CG.h"
24  #ifdef ALLOW_PETSC  !#ifdef ALLOW_PETSC
25  #include "finclude/petsc.h"  !#include "finclude/petsc.h"
26  #endif  !#endif
27    
28  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
29  # include "tamc.h"  # include "tamc.h"
# Line 31  C     === Global variables === Line 31  C     === Global variables ===
31    
32  C     !INPUT/OUTPUT ARGUMENTS  C     !INPUT/OUTPUT ARGUMENTS
33        INTEGER myThid        INTEGER myThid
34          INTEGER maxNLIter
35          INTEGER maxCGIter
36    
37  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
38    
39  C     LOCAL VARIABLES  C     LOCAL VARIABLES
40          
41  !   real, dimension(:,:), pointer :: TAUDX, TAUDY, u_prev_iterate, v_prev_iterate, &  !   real, dimension(:,:), pointer :: TAUDX, TAUDY, u_prev_iterate, v_prev_iterate, &
42  !                         u_bdry_cont, v_bdry_cont, Au, Av, err_u, err_v, &  !                         u_bdry_cont, v_bdry_cont, Au, Av, err_u, err_v, &
43  !                         geolonq, geolatq, u_last, v_last, float_cond, H_node  !                         geolonq, geolatq, u_last, v_last, float_cond, H_node
# Line 44  C     LOCAL VARIABLES Line 46  C     LOCAL VARIABLES
46  !                         isdq, iedq, jsdq, jedq, isd, ied, jsd, jed, isumstart, jsumstart, nodefloat, nsub  !                         isdq, iedq, jsdq, jedq, isd, ied, jsd, jed, isumstart, jsumstart, nodefloat, nsub
47  !   real                     :: err_max, err_tempu, err_tempv, err_init, area, max_vel, tempu, tempv, rhoi, rhow  !   real                     :: err_max, err_tempu, err_tempv, err_init, area, max_vel, tempu, tempv, rhoi, rhow
48    
49        INTEGER conv_flag, i, j, k, l, iter, cg_iters, bi, bj        INTEGER i, j, k, l, iter, cg_iters, bi, bj
50        INTEGER iter_numconv        INTEGER iter_numconv
51        INTEGER ikey_nl        INTEGER ikey_nl, myThidTemp
52        _RL err_max, err_tempu, err_tempv, err_init, area, err_max_fp        _RL err_max, err_tempu, err_tempv, err_init, area, err_max_fp
53        _RL max_vel, tempu, tempv, err_lastchange, cgtol        _RL max_vel, tempu, tempv, err_lastchange, cgtol
54        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
55          LOGICAL CONVERGED
56  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
57        PetscErrorCode ierr  !      myThidTemp = myThid
58    !      call streamice_initialize_petsc (myThidTemp)
59  #endif  #endif
60  !       _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+Oly,nSx,nSy)  !       _RL taudx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
61  !       _RL taudy (1-OLx:sNx+OLx,1-OLy:sNy+Oly,nSx,nSy)  !       _RL taudy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
62    
63        IF (STREAMICE_ppm_driving_stress) THEN        IF (STREAMICE_ppm_driving_stress) THEN
64         CALL STREAMICE_DRIVING_STRESS_PPM (myThid)         CALL STREAMICE_DRIVING_STRESS_PPM (myThid)
# Line 62  C     LOCAL VARIABLES Line 66  C     LOCAL VARIABLES
66         CALL STREAMICE_DRIVING_STRESS (myThid)         CALL STREAMICE_DRIVING_STRESS (myThid)
67        ENDIF        ENDIF
68    
69    #ifdef ALLOW_AUTODIFF_TAMC
70    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
71    !$TAF STORE taudx_SI = comlev1, key=ikey_dynamics
72    !$TAF STORE taudy_SI = comlev1, key=ikey_dynamics
73    #endif
74    #endif
75    
76    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
77          _EXCH_XY_RL( taudx_SI , myThid )
78          _EXCH_XY_RL( taudy_SI , myThid )
79          CALL STREAMICE_FORCED_BUTTRESS (myThid)
80    #endif
81    
82          CALL TIMER_START ('STREAMICE_VEL_SOLVE',myThid)
83    
84    
85        cgtol = streamice_cg_tol        cgtol = streamice_cg_tol
86          CONVERGED = .false.
87          err_max = 0.
88          err_max_fp = 0.
89    
 !       CALL WRITE_FULLARRAY_RL ("taudy_SI",taudy_SI,1,0,0,1,0,myThid)  
90    
91        _EXCH_XY_RL ( taudx_SI , myThid )        _EXCH_XY_RL( taudx_SI , myThid )
92        _EXCH_XY_RL ( taudy_SI , myThid )        _EXCH_XY_RL( taudy_SI , myThid )
93    
 !       CALL WRITE_FULLARRAY_RL ("taudy_SI_2",taudy_SI,1,0,0,1,0,myThid)  
94    
95        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
96         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 102  C     LOCAL VARIABLES Line 123  C     LOCAL VARIABLES
123  !$TAF STORE visc_streamice_full = comlev1, key=ikey_dynamics  !$TAF STORE visc_streamice_full = comlev1, key=ikey_dynamics
124  #endif  #endif
125    
126        _EXCH_XY_RL ( tau_beta_eff_streamice , myThid )        _EXCH_XY_RL( tau_beta_eff_streamice , myThid )
127        _EXCH_XY_RL ( visc_streamice , myThid )        _EXCH_XY_RL( visc_streamice , myThid )
128    
       DO bj = myByLo(myThid), myByHi(myThid)  
        DO bi = myBxLo(myThid), myBxHi(myThid)  
         DO j=1,sNy  
          DO i=1,sNx  
           Au_SI (i,j,bi,bj) = 0. _d 0  
           Av_SI (i,j,bi,bj) = 0. _d 0  
           ubd_SI (i,j,bi,bj) = 0. _d 0  
           vbd_SI (i,j,bi,bj) = 0. _d 0  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
129    
130          if (STREAMICE_chkresidconvergence) then
131    
132        CALL STREAMICE_CG_BOUND_VALS( myThid,              CALL STREAMICE_GET_VEL_RESID_ERR ( err_init, myThid )
      O    ubd_SI,  
      O    vbd_SI)  
         
   
 !      CALL WRITE_FLD_XY_RL("u_bound_cont","",ubd_SI,0,myThid)  
 !      CALL WRITE_FLD_XY_RL("v_bound_cont","",vbd_SI,0,myThid)  
 !      CALL WRITE_FLD_XY_RL("taudx_u","",taudx_SI,0,myThid)  
 !      CALL WRITE_FLD_XY_RL("taudx_v","",taudy_SI,0,myThid)  
133    
134  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
 !$TAF STORE U_streamice = comlev1, key=ikey_dynamics  
 !$TAF STORE V_streamice = comlev1, key=ikey_dynamics  
 #endif  
   
       CALL STREAMICE_CG_ACTION( myThid,  
      O    Au_SI,  
      O    Av_SI,  
      I    U_streamice,  
      I    V_streamice,  
      I    0, sNx+1, 0, sNy+1 )  
   
   
   
       err_init = 0. _d 0  
   
       DO bj = myByLo(myThid), myByHi(myThid)  
        DO bi = myBxLo(myThid), myBxHi(myThid)  
 #ifdef ALLOW_AUTODIFF_TAMC  
 !$TAF STORE err_init = comlev1, key=ikey_dynamics  
 #endif  
         DO j=1,sNy  
          DO i=1,sNx  
           err_tempu = 0. _d 0  
           err_tempv = 0. _d 0  
           IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN  
            err_tempu =  
      &      ABS (Au_SI(i,j,bi,bj)+0*ubd_SI(i,j,bi,bj) -  
      &           taudx_SI(i,j,bi,bj))  
 !            print *, "err_temp_u", err_tempu  
           ENDIF  
           IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN  
            err_tempv = MAX( err_tempu,  
      &      ABS (Av_SI(i,j,bi,bj)+0*vbd_SI(i,j,bi,bj) -  
      &           taudy_SI(i,j,bi,bj)))  
           ENDIF  
           IF (err_tempv .ge. err_init) THEN  
             err_init = err_tempv  
           ENDIF  
          ENDDO  
         ENDDO  
        ENDDO  
       ENDDO  
 #ifdef ALLOW_AUTODIFF_TAMC  
135  !$TAF STORE err_init = comlev1, key=ikey_dynamics  !$TAF STORE err_init = comlev1, key=ikey_dynamics
136  #endif  #endif
137    
138        CALL GLOBAL_MAX_R8 (err_init, myThid)         WRITE(msgBuf,'(A,E15.7)') 'initial nonlinear resid (error): ',
   
       WRITE(msgBuf,'(A,E15.7)') 'initial nonlinear resid (error): ',  
139       &                       err_init       &                       err_init
140        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
141       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
142    
143          endif !STREAMICE_chkresidconvergence
144    
145    
146        iter_numconv = 0        iter_numconv = 0
147        err_max = err_init        err_max = err_init
# Line 191  C     LOCAL VARIABLES Line 150  C     LOCAL VARIABLES
150    
151  C START NL ITER. LOOP  C START NL ITER. LOOP
152  C-------------------------------------------------------------------  C-------------------------------------------------------------------
 #ifdef ALLOW_PETSC  
       call petscInitialize(PETSC_NULL_CHARACTER,ierr)  
 #endif  
153    
154        DO iter=1,streamice_max_nl_iter        DO iter=1,maxNLIter
155    
156  C     To avoid using "exit", loop goes through all iterations  C     To avoid using "exit", loop goes through all iterations
157  C       but after convergence loop does nothing  C       but after convergence loop does nothing
158    
159  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 226  C       but after convergence loop does Line 182  C       but after convergence loop does
182  !$TAF STORE zv_old_si = comlev1_stream_nl, key=ikey_nl  !$TAF STORE zv_old_si = comlev1_stream_nl, key=ikey_nl
183  #endif  #endif
184    
185         IF ((err_max .GT. streamice_nonlin_tol * err_init) .and.  !        IF ((err_max .GT. streamice_nonlin_tol * err_init) .and.
186       &     (err_max_fp .GT. streamice_nonlin_tol_fp)) THEN  !      &     (err_max_fp .GT. streamice_nonlin_tol_fp)) THEN
187    
188    #ifdef ALLOW_AUTODIFF_TAMC
189    !$TAF STORE CONVERGED = comlev1_stream_nl, key=ikey_nl
190    #endif
191          
192           IF (.not.CONVERGED) THEN
193    
194    
195         iter_numconv = iter_numconv + 1         iter_numconv = iter_numconv + 1
196    
# Line 251  C       but after convergence loop does Line 214  C       but after convergence loop does
214  !$TAF STORE zv_old_si = comlev1_stream_nl, key=ikey_nl  !$TAF STORE zv_old_si = comlev1_stream_nl, key=ikey_nl
215  #endif  #endif
216    
 #ifdef ALLOW_AUTODIFF_TAMC  
 !       DO bj = myByLo(myThid), myByHi(myThid)  
 !        DO bi = myBxLo(myThid), myBxHi(myThid)  
 !         DO j=1-OLy,sNy+OLy  
 !          DO i=1-OLx,sNx+OLx  
 !           U_streamice (i,j,bi,bj) = 0. _d 0  
 !           V_streamice (i,j,bi,bj) = 0. _d 0  
 !          ENDDO  
 !         ENDDO  
 !        ENDDO  
 !       ENDDO  
 #endif  
217    
218         CALL STREAMICE_CG_WRAPPER(         CALL STREAMICE_CG_WRAPPER(
219       &       U_streamice,       &       U_streamice,
220       &       V_streamice,       &       V_streamice,
221       &       taudx_SI,       &       taudx_SI,
222       &       taudy_SI,       &       taudy_SI,
223       &       cgtol,       &       cgtol,
224       &       cg_iters,       &       cg_iters,
225         &       maxCGIter,
226       &       myThid )       &       myThid )
227    
228  #ifdef STREAMICE_HYBRID_STRESS  #ifdef STREAMICE_HYBRID_STRESS
# Line 284  C       but after convergence loop does Line 236  C       but after convergence loop does
236          CALL STREAMICE_TAUB (myThid)          CALL STREAMICE_TAUB (myThid)
237  #endif  #endif
238    
239    !-----------------------------------------------------------------------------
240         WRITE(msgBuf,'(A,I5,A,I4,A)') 'streamice linear solve number',         WRITE(msgBuf,'(A,I5,A,I4,A)') 'streamice linear solve number',
241       &                       iter, " ",       &                       iter, " ",
242       &                       cg_iters,       &                       cg_iters,
243       &                       ' iterations '       &                       ' iterations '
244          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
245       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
246    !-----------------------------------------------------------------------------
247    
248  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
249  !$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl  !$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl
# Line 307  C       but after convergence loop does Line 261  C       but after convergence loop does
261         CALL STREAMICE_VISC_BETA ( myThid )         CALL STREAMICE_VISC_BETA ( myThid )
262  #endif  #endif
263    
   
 #ifdef ALLOW_AUTODIFF_TAMC  
 !$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl  
 !$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl  
 #endif  
264    
265         _EXCH_XY_RL ( tau_beta_eff_streamice , myThid )        _EXCH_XY_RL( tau_beta_eff_streamice , myThid )
266         _EXCH_XY_RL ( visc_streamice , myThid )        _EXCH_XY_RL( visc_streamice , myThid )
267    
268         DO bj = myByLo(myThid), myByHi(myThid)  !----------------------CONVERGENCE TESTS-------------------------------
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1,sNy  
           DO i=1,sNx  
            Au_SI (i,j,bi,bj) = 0. _d 0  
            Av_SI (i,j,bi,bj) = 0. _d 0  
            ubd_SI (i,j,bi,bj) = 0. _d 0  
            vbd_SI (i,j,bi,bj) = 0. _d 0  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
269    
270         CALL STREAMICE_CG_BOUND_VALS( myThid,            if (STREAMICE_chkresidconvergence) then
      O    ubd_SI,  
      O    vbd_SI)  
271    
272  #ifdef ALLOW_AUTODIFF_TAMC          CALL STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid )
 !$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl  
 !$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl  
 #endif  
273    
274         CALL STREAMICE_CG_ACTION( myThid,         WRITE(msgBuf,'(A,E15.7)') 'err/err_init',
275       O    Au_SI,       &                       err_max/err_init
276       O    Av_SI,         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
277       I    U_streamice,       &                    SQUEEZE_RIGHT , 1)
      I    V_streamice,  
      I    0, sNx+1, 0, sNy+1 )  
   
       if (iter .eq. streamice_max_nl_iter) then  
       CALL WRITE_FLD_XY_RL("u_bound_cont_A","",ubd_SI,0,myThid)  
       CALL WRITE_FLD_XY_RL("v_bound_cont_A","",vbd_SI,0,myThid)  
       CALL WRITE_FLD_XY_RL("u_bound_cont_B","",Au_SI,0,myThid)  
       CALL WRITE_FLD_XY_RL("v_bound_cont_B","",Av_SI,0,myThid)  
       endif  
278    
279  #ifdef ALLOW_AUTODIFF_TAMC         IF (err_max .LE. streamice_nonlin_tol * err_init) THEN
280  !$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl          CONVERGED = .true.
281  !$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl         ENDIF
 #endif  
282    
        err_max = 0. _d 0  
        err_max_fp = 0. _d 0  
283    
284  #ifdef ALLOW_AUTODIFF_TAMC        endif
 !$TAF STORE err_max = comlev1_stream_nl, key=ikey_nl  
 #endif  
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
 #ifdef ALLOW_AUTODIFF_TAMC  
 !$TAF STORE err_max = comlev1_stream_nl, key=ikey_nl  
 #endif  
          DO j=1,sNy  
           DO i=1,sNx  
            err_tempu = 0. _d 0  
            err_tempv = 0. _d 0  
            IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN  
             err_tempu =  
      &       ABS (Au_SI(i,j,bi,bj)+0*ubd_SI(i,j,bi,bj) -  
      &            taudx_SI(i,j,bi,bj))  
            ENDIF  
            IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN  
             err_tempv = MAX( err_tempu,  
      &       ABS (Av_SI(i,j,bi,bj)+0*vbd_SI(i,j,bi,bj) -  
      &            taudy_SI(i,j,bi,bj)))  
            ENDIF  
 !           if (err_tempu.ge.1.e2.or.err_tempv.ge.1.e2) THEN  
 !            print *, "FOUND MAX ", i,j,err_tempu,err_tempv,  
 !     &      ubd_SI(i,j,bi,bj),vbd_SI(i,j,bi,bj)  
 !           endif  
            IF (err_tempv .ge. err_max) THEN  
             err_max = err_tempv  
            ENDIF  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
285    
        CALL GLOBAL_MAX_R8 (err_max, myThid)  
286    
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1,sNy  
           DO i=1,sNx  
            err_tempu = 0. _d 0  
            err_tempv = 0. _d 0  
            IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN  
             err_tempu =  
      &       ABS (U_streamice(i,j,bi,bj)-u_old_SI(i,j,bi,bj))  
            ENDIF  
            IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN  
             err_tempv = MAX( err_tempu,  
      &       ABS (V_streamice(i,j,bi,bj)-v_old_SI(i,j,bi,bj)))  
            ENDIF  
            IF (err_tempv .ge. err_max_fp) err_max_fp = err_tempv  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
287    
288         CALL GLOBAL_MAX_R8 (err_max_fp, myThid)        if (STREAMICE_chkfixedptconvergence) then
289         WRITE(msgBuf,'(A,E15.7)') '||x_i-x_{i-1}||_inf',  
290       &                       err_max_fp          CALL STREAMICE_GET_VEL_FP_ERR ( err_max_fp, myThid )
        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,  
      &                    SQUEEZE_RIGHT , 1)  
291    
292         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
293          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 433  C       but after convergence loop does Line 300  C       but after convergence loop does
300          ENDDO          ENDDO
301         ENDDO         ENDDO
302    
303         WRITE(msgBuf,'(A,E15.7)') 'err/err_init',         WRITE(msgBuf,'(A,1PE22.14)') 'STREAMICE_FP_ERROR =',
304       &                       err_max/err_init       &                       err_max_fp
305         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
306       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
307    
308           IF (err_max_fp .LE. streamice_nonlin_tol_fp) THEN
309            CONVERGED = .true.
310           ENDIF
311    
312          endif
313    
314    
315    
316    
317    !----------------------END CONVERGENCE TESTS-------------------------------
318    
319    
320    
321    
322         IF (err_max<err_lastchange*1.e-2 .and.         IF (err_max<err_lastchange*1.e-2 .and.
323       &   STREAMICE_lower_cg_tol) THEN       &   STREAMICE_lower_cg_tol) THEN
324           cgtol = cgtol * 5.e-2           cgtol = cgtol * 5.e-2
# Line 453  C       but after convergence loop does Line 334  C       but after convergence loop does
334        ENDDO        ENDDO
335    
336  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
337        call PetscFinalize(ierr)  !      call streamice_finalize_petsc (myThidTemp)
338    !      call streamice_finalize_petsc (myThid)
339  #endif  #endif
340    
341  C END NL ITER. LOOP  C END NL ITER. LOOP
# Line 471  C--------------------------------------- Line 353  C---------------------------------------
353       &                     SQUEEZE_RIGHT , 1)       &                     SQUEEZE_RIGHT , 1)
354        endif        endif
355    
356        _EXCH_XY_RL (U_streamice, myThid)        _EXCH_XY_RL(U_streamice, myThid)
357        _EXCH_XY_RL (V_streamice, myThid)        _EXCH_XY_RL(V_streamice, myThid)
358  !      CALL WRITE_FLD_XY_RL("taubx","",streamice_taubx,0,myThid)  
359  !      CALL WRITE_FLD_XY_RL("tauby","",streamice_tauby,0,myThid)  
360          CALL TIMER_STOP ('STREAMICE_VEL_SOLVE',myThid)
361    
362  #endif  #endif
363        RETURN        RETURN

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22