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/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

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/NEMO/LIM_SRC_3
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • 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   
Note: See TracChangeset for help on using the changeset viewer.