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

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

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

revision 1.2 by mlosch, Mon Mar 6 13:27:40 2006 UTC revision 1.3 by mlosch, Mon Mar 6 20:53:25 2006 UTC
# Line 37  C     === Local variables === Line 37  C     === Local variables ===
37  C     i,j,bi,bj - Loop counters  C     i,j,bi,bj - Loop counters
38    
39        INTEGER i, j, bi, bj        INTEGER i, j, bi, bj
40        _RL  SINWIN, COSWIN, SINWAT, COSWAT        _RL  SINWAT, COSWAT
 #ifdef SEAICE_TEST_ICE_STRESS_1  
41        _RL  fuIce, fvIce        _RL  fuIce, fvIce
 #endif  
42    
43  c     introduce turning angle (default is zero)  c     introduce turning angle (default is zero)
       SINWIN=SIN(SEAICE_airTurnAngle*deg2rad)  
       COSWIN=COS(SEAICE_airTurnAngle*deg2rad)  
44        SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad)        SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad)
45        COSWAT=COS(SEAICE_waterTurnAngle*deg2rad)        COSWAT=COS(SEAICE_waterTurnAngle*deg2rad)
46    
 CML#ifdef SEAICE_ORIGINAL_BAD_ICE_STRESS  
 CMLC--   Following formulation is problematic and is no longer used.  
 CML#ifdef SEAICE_ALLOW_DYNAMICS  
 CML      IF ( SEAICEuseDYNAMICS ) THEN  
 CMLC--   Compute ice-affected wind stress  
 CML       DO bj=myByLo(myThid),myByHi(myThid)  
 CML        DO bi=myBxLo(myThid),myBxHi(myThid)  
 CML         DO j=1,sNy  
 CML          DO i=1,sNx  
 CML           WINDX(I,J,bi,bj)=DWATN(I,J,bi,bj)  
 CML     &          *(COSWAT*(GWATX(I,J,bi,bj)-UICE(I,J,1,bi,bj))  
 CML     &          -SINWAT*(GWATY(I,J,bi,bj)-VICEC(I,J,bi,bj)))  
 CML           WINDY(I,J,bi,bj)=DWATN(I,J,bi,bj)  
 CML     &          *(SINWAT*(GWATX(I,J,bi,bj)-UICEC(I,J,bi,bj))  
 CML     &          +COSWAT*(GWATY(I,J,bi,bj)-VICE(I,J,1,bi,bj)))  
 CML           WINDX(I,J,bi,bj)=WINDX(I,J,bi,bj)-( COR_ICE(I,J,bi,bj)  
 CML     &          *GWATY(I,J,bi,bj)-COR_ICE(I,J,bi,bj)*VICEC(I,J,bi,bj))  
 CML           WINDY(I,J,bi,bj)=WINDY(I,J,bi,bj)-(-COR_ICE(I,J,bi,bj)  
 CML     &          *GWATX(I,J,bi,bj)+COR_ICE(I,J,bi,bj)*UICEC(I,J,bi,bj))  
 CML           WINDX(I,J,bi,bj)=WINDX(I,J,bi,bj)-(UICE(I,J,1,bi,bj)  
 CML     &          -UICE(I,J,3,bi,bj))*AMASS(I,J,bi,bj)/SEAICE_DT*TWO  
 CML           WINDY(I,J,bi,bj)=WINDY(I,J,bi,bj)-(VICE(I,J,1,bi,bj)  
 CML     &          -VICE(I,J,3,bi,bj))*AMASS(I,J,bi,bj)/SEAICE_DT*TWO  
 CML          ENDDO  
 CML         ENDDO  
 CML        ENDDO  
 CML       ENDDO  
 CML       DO bj=myByLo(myThid),myByHi(myThid)  
 CML        DO bi=myBxLo(myThid),myBxHi(myThid)  
 CML         DO j=1,sNy  
 CML          DO i=1,sNx  
 CML           WINDX(I,J,bi,bj)=-WINDX(I,J,bi,bj)  
 CML           WINDY(I,J,bi,bj)=-WINDY(I,J,bi,bj)  
 CML          ENDDO  
 CML         ENDDO  
 CML        ENDDO  
 CML       ENDDO  
 CML      ENDIF  
 CML#endif /*  SEAICE_ALLOW_DYNAMICS */  
 CML#endif /* SEAICE_ORIGINAL_BAD_ICE_STRESS */  
   
47  C--   Update overlap regions  C--   Update overlap regions
48        CALL EXCH_UV_XY_RL(WINDX, WINDY, .TRUE., myThid)        CALL EXCH_UV_XY_RL(WINDX, WINDY, .TRUE., myThid)
49    
50  #ifndef SEAICE_EXTERNAL_FLUXES  #ifndef SEAICE_EXTERNAL_FLUXES
51  C--   Interpolate wind stress (N/m^2) from South-West B-grid  C--   Interpolate wind stress (N/m^2) from C-points of C-grid
52  C     to South-West C-grid for forcing ocean model.  C     to U and V points of C-grid for forcing the ocean model.
53        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
54         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
55          DO j=1,sNy          DO j=1,sNy
56           DO i=1,sNx           DO i=1,sNx
57              fu(I,J,bi,bj)=WINDX(I,J,bi,bj)            fu(I,J,bi,bj)=0.5*(WINDX(I,J,bi,bj) + WINDX(I-1,J,bi,bj))
58              fv(I,J,bi,bj)=WINDY(I,J,bi,bj)            fv(I,J,bi,bj)=0.5*(WINDY(I,J,bi,bj) + WINDY(I,J-1,bi,bj))
59           ENDDO           ENDDO
60          ENDDO          ENDDO
61         ENDDO         ENDDO
62        ENDDO        ENDDO
       CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid)  
63  #endif /* ifndef SEAICE_EXTERNAL_FLUXES */  #endif /* ifndef SEAICE_EXTERNAL_FLUXES */
64    
 #ifdef SEAICE_TEST_ICE_STRESS_1  
65  C--   Compute ice-affected wind stress (interpolate to U/V-points)  C--   Compute ice-affected wind stress (interpolate to U/V-points)
66        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
67         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 141  C--   Compute ice-affected wind stress ( Line 94  C--   Compute ice-affected wind stress (
94         ENDDO         ENDDO
95        ENDDO        ENDDO
96        CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid)        CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid)
97  #endif /* SEAICE_TEST_ICE_STRESS_1 */  
98  #endif /* not SEAICE_CGRID */  #endif /* not SEAICE_CGRID */
99    
100        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22