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 8321 for branches/2017 – NEMO

Changeset 8321 for branches/2017


Ignore:
Timestamp:
2017-07-11T20:33:18+02:00 (7 years ago)
Author:
clem
Message:

STEP3 (1): clean separation between sea-ice and ocean

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM
Files:
3 added
2 deleted
21 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/namelist_ice_cfg

    r8312 r8321  
    99!!              7 - Ice salinity                       (namicesal) 
    1010!!              8 - Ice mechanical redistribution      (namiceitdme) 
     11!!              9 - Ice/snow albedos                   (namicealb) 
    1112!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1213!------------------------------------------------------------------------------ 
     
    4243!------------------------------------------------------------------------------ 
    4344/ 
     45!----------------------------------------------------------------------- 
     46&namicealb     !   albedo parameters 
     47!----------------------------------------------------------------------- 
     48/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/ORCA2_SAS_LIM3/EXP00/namelist_ice_cfg

    r8312 r8321  
    99!!              7 - Ice salinity                       (namicesal) 
    1010!!              8 - Ice mechanical redistribution      (namiceitdme) 
     11!!              9 - Ice/snow albedos                   (namicealb) 
    1112!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1213!------------------------------------------------------------------------------ 
     
    4243!------------------------------------------------------------------------------ 
    4344/ 
     45!----------------------------------------------------------------------- 
     46&namicealb     !   albedo parameters 
     47!----------------------------------------------------------------------- 
     48/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref

    r8313 r8321  
    99!!              7 - Ice salinity                       (namicesal) 
    1010!!              8 - Ice mechanical redistribution      (namiceitdme) 
     11!!              9 - Ice/snow albedos                   (namicealb) 
    1112!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1213! 
     
    140141                  ! -- limitd_th -- ! 
    141142   rn_himin       = 0.1             !  minimum ice thickness (m) used in remapping, must be smaller than rn_hnewice 
     143                     ! -- icestp -- ! 
     144   nn_limflx      = -1              !  LIM3 Multi-category heat flux formulation (use -1 if LIM3 is not used) 
     145                                    !  =-1  Use per-category fluxes, bypass redistributor, forced mode only, not yet implemented coupled 
     146                                    !  = 0  Average per-category fluxes (forced and coupled mode) 
     147                                    !  = 1  Average and redistribute per-category fluxes, forced mode only, not yet implemented coupled 
     148                                    !  = 2  Redistribute a single flux over categories (coupled mode only) 
    142149/ 
    143150!------------------------------------------------------------------------------ 
     
    190197   rn_fpondrft    =   1.0           !     (ln_rafting = T) pond fraction that survives in rafting (0.5 a priori) 
    191198/ 
     199!----------------------------------------------------------------------- 
     200&namicealb     !   albedo parameters 
     201!----------------------------------------------------------------------- 
     202   nn_ice_alb   =    1   !  parameterization of ice/snow albedo 
     203                         !     0: Shine & Henderson-Sellers (JGR 1985), giving clear-sky albedo 
     204                         !     1: "home made" based on Brandt et al. (JClim 2005) and Grenfell & Perovich (JGR 2004), 
     205                         !        giving cloud-sky albedo 
     206   rn_alb_sdry  =  0.85  !  dry snow albedo         : 0.80 (nn_ice_alb = 0); 0.85 (nn_ice_alb = 1); obs 0.85-0.87 (cloud-sky) 
     207   rn_alb_smlt  =  0.75  !  melting snow albedo     : 0.65 ( '' )          ; 0.75 ( '' )          ; obs 0.72-0.82 ( '' ) 
     208   rn_alb_idry  =  0.60  !  dry ice albedo          : 0.72 ( '' )          ; 0.60 ( '' )          ; obs 0.54-0.65 ( '' ) 
     209   rn_alb_imlt  =  0.50  !  bare puddled ice albedo : 0.53 ( '' )          ; 0.50 ( '' )          ; obs 0.49-0.58 ( '' ) 
     210   rn_alb_dpnd  =  0.27  !  ponded ice albedo       : 0.25 ( '' )          ; 0.27 ( '' )          ; obs 0.10-0.30 ( '' ) 
     211/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8316 r8321  
    192192                           !  =1 opa-sas OASIS coupling: multi executable configuration, OPA component 
    193193                           !  =2 opa-sas OASIS coupling: multi executable configuration, SAS component  
    194    nn_limflx = -1          !  LIM3 Multi-category heat flux formulation (use -1 if LIM3 is not used) 
    195                            !  =-1  Use per-category fluxes, bypass redistributor, forced mode only, not yet implemented coupled 
    196                            !  = 0  Average per-category fluxes (forced and coupled mode) 
    197                            !  = 1  Average and redistribute per-category fluxes, forced mode only, not yet implemented coupled 
    198                            !  = 2  Redistribute a single flux over categories (coupled mode only) 
    199194                     ! Sea-ice : 
    200195   nn_ice      = 2         !  =0 no ice boundary condition   , 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/CONFIG/TEST_CASES/SAS_BIPER/EXP00/namelist_ice_cfg

    r8312 r8321  
    99!!              7 - Ice salinity                       (namicesal) 
    1010!!              8 - Ice mechanical redistribution      (namiceitdme) 
     11!!              9 - Ice/snow albedos                   (namicealb) 
    1112!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    1213! 
     
    8081   ln_rafting     =   .true.        !  rafting activated (T) or not (F) => DO NOT TOUCH UNLESS U KNOW WHAT U DO 
    8182/ 
     83!----------------------------------------------------------------------- 
     84&namicealb     !   albedo parameters 
     85!----------------------------------------------------------------------- 
     86/ 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r8319 r8321  
    1717   PRIVATE 
    1818 
    19    PUBLIC    ice_alloc  !  Called in sbc_lim_init 
     19   PUBLIC    ice_alloc  !  Called in ice_init 
    2020 
    2121   !!====================================================================== 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limdiahsb.F90

    r8319 r8321  
    2828   PRIVATE 
    2929 
    30    PUBLIC   lim_diahsb        ! routine called by ice_step.F90 
    31    PUBLIC   lim_diahsb_init   ! routine called in sbcice_lim.F90 
     30   PUBLIC   lim_diahsb        ! routine called by icestp.F90 
     31   PUBLIC   lim_diahsb_init   ! routine called in icestp.F90 
    3232 
    3333   REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   vol_loc_ini, sal_loc_ini, tem_loc_ini ! initial volume, salt and heat contents 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r8316 r8321  
    3232   PRIVATE 
    3333 
    34    PUBLIC   lim_dyn        ! routine called by sbcice_lim.F90 
    35    PUBLIC   lim_dyn_init   ! routine called by sbcice_lim.F90 
     34   PUBLIC   lim_dyn        ! routine called by icestp.F90 
     35   PUBLIC   lim_dyn_init   ! routine called by icestp.F90 
    3636 
    3737   !! * Substitutions 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r8319 r8321  
    3636   PUBLIC   lim_itd_me_icestrength 
    3737   PUBLIC   lim_itd_me_init 
    38    PUBLIC   lim_itd_me_alloc        ! called by sbc_lim_init  
     38   PUBLIC   lim_itd_me_alloc        ! called by ice_init  
    3939 
    4040   !----------------------------------------------------------------------- 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90

    r8233 r8321  
    6060   PRIVATE 
    6161 
    62    PUBLIC   lim_mp_init    ! routine called by sbcice_lim.F90 
    63    PUBLIC   lim_mp         ! routine called by sbcice_lim.F90 
     62   PUBLIC   lim_mp_init    ! routine called by icestp.F90 
     63   PUBLIC   lim_mp         ! routine called by icestp.F90 
    6464 
    6565   !! * Substitutions 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90

    r8316 r8321  
    3232   PUBLIC   lim_rst_opn    ! routine called by icestep.F90 
    3333   PUBLIC   lim_rst_write  ! routine called by icestep.F90 
    34    PUBLIC   lim_rst_read   ! routine called by sbc_lim_init 
     34   PUBLIC   lim_rst_read   ! routine called by ice_init 
    3535 
    3636   LOGICAL, PUBLIC ::   lrst_ice         !: logical to control the ice restart write  
     
    636636      ENDIF 
    637637      ! 
    638       !CALL iom_close( numrir ) !clem: closed in sbcice_lim.F90 
     638      !CALL iom_close( numrir ) !clem: closed in icestp.F90 
    639639      ! 
    640640      CALL wrk_dealloc( jpi, jpj, z2d ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r8316 r8321  
    3131   USE sbc_oce , ONLY : nn_fsbc, ln_ice_embd, sfx, fr_i, qsr_tot, qns, qsr, fmmflx, emp, taum, utau, vtau 
    3232   USE sbccpl         ! Surface boundary condition: coupled interface 
    33    USE albedo         ! albedo parameters 
     33   USE albedoice      ! albedo parameters 
    3434   USE traqsr         ! add penetration of solar flux in the calculation of heat budget 
    3535   USE domvvl         ! Variable volume 
     
    4848   PRIVATE 
    4949 
    50    PUBLIC   lim_sbc_init   ! called by sbc_lim_init 
    51    PUBLIC   lim_sbc_flx    ! called by sbc_ice_lim 
    52    PUBLIC   lim_sbc_tau    ! called by sbc_ice_lim 
     50   PUBLIC   lim_sbc_init   ! called by ice_init 
     51   PUBLIC   lim_sbc_flx    ! called by ice_stp 
     52   PUBLIC   lim_sbc_tau    ! called by ice_stp 
    5353 
    5454   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::   utau_oce, vtau_oce   ! air-ocean surface i- & j-stress     [N/m2] 
     
    124124 
    125125      zalb(:,:) = 0._wp 
    126       WHERE     ( at_i_b <= epsi06 )  ;  zalb(:,:) = 0.066_wp 
     126      WHERE     ( at_i_b <= epsi06 )  ;  zalb(:,:) = rn_alb_oce 
    127127      ELSEWHERE                       ;  zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
    128128      END WHERE 
    129129      IF( iom_use('icealb'  ) )  CALL iom_put( "icealb"   , zalb(:,:) )          ! ice albedo output 
    130130 
    131       zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + 0.066_wp * ( 1._wp - at_i_b )       
     131      zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + rn_alb_oce * ( 1._wp - at_i_b )       
    132132      IF( iom_use('albedo'  ) )        CALL iom_put( "albedo"  , zalb(:,:) )           ! surface albedo output 
    133133 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r8316 r8321  
    2323   USE dom_oce        ! ocean space and time domain variables 
    2424   USE ice            ! sea-ice variables 
    25    USE sbc_oce , ONLY : sst_m, e3t_m, utau, vtau, ssu_m, ssv_m, frq_m, qns_tot, qsr_tot, sprecip 
    26    USE sbc_ice , ONLY : qsr_oce, qns_oce, qemp_oce, qsr_ice, qns_ice, dqns_ice, evap_ice, qprec_ice, qevap_ice, fr1_i0, fr2_i0 
     25   USE sbc_oce , ONLY : sst_m, e3t_m, utau, vtau, ssu_m, ssv_m, frq_m, qns_tot, qsr_tot, sprecip, ln_cpl 
     26   USE sbc_ice , ONLY : qsr_oce, qns_oce, qemp_oce, qsr_ice, qns_ice, dqns_ice, evap_ice, qprec_ice, qevap_ice, & 
     27      &                 fr1_i0, fr2_i0, nn_limflx 
    2728   USE thd_ice        ! thermodynamic sea-ice variables 
    2829   USE limthd_dif     ! vertical diffusion 
     
    4950 
    5051   PUBLIC   lim_thd         ! called by limstp module 
    51    PUBLIC   lim_thd_init    ! called by sbc_lim_init 
     52   PUBLIC   lim_thd_init    ! called by ice_init 
    5253 
    5354   !! * Substitutions 
     
    594595         &                ln_limdH, rn_betas,                                                             & 
    595596         &                ln_limdA, rn_beta, rn_dmin,                                                     & 
    596          &                ln_limdO, rn_hnewice, ln_frazil, rn_maxfrazb, rn_vfrazb, rn_Cfrazb, rn_himin 
     597         &                ln_limdO, rn_hnewice, ln_frazil, rn_maxfrazb, rn_vfrazb, rn_Cfrazb, rn_himin,   & 
     598         &                nn_limflx 
    597599      !!------------------------------------------------------------------- 
    598600      ! 
     
    632634         WRITE(numout,*)'      minimum ice thickness                                   rn_himin     = ', rn_himin  
    633635         WRITE(numout,*)'      check heat conservation in the ice/snow                 con_i        = ', con_i 
     636         WRITE(numout,*)'   -- icestp --' 
     637         WRITE(numout,*)'      Multicategory heat flux formulation                     nn_limflx    = ', nn_limflx 
    634638      ENDIF 
    635639      ! 
    636640      IF ( rn_hnewice < rn_himin )   CALL ctl_stop( 'STOP', 'lim_thd_init : rn_hnewice should be >= rn_himin' ) 
     641      ! 
     642      IF(lwp) WRITE(numout,*) 
     643      SELECT CASE( nn_limflx )         ! LIM3 Multi-category heat flux formulation 
     644      CASE ( -1 ) 
     645         IF(lwp) WRITE(numout,*) '   LIM3: use per-category fluxes (nn_limflx = -1) ' 
     646         IF( ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in coupled mode must be 0 or 2' ) 
     647      CASE ( 0  ) 
     648         IF(lwp) WRITE(numout,*) '   LIM3: use average per-category fluxes (nn_limflx = 0) ' 
     649      CASE ( 1  ) 
     650         IF(lwp) WRITE(numout,*) '   LIM3: use average then redistribute per-category fluxes (nn_limflx = 1) ' 
     651         IF( ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in coupled mode must be 0 or 2' ) 
     652      CASE ( 2  ) 
     653         IF(lwp) WRITE(numout,*) '   LIM3: Redistribute a single flux over categories (nn_limflx = 2) ' 
     654         IF( .NOT. ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in forced mode cannot be 2' ) 
     655      CASE DEFAULT 
     656         CALL ctl_stop( 'sbcmod: LIM3 option, nn_limflx, should be between -1 and 2' ) 
     657      END SELECT 
    637658      ! 
    638659   END SUBROUTINE lim_thd_init 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_sal.F90

    r8316 r8321  
    2929 
    3030   PUBLIC   lim_thd_sal        ! called by limthd module 
    31    PUBLIC   lim_thd_sal_init   ! called by sbc_lim_init 
     31   PUBLIC   lim_thd_sal_init   ! called by ice_init 
    3232 
    3333   !!---------------------------------------------------------------------- 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r8316 r8321  
    3535   PRIVATE 
    3636 
    37    PUBLIC   lim_trp    ! called by sbcice_lim 
     37   PUBLIC   lim_trp    ! called by icestp 
    3838 
    3939   INTEGER  ::   ncfl                 ! number of ice time step with CFL>1/2   
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r8306 r8321  
    6767   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   qprec_ice      !: enthalpy of precip over ice                 [J/m3] 
    6868   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   emp_oce        !: evap - precip over ocean                 [kg/m2/s] 
    69 #endif 
    70 #if defined key_lim3 
    7169   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   wndm_ice       !: wind speed module at T-point                 [m/s] 
     70   INTEGER , PUBLIC                                      ::   nn_limflx      !: LIM3 Multi-category heat flux formulation 
     71   !                                                                            ! =-1  Use of per-category fluxes 
     72   !                                                                            ! = 0  Average per-category fluxes 
     73   !                                                                            ! = 1  Average then redistribute per-category fluxes 
     74   !                                                                            ! = 2  Redistribute a single flux over categories 
    7275#endif 
    7376 
     
    9093   INTEGER , PUBLIC, PARAMETER ::   jpl = ncat 
    9194   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   u_ice, v_ice          ! jpi, jpj 
    92 #endif 
    9395    
    94 #if defined key_cice 
    9596   ! already defined in ice.F90 for LIM3 
    9697   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  a_i 
    9798   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  ht_i, ht_s 
    98 #endif 
    9999 
    100 #if defined key_cice 
    101100   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   tatm_ice       !: air temperature [K] 
    102101#endif 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r8313 r8321  
    5151   !                                             !: =T embedded sea-ice (full salt and mass exchanges and pressure) 
    5252   INTEGER , PUBLIC ::   nn_components  !: flag for sbc module (including sea-ice) coupling mode (see component definition below)  
    53    INTEGER , PUBLIC ::   nn_limflx      !: LIM3 Multi-category heat flux formulation 
    54    !                                             !: =-1  Use of per-category fluxes 
    55    !                                             !: = 0  Average per-category fluxes 
    56    !                                             !: = 1  Average then redistribute per-category fluxes 
    57    !                                             !: = 2  Redistribute a single flux over categories 
    5853   INTEGER , PUBLIC ::   nn_fwb         !: FreshWater Budget:  
    5954   !                                             !:  = 0 unchecked  
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90

    r8313 r8321  
    6262   PUBLIC   sbc_blk       ! called in sbcmod 
    6363#if defined key_lim3 
    64    PUBLIC   blk_ice_tau   ! routine called in sbc_ice_lim module 
    65    PUBLIC   blk_ice_flx   ! routine called in sbc_ice_lim module 
     64   PUBLIC   blk_ice_tau   ! routine called in icestp module 
     65   PUBLIC   blk_ice_flx   ! routine called in icestp module 
    6666#endif 
    6767 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8316 r8321  
    3232   USE geo2ocean      !  
    3333   USE oce   , ONLY : tsn, un, vn, sshn, ub, vb, sshb, fraqsr_1lev 
    34    USE albedo         !  
     34   USE albedooce      !  
    3535   USE eosbn2         !  
    3636   USE sbcrnf, ONLY : l_rnfcpl 
     
    5454 
    5555   PUBLIC   sbc_cpl_init      ! routine called by sbcmod.F90 
    56    PUBLIC   sbc_cpl_rcv       ! routine called by sbc_ice_lim.F90 
     56   PUBLIC   sbc_cpl_rcv       ! routine called by icestp.F90 
    5757   PUBLIC   sbc_cpl_snd       ! routine called by step.F90 
    58    PUBLIC   sbc_cpl_ice_tau   ! routine called by sbc_ice_lim.F90 
    59    PUBLIC   sbc_cpl_ice_flx   ! routine called by sbc_ice_lim.F90 
     58   PUBLIC   sbc_cpl_ice_tau   ! routine called by icestp.F90 
     59   PUBLIC   sbc_cpl_ice_flx   ! routine called by icestp.F90 
    6060   PUBLIC   sbc_cpl_alloc     ! routine called in sbcice_cice.F90 
    6161 
     
    12141214      IF( srcv(jpr_ocx1)%laction ) THEN                      ! received by sas in case of opa <-> sas coupling 
    12151215         ssu_m(:,:) = frcv(jpr_ocx1)%z3(:,:,1) 
    1216          ub (:,:,1) = ssu_m(:,:)                             ! will be used in sbcice_lim in the call of lim_sbc_tau 
     1216         ub (:,:,1) = ssu_m(:,:)                             ! will be used in icestp in the call of lim_sbc_tau 
    12171217         un (:,:,1) = ssu_m(:,:)                             ! will be used in sbc_cpl_snd if atmosphere coupling 
    12181218         CALL iom_put( 'ssu_m', ssu_m ) 
     
    12201220      IF( srcv(jpr_ocy1)%laction ) THEN 
    12211221         ssv_m(:,:) = frcv(jpr_ocy1)%z3(:,:,1) 
    1222          vb (:,:,1) = ssv_m(:,:)                             ! will be used in sbcice_lim in the call of lim_sbc_tau 
     1222         vb (:,:,1) = ssv_m(:,:)                             ! will be used in icestp in the call of lim_sbc_tau 
    12231223         vn (:,:,1) = ssv_m(:,:)                             ! will be used in sbc_cpl_snd if atmosphere coupling 
    12241224         CALL iom_put( 'ssv_m', ssv_m ) 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r8316 r8321  
    3333   USE sbcblk         ! surface boundary condition: bulk formulation 
    3434   USE sbcice_if      ! surface boundary condition: ice-if sea-ice model 
    35    USE sbcice_lim     ! surface boundary condition: LIM 3.0 sea-ice model 
     35#if defined key_lim3 
     36   USE icestp         ! surface boundary condition: LIM 3.0 sea-ice model 
     37#endif 
    3638   USE sbcice_cice    ! surface boundary condition: CICE    sea-ice model 
    3739   USE sbcisf         ! surface boundary condition: ice-shelf 
     
    8991      NAMELIST/namsbc/ nn_fsbc  ,                                                    & 
    9092         &             ln_usr   , ln_flx   , ln_blk       ,                          & 
    91          &             ln_cpl   , ln_mixcpl, nn_components, nn_limflx,               & 
     93         &             ln_cpl   , ln_mixcpl, nn_components,                          & 
    9294         &             nn_ice   , ln_ice_embd,                                       & 
    9395         &             ln_traqsr, ln_dm2dc ,                                         & 
     
    137139         WRITE(numout,*) '         OASIS coupling (with atm or sas)           lk_oasis      = ', lk_oasis 
    138140         WRITE(numout,*) '         components of your executable              nn_components = ', nn_components 
    139          WRITE(numout,*) '         Multicategory heat flux formulation (LIM3) nn_limflx     = ', nn_limflx 
    140141         WRITE(numout,*) '      Sea-ice : ' 
    141142         WRITE(numout,*) '         ice management in the sbc (=0/1/2/3)       nn_ice        = ', nn_ice 
     
    205206      END SELECT 
    206207      ! 
    207       IF( nn_ice == 2 ) THEN           !- LIM3 case: multi-category flux option 
    208          IF(lwp) WRITE(numout,*) 
    209          SELECT CASE( nn_limflx )         ! LIM3 Multi-category heat flux formulation 
    210          CASE ( -1 ) 
    211             IF(lwp) WRITE(numout,*) '   LIM3: use per-category fluxes (nn_limflx = -1) ' 
    212             IF( ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in coupled mode must be 0 or 2' ) 
    213          CASE ( 0  ) 
    214             IF(lwp) WRITE(numout,*) '   LIM3: use average per-category fluxes (nn_limflx = 0) ' 
    215          CASE ( 1  ) 
    216             IF(lwp) WRITE(numout,*) '   LIM3: use average then redistribute per-category fluxes (nn_limflx = 1) ' 
    217             IF( ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in coupled mode must be 0 or 2' ) 
    218          CASE ( 2  ) 
    219             IF(lwp) WRITE(numout,*) '   LIM3: Redistribute a single flux over categories (nn_limflx = 2) ' 
    220             IF( .NOT.ln_cpl )   CALL ctl_stop( 'sbc_init : the chosen nn_limflx for LIM3 in forced mode cannot be 2' ) 
    221          CASE DEFAULT 
    222             CALL ctl_stop( 'sbcmod: LIM3 option, nn_limflx, should be between -1 and 2' ) 
    223          END SELECT 
    224       ELSE                             ! other sea-ice model 
    225          IF( nn_limflx >= 0  )   CALL ctl_warn( 'sbc_init : multi-category flux option (nn_limflx) only available in LIM3' ) 
    226       ENDIF 
    227       ! 
    228208      !                       !**  allocate and set required variables 
    229209      ! 
     
    325305                          CALL sbc_rnf_init            ! Runof initialization 
    326306      ! 
     307#if defined key_lim3 
    327308      IF    ( lk_agrif .AND. nn_ice == 0 ) THEN 
    328309                         IF( sbc_ice_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_ice_alloc : unable to allocate arrays' )  ! clem2017: allocate ice arrays in case agrif + lim + no-ice in child grid               
    329       ELSEIF(                nn_ice == 2 ) THEN   ;   CALL sbc_lim_init            ! LIM3 initialization 
    330       ELSEIF(                nn_ice == 3 ) THEN   ;   CALL cice_sbc_init( nsbc )   ! CICE initialization 
    331       ENDIF 
     310      ELSEIF(                nn_ice == 2 ) THEN   ;   CALL ice_init                ! LIM3 initialization 
     311      ENDIF 
     312#endif 
     313      IF    (                nn_ice == 3 )            CALL cice_sbc_init( nsbc )   ! CICE initialization 
    332314      ! 
    333315      IF( ln_wave     )   CALL sbc_wave_init              ! surface wave initialisation 
     
    420402      ! 
    421403      SELECT CASE( nn_ice )                                       ! Update heat and freshwater fluxes over sea-ice areas 
    422       CASE(  1 )   ;         CALL sbc_ice_if   ( kt )                ! Ice-cover climatology ("Ice-if" model) 
    423       CASE(  2 )   ;         CALL sbc_ice_lim  ( kt, nsbc )          ! LIM-3 ice model 
    424       CASE(  3 )   ;         CALL sbc_ice_cice ( kt, nsbc )          ! CICE ice model 
     404      CASE(  1 )   ;         CALL sbc_ice_if   ( kt )             ! Ice-cover climatology ("Ice-if" model) 
     405#if defined key_lim3 
     406      CASE(  2 )   ;         CALL ice_stp  ( kt, nsbc )           ! LIM-3 ice model 
     407#endif 
     408      CASE(  3 )   ;         CALL sbc_ice_cice ( kt, nsbc )       ! CICE ice model 
    425409      END SELECT 
    426410 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/USR/usrdef_sbc.F90

    r7753 r8321  
    2727 
    2828   PUBLIC   usrdef_sbc_oce    ! routine called in sbcmod module 
    29    PUBLIC   usrdef_sbc_ice_tau  ! routine called by sbcice_lim.F90 for ice dynamics 
    30    PUBLIC   usrdef_sbc_ice_flx  ! routine called by sbcice_lim.F90 for ice thermo 
     29   PUBLIC   usrdef_sbc_ice_tau  ! routine called by icestp.F90 for ice dynamics 
     30   PUBLIC   usrdef_sbc_ice_flx  ! routine called by icestp.F90 for ice thermo 
    3131 
    3232   !! * Substitutions 
Note: See TracChangeset for help on using the changeset viewer.