/[MITgcm]/MITgcm/pkg/seaice/dynsolver.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/dynsolver.F

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

revision 1.8 by dimitri, Fri May 23 20:19:16 2003 UTC revision 1.9 by heimbach, Tue Jun 24 16:09:37 2003 UTC
# Line 197  C--   NOW SET UP ICE PRESSURE AND VISCOS Line 197  C--   NOW SET UP ICE PRESSURE AND VISCOS
197        ENDDO        ENDDO
198    
199  #ifdef SEAICE_ALLOW_DYNAMICS  #ifdef SEAICE_ALLOW_DYNAMICS
200    
201        IF ( SEAICEuseDYNAMICS ) THEN        IF ( SEAICEuseDYNAMICS ) THEN
202    
203    #ifdef ALLOW_AUTODIFF_TAMC
204    CADJ STORE uice = comlev1, key=ikey_dynamics
205    CADJ STORE vice = comlev1, key=ikey_dynamics
206    #endif /* ALLOW_AUTODIFF_TAMC */
207    
208  C DO PSEUDO-TIMESTEPS TO OBTAIN AN ACCURATE VISCOUS-PLASTIC SOLUTION  C DO PSEUDO-TIMESTEPS TO OBTAIN AN ACCURATE VISCOUS-PLASTIC SOLUTION
209  C 1 PSEUDO-TIMESTEP IS SUGGESTED FOR LSR SLOVER  C 1 PSEUDO-TIMESTEP IS SUGGESTED FOR LSR SLOVER
210  C A RANGE OF 5-200 PSEUDO-TIMESTEPS IS SUGGESTED FOR ADI SLOVER  C A RANGE OF 5-200 PSEUDO-TIMESTEPS IS SUGGESTED FOR ADI SLOVER
# Line 211  crg what about DWAIN,DRAGS,DRAGA,ETA,ZET Line 217  crg what about DWAIN,DRAGS,DRAGA,ETA,ZET
217    
218  crg later c$taf loop = iteration uice,vice  crg later c$taf loop = iteration uice,vice
219    
220    #ifndef ALLOW_AUTODIFF_TAMC
221        DO 5000 KII=1,NPSEUDO        DO 5000 KII=1,NPSEUDO
222    #else
223          IF ( NPSEUDO .GT. 1 ) THEN
224           STOP 'S/R DYNSOLVER: NPSEUDO NEEDS TO BE = 1 FOR ADJOINT'
225          ENDIF
226    #endif /* ALLOW_AUTODIFF_TAMC */
227    
228  cdm c$taf store uice,vice = comlev1_seaice_ds,  cdm c$taf store uice,vice = comlev1_seaice_ds,
229  cdm c$taf&                key = kii + (ikey_dynamics-1)*NPSEUDO  cdm c$taf&                key = kii + (ikey_dynamics-1)*NPSEUDO
   
230  C NOW DO PREDICTOR TIME STEP  C NOW DO PREDICTOR TIME STEP
231        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
232         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 319  C NOW CALCULATE PRESSURE FORCE AND ADD T Line 330  C NOW CALCULATE PRESSURE FORCE AND ADD T
330  C NOW LSR SCHEME (ZHANG-J/HIBLER 1997)  C NOW LSR SCHEME (ZHANG-J/HIBLER 1997)
331  C OR  ADI SCHEME (ZHANG-J/ROTHROCK 1999)  C OR  ADI SCHEME (ZHANG-J/ROTHROCK 1999)
332  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
333        CALL LSR( myThid )  CADJ STORE uice = comlev1, key=ikey_dynamics
334    CADJ STORE vice = comlev1, key=ikey_dynamics
335          CALL LSR( 1, myThid )
336    CADJ STORE uice = comlev1, key=ikey_dynamics
337    CADJ STORE vice = comlev1, key=ikey_dynamics
338  #else /* ALLOW_AUTODIFF_TAMC */  #else /* ALLOW_AUTODIFF_TAMC */
339        IF ( SEAICEuseADI ) THEN        IF ( SEAICEuseADI ) THEN
340           CALL ADI( myThid )           CALL ADI( myThid )
341        ELSE        ELSE
342           CALL LSR( myThid )           CALL LSR( 1, myThid )
343        ENDIF        ENDIF
344  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
345    
# Line 445  C GET READY FOR SECOND CALL OF ADI Line 460  C GET READY FOR SECOND CALL OF ADI
460  C NOW LSR SCHEME (ZHANG-J/HIBLER 1997)  C NOW LSR SCHEME (ZHANG-J/HIBLER 1997)
461  C OR  ADI SCHEME (ZHANG-J/ROTHROCK 1999)  C OR  ADI SCHEME (ZHANG-J/ROTHROCK 1999)
462  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
463        CALL LSR( myThid )        CALL LSR( 2, myThid )
464  #else /* ALLOW_AUTODIFF_TAMC */  #else /* ALLOW_AUTODIFF_TAMC */
465        IF ( SEAICEuseADI ) THEN        IF ( SEAICEuseADI ) THEN
466           CALL ADI( myThid )           CALL ADI( myThid )
467        ELSE        ELSE
468           CALL LSR( myThid )           CALL LSR( 2, myThid )
469        ENDIF        ENDIF
470  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
471    
472    #ifndef ALLOW_AUTODIFF_TAMC
473  5000  CONTINUE  5000  CONTINUE
474    #endif /* ALLOW_AUTODIFF_TAMC */
475    
476  cdm c$taf store uice,vice = comlev1, key=ikey_dynamics  cdm c$taf store uice,vice = comlev1, key=ikey_dynamics
477    
# Line 465  C Calculate ocean surface stress Line 482  C Calculate ocean surface stress
482        CALL OSTRES ( DWATN, COR_ICE, myThid )        CALL OSTRES ( DWATN, COR_ICE, myThid )
483    
484  #ifdef SEAICE_ALLOW_DYNAMICS  #ifdef SEAICE_ALLOW_DYNAMICS
485    
486        IF ( SEAICEuseDYNAMICS ) THEN        IF ( SEAICEuseDYNAMICS ) THEN
487    
488    #ifdef ALLOW_AUTODIFF_TAMC
489    CADJ STORE uice = comlev1, key=ikey_dynamics
490    CADJ STORE vice = comlev1, key=ikey_dynamics
491    #endif /* ALLOW_AUTODIFF_TAMC */
492  c Put a cap on ice velocity  c Put a cap on ice velocity
493  c limit velocity to 0.40 m s-1 to avoid potential CFL violations  c limit velocity to 0.40 m s-1 to avoid potential CFL violations
494  c in open water areas (drift of zero thickness ice)  c in open water areas (drift of zero thickness ice)
# Line 484  c     &     ,vice(i,j,1,bi,bj) Line 506  c     &     ,vice(i,j,1,bi,bj)
506  #endif /* SEAICE_DEBUG */  #endif /* SEAICE_DEBUG */
507            UICE(i,j,1,bi,bj)=min(UICE(i,j,1,bi,bj),0.40 _d +00)            UICE(i,j,1,bi,bj)=min(UICE(i,j,1,bi,bj),0.40 _d +00)
508            VICE(i,j,1,bi,bj)=min(VICE(i,j,1,bi,bj),0.40 _d +00)            VICE(i,j,1,bi,bj)=min(VICE(i,j,1,bi,bj),0.40 _d +00)
509             ENDDO
510            ENDDO
511           ENDDO
512          ENDDO
513    #ifdef ALLOW_AUTODIFF_TAMC
514    CADJ STORE uice = comlev1, key=ikey_dynamics
515    CADJ STORE vice = comlev1, key=ikey_dynamics
516    #endif /* ALLOW_AUTODIFF_TAMC */
517          DO bj=myByLo(myThid),myByHi(myThid)
518           DO bi=myBxLo(myThid),myBxHi(myThid)
519            DO j=1-OLy,sNy+OLy
520             DO i=1-OLx,sNx+OLx
521            UICE(i,j,1,bi,bj)=max(UICE(i,j,1,bi,bj),-0.40 _d +00)            UICE(i,j,1,bi,bj)=max(UICE(i,j,1,bi,bj),-0.40 _d +00)
522            VICE(i,j,1,bi,bj)=max(VICE(i,j,1,bi,bj),-0.40 _d +00)            VICE(i,j,1,bi,bj)=max(VICE(i,j,1,bi,bj),-0.40 _d +00)
523           ENDDO           ENDDO

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22