[57] | 1 | SUBROUTINE DEDD (KDLON,PGG,PREF,PRMUZ,PTO1,PW |
---|
| 2 | S , PRE1,PRE2,PTR1,PTR2 ) |
---|
| 3 | implicit none |
---|
| 4 | C |
---|
| 5 | #include "dimensions.h" |
---|
| 6 | #include "dimphys.h" |
---|
| 7 | #include "dimradmars.h" |
---|
| 8 | C |
---|
| 9 | C**** *DEDD* - DELTA-EDDINGTON IN A CLOUDY LAYER |
---|
| 10 | C |
---|
| 11 | C PURPOSE. |
---|
| 12 | C -------- |
---|
| 13 | C COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY OF A CLOUDY |
---|
| 14 | C LAYER USING THE DELTA-EDDINGTON'S APPROXIMATION. |
---|
| 15 | C |
---|
| 16 | C** INTERFACE. |
---|
| 17 | C ---------- |
---|
| 18 | C *DEDD* IS CALLED BY *SW*. |
---|
| 19 | C |
---|
| 20 | C SUBROUTINE DEDD (KDLON,PGG,PREF,PRMUZ,PTO1,PW |
---|
| 21 | C S , PRE1,PRE2,PTR1,PTR2 ) |
---|
| 22 | C |
---|
| 23 | C EXPLICIT ARGUMENTS : |
---|
| 24 | C -------------------- |
---|
| 25 | C PGG : (NDLON) ; ASSYMETRY FACTOR |
---|
| 26 | C PREF : (NDLON) ; REFLECTIVITY OF THE UNDERLYING LAYER |
---|
| 27 | C PRMUZ : (NDLON) ; COSINE OF SOLAR ZENITH ANGLE |
---|
| 28 | C PTO1 : (NDLON) ; OPTICAL THICKNESS |
---|
| 29 | C PW : (NDLON) ; SINGLE SCATTERING ALBEDO |
---|
| 30 | C ==== OUTPUTS === |
---|
| 31 | C PRE1 : (NDLON) ; LAYER REFLECTIVITY ASSUMING NO |
---|
| 32 | C ; REFLECTION FROM UNDERLYING LAYER |
---|
| 33 | C PTR1 : (NDLON) ; LAYER TRANSMISSIVITY ASSUMING NO |
---|
| 34 | C ; REFLECTION FROM UNDERLYING LAYER |
---|
| 35 | C PRE2 : (NDLON) ; LAYER REFLECTIVITY ASSUMING |
---|
| 36 | C ; REFLECTION FROM UNDERLYING LAYER |
---|
| 37 | C PTR2 : (NDLON) ; LAYER TRANSMISSIVITY ASSUMING |
---|
| 38 | C ; REFLECTION FROM UNDERLYING LAYER |
---|
| 39 | C |
---|
| 40 | C IMPLICIT ARGUMENTS : NONE |
---|
| 41 | C -------------------- |
---|
| 42 | C |
---|
| 43 | C METHOD. |
---|
| 44 | C ------- |
---|
| 45 | C |
---|
| 46 | C STANDARD DELTA-EDDINGTON LAYER CALCULATIONS. |
---|
| 47 | C |
---|
| 48 | C EXTERNALS. |
---|
| 49 | C ---------- |
---|
| 50 | C |
---|
| 51 | C NONE |
---|
| 52 | C |
---|
| 53 | C REFERENCE. |
---|
| 54 | C ---------- |
---|
| 55 | C |
---|
| 56 | C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND |
---|
| 57 | C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE "IN CORE MODEL" |
---|
| 58 | C |
---|
| 59 | C AUTHOR. |
---|
| 60 | C ------- |
---|
| 61 | C JEAN-JACQUES MORCRETTE *ECMWF* |
---|
| 62 | C |
---|
| 63 | C MODIFICATIONS. |
---|
| 64 | C -------------- |
---|
| 65 | C ORIGINAL : 88-12-15 |
---|
| 66 | C ------------------------------------------------------------------ |
---|
| 67 | C |
---|
| 68 | C* 0.1 ARGUMENTS |
---|
| 69 | C --------- |
---|
| 70 | INTEGER KDLON |
---|
| 71 | C |
---|
| 72 | REAL PGG(NDLO2),PREF(NDLO2),PRMUZ(NDLO2),PTO1(NDLO2),PW(NDLO2) |
---|
| 73 | REAL PRE1(NDLO2),PRE2(NDLO2),PTR1(NDLO2),PTR2(NDLO2) |
---|
| 74 | |
---|
| 75 | c local |
---|
| 76 | integer jl |
---|
| 77 | real*8 ZFF,ZGP,ZTOP,ZWCP,ZDT,ZX1,ZWM,ZRM2,ZRK,ZX2,ZRP,ZALPHA |
---|
| 78 | real*8 ZBETA,ZEXMU0,ZEXKP,ZEXKM,ZXP2P,ZXM2P,ZAP2B,ZAM2B |
---|
| 79 | real*8 ZA11,ZA12,ZA13,ZA22,ZA21,ZA23,ZDENA,ZC1A,ZC2A |
---|
| 80 | real*8 ZRI0A,ZRI1A,ZRI0B,ZRI1B |
---|
| 81 | real*8 ZB21,ZB22,ZB23,ZDENB,ZC1B,ZC2B |
---|
| 82 | real*8 ZRI0C,ZRI1C,ZRI0D,ZRI1D |
---|
| 83 | C |
---|
| 84 | C ------------------------------------------------------------------ |
---|
| 85 | C |
---|
| 86 | C* 1. DELTA-EDDINGTON CALCULATIONS |
---|
| 87 | C |
---|
| 88 | 100 CONTINUE |
---|
| 89 | C |
---|
| 90 | DO 131 JL = 1 , KDLON |
---|
| 91 | C |
---|
| 92 | C* 1.1 SET UP THE DELTA-MODIFIED PARAMETERS |
---|
| 93 | C |
---|
| 94 | 110 CONTINUE |
---|
| 95 | C |
---|
| 96 | ZFF = PGG(JL)*PGG(JL) |
---|
| 97 | ZGP = PGG(JL)/(1.+PGG(JL)) |
---|
| 98 | ZTOP = (1.- PW(JL) * ZFF) * PTO1(JL) |
---|
| 99 | ZWCP = (1-ZFF)* PW(JL) /(1.- PW(JL) * ZFF) |
---|
| 100 | ZDT = 2./3. |
---|
| 101 | ZX1 = 1.-ZWCP*ZGP |
---|
| 102 | ZWM = 1.-ZWCP |
---|
| 103 | ZRM2 = PRMUZ(JL) * PRMUZ(JL) |
---|
| 104 | ZRK = SQRT(3.*ZWM*ZX1) |
---|
| 105 | ZX2 = 4.*(1.-ZRK*ZRK*ZRM2) |
---|
| 106 | ZRP = SQRT(3.*ZWM/ZX1) |
---|
| 107 | ZALPHA = 3.*ZWCP*ZRM2*(1.+ZGP*ZWM)/ZX2 |
---|
| 108 | ZBETA = 3.*ZWCP* PRMUZ(JL) *(1.+3.*ZGP*ZRM2*ZWM)/ZX2 |
---|
| 109 | ZEXMU0 = EXP(-ZTOP/ PRMUZ(JL) ) |
---|
| 110 | ZEXKP = EXP(ZRK*ZTOP) |
---|
| 111 | ZEXKM = 1./ZEXKP |
---|
| 112 | ZXP2P = 1.+ZDT*ZRP |
---|
| 113 | ZXM2P = 1.-ZDT*ZRP |
---|
| 114 | ZAP2B = ZALPHA+ZDT*ZBETA |
---|
| 115 | ZAM2B = ZALPHA-ZDT*ZBETA |
---|
| 116 | C |
---|
| 117 | C* 1.2 WITHOUT REFLECTION FROM THE UNDERLYING LAYER |
---|
| 118 | C |
---|
| 119 | 120 CONTINUE |
---|
| 120 | C |
---|
| 121 | ZA11 = ZXP2P |
---|
| 122 | ZA12 = ZXM2P |
---|
| 123 | ZA13 = ZAP2B |
---|
| 124 | ZA22 = ZXP2P*ZEXKP |
---|
| 125 | ZA21 = ZXM2P*ZEXKM |
---|
| 126 | ZA23 = ZAM2B*ZEXMU0 |
---|
| 127 | ZDENA = ZA11 * ZA22 - ZA21 * ZA12 |
---|
| 128 | ZC1A = (ZA22*ZA13-ZA12*ZA23)/ZDENA |
---|
| 129 | ZC2A = (ZA11*ZA23-ZA21*ZA13)/ZDENA |
---|
| 130 | ZRI0A = ZC1A+ZC2A-ZALPHA |
---|
| 131 | ZRI1A = ZRP*(ZC1A-ZC2A)-ZBETA |
---|
| 132 | PRE1(JL) = (ZRI0A-ZDT*ZRI1A)/ PRMUZ(JL) |
---|
| 133 | ZRI0B = ZC1A*ZEXKM+ZC2A*ZEXKP-ZALPHA*ZEXMU0 |
---|
| 134 | ZRI1B = ZRP*(ZC1A*ZEXKM-ZC2A*ZEXKP)-ZBETA*ZEXMU0 |
---|
| 135 | PTR1(JL) = ZEXMU0+(ZRI0B+ZDT*ZRI1B)/ PRMUZ(JL) |
---|
| 136 | C |
---|
| 137 | C* 1.3 WITH REFLECTION FROM THE UNDERLYING LAYER |
---|
| 138 | C |
---|
| 139 | 130 CONTINUE |
---|
| 140 | C |
---|
| 141 | ZB21 = ZA21- PREF(JL) *ZXP2P*ZEXKM |
---|
| 142 | ZB22 = ZA22- PREF(JL) *ZXM2P*ZEXKP |
---|
| 143 | ZB23 = ZA23- PREF(JL) *ZEXMU0*(ZAP2B - PRMUZ(JL) ) |
---|
| 144 | ZDENB = ZA11 * ZB22 - ZB21 * ZA12 |
---|
| 145 | ZC1B = (ZB22*ZA13-ZA12*ZB23)/ZDENB |
---|
| 146 | ZC2B = (ZA11*ZB23-ZB21*ZA13)/ZDENB |
---|
| 147 | ZRI0C = ZC1B+ZC2B-ZALPHA |
---|
| 148 | ZRI1C = ZRP*(ZC1B-ZC2B)-ZBETA |
---|
| 149 | PRE2(JL) = (ZRI0C-ZDT*ZRI1C) / PRMUZ(JL) |
---|
| 150 | ZRI0D = ZC1B*ZEXKM + ZC2B*ZEXKP - ZALPHA*ZEXMU0 |
---|
| 151 | ZRI1D = ZRP * (ZC1B*ZEXKM - ZC2B*ZEXKP) - ZBETA*ZEXMU0 |
---|
| 152 | PTR2(JL) = ZEXMU0 + (ZRI0D + ZDT*ZRI1D) / PRMUZ(JL) |
---|
| 153 | C |
---|
| 154 | 131 CONTINUE |
---|
| 155 | RETURN |
---|
| 156 | END |
---|