Changeset 6323 for branches/2015
- Timestamp:
- 2016-02-18T09:20:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90
r6316 r6323 30 30 31 31 INTEGER :: albd_init = 0 !: control flag for initialization 32 32 33 REAL(wp) :: rmue = 0.40 ! cosine of local solar altitude 34 REAL(wp) :: ralb_oce = 0.066 ! ocean or lead albedo (Pegau and Paulson, Ann. Glac. 2001) 35 REAL(wp) :: c1 = 0.05 ! snow thickness (only for nn_ice_alb=0) 36 REAL(wp) :: c2 = 0.10 ! " " 37 REAL(wp) :: rcloud = 0.06 ! cloud effect on albedo (only-for nn_ice_alb=0) 38 33 39 ! !!* namelist namsbc_alb 34 40 INTEGER :: nn_ice_alb … … 83 89 INTEGER :: ji, jj, jl ! dummy loop indices 84 90 INTEGER :: ijpl ! number of ice categories (3rd dim of ice input arrays) 85 REAL(wp), PARAMETER :: ralb_oce = 0.066 ! ocean or lead albedo (Pegau and Paulson, Ann. Glac. 2001)86 REAL(wp), PARAMETER :: c1 = 0.05 ! snow thickness (only for nn_ice_alb=0)87 REAL(wp), PARAMETER :: c2 = 0.10 ! " "88 REAL(wp), PARAMETER :: rcloud = 0.06 ! cloud effect on albedo (only for nn_ice_alb=0)89 91 REAL(wp) :: ralb_im, ralb_sf, ralb_sm, ralb_if 90 92 REAL(wp) :: zswitch, z1_c1, z1_c2 … … 125 127 END WHERE 126 128 127 z1_c1 = 1. / c1128 z1_c2 = 1. / c2129 ! Computation of the snow/ice albedo130 129 DO jl = 1, ijpl 131 130 DO jj = 1, jpj … … 133 132 ! freezing snow 134 133 ! no effect of underlying ice layer IF snow thickness > c1. Albedo does not depend on snow thick if > c2 135 zswitch = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c1 ) ) 136 zalb_sf = ( 1._wp - zswitch ) * ( zalb_it(ji,jj,jl) + ph_snw(ji,jj,jl) & 137 & * ( ralb_sf - zalb_it(ji,jj,jl) ) * z1_c1 ) & 138 & + zswitch * ralb_sf 139 134 ! ! freezing snow 135 zswitch = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ( ph_snw(ji,jj,jl) - c1 ) ) ) 136 zalb_sf = ( 1._wp - zswitch ) * ( zalb_it(ji,jj,jl) & 137 & + ph_snw(ji,jj,jl) * ( ralb_sf - zalb_it(ji,jj,jl) ) / c1 ) & 138 & + zswitch * ralb_sf 139 140 140 ! melting snow 141 ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > c2 142 zswitch = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c2 ) ) 143 zalb_sm = ( 1._wp - zswitch ) * ( ralb_im + ph_snw(ji,jj,jl) & 144 & * ( ralb_sm - ralb_im ) * z1_c2 ) & 145 & + zswitch * ralb_sm 146 141 ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > c2 142 zswitch = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c2 ) ) 143 zalb_sm = ( 1._wp - zswitch ) * ( ralb_im + ph_snw(ji,jj,jl) * ( ralb_sm - ralb_im ) / c2 ) & 144 & + zswitch * ralb_sm 145 ! 147 146 ! snow albedo 148 zswitch = MAX( 0._wp , SIGN( 1._wp , pt_ice(ji,jj,jl) - rt0_snow ) ) 149 zalb_st = zswitch * zalb_sm + ( 1.0 - zswitch ) * zalb_sf 150 151 ! Ice/snow albedo 152 zswitch = MAX( 0._wp , SIGN( 1._wp , - ph_snw(ji,jj,jl) ) ) 153 pa_ice_cs(ji,jj,jl) = ( 1._wp - zswitch ) * zalb_st + zswitch * zalb_it(ji,jj,jl) 147 zswitch = MAX( 0._wp , SIGN( 1._wp , pt_ice(ji,jj,jl) - rt0_snow ) ) 148 zalb_st = zswitch * zalb_sm + ( 1._wp - zswitch ) * zalb_sf 149 150 ! Ice/snow albedo 151 zswitch = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ph_snw(ji,jj,jl) ) ) 152 pa_ice_cs(ji,jj,jl) = zswitch * zalb_st + ( 1._wp - zswitch ) * zalb_it(ji,jj,jl) 153 ! 154 154 END DO 155 155 END DO 156 156 END DO 157 157 158 pa_ice_os(:,:,:) = pa_ice_cs(:,:,:) + rcloud ! Oberhuber correction for overcast sky 158 159 … … 228 229 REAL(wp), DIMENSION(:,:), INTENT(out) :: pa_oce_cs ! albedo of ocean under clear sky 229 230 !! 230 REAL(wp) :: rmue = 0.40 ! cosine of local solar altitude 231 !!---------------------------------------------------------------------- 232 ! 233 pa_oce_cs(:,:) = 0.05 / ( 1.1 * rmue**1.4 + 0.15 ) ! Parameterization of Briegled and Ramanathan, 1982 234 pa_oce_os(:,:) = 0.06 ! Parameterization of Kondratyev, 1969 and Payne, 1972 231 REAL(wp) :: zcoef 232 !!---------------------------------------------------------------------- 233 ! 234 zcoef = 0.05 / ( 1.1 * rmue**1.4 + 0.15 ) ! Parameterization of Briegled and Ramanathan, 1982 235 pa_oce_cs(:,:) = zcoef 236 pa_oce_os(:,:) = 0.06 ! Parameterization of Kondratyev, 1969 and Payne, 1972 235 237 ! 236 238 END SUBROUTINE albedo_oce
Note: See TracChangeset
for help on using the changeset viewer.