[38] | 1 | c********************************************************************** |
---|
| 2 | |
---|
| 3 | subroutine column |
---|
| 4 | $ (co2x,o2x,o3px,h2x,h2ox,h2o2x,tx,nz,iz,zenit,co2colx,o2colx, |
---|
| 5 | $ o3pcolx,h2o2colx) |
---|
| 6 | |
---|
| 7 | |
---|
| 8 | c nov 2002 fgg first version |
---|
| 9 | |
---|
| 10 | c********************************************************************** |
---|
| 11 | |
---|
| 12 | implicit none |
---|
| 13 | |
---|
| 14 | |
---|
| 15 | c common variables and constants |
---|
| 16 | |
---|
| 17 | include 'param.h' |
---|
| 18 | include 'param_v3.h' |
---|
| 19 | |
---|
| 20 | |
---|
| 21 | |
---|
| 22 | c local parameters and variables |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | |
---|
| 26 | c input and output variables |
---|
| 27 | |
---|
| 28 | integer nz |
---|
| 29 | real co2colx(nz) !column density of CO2 (cm^-2) |
---|
| 30 | real o2colx(nz) !column density of O2(cm^-2) |
---|
| 31 | real o3pcolx(nz) !column density of O(3P)(cm^-2) |
---|
| 32 | real h2o2colx(nz) !column density of H2O2(cm^-2) |
---|
| 33 | real co2x(nz) !density of CO2(cm^-3) |
---|
| 34 | real o2x(nz) !density of O2(cm^-3) |
---|
| 35 | real o3px(nz) !density of O(3P)(cm^-3) |
---|
| 36 | real h2x(nz) !density of H2(cm^-3) |
---|
| 37 | real h2ox(nz) !density of H2O(cm^-3) |
---|
| 38 | real h2o2x(nz) !density of H2O2(cm^-3) |
---|
| 39 | real jtot(nz) !output: heating rate(erg/s) |
---|
| 40 | real tx(nz) !temperature profile |
---|
| 41 | real iz(nz+1) !height profile |
---|
| 42 | real zenit |
---|
| 43 | |
---|
| 44 | c local variables |
---|
| 45 | |
---|
| 46 | real xx |
---|
| 47 | real grav(nzmax) |
---|
| 48 | real ntx(nzmax) |
---|
| 49 | real pmmixx(nzmax) |
---|
| 50 | real Hmix(nzmax) |
---|
| 51 | real nint(nzmax) |
---|
| 52 | real co2vmrx(nzmax) |
---|
| 53 | real o2vmrx(nzmax) |
---|
| 54 | real o3pvmrx(nzmax) |
---|
| 55 | real h2vmrx(nzmax) |
---|
| 56 | real h2ovmrx(nzmax) |
---|
| 57 | real h2o2vmrx(nzmax) |
---|
| 58 | real Hco2 |
---|
| 59 | real Ho3p |
---|
| 60 | real Ho2 |
---|
| 61 | real Hh2o2 |
---|
| 62 | real chapm(nzmax) |
---|
| 63 | |
---|
| 64 | |
---|
| 65 | |
---|
| 66 | c local variables |
---|
| 67 | |
---|
| 68 | integer i,j,k,icol,indexint !indexes |
---|
| 69 | real*8 znt |
---|
| 70 | |
---|
| 71 | c External functions |
---|
| 72 | |
---|
| 73 | external ch |
---|
| 74 | real ch |
---|
| 75 | |
---|
| 76 | |
---|
| 77 | c*************************PROGRAM STARTS******************************* |
---|
| 78 | |
---|
| 79 | do i=1,nz |
---|
| 80 | xx = ( radio + iz(i) ) * 1.e5 |
---|
| 81 | ntx(i)=co2x(i)+o2x(i)+o3px(i)+h2x(i)+h2ox(i)+h2o2x(i) |
---|
| 82 | co2vmrx(i)=co2x(i)/ntx(i) |
---|
| 83 | o2vmrx(i)=o2x(i)/ntx(i) |
---|
| 84 | o3pvmrx(i)=o3px(i)/ntx(i) |
---|
| 85 | h2vmrx(i)=h2x(i)/ntx(i) |
---|
| 86 | h2ovmrx(i)=h2ox(i)/ntx(i) |
---|
| 87 | h2o2vmrx(i)=h2o2x(i)/ntx(i) |
---|
| 88 | pmmixx(i) = (pmco2*co2x(i)+pmo2*o2x(i) |
---|
| 89 | $ + pmo3p*o3px(i))/ntx(i) |
---|
| 90 | grav(i) = gg * masa /(xx**2) |
---|
| 91 | Hmix(i) = kboltzman*tx(i)*n_avog / (pmmixx(i)*grav(i)) |
---|
| 92 | nint(i) = -Hmix(i)*ntx(i)* |
---|
| 93 | $ (exp((iz(i)-iz(i+1))*1e5/Hmix(i))-1) |
---|
| 94 | end do |
---|
| 95 | |
---|
| 96 | xx = kboltzman * tx(nz) * n_avog / grav(nz) |
---|
| 97 | Ho3p = xx / pmo3p |
---|
| 98 | Hco2 = xx / pmco2 |
---|
| 99 | Ho2 = xx / pmo2 |
---|
| 100 | Hh2o2 = xx / pmh2o2 |
---|
| 101 | o3pcolx(nz) = o3px(nz) * Ho3p |
---|
| 102 | co2colx(nz) = co2x(nz) * Hco2 |
---|
| 103 | h2o2colx(nz) = h2o2x(nz) * Hh2o2 |
---|
| 104 | o2colx(nz) = o2x(nz) * Ho2 |
---|
| 105 | do i=1,nz-1 |
---|
| 106 | co2colx(i) = co2colx(nz) |
---|
| 107 | o2colx(i) = o2colx(nz) |
---|
| 108 | o3pcolx(i) = o3pcolx(nz) |
---|
| 109 | h2o2colx(i) = h2o2colx(nz) |
---|
| 110 | do j=i,nz-1 |
---|
| 111 | co2colx(i) = co2colx(i) + nint(j) |
---|
| 112 | $ * ((co2vmrx(j+1) + co2vmrx(j)) / 2.) |
---|
| 113 | o2colx(i) = o2colx(i) + nint(j) |
---|
| 114 | $ * ((o2vmrx(j+1) + o2vmrx(j)) / 2.) |
---|
| 115 | o3pcolx(i) = o3pcolx(i) + nint(j) |
---|
| 116 | $ * ((o3pvmrx(j+1) + o3pvmrx(j)) /2.) |
---|
| 117 | h2o2colx(i) = h2o2colx(i) +nint(j) |
---|
| 118 | $ * ((h2o2vmrx(j+1) + h2o2vmrx(j)) / 2.) |
---|
| 119 | end do |
---|
| 120 | end do |
---|
| 121 | |
---|
| 122 | znt=zenit*3.1416/180. |
---|
| 123 | if(zenit.gt.80.0) then |
---|
| 124 | do i=1,nz |
---|
| 125 | chapm(i) = |
---|
| 126 | $ ch( (iz(i)+radio)/(Hmix(i)*1.e-5),znt) |
---|
| 127 | enddo |
---|
| 128 | end if |
---|
| 129 | znt=zenit*3.1416/180. |
---|
| 130 | do i=1,nz |
---|
| 131 | if(zenit.le.80.0) then |
---|
| 132 | co2colx(i)=co2colx(i)/cos(znt) |
---|
| 133 | o2colx(i)=o2colx(i)/cos(znt) |
---|
| 134 | o3pcolx(i)=o3pcolx(i)/cos(znt) |
---|
| 135 | h2o2colx(i)=h2o2colx(i)/cos(znt) |
---|
| 136 | else |
---|
| 137 | co2colx(i)=co2colx(i)*chapm(i) |
---|
| 138 | o2colx(i)=o2colx(i)*chapm(i) |
---|
| 139 | o3pcolx(i)=o3pcolx(i)*chapm(i) |
---|
| 140 | h2o2colx(i)=h2o2colx(i)*chapm(i) |
---|
| 141 | end if |
---|
| 142 | end do |
---|
| 143 | |
---|
| 144 | |
---|
| 145 | return |
---|
| 146 | |
---|
| 147 | |
---|
| 148 | end |
---|
| 149 | |
---|
| 150 | |
---|
| 151 | |
---|
| 152 | |
---|
| 153 | |
---|