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 8498 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icealb.F90 – NEMO

Ignore:
Timestamp:
2017-09-05T19:53:41+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part2 -

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/icealb.F90

    r8486 r8498  
    2727   REAL(wp), PUBLIC, PARAMETER ::   rn_alb_oce = 0.066   !: ocean or lead albedo (Pegau and Paulson, Ann. Glac. 2001) 
    2828 
    29 !!gm real variable name starting with a "c" NOT DOCTOR !!!! 
    3029   INTEGER  ::   albd_init = 0       ! control flag for initialization   
    31    REAL(wp) , PARAMETER ::   c1        = 0.05    ! snow thickness (only for nn_ice_alb=0) 
    32    REAL(wp) , PARAMETER ::   c2        = 0.10    !  "        " 
    33    REAL(wp) , PARAMETER ::   rcloud    = 0.06    ! cloud effect on albedo (only-for nn_ice_alb=0) 
    34    REAL(wp) , PARAMETER ::   r1_c1 = 1. / c1 
    35    REAL(wp) , PARAMETER ::   r1_c2 = 1. / c2 
     30   REAL(wp) , PARAMETER ::   rc1    = 0.05    ! snow thickness (only for nn_ice_alb=0) 
     31   REAL(wp) , PARAMETER ::   rc2    = 0.10    !  "        " 
     32   REAL(wp) , PARAMETER ::   rcloud = 0.06    ! cloud effect on albedo (only-for nn_ice_alb=0) 
     33   REAL(wp) , PARAMETER ::   r1_c1 = 1. / rc1 
     34   REAL(wp) , PARAMETER ::   r1_c2 = 1. / rc2 
    3635  
    3736   !                             !!* namelist namsbc_alb * 
     
    114113      IF ( .NOT. ld_pnd ) THEN   !--- No melt ponds OR radiatively inactive melt ponds 
    115114         ! Bare ice albedo is prescribed, with implicit assumption on pond fraction and depth 
    116          WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb(:,:,:) = rn_alb_imlt 
    117                                                        ! !!! MV I think we could replace rt0_ice by rt0 and get rid of rt0 
    118          ELSE WHERE                                              ;   zalb(:,:,:) = rn_alb_idry 
    119          END  WHERE 
     115         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0 )   ;   zalb(:,:,:) = rn_alb_imlt 
     116         ELSEWHERE                                           ;   zalb(:,:,:) = rn_alb_idry 
     117         END WHERE 
    120118      ENDIF 
    121119 
     
    127125         ! 
    128126         !                       ! Thickness-dependent bare ice albedo 
    129          WHERE     ( 1.5  < ph_ice                     )  ;  zalb_it = zalb 
    130          ELSE WHERE( 1.0  < ph_ice .AND. ph_ice <= 1.5 )  ;  zalb_it = 0.472  + 2.0 * ( zalb - 0.472 ) * ( ph_ice - 1.0 ) 
    131          ELSE WHERE( 0.05 < ph_ice .AND. ph_ice <= 1.0 )  ;  zalb_it = 0.2467 + 0.7049 * ph_ice              & 
    132             &                                                                 - 0.8608 * ph_ice * ph_ice     & 
    133             &                                                                 + 0.3812 * ph_ice * ph_ice * ph_ice 
    134          ELSE WHERE                                       ;  zalb_it = 0.1    + 3.6    * ph_ice 
     127         WHERE    ( 1.5  < ph_ice                     )   ;   zalb_it = zalb 
     128         ELSEWHERE( 1.0  < ph_ice .AND. ph_ice <= 1.5 )   ;   zalb_it = 0.472  + 2.0 * ( zalb - 0.472 ) * ( ph_ice - 1.0 ) 
     129         ELSEWHERE( 0.05 < ph_ice .AND. ph_ice <= 1.0 )   ;   zalb_it = 0.2467 + 0.7049 * ph_ice              & 
     130            &                                                                  - 0.8608 * ph_ice * ph_ice     & 
     131            &                                                                  + 0.3812 * ph_ice * ph_ice * ph_ice 
     132         ELSEWHERE                                        ;   zalb_it = 0.1    + 3.6    * ph_ice 
    135133         END WHERE 
    136134         ! 
     
    139137            zalb_pnd  = rn_alb_dpnd - ( rn_alb_dpnd - zalb_it ) * EXP( - ph_pnd * z1_href_pnd )  
    140138            !                          ! Snow-free ice albedo is a function of pond fraction 
    141             WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )    
     139            WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0 )    
    142140               zalb_it = zalb_it * ( 1. - pafrac_pnd  ) + zalb_pnd * pafrac_pnd  
    143141            END WHERE 
     
    150148               DO ji = 1, jpi 
    151149                  !                    ! Freezing snow 
    152                   ! no effect of underlying ice layer IF snow thickness > c1. Albedo does not depend on snow thick if > c2 
    153                   zswitch = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ( ph_snw(ji,jj,jl) - c1 ) ) ) 
     150                  ! no effect of underlying ice layer IF snow thickness > c1. Albedo does not depend on snow thick if > rc2 
     151                  zswitch = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ( ph_snw(ji,jj,jl) - rc1 ) ) ) 
    154152                  zalb_sf = ( 1._wp - zswitch ) * (  zalb_it(ji,jj,jl)  & 
    155153                     &                                   + ph_snw(ji,jj,jl) * ( rn_alb_sdry - zalb_it(ji,jj,jl) ) * r1_c1  )   & 
     
    157155                     ! 
    158156                  !                    ! Melting snow 
    159                   ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > c2 
    160                   zswitch = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c2 ) ) 
     157                  ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > rc2 
     158                  zswitch = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - rc2 ) ) 
    161159                  zalb_sm = ( 1._wp - zswitch ) * ( rn_alb_imlt + ph_snw(ji,jj,jl) * ( rn_alb_smlt - rn_alb_imlt ) * r1_c2 )   & 
    162160                     &      +         zswitch   *   rn_alb_smlt  
     
    211209            ! 
    212210            !                    ! Snow-free ice albedo is weighted mean of ponded ice and bare ice contributions 
    213             WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice ) 
     211            WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0 ) 
    214212               zalb_it = zalb_it * ( 1. - pafrac_pnd  ) + zalb_pnd * pafrac_pnd 
    215213            END WHERE 
     
    256254         !                       !--- Effective pond fraction (for now, we prevent melt ponds and snow at the same time) 
    257255         zafrac_pnd = 0._wp 
    258          IF ( ld_pnd ) THEN   
    259             WHERE( ph_snw == 0._wp ) ;  zafrac_pnd = pafrac_pnd ;  END WHERE  ! Snow fully "shades" melt ponds 
     256         IF ( ld_pnd ) THEN 
     257            WHERE( ph_snw == 0._wp )   zafrac_pnd = pafrac_pnd   ! Snow fully "shades" melt ponds 
    260258         ENDIF          
    261259         ! 
    262260         !                       !--- Specific snow fraction (for now, prescribed) 
    263          WHERE     ( ph_snw > 0._wp     ) ;  zafrac_snw = 1. 
    264          ELSE WHERE                       ;  zafrac_snw = 0. 
     261         WHERE( ph_snw > 0._wp )   ;   zafrac_snw = 1. 
     262         ELSEWHERE                 ;   zafrac_snw = 0. 
    265263         END WHERE 
    266264         ! 
     
    273271         z1_c1 = 1. / ( LOG(1.5) - LOG(0.05) )  
    274272         z1_c2 = 1. / 0.05 
    275          WHERE     ( 1.5  < ph_ice                     )  ;  zalb_ice = zalb 
    276          ELSE WHERE( 0.05 < ph_ice .AND. ph_ice <= 1.5 )  ;  zalb_ice = zalb     + ( 0.18 - zalb     ) * z1_c1 *  & 
     273         WHERE    ( 1.5  < ph_ice                     )   ;   zalb_ice = zalb 
     274         ELSEWHERE( 0.05 < ph_ice .AND. ph_ice <= 1.5 )   ;   zalb_ice = zalb       + ( 0.18 - zalb       ) * z1_c1 *  & 
    277275            &                                                                       ( LOG(1.5) - LOG(ph_ice) ) 
    278          ELSE WHERE                                       ;  zalb_ice = rn_alb_oce + ( 0.18 - rn_alb_oce ) * z1_c2 * ph_ice 
     276         ELSEWHERE                                        ;   zalb_ice = rn_alb_oce + ( 0.18 - rn_alb_oce ) * z1_c2 * ph_ice 
    279277         END WHERE 
    280278         ! 
     
    282280         z1_c2 = 1. / 0.03 
    283281         ! 
    284          WHERE( pt_ice < rt0_snow ) ; zalb_snw = rn_alb_sdry - ( rn_alb_sdry - zalb_ice ) * EXP( - ph_snw * z1_c1 ); 
    285          ELSE WHERE                 ; zalb_snw = rn_alb_smlt - ( rn_alb_smlt - zalb_ice ) * EXP( - ph_snw * z1_c2 ); 
     282         WHERE( pt_ice < rt0_snow )   ;   zalb_snw = rn_alb_sdry - ( rn_alb_sdry - zalb_ice ) * EXP( - ph_snw * z1_c1 ) 
     283         ELSEWHERE                    ;   zalb_snw = rn_alb_smlt - ( rn_alb_smlt - zalb_ice ) * EXP( - ph_snw * z1_c2 ) 
    286284         END WHERE 
    287285         ! 
Note: See TracChangeset for help on using the changeset viewer.