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

Changeset 6972


Ignore:
Timestamp:
2016-10-03T12:10:50+02:00 (8 years ago)
Author:
clem
Message:

correct bulk heat transfers in case the new (Lupkes2012) drag parameterization is used

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_v3_6_STABLE_r6506_AGRIF_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r6853 r6972  
    583583      REAL(wp), DIMENSION(:,:,:), POINTER ::   z_dqsb            ! sensible  heat sensitivity over ice 
    584584      REAL(wp), DIMENSION(:,:)  , POINTER ::   zevap, zsnw       ! evaporation and snw distribution after wind blowing (LIM3) 
     585      REAL(wp), DIMENSION(:,:)  , POINTER ::   Cd                ! transfer coefficient for momentum      (tau) 
    585586      !!--------------------------------------------------------------------- 
    586587      ! 
     
    588589      ! 
    589590      CALL wrk_alloc( jpi,jpj,jpl, z_qlw, z_qsb, z_dqlw, z_dqsb )  
     591      CALL wrk_alloc( jpi,jpj, Cd ) 
     592 
     593      Cd(:,:) = Cd_ice 
     594 
     595      ! Make ice-atm. drag dependent on ice concentration (see Lupkes et al. 2012) (clem) 
     596#if defined key_lim3 
     597      IF( ln_Cd_L12 ) THEN 
     598         CALL Cdn10_Lupkes2012( Cd ) ! calculate new drag from Lupkes(2012) equations 
     599      ENDIF 
     600#endif 
    590601 
    591602      ! local scalars ( place there for vector optimisation purposes) 
    592603      zcoef_dqlw   = 4.0 * 0.95 * Stef 
    593       zcoef_dqla   = -Ls * Cd_ice * 11637800. * (-5897.8) 
    594       zcoef_dqsb   = rhoa * cpa * Cd_ice 
     604      zcoef_dqla   = -Ls * 11637800. * (-5897.8) 
     605      zcoef_dqsb   = rhoa * cpa 
    595606 
    596607      zztmp = 1. / ( 1. - albo ) 
     
    618629               ! ... turbulent heat fluxes 
    619630               ! Sensible Heat 
    620                z_qsb(ji,jj,jl) = rhoa * cpa * Cd_ice * wndm_ice(ji,jj) * ( ptsu(ji,jj,jl) - sf(jp_tair)%fnow(ji,jj,1) ) 
     631               z_qsb(ji,jj,jl) = rhoa * cpa * Cd(ji,jj) * wndm_ice(ji,jj) * ( ptsu(ji,jj,jl) - sf(jp_tair)%fnow(ji,jj,1) ) 
    621632               ! Latent Heat 
    622                qla_ice(ji,jj,jl) = rn_efac * MAX( 0.e0, rhoa * Ls  * Cd_ice * wndm_ice(ji,jj)   &                            
     633               qla_ice(ji,jj,jl) = rn_efac * MAX( 0.e0, rhoa * Ls  * Cd(ji,jj) * wndm_ice(ji,jj)   &                            
    623634                  &                         * (  11637800. * EXP( -5897.8 / ptsu(ji,jj,jl) ) / rhoa - sf(jp_humi)%fnow(ji,jj,1)  ) ) 
    624635              ! Latent heat sensitivity for ice (Dqla/Dt) 
    625636               IF( qla_ice(ji,jj,jl) > 0._wp ) THEN 
    626                   dqla_ice(ji,jj,jl) = rn_efac * zcoef_dqla * wndm_ice(ji,jj) / ( zst2 ) * EXP( -5897.8 / ptsu(ji,jj,jl) ) 
     637                  dqla_ice(ji,jj,jl) = rn_efac * zcoef_dqla * Cd(ji,jj) * wndm_ice(ji,jj) / ( zst2 ) * EXP( -5897.8 / ptsu(ji,jj,jl) ) 
    627638               ELSE 
    628639                  dqla_ice(ji,jj,jl) = 0._wp 
     
    630641 
    631642               ! Sensible heat sensitivity (Dqsb_ice/Dtn_ice) 
    632                z_dqsb(ji,jj,jl) = zcoef_dqsb * wndm_ice(ji,jj) 
     643               z_dqsb(ji,jj,jl) = zcoef_dqsb * Cd(ji,jj) * wndm_ice(ji,jj) 
    633644 
    634645               ! ----------------------------! 
     
    709720 
    710721      CALL wrk_dealloc( jpi,jpj,jpl, z_qlw, z_qsb, z_dqlw, z_dqsb ) 
     722      CALL wrk_dealloc( jpi,jpj, Cd ) 
    711723      ! 
    712724      IF( nn_timing == 1 )  CALL timing_stop('blk_ice_core_flx') 
Note: See TracChangeset for help on using the changeset viewer.