*IF DEF,A01_1A,OR,DEF,A01_1B,OR,DEF,A01_2A,OR,DEF,A01_3A ADB1F400.1 C ******************************COPYRIGHT****************************** GTS2F400.3223 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.3224 C GTS2F400.3225 C Use, duplication or disclosure of this code is subject to the GTS2F400.3226 C restrictions as set forth in the contract. GTS2F400.3227 C GTS2F400.3228 C Meteorological Office GTS2F400.3229 C London Road GTS2F400.3230 C BRACKNELL GTS2F400.3231 C Berkshire UK GTS2F400.3232 C RG12 2SZ GTS2F400.3233 C GTS2F400.3234 C If no contract has been raised with this copy of the code, the use, GTS2F400.3235 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.3236 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.3237 C Modelling at the above address. GTS2F400.3238 C ******************************COPYRIGHT****************************** GTS2F400.3239 C GTS2F400.3240 CLL Subroutine FTSA ------------------------------------------------- FTSA1A.3 CLL FTSA1A.4 CLL It calculates (true) surface albedos for P234. FTSA1A.5 CLL Release 2.8 of the UM allows for separate surface FTSA1A.6 CLL albedos for direct and diffuse light over sea, calculating the FTSA1A.7 CLL former from the formula of Briegleb and Ramanathan (1982, J. Appl. FTSA1A.8 CLL Met., 21, 1160-1171) and passes the albedos out in different form FTSA1A.9 CLL Land & ice albedos are still the same for direct and diffuse beams. FTSA1A.10 CLL William Ingram 25/9/92 FTSA1A.11 CLL Suitable for single column model use. FTSA1A.12 CLL FTSA1A.13 CLL Author: William Ingram FTSA1A.14 CLL FTSA1A.15 CLL Model Modification history from model version 3.0: FTSA1A.16 CLL version Date FTSA1A.17 CLL 3.1 25/1/93 alphaC and alphaM increased if version 2A of WI250193.1 CLL Section 1 is selected. WI250193.2 CLL 3.4 09/09/94 alphaC,alphaM,dTice all set in U.I. C D Hewitt AWA1F304.1398 CLL 4.0 04/07/95 MASKD set locally. William Ingram AWI2F400.3 ! ADB1F400.2 ! 4.0 01/09/95 Logical test for version of SW radiation ADB1F400.3 ! introduced to allow for differing treatment ADB1F400.4 ! of the direct beam by different versions of ADB1F400.5 ! the radiation. ADB1F400.6 ! J. M. Edwards ADB1F400.7 CLL FTSA1A.18 CLL 4.1 25/01/96 Set SAOS to SALI over land because SAOS is AJS1F401.1471 CLL used to find Net Surface SW in Band 1, which AJS1F401.1472 CLL is now required over land for photosythesis AJS1F401.1473 CLL modelling. AJS1F401.1474 CLL Richard Betts AJS1F401.1475 CLL AJS1F401.1476 CLL 4.4 17/09/97 Optional prognostic snow albedo scheme - ARE2F404.294 CLL separate albedos calculated for visible and ARE2F404.295 CLL near-infrared wavelengths, depending on snow ARE2F404.296 CLL grain size, soot content and zenith angle. ARE2F404.297 CLL Richard Essery ARE2F404.298 CLL ARE2F404.299 CLL 4.4 18/09/97 SNOW_FRAC and TSTAR_SNOW are fractional ARE2F404.300 CLL coverage and surface temperature for snow on ARE2F404.301 CLL land points if MOSES II is selected, set to ARE2F404.302 CLL 1 and TSTAR otherwise. ARE2F404.303 CLL Richard Essery ARE2F404.304 CLL 4.5 21.08.98 If l_ssice_albedo, the albedo of sea-ice is AJG1F405.32 CLL altered by the presence of snow. Jonathan Gregory AJG1F405.33 CLL ARE2F404.305 CLL ARE2F404.306 CLL It conforms to programming standard A of UMDP 4, version 2. FTSA1A.19 CLL It contains ! comments, but otherwise conforms to the FORTRAN 77 FTSA1A.20 CLL standard with no features deprecated by 8X. FTSA1A.21 CLL FTSA1A.22 CLL Logical components covered : P233 FTSA1A.23 CLL (ancillary calculations for the shortwave scheme) FTSA1A.24 CLL FTSA1A.25 CLL Project task : P23 FTSA1A.26 CLL FTSA1A.27 CLL Offline documentation is in UMDP 23, sections "True surface albedo FTSA1A.28 CLL specification" and "Modifications to the radiation scheme to FTSA1A.29 CLL accommodate the leads model" FTSA1A.30 CLLEND FTSA1A.31 C*L FTSA1A.32SUBROUTINE FTSA ( 3ADB1F400.8 & LAND, AICE, TSTAR, TSTAR_SNOW, SNOW_FRAC, SFA, MDSA, COSZ, ARE2F404.307 & S, RGRAIN, SOOT, ARE2F404.308 & ALPHAM,ALPHAC,ALPHAB,DTICE,L_SSICE_ALBEDO, AJG1F405.36 & VERSION, ADB1F400.10 & L1, L2, L_SNOW_ALBEDO, SAL_DIM, SAL_VIS, SAL_NIR, SALI, SAOS) ARE2F404.309 ! ADB1F400.11 implicit none AJG1F405.34 ! AJG1F405.35 CHARACTER !, INTENT(IN) :: ADB1F400.12 & VERSION*3 ! Version of radiation scheme ADB1F400.13 INTEGER !, INTENT(IN) :: ADB1F400.14 & L1, ! Full field dimension FTSA1A.36 & L2 ! Number of points to treat FTSA1A.37 & ,SAL_DIM ! Dimensions SAL_VIS and ARE2F404.310 C ! SAL_NIR for prognostic snow ARE2F404.311 C ! albedo ARE2F404.312 LOGICAL !, INTENT(IN) :: ADB1F400.15 & LAND(L1) ! Land-sea mask (land .TRUE.) FTSA1A.39 & ,L_SNOW_ALBEDO ! Flag for prognostic snow ARE2F404.313 C ! albedo ARE2F404.314 ! Switch on the effect of snow on sea-ice albedo AJG1F405.37 & ,L_SSICE_ALBEDO AJG1F405.38 REAL !, INTENT(IN) :: ADB1F400.16 & AICE(L1), ! Sea-ice fraction FTSA1A.41 & SNOW_FRAC(L1), ! Snow fraction ARE2F404.315 & TSTAR(L1), ! Surface temperature FTSA1A.42 & TSTAR_SNOW(L1), ! Snow surface temperature (K) ARE2F404.316 & SFA(L1), ! Snow-free surface albedo FTSA1A.43 & MDSA(L1), ! Cold deep-snow albedo FTSA1A.44 & ! (These two are alpha sub 0 & alpha sub S resp. in UMDP 23.) FTSA1A.45 & COSZ(L1), ! cos(solar zenith angle) FTSA1A.46 & RGRAIN(L1), ! Snow grain size (microns) ARE2F404.317 & SOOT(L1), ! Snow soot content (mass frac ARE2F404.318 & S(L1) ! Snow amount (mass/area) AWI2F400.5 ! Constants used to determine the albedo of sea-ice: AJG1F405.39 ! Albedo of sea-ice at melting point (TM) if .not.l_ssice_albedo, or AJG1F405.40 ! Albedo of snow on sea-ice at melting point (TM) if l_ssice_albedo AJG1F405.41 & ,ALPHAM ! "M" for "melting" AJG1F405.42 ! Albedo of sea-ice at and below TM-DTICE if .not.l_ssice_albedo, or AJG1F405.43 ! Albedo of snow on sea-ice at and below TM-DTICE if l_ssice_albedo AJG1F405.44 & ,ALPHAC ! "C" for "cold" AJG1F405.45 ! Albedo of snow-free sea-ice if l_ssice_albedo AJG1F405.46 & ,ALPHAB ! "B" for "bare" AJG1F405.47 ! Temperature range in which albedo of sea-ice, if .not.l_ssice_albedo, AJG1F405.48 ! or of snow on sea-ice, if l_ssice_albedo, varies between its limits AJG1F405.49 & ,DTICE AJG1F405.50 REAL!, INTENT(OUT) FTSA1A.49 & SAL_VIS(SAL_DIM,2), ! Visible albedo for land ARE2F404.319 & SAL_NIR(SAL_DIM,2), ! Near-IR albedo for land ARE2F404.320 & SALI(L1), ! Surface Albedos for Land FTSA1A.50 & SAOS(L1,2) ! and Ice, and for Open Sea, FTSA1A.51 C ! respectively, with zeroes for safety where no value applies FTSA1A.52 C FTSA1A.53 C ! FTSA has no dynamically allocated workspace, no EXTERNAL calls WI200893.39 C ! and no significant structure - just one loop and some IF blocks FTSA1A.55 C* FTSA1A.56 INTEGER J ! Loops over points FTSA1A.57 REAL DSA, ! Deep-snow albedo (alphasubD) FTSA1A.58 & TICE ! Surface temperature for FTSA1A.59 C ! the sea-ice covered fraction of a grid-box. FTSA1A.60 ! Temperature at which (snow on) sea-ice reaches its "cold" value AJG1F405.51 & ,TCICE AJG1F405.52 ! Slope and intercept of temperature dependence of the albedo of AJG1F405.53 ! (snow on) sea-ice AJG1F405.54 & ,ICE1,ICE2 AJG1F405.55 ! Local parameters AJG1F405.56 REAL DTLAND, KLAND, TCLAND, ADIFC, FCATM, AJG1F405.57 & ALB_DIFF, ! Diffuse beam snow albedo ARE2F404.321 & ALB_DIR, ! Direct beam snow albedo ARE2F404.322 & R0, ! Grain size for fresh snow ARE2F404.323 C ! (microns) ARE2F404.324 & REFF, ! Zenith effective grain size ARE2F404.325 & SIGMA, ! Scaled soot content ARE2F404.326 & SNOW_ALBEDO, ! Snow albedo ARE2F404.327 & MASK, ! Snow masking factor ARE2F404.328 & MASKD ! Masking depth (S in 3.6.1) AWI2F400.7 C Note that the same masking depth is always used, both for land, AJG1F405.58 C regardless of vegetation cover, and for sea-ice. This assumption AJG1F405.59 C of constancy may be doubtful. AJG1F405.60 PARAMETER ( MASKD = 0.2, R0 = 50. ) ARE2F404.329 *CALL C_0_DG_C
FTSA1A.63 C ! Basic quantities for land CSSA calculations: FTSA1A.64 PARAMETER ( DTLAND = 2., ! delta(T) in 3.6.2 FTSA1A.65 & FCATM = 0.3 ) ! Fraction by which deep-snow FTSA1A.66 C ! albedo changes (from "cold" value towards snow-free value) at TM FTSA1A.67 C ! From these, 2 constants precalculated for efficiency in 3.6.2: FTSA1A.68 PARAMETER ( KLAND = 0.3/DTLAND, FTSA1A.69 & TCLAND = TM-DTLAND ) FTSA1A.70 C FTSA1A.71 PARAMETER ( ADIFC = 0.06 ) ! Surface albedo of ice-free FTSA1A.72 C ! sea for the diffuse beam FTSA1A.73 C ! derive 3 constants from the basic quantities (supplied in the AWA1F304.1402 C ! namelist RUNCNST) for sea-ice CSSA calculations: AWA1F304.1403 TCICE = TM - DTICE AWA1F304.1404 ICE1 = (ALPHAM-ALPHAC) / DTICE AWA1F304.1405 ICE2 = ALPHAM - TM*ICE1 AWA1F304.1406 AWA1F304.1407 C FTSA1A.80 C FTSA1A.81 ARE2F404.330 IF ( L_SNOW_ALBEDO ) THEN ARE2F404.331 C----------------------------------------------------------------------- ARE2F404.332 C Prognostic spectral snow albedos ARE2F404.333 C----------------------------------------------------------------------- ARE2F404.334 DO J=1,L2 ARE2F404.335 SALI(J) = 0. ARE2F404.336 IF (LAND(J)) THEN FTSA1A.83 ARE2F404.337 C Increased deep-snow albedo required for land ice points ARE2F404.338 IF ( MDSA(J) .GT. 0.78 ) MDSA(J) = 0.83 ARE2F404.339 ARE2F404.340 C Effective grain size for zenith angle ARE2F404.341 REFF = RGRAIN(J) * ( 1. + 0.77*(COSZ(J)-0.65) )**2 ARE2F404.342 ARE2F404.343 C Visible albedos ARE2F404.344 ALB_DIR = 1.2*MDSA(J) - 0.002*(SQRT(REFF)-SQRT(R0)) ARE2F404.345 ALB_DIFF = 1.2*MDSA(J) - 0.002*(SQRT(RGRAIN(J))-SQRT(R0)) ARE2F404.346 SIGMA = SOOT(J) * RGRAIN(J) / 0.0017 ARE2F404.347 IF ( SIGMA .GT. 1. ) THEN ARE2F404.348 ALB_DIR = 0.07 + 0.5*(ALB_DIR - 0.07) / (SIGMA**0.46) ARE2F404.349 ALB_DIFF = 0.07 + 0.5*(ALB_DIFF - 0.07) / (SIGMA**0.46) ARE2F404.350 ELSE ARE2F404.351 ALB_DIR = ALB_DIR - 0.5*(ALB_DIR - 0.07)*(SIGMA**0.6) ARE2F404.352 ALB_DIFF = ALB_DIFF - 0.5*(ALB_DIFF - 0.07)*(SIGMA**0.6) ARE2F404.353 ENDIF ARE2F404.354 SAL_VIS(J,1) = ALB_DIR ARE2F404.355 SAL_VIS(J,2) = ALB_DIFF ARE2F404.356 ARE2F404.357 C Near-IR albedos ARE2F404.358 ALB_DIR = 0.8*MDSA(J) - ARE2F404.359 & 0.18*( ALOG(SQRT(REFF)) - ALOG(SQRT(R0)) ) ARE2F404.360 ALB_DIFF = 0.8*MDSA(J) - ARE2F404.361 & 0.18*( ALOG(SQRT(RGRAIN(J))) - ALOG(SQRT(R0)) ) ARE2F404.362 SIGMA = SOOT(J) * RGRAIN(J) / 0.004 ARE2F404.363 IF ( SIGMA .GT. 1. ) THEN ARE2F404.364 ALB_DIR = 0.06 + 0.5*(ALB_DIR - 0.06) / (SIGMA**0.6) ARE2F404.365 ALB_DIFF = 0.06 + 0.5*(ALB_DIFF - 0.06) / (SIGMA**0.6) ARE2F404.366 ELSE ARE2F404.367 ALB_DIR = ALB_DIR - 0.5*(ALB_DIFF - 0.06)*(SIGMA**0.7) ARE2F404.368 ALB_DIFF = ALB_DIFF - 0.5*(ALB_DIFF - 0.06)*(SIGMA**0.7) ARE2F404.369 ENDIF ARE2F404.370 SAL_NIR(J,1) = ALB_DIR ARE2F404.371 SAL_NIR(J,2) = ALB_DIFF ARE2F404.372 ARE2F404.373 C Adjust albedos for snow depth and fraction ARE2F404.374 MASK = 1. ARE2F404.375 IF ( SNOW_FRAC(J).GT.0. ) MASK = EXP(-MASKD*S(J)/SNOW_FRAC(J)) ARE2F404.376 SAL_VIS(J,1) = (1. - SNOW_FRAC(J))*SFA(J) + SNOW_FRAC(J) * ARE2F404.377 & (SFA(J) + (SAL_VIS(J,1) - SFA(J))*(1. - MASK)) ARE2F404.378 SAL_VIS(J,2) = (1. - SNOW_FRAC(J))*SFA(J) + SNOW_FRAC(J) * ARE2F404.379 & (SFA(J) + (SAL_VIS(J,2) - SFA(J))*(1. - MASK)) ARE2F404.380 SAL_NIR(J,1) = (1. - SNOW_FRAC(J))*SFA(J) + SNOW_FRAC(J) * ARE2F404.381 & (SFA(J) + (SAL_NIR(J,1) - SFA(J))*(1. - MASK)) ARE2F404.382 SAL_NIR(J,2) = (1. - SNOW_FRAC(J))*SFA(J) + SNOW_FRAC(J) * ARE2F404.383 & (SFA(J) + (SAL_NIR(J,2) - SFA(J))*(1. - MASK)) ARE2F404.384 ENDIF ARE2F404.385 ENDDO ARE2F404.386 ARE2F404.387 ELSE ARE2F404.388 C----------------------------------------------------------------------- ARE2F404.389 C Diagnosed all-band snow albedo ARE2F404.390 C----------------------------------------------------------------------- ARE2F404.391 DO J=1,L2 ARE2F404.392 IF (LAND(J)) THEN ARE2F404.393 SALI(J) = SFA(J) ARE2F404.394 IF (SNOW_FRAC(J) .GT. 0.0) THEN ARE2F404.395 IF ( TSTAR_SNOW(J) .LT. TCLAND ) THEN ARE2F404.396 DSA = MDSA(J) FTSA1A.86 ELSE FTSA1A.87 DSA = MDSA(J) + KLAND * (SFA(J) - MDSA(J)) * ARE2F404.397 & (TSTAR_SNOW(J) - TCLAND) ARE2F404.398 ENDIF FTSA1A.89 SNOW_ALBEDO = SFA(J) + (DSA-SFA(J)) * ARE2F404.399 & ( 1. - EXP(-MASKD*S(J)/SNOW_FRAC(J)) ) ARE2F404.400 SALI(J) = (1. - SNOW_FRAC(J))*SFA(J) + ARE2F404.401 & SNOW_FRAC(J)*SNOW_ALBEDO ARE2F404.402 ENDIF ARE2F404.403 SAOS(J,1) = SALI(J) AJS1F401.1477 SAOS(J,2) = SALI(J) AJS1F401.1478 ENDIF ARE2F404.404 ENDDO ARE2F404.405 ARE2F404.406 ENDIF ! Prognostic or diagnostic snow albedo ARE2F404.407 ARE2F404.408 DO 100 J=1, L2 ARE2F404.409 IF ( .NOT. LAND(J) ) THEN ARE2F404.410 IF (VERSION.NE.'03A') THEN ADB1F400.17 SAOS(J,1) = 0.05 / ( 1.1 * COSZ(J)**1.4 + 0.15 ) ADB1F400.18 ELSE ADB1F400.19 SAOS(J, 1)=0.026/(COSZ(J)**1.7+0.065) ADB1F400.20 & +0.15*(COSZ(J)-0.1)*(COSZ(J)-0.5)*(COSZ(J)-1.0) ADB1F400.21 ENDIF ADB1F400.22 SAOS(J,2) = ADIFC FTSA1A.96 C ! Note that the following will add in ICE1*(TSTAR-TFS) to CSSA FTSA1A.97 C ! if AICE#0 when it should be - even if only very small: for FTSA1A.98 C ! large enough TSTAR this will give very large surface heating FTSA1A.99 C ! and even negative atmospheric heating. Check whether this FTSA1A.100 C ! could occur. FTSA1A.101 IF ( AICE(J) .EQ. 0. ) THEN FTSA1A.102 SALI(J) = 0. FTSA1A.103 ELSE FTSA1A.104 C ! Recover TICE from TSTAR: FTSA1A.105 TICE = ( TSTAR(J) + (AICE(J)-1.) * TFS ) / AICE(J) FTSA1A.106 if (l_ssice_albedo) then AJG1F405.61 if (s(j).gt.0.0) then AJG1F405.62 if (tice.gt.tcice) then AJG1F405.63 snow_albedo=ice2+ice1*tice AJG1F405.64 else AJG1F405.65 snow_albedo=alphac AJG1F405.66 endif AJG1F405.67 sali(j)=alphab AJG1F405.68 & +(snow_albedo-alphab)*(1.0-exp(-maskd*s(j))) AJG1F405.69 else AJG1F405.70 sali(j)=alphab AJG1F405.71 endif AJG1F405.72 else AJG1F405.73 C ! 3.5.1: FTSA1A.107 IF ( TICE .LT. TCICE ) THEN FTSA1A.108 SALI(J) = ALPHAC FTSA1A.109 ELSE FTSA1A.110 SALI(J) = ICE1 * TICE + ICE2 FTSA1A.111 ENDIF FTSA1A.112 endif AJG1F405.74 ENDIF FTSA1A.113 ENDIF FTSA1A.114 100 CONTINUE FTSA1A.115 C FTSA1A.116 RETURN FTSA1A.117 END FTSA1A.118 *ENDIF DEF,A01_1A,OR,DEF,A01_1B,OR,DEF,A01_2A,OR,DEF,A01_3A ADB1F400.23