48 |
C number of surface interface layer |
C number of surface interface layer |
49 |
INTEGER kSurface |
INTEGER kSurface |
50 |
|
|
51 |
|
_RL mymin_R8, mymax_R8 |
52 |
|
external mymin_R8, mymax_R8 |
53 |
|
|
54 |
if ( buoyancyRelation .eq. 'OCEANICP' ) then |
if ( buoyancyRelation .eq. 'OCEANICP' ) then |
55 |
kSurface = Nr |
kSurface = Nr |
56 |
else |
else |
102 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
103 |
DO J=1,sNy |
DO J=1,sNy |
104 |
DO I=1,sNx |
DO I=1,sNx |
105 |
AR(I,J,bi,bj)=MIN(AREA(I,J,2,bi,bj), |
AR(I,J,bi,bj)=MYMIN_R8(AREA(I,J,2,bi,bj), |
106 |
& HEFF(I,J,2,bi,bj)*1.0 _d +04) |
& HEFF(I,J,2,bi,bj)*1.0 _d +04) |
107 |
ENDDO |
ENDDO |
108 |
ENDDO |
ENDDO |
126 |
YNEG(I,J,bi,bj)=(theta(I,J,1,bi,bj)-TBC)*.01 |
YNEG(I,J,bi,bj)=(theta(I,J,1,bi,bj)-TBC)*.01 |
127 |
& *dRf(1)/72.0764 _d 0 |
& *dRf(1)/72.0764 _d 0 |
128 |
GHEFF(I,J)=HEFF(I,J,1,bi,bj) |
GHEFF(I,J)=HEFF(I,J,1,bi,bj) |
129 |
HEFF(I,J,1,bi,bj)=MAX(ZERO,HEFF(I,J,1,bi,bj)-YNEG(I,J,bi,bj)) |
HEFF(I,J,1,bi,bj)=MYMAX_R8(ZERO,HEFF(I,J,1,bi,bj)-YNEG(I,J,bi,bj)) |
130 |
YNEG(I,J,bi,bj)=GHEFF(I,J)-HEFF(I,J,1,bi,bj) |
YNEG(I,J,bi,bj)=GHEFF(I,J)-HEFF(I,J,1,bi,bj) |
131 |
SEAICE_SALT(I,J,bi,bj)=SEAICE_SALT(I,J,bi,bj)-YNEG(I,J,bi,bj) |
SEAICE_SALT(I,J,bi,bj)=SEAICE_SALT(I,J,bi,bj)-YNEG(I,J,bi,bj) |
132 |
C-- Now convert YNEG back to deg K. |
C-- Now convert YNEG back to deg K. |
221 |
DO I=1,sNx |
DO I=1,sNx |
222 |
GHEFF(I,J)=-SEAICE_deltaTtherm*FHEFF(I,J,bi,bj)*Q0 |
GHEFF(I,J)=-SEAICE_deltaTtherm*FHEFF(I,J,bi,bj)*Q0 |
223 |
GAREA(I,J)=SEAICE_deltaTtherm*FO(I,J,bi,bj)*Q0 |
GAREA(I,J)=SEAICE_deltaTtherm*FO(I,J,bi,bj)*Q0 |
224 |
GHEFF(I,J)=-ONE*MIN(HEFF(I,J,1,bi,bj),GHEFF(I,J)) |
GHEFF(I,J)=-ONE*MYMIN_R8(HEFF(I,J,1,bi,bj),GHEFF(I,J)) |
225 |
GAREA(I,J)=MAX(ZERO,GAREA(I,J)) |
GAREA(I,J)=MYMAX_R8(ZERO,GAREA(I,J)) |
226 |
HCORR(I,J,bi,bj)=MIN(ZERO,GHEFF(I,J)) |
HCORR(I,J,bi,bj)=MYMIN_R8(ZERO,GHEFF(I,J)) |
227 |
ENDDO |
ENDDO |
228 |
ENDDO |
ENDDO |
229 |
DO J=1,sNy |
DO J=1,sNy |
240 |
DO I=1,sNx |
DO I=1,sNx |
241 |
GHEFF(I,J)=-SEAICE_deltaTtherm* |
GHEFF(I,J)=-SEAICE_deltaTtherm* |
242 |
& FICE(I,J,bi,bj)*Q0*AR(I,J,bi,bj) |
& FICE(I,J,bi,bj)*Q0*AR(I,J,bi,bj) |
243 |
GHEFF(I,J)=-ONE*MIN(HEFF(I,J,1,bi,bj),GHEFF(I,J)) |
GHEFF(I,J)=-ONE*MYMIN_R8(HEFF(I,J,1,bi,bj),GHEFF(I,J)) |
244 |
HEFF(I,J,1,bi,bj)=HEFF(I,J,1,bi,bj)+GHEFF(I,J) |
HEFF(I,J,1,bi,bj)=HEFF(I,J,1,bi,bj)+GHEFF(I,J) |
245 |
SEAICE_SALT(I,J,bi,bj)=SEAICE_SALT(I,J,bi,bj)+GHEFF(I,J) |
SEAICE_SALT(I,J,bi,bj)=SEAICE_SALT(I,J,bi,bj)+GHEFF(I,J) |
246 |
C NOW CALCULATE QNETI UNDER ICE IF ANY |
C NOW CALCULATE QNETI UNDER ICE IF ANY |
330 |
DO J=1,sNy |
DO J=1,sNy |
331 |
DO I=1,sNx |
DO I=1,sNx |
332 |
C NOW SET AREA(I,J,1,bi,bj)=0 WHERE NO ICE IS |
C NOW SET AREA(I,J,1,bi,bj)=0 WHERE NO ICE IS |
333 |
AREA(I,J,1,bi,bj)=MIN(AREA(I,J,1,bi,bj) |
AREA(I,J,1,bi,bj)=MYMIN_R8(AREA(I,J,1,bi,bj) |
334 |
& ,HEFF(I,J,1,bi,bj)/.0001 _d 0) |
& ,HEFF(I,J,1,bi,bj)/.0001 _d 0) |
335 |
ENDDO |
ENDDO |
336 |
ENDDO |
ENDDO |
342 |
DO I=1,sNx |
DO I=1,sNx |
343 |
C NOW TRUNCATE AREA |
C NOW TRUNCATE AREA |
344 |
#ifdef DO_WE_NEED_THIS |
#ifdef DO_WE_NEED_THIS |
345 |
AREA(I,J,1,bi,bj)=MIN(ONE,AREA(I,J,1,bi,bj)) |
AREA(I,J,1,bi,bj)=MYMIN_R8(ONE,AREA(I,J,1,bi,bj)) |
346 |
ENDDO |
ENDDO |
347 |
ENDDO |
ENDDO |
348 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
351 |
#endif /* ALLOW_AUTODIFF_TAMC */ |
#endif /* ALLOW_AUTODIFF_TAMC */ |
352 |
DO J=1,sNy |
DO J=1,sNy |
353 |
DO I=1,sNx |
DO I=1,sNx |
354 |
AREA(I,J,1,bi,bj)=MAX(ZERO,AREA(I,J,1,bi,bj)) |
AREA(I,J,1,bi,bj)=MYMAX_R8(ZERO,AREA(I,J,1,bi,bj)) |
355 |
HSNOW(I,J,bi,bj)=MAX(ZERO,HSNOW(I,J,bi,bj)) |
HSNOW(I,J,bi,bj)=MYMAX_R8(ZERO,HSNOW(I,J,bi,bj)) |
356 |
#endif |
#endif |
357 |
AREA(I,J,1,bi,bj)=AREA(I,J,1,bi,bj)*HEFFM(I,J,bi,bj) |
AREA(I,J,1,bi,bj)=AREA(I,J,1,bi,bj)*HEFFM(I,J,bi,bj) |
358 |
HEFF(I,J,1,bi,bj)=HEFF(I,J,1,bi,bj)*HEFFM(I,J,bi,bj) |
HEFF(I,J,1,bi,bj)=HEFF(I,J,1,bi,bj)*HEFFM(I,J,bi,bj) |
359 |
#ifdef DO_WE_NEED_THIS |
#ifdef DO_WE_NEED_THIS |
360 |
c HEFF(I,J,1,bi,bj)=MIN(MAX_HEFF,HEFF(I,J,1,bi,bj)) |
c HEFF(I,J,1,bi,bj)=MYMIN_R8(MAX_HEFF,HEFF(I,J,1,bi,bj)) |
361 |
#endif |
#endif |
362 |
HSNOW(I,J,bi,bj)=HSNOW(I,J,bi,bj)*HEFFM(I,J,bi,bj) |
HSNOW(I,J,bi,bj)=HSNOW(I,J,bi,bj)*HEFFM(I,J,bi,bj) |
363 |
ENDDO |
ENDDO |