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