Back to home page

MITgcm

 
 

    


File indexing completed on 2023-05-06 05:10:28 UTC

view on githubraw file Latest commit 8377b8ee on 2023-05-05 23:17:05 UTC
1cf549c217 Mart*0001 #include "SEAICE_OPTIONS.h"
                0002 #ifdef ALLOW_EXF
                0003 # include "EXF_OPTIONS.h"
                0004 #endif
772b2ed80e Gael*0005 #ifdef ALLOW_AUTODIFF
                0006 # include "AUTODIFF_OPTIONS.h"
                0007 #endif
1cf549c217 Mart*0008 
                0009 CBOP
                0010 C     !ROUTINE: SEAICE_REG_RIDGE
                0011 C     !INTERFACE:
                0012       SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid )
                0013 C     !DESCRIPTION: \bv
                0014 C     *=================================================================*
                0015 C     | SUBROUTINE seaice_reg_ridge
                0016 C     | o this routine has two purposes:
                0017 C     |   (1) clean up after advection (undershoots etc.);
925297a0db Jean*0018 C     |       after advection, the sea ice variables may have unphysical
                0019 C     |       values, e.g. < 0 or very thin ice, that are regularized
                0020 C     |       here.
1cf549c217 Mart*0021 C     |   (2) driver for ice ridging;
                0022 C     |       concentration as a special case may be > 1 in convergent
925297a0db Jean*0023 C     |       motion and a ridging algorithm redistributes the ice to
1cf549c217 Mart*0024 C     |       limit the concentration to 1.
                0025 C     | o called after S/R seaice_advdiff
                0026 C     *=================================================================*
                0027 C     \ev
                0028 
                0029 C     !USES:
                0030       IMPLICIT NONE
                0031 C     === Global variables ===
                0032 #include "SIZE.h"
                0033 #include "EEPARAMS.h"
                0034 #include "PARAMS.h"
                0035 #include "SEAICE_SIZE.h"
                0036 #include "SEAICE_PARAMS.h"
                0037 #include "SEAICE.h"
                0038 #include "SEAICE_TRACER.h"
                0039 #ifdef ALLOW_EXF
                0040 # include "EXF_FIELDS.h"
                0041 #endif
                0042 #ifdef ALLOW_AUTODIFF_TAMC
                0043 # include "tamc.h"
                0044 #endif /* ALLOW_AUTODIFF_TAMC */
                0045 
                0046 C     !INPUT/OUTPUT PARAMETERS:
                0047 C     === Routine arguments ===
                0048 C     myTime :: Simulation time
                0049 C     myIter :: Simulation timestep number
                0050 C     myThid :: Thread no. that called this routine.
                0051       _RL myTime
                0052       INTEGER myIter, myThid
                0053 
                0054 #ifdef ALLOW_SEAICE
                0055 C     !LOCAL VARIABLES:
                0056 C     === Local variables ===
                0057 C     i,j,bi,bj :: Loop counters
                0058       INTEGER i, j, bi, bj
                0059 C     number of surface interface layer
                0060 C     IT :: ice thickness category index (ITD and SEAICE_multDim code)
925297a0db Jean*0061       INTEGER IT
1cf549c217 Mart*0062 C     reciprocal of time step
                0063       _RL recip_deltaTtherm
                0064 C     temporary variables available for the various computations
                0065       _RL tmpscal1, tmpscal2
                0066 #ifdef SEAICE_ITD
                0067       _RL tmpscal1itd(1:sNx,1:sNy), tmpscal2itd(1:sNx,1:sNy)
                0068       _RL tmpscal3itd(1:sNx,1:sNy)
                0069 C     reciprocal number of ice classes nITD
                0070       _RL recip_nitd
                0071 #endif /* SEAICE_ITD */
                0072 #ifdef ALLOW_DIAGNOSTICS
                0073 C     Helper variables for diagnostics
                0074       _RL DIAGarrayA    (1:sNx,1:sNy)
                0075 #endif /* ALLOW_DIAGNOSTICS */
7c50f07931 Mart*0076 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0077 C     tkey :: tape key (depends on tiles)
                0078       INTEGER tkey
7c50f07931 Mart*0079 #endif
1cf549c217 Mart*0080 CEOP
                0081 
                0082 C
                0083 C     === Routine body ===
                0084 C
                0085       recip_deltaTtherm = ONE / SEAICE_deltaTtherm
                0086 
                0087       DO bj=myByLo(myThid),myByHi(myThid)
                0088        DO bi=myBxLo(myThid),myBxHi(myThid)
                0089 
                0090 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0091         tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy
1cf549c217 Mart*0092 #endif /* ALLOW_AUTODIFF_TAMC */
                0093 
8377b8ee87 Mart*0094         DO j=1-OLy,sNy+OLy
                0095          DO i=1-OLx,sNx+OLx
                0096           d_HEFFbyNEG(i,j,bi,bj)    = 0.0 _d 0
                0097           d_HSNWbyNEG(i,j,bi,bj)    = 0.0 _d 0
1cf549c217 Mart*0098 #ifdef EXF_SEAICE_FRACTION
8377b8ee87 Mart*0099           d_AREAbyRLX(i,j,bi,bj)    = 0.0 _d 0
                0100           d_HEFFbyRLX(i,j,bi,bj)    = 0.0 _d 0
1cf549c217 Mart*0101 #endif /* EXF_SEAICE_FRACTION */
                0102 #ifdef SEAICE_VARIABLE_SALINITY
8377b8ee87 Mart*0103           saltFluxAdjust(i,j,bi,bj) = 0.0 _d 0
1cf549c217 Mart*0104 #endif /* SEAICE_VARIABLE_SALINITY */
                0105          ENDDO
                0106         ENDDO
                0107 
                0108 C =====================================================================
                0109 C ========== PART 1: treat pathological cases (post advdiff) ==========
                0110 C =====================================================================
                0111 
8377b8ee87 Mart*0112 #if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ)
1cf549c217 Mart*0113 Cgf no dependency through pathological cases treatment
                0114         IF ( SEAICEadjMODE.EQ.0 ) THEN
                0115 #endif
                0116 
                0117 #ifdef EXF_SEAICE_FRACTION
edb6656069 Mart*0118 CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
                0119 CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0120 C--   (0) relax sea ice concentration towards observation
                0121         IF ( SEAICE_tauAreaObsRelax .GT. zeroRL ) THEN
8377b8ee87 Mart*0122          DO j=1,sNy
                0123           DO i=1,sNx
                0124            IF ( exf_iceFraction(i,j,bi,bj).GT.AREA(i,j,bi,bj) ) THEN
1cf549c217 Mart*0125             d_AREAbyRLX(i,j,bi,bj) =
                0126      &       SEAICE_deltaTtherm/SEAICE_tauAreaObsRelax
8377b8ee87 Mart*0127      &       * (exf_iceFraction(i,j,bi,bj) - AREA(i,j,bi,bj))
1cf549c217 Mart*0128            ENDIF
8377b8ee87 Mart*0129            IF ( exf_iceFraction(i,j,bi,bj).GT.zeroRS .AND.
                0130      &          AREA(i,j,bi,bj).EQ.0. _d 0) THEN
1cf549c217 Mart*0131 C           d_HEFFbyRLX(i,j,bi,bj) = 1. _d 1 * siEps * d_AREAbyRLX(i,j,bi,bj)
                0132             d_HEFFbyRLX(i,j,bi,bj) = 1. _d 1 * siEps
                0133            ENDIF
                0134 #ifdef SEAICE_ITD
8377b8ee87 Mart*0135            AREAITD(i,j,1,bi,bj) = AREAITD(i,j,1,bi,bj)
1cf549c217 Mart*0136      &                          +  d_AREAbyRLX(i,j,bi,bj)
8377b8ee87 Mart*0137            HEFFITD(i,j,1,bi,bj) = HEFFITD(i,j,1,bi,bj)
1cf549c217 Mart*0138      &                          +  d_HEFFbyRLX(i,j,bi,bj)
                0139 #endif /* SEAICE_ITD */
8377b8ee87 Mart*0140            AREA(i,j,bi,bj) = AREA(i,j,bi,bj) +  d_AREAbyRLX(i,j,bi,bj)
                0141            HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj) +  d_HEFFbyRLX(i,j,bi,bj)
1cf549c217 Mart*0142           ENDDO
                0143          ENDDO
                0144         ENDIF
                0145 #endif /* EXF_SEAICE_FRACTION */
                0146 
                0147 C--   (1) treat the case of negative values:
                0148 
                0149 #ifdef SEAICE_ITD
cb071e52ee Mart*0150         DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0151          DO j=1,sNy
                0152           DO i=1,sNx
1cf549c217 Mart*0153            tmpscal1=0. _d 0
                0154            tmpscal2=0. _d 0
8377b8ee87 Mart*0155            tmpscal1=MAX(-HEFFITD(i,j,IT,bi,bj),0. _d 0)
                0156            HEFFITD(i,j,IT,bi,bj)=HEFFITD(i,j,IT,bi,bj)+tmpscal1
                0157            d_HEFFbyNEG(i,j,bi,bj)=d_HEFFbyNEG(i,j,bi,bj)+tmpscal1
                0158            tmpscal2=MAX(-HSNOWITD(i,j,IT,bi,bj),0. _d 0)
                0159            HSNOWITD(i,j,IT,bi,bj)=HSNOWITD(i,j,IT,bi,bj)+tmpscal2
                0160            d_HSNWbyNEG(i,j,bi,bj)=d_HSNWbyNEG(i,j,bi,bj)+tmpscal2
                0161            AREAITD(i,j,IT,bi,bj)=MAX(AREAITD(i,j,IT,bi,bj),0. _d 0)
1cf549c217 Mart*0162 C     AREA, HEFF, and HSNOW will be updated at end of PART 1
                0163 C     by calling SEAICE_ITD_SUM
                0164           ENDDO
                0165          ENDDO
                0166         ENDDO
925297a0db Jean*0167 C     update mean thicknesses HEFF and HSNOW and total ice
cb071e52ee Mart*0168 C     concentration AREA to match single category values
                0169         CALL SEAICE_ITD_SUM   ( bi, bj, myTime, myIter, myThid )
1cf549c217 Mart*0170 #else /* ndef SEAICE_ITD */
                0171 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0172 CADJ STORE heff(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
                0173 CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
                0174 CADJ STORE area(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0175 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0176         DO j=1,sNy
                0177          DO i=1,sNx
                0178           d_HEFFbyNEG(i,j,bi,bj)=MAX(-HEFF(i,j,bi,bj),0. _d 0)
                0179           HEFF(i,j,bi,bj)=HEFF(i,j,bi,bj)+d_HEFFbyNEG(i,j,bi,bj)
                0180           d_HSNWbyNEG(i,j,bi,bj)=MAX(-HSNOW(i,j,bi,bj),0. _d 0)
                0181           HSNOW(i,j,bi,bj)=HSNOW(i,j,bi,bj)+d_HSNWbyNEG(i,j,bi,bj)
                0182           AREA(i,j,bi,bj)=MAX(AREA(i,j,bi,bj),0. _d 0)
1cf549c217 Mart*0183          ENDDO
                0184         ENDDO
                0185 #endif /* SEAICE_ITD */
                0186 
                0187 C--   (2) treat the case of very thin ice:
                0188 
                0189 #ifdef SEAICE_ITD
cb071e52ee Mart*0190 C     Here we risk that even though HEFF may be larger than siEps (=1e-5)
                0191 C     HEFFITD can have classes with very small (< siEps) non-zero ice volume.
925297a0db Jean*0192 C     We avoid applying the correction to each class because that leads to
cb071e52ee Mart*0193 C     funny structures in the net heat and freshwater flux into the ocean.
                0194 C     Let us keep our fingers crossed, that the model will be benign!
                0195         DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0196          DO j=1,sNy
                0197           DO i=1,sNx
                0198            IF (HEFF(i,j,bi,bj).LE.siEps) THEN
                0199             HEFFITD(i,j,IT,bi,bj) = 0. _d 0
                0200             HSNOWITD(i,j,IT,bi,bj) = 0. _d 0
1cf549c217 Mart*0201            ENDIF
                0202           ENDDO
                0203          ENDDO
                0204         ENDDO
cb071e52ee Mart*0205 #endif /* SEAICE_ITD */
1cf549c217 Mart*0206 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0207 CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
3c775cbf98 Mart*0208 C     The following statement helps TAF to understand that TICES is not
                0209 C     modified/reset everywhere so that it is correctly stored in the
                0210 C     outer checkpoint levels. This is a TAF bug and this statement can
                0211 C     probably be removed again, once this bug is fixed (but it does not
                0212 C     hurt, either).
                0213 CADJ INCOMPLETE TICES
1cf549c217 Mart*0214 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0215         DO j=1,sNy
                0216          DO i=1,sNx
1cf549c217 Mart*0217           tmpscal1=0. _d 0
                0218           tmpscal2=0. _d 0
8377b8ee87 Mart*0219           IF (HEFF(i,j,bi,bj).LE.siEps) THEN
                0220            tmpscal1=-HEFF(i,j,bi,bj)
                0221            tmpscal2=-HSNOW(i,j,bi,bj)
1cf549c217 Mart*0222            DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0223             TICES(i,j,IT,bi,bj)=celsius2K
1cf549c217 Mart*0224            ENDDO
                0225           ENDIF
8377b8ee87 Mart*0226           HEFF(i,j,bi,bj)=HEFF(i,j,bi,bj)+tmpscal1
                0227           HSNOW(i,j,bi,bj)=HSNOW(i,j,bi,bj)+tmpscal2
                0228           d_HEFFbyNEG(i,j,bi,bj)=d_HEFFbyNEG(i,j,bi,bj)+tmpscal1
                0229           d_HSNWbyNEG(i,j,bi,bj)=d_HSNWbyNEG(i,j,bi,bj)+tmpscal2
1cf549c217 Mart*0230          ENDDO
                0231         ENDDO
                0232 
                0233 C--   (3) treat the case of area but no ice/snow:
                0234 
                0235 #ifdef SEAICE_ITD
cb071e52ee Mart*0236         DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0237          DO j=1,sNy
                0238           DO i=1,sNx
                0239            IF ( (HEFFITD(i,j,IT,bi,bj) .EQ.0. _d 0).AND.
                0240      &          (HSNOWITD(i,j,IT,bi,bj).EQ.0. _d 0))
                0241      &          AREAITD(i,j,IT,bi,bj)=0. _d 0
1cf549c217 Mart*0242           ENDDO
                0243          ENDDO
                0244         ENDDO
                0245 #else /* ndef SEAICE_ITD */
                0246 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0247 CADJ STORE heff(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
                0248 CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0249 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0250          DO j=1,sNy
                0251           DO i=1,sNx
1cf549c217 Mart*0252            IF ((HEFF(i,j,bi,bj).EQ.0. _d 0).AND.
8377b8ee87 Mart*0253      &        (HSNOW(i,j,bi,bj).EQ.0. _d 0)) AREA(i,j,bi,bj)=0. _d 0
1cf549c217 Mart*0254          ENDDO
                0255         ENDDO
                0256 #endif /* SEAICE_ITD */
                0257 
                0258 C--   (4) treat the case of very small area:
                0259 
                0260 #ifndef DISABLE_AREA_FLOOR
                0261 #ifdef SEAICE_ITD
cb071e52ee Mart*0262         recip_nitd = 1. _d 0 / float(SEAICE_multDim)
                0263         DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0264          DO j=1,sNy
                0265           DO i=1,sNx
                0266            IF ((HEFFITD(i,j,IT,bi,bj).GT.0).OR.
                0267      &          (HSNOWITD(i,j,IT,bi,bj).GT.0)) THEN
cb071e52ee Mart*0268 C     SEAICE_area_floor*SEAICE_multDim cannot be allowed to exceed 1
                0269 C     hence use SEAICE_area_floor devided by SEAICE_multDim
1cf549c217 Mart*0270 C     (or install a warning in e.g. seaice_readparms.F)
8377b8ee87 Mart*0271             AREAITD(i,j,IT,bi,bj)=
                0272      &        MAX(AREAITD(i,j,IT,bi,bj),SEAICE_area_floor*recip_nitd)
1cf549c217 Mart*0273           ENDIF
                0274          ENDDO
                0275         ENDDO
                0276        ENDDO
                0277 #else /* ndef SEAICE_ITD */
                0278 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0279 CADJ STORE area(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0280 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0281        DO j=1,sNy
                0282         DO i=1,sNx
1cf549c217 Mart*0283          IF ((HEFF(i,j,bi,bj).GT.0).OR.(HSNOW(i,j,bi,bj).GT.0)) THEN
8377b8ee87 Mart*0284           AREA(i,j,bi,bj)=MAX(AREA(i,j,bi,bj),SEAICE_area_floor)
1cf549c217 Mart*0285          ENDIF
                0286         ENDDO
                0287        ENDDO
                0288 #endif /* SEAICE_ITD */
                0289 #endif /* DISABLE_AREA_FLOOR */
                0290 
                0291 C     (5) treat sea ice salinity pathological cases
                0292 #ifdef SEAICE_VARIABLE_SALINITY
                0293 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0294 CADJ STORE hsalt(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte
                0295 CADJ STORE heff(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0296 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0297         DO j=1,sNy
                0298          DO i=1,sNx
                0299           IF ( (HSALT(i,j,bi,bj) .LT. 0.0).OR.
                0300      &         (HEFF(i,j,bi,bj) .EQ. 0.0)  ) THEN
                0301              saltFluxAdjust(i,j,bi,bj) = - HEFFM(i,j,bi,bj) *
                0302      &            HSALT(i,j,bi,bj) * recip_deltaTtherm
                0303              HSALT(i,j,bi,bj) = 0.0 _d 0
1cf549c217 Mart*0304           ENDIF
                0305          ENDDO
                0306         ENDDO
                0307 #endif /* SEAICE_VARIABLE_SALINITY */
                0308 
                0309 C =====================================================================
                0310 C ========== PART 2: ridging algorithm  ===============================
                0311 C =====================================================================
                0312 
                0313 C     treat case of excessive ice cover, e.g., due to ridging:
                0314 
                0315 #ifdef SEAICE_ITD
                0316 
                0317 C     catch up with item (2) that involves category sums AREA and HEFF
8377b8ee87 Mart*0318         DO j=1,sNy
                0319          DO i=1,sNx
1cf549c217 Mart*0320           tmpscal1itd(i,j) = 0. _d 0
                0321           tmpscal2itd(i,j) = 0. _d 0
                0322           tmpscal3itd(i,j) = 0. _d 0
                0323          ENDDO
                0324         ENDDO
cb071e52ee Mart*0325         DO IT=1,SEAICE_multDim
8377b8ee87 Mart*0326          DO j=1,sNy
                0327           DO i=1,sNx
1cf549c217 Mart*0328 C     TICES was changed above (item 2), now update TICE as ice volume
                0329 C     weighted average of TICES
                0330            tmpscal1itd(i,j)=tmpscal1itd(i,j)
8377b8ee87 Mart*0331      &          +        TICES(i,j,IT,bi,bj) * HEFFITD(i,j,IT,bi,bj)
                0332            tmpscal2itd(i,j)=tmpscal2itd(i,j) + HEFFITD(i,j,IT,bi,bj)
1cf549c217 Mart*0333 C     also compute total of AREAITD for diagnostics and SItrArea
8377b8ee87 Mart*0334            tmpscal3itd(i,j)=tmpscal3itd(i,j) + AREAITD(i,j,IT,bi,bj)
1cf549c217 Mart*0335           ENDDO
                0336          ENDDO
                0337         ENDDO
8377b8ee87 Mart*0338         DO j=1,sNy
                0339          DO i=1,sNx
1cf549c217 Mart*0340 C     save pre-ridging ice concentration for diagnostics:
                0341 C     these lines are executed before "ridging" is applied to AREA
                0342 C     hence we execute them here before SEAICE_ITD_REDIST is called
                0343 C     although this means that AREA has not been completely regularized
                0344 #ifdef ALLOW_DIAGNOSTICS
8377b8ee87 Mart*0345           DIAGarrayA(i,j) = tmpscal3itd(i,j)
1cf549c217 Mart*0346 #endif
                0347 #ifdef ALLOW_SITRACER
8377b8ee87 Mart*0348           SItrAREA(i,j,bi,bj,1)=tmpscal3itd(i,j)
1cf549c217 Mart*0349 #endif
                0350          ENDDO
                0351         ENDDO
                0352 C     ridge ice according to Lipscomb et al. (2007), Bitz et al. (2001)
                0353 C     Thorndyke et al. (1975), Hibler (1980)
                0354         CALL SEAICE_DO_RIDGING( bi, bj, myTime, myIter, myThid )
                0355 C     check that all ice thickness categories meet their limits
                0356 C     (includes Hibler-type ridging)
                0357         CALL SEAICE_ITD_REDIST( bi, bj, myTime, myIter, myThid )
925297a0db Jean*0358 C     update mean thicknesses HEFF and HSNOW and total ice
1cf549c217 Mart*0359 C     concentration AREA to match single category values
                0360         CALL SEAICE_ITD_SUM   ( bi, bj, myTime, myIter, myThid )
                0361 
                0362 #else /* ifndef SEAICE_ITD */
                0363 
                0364 #ifdef ALLOW_AUTODIFF_TAMC
edb6656069 Mart*0365 CADJ STORE area(:,:,bi,bj)  = comlev1_bibj, key = tkey,byte=isbyte
1cf549c217 Mart*0366 #endif /* ALLOW_AUTODIFF_TAMC */
8377b8ee87 Mart*0367         DO j=1,sNy
                0368          DO i=1,sNx
1cf549c217 Mart*0369 C     save pre-ridging ice concentration for diagnostics
                0370 #ifdef ALLOW_DIAGNOSTICS
8377b8ee87 Mart*0371           DIAGarrayA(i,j) = AREA(i,j,bi,bj)
1cf549c217 Mart*0372 #endif /*  ALLOW_DIAGNOSTICS */
                0373 #ifdef ALLOW_SITRACER
8377b8ee87 Mart*0374           SItrAREA(i,j,bi,bj,1)=AREA(i,j,bi,bj)
1cf549c217 Mart*0375 #endif /*  ALLOW_SITRACER */
925297a0db Jean*0376 C     this is the simple Hibler (1979)-type ridging (capping of
1cf549c217 Mart*0377 C     concentrations > 1) for the non-ITD sea ice model
8377b8ee87 Mart*0378           AREA(i,j,bi,bj)=MIN(AREA(i,j,bi,bj),SEAICE_area_max)
1cf549c217 Mart*0379          ENDDO
                0380         ENDDO
                0381 
                0382 #endif /* SEAICE_ITD */
                0383 
8377b8ee87 Mart*0384 #if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ)
1cf549c217 Mart*0385 C        end SEAICEadjMODE.EQ.0 statement:
                0386         ENDIF
                0387 #endif
                0388 
                0389 #ifdef ALLOW_DIAGNOSTICS
                0390         IF ( useDiagnostics ) THEN
                0391          CALL DIAGNOSTICS_FILL(DIAGarrayA,'SIareaPR',0,1,3,bi,bj,myThid)
                0392         ENDIF
                0393 #endif /* ALLOW_DIAGNOSTICS */
                0394 
                0395 C close bi,bj loops
                0396        ENDDO
                0397       ENDDO
                0398 
                0399 #endif /* ALLOW_SEAICE */
                0400       RETURN
                0401       END