Ignore:
Timestamp:
2020-04-09T15:48:28+02:00 (8 months ago)
Author:
clem
Message:

fix previous revision. Make sure a_ip and a_ip_eff are correct

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icevar.F90

    r12720 r12725  
    185185      REAL(wp) ::   zhmax, z1_zhmax                 !   -      - 
    186186      REAL(wp) ::   zlay_i, zlay_s                  !   -      - 
    187       REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z1_a_i, z1_v_i 
     187      REAL(wp), PARAMETER ::   zhl_max =  0.015_wp  ! pond lid thickness above which the ponds disappear from the albedo calculation 
     188      REAL(wp), PARAMETER ::   zhl_min =  0.005_wp  ! pond lid thickness below which the full pond area is used in the albedo calculation 
     189      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   z1_a_i, z1_v_i, z1_a_ip 
    188190      !!------------------------------------------------------------------- 
    189191 
     
    204206      ELSEWHERE                      ;   z1_v_i(:,:,:) = 0._wp 
    205207      END WHERE 
     208      ! 
     209      WHERE( a_ip(:,:,:) > epsi20 )  ;   z1_a_ip(:,:,:) = 1._wp / a_ip(:,:,:) 
     210      ELSEWHERE                      ;   z1_a_ip(:,:,:) = 0._wp 
     211      END WHERE 
    206212      !                                           !--- ice thickness 
    207213      h_i(:,:,:) = v_i (:,:,:) * z1_a_i(:,:,:) 
     
    218224      !                                           !--- ice age       
    219225      o_i(:,:,:) = oa_i(:,:,:) * z1_a_i(:,:,:) 
    220       !                                           !--- pond fraction and thickness       
     226      !                                           !--- pond and lid thickness       
     227      h_ip(:,:,:) = v_ip(:,:,:) * z1_a_ip(:,:,:) 
     228      h_il(:,:,:) = v_il(:,:,:) * z1_a_ip(:,:,:) 
     229      !                                           !--- melt pond effective area (used for albedo) 
    221230      a_ip_frac(:,:,:) = a_ip(:,:,:) * z1_a_i(:,:,:) 
    222       WHERE( a_ip_frac(:,:,:) > epsi20 )   ;   h_ip(:,:,:) = v_ip(:,:,:) * z1_a_i(:,:,:) / a_ip_frac(:,:,:) 
    223       ELSEWHERE                            ;   h_ip(:,:,:) = 0._wp 
    224       END WHERE 
    225       !                                           !--- pond lid thickness       
    226       WHERE( a_ip_frac(:,:,:) > epsi20 )   ;   h_il(:,:,:) = v_il(:,:,:) * z1_a_i(:,:,:) / a_ip_frac(:,:,:) 
    227       ELSEWHERE                            ;   h_il(:,:,:) = 0._wp 
    228       END WHERE 
    229       ! 
     231      WHERE    ( h_il(:,:,:) <= zhl_min )  ;   a_ip_eff(:,:,:) = a_ip_frac(:,:,:)       ! lid is very thin.  Expose all the pond 
     232      ELSEWHERE( h_il(:,:,:) >= zhl_max )  ;   a_ip_eff(:,:,:) = 0._wp                  ! lid is very thick. Cover all the pond up with ice and snow 
     233      ELSEWHERE                            ;   a_ip_eff(:,:,:) = a_ip_frac(:,:,:) * &   ! lid is in between. Expose part of the pond 
     234         &                                                       ( h_il(:,:,:) - zhl_min ) / ( zhl_max - zhl_min ) 
     235      END WHERE 
    230236      !                                           !---  salinity (with a minimum value imposed everywhere)      
    231237      IF( nn_icesal == 2 ) THEN 
Note: See TracChangeset for help on using the changeset viewer.