New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 4034 – NEMO

Changeset 4034


Ignore:
Timestamp:
2013-09-25T14:02:06+02:00 (9 years ago)
Author:
clem
Message:

bug fix on the max ice concentration resulting from limitd_me (1 instead of amax),see ticket:#1116

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r3963 r4034  
    6363   REAL(wp), PARAMETER ::   krdgmin = 1.1_wp    ! min ridge thickness multiplier 
    6464   REAL(wp), PARAMETER ::   kraft   = 2.0_wp    ! rafting multipliyer 
     65   REAL(wp), PARAMETER ::   kamax   = 1.0 
    6566 
    6667   REAL(wp) ::   Cp                             !  
     
    227228            ! to give asum = 1.0 after ridging. 
    228229 
    229             divu_adv(ji,jj) = ( amax - asum(ji,jj) ) / rdt_ice  ! asum found in ridgeprep 
     230            divu_adv(ji,jj) = ( kamax - asum(ji,jj) ) / rdt_ice  ! asum found in ridgeprep 
    230231 
    231232            IF( divu_adv(ji,jj) < 0._wp )   closing_net(ji,jj) = MAX( closing_net(ji,jj), -divu_adv(ji,jj) ) 
     
    312313         DO jj = 1, jpj 
    313314            DO ji = 1, jpi 
    314                IF (ABS(asum(ji,jj) - amax ) .LT. epsi11) THEN 
     315               IF (ABS(asum(ji,jj) - kamax ) .LT. epsi11) THEN 
    315316                  closing_net(ji,jj) = 0._wp 
    316317                  opning     (ji,jj) = 0._wp 
    317318               ELSE 
    318319                  iterate_ridging    = 1 
    319                   divu_adv   (ji,jj) = ( amax - asum(ji,jj) ) / rdt_ice 
     320                  divu_adv   (ji,jj) = ( kamax - asum(ji,jj) ) / rdt_ice 
    320321                  closing_net(ji,jj) = MAX( 0._wp, -divu_adv(ji,jj) ) 
    321322                  opning     (ji,jj) = MAX( 0._wp,  divu_adv(ji,jj) ) 
     
    356357         DO ji = 1, jpi 
    357358 
    358             IF (ABS(asum(ji,jj) - amax) .GT. epsi11) asum_error = .true. 
     359            IF (ABS(asum(ji,jj) - kamax) .GT. epsi11) asum_error = .true. 
    359360 
    360361            dardg1dt(ji,jj) = dardg1dt(ji,jj) * dti 
     
    375376      DO jj = 1, jpj 
    376377         DO ji = 1, jpi 
    377             IF (ABS(asum(ji,jj) - amax) .GT. epsi11) THEN ! there is a bug 
     378            IF (ABS(asum(ji,jj) - kamax) .GT. epsi11) THEN ! there is a bug 
    378379               WRITE(numout,*) ' ' 
    379380               WRITE(numout,*) ' ALERTE : Ridging error: total area = ', asum(ji,jj) 
     
    482483            IF ( ABS( zchk_smv   ) >  1.e-4 ) WRITE(numout,*) 'violation saline [psu*m3/day] (limitd_me) = ',(zchk_smv * 86400.) 
    483484            IF ( zchk_vmin <  0.            ) WRITE(numout,*) 'violation v_i<0  [mm]         (limitd_me) = ',(zchk_vmin * 1.e-3) 
    484             IF ( zchk_amax >  amax+epsi10   ) WRITE(numout,*) 'violation a_i>amax            (limitd_me) = ',zchk_amax 
     485            IF ( zchk_amax >  kamax+epsi10   ) WRITE(numout,*) 'violation a_i>amax            (limitd_me) = ',zchk_amax 
    485486            IF ( zchk_amin <  0.            ) WRITE(numout,*) 'violation a_i<0               (limitd_me) = ',zchk_amin 
    486487         ENDIF 
     
    11531154            afrft(ji,jj) = arft1(ji,jj) / aicen_init(ji,jj,jl1) !rafting 
    11541155 
    1155             IF (afrac(ji,jj) > amax + epsi11) THEN  !riging 
     1156            IF (afrac(ji,jj) > kamax + epsi11) THEN  !riging 
    11561157               large_afrac = .true. 
    1157             ELSEIF (afrac(ji,jj) > amax) THEN  ! roundoff error 
    1158                afrac(ji,jj) = amax 
     1158            ELSEIF (afrac(ji,jj) > kamax) THEN  ! roundoff error 
     1159               afrac(ji,jj) = kamax 
    11591160            ENDIF 
    1160             IF (afrft(ji,jj) > amax + epsi11) THEN !rafting 
     1161            IF (afrft(ji,jj) > kamax + epsi11) THEN !rafting 
    11611162               large_afrft = .true. 
    1162             ELSEIF (afrft(ji,jj) > amax) THEN  ! roundoff error 
    1163                afrft(ji,jj) = amax 
     1163            ELSEIF (afrft(ji,jj) > kamax) THEN  ! roundoff error 
     1164               afrft(ji,jj) = kamax 
    11641165            ENDIF 
    11651166 
     
    13091310               ji = indxi(ij) 
    13101311               jj = indxj(ij) 
    1311                IF( afrac(ji,jj) > amax + epsi11 ) THEN  
     1312               IF( afrac(ji,jj) > kamax + epsi11 ) THEN  
    13121313                  WRITE(numout,*) '' 
    13131314                  WRITE(numout,*) ' ardg > a_i' 
     
    13211322               ji = indxi(ij) 
    13221323               jj = indxj(ij) 
    1323                IF( afrft(ji,jj) > amax + epsi11 ) THEN  
     1324               IF( afrft(ji,jj) > kamax + epsi11 ) THEN  
    13241325                  WRITE(numout,*) '' 
    13251326                  WRITE(numout,*) ' arft > a_i' 
Note: See TracChangeset for help on using the changeset viewer.