Changeset 2042
- Timestamp:
- Nov 15, 2018, 10:25:09 AM (6 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r2023 r2042 2659 2659 - Fix writediagsoil so that it also works in parallel. 2660 2660 2661 2661 == 15/11/2018 == FGG 2662 Modifications to use the parametrized photoabsorbtion coefficients; 2663 a first step towards implementing ionospheric chemistry in the new 2664 chemical solver: 2665 - change in species indexes in chemthermos.F90, paramfoto_compact.F, 2666 hrtherm.F and euvheat.F90 2667 - calchim.F90: added a variable in call to photochemistry 2668 - photochemistry.F90: added calls to jthermcalc_e107 and phdisrate, 2669 with an additionlal flag, jparam (.false. by default). The 2670 computed photodissociation coefficents are sent to v_phot, which 2671 is used in the chemistry. Thus concentrations computed in 2672 chimtogcm are now done over all atmospheric layers. 2673 2674 et jthermcalc.F -
trunk/LMDZ.MARS/libf/aeronomars/calchim.F90
r2031 r2042 664 664 665 665 if (photochem) then 666 667 666 call photochemistry(nlayer,nq, & 668 667 ig,lswitch,zycol,szacol,ptimestep, & 669 668 zpress,zlocal,ztemp,zdens,zmmean,dist_sol, & 670 surfdust1d,surfice1d,jo3,jh2o,taucol,iter)669 zday,surfdust1d,surfice1d,jo3,jh2o,taucol,iter) 671 670 672 671 ! ozone photolysis, for output … … 735 734 end do ! of do ig=1,ngrid 736 735 736 ! stop 737 737 !======================================================================= 738 738 ! write outputs … … 754 754 call writediagfi(ngrid,'emission_o2', & 755 755 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 756 756 757 757 if (callstats) then 758 758 call wstats(ngrid,'jo3','j o3->o1d', & -
trunk/LMDZ.MARS/libf/aeronomars/chemthermos.F90
r1888 r2042 91 91 !!! If some value is changed here, the same change has to 92 92 !!! be made into the other subroutines 93 integer,parameter :: i_co2=1 94 integer,parameter :: i_o2=2 95 integer,parameter :: i_o=3 96 integer,parameter :: i_co=4 97 integer,parameter :: i_h=5 98 integer,parameter :: i_oh=6 99 integer,parameter :: i_ho2=7 100 integer,parameter :: i_h2=8 101 integer,parameter :: i_h2o=9 102 integer,parameter :: i_h2o2=10 103 integer,parameter :: i_o1d=11 104 integer,parameter :: i_o3=12 105 integer,parameter :: i_n2=13 106 integer,parameter :: i_n=14 107 integer,parameter :: i_no=15 108 integer,parameter :: i_n2d=16 109 integer,parameter :: i_no2=17 93 integer,parameter :: i_co2 = 1 94 integer,parameter :: i_co = 2 95 integer,parameter :: i_o = 3 96 integer,parameter :: i_o1d = 4 97 integer,parameter :: i_o2 = 5 98 integer,parameter :: i_o3 = 6 99 integer,parameter :: i_h = 7 100 integer,parameter :: i_h2 = 8 101 integer,parameter :: i_oh = 9 102 integer,parameter :: i_ho2 = 10 103 integer,parameter :: i_h2o2 = 11 104 integer,parameter :: i_h2o = 12 105 integer,parameter :: i_n = 13 106 integer,parameter :: i_n2d = 14 107 integer,parameter :: i_no = 15 108 integer,parameter :: i_no2 = 16 109 integer,parameter :: i_n2 = 17 110 ! integer,parameter :: i_co2=1 111 ! integer,parameter :: i_o2=2 112 ! integer,parameter :: i_o=3 113 ! integer,parameter :: i_co=4 114 ! integer,parameter :: i_h=5 115 ! integer,parameter :: i_oh=6 116 ! integer,parameter :: i_ho2=7 117 ! integer,parameter :: i_h2=8 118 ! integer,parameter :: i_h2o=9 119 ! integer,parameter :: i_h2o2=10 120 ! integer,parameter :: i_o1d=11 121 ! integer,parameter :: i_o3=12 122 ! integer,parameter :: i_n2=13 123 ! integer,parameter :: i_n=14 124 ! integer,parameter :: i_no=15 125 ! integer,parameter :: i_n2d=16 126 ! integer,parameter :: i_no2=17 110 127 integer,parameter :: i_co2plus=18 111 128 integer,parameter :: i_oplus=19 … … 471 488 !Photoabsorption coefficients 472 489 call jthermcalc_e107(ig,nlayer,chemthermod,rm,nesptherm,ztemp,zlocal,zenit,zday) 473 474 490 475 491 !Chemistry -
trunk/LMDZ.MARS/libf/aeronomars/euvheat.F90
r1684 r2042 71 71 !!! ATTENTION. These values have to be identical to those in chemthermos.F90 72 72 !!! If the values are changed there, the same has to be done here !!! 73 integer,parameter :: i_co2=1 74 integer,parameter :: i_o2=2 75 integer,parameter :: i_o=3 76 integer,parameter :: i_co=4 77 integer,parameter :: i_h=5 78 integer,parameter :: i_oh=6 79 integer,parameter :: i_ho2=7 80 integer,parameter :: i_h2=8 81 integer,parameter :: i_h2o=9 82 integer,parameter :: i_h2o2=10 83 integer,parameter :: i_o1d=11 84 integer,parameter :: i_o3=12 85 integer,parameter :: i_n2=13 86 integer,parameter :: i_n=14 87 integer,parameter :: i_no=15 88 integer,parameter :: i_n2d=16 89 integer,parameter :: i_no2=17 73 integer,parameter :: i_co2 = 1 74 integer,parameter :: i_co = 2 75 integer,parameter :: i_o = 3 76 integer,parameter :: i_o1d = 4 77 integer,parameter :: i_o2 = 5 78 integer,parameter :: i_o3 = 6 79 integer,parameter :: i_h = 7 80 integer,parameter :: i_h2 = 8 81 integer,parameter :: i_oh = 9 82 integer,parameter :: i_ho2 = 10 83 integer,parameter :: i_h2o2 = 11 84 integer,parameter :: i_h2o = 12 85 integer,parameter :: i_n = 13 86 integer,parameter :: i_n2d = 14 87 integer,parameter :: i_no = 15 88 integer,parameter :: i_no2 = 16 89 integer,parameter :: i_n2 = 17 90 ! integer,parameter :: i_co2=1 91 ! integer,parameter :: i_o2=2 92 ! integer,parameter :: i_o=3 93 ! integer,parameter :: i_co=4 94 ! integer,parameter :: i_h=5 95 ! integer,parameter :: i_oh=6 96 ! integer,parameter :: i_ho2=7 97 ! integer,parameter :: i_h2=8 98 ! integer,parameter :: i_h2o=9 99 ! integer,parameter :: i_h2o2=10 100 ! integer,parameter :: i_o1d=11 101 ! integer,parameter :: i_o3=12 102 ! integer,parameter :: i_n2=13 103 ! integer,parameter :: i_n=14 104 ! integer,parameter :: i_no=15 105 ! integer,parameter :: i_n2d=16 106 ! integer,parameter :: i_no2=17 90 107 91 108 -
trunk/LMDZ.MARS/libf/aeronomars/hrtherm.F
r1684 r2042 41 41 !!! ATTENTION. These values have to be identical to those in chemthermos.F90 42 42 !!! If the values are changed there, the same has to be done here !!! 43 integer,parameter :: i_co2=1 44 integer,parameter :: i_o2=2 45 integer,parameter :: i_o=3 46 integer,parameter :: i_co=4 47 integer,parameter :: i_h=5 48 integer,parameter :: i_h2=8 49 integer,parameter :: i_h2o=9 50 integer,parameter :: i_h2o2=10 51 integer,parameter :: i_o3=12 52 integer,parameter :: i_n2=13 53 integer,parameter :: i_n=14 54 integer,parameter :: i_no=15 55 integer,parameter :: i_no2=17 43 integer,parameter :: i_co2 = 1 44 integer,parameter :: i_co = 2 45 integer,parameter :: i_o = 3 46 integer,parameter :: i_o1d = 4 47 integer,parameter :: i_o2 = 5 48 integer,parameter :: i_o3 = 6 49 integer,parameter :: i_h = 7 50 integer,parameter :: i_h2 = 8 51 integer,parameter :: i_oh = 9 52 integer,parameter :: i_ho2 = 10 53 integer,parameter :: i_h2o2 = 11 54 integer,parameter :: i_h2o = 12 55 integer,parameter :: i_n = 13 56 integer,parameter :: i_n2d = 14 57 integer,parameter :: i_no = 15 58 integer,parameter :: i_no2 = 16 59 integer,parameter :: i_n2 = 17 60 ! integer,parameter :: i_co2=1 61 ! integer,parameter :: i_o2=2 62 ! integer,parameter :: i_o=3 63 ! integer,parameter :: i_co=4 64 ! integer,parameter :: i_h=5 65 ! integer,parameter :: i_h2=8 66 ! integer,parameter :: i_h2o=9 67 ! integer,parameter :: i_h2o2=10 68 ! integer,parameter :: i_o3=12 69 ! integer,parameter :: i_n2=13 70 ! integer,parameter :: i_n=14 71 ! integer,parameter :: i_no=15 72 ! integer,parameter :: i_no2=17 56 73 57 74 c*************************PROGRAM STARTS******************************* -
trunk/LMDZ.MARS/libf/aeronomars/jthermcalc.F
r1266 r2042 1128 1128 !!! ATTENTION. These values have to be identical to those in chemthermos.F90 1129 1129 !!! If the values are changed there, the same has to be done here !!! 1130 integer,parameter :: i_co2=1 1131 integer,parameter :: i_o2=2 1132 integer,parameter :: i_o=3 1133 integer,parameter :: i_co=4 1134 integer,parameter :: i_h=5 1135 integer,parameter :: i_h2=8 1136 integer,parameter :: i_h2o=9 1137 integer,parameter :: i_h2o2=10 1138 integer,parameter :: i_o3=12 1139 integer,parameter :: i_n2=13 1140 integer,parameter :: i_n=14 1141 integer,parameter :: i_no=15 1142 integer,parameter :: i_no2=17 1130 integer,parameter :: i_co2 = 1 1131 integer,parameter :: i_co = 2 1132 integer,parameter :: i_o = 3 1133 integer,parameter :: i_o1d = 4 1134 integer,parameter :: i_o2 = 5 1135 integer,parameter :: i_o3 = 6 1136 integer,parameter :: i_h = 7 1137 integer,parameter :: i_h2 = 8 1138 integer,parameter :: i_oh = 9 1139 integer,parameter :: i_ho2 = 10 1140 integer,parameter :: i_h2o2 = 11 1141 integer,parameter :: i_h2o = 12 1142 integer,parameter :: i_n = 13 1143 integer,parameter :: i_n2d = 14 1144 integer,parameter :: i_no = 15 1145 integer,parameter :: i_no2 = 16 1146 integer,parameter :: i_n2 = 17 1147 ! integer,parameter :: i_co2=1 1148 ! integer,parameter :: i_o2=2 1149 ! integer,parameter :: i_o=3 1150 ! integer,parameter :: i_co=4 1151 ! integer,parameter :: i_h=5 1152 ! integer,parameter :: i_h2=8 1153 ! integer,parameter :: i_h2o=9 1154 ! integer,parameter :: i_h2o2=10 1155 ! integer,parameter :: i_o3=12 1156 ! integer,parameter :: i_n2=13 1157 ! integer,parameter :: i_n=14 1158 ! integer,parameter :: i_no=15 1159 ! integer,parameter :: i_no2=17 1143 1160 1144 1161 … … 1343 1360 enddo !Of do i=nlayer,1,-1 1344 1361 1345 1346 1362 return 1347 1363 -
trunk/LMDZ.MARS/libf/aeronomars/paramfoto_compact.F
r1888 r2042 86 86 !!! ATTENTION. These values have to be identical to those in chemthermos.F90 87 87 !!! If the values are changed there, the same has to be done here !!! 88 integer,parameter :: i_co2=1 89 integer,parameter :: i_o2=2 90 integer,parameter :: i_o=3 91 integer,parameter :: i_co=4 92 integer,parameter :: i_h=5 93 integer,parameter :: i_oh=6 94 integer,parameter :: i_ho2=7 95 integer,parameter :: i_h2=8 96 integer,parameter :: i_h2o=9 97 integer,parameter :: i_h2o2=10 98 integer,parameter :: i_o1d=11 99 integer,parameter :: i_o3=12 100 integer,parameter :: i_n2=13 101 integer,parameter :: i_n=14 102 integer,parameter :: i_no=15 103 integer,parameter :: i_n2d=16 104 integer,parameter :: i_no2=17 88 ! integer,parameter :: i_co2=1 89 ! integer,parameter :: i_o2=2 90 ! integer,parameter :: i_o=3 91 ! integer,parameter :: i_co=4 92 ! integer,parameter :: i_h=5 93 ! integer,parameter :: i_oh=6 94 ! integer,parameter :: i_ho2=7 95 ! integer,parameter :: i_h2=8 96 ! integer,parameter :: i_h2o=9 97 ! integer,parameter :: i_h2o2=10 98 ! integer,parameter :: i_o1d=11 99 ! integer,parameter :: i_o3=12 100 ! integer,parameter :: i_n2=13 101 ! integer,parameter :: i_n=14 102 ! integer,parameter :: i_no=15 103 ! integer,parameter :: i_n2d=16 104 ! integer,parameter :: i_no2=17 105 integer,parameter :: i_co2 = 1 106 integer,parameter :: i_co = 2 107 integer,parameter :: i_o = 3 108 integer,parameter :: i_o1d = 4 109 integer,parameter :: i_o2 = 5 110 integer,parameter :: i_o3 = 6 111 integer,parameter :: i_h = 7 112 integer,parameter :: i_h2 = 8 113 integer,parameter :: i_oh = 9 114 integer,parameter :: i_ho2 = 10 115 integer,parameter :: i_h2o2 = 11 116 integer,parameter :: i_h2o = 12 117 integer,parameter :: i_n = 13 118 integer,parameter :: i_n2d = 14 119 integer,parameter :: i_no = 15 120 integer,parameter :: i_no2 = 16 121 integer,parameter :: i_n2 = 17 105 122 integer,parameter :: i_co2plus=18 106 123 integer,parameter :: i_oplus=19 … … 175 192 enddo 176 193 end do 177 178 194 179 195 !Reaction rates -
trunk/LMDZ.MARS/libf/aeronomars/photochemistry.F90
r2031 r2042 15 15 subroutine photochemistry(nlayer, nq, & 16 16 ig, lswitch, zycol, sza, ptimestep, press, & 17 alt, temp, dens, zmmean, dist_sol, surfdust1d,&18 surf ice1d, jo3, jh2o,tau, iter)17 alt, temp, dens, zmmean, dist_sol, zday, & 18 surfdust1d, surfice1d, jo3, jh2o,tau, iter) 19 19 20 20 use photolysis_mod, only : nb_phot_max, & 21 21 nb_reaction_3_max, & 22 22 nb_reaction_4_max 23 24 use param_v4_h, only: jdistot, jdistot_b 25 23 26 implicit none 24 27 … … 41 44 real :: zmmean(nlayer) ! mean molar mass (g/mole) 42 45 real :: dist_sol ! sun distance (au) 46 real :: zday ! date (time since Ls=0, in martian days) 43 47 real :: surfdust1d(nlayer) ! dust surface area (cm2/cm3) 44 48 real :: surfice1d(nlayer) ! ice surface area (cm2/cm3) … … 70 74 logical, save :: firstcall = .true. 71 75 logical :: jonline ! switch for online photolysis 76 logical :: jparam ! switch for J parameterization 72 77 73 78 ! tracer indexes in the chemistry: … … 91 96 integer,parameter :: i_n2 = 17 92 97 98 99 integer :: ilay 100 93 101 real :: ctimestep ! standard timestep for the chemistry (s) 94 102 real :: dt_guess ! first-guess timestep (s) … … 144 152 145 153 jonline = .false. 154 jparam= .false. 146 155 147 156 if (jonline) then … … 155 164 v_phot(:,:) = 0. 156 165 end if 166 else if(jparam) then 167 call jthermcalc_e107(ig,nlayer,2,c,nesp,temp,alt,sza,zday) 168 169 do ilay=1,lswitch-1 170 call phdisrate(ig,nlayer,2,sza,ilay) 171 enddo 172 v_phot(:,1)=jdistot(2,:) 173 v_phot(:,2)=jdistot_b(2,:) 174 v_phot(:,3)=jdistot(1,:) 175 v_phot(:,4)=jdistot_b(1,:) 176 v_phot(:,5)=jdistot(7,:) 177 v_phot(:,6)=jdistot_b(7,:) 178 v_phot(:,7)=jdistot(4,:) 179 v_phot(:,8)=jdistot(6,:) 180 v_phot(:,10)=jdistot(5,:) 181 v_phot(:,11)=jdistot(10,:) 182 v_phot(:,12)=jdistot(13,:) 183 v_phot(:,13)=jdistot(8,:) 157 184 else 158 185 tau = tau*7./press(1) ! dust in the lookup table is at 7 hpa … … 1863 1890 1864 1891 do iesp = 1,nesp 1865 do l = 1, lswitch-11892 do l = 1,nlayer!-1!lswitch-1 1866 1893 c(l,iesp) = rm(l,iesp)*dens(l) 1867 1894 end do
Note: See TracChangeset
for help on using the changeset viewer.