Back to home page

MITgcm

 
 

    


File indexing completed on 2026-05-05 05:09:05 UTC

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