Changeset 5487


Ignore:
Timestamp:
2015-06-25T11:10:44+02:00 (5 years ago)
Author:
clem
Message:

bug fix concerning precipitation distribution over ice/ocean after wind blowing. see ticket #1547

Location:
trunk/NEMOGCM/NEMO
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90

    r5407 r5487  
    3030 
    3131   PUBLIC   lim_thd_dh      ! called by lim_thd 
    32    PUBLIC   lim_thd_snwblow ! called in sbcblk/sbccpl and here 
     32   PUBLIC   lim_thd_snwblow ! called in sbcblk/sbcclio/sbccpl and here 
    3333 
    3434   INTERFACE lim_thd_snwblow 
     
    122122      END SELECT 
    123123 
    124       CALL wrk_alloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema ) 
    125       CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s, zsnw ) 
     124      CALL wrk_alloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema, zsnw ) 
     125      CALL wrk_alloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 
    126126      CALL wrk_alloc( jpij, nlay_i, zdeltah, zh_i ) 
    127127      CALL wrk_alloc( jpij, nlay_i, icount ) 
    128        
     128        
    129129      dh_i_surf  (:) = 0._wp ; dh_i_bott  (:) = 0._wp ; dh_snowice(:) = 0._wp 
    130130      dsm_i_se_1d(:) = 0._wp ; dsm_i_si_1d(:) = 0._wp    
    131   
    132       zqprec (:) = 0._wp ; zq_su  (:) = 0._wp ; zq_bo  (:) = 0._wp ; zf_tt  (:) = 0._wp 
    133       zq_rema(:) = 0._wp 
    134  
    135       zdh_s_pre(:) = 0._wp 
    136       zdh_s_mel(:) = 0._wp 
    137       zdh_s_sub(:) = 0._wp 
    138       zqh_s    (:) = 0._wp       
    139       zqh_i    (:) = 0._wp    
    140  
    141       zh_i      (:,:) = 0._wp        
    142       zdeltah   (:,:) = 0._wp        
    143       icount    (:,:) = 0 
     131 
     132      zqprec   (:) = 0._wp ; zq_su    (:) = 0._wp ; zq_bo    (:) = 0._wp ; zf_tt(:) = 0._wp 
     133      zq_rema  (:) = 0._wp ; zsnw     (:) = 0._wp 
     134      zdh_s_mel(:) = 0._wp ; zdh_s_pre(:) = 0._wp ; zdh_s_sub(:) = 0._wp ; zqh_i(:) = 0._wp 
     135      zqh_s    (:) = 0._wp ; zq_s     (:) = 0._wp      
     136 
     137      zdeltah(:,:) = 0._wp ; zh_i(:,:) = 0._wp        
     138      icount (:,:) = 0 
     139 
    144140 
    145141      ! Initialize enthalpy at nlay_i+1 
     
    223219      ! Martin Vancoppenolle, December 2006 
    224220 
     221      CALL lim_thd_snwblow( 1. - at_i_1d(kideb:kiut), zsnw(kideb:kiut) ) ! snow distribution over ice after wind blowing 
     222 
    225223      zdeltah(:,:) = 0._wp 
    226       CALL lim_thd_snwblow( 1. - at_i_1d, zsnw ) ! snow distribution over ice after wind blowing 
    227224      DO ji = kideb, kiut 
    228225         !----------- 
     
    689686      WHERE( ht_i_1d == 0._wp ) a_i_1d = 0._wp 
    690687       
    691       CALL wrk_dealloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema ) 
    692       CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s, zsnw ) 
     688      CALL wrk_dealloc( jpij, zqprec, zq_su, zq_bo, zf_tt, zq_rema, zsnw ) 
     689      CALL wrk_dealloc( jpij, zdh_s_mel, zdh_s_pre, zdh_s_sub, zqh_i, zqh_s, zq_s ) 
    693690      CALL wrk_dealloc( jpij, nlay_i, zdeltah, zh_i ) 
    694691      CALL wrk_dealloc( jpij, nlay_i, icount ) 
     
    703700   !!-------------------------------------------------------------------------- 
    704701   SUBROUTINE lim_thd_snwblow_2d( pin, pout ) 
    705       REAL(wp), DIMENSION(:,:), INTENT(in) :: pin   ! previous fraction lead ( pfrld or (1. - a_i_b) ) 
    706       REAL(wp), DIMENSION(:,:), INTENT(out) :: pout 
     702      REAL(wp), DIMENSION(:,:), INTENT(in   ) :: pin   ! previous fraction lead ( pfrld or (1. - a_i_b) ) 
     703      REAL(wp), DIMENSION(:,:), INTENT(inout) :: pout 
    707704      pout = ( 1._wp - ( pin )**rn_betas ) 
    708705   END SUBROUTINE lim_thd_snwblow_2d 
    709706 
    710707   SUBROUTINE lim_thd_snwblow_1d( pin, pout ) 
    711       REAL(wp), DIMENSION(:), INTENT(in) :: pin 
    712       REAL(wp), DIMENSION(:), INTENT(out) :: pout 
     708      REAL(wp), DIMENSION(:), INTENT(in   ) :: pin 
     709      REAL(wp), DIMENSION(:), INTENT(inout) :: pout 
    713710      pout = ( 1._wp - ( pin )**rn_betas ) 
    714711   END SUBROUTINE lim_thd_snwblow_1d 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r5407 r5487  
    663663 
    664664      ! --- evaporation minus precipitation --- ! 
     665      zsnw(:,:) = 0._wp 
    665666      CALL lim_thd_snwblow( pfrld, zsnw )          ! snow redistribution by wind 
    666667      emp_oce(:,:) = pfrld(:,:) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * ( 1._wp - zsnw ) 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r5407 r5487  
    613613 
    614614      ! --- evaporation minus precipitation --- ! 
     615      zsnw(:,:) = 0._wp 
    615616      CALL lim_thd_snwblow( pfrld, zsnw )  ! snow distribution over ice after wind blowing  
    616617      emp_oce(:,:) = pfrld(:,:) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * (1._wp - zsnw ) 
  • trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r5486 r5487  
    15241524 
    15251525      ! --- heat flux associated with emp --- ! 
     1526      zsnw(:,:) = 0._wp 
    15261527      CALL lim_thd_snwblow( p_frld, zsnw )  ! snow distribution over ice after wind blowing 
    15271528      zqemp_oce(:,:) = -      zevap(:,:)                   * p_frld(:,:)      *   zcptn(:,:)   &      ! evap 
Note: See TracChangeset for help on using the changeset viewer.