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 12382 for NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icealb.F90 – NEMO

Ignore:
Timestamp:
2020-02-13T16:36:44+01:00 (4 years ago)
Author:
dancopsey
Message:

Add pond lid code that does most of the science.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icealb.F90

    r10888 r12382  
    4545CONTAINS 
    4646 
    47    SUBROUTINE ice_alb( pt_su, ph_ice, ph_snw, ld_pnd_alb, pafrac_pnd, ph_pnd, palb_cs, palb_os ) 
     47   SUBROUTINE ice_alb( pt_su, ph_ice, ph_snw, ld_pnd_alb, pafrac_pnd, ph_pnd, plh_pnd, palb_cs, palb_os ) 
    4848      !!---------------------------------------------------------------------- 
    4949      !!               ***  ROUTINE ice_alb  *** 
     
    9797      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   pafrac_pnd   !  melt pond relative fraction (per unit ice area) 
    9898      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   ph_pnd       !  melt pond depth 
     99      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   plh_pnd      !  melt pond lid thickness 
    99100      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   palb_cs      !  albedo of ice under clear    sky 
    100101      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   palb_os      !  albedo of ice under overcast sky 
     102      ! 
     103      REAL(wp), PARAMETER :: pnd_lid_max = 0.015                  !  pond lid thickness above which the ponds disappear from the albedo calculation 
     104      REAL(wp), PARAMETER :: pnd_lid_min = 0.005                  !  pond lid thickness below which the full pond area is used in the albedo calculation 
     105                                                                  ! Note: these two variables are mirrored in sbccpl.F90 (maybe put them in one place...) 
    101106      ! 
    102107      INTEGER  ::   ji, jj, jl                ! dummy loop indices 
     
    106111      REAL(wp) ::   zalb_ice, zafrac_ice      ! bare sea ice albedo & relative ice fraction 
    107112      REAL(wp) ::   zalb_snw, zafrac_snw      ! snow-covered sea ice albedo & relative snow fraction 
     113      REAL(wp) ::   lfrac_pnd                 ! The fraction of the meltpond exposed (not inder a frozen lid) 
    108114      !!--------------------------------------------------------------------- 
    109115      ! 
     
    123129                  zafrac_snw = 0._wp 
    124130                  IF( ld_pnd_alb ) THEN 
    125                      zafrac_pnd = pafrac_pnd(ji,jj,jl) 
     131                     IF ( plh_pnd(ji,jj,jl) > pnd_lid_max ) THEN 
     132                        lfrac_pnd = 0._wp 
     133                     ELSE 
     134                        IF ( plh_pnd(ji,jj,jl) < pnd_lid_min ) THEN 
     135                           lfrac_pnd = 1._wp 
     136                        ELSE 
     137                           lfrac_pnd = ( plh_pnd(ji,jj,jl) - pnd_lid_min ) / (pnd_lid_max - pnd_lid_min) 
     138                        END IF 
     139                     END IF 
     140                     zafrac_pnd = pafrac_pnd(ji,jj,jl) * lfrac_pnd 
    126141                  ELSE 
    127142                     zafrac_pnd = 0._wp 
Note: See TracChangeset for help on using the changeset viewer.