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 9913 for NEMO/trunk/src/ICE/icethd.F90 – NEMO

Ignore:
Timestamp:
2018-07-10T15:02:00+02:00 (6 years ago)
Author:
clem
Message:

cosmetics (ter)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/icethd.F90

    r9912 r9913  
    157157            ! --- Sensible ocean-to-ice heat flux (W/m2) 
    158158            zfric_u      = MAX( SQRT( zfric(ji,jj) ), zfric_umin )  
    159             fhtur(ji,jj) = rswitch * rau0 * rcp * zch  * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2 
    160  
    161             fhtur(ji,jj) = rswitch * MIN( fhtur(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ) 
    162             ! upper bound for fhtur: the heat retrieved from the ocean must be smaller than the heat necessary to reach  
    163             !                        the freezing point, so that we do not have SST < T_freeze 
    164             !                        This implies: - ( fhtur(ji,jj) * at_i(ji,jj) * rtdice ) - zqfr >= 0 
    165  
    166             !-- Energy Budget of the leads (J.m-2), source of lateral accretion. Must be < 0 to form ice 
    167             qlead(ji,jj) = MIN( 0._wp , zqld - ( fhtur(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr ) 
     159            qsb_ice_bot(ji,jj) = rswitch * rau0 * rcp * zch  * zfric_u * ( ( sst_m(ji,jj) + rt0 ) - t_bo(ji,jj) ) ! W.m-2 
     160 
     161            qsb_ice_bot(ji,jj) = rswitch * MIN( qsb_ice_bot(ji,jj), - zqfr_neg * r1_rdtice / MAX( at_i(ji,jj), epsi10 ) ) 
     162            ! upper bound for qsb_ice_bot: the heat retrieved from the ocean must be smaller than the heat necessary to reach  
     163            !                              the freezing point, so that we do not have SST < T_freeze 
     164            !                              This implies: - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rtdice ) - zqfr >= 0 
     165 
     166            !-- Energy Budget of the leads (J.m-2), source of ice growth in open water. Must be < 0 to form ice 
     167            qlead(ji,jj) = MIN( 0._wp , zqld - ( qsb_ice_bot(ji,jj) * at_i(ji,jj) * rdt_ice ) - zqfr ) 
    168168 
    169169            ! If there is ice and leads are warming, then transfer energy from the lead budget and use it for bottom melting  
     
    185185      ! In case we bypass growing/melting from top and bottom: we suppose ice is impermeable => ocean is isolated from atmosphere 
    186186      IF( .NOT. ln_icedH ) THEN 
    187          qt_atm_oi(:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
    188          fhtur    (:,:) = 0._wp 
    189          fhld     (:,:) = 0._wp 
     187         qt_atm_oi  (:,:) = ( 1._wp - at_i_b(:,:) ) * ( qns_oce(:,:) + qsr_oce(:,:) ) + qemp_oce(:,:) 
     188         qsb_ice_bot(:,:) = 0._wp 
     189         fhld       (:,:) = 0._wp 
    190190      ENDIF 
    191191 
     
    193193      ! Net heat flux on top of the ocean after ice thermo (1st step) [W.m-2] 
    194194      ! --------------------------------------------------------------------- 
    195       !     First  step here              :  non solar + precip - qlead - qturb 
     195      !     First  step here              :  non solar + precip - qlead - qsensible 
    196196      !     Second step in icethd_dh      :  heat remaining if total melt (zq_rema)  
    197197      !     Third  step in iceupdate.F90  :  heat from ice-ocean mass exchange (zf_mass) + solar 
    198198      qt_oce_ai(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + qemp_oce(:,:)  &  ! Non solar heat flux received by the ocean                
    199199         &             - qlead(:,:) * r1_rdtice                                &  ! heat flux taken from the ocean where there is open water ice formation 
    200          &             - at_i (:,:) * fhtur(:,:)                               &  ! heat flux taken by turbulence 
    201          &             - at_i (:,:) *  fhld(:,:)                                  ! heat flux taken during bottom growth/melt  
    202       !                                                                            !    (fhld should be 0 while bott growth) 
     200         &             - at_i (:,:) * qsb_ice_bot(:,:)                         &  ! heat flux taken by sensible flux 
     201         &             - at_i (:,:) * fhld       (:,:)                            ! heat flux taken during bottom growth/melt  
     202      !                                                                           !    (fhld should be 0 while bott growth) 
    203203      !-------------------------------------------------------------------------------------------! 
    204204      ! Thermodynamic computation (only on grid points covered by ice) => loop over ice categories 
     
    385385         CALL tab_2d_1d( npti, nptidx(1:npti), t_bo_1d       (1:npti), t_bo                 ) 
    386386         CALL tab_2d_1d( npti, nptidx(1:npti), sprecip_1d    (1:npti), sprecip              )  
    387          CALL tab_2d_1d( npti, nptidx(1:npti), fhtur_1d      (1:npti), fhtur                ) 
     387         CALL tab_2d_1d( npti, nptidx(1:npti), qsb_ice_bot_1d(1:npti), qsb_ice_bot          ) 
    388388         CALL tab_2d_1d( npti, nptidx(1:npti), fhld_1d       (1:npti), fhld                 ) 
    389389          
     
    432432         ! 
    433433         ! SIMIP diagnostics 
    434          CALL tab_2d_1d( npti, nptidx(1:npti), diag_fc_bo_1d(1:npti), diag_fc_bo ) 
    435          CALL tab_2d_1d( npti, nptidx(1:npti), diag_fc_su_1d(1:npti), diag_fc_su ) 
     434         CALL tab_2d_1d( npti, nptidx(1:npti), qcn_ice_bot_1d(1:npti), qcn_ice_bot ) 
     435         CALL tab_2d_1d( npti, nptidx(1:npti), qcn_ice_top_1d(1:npti), qcn_ice_top ) 
    436436         ! ocean surface fields 
    437437         CALL tab_2d_1d( npti, nptidx(1:npti), sst_1d(1:npti), sst_m ) 
     
    527527         CALL tab_1d_2d( npti, nptidx(1:npti), t1_ice_1d (1:npti), t1_ice (:,:,kl) ) 
    528528         ! SIMIP diagnostics          
    529          CALL tab_1d_2d( npti, nptidx(1:npti), t_si_1d      (1:npti), t_si(:,:,kl) ) 
    530          CALL tab_1d_2d( npti, nptidx(1:npti), diag_fc_bo_1d(1:npti), diag_fc_bo   ) 
    531          CALL tab_1d_2d( npti, nptidx(1:npti), diag_fc_su_1d(1:npti), diag_fc_su   ) 
     529         CALL tab_1d_2d( npti, nptidx(1:npti), t_si_1d       (1:npti), t_si(:,:,kl) ) 
     530         CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_bot_1d(1:npti), qcn_ice_bot  ) 
     531         CALL tab_1d_2d( npti, nptidx(1:npti), qcn_ice_top_1d(1:npti), qcn_ice_top  ) 
    532532         ! extensive variables 
    533533         CALL tab_1d_2d( npti, nptidx(1:npti), v_i_1d (1:npti), v_i (:,:,kl) ) 
Note: See TracChangeset for help on using the changeset viewer.