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

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

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

revision 1.1 by heimbach, Thu Mar 29 15:59:21 2012 UTC revision 1.10 by dgoldberg, Wed Oct 10 21:11:46 2012 UTC
# Line 67  c************************************** Line 67  c**************************************
67            zu_old_si(i,j,bi,bj) = 0. _d 0            zu_old_si(i,j,bi,bj) = 0. _d 0
68            zv_old_si(i,j,bi,bj) = 0. _d 0            zv_old_si(i,j,bi,bj) = 0. _d 0
69            h_after_uflux_si(i,j,bi,bj) = 0. _d 0            h_after_uflux_si(i,j,bi,bj) = 0. _d 0
70    #ifdef STREAMICE_HYBRID_STRESS
71              streamice_taubx (i,j,bi,bj) = 0. _d 0
72              streamice_tauby (i,j,bi,bj) = 0. _d 0
73    #endif
74           ENDDO           ENDDO
75          ENDDO          ENDDO
76         ENDDO         ENDDO
# Line 74  c************************************** Line 78  c**************************************
78    
79  #endif  #endif
80    
 !       PRINT *, "ICE STREAM TIMESTEP ", iLoop, "; ",  
 !      &  Time/86400/365, " years"  
   
 !       do while (time_step_remain .gt. 0. _d 0)  
 !  
 !        n_interm = n_interm + 1  
 !        Imin_ratio = 1.0e-16  
 !  
 !        DO bj = myByLo(myThid), myByHi(myThid)  
 !         DO bi = myBxLo(myThid), myBxHi(myThid)  
 !          DO j=1,sNy  
 !           DO i=1,sNx  
 !              
 !            local_u_max = 0  
 !            local_v_max = 0  
 !              
 !            if (STREAMICE_hmask (i,j,bi,bj) .eq. 1.0) then  
 !             do ki = 0,1  
 !              do kj = 0,1  
 !               local_u_max =  
 !      &         max (local_u_max, abs(U_streamice(i+ki,j+kj,bi,bj)))  
 !               local_v_max =  
 !      &         max (local_v_max, abs(V_streamice(i+ki,j+kj,bi,bj)))  
 !              enddo  
 !             enddo  
 !  
 !             Iratio = max (local_u_max/dxF(i,j,bi,bj) ,  
 !      &       local_v_max/dyF(i,j,bi,bj))  
 !             Imin_ratio = max (Imin_ratio, Iratio)  
 !            endif  
 !    
 !           enddo  
 !          enddo  
 !         enddo  
 !        enddo  
 !  
 !        CALL GLOBAL_MAX_R8 (Imin_ratio, myThid)  
 !        min_ratio = 1./(Imin_ratio+1.e-12)  
 !        time_step_int =  
 !      &  min(streamice_CFL_factor*min_ratio*(365*86400),  
 !      &   deltaT)  
 !          
 !        if (time_step_int .lt. min_time_step) then  
 !         WRITE(msgBuf,'(A,A,E9.2)') 'streamice solo_time_step:',  
 !      &                       ' abnormally small timestep ',  
 !      &                       streamice_CFL_factor*min_ratio*(365*86400)  
 !         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,  
 !      &                    SQUEEZE_RIGHT , 1)  
 !        endif  
 !          
 !        if (time_step_int .ge. time_step_remain) then  
 !         time_step_int = time_step_remain  
 !         time_step_remain = 0.0  
 !        else  
 !         time_step_remain = time_step_remain - time_step_int  
 !        endif  
   
         
   
       CALL STREAMICE_ADVECT_THICKNESS ( myThid, deltaT )  
81    
         
   
 !       if (time_step_int .gt. 1000) then  
82    
83        WRITE(msgBuf,'(A,I10.10,E9.2,A)')        WRITE(msgBuf,'(A,I10.10,E9.2,A)')
84       &  'streamice solo_time_step: nIter',       &  'streamice solo_time_step: nIter',
85       &  myIter, myTime/86400.0/365.0, 'seconds'       &  myIter, myTime/86400.0/365.0, 'seconds'
   
86        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
87       &                   SQUEEZE_RIGHT , 1)       &                   SQUEEZE_RIGHT , 1)
88    
89        CALL STREAMICE_VELMASK_UPD (myThid)        CALL STREAMICE_DUMP( mytime, myiter, myThid )
90    
91    ! NEW DIRECTIVES - DNG
92    !#ifdef ALLOW_AUTODIFF_TAMC
93    !CADJ STORE float_frac_streamice  = comlev1, key = ikey_dynamics,
94    !CADJ &     kind = isbyte
95    !CADJ STORE surf_el_streamice  = comlev1, key = ikey_dynamics,
96    !CADJ &     kind = isbyte
97    !CADJ STORE base_el_streamice  = comlev1, key = ikey_dynamics,
98    !CADJ &     kind = isbyte
99    !#endif
100    ! NEW DIRECTIVES - DNG
101    
102          if (myIter.eq.0) then
103        CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )        CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
104          endif
105          CALL STREAMICE_VELMASK_UPD (myThid)
106        CALL STREAMICE_VEL_SOLVE( myThid )        CALL STREAMICE_VEL_SOLVE( myThid )
107  !       endif        
108          if(.not.STREAMICE_diagnostic_only) THEN
109    
110                 CALL STREAMICE_ADVECT_THICKNESS ( myThid, deltaT )  
111    
112  !       enddo        endif
113    
114    ! CALL AT END INSTEAD OF BEGINNING - DNG
115          CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
116    
 !       modelEnd = myTime.EQ.endTime .OR. myIter.EQ.nEndIter  
117    
 ! #ifdef ALLOW_DIAGNOSTICS  
 !  
 ! ! this stuff was to replace what is in forward_step, but not  
 ! ! forward_step will be called  
 !    
 ! !       IF ( useDiagnostics ) THEN  
 ! !         CALL DIAGNOSTICS_SWITCH_ONOFF( myTime, myiter, myThid )  
 ! ! ! C--   State-variables diagnostics  
 ! ! !         CALL TIMER_START('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)  
 ! ! !         CALL DO_STATEVARS_DIAGS( myTime, 0, myIter, myThid )  
 ! ! !         CALL TIMER_STOP ('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)  
 ! !       ENDIF  
 !  
 !  
 !       IF ( useDiagnostics ) THEN  
 !       PRINT *, "CALLING FILL DIAGNOSTICS"  
 !        CALL DIAGNOSTICS_FILL(U_streamice,'SI_Uvel ',  
 !      &      0,1,0,1,1,myThid)  
 !        CALL DIAGNOSTICS_FILL(V_streamice,'SI_Vvel ',  
 !      &      0,1,0,1,1,myThid)  
 !        CALL DIAGNOSTICS_FILL(H_streamice,'SI_Thick',  
 !      &      0,1,0,1,1,myThid)  
 !        CALL DIAGNOSTICS_FILL(area_shelf_streamice,'SI_area ',  
 !      &      0,1,0,1,1,myThid)  
 !        CALL DIAGNOSTICS_FILL(float_frac_streamice,'SI_float',  
 !      &      0,1,0,1,1,myThid)  
 !  
 !       ENDIF  
 !  
 ! !       IF ( useDiagnostics ) THEN  
 ! !           CALL TIMER_START('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)  
 ! !           CALL DO_STATEVARS_DIAGS( myTime, 2, myIter, myThid )  
 ! !           CALL TIMER_STOP ('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)  
 ! !       ENDIF  
 !  
 ! #endif /* ALLOW_DIAGNOSTICS */  
   
 !       myIter = nIter0 + iLoop  
 !       myTime = startTime + deltaTClock * float(iLoop)  
 !  
 !       CALL TIMER_START('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)  
 !       CALL DO_THE_MODEL_IO( modelEnd, myTime, myIter, myThid )  
 !       CALL TIMER_STOP ('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)  
118    
119    
120  #endif  #endif

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22