*IF DEF,A02_1C LWRAD1C.2 C ******************************COPYRIGHT****************************** GTS2F400.5707 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.5708 C GTS2F400.5709 C Use, duplication or disclosure of this code is subject to the GTS2F400.5710 C restrictions as set forth in the contract. GTS2F400.5711 C GTS2F400.5712 C Meteorological Office GTS2F400.5713 C London Road GTS2F400.5714 C BRACKNELL GTS2F400.5715 C Berkshire UK GTS2F400.5716 C RG12 2SZ GTS2F400.5717 C GTS2F400.5718 C If no contract has been raised with this copy of the code, the use, GTS2F400.5719 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.5720 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.5721 C Modelling at the above address. GTS2F400.5722 C ******************************COPYRIGHT****************************** GTS2F400.5723 C GTS2F400.5724 CLL ROUTINE AND DECK LWRAD. LWRAD1C.3 CLL BEFORE LWRAD IS CALLED, LWLKIN (IN DECK LWTRAN) MUST BE CALLED TO LWRAD1C.4 CLL INITIALIZE LUT. LWRAD1C.5 CLL IF UPDATE *DEF CRAY IS OFF, THE CODE IS STANDARD FORTRAN 77 LWRAD1C.6 CLL EXCEPT FOR THE ADDITION OF ! COMMENTS (AND THEN SETS THE "VECTOR LWRAD1C.7 CLL LENGTH" TO 1) BUT IF NOT IT INCLUDES CRAY AUTOMATIC ARRAYS ALSO. LWRAD1C.8 CLL AUTHOR: STEPHANIE WOODWARD 19-10-94 LWRAD1C.9 CLL (BASED ON UM CODE WRITTEN BY WILLIAM INGRAM 14.12.90) LWRAD1C.10 CLL REVIEWER: WILLIAM INGRAM 19-10-94 LWRAD1C.11 CLL LWRAD1C.12 CLL IT CALLS LWMAST TO PRODUCE LONGWAVE FLUXES (AFTER SETTING LWRAD1C.13 CLL CONVECTIVE CLOUD BASE AND TOP TO SAFE VALUES) AND THEN DIFFERENCES LWRAD1C.14 CLL THESE FLUXES AND RETURNS TIMESTEP-BY-TIMESTEP INCREMENTS. LWRAD1C.15 CLL IT WILL DIAGNOSE OUTGOING LONGWAVE RADIATION (OLR) LWRAD1C.16 C GSS2F402.42 C Version GSS2F402.43 CLL 4.2 Sept.96 T3E migration: *DEF CRAY removed; GSS2F402.44 CLL *DEF T3E used for T3E library functions; GSS2F402.45 CLL dynamic allocation no longer *DEF controlled; GSS2F402.46 CLL cray HF functions replaced by T3E lib functions. GSS2F402.47 CLL S.J.Swarbrick GSS2F402.48 ! 4.4 01/07/97 Argument L_CLOUD_WATER_PARTITION passed into AYY1F404.321 ! cloud calculation code. A Bushell AYY1F404.322 CLL LWRAD1C.17 CLL OFFLINE DOCUMENTATION (WHERE APPROPRIATE) IS IN UMDP 23. LWRAD1C.18 C*L LWRAD1C.19SUBROUTINE LWRAD (H2O, CO2, O3, 2,4LWRAD1C.20 & N2OMMR, CH4MMR, C11MMR, C12MMR, LWRAD1C.21 & TAC, PEXNER, TSTAR, PSTAR, AB, LWRAD1C.22 & BB, AC, BC, AICE, LCA, LCCWC1, LCCWC2, CCA, CCCWP, CCB, CCT, LWRAD1C.23 & LAND, PTS, LUT, LWRAD1C.24 & TCADIA, TCAON, CSOLRD, CSOLON, SFDN, SFDNON, cssfdn, cssdon, LWRAD1C.25 & L_CLOUD_WATER_PARTITION, AYY1F404.323 & L2, NLEVS, NCLDS, GSS2F402.49 & NWET, NOZONE, L1, OLR, LWSEA, LWOUT) LWRAD1C.29 C LWRAD1C.30 CL EXTERNAL ROUTINES CALLED LWRAD1C.31 EXTERNAL LWMAST ! TOP-LEVEL OF THE LW PHYSICS LWRAD1C.32 & , LWDCSF ! DIAGNOSES CLEAR-SKY FRACTION LWRAD1C.33 C ! DIMENSIONS: LWRAD1C.34 *CALL LWNLKUPS
LWRAD1C.35 *CALL LWNBANDS
LWRAD1C.36 *CALL LWNTRANS
LWRAD1C.37 *CALL LWNGASES
LWRAD1C.38 C ! ARRAY DIMENSIONS MUST BE CONSTANTS IN FORTRAN LWRAD1C.40 INTEGER!, INTENT(IN) :: LWRAD1C.45 & L2 ! NUMBER OF POINTS TO BE TREATED LWRAD1C.47 & ,NLEVS ! NUMBER OF LEVELS LWRAD1C.48 & ,NCLDS, ! NUMBER OF POSSIBLY CLOUDY LEVELS LWRAD1C.49 & L1, ! FULL FIELD DIMENSION LWRAD1C.51 & NWET, ! NUMBER OF LEVELS WITH MOISTURE LWRAD1C.52 & NOZONE ! NUMBER OF LEVELS WITH OZONE LWRAD1C.53 REAL!, INTENT(IN) :: LWRAD1C.54 & PSTAR(L1), ! SURFACE PRESSURE LWRAD1C.55 & AB(NLEVS+1), BB(NLEVS+1), ! AS AND BS AT LAYER BOUNDARIES LWRAD1C.56 & AC(NLEVS), BC(NLEVS), ! AS AND BS AT LAYER CENTRES LWRAD1C.57 & H2O(L1,NWET), CO2, ! MIXING RATIOS OF THE LWRAD1C.58 & O3(L1,NOZONE), ! ABSORBING GASES LWRAD1C.59 & N2OMMR, ! m m r's of n2o LWRAD1C.60 & CH4MMR, ! ch4 LWRAD1C.61 & C11MMR, ! cfc11 LWRAD1C.62 & C12MMR, ! cfc12 LWRAD1C.63 & TAC(L1,NLEVS), ! TEMPERATURE AT LAYER CENTRES LWRAD1C.64 & PEXNER(L1,NLEVS+1), ! EXNER FUNCTION @ LAYER BOUNDARIES LWRAD1C.65 & TSTAR(L1), ! SURFACE TEMPERATURE LWRAD1C.66 & LUT(IT,NTRANS,nscgmx,2), ! LOOK-UP TABLES FOR LWTRAN LWRAD1C.67 & AICE(L1), ! SEA-ICE FRACTION LWRAD1C.68 & LCCWC1(L1,1/(NCLDS+1)+NCLDS), LCCWC2(L1,1/(NCLDS+1)+NCLDS), LWRAD1C.69 C ! LAYER CLOUD CONDENSED WATER CONTENTS (SPECIFIC CONTENTS, MASS LWRAD1C.70 C ! PER UNIT MASS). ONLY THE SUM OF THESE TWO FIELDS IS USED. LWRAD1C.71 & LCA(L1,1/(NCLDS+1)+NCLDS),! LAYER CLOUD FRACTIONAL COVER LWRAD1C.72 & CCCWP(L1), ! CONVECTIVE CLOUD FRACTIONAL COVER LWRAD1C.73 & CCA(L1), ! AND CONDENSED WATER PATH LWRAD1C.74 & PTS ! TIME INTERVAL THAT INCREMENTS TO LWRAD1C.75 C ! BE RETURNED ARE TO BE ADDED IN AT ("PHYSICS TIMESTEP"). THE LWRAD1C.76 C ! INTERVAL OVER WHICH THEY ARE USED ("LONGWAVE TIMESTEP") HAS NO LWRAD1C.77 C ! EFFECT ON THE LONGWAVE CODE: IT JUST SETS HOW OFTEN IT IS CALLED LWRAD1C.78 INTEGER!, INTENT(IN) :: LWRAD1C.79 & CCB(L1), CCT(L1) ! CONVECTIVE CLOUD BASE & TOP LWRAD1C.80 LOGICAL!, INTENT(IN) :: LWRAD1C.81 & LAND(L1) ! LAND/SEA MASK (.TRUE. FOR LAND) LWRAD1C.82 & ,CSOLON ! IS CSOLRD WANTED ? LWRAD1C.83 & ,TCAON ! & IS TCADIA ? LWRAD1C.84 & ,SFDNON ! & IS SFDN ? LWRAD1C.85 & ,CSSDON ! & is cssfdn? LWRAD1C.86 & ,L_CLOUD_WATER_PARTITION AYY1F404.324 REAL!,INTENT(OUT) :: LWRAD1C.87 & LWOUT(L1,NLEVS+1), !THIS IS FILLED BY LWMAST WITH THE LWRAD1C.88 C ! NET DOWNWARD LONGWAVE FLUX AT ALL LAYER BOUNDARIES. LWRAD LWRAD1C.89 C ! CONVERTS THESE TO ATMOSPHERIC HEATING RATES, LEAVING ONLY THE LWRAD1C.90 C ! SURFACE FLUXES IN THE FIRST LEVEL. LWRAD1C.91 & LWSEA(L1) ! THEN IT USES NUMBERS LWPLAN HAS LWRAD1C.92 C ! PUT INTO LWSEA TO SEPARATE OUT THE TOTAL SURFACE FLUX OVER THE LWRAD1C.93 C ! GRID-BOX INTO THE OPEN-OCEAN AND SOLID-SURFACE (SEA-ICE OR LWRAD1C.94 C ! LAND) CONTRIBUTIONS AND RETURNS THESE IN LWSEA AND THE FIRST LWRAD1C.95 C ! LEVEL OF LWOUT RESPECTIVELY. LWRAD1C.96 & ,OLR(L1) ! OUTGOING LONGWAVE RADIATION LWRAD1C.97 & ,CSOLRD(L1) ! AND ITS CLEAR-SKY EQUIVALENT LWRAD1C.98 & ,TCADIA(L2) ! TOTAL CLOUD AMOUNT DIAGNOSTIC LWRAD1C.99 & ,SFDN(L2) ! SURFACE FLUX DOWN DIAGNOSTIC LWRAD1C.100 & ,CSSFDN(L1) ! and its clearsky equivalent LWRAD1C.101 & ,N2O(NLEVS) ! mixing ratios of n20 on levs LWRAD1C.102 & ,CH4(NLEVS) ! ch4 LWRAD1C.103 & ,CFC11(NLEVS) ! cfc11 LWRAD1C.104 & ,CFC12(NLEVS) ! cfc12 LWRAD1C.105 C* LWRAD1C.106 *CALL C_G
LWRAD1C.107 *CALL C_R_CP
LWRAD1C.108 REAL CPBYG LWRAD1C.109 PARAMETER ( CPBYG = CP / G ) LWRAD1C.110 REAL DACON, DBCON ! CONVERSION FACTORS FOR TURNING LWRAD1C.111 C ! FLUXES INTO INCREMENTS - DIFFERENCE OF AS AND BS ACROSS THE LWRAD1C.112 C ! CURRENT LAYER, TIMES CPBYG AND DIVIDED BY THE TIMESTEP. LWRAD1C.113 INTEGER LEVEL, J ! LOOPERS OVER LEVEL AND POINT LWRAD1C.114 LOGICAL SFDNCA ! is SFDN to be calculated by LWRAD1C.115 C ! LWMAST? - set if either SFDNON or CSSDON is, because SFDN is LWRAD1C.116 C ! needed to find CSSSDN even if not wanted for its own sake. LWRAD1C.117 C ! Space for SFDN is assigned by the "implied diagnostic" LWRAD1C.118 C ! arrangements in that case, but its flag is only set if it is LWRAD1C.119 C ! wanted for its own sake. LWRAD1C.120 C LWRAD1C.121 CL SECTION 1 - CORRECT INPUT DATA WHERE NECESSARY LWRAD1C.122 CL --------- LWRAD1C.123 C LWRAD1C.124 C...Set up mixing ratios of minor gases on levels, from vals set in UI LWRAD1C.125 C LWRAD1C.126 C AJC0F405.214 *IF DEF,SCMA AJC0F405.215 IF (N2OMMR .LT. 1.E-20) N2OMMR=1.E-20 AJC0F405.216 IF (CH4MMR .LT. 1.E-20) CH4MMR=1.E-20 AJC0F405.217 IF (C11MMR .LT. 1.E-20) C11MMR=1.E-20 AJC0F405.218 IF (C12MMR .LT. 1.E-20) C12MMR=1.E-20 AJC0F405.219 *ENDIF AJC0F405.220 C AJC0F405.221 DO 900 LEVEL = 1,NLEVS LWRAD1C.127 N2O(LEVEL) = N2OMMR LWRAD1C.128 CH4(LEVEL) = CH4MMR LWRAD1C.129 CFC11(LEVEL) = C11MMR LWRAD1C.130 CFC12(LEVEL) = C12MMR LWRAD1C.131 900 CONTINUE LWRAD1C.132 C LWRAD1C.133 CL ! RESTRICT CONVECTIVE CLOUD BASE AND TOP TO THEIR PHYSICAL RANGE. LWRAD1C.134 C LWRAD1C.135 DO 10 J=1, L2 LWRAD1C.136 IF ( CCB(J) .GT. NCLDS .OR. CCB(J) .LT. 1 ) CCB(J) = 1 LWRAD1C.137 IF ( CCT(J) .GT. (NCLDS+1) .OR. CCT(J) .LT. 2 ) CCT(J) = NCLDS+1 LWRAD1C.138 10 CONTINUE LWRAD1C.139 C LWRAD1C.140 SFDNCA = SFDNON .OR. CSSDON LWRAD1C.141 C LWRAD1C.142 CL SECTION 2 - CALL LWMAST LWRAD1C.143 CL --------- LWRAD1C.144 C LWRAD1C.145 CALL LWMAST
(H2O, CO2, O3, N2O, CH4, CFC11, CFC12, LWRAD1C.146 & TAC, PEXNER, TSTAR, PSTAR, AB, BB, LWRAD1C.147 & AC, BC, AICE, LCA, LCCWC1, LCCWC2, CCA, CCCWP, CCB, CCT, LUT, LWRAD1C.148 & CSOLRD, CSOLON, SFDN, SFDNCA, CSSFDN, CSSDON, LWRAD1C.149 & L_CLOUD_WATER_PARTITION, AYY1F404.325 & L2, NLEVS, NCLDS, GSS2F402.50 & NWET, NOZONE, L1, LWSEA, LWOUT) LWRAD1C.153 C LWRAD1C.154 CL SECTION 3 - CONVERT FLUXES TO INCREMENTS LWRAD1C.155 CL --------- LWRAD1C.156 C LWRAD1C.157 CL ! BUT FIRST COPY THE TOP LAYER INTO OLR: LWRAD1C.158 C LWRAD1C.159 DO J=1, L2 LWRAD1C.160 OLR(J) = - LWOUT(J,NLEVS+1) LWRAD1C.161 ENDDO LWRAD1C.162 C LWRAD1C.163 CL ! CONVERT FLUXES TO INCREMENTS (EQ 1.1) WITHIN THE ATMOSPHERE, LWRAD1C.164 CL ! LEAVING THE SURFACE NET DOWNWARD FLUX AT THE BEGINNING OF LWOUT LWRAD1C.165 C LWRAD1C.166 DO 30 LEVEL=NLEVS, 1, -1 LWRAD1C.167 DACON = ( AB(LEVEL) - AB(LEVEL+1) ) * CPBYG / PTS LWRAD1C.168 DBCON = ( BB(LEVEL) - BB(LEVEL+1) ) * CPBYG / PTS LWRAD1C.169 DO 33 J=1, L2 LWRAD1C.170 LWOUT(J,LEVEL+1) = ( LWOUT(J,LEVEL+1) - LWOUT(J,LEVEL) ) LWRAD1C.171 & / ( DACON + PSTAR(J) * DBCON ) LWRAD1C.172 33 CONTINUE LWRAD1C.173 30 CONTINUE LWRAD1C.174 C LWRAD1C.175 CL ! SEPARATE THE CONTRIBUTIONS FOR A SOLID SURFACE (LAND OR SEA-ICE) LWRAD1C.176 CL ! TO BE ADDED IN BY THE MODEL'S SURFACE SCHEME, FROM THOSE FOR LWRAD1C.177 CL ! OPEN SEA, TO BE USED IN THE OCEAN MODEL. INITIALLY LWOUT LWRAD1C.178 CL ! HAS THE ACTUAL BOX-MEAN FLUX AND LWSEA HAS THE DIFFERENCE LWRAD1C.179 CL ! BETWEEN UPWARD SURFACE FLUXES FOR OPEN-SEA AND SEA-ICE. LWRAD1C.180 CL ! THE VALUES THAT WILL NEVER BE USED (OPEN-SEA VALUE AT LAND LWRAD1C.181 CL ! POINTS AND SOLID-SURFACE VALUES AT ICE-FREE SEA POINTS) ARE LWRAD1C.182 CL ! ZEROED SO THAT THE 2 FIELDS WILL SUM TO THE ACTUAL BOX-MEAN FLUX LWRAD1C.183 DO 35 J=1, L2 LWRAD1C.184 IF (LAND(J)) THEN LWRAD1C.185 LWSEA(J) = 0. LWRAD1C.186 ELSE IF ( AICE(J) .EQ. 0. ) THEN LWRAD1C.187 LWSEA(J) = LWOUT(J,1) LWRAD1C.188 LWOUT(J,1) = 0. LWRAD1C.189 ELSE LWRAD1C.190 C ! OVERALL, LWOUT(,1) = AICE * ( LWOUT(,1) + (1.-AICE)*LWSEA ) LWRAD1C.191 LWSEA(J) = (1.-AICE(J)) * ( LWOUT(J,1) - AICE(J)*LWSEA(J) ) LWRAD1C.192 LWOUT(J,1) = LWOUT(J,1) - LWSEA(J) LWRAD1C.193 ENDIF LWRAD1C.194 35 CONTINUE LWRAD1C.195 C LWRAD1C.196 CL SECTION 5 - CALL LWDCSF TO CALCULATE CLEAR-SKY FRACTION LWRAD1C.197 CL --------- AND PUT AWAY TOTAL CLOUD AMOUNT IF REQUESTED LWRAD1C.198 C LWRAD1C.199 IF ( TCAON ) THEN LWRAD1C.200 IF ( NCLDS .GT. 0 ) THEN LWRAD1C.201 CALL LWDCSF
(LCA, CCA, CCB, CCT, NCLDS, L1, L2, TCADIA) LWRAD1C.202 DO J=1, L2 LWRAD1C.203 TCADIA(J) = 1. - TCADIA(J) LWRAD1C.204 ENDDO LWRAD1C.205 ELSE LWRAD1C.206 DO J=1, L2 LWRAD1C.207 TCADIA(J) = 0. LWRAD1C.208 ENDDO LWRAD1C.209 ENDIF LWRAD1C.210 ENDIF LWRAD1C.211 C LWRAD1C.212 RETURN LWRAD1C.213 END LWRAD1C.214 *ENDIF LWRAD1C.215