[1796] | 1 | !========================================================================== |
---|
| 2 | |
---|
[2542] | 3 | subroutine photolysis_asis(nlayer, ngrid, & |
---|
| 4 | lswitch, press, temp, sza,fractcol, tauref, & |
---|
| 5 | zmmean, dist_sol, rmco2, rmo3, rmch4, v_phot, e_phot, nreact, three_prod) |
---|
[1796] | 6 | |
---|
| 7 | !========================================================================== |
---|
| 8 | |
---|
| 9 | use comcstfi_mod |
---|
| 10 | use callkeys_mod |
---|
[2542] | 11 | use types_asis |
---|
| 12 | use chimiedata_h |
---|
[1796] | 13 | |
---|
| 14 | implicit none |
---|
| 15 | |
---|
[2542] | 16 | !#include "chimiedata.h" |
---|
[1796] | 17 | |
---|
| 18 | !========================================================================== |
---|
| 19 | ! input: |
---|
| 20 | !========================================================================== |
---|
| 21 | |
---|
| 22 | integer, intent(in) :: nlayer ! number of atmospheric layers |
---|
[2542] | 23 | integer, intent(in) :: ngrid ! number of atmospheric columns |
---|
[1796] | 24 | integer :: lswitch ! interface level between chemistries |
---|
| 25 | real :: press(nlayer) ! pressure (hPa) |
---|
| 26 | real :: temp(nlayer) ! temperature (K) |
---|
| 27 | real :: sza ! solar zenith angle (deg) |
---|
| 28 | real :: fractcol ! day fraction |
---|
| 29 | real :: tauref ! optical depth at 7 hpa |
---|
[2542] | 30 | real :: zmmean(nlayer) ! mean molecular mass (g/mol) |
---|
[1796] | 31 | real :: dist_sol ! sun distance (AU) |
---|
| 32 | real :: rmco2(nlayer) ! co2 mixing ratio |
---|
| 33 | real :: rmo3(nlayer) ! ozone mixing ratio |
---|
[2542] | 34 | real :: rmch4(nlayer) ! ch4 mixing ratio |
---|
| 35 | integer, intent(in) :: nreact ! number of reactions in reactions files |
---|
| 36 | logical, intent(in) :: three_prod(nreact) ! if the reaction have a three defferent products egal .true. |
---|
[1796] | 37 | |
---|
| 38 | !========================================================================== |
---|
| 39 | ! output: interpolated photodissociation rates (s-1) |
---|
| 40 | !========================================================================== |
---|
| 41 | |
---|
| 42 | real (kind = 8), dimension(nlayer,nb_phot_max) :: v_phot |
---|
[2542] | 43 | real (kind = 8), dimension(nlayer,nb_phot_max) :: e_phot |
---|
[1796] | 44 | |
---|
| 45 | !========================================================================== |
---|
| 46 | ! local: |
---|
| 47 | !========================================================================== |
---|
| 48 | |
---|
| 49 | integer :: icol, ij, indsza, indtau, indcol, indozo, indtemp, & |
---|
[2542] | 50 | iozo, isza, itau, it, ich4, indch4, l, nb_phot |
---|
[1796] | 51 | |
---|
| 52 | real :: col(nlayer) ! overhead air column (molecule cm-2) |
---|
| 53 | real :: colo3(nlayer) ! overhead ozone column (molecule cm-2) |
---|
[2542] | 54 | real :: colch4(nlayer) ! overhead CH4 column (molecule cm-2) |
---|
| 55 | real :: tauch4(nlayer) ! estimation of optical depth by CH4 |
---|
| 56 | real :: ch4_equ(nlayer) ! equivalent constant mixing ratio for the same column of CH4 |
---|
| 57 | real :: poids(2,2,2,2,2,2) ! 6D interpolation weights |
---|
[1796] | 58 | real :: tref ! temperature at 1.9 hPa in the gcm (K) |
---|
| 59 | real :: table_temp(ntemp) ! temperatures at 1.9 hPa in jmars (K) |
---|
[2542] | 60 | real :: ch4ref ! ch4 mixing ratio at top of the atmosphere |
---|
| 61 | real :: cinf, csup, cicol, ciozo, cisza, citemp, citau, cich4 |
---|
[1796] | 62 | real :: colo3min, dp, coef |
---|
| 63 | real :: ratio_o3(nlayer) |
---|
| 64 | real :: tau |
---|
| 65 | real :: j(nlayer,nd) |
---|
[2542] | 66 | real :: e(nlayer,nd) |
---|
[1796] | 67 | |
---|
| 68 | !========================================================================== |
---|
| 69 | ! day/night criterion |
---|
| 70 | !========================================================================== |
---|
| 71 | |
---|
| 72 | if (sza <= 95.) then |
---|
| 73 | |
---|
| 74 | !========================================================================== |
---|
| 75 | ! temperatures at 1.9 hPa in lookup table |
---|
| 76 | !========================================================================== |
---|
| 77 | |
---|
[2542] | 78 | ! table_temp(1) = 226.2 |
---|
| 79 | ! table_temp(2) = 206.2 |
---|
| 80 | ! table_temp(3) = 186.2 |
---|
| 81 | ! table_temp(4) = 169.8 |
---|
[1796] | 82 | |
---|
[2542] | 83 | ! table_temp(2) = 186.2 |
---|
| 84 | table_temp(1) = 176.2 |
---|
| 85 | |
---|
[1796] | 86 | !========================================================================== |
---|
| 87 | ! interpolation in solar zenith angle |
---|
| 88 | !========================================================================== |
---|
| 89 | |
---|
| 90 | indsza = nsza - 1 |
---|
| 91 | do isza = 1,nsza |
---|
| 92 | if (szatab(isza) >= sza) then |
---|
| 93 | indsza = isza - 1 |
---|
| 94 | indsza = max(indsza, 1) |
---|
| 95 | exit |
---|
| 96 | end if |
---|
| 97 | end do |
---|
[2542] | 98 | |
---|
| 99 | if(nsza.eq.1) then |
---|
| 100 | cisza = 0. |
---|
| 101 | indsza=1 |
---|
| 102 | else |
---|
| 103 | cisza = (sza - szatab(indsza)) & |
---|
[1796] | 104 | /(szatab(indsza + 1) - szatab(indsza)) |
---|
[2542] | 105 | endif |
---|
[1796] | 106 | |
---|
| 107 | !========================================================================== |
---|
| 108 | ! interpolation in dust (tau) |
---|
| 109 | !========================================================================== |
---|
| 110 | |
---|
| 111 | tau = min(tauref, tautab(ntau)) |
---|
| 112 | tau = max(tau, tautab(1)) |
---|
| 113 | |
---|
| 114 | indtau = ntau - 1 |
---|
| 115 | do itau = 1,ntau |
---|
| 116 | if (tautab(itau) >= tau) then |
---|
| 117 | indtau = itau - 1 |
---|
| 118 | indtau = max(indtau, 1) |
---|
| 119 | exit |
---|
| 120 | end if |
---|
| 121 | end do |
---|
[2542] | 122 | |
---|
| 123 | if(ntau.eq.1) then |
---|
| 124 | citau=0. |
---|
| 125 | indtau=1 |
---|
| 126 | else |
---|
| 127 | citau = (tau - tautab(indtau)) & |
---|
[1796] | 128 | /(tautab(indtau + 1) - tautab(indtau)) |
---|
[2542] | 129 | endif |
---|
[1796] | 130 | |
---|
[2542] | 131 | |
---|
| 132 | |
---|
[1796] | 133 | !========================================================================== |
---|
[2542] | 134 | ! air and ozone columns |
---|
[1796] | 135 | !========================================================================== |
---|
| 136 | |
---|
| 137 | ! co2 column at model top (molecule.cm-2) |
---|
| 138 | |
---|
[2542] | 139 | ! col(lswitch-1) = 6.022e22*rmco2(lswitch-1)*press(lswitch-1)*100. & |
---|
| 140 | ! /(zmmean(lswitch-1)*g) |
---|
| 141 | col(lswitch-1) = 6.022e22*press(lswitch-1)*100./(zmmean(lswitch-1)*g) |
---|
[1796] | 142 | |
---|
[2542] | 143 | |
---|
[1796] | 144 | ! ozone column at model top |
---|
| 145 | |
---|
| 146 | colo3(lswitch-1) = 0. |
---|
| 147 | ! co2 and ozone columns for other levels (molecule.cm-2) |
---|
| 148 | |
---|
| 149 | do l = lswitch-2,1,-1 |
---|
| 150 | dp = (press(l) - press(l+1))*100. |
---|
[2542] | 151 | ! col(l) = col(l+1) + (rmco2(l+1) + rmco2(l))*0.5 & |
---|
| 152 | ! *6.022e22*dp/(zmmean(l)*g) |
---|
| 153 | col(l) = col(l+1) + 6.022e22*dp/(zmmean(l)*g) |
---|
[1796] | 154 | col(l) = min(col(l), colairtab(1)) |
---|
| 155 | colo3(l) = colo3(l+1) + (rmo3(l+1) + rmo3(l))*0.5 & |
---|
| 156 | *6.022e22*dp/(zmmean(l)*g) |
---|
[2542] | 157 | |
---|
[1796] | 158 | end do |
---|
| 159 | |
---|
[2542] | 160 | ! ratio ozone column/minimal theoretical column (10 micron-atm) |
---|
[1796] | 161 | |
---|
[2542] | 162 | ! ro3 = 1.227e-10 is the o3 mixing ratio for a uniform |
---|
| 163 | ! profile giving a column 10 micron-atmosphere at |
---|
| 164 | ! a surface pressure of 1 bar. |
---|
[1796] | 165 | |
---|
| 166 | do l = 1,lswitch-1 |
---|
[2542] | 167 | ! colo3min = col(l)*7.171e-10 |
---|
| 168 | colo3min = col(l)*1.227e-10*(g/9.81)*(mugaz/28) |
---|
[1796] | 169 | ratio_o3(l) = colo3(l)/colo3min |
---|
[2542] | 170 | ratio_o3(l) = min(ratio_o3(l), table_ozo(nozo)) |
---|
| 171 | ratio_o3(l) = max(ratio_o3(l), 0.) |
---|
[1796] | 172 | end do |
---|
| 173 | |
---|
[2542] | 174 | ! print*,'co3(1)=',colo3(1) |
---|
| 175 | ! print*,'col(1)=',col(1) |
---|
| 176 | ! print*,'ratio_o3(1)=',ratio_o3(1) |
---|
| 177 | ! print*,'maxval(ratio_o3)=',maxval(ratio_o3(:)) |
---|
| 178 | ! print*,'maxval(ozo)=',table_ozo(nozo)/10. |
---|
| 179 | |
---|
[1796] | 180 | !========================================================================== |
---|
[2542] | 181 | ! ch4 dependence |
---|
| 182 | !========================================================================== |
---|
| 183 | |
---|
| 184 | ! 1) search for temperature at 1.9 hPa (tref): vertical |
---|
| 185 | ! interpolation |
---|
| 186 | |
---|
| 187 | ch4ref = rmch4(lswitch-2) |
---|
| 188 | colch4(lswitch-1) = 0. |
---|
| 189 | ch4_equ(lswitch-1) = 0. |
---|
| 190 | do l = lswitch-2,1,-1 |
---|
| 191 | dp = (press(l) - press(l+1))*100. |
---|
| 192 | colch4(l) = colch4(l+1) + (rmch4(l+1) + rmch4(l))*0.5 & |
---|
| 193 | *6.022e22*dp/(zmmean(l)*g) |
---|
| 194 | ch4_equ(l)=colch4(l)/col(l) |
---|
| 195 | ! tauch4(l)=1.8e-21*colch4(l) |
---|
| 196 | ! if(tauch4(l).ge.1.0) exit |
---|
| 197 | end do |
---|
| 198 | ! ch4ref = (rmch4(l+1)*(tauch4(l)-1)+rmch4(l)*(1-tauch4(l+1))) & |
---|
| 199 | ! /(tauch4(l)-tauch4(l+1)) |
---|
| 200 | |
---|
| 201 | ! 2) interpolation in CH4 |
---|
| 202 | |
---|
| 203 | ! ch4ref = min(ch4ref,table_ch4(nch4)) |
---|
| 204 | ! ch4ref = max(ch4ref,table_ch4(1)) |
---|
| 205 | |
---|
| 206 | ! indch4 = nch4 - 1 |
---|
| 207 | ! do ich4 = 1,nch4 |
---|
| 208 | ! if (table_ch4(ich4) >= ch4ref) then |
---|
| 209 | ! indch4 = ich4 - 1 |
---|
| 210 | ! indch4 = max(indch4, 1) |
---|
| 211 | ! exit |
---|
| 212 | ! end if |
---|
| 213 | ! end do |
---|
| 214 | ! cich4 = (ch4ref - table_ch4(indch4)) & |
---|
| 215 | ! /(table_ch4(indch4 + 1) - table_ch4(indch4)) |
---|
| 216 | |
---|
| 217 | |
---|
| 218 | |
---|
| 219 | !========================================================================== |
---|
[1796] | 220 | ! temperature dependence |
---|
| 221 | !========================================================================== |
---|
| 222 | |
---|
| 223 | ! 1) search for temperature at 1.9 hPa (tref): vertical interpolation |
---|
| 224 | |
---|
| 225 | tref = temp(1) |
---|
| 226 | do l = (lswitch-1)-1,1,-1 |
---|
| 227 | if (press(l) > 1.9) then |
---|
| 228 | cinf = (press(l) - 1.9)/(press(l) - press(l+1)) |
---|
| 229 | csup = 1. - cinf |
---|
| 230 | tref = cinf*temp(l+1) + csup*temp(l) |
---|
| 231 | exit |
---|
| 232 | end if |
---|
| 233 | end do |
---|
| 234 | |
---|
| 235 | ! 2) interpolation in temperature |
---|
| 236 | |
---|
| 237 | tref = min(tref,table_temp(1)) |
---|
| 238 | tref = max(tref,table_temp(ntemp)) |
---|
| 239 | |
---|
[2542] | 240 | if(ntemp.eq.1) then |
---|
| 241 | citemp = 1. |
---|
| 242 | indtemp = 1 |
---|
| 243 | else |
---|
| 244 | do it = 2, ntemp |
---|
| 245 | if (table_temp(it) <= tref) then |
---|
| 246 | citemp = (log(tref) - log(table_temp(it))) & |
---|
| 247 | /(log(table_temp(it-1)) - log(table_temp(it))) |
---|
| 248 | indtemp = it - 1 |
---|
| 249 | exit |
---|
| 250 | end if |
---|
| 251 | end do |
---|
| 252 | endif |
---|
[1796] | 253 | |
---|
[2542] | 254 | |
---|
| 255 | |
---|
[1796] | 256 | !========================================================================== |
---|
| 257 | ! loop over vertical levels |
---|
| 258 | !========================================================================== |
---|
| 259 | |
---|
| 260 | do l = 1,lswitch-1 |
---|
| 261 | |
---|
| 262 | ! interpolation in air column |
---|
| 263 | |
---|
| 264 | indcol = nz - 1 |
---|
| 265 | do icol = 1,nz |
---|
| 266 | if (colairtab(icol) < col(l)) then |
---|
| 267 | indcol = icol - 1 |
---|
| 268 | exit |
---|
| 269 | end if |
---|
| 270 | end do |
---|
| 271 | cicol = (log(col(l)) - log(colairtab(indcol + 1))) & |
---|
| 272 | /(log(colairtab(indcol)) - log(colairtab(indcol + 1))) |
---|
| 273 | |
---|
| 274 | ! interpolation in ozone column |
---|
| 275 | |
---|
| 276 | indozo = nozo - 1 |
---|
| 277 | do iozo = 1,nozo |
---|
[2542] | 278 | if (table_ozo(iozo) >= ratio_o3(l)) then |
---|
[1796] | 279 | indozo = iozo - 1 |
---|
| 280 | indozo = max(indozo, 1) |
---|
| 281 | exit |
---|
| 282 | end if |
---|
| 283 | end do |
---|
| 284 | |
---|
[2542] | 285 | if(nozo.eq.1) then |
---|
| 286 | ciozo = 0. |
---|
| 287 | else |
---|
| 288 | ciozo = (ratio_o3(l) - table_ozo(indozo)) & |
---|
| 289 | /(table_ozo(indozo + 1) - table_ozo(indozo)) |
---|
| 290 | endif |
---|
[1796] | 291 | |
---|
[2542] | 292 | ! 2) interpolation in CH4 |
---|
[1796] | 293 | |
---|
[2542] | 294 | ch4ref = min(ch4_equ(l),table_ch4(nch4)) |
---|
| 295 | ch4ref = max(ch4ref,table_ch4(1)) |
---|
[1796] | 296 | |
---|
[2542] | 297 | indch4 = nch4 - 1 |
---|
| 298 | do ich4 = 1,nch4 |
---|
| 299 | if (table_ch4(ich4) >= ch4ref) then |
---|
| 300 | indch4 = ich4 - 1 |
---|
| 301 | indch4 = max(indch4, 1) |
---|
| 302 | exit |
---|
| 303 | end if |
---|
| 304 | end do |
---|
| 305 | if(nch4.eq.1) then |
---|
| 306 | cich4=0. |
---|
| 307 | indch4=1 |
---|
| 308 | else |
---|
| 309 | cich4 = (ch4ref - table_ch4(indch4)) & |
---|
| 310 | /(table_ch4(indch4 + 1) - table_ch4(indch4)) |
---|
| 311 | endif |
---|
| 312 | |
---|
| 313 | ! 5-dimensional interpolation weights |
---|
| 314 | |
---|
| 315 | ! poids(temp,sza,co2,o3,tau,ch4) |
---|
| 316 | |
---|
| 317 | poids(1,1,1,1,1,1) = citemp*(1.-cisza)*cicol*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 318 | poids(1,1,1,2,1,1) = citemp*(1.-cisza)*cicol*ciozo*(1.-citau)*(1.-cich4) |
---|
| 319 | poids(1,1,2,1,1,1) = citemp*(1.-cisza)*(1.-cicol)*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 320 | poids(1,1,2,2,1,1) = citemp*(1.-cisza)*(1.-cicol)*ciozo*(1.-citau)*(1.-cich4) |
---|
| 321 | poids(1,2,1,1,1,1) = citemp*cisza*cicol*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 322 | poids(1,2,1,2,1,1) = citemp*cisza*cicol*ciozo*(1.-citau)*(1.-cich4) |
---|
| 323 | poids(1,2,2,1,1,1) = citemp*cisza*(1.-cicol)*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 324 | poids(1,2,2,2,1,1) = citemp*cisza*(1.-cicol)*ciozo*(1.-citau)*(1.-cich4) |
---|
| 325 | ! poids(2,1,1,1,1,1) = (1.-citemp)*(1.-cisza)*cicol*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 326 | ! poids(2,1,1,2,1,1) = (1.-citemp)*(1.-cisza)*cicol*ciozo*(1.-citau)*(1.-cich4) |
---|
| 327 | ! poids(2,1,2,1,1,1) = (1.-citemp)*(1.-cisza)*(1.-cicol)*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 328 | ! poids(2,1,2,2,1,1) = (1.-citemp)*(1.-cisza)*(1.-cicol)*ciozo*(1.-citau)*(1.-cich4) |
---|
| 329 | ! poids(2,2,1,1,1,1) = (1.-citemp)*cisza*cicol*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 330 | ! poids(2,2,1,2,1,1) = (1.-citemp)*cisza*cicol*ciozo*(1.-citau)*(1.-cich4) |
---|
| 331 | ! poids(2,2,2,1,1,1) = (1.-citemp)*cisza*(1.-cicol)*(1.-ciozo)*(1.-citau)*(1.-cich4) |
---|
| 332 | ! poids(2,2,2,2,1,1) = (1.-citemp)*cisza*(1.-cicol)*ciozo*(1.-citau)*(1.-cich4) |
---|
| 333 | !! |
---|
| 334 | ! poids(1,1,1,1,2,1) = citemp*(1.-cisza)*cicol*(1.-ciozo)*citau*(1.-cich4) |
---|
| 335 | ! poids(1,1,1,2,2,1) = citemp*(1.-cisza)*cicol*ciozo*citau*(1.-cich4) |
---|
| 336 | ! poids(1,1,2,1,2,1) = citemp*(1.-cisza)*(1.-cicol)*(1.-ciozo)*citau*(1.-cich4) |
---|
| 337 | ! poids(1,1,2,2,2,1) = citemp*(1.-cisza)*(1.-cicol)*ciozo*citau*(1.-cich4) |
---|
| 338 | ! poids(1,2,1,1,2,1) = citemp*cisza*cicol*(1.-ciozo)*citau*(1.-cich4) |
---|
| 339 | ! poids(1,2,1,2,2,1) = citemp*cisza*cicol*ciozo*citau*(1.-cich4) |
---|
| 340 | ! poids(1,2,2,1,2,1) = citemp*cisza*(1.-cicol)*(1.-ciozo)*citau*(1.-cich4) |
---|
| 341 | ! poids(1,2,2,2,2,1) = citemp*cisza*(1.-cicol)*ciozo*citau*(1.-cich4) |
---|
| 342 | ! poids(2,1,1,1,2,1) = (1.-citemp)*(1.-cisza)*cicol*(1.-ciozo)*citau*(1.-cich4) |
---|
| 343 | ! poids(2,1,1,2,2,1) = (1.-citemp)*(1.-cisza)*cicol*ciozo*citau*(1.-cich4) |
---|
| 344 | ! poids(2,1,2,1,2,1) = (1.-citemp)*(1.-cisza)*(1.-cicol)*(1.-ciozo)*citau*(1.-cich4) |
---|
| 345 | ! poids(2,1,2,2,2,1) = (1.-citemp)*(1.-cisza)*(1.-cicol)*ciozo*citau*(1.-cich4) |
---|
| 346 | ! poids(2,2,1,1,2,1) = (1.-citemp)*cisza*cicol*(1.-ciozo)*citau*(1.-cich4) |
---|
| 347 | ! poids(2,2,1,2,2,1) = (1.-citemp)*cisza*cicol*ciozo*citau*(1.-cich4) |
---|
| 348 | ! poids(2,2,2,1,2,1) = (1.-citemp)*cisza*(1.-cicol)*(1.-ciozo)*citau*(1.-cich4) |
---|
| 349 | ! poids(2,2,2,2,2,1) = (1.-citemp)*cisza*(1.-cicol)*ciozo*citau*(1.-cich4) |
---|
| 350 | ! |
---|
| 351 | poids(1,1,1,1,1,2) = citemp*(1.-cisza)*cicol*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 352 | poids(1,1,1,2,1,2) = citemp*(1.-cisza)*cicol*ciozo*(1.-citau)*cich4 |
---|
| 353 | poids(1,1,2,1,1,2) = citemp*(1.-cisza)*(1.-cicol)*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 354 | poids(1,1,2,2,1,2) = citemp*(1.-cisza)*(1.-cicol)*ciozo*(1.-citau)*cich4 |
---|
| 355 | poids(1,2,1,1,1,2) = citemp*cisza*cicol*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 356 | poids(1,2,1,2,1,2) = citemp*cisza*cicol*ciozo*(1.-citau)*cich4 |
---|
| 357 | poids(1,2,2,1,1,2) = citemp*cisza*(1.-cicol)*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 358 | poids(1,2,2,2,1,2) = citemp*cisza*(1.-cicol)*ciozo*(1.-citau)*cich4 |
---|
| 359 | ! poids(2,1,1,1,1,2) = (1.-citemp)*(1.-cisza)*cicol*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 360 | ! poids(2,1,1,2,1,2) = (1.-citemp)*(1.-cisza)*cicol*ciozo*(1.-citau)*cich4 |
---|
| 361 | ! poids(2,1,2,1,1,2) = (1.-citemp)*(1.-cisza)*(1.-cicol)*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 362 | ! poids(2,1,2,2,1,2) = (1.-citemp)*(1.-cisza)*(1.-cicol)*ciozo*(1.-citau)*cich4 |
---|
| 363 | ! poids(2,2,1,1,1,2) = (1.-citemp)*cisza*cicol*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 364 | ! poids(2,2,1,2,1,2) = (1.-citemp)*cisza*cicol*ciozo*(1.-citau)*cich4 |
---|
| 365 | ! poids(2,2,2,1,1,2) = (1.-citemp)*cisza*(1.-cicol)*(1.-ciozo)*(1.-citau)*cich4 |
---|
| 366 | ! poids(2,2,2,2,1,2) = (1.-citemp)*cisza*(1.-cicol)*ciozo*(1.-citau)*cich4 |
---|
| 367 | !! |
---|
| 368 | ! poids(1,1,1,1,2,2) = citemp*(1.-cisza)*cicol*(1.-ciozo)*citau*cich4 |
---|
| 369 | ! poids(1,1,1,2,2,2) = citemp*(1.-cisza)*cicol*ciozo*citau*cich4 |
---|
| 370 | ! poids(1,1,2,1,2,2) = citemp*(1.-cisza)*(1.-cicol)*(1.-ciozo)*citau*cich4 |
---|
| 371 | ! poids(1,1,2,2,2,2) = citemp*(1.-cisza)*(1.-cicol)*ciozo*citau*cich4 |
---|
| 372 | ! poids(1,2,1,1,2,2) = citemp*cisza*cicol*(1.-ciozo)*citau*cich4 |
---|
| 373 | ! poids(1,2,1,2,2,2) = citemp*cisza*cicol*ciozo*citau*cich4 |
---|
| 374 | ! poids(1,2,2,1,2,2) = citemp*cisza*(1.-cicol)*(1.-ciozo)*citau*cich4 |
---|
| 375 | ! poids(1,2,2,2,2,2) = citemp*cisza*(1.-cicol)*ciozo*citau*cich4 |
---|
| 376 | ! poids(2,1,1,1,2,2) = (1.-citemp)*(1.-cisza)*cicol*(1.-ciozo)*citau*cich4 |
---|
| 377 | ! poids(2,1,1,2,2,2) = (1.-citemp)*(1.-cisza)*cicol*ciozo*citau*cich4 |
---|
| 378 | ! poids(2,1,2,1,2,2) = (1.-citemp)*(1.-cisza)*(1.-cicol)*(1.-ciozo)*citau*cich4 |
---|
| 379 | ! poids(2,1,2,2,2,2) = (1.-citemp)*(1.-cisza)*(1.-cicol)*ciozo*citau*cich4 |
---|
| 380 | ! poids(2,2,1,1,2,2) = (1.-citemp)*cisza*cicol*(1.-ciozo)*citau*cich4 |
---|
| 381 | ! poids(2,2,1,2,2,2) = (1.-citemp)*cisza*cicol*ciozo*citau*cich4 |
---|
| 382 | ! poids(2,2,2,1,2,2) = (1.-citemp)*cisza*(1.-cicol)*(1.-ciozo)*citau*cich4 |
---|
| 383 | ! poids(2,2,2,2,2,2) = (1.-citemp)*cisza*(1.-cicol)*ciozo*citau*cich4 |
---|
| 384 | |
---|
| 385 | |
---|
| 386 | |
---|
| 387 | |
---|
| 388 | |
---|
| 389 | |
---|
| 390 | |
---|
| 391 | |
---|
[1796] | 392 | ! 4-dimensional interpolation in the lookup table |
---|
| 393 | |
---|
| 394 | do ij = 1,nd |
---|
[2542] | 395 | j(l,ij) = & |
---|
| 396 | poids(1,1,1,1,1,1)*jphot(indtemp,indsza,indcol,indozo,indtau,indch4,ij) & |
---|
| 397 | + poids(1,1,1,2,1,1)*jphot(indtemp,indsza,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 398 | + poids(1,1,2,1,1,1)*jphot(indtemp,indsza,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 399 | + poids(1,1,2,2,1,1)*jphot(indtemp,indsza,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 400 | + poids(1,2,1,1,1,1)*jphot(indtemp,indsza+1,indcol,indozo,indtau,indch4,ij) & |
---|
| 401 | + poids(1,2,1,2,1,1)*jphot(indtemp,indsza+1,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 402 | + poids(1,2,2,1,1,1)*jphot(indtemp,indsza+1,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 403 | + poids(1,2,2,2,1,1)*jphot(indtemp,indsza+1,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 404 | ! + poids(2,1,1,1,1,1)*jphot(indtemp+1,indsza,indcol,indozo,indtau,indch4,ij) & |
---|
| 405 | ! + poids(2,1,1,2,1,1)*jphot(indtemp+1,indsza,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 406 | ! + poids(2,1,2,1,1,1)*jphot(indtemp+1,indsza,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 407 | ! + poids(2,1,2,2,1,1)*jphot(indtemp+1,indsza,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 408 | ! + poids(2,2,1,1,1,1)*jphot(indtemp+1,indsza+1,indcol,indozo,indtau,indch4,ij) & |
---|
| 409 | ! + poids(2,2,1,2,1,1)*jphot(indtemp+1,indsza+1,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 410 | ! + poids(2,2,2,1,1,1)*jphot(indtemp+1,indsza+1,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 411 | ! + poids(2,2,2,2,1,1)*jphot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 412 | !! |
---|
| 413 | ! + poids(1,1,1,1,2,1)*jphot(indtemp,indsza,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 414 | ! + poids(1,1,1,2,2,1)*jphot(indtemp,indsza,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 415 | ! + poids(1,1,2,1,2,1)*jphot(indtemp,indsza,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 416 | ! + poids(1,1,2,2,2,1)*jphot(indtemp,indsza,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 417 | ! + poids(1,2,1,1,2,1)*jphot(indtemp,indsza+1,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 418 | ! + poids(1,2,1,2,2,1)*jphot(indtemp,indsza+1,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 419 | ! + poids(1,2,2,1,2,1)*jphot(indtemp,indsza+1,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 420 | ! + poids(1,2,2,2,2,1)*jphot(indtemp,indsza+1,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 421 | ! + poids(2,1,1,1,2,1)*jphot(indtemp+1,indsza,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 422 | ! + poids(2,1,1,2,2,1)*jphot(indtemp+1,indsza,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 423 | ! + poids(2,1,2,1,2,1)*jphot(indtemp+1,indsza,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 424 | ! + poids(2,1,2,2,2,1)*jphot(indtemp+1,indsza,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 425 | ! + poids(2,2,1,1,2,1)*jphot(indtemp+1,indsza+1,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 426 | ! + poids(2,2,1,2,2,1)*jphot(indtemp+1,indsza+1,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 427 | ! + poids(2,2,2,1,2,1)*jphot(indtemp+1,indsza+1,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 428 | ! + poids(2,2,2,2,2,1)*jphot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau+1,indch4,ij) |
---|
| 429 | ! CH4 |
---|
| 430 | + poids(1,1,1,1,1,2)*jphot(indtemp,indsza,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 431 | + poids(1,1,1,2,1,2)*jphot(indtemp,indsza,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 432 | + poids(1,1,2,1,1,2)*jphot(indtemp,indsza,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 433 | + poids(1,1,2,2,1,2)*jphot(indtemp,indsza,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 434 | + poids(1,2,1,1,1,2)*jphot(indtemp,indsza+1,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 435 | + poids(1,2,1,2,1,2)*jphot(indtemp,indsza+1,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 436 | + poids(1,2,2,1,1,2)*jphot(indtemp,indsza+1,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 437 | + poids(1,2,2,2,1,2)*jphot(indtemp,indsza+1,indcol+1,indozo+1,indtau,indch4+1,ij) |
---|
| 438 | ! + poids(2,1,1,1,1,2)*jphot(indtemp+1,indsza,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 439 | ! + poids(2,1,1,2,1,2)*jphot(indtemp+1,indsza,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 440 | ! + poids(2,1,2,1,1,2)*jphot(indtemp+1,indsza,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 441 | ! + poids(2,1,2,2,1,2)*jphot(indtemp+1,indsza,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 442 | ! + poids(2,2,1,1,1,2)*jphot(indtemp+1,indsza+1,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 443 | ! + poids(2,2,1,2,1,2)*jphot(indtemp+1,indsza+1,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 444 | ! + poids(2,2,2,1,1,2)*jphot(indtemp+1,indsza+1,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 445 | ! + poids(2,2,2,2,1,2)*jphot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 446 | !! |
---|
| 447 | ! + poids(1,1,1,1,2,2)*jphot(indtemp,indsza,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 448 | ! + poids(1,1,1,2,2,2)*jphot(indtemp,indsza,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 449 | ! + poids(1,1,2,1,2,2)*jphot(indtemp,indsza,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 450 | ! + poids(1,1,2,2,2,2)*jphot(indtemp,indsza,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 451 | ! + poids(1,2,1,1,2,2)*jphot(indtemp,indsza+1,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 452 | ! + poids(1,2,1,2,2,2)*jphot(indtemp,indsza+1,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 453 | ! + poids(1,2,2,1,2,2)*jphot(indtemp,indsza+1,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 454 | ! + poids(1,2,2,2,2,2)*jphot(indtemp,indsza+1,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 455 | ! + poids(2,1,1,1,2,2)*jphot(indtemp+1,indsza,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 456 | ! + poids(2,1,1,2,2,2)*jphot(indtemp+1,indsza,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 457 | ! + poids(2,1,2,1,2,2)*jphot(indtemp+1,indsza,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 458 | ! + poids(2,1,2,2,2,2)*jphot(indtemp+1,indsza,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 459 | ! + poids(2,2,1,1,2,2)*jphot(indtemp+1,indsza+1,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 460 | ! + poids(2,2,1,2,2,2)*jphot(indtemp+1,indsza+1,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 461 | ! + poids(2,2,2,1,2,2)*jphot(indtemp+1,indsza+1,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 462 | ! + poids(2,2,2,2,2,2)*jphot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau+1,indch4+1,ij) |
---|
| 463 | |
---|
[1796] | 464 | end do |
---|
| 465 | |
---|
[2542] | 466 | if (photoheat) then |
---|
| 467 | do ij = 1,nd |
---|
| 468 | e(l,ij) = & |
---|
| 469 | poids(1,1,1,1,1,1)*ephot(indtemp,indsza,indcol,indozo,indtau,indch4,ij) & |
---|
| 470 | + poids(1,1,1,2,1,1)*ephot(indtemp,indsza,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 471 | + poids(1,1,2,1,1,1)*ephot(indtemp,indsza,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 472 | + poids(1,1,2,2,1,1)*ephot(indtemp,indsza,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 473 | + poids(1,2,1,1,1,1)*ephot(indtemp,indsza+1,indcol,indozo,indtau,indch4,ij) & |
---|
| 474 | + poids(1,2,1,2,1,1)*ephot(indtemp,indsza+1,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 475 | + poids(1,2,2,1,1,1)*ephot(indtemp,indsza+1,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 476 | + poids(1,2,2,2,1,1)*ephot(indtemp,indsza+1,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 477 | ! + poids(2,1,1,1,1,1)*ephot(indtemp+1,indsza,indcol,indozo,indtau,indch4,ij) & |
---|
| 478 | ! + poids(2,1,1,2,1,1)*ephot(indtemp+1,indsza,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 479 | ! + poids(2,1,2,1,1,1)*ephot(indtemp+1,indsza,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 480 | ! + poids(2,1,2,2,1,1)*ephot(indtemp+1,indsza,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 481 | ! + poids(2,2,1,1,1,1)*ephot(indtemp+1,indsza+1,indcol,indozo,indtau,indch4,ij) & |
---|
| 482 | ! + poids(2,2,1,2,1,1)*ephot(indtemp+1,indsza+1,indcol,indozo+1,indtau,indch4,ij) & |
---|
| 483 | ! + poids(2,2,2,1,1,1)*ephot(indtemp+1,indsza+1,indcol+1,indozo,indtau,indch4,ij) & |
---|
| 484 | ! + poids(2,2,2,2,1,1)*ephot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau,indch4,ij) & |
---|
| 485 | !! |
---|
| 486 | ! + poids(1,1,1,1,2,1)*ephot(indtemp,indsza,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 487 | ! + poids(1,1,1,2,2,1)*ephot(indtemp,indsza,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 488 | ! + poids(1,1,2,1,2,1)*ephot(indtemp,indsza,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 489 | ! + poids(1,1,2,2,2,1)*ephot(indtemp,indsza,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 490 | ! + poids(1,2,1,1,2,1)*ephot(indtemp,indsza+1,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 491 | ! + poids(1,2,1,2,2,1)*ephot(indtemp,indsza+1,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 492 | ! + poids(1,2,2,1,2,1)*ephot(indtemp,indsza+1,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 493 | ! + poids(1,2,2,2,2,1)*ephot(indtemp,indsza+1,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 494 | ! + poids(2,1,1,1,2,1)*ephot(indtemp+1,indsza,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 495 | ! + poids(2,1,1,2,2,1)*ephot(indtemp+1,indsza,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 496 | ! + poids(2,1,2,1,2,1)*ephot(indtemp+1,indsza,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 497 | ! + poids(2,1,2,2,2,1)*ephot(indtemp+1,indsza,indcol+1,indozo+1,indtau+1,indch4,ij) & |
---|
| 498 | ! + poids(2,2,1,1,2,1)*ephot(indtemp+1,indsza+1,indcol,indozo,indtau+1,indch4,ij) & |
---|
| 499 | ! + poids(2,2,1,2,2,1)*ephot(indtemp+1,indsza+1,indcol,indozo+1,indtau+1,indch4,ij) & |
---|
| 500 | ! + poids(2,2,2,1,2,1)*ephot(indtemp+1,indsza+1,indcol+1,indozo,indtau+1,indch4,ij) & |
---|
| 501 | ! + poids(2,2,2,2,2,1)*ephot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau+1,indch4,ij) |
---|
| 502 | ! CH4 |
---|
| 503 | + poids(1,1,1,1,1,2)*ephot(indtemp,indsza,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 504 | + poids(1,1,1,2,1,2)*ephot(indtemp,indsza,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 505 | + poids(1,1,2,1,1,2)*ephot(indtemp,indsza,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 506 | + poids(1,1,2,2,1,2)*ephot(indtemp,indsza,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 507 | + poids(1,2,1,1,1,2)*ephot(indtemp,indsza+1,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 508 | + poids(1,2,1,2,1,2)*ephot(indtemp,indsza+1,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 509 | + poids(1,2,2,1,1,2)*ephot(indtemp,indsza+1,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 510 | + poids(1,2,2,2,1,2)*ephot(indtemp,indsza+1,indcol+1,indozo+1,indtau,indch4+1,ij) |
---|
| 511 | ! + poids(2,1,1,1,1,2)*ephot(indtemp+1,indsza,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 512 | ! + poids(2,1,1,2,1,2)*ephot(indtemp+1,indsza,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 513 | ! + poids(2,1,2,1,1,2)*ephot(indtemp+1,indsza,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 514 | ! + poids(2,1,2,2,1,2)*ephot(indtemp+1,indsza,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 515 | ! + poids(2,2,1,1,1,2)*ephot(indtemp+1,indsza+1,indcol,indozo,indtau,indch4+1,ij) & |
---|
| 516 | ! + poids(2,2,1,2,1,2)*ephot(indtemp+1,indsza+1,indcol,indozo+1,indtau,indch4+1,ij) & |
---|
| 517 | ! + poids(2,2,2,1,1,2)*ephot(indtemp+1,indsza+1,indcol+1,indozo,indtau,indch4+1,ij) & |
---|
| 518 | ! + poids(2,2,2,2,1,2)*ephot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau,indch4+1,ij) & |
---|
| 519 | !! |
---|
| 520 | ! + poids(1,1,1,1,2,2)*ephot(indtemp,indsza,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 521 | ! + poids(1,1,1,2,2,2)*ephot(indtemp,indsza,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 522 | ! + poids(1,1,2,1,2,2)*ephot(indtemp,indsza,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 523 | ! + poids(1,1,2,2,2,2)*ephot(indtemp,indsza,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 524 | ! + poids(1,2,1,1,2,2)*ephot(indtemp,indsza+1,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 525 | ! + poids(1,2,1,2,2,2)*ephot(indtemp,indsza+1,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 526 | ! + poids(1,2,2,1,2,2)*ephot(indtemp,indsza+1,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 527 | ! + poids(1,2,2,2,2,2)*ephot(indtemp,indsza+1,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 528 | ! + poids(2,1,1,1,2,2)*ephot(indtemp+1,indsza,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 529 | ! + poids(2,1,1,2,2,2)*ephot(indtemp+1,indsza,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 530 | ! + poids(2,1,2,1,2,2)*ephot(indtemp+1,indsza,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 531 | ! + poids(2,1,2,2,2,2)*ephot(indtemp+1,indsza,indcol+1,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 532 | ! + poids(2,2,1,1,2,2)*ephot(indtemp+1,indsza+1,indcol,indozo,indtau+1,indch4+1,ij) & |
---|
| 533 | ! + poids(2,2,1,2,2,2)*ephot(indtemp+1,indsza+1,indcol,indozo+1,indtau+1,indch4+1,ij) & |
---|
| 534 | ! + poids(2,2,2,1,2,2)*ephot(indtemp+1,indsza+1,indcol+1,indozo,indtau+1,indch4+1,ij) & |
---|
| 535 | ! + poids(2,2,2,2,2,2)*ephot(indtemp+1,indsza+1,indcol+1,indozo+1,indtau+1,indch4+1,ij) |
---|
| 536 | |
---|
| 537 | end do |
---|
| 538 | end if |
---|
| 539 | |
---|
[1796] | 540 | ! correction for sun distance |
---|
| 541 | |
---|
| 542 | do ij = 1,nd |
---|
| 543 | ! j(l,ij) = j(l,ij)*(1.52/dist_sol)**2. |
---|
| 544 | j(l,ij) = j(l,ij)*(1.0/dist_sol)**2. |
---|
[2542] | 545 | if (photoheat) e(l,ij) = e(l,ij)*(1.0/dist_sol)**2. |
---|
| 546 | |
---|
[1796] | 547 | ! Only during daylight. |
---|
| 548 | if((ngrid.eq.1))then |
---|
[2542] | 549 | j(l,ij)= j(l,ij)* 0.25 / cos(sza*pi/180.) ! globally averaged = divide by 4 |
---|
| 550 | if (photoheat) e(l,ij)= e(l,ij)* 0.25 / cos(sza*pi/180.) ! globally averaged = divide by 4 |
---|
[1796] | 551 | elseif(diurnal .eqv. .false.) then |
---|
| 552 | j(l,ij)= j(l,ij) * fractcol |
---|
[2542] | 553 | if (photoheat) e(l,ij)= e(l,ij) * fractcol |
---|
[1796] | 554 | endif |
---|
[2542] | 555 | |
---|
| 556 | |
---|
[1796] | 557 | end do |
---|
| 558 | |
---|
[2542] | 559 | |
---|
| 560 | |
---|
[1796] | 561 | !========================================================================== |
---|
| 562 | ! end of loop over vertical levels |
---|
| 563 | !========================================================================== |
---|
| 564 | |
---|
| 565 | end do |
---|
| 566 | |
---|
| 567 | else |
---|
| 568 | |
---|
| 569 | !========================================================================== |
---|
| 570 | ! night |
---|
| 571 | !========================================================================== |
---|
| 572 | |
---|
| 573 | j(:,:) = 0. |
---|
[2542] | 574 | if (photoheat) e(:,:) = 0. |
---|
[1796] | 575 | |
---|
| 576 | end if |
---|
| 577 | |
---|
| 578 | ! fill v_phot array |
---|
| 579 | |
---|
| 580 | v_phot(:,:) = 0. |
---|
[2542] | 581 | e_phot(:,:) = 0. |
---|
[1796] | 582 | |
---|
[2542] | 583 | ! Order of photolysis reaction has to be the same in monoreact file and the phototable file |
---|
| 584 | ij = 0 |
---|
| 585 | nb_phot = 0 |
---|
| 586 | do while(nb_phot<nb_phot_hv_max) |
---|
| 587 | ij = ij + 1 |
---|
| 588 | nb_phot = nb_phot + 1 |
---|
| 589 | do l = 1,lswitch-1 |
---|
| 590 | v_phot(l,nb_phot) = j(l,ij) |
---|
| 591 | if (photoheat) e_phot(l,nb_phot) = e(l,ij) |
---|
| 592 | end do |
---|
| 593 | if (three_prod(ij)) then |
---|
| 594 | nb_phot = nb_phot + 1 |
---|
| 595 | do l = 1,lswitch-1 |
---|
| 596 | v_phot(l,nb_phot) = j(l,ij) |
---|
| 597 | if (photoheat) e_phot(l,nb_phot) = e(l,ij) |
---|
| 598 | end do |
---|
| 599 | end if |
---|
[1796] | 600 | end do |
---|
| 601 | |
---|
| 602 | return |
---|
| 603 | end |
---|
| 604 | |
---|
| 605 | !***************************************************************** |
---|