Ignore:
Timestamp:
2020-02-18T11:23:57+01:00 (11 months ago)
Author:
clem
Message:

correct heat diffusion in the ice in case of Jules coupling (Met Office), and add a small improvement when reading ice temperature with bdy

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/releases/release-4.0-HEAD/src/ICE/icethd_zdf_bl99.F90

    r10926 r12395  
    769769      ! 
    770770      ! --- calculate conduction fluxes (positive downward) 
    771  
     771      !     bottom ice conduction flux 
    772772      DO ji = 1, npti 
    773          !                                ! surface ice conduction flux 
    774          qcn_ice_top_1d(ji) =  -           isnow(ji)   * zkappa_s(ji,0)      * zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) )  & 
    775             &                  - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0)      * zg1  * ( t_i_1d(ji,1) - t_su_1d(ji) ) 
    776          !                                ! bottom ice conduction flux 
    777          qcn_ice_bot_1d(ji) =                          - zkappa_i(ji,nlay_i) * zg1  * ( t_bo_1d(ji ) - t_i_1d (ji,nlay_i) ) 
     773         qcn_ice_bot_1d(ji) = - zkappa_i(ji,nlay_i) * zg1  * ( t_bo_1d(ji ) - t_i_1d (ji,nlay_i) ) 
    778774      END DO 
    779        
     775      !     surface ice conduction flux 
     776      IF( k_cnd == np_cnd_OFF .OR. k_cnd == np_cnd_EMU ) THEN 
     777         ! 
     778         DO ji = 1, npti 
     779            qcn_ice_top_1d(ji) =  -           isnow(ji)   * zkappa_s(ji,0) * zg1s * ( t_s_1d(ji,1) - t_su_1d(ji) )  & 
     780               &                  - ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1  * ( t_i_1d(ji,1) - t_su_1d(ji) ) 
     781         END DO 
     782         ! 
     783      ELSEIF( k_cnd == np_cnd_ON ) THEN 
     784         ! 
     785         DO ji = 1, npti 
     786            qcn_ice_top_1d(ji) = qcn_ice_1d(ji) 
     787         END DO 
     788         ! 
     789      ENDIF 
     790      !     surface ice temperature 
     791      IF( k_cnd == np_cnd_ON .AND. ln_cndemulate ) THEN 
     792         ! 
     793         DO ji = 1, npti 
     794            t_su_1d(ji) = (  qcn_ice_top_1d(ji) &            ! calculate surface temperature 
     795               &           +           isnow(ji)   * zkappa_s(ji,0) * zg1s * t_s_1d(ji,1) & 
     796               &           + ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1  * t_i_1d(ji,1) & 
     797               &          ) / MAX( epsi10, isnow(ji) * zkappa_s(ji,0) * zg1s + ( 1._wp - isnow(ji) ) * zkappa_i(ji,0) * zg1 ) 
     798            t_su_1d(ji) = MAX( MIN( t_su_1d(ji), rt0 ), rt0 - 100._wp )  ! cap t_su 
     799         END DO 
     800         ! 
     801      ENDIF 
    780802      ! 
    781803      ! --- Diagnose the heat loss due to changing non-solar / conduction flux --- ! 
     
    787809         END DO 
    788810         ! 
    789       ELSEIF( k_cnd == np_cnd_ON ) THEN 
    790          ! 
    791          DO ji = 1, npti 
    792             hfx_err_dif_1d(ji) = hfx_err_dif_1d(ji) - ( qcn_ice_top_1d(ji) - qcn_ice_1d(ji) ) * a_i_1d(ji)  
    793          END DO 
    794          ! 
    795811      ENDIF 
    796        
    797812      ! 
    798813      ! --- Diagnose the heat loss due to non-fully converged temperature solution (should not be above 10-4 W-m2) --- ! 
     
    856871         t_i_1d    (1:npti,:) = ztiold        (1:npti,:) 
    857872         qcn_ice_1d(1:npti)   = qcn_ice_top_1d(1:npti) 
    858  
    859          !!clem 
    860          ! remettre t_su_1d, qns_ice_1d et dqns_ice_1d comme avant puisqu'on devrait faire comme si on avant conduction = input 
    861          !clem 
    862873      ENDIF 
    863874      ! 
Note: See TracChangeset for help on using the changeset viewer.