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 12854 for NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icealb.F90 – NEMO

Ignore:
Timestamp:
2020-05-01T19:06:23+02:00 (4 years ago)
Author:
clem
Message:

1st implementation of snow fraction (impact on albedo). Light transmission is still not ok since we need a non-zero penetration of solar flux when snow thickness is > 0

File:
1 edited

Legend:

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

    r12832 r12854  
    1414   !!   ice_alb_init   : initialisation of albedo computation 
    1515   !!---------------------------------------------------------------------- 
    16    USE ice, ONLY: jpl ! sea-ice: number of categories 
    1716   USE phycst         ! physical constants 
    1817   USE dom_oce        ! domain: ocean 
     18   USE ice, ONLY: jpl ! sea-ice: number of categories 
     19   USE icevar         ! sea-ice: operations 
    1920   ! 
    2021   USE in_out_manager ! I/O manager 
     
    100101      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   palb_ice     !  albedo of ice 
    101102      ! 
     103      REAL(wp), DIMENSION(jpi,jpj,jpl) :: za_s_fra   ! ice fraction covered by snow 
    102104      INTEGER  ::   ji, jj, jl                ! dummy loop indices 
    103105      REAL(wp) ::   z1_c1, z1_c2,z1_c3, z1_c4 ! local scalar 
     
    107109      REAL(wp) ::   zalb_snw, zafrac_snw      ! snow-covered sea ice albedo & relative snow fraction 
    108110      REAL(wp) ::   zalb_cs, zalb_os          ! albedo of ice under clear/overcast sky 
    109       REAL(wp) ::   zhs_min = 0.1_wp          ! minimum snow thickness to fully shade melt ponds and ice  
    110       REAL(wp) ::   z1_hsmin 
    111111      !!--------------------------------------------------------------------- 
    112112      ! 
     
    119119      z1_c4 = 1. / 0.03 
    120120      ! 
     121      CALL ice_var_snwfra( ph_snw, za_s_fra )   ! calculate ice fraction covered by snow 
     122      ! 
    121123      DO jl = 1, jpl 
    122124         DO jj = 1, jpj 
     
    126128               !--- Specific snow, ice and pond fractions ---! 
    127129               !---------------------------------------------!                
    128                IF( ph_snw(ji,jj,jl) < zhs_min ) THEN   !--- thin snow partially shades melt ponds and ice 
    129                   IF( ld_pnd_alb ) THEN   ;   zafrac_pnd = pafrac_pnd(ji,jj,jl) 
    130                   ELSE                    ;   zafrac_pnd = 0._wp   ;   ENDIF 
    131                   zafrac_snw = MAX( 0._wp, ( ph_snw(ji,jj,jl) * z1_hsmin ) * ( 1._wp - zafrac_pnd ) ) ! max for roundoff errors 
    132                   zafrac_ice = MAX( 0._wp, 1._wp - zafrac_pnd - zafrac_snw )                          ! max for roundoff errors 
     130               zafrac_snw = za_s_fra(ji,jj,jl) 
     131               IF( ld_pnd_alb ) THEN 
     132                  zafrac_pnd = MIN( pafrac_pnd(ji,jj,jl), 1._wp - zafrac_snw ) ! make sure (a_ip_eff + a_s_fra) <= 1 
    133133               ELSE 
    134                   zafrac_snw = 1._wp                   !--- thick snow fully shades melt ponds and ice 
    135134                  zafrac_pnd = 0._wp 
    136                   zafrac_ice = 0._wp 
    137                ENDIF 
     135               ENDIF 
     136               zafrac_ice = MAX( 0._wp, 1._wp - zafrac_pnd - zafrac_snw ) ! max for roundoff errors 
    138137               ! 
    139138               !---------------! 
Note: See TracChangeset for help on using the changeset viewer.