23 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
24 |
#include "GRID.h" |
#include "GRID.h" |
25 |
#include "FFIELDS.h" |
#include "FFIELDS.h" |
26 |
|
#include "SEAICE_OPTIONS.h" |
27 |
|
#include "SEAICE_SIZE.h" |
28 |
|
#include "SEAICE.h" |
29 |
#ifdef ALLOW_EXF |
#ifdef ALLOW_EXF |
30 |
# include "EXF_OPTIONS.h" |
# include "EXF_OPTIONS.h" |
31 |
# include "EXF_FIELDS.h" |
# include "EXF_FIELDS.h" |
32 |
#endif |
#endif |
|
#ifdef ALLOW_SEAICE |
|
|
# include "SEAICE_OPTIONS.h" |
|
|
# include "SEAICE_SIZE.h" |
|
|
# include "SEAICE.h" |
|
|
#endif |
|
33 |
|
|
34 |
LOGICAL DIFFERENT_MULTIPLE |
LOGICAL DIFFERENT_MULTIPLE |
35 |
EXTERNAL DIFFERENT_MULTIPLE |
EXTERNAL DIFFERENT_MULTIPLE |
58 |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
Real*8 xfer_bc_tracer(2*(Nx+Ny)-4) |
59 |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
Real*8 xfer_bc_veloc(2*(Nx+Ny)-6) |
60 |
_RL local(1:sNx,1:sNy,nSx,nSy) |
_RL local(1:sNx,1:sNy,nSx,nSy) |
|
character*(10) itername |
|
|
|
|
|
COMMON /FFIELDS_tmp/ fu_tmp, fv_tmp, Qnet_tmp, Qsw_tmp, EmPmR_tmp |
|
|
_RS fu_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
|
_RS fv_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
|
_RS Qnet_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
|
_RS Qsw_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
|
_RS EmPmR_tmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
|
61 |
|
|
62 |
# ifdef CPL_DEBUG |
# ifdef CPL_DEBUG |
63 |
|
character*(10) itername |
64 |
write(itername,'(i10.10)') myIter |
write(itername,'(i10.10)') myIter |
65 |
# endif /* CPL_DEBUG */ |
# endif /* CPL_DEBUG */ |
66 |
|
|
195 |
|
|
196 |
ENDIF ! ( myTime .EQ. startTime ) |
ENDIF ! ( myTime .EQ. startTime ) |
197 |
|
|
198 |
|
C-- Apply ice open boundary conditions |
199 |
|
#ifdef ALLOW_OBCS |
200 |
|
IF ( useOBCS ) THEN |
201 |
|
CALL OBCS_APPLY_SEAICE( myThid ) |
202 |
|
CALL OBCS_APPLY_UVICE( uice, vice, myThid ) |
203 |
|
ENDIF |
204 |
|
#endif /* ALLOW_OBCS */ |
205 |
|
|
206 |
C Send ocean model time |
C Send ocean model time |
207 |
_BEGIN_MASTER( myThid ) |
_BEGIN_MASTER( myThid ) |
208 |
xfer_scalar = myTime |
xfer_scalar = myTime |
876 |
DO bi=1,nSx |
DO bi=1,nSx |
877 |
DO j=1,sNy |
DO j=1,sNy |
878 |
DO i=1,sNx |
DO i=1,sNx |
879 |
fu(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
fu(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
880 |
& (1.-AREA(i,j,bi,bj)) * fu_tmp(i,j,bi,bj) |
& (1.-AREA(i,j,bi,bj)) * fu (i,j,bi,bj) |
881 |
ENDDO |
ENDDO |
882 |
ENDDO |
ENDDO |
883 |
ENDDO |
ENDDO |
904 |
DO bi=1,nSx |
DO bi=1,nSx |
905 |
DO j=1,sNy |
DO j=1,sNy |
906 |
DO i=1,sNx |
DO i=1,sNx |
907 |
fv(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
fv(i,j,bi,bj) = AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
908 |
& (1.-AREA(i,j,bi,bj)) * fv_tmp(i,j,bi,bj) |
& (1.-AREA(i,j,bi,bj)) * fv (i,j,bi,bj) |
909 |
ENDDO |
ENDDO |
910 |
ENDDO |
ENDDO |
911 |
ENDDO |
ENDDO |
932 |
DO bi=1,nSx |
DO bi=1,nSx |
933 |
DO j=1,sNy |
DO j=1,sNy |
934 |
DO i=1,sNx |
DO i=1,sNx |
935 |
Qsw(i,j,bi,bj) = -AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
Qsw(i,j,bi,bj) = -AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
936 |
& (1.-AREA(i,j,bi,bj)) * Qsw_tmp(i,j,bi,bj) |
& (1.-AREA(i,j,bi,bj)) * Qsw(i,j,bi,bj) |
937 |
ENDDO |
ENDDO |
938 |
ENDDO |
ENDDO |
939 |
ENDDO |
ENDDO |
961 |
DO j=1,sNy |
DO j=1,sNy |
962 |
DO i=1,sNx |
DO i=1,sNx |
963 |
Qnet(i,j,bi,bj) = Qsw(i,j,bi,bj) - |
Qnet(i,j,bi,bj) = Qsw(i,j,bi,bj) - |
964 |
& AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
& AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
965 |
& (1.-AREA(i,j,bi,bj)) * Qnet_tmp(i,j,bi,bj) |
& (1.-AREA(i,j,bi,bj)) * Qnet(i,j,bi,bj) |
966 |
ENDDO |
ENDDO |
967 |
ENDDO |
ENDDO |
968 |
ENDDO |
ENDDO |
989 |
DO bi=1,nSx |
DO bi=1,nSx |
990 |
DO j=1,sNy |
DO j=1,sNy |
991 |
DO i=1,sNx |
DO i=1,sNx |
992 |
EmPmR(i,j,bi,bj) = - AREA(i,j,bi,bj) * local (i,j,bi,bj) + |
EmPmR(i,j,bi,bj) = - AREA(i,j,bi,bj) * local(i,j,bi,bj) + |
993 |
& ( 1. - AREA(i,j,bi,bj)) * EmPmR_tmp(i,j,bi,bj) |
& ( 1. - AREA(i,j,bi,bj)) * EmPmR(i,j,bi,bj) |
994 |
ENDDO |
ENDDO |
995 |
ENDDO |
ENDDO |
996 |
ENDDO |
ENDDO |