23 |
|
|
24 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
25 |
# include "tamc.h" |
# include "tamc.h" |
26 |
#endif ALLOW_AUTODIFF_TAMC |
#endif |
27 |
|
|
28 |
#ifdef SEAICE_EXTERNAL_FORCING |
#ifdef SEAICE_EXTERNAL_FORCING |
29 |
#include "SEAICE_FFIELDS.h" |
#include "SEAICE_FFIELDS.h" |
30 |
#endif SEAICE_EXTERNAL_FORCING |
#endif |
31 |
|
|
32 |
C === Routine arguments === |
C === Routine arguments === |
33 |
C myTime - Simulation time |
C myTime - Simulation time |
52 |
_EXCH_XY_R8( vwind, myThid ) |
_EXCH_XY_R8( vwind, myThid ) |
53 |
_EXCH_XY_R8( atemp, myThid ) |
_EXCH_XY_R8( atemp, myThid ) |
54 |
_EXCH_XY_R8( aqh, myThid ) |
_EXCH_XY_R8( aqh, myThid ) |
55 |
_EXCH_XY_R8( lwflux, myThid ) |
_EXCH_XY_R8( lwdown, myThid ) |
56 |
|
_EXCH_XY_R8( swdown, mythid ) |
57 |
_EXCH_XY_R8( precip, myThid ) |
_EXCH_XY_R8( precip, myThid ) |
58 |
_EXCH_XY_R8( evap, myThid ) |
_EXCH_XY_R8( evap, myThid ) |
59 |
_EXCH_XY_R8( runoff, myThid ) |
_EXCH_XY_R8( runoff, myThid ) |
60 |
#ifndef ALLOW_KPP |
#else /* SEAICE_EXTERNAL_FORCING */ |
|
_EXCH_XY_R8( swflux, mythid ) |
|
|
#endif ALLOW_KPP |
|
|
#else SEAICE_EXTERNAL_FORCING |
|
61 |
C-- Load atmospheric state and runoff. |
C-- Load atmospheric state and runoff. |
62 |
CALL SEAICE_GET_FORCING ( myTime, myIter, myThid ) |
CALL SEAICE_GET_FORCING ( myTime, myIter, myThid ) |
63 |
#endif SEAICE_EXTERNAL_FORCING |
#endif /* SEAICE_EXTERNAL_FORCING */ |
64 |
|
|
65 |
C-- Third level model velocity is used as proxy for geostrophic velocity |
C-- Third level model velocity is used as proxy for geostrophic velocity |
66 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
77 |
c & ,GWATX(I,J,bi,bj),GWATY(I,J,bi,bj) |
c & ,GWATX(I,J,bi,bj),GWATY(I,J,bi,bj) |
78 |
c & ,uVel(i+1,j,3,bi,bj),uVel(i+1,j+1,3,bi,bj) |
c & ,uVel(i+1,j,3,bi,bj),uVel(i+1,j+1,3,bi,bj) |
79 |
c & ,vVel(i,j+1,3,bi,bj),vVel(i+1,j+1,3,bi,bj) |
c & ,vVel(i,j+1,3,bi,bj),vVel(i+1,j+1,3,bi,bj) |
80 |
#endif SEAICE_DEBUG |
#endif |
81 |
ENDDO |
ENDDO |
82 |
ENDDO |
ENDDO |
83 |
ENDDO |
ENDDO |
96 |
|
|
97 |
C-- Update overlap regions for a bunch of stuff |
C-- Update overlap regions for a bunch of stuff |
98 |
_BARRIER |
_BARRIER |
99 |
CALL EXCH_RL( HEFF, OLx, OLx, OLy, OLy, 3, OLx, OLy, |
CALL SEAICE_EXCH( HEFF, myThid ) |
100 |
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
CALL SEAICE_EXCH( AREA, myThid ) |
|
CALL EXCH_RL( AREA, OLx, OLx, OLy, OLy, 3, OLx, OLy, |
|
|
I FORWARD_SIMULATION, EXCH_UPDATE_CORNERS, myThid ) |
|
101 |
_EXCH_XY_R4(fu , myThid ) |
_EXCH_XY_R4(fu , myThid ) |
102 |
_EXCH_XY_R4(fv , myThid ) |
_EXCH_XY_R4(fv , myThid ) |
103 |
_EXCH_XY_R4(EmPmR, myThid ) |
_EXCH_XY_R4(EmPmR, myThid ) |
105 |
_EXCH_XY_R4(surfaceTendencyTice, myThid ) |
_EXCH_XY_R4(surfaceTendencyTice, myThid ) |
106 |
#ifdef SHORTWAVE_HEATING |
#ifdef SHORTWAVE_HEATING |
107 |
_EXCH_XY_R4(Qsw , myThid ) |
_EXCH_XY_R4(Qsw , myThid ) |
108 |
#endif SHORTWAVE_HEATING |
#endif |
109 |
_EXCH_XYZ_R8(theta , myThid ) |
_EXCH_XYZ_R8(theta , myThid ) |
110 |
|
|
111 |
C-- Sea ice diagnostics. |
C-- Sea ice diagnostics. |
120 |
C--------------------------------------------------- |
C--------------------------------------------------- |
121 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
122 |
CRG CADJ store UICE,VICE,AREA,HEFF,fu,fv,EmPmR,Qnet,Qsw = comlev1_bibj |
CRG CADJ store UICE,VICE,AREA,HEFF,fu,fv,EmPmR,Qnet,Qsw = comlev1_bibj |
123 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif |
124 |
|
|
125 |
C-- Call sea-ice cost function routine |
C-- Call sea-ice cost function routine |
126 |
CRG CALL SEAICE_COST( myTime, myIter, myThid ) |
CRG CALL SEAICE_COST( myTime, myIter, myThid ) |
127 |
|
|
128 |
#endif ALLOW_SEAICE |
#endif /* ALLOW_SEAICE */ |
129 |
|
|
130 |
RETURN |
RETURN |
131 |
END |
END |