Ignore:
Timestamp:
2013-11-14T18:02:06+01:00 (8 years ago)
Author:
clem
Message:
 
Location:
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3
Files:
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r4161 r4205  
    396396   LOGICAL               , PUBLIC ::   ln_limdyn       !: flag for ice dynamics (T) or not (F) 
    397397   LOGICAL               , PUBLIC ::   ln_nicep        !: flag for sea-ice points output (T) or not (F) 
    398    REAL(wp)              , PUBLIC ::   hsndif          !: computation of temp. in snow (0) or not (9999) 
    399    REAL(wp)              , PUBLIC ::   hicdif          !: computation of temp. in ice (0) or not (9999) 
    400398   REAL(wp)              , PUBLIC ::   cai             !: atmospheric drag over sea ice 
    401399   REAL(wp)              , PUBLIC ::   cao             !: atmospheric drag over ocean 
    402    REAL(wp), DIMENSION(2), PUBLIC ::   acrit           !: minimum fraction for leads in north and south hemisphere 
     400   REAL(wp)              , PUBLIC ::   amax            !: maximum ice concentration 
    403401   ! 
    404402   !!-------------------------------------------------------------------------- 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/iceini.F90

    r4161 r4205  
    8989      CALL lim_itd_ini                 ! ice thickness distribution initialization 
    9090      ! 
    91       CALL lim_sbc_init                ! ice surface boundary condition    
    92  
    93  
    9491      !                                ! Initial sea-ice state 
    9592      IF( .NOT.ln_rstart ) THEN              ! start from rest 
     
    106103      ENDIF 
    107104      ! 
     105      CALL lim_sbc_init                ! ice surface boundary condition    
     106      ! 
    108107      fr_i(:,:) = at_i(:,:)           ! initialisation of sea-ice fraction 
     108      tn_ice(:,:,:) = t_su(:,:,:) 
    109109      ! 
    110110      nstart = numit  + nn_fsbc       
     
    248248      END DO 
    249249      ! 
    250       tn_ice(:,:,:) = t_su(:,:,:) 
    251250      ! 
    252251   END SUBROUTINE lim_itd_ini 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90

    r4166 r4205  
    3535 
    3636   PUBLIC   lim_istate      ! routine called by lim_init.F90 
    37  
    3837 
    3938   !! * Module variables 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limrhg.F90

    r4161 r4205  
    123123 
    124124      REAL(wp) ::   dtevp              ! time step for subcycling 
    125       REAL(wp) ::   dtotel, ecc2      ! square of yield ellipse eccenticity 
     125      REAL(wp) ::   dtotel, ecc2, ecci ! square of yield ellipse eccenticity 
    126126      REAL(wp) ::   z0, zr, zcca, zccb ! temporary scalars 
    127127      REAL(wp) ::   zu_ice2, zv_ice1   ! 
     
    199199            zc1(ji,jj)    = tms(ji,jj) * ( rhosn * vt_s(ji,jj) + rhoic * vt_i(ji,jj) ) 
    200200#if defined key_lim3 
    201             zpresh(ji,jj) = tms(ji,jj) *  strength(ji,jj) * 0.5_wp 
     201            zpresh(ji,jj) = tms(ji,jj) *  strength(ji,jj) 
    202202#endif 
    203203#if defined key_lim2 
     
    325325      !-ecc2: square of yield ellipse eccenticrity (reminder: must become a namelist parameter) 
    326326      ecc2 = ecc * ecc 
     327      ecci = 1. / ecc2 
    327328 
    328329      !-Initialise stress tensor  
     
    425426               !-Calculate stress tensor components zs1 and zs2  
    426427               !-at centre of grid cells (see section 3.5 of CICE user's guide). 
    427                zs1(ji,jj) = ( zs1(ji,jj) & 
    428                   &          - dtotel*( ( 1.0 - alphaevp) * zs1(ji,jj) +    & 
    429                   &            ( delta / deltat(ji,jj) - zdd(ji,jj) / deltat(ji,jj) ) & 
    430                   * zpresh(ji,jj) ) )                          &        
    431                   &        / ( 1.0 + alphaevp * dtotel ) 
    432  
    433                zs2(ji,jj) = ( zs2(ji,jj)   & 
    434                   &          - dtotel*((1.0-alphaevp)*ecc2*zs2(ji,jj) -  & 
    435                   zdt(ji,jj)/deltat(ji,jj)*zpresh(ji,jj)) ) & 
    436                   &        / ( 1.0 + alphaevp*ecc2*dtotel ) 
     428               zs1(ji,jj) = ( zs1(ji,jj) - dtotel*( ( 1._wp - alphaevp) * zs1(ji,jj) +   & 
     429                  &          ( delta / deltat(ji,jj) - zdd(ji,jj) / deltat(ji,jj) ) * zpresh(ji,jj) ) )  &        
     430                  &          / ( 1._wp + alphaevp * dtotel ) 
     431 
     432               zs2(ji,jj) = ( zs2(ji,jj) - dtotel * ( ( 1._wp - alphaevp ) * ecc2 * zs2(ji,jj) -   & 
     433                             zdt(ji,jj) / deltat(ji,jj) * zpresh(ji,jj) ) )   & 
     434                  &          / ( 1._wp + alphaevp * ecc2 * dtotel ) 
     435 
     436               ! new formulation from S. Bouillon to help stabilizing the code (no need of alphaevp) 
     437               !zs1(ji,jj) = ( zs1(ji,jj) + dtotel * ( ( zdd(ji,jj) / deltat(ji,jj) - delta / deltat(ji,jj) )  & 
     438               !   &         * zpresh(ji,jj) ) ) / ( 1._wp + dtotel ) 
     439               !zs2(ji,jj) = ( zs2(ji,jj) + dtotel * ( ecci * zdt(ji,jj) / deltat(ji,jj) * zpresh(ji,jj) ) )  & 
     440               !   &         / ( 1._wp + dtotel ) 
    437441 
    438442            END DO 
     
    468472 
    469473               !-Calculate stress tensor component zs12 at corners (see section 3.5 of CICE user's guide). 
    470                zs12(ji,jj) = ( zs12(ji,jj)      & 
    471                   &        - dtotel*( (1.0-alphaevp)*ecc2*zs12(ji,jj) - zds(ji,jj) / & 
    472                   &          ( 2.0*deltac(ji,jj) ) * zpreshc(ji,jj))) & 
    473                   &         / ( 1.0 + alphaevp*ecc2*dtotel )  
     474               zs12(ji,jj) = ( zs12(ji,jj) - dtotel * ( (1.0-alphaevp) * ecc2 * zs12(ji,jj) - zds(ji,jj) /  & 
     475                  &          ( 2._wp * deltac(ji,jj) ) * zpreshc(ji,jj) ) )  & 
     476                  &          / ( 1._wp + alphaevp * ecc2 * dtotel )  
     477 
     478               ! new formulation from S. Bouillon to help stabilizing the code (no need of alphaevp) 
     479               !zs12(ji,jj) = ( zs12(ji,jj) + dtotel *  & 
     480               !   &          ( ecci * zds(ji,jj) / ( 2._wp * deltac(ji,jj) ) * zpreshc(ji,jj) ) )  & 
     481               !   &          / ( 1.0 + dtotel )  
    474482 
    475483            END DO ! ji 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90

    r4161 r4205  
    1717   !!---------------------------------------------------------------------- 
    1818   USE ice            ! sea-ice variables 
     19   USE oce     , ONLY :  snwice_mass, snwice_mass_b 
    1920   USE par_ice        ! sea-ice parameters 
    2021   USE dom_oce        ! ocean domain 
     
    159160      END DO 
    160161 
    161       CALL iom_rstput( iter, nitrst, numriw, 'u_ice'     , u_ice      ) 
    162       CALL iom_rstput( iter, nitrst, numriw, 'v_ice'     , v_ice      ) 
    163       CALL iom_rstput( iter, nitrst, numriw, 'fsbbq'     , fsbbq      ) 
    164       CALL iom_rstput( iter, nitrst, numriw, 'iatte'     , iatte      ) ! clem modif 
    165       CALL iom_rstput( iter, nitrst, numriw, 'oatte'     , oatte      ) ! clem modif 
    166       CALL iom_rstput( iter, nitrst, numriw, 'stress1_i' , stress1_i ) 
    167       CALL iom_rstput( iter, nitrst, numriw, 'stress2_i' , stress2_i  ) 
    168       CALL iom_rstput( iter, nitrst, numriw, 'stress12_i', stress12_i ) 
     162      CALL iom_rstput( iter, nitrst, numriw, 'u_ice'        , u_ice      ) 
     163      CALL iom_rstput( iter, nitrst, numriw, 'v_ice'        , v_ice      ) 
     164      CALL iom_rstput( iter, nitrst, numriw, 'fsbbq'        , fsbbq      ) 
     165      CALL iom_rstput( iter, nitrst, numriw, 'stress1_i'    , stress1_i  ) 
     166      CALL iom_rstput( iter, nitrst, numriw, 'stress2_i'    , stress2_i  ) 
     167      CALL iom_rstput( iter, nitrst, numriw, 'stress12_i'   , stress12_i ) 
     168      CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass'  , snwice_mass )   !clem modif 
     169      CALL iom_rstput( iter, nitrst, numriw, 'snwice_mass_b', snwice_mass_b ) !clem modif 
    169170 
    170171      DO jl = 1, jpl  
     
    371372         CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 
    372373         t_su(:,:,jl) = z2d(:,:) 
    373          tn_ice (:,:,:) = t_su (:,:,:) 
    374       END DO 
    375  
    376       DO jl = 1, jpl  
    377          CALL lbc_lnk( smv_i(:,:,jl) , 'T' ,  1. ) 
    378          CALL lbc_lnk( v_i  (:,:,jl) , 'T' ,  1. ) 
    379          CALL lbc_lnk( a_i  (:,:,jl) , 'T' ,  1. ) 
    380       END DO 
    381  
    382       ! we first with bulk ice salinity 
    383       DO jl = 1, jpl 
    384          DO jj = 1, jpj 
    385             DO ji = 1, jpi 
    386                zindb          = MAX( 0.0 , SIGN( 1.0 , v_i(ji,jj,jl) - 1.0e-4 ) )  
    387                sm_i(ji,jj,jl) = smv_i(ji,jj,jl) / MAX(v_i(ji,jj,jl),1.0e-6) * zindb 
    388                ht_i(ji,jj,jl) = v_i(ji,jj,jl)   / MAX(a_i(ji,jj,jl),1.0e-6) * zindb 
    389             END DO 
    390          END DO 
    391       END DO 
    392  
    393       DO jk = 1, nlay_i 
    394          s_i(:,:,jk,:) = sm_i(:,:,:) 
    395       END DO 
    396  
    397       IF( num_sal == 2 ) THEN      ! Salinity profile 
    398          DO jl = 1, jpl 
    399             DO jk = 1, nlay_i 
    400                DO jj = 1, jpj 
    401                   DO ji = 1, jpi 
    402                      zs_inf        = sm_i(ji,jj,jl) 
    403                      z_slope_s     = 2._wp * sm_i(ji,jj,jl) / MAX( 0.01_wp , ht_i(ji,jj,jl) ) 
    404                      !- slope of the salinity profile 
    405                      zs_zero(jk)   = z_slope_s * ( REAL(jk,wp) - 0.5_wp ) * ht_i(ji,jj,jl) / REAL(nlay_i,wp) 
    406                      zsmax = 4.5_wp 
    407                      zsmin = 3.5_wp 
    408                      IF(     sm_i(ji,jj,jl) < zsmin ) THEN 
    409                         zalpha = 1._wp 
    410                      ELSEIF( sm_i(ji,jj,jl) < zsmax ) THEN 
    411                         zalpha = sm_i(ji,jj,jl) / ( zsmin - zsmax ) + zsmax / ( zsmax - zsmin ) 
    412                      ELSE 
    413                         zalpha = 0._wp 
    414                      ENDIF 
    415                      s_i(ji,jj,jk,jl) = zalpha * zs_zero(jk) + ( 1._wp - zalpha ) * zs_inf 
    416                   END DO 
    417                END DO 
    418             END DO 
    419          END DO 
    420       ENDIF 
     374      END DO 
    421375 
    422376      DO jl = 1, jpl  
     
    440394      CALL iom_get( numrir, jpdom_autoglo, 'v_ice'     , v_ice      ) 
    441395      CALL iom_get( numrir, jpdom_autoglo, 'fsbbq'     , fsbbq      ) 
    442       CALL iom_get( numrir, jpdom_autoglo, 'iatte'     , iatte      ) ! clem modif 
    443       CALL iom_get( numrir, jpdom_autoglo, 'oatte'     , oatte      ) ! clem modif 
    444396      CALL iom_get( numrir, jpdom_autoglo, 'stress1_i' , stress1_i  ) 
    445397      CALL iom_get( numrir, jpdom_autoglo, 'stress2_i' , stress2_i  ) 
    446398      CALL iom_get( numrir, jpdom_autoglo, 'stress12_i', stress12_i ) 
     399      CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass'  , snwice_mass )   !clem modif 
     400      CALL iom_get( numrir, jpdom_autoglo, 'snwice_mass_b', snwice_mass_b ) !clem modif 
    447401 
    448402      DO jl = 1, jpl  
     
    568522      END DO 
    569523      ! 
    570       !clem CALL iom_close( numrir ) 
     524      !CALL iom_close( numrir ) !clem: closed in sbcice_lim.F90 
    571525      ! 
    572526      CALL wrk_dealloc( nlay_i, zs_zero ) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r4161 r4205  
    3838   USE cpl_oasis3, ONLY : lk_cpl 
    3939   USE traqsr           ! clem: add penetration of solar flux into the calculation of heat budget 
    40    USE oce,        ONLY : sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass, sshu_b, sshv_b, sshu_n, sshv_n, sshf_n 
     40   USE oce,        ONLY : iatte, oatte, sshn, sshb, snwice_mass, snwice_mass_b, snwice_fmass, sshu_b, sshv_b, sshu_n, sshv_n, sshf_n 
    4141   USE dom_ice,    ONLY : tms 
    4242   USE lib_fortran      ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     
    249249            ! mass flux at the ocean/ice interface (sea ice fraction) 
    250250            zemp_snw = rdm_snw(ji,jj) * r1_rdtice                         ! snow melting = pure water that enters the ocean 
    251             zfmm     = rdm_ice(ji,jj) * r1_rdtice                         ! Freezing minus mesting   
     251            zfmm     = rdm_ice(ji,jj) * r1_rdtice                         ! Freezing minus melting   
    252252 
    253253            fmmflx(ji,jj) = zfmm                                     ! F/M mass flux save at least for biogeochemical model 
     
    416416      ENDIF 
    417417      ! clem modif 
    418       iatte(:,:) = 1._wp 
    419       oatte(:,:) = 1._wp 
    420       ! 
    421       !                                      ! embedded sea ice 
    422       IF( nn_ice_embd /= 0 ) THEN            ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 
    423          snwice_mass  (:,:) = tms(:,:) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  ) 
    424          snwice_mass_b(:,:) = snwice_mass(:,:) 
    425       ELSE 
    426          snwice_mass  (:,:) = 0.0_wp         ! no mass exchanges 
    427          snwice_mass_b(:,:) = 0.0_wp         ! no mass exchanges 
    428       ENDIF 
    429       IF( nn_ice_embd == 2  .AND.         &  ! full embedment (case 2) & no restart 
    430          &  .NOT. ln_rstart ) THEN           ! deplete the initial ssh below sea-ice area 
    431          sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    432          sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
    433          ! 
    434          ! Note: Changed the initial values of sshb and sshn=>  need to recompute ssh[u,v,f]_[b,n]  
    435          !       which were previously set in domvvl 
    436          IF ( lk_vvl ) THEN            ! Is this necessary? embd 2 should be restricted to vvl only??? 
    437             DO jj = 1, jpjm1 
    438                DO ji = 1, jpim1                    ! caution: use of Vector Opt. not possible 
    439                   zcoefu = 0.5  * umask(ji,jj,1) / ( e1u(ji,jj) * e2u(ji,jj) ) 
    440                   zcoefv = 0.5  * vmask(ji,jj,1) / ( e1v(ji,jj) * e2v(ji,jj) ) 
    441                   zcoeff = 0.25 * umask(ji,jj,1) * umask(ji,jj+1,1) 
    442                   sshu_b(ji,jj) = zcoefu * ( e1t(ji  ,jj) * e2t(ji  ,jj) * sshb(ji  ,jj)     & 
    443                      &                     + e1t(ji+1,jj) * e2t(ji+1,jj) * sshb(ji+1,jj) ) 
    444                   sshv_b(ji,jj) = zcoefv * ( e1t(ji,jj  ) * e2t(ji,jj  ) * sshb(ji,jj  )     & 
    445                      &                     + e1t(ji,jj+1) * e2t(ji,jj+1) * sshb(ji,jj+1) ) 
    446                   sshu_n(ji,jj) = zcoefu * ( e1t(ji  ,jj) * e2t(ji  ,jj) * sshn(ji  ,jj)     & 
    447                      &                     + e1t(ji+1,jj) * e2t(ji+1,jj) * sshn(ji+1,jj) ) 
    448                   sshv_n(ji,jj) = zcoefv * ( e1t(ji,jj  ) * e2t(ji,jj  ) * sshn(ji,jj  )     & 
    449                      &                     + e1t(ji,jj+1) * e2t(ji,jj+1) * sshn(ji,jj+1) ) 
     418      IF( .NOT. ln_rstart ) THEN 
     419         iatte(:,:) = 1._wp 
     420         oatte(:,:) = 1._wp 
     421      ENDIF 
     422      ! 
     423      ! clem: snwice_mass in the restart file now 
     424      IF( .NOT. ln_rstart ) THEN 
     425         !                                      ! embedded sea ice 
     426         IF( nn_ice_embd /= 0 ) THEN            ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 
     427            snwice_mass  (:,:) = tms(:,:) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  ) 
     428            snwice_mass_b(:,:) = snwice_mass(:,:) 
     429         ELSE 
     430            snwice_mass  (:,:) = 0.0_wp         ! no mass exchanges 
     431            snwice_mass_b(:,:) = 0.0_wp         ! no mass exchanges 
     432         ENDIF 
     433         IF( nn_ice_embd == 2 ) THEN            ! full embedment (case 2) deplete the initial ssh below sea-ice area 
     434            sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
     435            sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
     436            ! 
     437            ! Note: Changed the initial values of sshb and sshn=>  need to recompute ssh[u,v,f]_[b,n]  
     438            !       which were previously set in domvvl 
     439            IF ( lk_vvl ) THEN            ! Is this necessary? embd 2 should be restricted to vvl only??? 
     440               DO jj = 1, jpjm1 
     441                  DO ji = 1, jpim1                    ! caution: use of Vector Opt. not possible 
     442                     zcoefu = 0.5  * umask(ji,jj,1) / ( e1u(ji,jj) * e2u(ji,jj) ) 
     443                     zcoefv = 0.5  * vmask(ji,jj,1) / ( e1v(ji,jj) * e2v(ji,jj) ) 
     444                     zcoeff = 0.25 * umask(ji,jj,1) * umask(ji,jj+1,1) 
     445                     sshu_b(ji,jj) = zcoefu * ( e1t(ji  ,jj) * e2t(ji  ,jj) * sshb(ji  ,jj)     & 
     446                        &                     + e1t(ji+1,jj) * e2t(ji+1,jj) * sshb(ji+1,jj) ) 
     447                     sshv_b(ji,jj) = zcoefv * ( e1t(ji,jj  ) * e2t(ji,jj  ) * sshb(ji,jj  )     & 
     448                        &                     + e1t(ji,jj+1) * e2t(ji,jj+1) * sshb(ji,jj+1) ) 
     449                     sshu_n(ji,jj) = zcoefu * ( e1t(ji  ,jj) * e2t(ji  ,jj) * sshn(ji  ,jj)     & 
     450                        &                     + e1t(ji+1,jj) * e2t(ji+1,jj) * sshn(ji+1,jj) ) 
     451                     sshv_n(ji,jj) = zcoefv * ( e1t(ji,jj  ) * e2t(ji,jj  ) * sshn(ji,jj  )     & 
     452                        &                     + e1t(ji,jj+1) * e2t(ji,jj+1) * sshn(ji,jj+1) ) 
     453                  END DO 
    450454               END DO 
    451             END DO 
    452             CALL lbc_lnk( sshu_b, 'U', 1. )   ;   CALL lbc_lnk( sshu_n, 'U', 1. ) 
    453             CALL lbc_lnk( sshv_b, 'V', 1. )   ;   CALL lbc_lnk( sshv_n, 'V', 1. ) 
    454             DO jj = 1, jpjm1 
    455                DO ji = 1, jpim1      ! NO Vector Opt. 
    456                   sshf_n(ji,jj) = 0.5  * umask(ji,jj,1) * umask(ji,jj+1,1)                   & 
    457                        &               / ( e1f(ji,jj  ) * e2f(ji,jj  ) )                     & 
    458                        &               * ( e1u(ji,jj  ) * e2u(ji,jj  ) * sshu_n(ji,jj  )     & 
    459                        &                 + e1u(ji,jj+1) * e2u(ji,jj+1) * sshu_n(ji,jj+1) ) 
     455               CALL lbc_lnk( sshu_b, 'U', 1. )   ;   CALL lbc_lnk( sshu_n, 'U', 1. ) 
     456               CALL lbc_lnk( sshv_b, 'V', 1. )   ;   CALL lbc_lnk( sshv_n, 'V', 1. ) 
     457               DO jj = 1, jpjm1 
     458                  DO ji = 1, jpim1      ! NO Vector Opt. 
     459                     sshf_n(ji,jj) = 0.5  * umask(ji,jj,1) * umask(ji,jj+1,1)                   & 
     460                          &               / ( e1f(ji,jj  ) * e2f(ji,jj  ) )                     & 
     461                          &               * ( e1u(ji,jj  ) * e2u(ji,jj  ) * sshu_n(ji,jj  )     & 
     462                          &                 + e1u(ji,jj+1) * e2u(ji,jj+1) * sshu_n(ji,jj+1) ) 
     463                  END DO 
    460464               END DO 
    461             END DO 
    462             CALL lbc_lnk( sshf_n, 'F', 1. ) 
    463           ENDIF 
    464       ENDIF 
     465               CALL lbc_lnk( sshf_n, 'F', 1. ) 
     466            ENDIF 
     467         ENDIF 
     468      ENDIF ! .NOT. ln_rstart 
    465469      ! 
    466470!!?      IF( .NOT. ln_rstart ) THEN           ! delete the initial ssh below sea-ice area 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r4161 r4205  
    2222   USE phycst         ! physical constants 
    2323   USE dom_oce        ! ocean space and time domain variables 
     24   USE oce     , ONLY :  iatte, oatte 
    2425   USE ice            ! LIM: sea-ice variables 
    2526   USE par_ice        ! LIM: sea-ice parameters 
     
    220221            ! 
    221222            ! Energy needed to bring ocean surface layer until its freezing (qcmif, limflx) 
    222             qcmif  (ji,jj) =  rau0 * rcp * fse3t(ji,jj,1) * ( t_bo(ji,jj) - (sst_m(ji,jj) + rt0) ) 
     223            qcmif  (ji,jj) =  rau0 * rcp * fse3t_m(ji,jj,1) * ( t_bo(ji,jj) - (sst_m(ji,jj) + rt0) ) 
    223224            ! 
    224225            ! oceanic heat flux (limthd_dh) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r4161 r4205  
    656656         DO ji = kideb , kiut 
    657657            ! snow temperatures       
    658             IF (ht_s_b(ji).GT.0) & 
     658            IF (ht_s_b(ji).GT.0._wp) & 
    659659               t_s_b(ji,nlay_s)     =  (zindtbis(ji,nlay_s+1) - ztrid(ji,nlay_s+1,3) & 
    660660               *  t_i_b(ji,1))/zdiagbis(ji,nlay_s+1) & 
     
    692692            DO ji = kideb , kiut 
    693693               ztmelt_i        = -tmut * s_i_b(ji,layer) + rtt  
    694                t_i_b(ji,layer) =  MAX(MIN(t_i_b(ji,layer),ztmelt_i),190.0) 
     694               t_i_b(ji,layer) =  MAX(MIN(t_i_b(ji,layer),ztmelt_i), 190._wp) 
    695695               zerrit(ji)      =  MAX(zerrit(ji),ABS(t_i_b(ji,layer) - ztitemp(ji,layer))) 
    696696            END DO 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r4161 r4205  
    7474      REAL(wp) ::   zindb  , zindsn , zindic, zindh, zinda      ! local scalar 
    7575      REAL(wp) ::   zusvosn, zusvoic, zbigval     !   -      - 
    76       REAL(wp) ::   zcfl , zusnit , zrtt          !   -      - 
     76      REAL(wp) ::   zcfl , zusnit                 !   -      - 
    7777      REAL(wp) ::   ze   , zsal   , zage          !   -      - 
    7878      ! 
     
    450450                  zusvosn         = 1.0/MAX( v_s(ji,jj,jl) , epsi16 ) 
    451451                  zusvoic         = 1.0/MAX( v_i(ji,jj,jl) , epsi16 ) 
    452                   zrtt            = 173.15 * rone  
    453452                  zindsn          = MAX( rzero, SIGN( rone, v_s(ji,jj,jl) - epsi10 ) ) 
    454453                  zindic          = MAX( rzero, SIGN( rone, v_i(ji,jj,jl) - epsi10 ) ) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90

    r4161 r4205  
    180180               ht_s(ji,jj,jl) = v_s (ji,jj,jl) / MAX( a_i(ji,jj,jl) , epsi10 ) * zindb 
    181181               o_i(ji,jj,jl)  = oa_i(ji,jj,jl) / MAX( a_i(ji,jj,jl) , epsi10 ) * zindb 
    182                a_i(ji,jj,jl) = a_i (ji,jj,jl) * zindb ! clem correction 
    183182            END DO 
    184183         END DO 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r4161 r4205  
    2222   REAL(wp), PUBLIC ::   hicmin      !: (REMOVE) 
    2323   REAL(wp), PUBLIC ::   hiclim      !: minimum ice thickness 
    24    REAL(wp), PUBLIC ::   amax        !: maximum lead fraction 
    2524   REAL(wp), PUBLIC ::   sbeta       !: numerical scheme for diffusion in ice  (REMOVE) 
    2625   REAL(wp), PUBLIC ::   parlat      !: (REMOVE) 
Note: See TracChangeset for help on using the changeset viewer.