*IF DEF,A03_7A RADMOSES.2 C *****************************COPYRIGHT****************************** RADMOSES.3 C (c) CROWN COPYRIGHT 1997, METEOROLOGICAL OFFICE, All Rights Reserved. RADMOSES.4 C RADMOSES.5 C Use, duplication or disclosure of this code is subject to the RADMOSES.6 C restrictions as set forth in the contract. RADMOSES.7 C RADMOSES.8 C Meteorological Office RADMOSES.9 C London Road RADMOSES.10 C BRACKNELL RADMOSES.11 C Berkshire UK RADMOSES.12 C RG12 2SZ RADMOSES.13 C RADMOSES.14 C If no contract has been raised with this copy of the code, the use, RADMOSES.15 C duplication or disclosure of it is strictly prohibited. Permission RADMOSES.16 C to do so must first be obtained in writing from the Head of Numerical RADMOSES.17 C Modelling at the above address. RADMOSES.18 C ******************************COPYRIGHT****************************** RADMOSES.19 !!! SUBROUTINE RAD_MOSES--------------------------------------------- RADMOSES.20 !!! RADMOSES.21 !!! Purpose: Calculate surface radiation fluxes over snow-free land RADMOSES.22 !!! and snow, and adjust atmospheric heating rates between RADMOSES.23 !!! radiation timesteps for MOSES II land surface scheme. RADMOSES.24 !!! RADMOSES.25 !!! Model Modification history: RADMOSES.26 !!! version Date RADMOSES.27 !!! 4.4 8/97 New deck Richard Essery RADMOSES.28 !!! RADMOSES.29 !!!--------------------------------------------------------------------- RADMOSES.30 RADMOSES.31SUBROUTINE RAD_MOSES ( 1RADMOSES.32 & P_FIELD,LAND_FIELD,LAND1,LAND_PTS,LAND_INDEX,NLEVS,BL_LEVELS, RADMOSES.33 & AKH,BKH,COS_Z,ALBEDO,ALBSNF,LW_SURF,LW_DT,PSTAR,SW_SURF_NCZ, RADMOSES.34 & SNOW_FRAC,FRAC,TSTAR_RAD,TSTAR_TILE,TIMESTEP, RADMOSES.35 & T,RAD_NO_SNOW,RAD_SNOW RADMOSES.36 & ) RADMOSES.37 RADMOSES.38 IMPLICIT NONE RADMOSES.39 RADMOSES.40 *CALL NSTYPES
RADMOSES.41 RADMOSES.42 INTEGER RADMOSES.43 & P_FIELD ! IN Total number of P-grid points. RADMOSES.44 &,LAND_FIELD ! IN Total number of land points. RADMOSES.45 &,LAND_PTS ! IN Number of land points processed. RADMOSES.46 &,LAND1 ! IN First land point to be processed RADMOSES.47 &,LAND_INDEX(LAND_FIELD) ! IN Index of land points. RADMOSES.48 &,NLEVS ! IN Number of atmospheric levels. RADMOSES.49 &,BL_LEVELS ! IN Number of boundary layer levels. RADMOSES.50 RADMOSES.51 REAL RADMOSES.52 & AKH(NLEVS+1) ! IN Hybrid 'A' for layer interfaces. RADMOSES.53 &,BKH(NLEVS+1) ! IN Hybrid 'B' for layer interfaces. RADMOSES.54 &,COS_Z(P_FIELD) ! IN cos ( zenith angle ) RADMOSES.55 &,ALBEDO(P_FIELD) ! IN Gridbox-mean surface albedo. RADMOSES.56 &,ALBSNF(LAND_FIELD) ! IN Snow-free surface albedo. RADMOSES.57 &,LW_SURF(P_FIELD) ! IN Net surface LW flux (W/m2). RADMOSES.58 &,LW_DT(P_FIELD,NLEVS) ! IN LW atmospheric heating rates RADMOSES.59 ! ! (K/timestep). RADMOSES.60 &,PSTAR(P_FIELD) ! IN Surface pressure (Pa). RADMOSES.61 &,SW_SURF_NCZ(P_FIELD) ! IN Net surface SW flux divided by RADMOSES.62 ! ! COS_Z (W/m2). RADMOSES.63 &,SNOW_FRAC(LAND_FIELD) ! IN Snow-cover fraction. RADMOSES.64 &,FRAC(LAND_FIELD,NTYPE) ! IN Tile fractions. RADMOSES.65 &,TSTAR_RAD(P_FIELD) ! IN Effective radiative surface RADMOSES.66 ! ! temperature on the last RADMOSES.67 ! ! radiation timestep (K). RADMOSES.68 &,TSTAR_TILE(LAND_FIELD,NTYPE)! IN Surface tile temperatures (K). RADMOSES.69 &,TIMESTEP ! IN Timesetep (s). RADMOSES.70 RADMOSES.71 REAL RADMOSES.72 & T(P_FIELD,NLEVS) ! INOUT Atmospheric temperatures (K). RADMOSES.73 RADMOSES.74 REAL RADMOSES.75 & RAD_NO_SNOW(P_FIELD) ! OUT Net surface radiation over RADMOSES.76 ! ! snow-free land (W/m2). RADMOSES.77 &,RAD_SNOW(P_FIELD) ! OUT Net surface radiation over RADMOSES.78 ! ! snow or land-ice (W/m2). RADMOSES.79 RADMOSES.80 ! Workspace RADMOSES.81 REAL RADMOSES.82 & SDT(LAND_FIELD) ! Sum of absolute radiative heating RADMOSES.83 ! ! rates. RADMOSES.84 &,TSTAR_RAD_NOW(LAND_FIELD) ! TSTAR_RAD on this timestep. RADMOSES.87 RADMOSES.88 REAL RADMOSES.89 & DACON ! Used in calculation of heating RADMOSES.90 &,DBCON ! rates. RADMOSES.91 RADMOSES.92 INTEGER RADMOSES.93 & I ! Horizontal field index. RADMOSES.94 &,K ! Vertical level index. RADMOSES.95 &,L ! Land field index. RADMOSES.96 &,N ! Tile index. RADMOSES.97 RADMOSES.98 *CALL C_G
RADMOSES.99 *CALL C_R_CP
RADMOSES.100 *CALL CSIGMA
RADMOSES.101 RADMOSES.102 !---------------------------------------------------------------------- RADMOSES.122 ! Add shortwave contribution to net surface radiation fluxes RADMOSES.123 !---------------------------------------------------------------------- RADMOSES.124 ! Snow-free land tiles RADMOSES.125 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.126 I = LAND_INDEX(L) RADMOSES.127 RAD_NO_SNOW(I) = (1. - ALBSNF(L)) * SW_SURF_NCZ(I) * COS_Z(I) / RADMOSES.128 & (1. - ALBEDO(I)) RADMOSES.129 ENDDO RADMOSES.130 RADMOSES.131 ! Snow and land-ice RADMOSES.132 N = NTYPE RADMOSES.133 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.134 I = LAND_INDEX(L) RADMOSES.135 IF ( SNOW_FRAC(L) .GT. 0. ) THEN RADMOSES.136 RAD_SNOW(I) = ( SW_SURF_NCZ(I) * COS_Z(I) - RADMOSES.137 & (1. - SNOW_FRAC(L))*RAD_NO_SNOW(I) ) RADMOSES.138 & / SNOW_FRAC(L) RADMOSES.139 ENDIF RADMOSES.140 ENDDO RADMOSES.141 RADMOSES.142 !---------------------------------------------------------------------- RADMOSES.143 ! Add longwave contribution to net surface radiation fluxes RADMOSES.144 !---------------------------------------------------------------------- RADMOSES.145 RADMOSES.146 ! Snow-free land tiles RADMOSES.147 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.148 I = LAND_INDEX(L) RADMOSES.149 RAD_NO_SNOW(I) = RAD_NO_SNOW(I) + LW_SURF(I) RADMOSES.150 & + SBCON*TSTAR_RAD(I)**4 RADMOSES.151 TSTAR_RAD_NOW(L) = 0. RADMOSES.152 ENDDO RADMOSES.153 DO N=1,NTYPE-1 RADMOSES.154 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.155 I = LAND_INDEX(L) RADMOSES.156 RAD_NO_SNOW(I) = RAD_NO_SNOW(I) - RADMOSES.157 & FRAC(L,N)*SBCON*TSTAR_TILE(L,N)**4 ABX1F405.112 TSTAR_RAD_NOW(L) = TSTAR_RAD_NOW(L) + (1. - SNOW_FRAC(L)) * RADMOSES.159 & FRAC(L,N)*TSTAR_TILE(L,N)**4 ABX1F405.113 ENDDO RADMOSES.161 ENDDO RADMOSES.162 RADMOSES.163 ! Snow and land-ice RADMOSES.164 N = NTYPE RADMOSES.165 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.166 I = LAND_INDEX(L) RADMOSES.167 IF ( SNOW_FRAC(L) .GT. 0. ) THEN RADMOSES.168 RAD_SNOW(I) = RAD_SNOW(I) + LW_SURF(I) + RADMOSES.169 & SBCON*(TSTAR_RAD(I)**4 - TSTAR_TILE(L,N)**4) RADMOSES.170 ENDIF RADMOSES.171 TSTAR_RAD_NOW(L) = TSTAR_RAD_NOW(L) + RADMOSES.172 & SNOW_FRAC(L)*TSTAR_TILE(L,N)**4 RADMOSES.173 ENDDO RADMOSES.174 RADMOSES.175 !---------------------------------------------------------------------- RADMOSES.176 ! Adjust temperatures on boundary layer levels for changes in surface RADMOSES.177 ! temperature and LW heating rates between radiation timesteps RADMOSES.178 !---------------------------------------------------------------------- RADMOSES.179 RADMOSES.180 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.181 TSTAR_RAD_NOW(L) = TSTAR_RAD_NOW(L)**0.25 RADMOSES.183 ENDDO RADMOSES.184 RADMOSES.192 DO K=1,BL_LEVELS RADMOSES.193 DACON = (AKH(K) - AKH(K+1))*CP / (G*TIMESTEP) RADMOSES.194 DBCON = (BKH(K) - BKH(K+1))*CP / (G*TIMESTEP) RADMOSES.195 DO L=LAND1,LAND1+LAND_PTS-1 RADMOSES.196 I = LAND_INDEX(L) RADMOSES.197 T(I,K) = T(I,K) - RADMOSES.198 & SBCON*(TSTAR_RAD(I)**4 - TSTAR_RAD_NOW(L)**4) ARE1F405.31 & / (BL_LEVELS*(DACON + PSTAR(I)*DBCON)) ARE1F405.32 ENDDO RADMOSES.201 ENDDO RADMOSES.202 RADMOSES.203 RETURN RADMOSES.204 END RADMOSES.205 *ENDIF RADMOSES.206