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) |
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 |