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 4205 – NEMO

Changeset 4205


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

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r4161 r4205  
    4949   cw          =   5.0e-03 !  drag coefficient for oceanic stress 
    5050   angvg       =   0.0     !  turning angle for oceanic stress 
    51    pstar       =   4.0e+04 !  1st bulk-rheology parameter 
     51   pstar       =   2.0e+04 !  1st bulk-rheology parameter 
    5252   c_rhg       =  20.0     !  2nd bulk-rhelogy parameter 
    5353   etamn       =   0.0e+07 !  minimun value for viscosity 
     
    5858   telast      =9600.0     !  timescale for elastic waves, SB, 720.0 
    5959   alphaevp    =   1.0     !  coefficient for the solution of internal ice stresses 
    60    hminrhg     =   0.05     !  ice thickness (m) below which ice velocity equal ocean velocity 
     60   hminrhg     =   0.001   !  ice volume (a*h in m) below which ice velocity equal ocean velocity 
    6161/ 
    6262!----------------------------------------------------------------------- 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/CONFIG/SHARED/namelist_ref

    r4161 r4205  
    212212                           !  =1 use observed ice-cover      , 
    213213                           !  =2 ice-model used                         ("key_lim3" or "key_lim2) 
    214    nn_ice_embd = 0         !  =0 levitating ice (no mass exchange, concentration/dilution effect) 
     214   nn_ice_embd = 1         !  =0 levitating ice (no mass exchange, concentration/dilution effect) 
    215215                           !  =1 levitating ice with mass and salt exchange but no presure effect 
    216216                           !  =2 embedded sea-ice (full salt and mass exchanges and pressure) 
     
    225225   ln_cdgw = .false.       !  Neutral drag coefficient read from wave model (T => fill namsbc_wave) 
    226226   ln_sdw  = .false.       !  Computation of 3D stokes drift                (T => fill namsbc_wave) 
     227   cn_iceflx = 'linear'    !  redistribution of solar input into ice categories during coupling ice/atm. 
    227228/ 
    228229!----------------------------------------------------------------------- 
     
    283284   ln_taudif   = .false.   !  HF tau contribution: use "mean of stress module - module of the mean stress" data 
    284285   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow) 
    285    rn_vfac     = 0.        !  multiplicative factor for ocean/ice velocity 
    286286   rn_efac     = 1.        !  multiplicative factor for evaporation (0. or 1.) 
     287   rn_vfac     = 0.        !  multiplicative factor for ocean/ice velocity  
    287288                           !  in the calculation of the wind stress (0.=absolute winds or 1.=relative winds) 
    288289/ 
     
    532533                                          !  = 2, use tidal harmonic forcing data from files 
    533534                                          !  = 3, use external data AND tidal harmonic forcing 
    534     nn_dyn3d      =  0                    !  boundary conditions for baroclinic velocities 
    535     nn_dyn3d_dta  =  0                    !  = 0, bdy data are equal to the initial state 
    536                            !  = 1, bdy data are read in 'bdydata   .nc' files 
    537     nn_tra        =  1                    !  boundary conditions for T and S 
     535    nn_dyn3d      =  1                    !  boundary conditions for baroclinic velocities.....0=None/1=FRS 
     536    nn_dyn3d_dta  =  1                    !  = 0, bdy data are equal to the initial state 
     537                                          !  = 1, bdy data are read in 'bdydata   .nc' files 
     538    nn_tra        =  1                    !  boundary conditions for T and S...................0=None/1=FRS 
    538539    nn_tra_dta    =  1                    !  = 0, bdy data are equal to the initial state 
    539                            !  = 1, bdy data are read in 'bdydata   .nc' files 
     540                                          !  = 1, bdy data are read in 'bdydata   .nc' files 
     541!    nn_ice_lim      =  1                  !  boundary conditions for ice.......................0=None/1=FRS 
     542!    nn_ice_lim_dta  =  1                  !  = 0, bdy data are equal to the initial state 
     543!                                          !  = 1, bdy data are read in 'bdydata   .nc' files 
     544 
    540545    nn_rimwidth  = 10                      !  width of the relaxation zone 
    541546    ln_vol     = .false.                  !  total volume correction (see nn_volctl parameter) 
     
    554559   bn_tem  =    'amm12_bdyT_tra' ,         24        , 'votemper' ,     .true.     , .false. ,  'daily'  ,    ''    ,   '' 
    555560   bn_sal  =    'amm12_bdyT_tra' ,         24        , 'vosaline' ,     .true.     , .false. ,  'daily'  ,    ''    ,   '' 
     561!   bn_a_i  =    'amm12_bdyT_ice' ,         24        , 'ileadfra' ,     .true.     , .false. ,  'daily'  ,    ''    ,   '' 
     562!   bn_ht_i =    'amm12_bdyT_ice' ,         24        , 'iicethic' ,     .true.     , .false. ,  'daily'  ,    ''    ,   '' 
     563!   bn_ht_s =    'amm12_bdyT_ice' ,         24        , 'isnowthi' ,     .true.     , .false. ,  'daily'  ,    ''    ,   '' 
    556564   cn_dir  =    'bdydta/' 
    557565   ln_full_vel = .false. 
  • 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) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r4166 r4205  
    260260            CALL ctl_warn( 'dia_hsb does not take open boundary fluxes into account' )          
    261261         ENDIF 
    262                                                      
    263262         ! 
    264263         CALL dia_hsb_rst( nit000, 'READ' )  !* read or initialize all required files 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r4187 r4205  
    406406 
    407407 
    408    FUNCTION iom_varid ( kiomid, cdvar, kdimsz, ldstop )   
     408   FUNCTION iom_varid ( kiomid, cdvar, kdimsz, kndims, ldstop )   
    409409      !!----------------------------------------------------------------------- 
    410410      !!                  ***  FUNCTION  iom_varid  *** 
     
    415415      CHARACTER(len=*)     , INTENT(in   )           ::   cdvar    ! name of the variable 
    416416      INTEGER, DIMENSION(:), INTENT(  out), OPTIONAL ::   kdimsz   ! size of the dimensions 
     417      INTEGER,               INTENT(  out), OPTIONAL ::   kndims   ! size of the dimensions 
    417418      LOGICAL              , INTENT(in   ), OPTIONAL ::   ldstop   ! stop if looking for non-existing variable (default = .TRUE.) 
    418419      ! 
     
    446447                  SELECT CASE (iom_file(kiomid)%iolib) 
    447448                  CASE (jpioipsl )   ;   iom_varid = iom_ioipsl_varid( kiomid, cdvar, iiv, kdimsz ) 
    448                   CASE (jpnf90   )   ;   iom_varid = iom_nf90_varid  ( kiomid, cdvar, iiv, kdimsz ) 
     449                  CASE (jpnf90   )   ;   iom_varid = iom_nf90_varid  ( kiomid, cdvar, iiv, kdimsz, kndims ) 
    449450                  CASE (jprstdimg)   ;   iom_varid = -1   ! all variables are listed in iom_file 
    450451                  CASE DEFAULT    
     
    467468                  ENDIF 
    468469               ENDIF 
     470               IF( PRESENT(kndims) )  kndims = iom_file(kiomid)%ndims(iiv) 
    469471            ENDIF 
    470472         ENDIF 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/IOM/iom_def.F90

    r3680 r4205  
    4444 
    4545   INTEGER, PARAMETER, PUBLIC ::   jpmax_files  = 100   !: maximum number of simultaneously opened file 
    46    INTEGER, PARAMETER, PUBLIC ::   jpmax_vars   = 360  !: maximum number of variables in one file 
     46   INTEGER, PARAMETER, PUBLIC ::   jpmax_vars   = 600  !: maximum number of variables in one file 
    4747   INTEGER, PARAMETER, PUBLIC ::   jpmax_dims   =  4   !: maximum number of dimensions for one variable 
    4848   INTEGER, PARAMETER, PUBLIC ::   jpmax_digits =  5   !: maximum number of digits for the cpu number in the file name 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r4147 r4205  
    132132                     CALL iom_rstput( kt, nitrst, numrow, 'rhd'    , rhd       ) 
    133133#endif 
     134                     CALL iom_rstput( kt, nitrst, numrow, 'iatte'  , iatte     ) !clem modif 
     135                     CALL iom_rstput( kt, nitrst, numrow, 'oatte'  , oatte     ) !clem modif 
    134136      IF( kt == nitrst ) THEN 
    135137         CALL iom_close( numrow )     ! close the restart file (only at last time step) 
     
    232234      ENDIF 
    233235      ! 
     236      CALL iom_get( numror, jpdom_autoglo, 'iatte' , iatte ) ! clem modif 
     237      CALL iom_get( numror, jpdom_autoglo, 'oatte' , oatte ) ! clem modif 
     238      ! 
    234239   END SUBROUTINE rst_read 
    235240 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r4161 r4205  
    8282   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  qsr_hc , qsr_hc_b   !: heat content trend due to qsr flux     [K.m/s] jpi,jpj,jpk 
    8383   !! 
    84    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   oatte, iatte      !: clem attenuation coef of the input solar flux [unitless] 
    8584   !! 
    8685   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   tprecip           !: total precipitation                          [Kg/m2/s] 
     
    127126         ! 
    128127      ALLOCATE( rnf  (jpi,jpj) , sbc_tsc  (jpi,jpj,jpts) , qsr_hc  (jpi,jpj,jpk) ,     & 
    129          &      rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) ,     & 
    130          &      iatte(jpi,jpj) , oatte    (jpi,jpj)                              , STAT=ierr(3) ) 
     128         &      rnf_b(jpi,jpj) , sbc_tsc_b(jpi,jpj,jpts) , qsr_hc_b(jpi,jpj,jpk) , STAT=ierr(3) ) 
    131129         ! 
    132130      ALLOCATE( tprecip(jpi,jpj) , sprecip(jpi,jpj) , fr_i(jpi,jpj) ,     & 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r4161 r4205  
    153153      CALL wrk_alloc( jpi,jpj,jpl, zalb_ice_os, zalb_ice_cs ) 
    154154 
    155       IF ( ln_cpl .OR. ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    156          CALL wrk_alloc( jpi,jpj,jpl, zalb_ice) 
    157       END IF 
    158       IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    159          CALL wrk_alloc( jpi,jpj, ztem_ice_all, zalb_ice_all, z_qsr_ice_all, z_qns_ice_all, z_qla_ice_all, z_dqns_ice_all, z_dqla_ice_all) 
    160       ENDIF 
    161  
     155#if defined key_coupled 
     156      IF ( ln_cpl .OR. ln_iceflx_ave .OR. ln_iceflx_linear ) CALL wrk_alloc( jpi,jpj,jpl, zalb_ice) 
     157      IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) & 
     158         &   CALL wrk_alloc( jpi,jpj, ztem_ice_all, zalb_ice_all, z_qsr_ice_all, z_qns_ice_all, z_qla_ice_all, z_dqns_ice_all, z_dqla_ice_all) 
     159#endif 
    162160 
    163161      IF( kt == nit000 ) THEN 
     
    169167         ! 
    170168         IF( ln_nicep ) THEN      ! control print at a given point 
    171             jiindx = 15   ;   jjindx = 46 
     169            jiindx = 6   ;   jjindx = 47 
    172170            WRITE(numout,*) ' The debugging point is : jiindx : ',jiindx, ' jjindx : ',jjindx 
    173171         ENDIF 
     
    193191         IF ( ln_cpl ) zalb_ice (:,:,:) = 0.5 * ( zalb_ice_cs (:,:,:) +  zalb_ice_os (:,:,:) ) 
    194192          
     193#if defined key_coupled 
    195194         IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    196195            ! 
     
    200199            ! 
    201200         ENDIF 
    202                                                      ! Bulk formulea - provides the following fields: 
     201#endif 
     202                                               ! Bulk formulea - provides the following fields: 
    203203         ! utau_ice, vtau_ice : surface ice stress                     (U- & V-points)   [N/m2] 
    204204         ! qsr_ice , qns_ice  : solar & non solar heat flux over ice   (T-point)         [W/m2] 
     
    238238 
    239239         ! Average over all categories 
     240#if defined key_coupled 
    240241         IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    241242 
     
    267268            END IF 
    268269         END IF 
    269  
     270#endif 
    270271         !                                           !----------------------! 
    271272         !                                           ! LIM-3  time-stepping ! 
     
    283284         old_smv_i(:,:,:)   = smv_i(:,:,:)     ! salt content 
    284285         old_oa_i (:,:,:)   = oa_i (:,:,:)     ! areal age content 
    285  
     286         ! 
     287         old_u_ice(:,:) = u_ice(:,:) 
     288         old_v_ice(:,:) = v_ice(:,:) 
    286289         !                                           ! intialisation to zero    !!gm is it truly necessary ??? 
    287290         d_a_i_thd  (:,:,:)   = 0._wp   ;   d_a_i_trp  (:,:,:)   = 0._wp 
     
    292295         d_smv_i_thd(:,:,:)   = 0._wp   ;   d_smv_i_trp(:,:,:)   = 0._wp 
    293296         d_oa_i_thd (:,:,:)   = 0._wp   ;   d_oa_i_trp (:,:,:)   = 0._wp 
     297         ! 
     298         d_u_ice_dyn(:,:) = 0._wp 
     299         d_v_ice_dyn(:,:) = 0._wp 
    294300         ! 
    295301         sfx    (:,:) = 0._wp   ;   sfx_thd  (:,:) = 0._wp 
     
    373379                          CALL lim_wri( 1  )              ! Ice outputs  
    374380!clem # endif 
    375          IF( kt == nit000 )   CALL iom_close( numrir )  ! clem: close input ice restart file 
     381         IF( kt == nit000 .AND. ln_rstart )   & 
     382            &             CALL iom_close( numrir )        ! clem: close input ice restart file 
     383         ! 
    376384         IF( lrst_ice )   CALL lim_rst_write( kt )        ! Ice restart file  
    377385                          CALL lim_var_glo2eqv            ! ??? 
     
    392400      ! 
    393401      CALL wrk_dealloc( jpi,jpj,jpl, zalb_ice_os, zalb_ice_cs ) 
    394       IF ( ln_cpl .OR. ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    395          CALL wrk_dealloc( jpi,jpj,jpl, zalb_ice) 
    396       END IF 
    397       IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) THEN 
    398          CALL wrk_dealloc( jpi,jpj, ztem_ice_all, zalb_ice_all, z_qsr_ice_all, z_qns_ice_all, z_qla_ice_all, z_dqns_ice_all, z_dqla_ice_all) 
    399       ENDIF 
     402 
     403#if defined key_coupled 
     404      IF ( ln_cpl .OR. ln_iceflx_ave .OR. ln_iceflx_linear ) CALL wrk_dealloc( jpi,jpj,jpl, zalb_ice) 
     405      IF ( ln_iceflx_ave .OR. ln_iceflx_linear ) & 
     406         &    CALL wrk_dealloc( jpi,jpj, ztem_ice_all, zalb_ice_all, z_qsr_ice_all, z_qns_ice_all, z_qla_ice_all, z_dqns_ice_all, z_dqla_ice_all) 
     407#endif 
    400408      ! 
    401409      IF( nn_timing == 1 )  CALL timing_stop('sbc_ice_lim') 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r4161 r4205  
    136136      ENDIF 
    137137 
    138       !   Flux handling over ice categories  
     138      !   Flux handling over ice categories 
     139#if defined key_coupled  
    139140      SELECT CASE ( TRIM (cn_iceflx)) 
    140141      CASE ('ave') 
     
    150151      IF(lwp) WRITE(numout,*) '              Fluxes averaged over all ice categories         ln_iceflx_ave    = ', ln_iceflx_ave 
    151152      IF(lwp) WRITE(numout,*) '              Fluxes distributed linearly over ice categories ln_iceflx_linear = ', ln_iceflx_linear 
     153#endif 
    152154      ! 
    153155      !                              ! allocate sbc arrays 
     
    189191      IF( ( nn_ice == 3 .OR. nn_ice == 4 ) .AND. nn_ice_embd == 0 )   & 
    190192         &   CALL ctl_stop( 'LIM3 and CICE sea-ice models require nn_ice_embd = 1 or 2' ) 
    191  
     193#if defined key_coupled 
    192194      IF( ln_iceflx_ave .AND. ln_iceflx_linear ) & 
    193195         &   CALL ctl_stop( ' ln_iceflx_ave and ln_iceflx_linear options are not compatible' ) 
    194  
    195196      IF( ( nn_ice ==3 .AND. lk_cpl) .AND. .NOT. ( ln_iceflx_ave .OR. ln_iceflx_linear ) ) & 
    196197         &   CALL ctl_stop( ' With lim3 coupled, either ln_iceflx_ave or ln_iceflx_linear must be set to .TRUE.' ) 
    197        
     198#endif       
    198199      IF( ln_dm2dc )   nday_qsr = -1   ! initialisation flag 
    199200 
     
    247248         IF( nsbc ==  6 )   WRITE(numout,*) '              MFS Bulk formulation' 
    248249      ENDIF 
    249  
    250250      ! 
    251251                          CALL sbc_ssm_init               ! Sea-surface mean fields initialisation 
     
    255255      IF( nn_ice == 4 )   CALL cice_sbc_init( nsbc )      ! CICE initialisation 
    256256      ! 
    257  
    258257   END SUBROUTINE sbc_init 
    259258 
     
    329328      CASE(  3 )   ;         CALL sbc_ice_lim  ( kt, nsbc )          ! LIM-3 ice model 
    330329      !is it useful? 
    331       !CASE(  4 )   ;         CALL sbc_ice_cice ( kt, nsbc )          ! CICE ice model 
     330      CASE(  4 )   ;         CALL sbc_ice_cice ( kt, nsbc )          ! CICE ice model 
    332331      END SELECT                                               
    333332 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90

    r4161 r4205  
    4545   LOGICAL , PUBLIC ::   ln_qsr_2bd   !: 2 band         light absorption flag 
    4646   LOGICAL , PUBLIC ::   ln_qsr_bio   !: bio-model      light absorption flag 
     47   LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model LIM3 (clem) 
    4748   INTEGER , PUBLIC ::   nn_chldta    !: use Chlorophyll data (=1) or not (=0) 
    4849   REAL(wp), PUBLIC ::   rn_abs       !: fraction absorbed in the very near surface (RGB & 2 bands) 
    4950   REAL(wp), PUBLIC ::   rn_si0       !: very near surface depth of extinction      (RGB & 2 bands) 
    5051   REAL(wp), PUBLIC ::   rn_si1       !: deepest depth of extinction (water type I)       (2 bands) 
    51    LOGICAL , PUBLIC ::   ln_qsr_ice   !: light penetration for ice-model LIM3 (clem) 
    52  
    5352    
    5453   ! Module variables 
     
    395394      ! 
    396395      ! clem init for oatte and iatte 
    397       oatte(:,:) = 1._wp 
    398       iatte(:,:) = 1._wp 
     396      IF( .NOT. ln_rstart ) THEN 
     397         oatte(:,:) = 1._wp 
     398         iatte(:,:) = 1._wp 
     399      ENDIF 
    399400      ! 
    400401      CALL wrk_alloc( jpi, jpj,      zekb, zekg, zekr        )  
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/oce.F90

    r4152 r4205  
    5757   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   snwice_fmass       !: time evolution of mass of snow+ice               [Kg/m2/s] 
    5858 
     59   !! arrays related to penetration of solar fluxes to calculate the heat budget for sea ice 
     60   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   oatte, iatte       !: attenuation coef of the input solar flux [unitless] 
     61 
    5962   !!---------------------------------------------------------------------- 
    6063   !! NEMO/OPA 4.0 , NEMO Consortium (2011) 
     
    6871      !!                   ***  FUNCTION oce_alloc  *** 
    6972      !!---------------------------------------------------------------------- 
    70       INTEGER :: ierr(3) 
     73      INTEGER :: ierr(4) 
    7174      !!---------------------------------------------------------------------- 
    7275      ! 
     
    9093         &      gru(jpi,jpj)      , grv(jpi,jpj)                      , STAT=ierr(2) ) 
    9194         ! 
    92       ALLOCATE( snwice_mass(jpi,jpj)  , snwice_mass_b(jpi,jpj),             & 
    93          &      snwice_fmass(jpi,jpj), STAT= ierr(3) ) 
     95      ALLOCATE( snwice_mass(jpi,jpj) , snwice_mass_b(jpi,jpj), snwice_fmass(jpi,jpj) , STAT=ierr(3) ) 
     96         ! 
     97      ALLOCATE( iatte(jpi,jpj) , oatte(jpi,jpj) , STAT=ierr(4) ) 
    9498         ! 
    9599      oce_alloc = MAXVAL( ierr ) 
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/OPA_SRC/par_oce.F90

    r4147 r4205  
    5656   !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr 
    5757   REAL(wp)      ::   pp_not_used       = 999999._wp   !: vertical grid parameter 
    58    REAL(wp)      ::   pp_to_be_computed = 999998._wp   !:    -      -       - 
     58   REAL(wp)      ::   pp_to_be_computed = 999999._wp   !:    -      -       - 
    5959 
    6060 
Note: See TracChangeset for help on using the changeset viewer.