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 12937 for NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl_v2/src/ICE/icealb.F90 – NEMO

Ignore:
Timestamp:
2020-05-15T18:15:25+02:00 (4 years ago)
Author:
dancopsey
Message:

Merge in Clem's branch. It was originally here:

svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/UKMO/NEMO_4.0.1_dan_test_clems_branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.1_fix_cpl_v2/src/ICE/icealb.F90

    r11715 r12937  
    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, pcloud_fra, palb_ice ) 
    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(  out), DIMENSION(:,:,:) ::   palb_cs      !  albedo of ice under clear    sky 
    100       REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   palb_os      !  albedo of ice under overcast sky 
     99      REAL(wp), INTENT(in   ), DIMENSION(:,:)   ::   pcloud_fra   !  cloud fraction 
     100      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   palb_ice     !  albedo of ice 
    101101      ! 
    102102      INTEGER  ::   ji, jj, jl                ! dummy loop indices 
     
    106106      REAL(wp) ::   zalb_ice, zafrac_ice      ! bare sea ice albedo & relative ice fraction 
    107107      REAL(wp) ::   zalb_snw, zafrac_snw      ! snow-covered sea ice albedo & relative snow fraction 
     108      REAL(wp) ::   zalb_cs, zalb_os          ! albedo of ice under clear/overcast sky 
    108109      !!--------------------------------------------------------------------- 
    109110      ! 
     
    119120         DO jj = 1, jpj 
    120121            DO ji = 1, jpi 
    121                !                       !--- Specific snow, ice and pond fractions (for now, we prevent melt ponds and snow at the same time) 
    122                IF( ph_snw(ji,jj,jl) == 0._wp ) THEN 
     122               !---------------------------------------------! 
     123               !--- Specific snow, ice and pond fractions ---! 
     124               !---------------------------------------------!                
     125               IF( ph_snw(ji,jj,jl) == 0._wp ) THEN   !--- no snow : we prevent melt ponds and snow at the same time (for now) 
    123126                  zafrac_snw = 0._wp 
    124127                  IF( ld_pnd_alb ) THEN 
     
    129132                  zafrac_ice = 1._wp - zafrac_pnd 
    130133               ELSE 
    131                   zafrac_snw = 1._wp      ! Snow fully "shades" melt ponds and ice 
     134                  zafrac_snw = 1._wp                  !--- snow : fully "shades" melt ponds and ice 
    132135                  zafrac_pnd = 0._wp 
    133136                  zafrac_ice = 0._wp 
    134137               ENDIF 
    135138               ! 
     139               !---------------! 
     140               !--- Albedos ---! 
     141               !---------------!                
    136142               !                       !--- Bare ice albedo (for hi > 150cm) 
    137143               IF( ld_pnd_alb ) THEN 
     
    161167               ENDIF 
    162168               !                       !--- Surface albedo is weighted mean of snow, ponds and bare ice contributions 
    163                palb_os(ji,jj,jl) = ( zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice ) * tmask(ji,jj,1) 
    164                ! 
    165                palb_cs(ji,jj,jl) = palb_os(ji,jj,jl)  & 
    166                   &                - ( - 0.1010 * palb_os(ji,jj,jl) * palb_os(ji,jj,jl)  & 
    167                   &                    + 0.1933 * palb_os(ji,jj,jl) - 0.0148 ) * tmask(ji,jj,1) 
    168                ! 
     169               zalb_os = ( zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice ) * tmask(ji,jj,1) 
     170               ! 
     171               zalb_cs = zalb_os - ( - 0.1010 * zalb_os * zalb_os  & 
     172                  &                  + 0.1933 * zalb_os - 0.0148 ) * tmask(ji,jj,1) 
     173               ! 
     174               ! albedo depends on cloud fraction because of non-linear spectral effects 
     175               palb_ice(ji,jj,jl) = ( 1._wp - pcloud_fra(ji,jj) ) * zalb_cs + pcloud_fra(ji,jj) * zalb_os 
     176 
    169177            END DO 
    170178         END DO 
Note: See TracChangeset for help on using the changeset viewer.