Changeset 1888 for trunk/LMDZ.MARS/libf/aeronomars
- Timestamp:
- Jan 9, 2018, 11:53:29 AM (7 years ago)
- Location:
- trunk/LMDZ.MARS/libf/aeronomars
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/aeronomars/calchim.F90
r1266 r1888 166 166 real :: surfdust1d(nlayer) ! Dust surface area (cm2/cm3) 167 167 real :: jo3(nlayer) ! Photodissociation rate O3->O1D (s-1) 168 real :: em_no(nlayer) ! NO nightglow emission rate 169 real :: em_o2(nlayer) ! O2 nightglow emission rate 168 170 169 171 ! for output: … … 172 174 parameter (output = .true.) 173 175 real :: jo3_3d(ngrid,nlayer) ! Photodissociation rate O3->O1D (s-1) 176 real :: emission_no(ngrid,nlayer) !NO emission rate 177 real :: emission_o2(ngrid,nlayer) !O2 emission rate 174 178 175 179 !======================================================================= … … 665 669 if (thermochem) then 666 670 call chemthermos(ig,nlayer,lswitch,chemthermod,zycol,ztemp,& 667 zdens,zpress,zlocal,szacol,ptimestep,zday) 671 zdens,zpress,zlocal,szacol,ptimestep,zday,& 672 em_no,em_o2) 673 do l=1,nlayer 674 emission_no(ig,l)=em_no(l) 675 emission_o2(ig,l)=em_o2(l) 676 enddo 668 677 end if 669 678 … … 715 724 call writediagfi(ngrid,'jo3','j o3->o1d', & 716 725 's-1',3,jo3_3d(1,1)) 726 call writediagfi(ngrid,'emission_no', & 727 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 728 call writediagfi(ngrid,'emission_o2', & 729 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 730 717 731 if (callstats) then 718 732 call wstats(ngrid,'jo3','j o3->o1d', & 719 733 's-1',3,jo3_3d(1,1)) 734 call wstats(ngrid,'emission_no', & 735 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 736 call wstats(ngrid,'emission_o2', & 737 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 720 738 endif 721 739 end if ! of if (ngrid.gt.1) -
trunk/LMDZ.MARS/libf/aeronomars/calchim_asis.F90
r1495 r1888 167 167 real :: surfdust1d(nlayer) ! Dust surface area (cm2/cm3) 168 168 real :: jo3(nlayer) ! Photodissociation rate O3->O1D (s-1) 169 real :: em_no(nlayer) ! NO nightglow emission rate 170 real :: em_o2(nlayer) ! O2 nightglow emission rate 169 171 170 172 integer :: iter(nlayer) ! Number of chemical iterations … … 176 178 parameter (output = .true.) 177 179 real :: jo3_3d(ngrid,nlayer) ! Photodissociation rate O3->O1D (s-1) 180 real :: emission_no(ngrid,nlayer) !NO emission rate 181 real :: emission_o2(ngrid,nlayer) !O2 emission rate 178 182 real :: iter_3d(ngrid,nlayer) ! Number of chemical iterations 179 183 ! within one physical timestep … … 677 681 if (thermochem) then 678 682 call chemthermos(ig,nlayer,lswitch,chemthermod,zycol,ztemp,& 679 zdens,zpress,zlocal,szacol,ptimestep,zday) 683 zdens,zpress,zlocal,szacol,ptimestep,zday,& 684 em_no,em_o2) 685 do l=1,nlayer 686 emission_no(ig,l)=em_no(l) 687 emission_o2(ig,l)=em_o2(l) 688 enddo 680 689 end if 681 690 … … 731 740 call writediagfi(ngrid,'iter','iterations', & 732 741 ' ',3,iter_3d(1,1)) 742 call writediagfi(ngrid,'emission_no', & 743 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 744 call writediagfi(ngrid,'emission_o2', & 745 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 746 733 747 if (callstats) then 734 748 call wstats(ngrid,'jo3','j o3->o1d', & 735 749 's-1',3,jo3_3d(1,1)) 750 call wstats(ngrid,'emission_no', & 751 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 752 call wstats(ngrid,'emission_o2', & 753 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 736 754 call wstats(ngrid,'mmean','mean molecular mass', & 737 755 'g.mole-1',3,mmean(1,1)) -
trunk/LMDZ.MARS/libf/aeronomars/chemthermos.F90
r1684 r1888 1 1 SUBROUTINE chemthermos(ig,nlayer,lswitch,chemthermod,zycol,ztemp, & 2 zdens,zpress,zlocal,zenit,ptimestep,zday )2 zdens,zpress,zlocal,zenit,ptimestep,zday,em_no,em_o2) 3 3 4 4 use tracer_mod, only: nqmx, igcm_co2, igcm_co, igcm_o, igcm_o1d, & … … 10 10 igcm_n2plus, igcm_hplus, igcm_hco2plus, & 11 11 igcm_elec, igcm_oplus 12 13 use param_v4_h, only: Pno, Po2 12 14 USE comcstfi_h 13 15 IMPLICIT NONE … … 43 45 real :: ptimestep 44 46 real :: zday 47 real :: em_no(nlayer) 48 real :: em_o2(nlayer) 45 49 ! 46 50 ! Local variables : … … 508 512 zycol(l,g_elec) = max(rm(l,i_elec) / zdens(l) , 1.e-30) 509 513 endif 514 em_no(l)=Pno(l,45) 515 em_o2(l)=Po2(l,10)*0.75 510 516 enddo !nlayer 511 517 -
trunk/LMDZ.MARS/libf/aeronomars/param_read_e107.F
r1717 r1888 11 11 . efdiso,efdisn,efdish, 12 12 . efdisno,efdisn2,efdisno2, 13 . efdisco,efionco2,efion n2,13 . efdisco,efionco2,efiono2,efionn2, 14 14 . efionco,efiono3p,efionn, 15 15 . efionno,efionh, … … 300 300 efionco2(inter,3)=0. 301 301 efionco2(inter,4)=0. 302 efiono2(inter,1)=0. 303 efiono2(inter,2)=0. 302 304 efiono3p(inter)=0. 303 305 efionn2(inter,1)=0. … … 314 316 c CO2, O2, NO 315 317 316 open(120,file=trim(datafile)//'/EUVDAT/param_v5/efdis_inter.dat') 317 read(120,*) 318 ! do i=1,21 319 ! read(120,*)inter,efdisco2(inter),efdiso2(inter),efdisno(inter) 320 do inter=8,28 321 read(120,*)i,efdisco2(inter),efdiso2(inter),efdisno(inter) 322 enddo 323 do inter=29,ninter 324 efdisco2(inter)=1. 325 efdiso2(inter)=1. 326 efdisno(inter)=1. 327 enddo 318 ! open(120,file=trim(datafile)//'/EUVDAT/param_v5/efdis_inter.dat') 319 ! read(120,*) 320 !! do i=1,21 321 !! read(120,*)inter,efdisco2(inter),efdiso2(inter),efdisno(inter) 322 ! do inter=8,28 323 ! read(120,*)i,efdisco2(inter),efdiso2(inter),efdisno(inter) 324 ! enddo 325 ! do inter=29,ninter 326 ! efdisco2(inter)=1. 327 ! efdiso2(inter)=1. 328 ! efdisno(inter)=1. 329 ! enddo 330 ! close(120) 328 331 329 332 … … 372 375 373 376 !4 possible channels for CO2 ionization 374 do inter=14,16 375 efionco2(inter,1)=1.-efdisco2(inter) 376 enddo 377 efionco2(13,1)=0.805*(1.-efdisco2(13)) 378 efionco2(13,2)=0.195*(1.-efdisco2(13)) 379 do inter=11,12 380 efionco2(inter,3)=1.-efdisco2(inter) 381 enddo 382 efionco2(10,3)=0.9*(1.-efdisco2(10)) 383 efionco2(10,4)=0.1*(1.-efdisco2(10)) 384 do inter=2,9 385 efionco2(inter,4)=1.-efdisco2(inter) 386 enddo 377 open(130,file=trim(datafile)//'/EUVDAT'// 378 $ '/co2ion_branchingratio_schunkandnagy2000_param.dat') 379 do inter=1,16 380 read(130,*)i,nada,efionco2(inter,1),efionco2(inter,2), 381 $ efionco2(inter,3),efionco2(inter,4) 382 !Multiply the relative efficiency of each channel by the total ionization efficiency (second column) 383 efdisco2(inter)=1.-nada 384 efionco2(inter,1)=(1.-efdisco2(inter))*efionco2(inter,1) 385 efionco2(inter,2)=(1.-efdisco2(inter))*efionco2(inter,2) 386 efionco2(inter,3)=(1.-efdisco2(inter))*efionco2(inter,3) 387 efionco2(inter,4)=(1.-efdisco2(inter))*efionco2(inter,4) 388 enddo 389 close(130) 390 do inter=17,36 391 efdisco2(inter)=1. 392 enddo 393 394 ! do inter=14,16 395 ! efionco2(inter,1)=1.-efdisco2(inter) 396 ! enddo 397 ! efionco2(13,1)=0.805*(1.-efdisco2(13)) 398 ! efionco2(13,2)=0.195*(1.-efdisco2(13)) 399 ! do inter=11,12 400 ! efionco2(inter,3)=1.-efdisco2(inter) 401 ! enddo 402 ! efionco2(10,3)=0.9*(1.-efdisco2(10)) 403 ! efionco2(10,4)=0.1*(1.-efdisco2(10)) 404 ! do inter=2,9 405 ! efionco2(inter,4)=1.-efdisco2(inter) 406 ! enddo 407 408 409 !2 possible channels for O2 ionization 410 open(131,file=trim(datafile)//'/EUVDAT'// 411 $ '/o2ion_branchingratio_schunkandnagy2000_param.dat') 412 do inter=1,23 413 read(131,*)i,nada,efiono2(inter,1),efiono2(inter,2) 414 !Multiply the relative efficiency of each channel by the total ionization efficiency (second column) 415 efdiso2(inter)=1.-nada 416 efiono2(inter,1)=(1.-efdiso2(inter))*efiono2(inter,1) 417 efiono2(inter,2)=(1.-efdiso2(inter))*efiono2(inter,2) 418 enddo 419 close(131) 420 do inter=24,36 421 efdiso2(inter)=1. 422 enddo 423 387 424 388 425 !For O(3p) total ionization under 91.1 nm … … 391 428 enddo 392 429 430 393 431 !2 channels for N2 ionization 394 do inter=9,15 395 efionn2(inter,1)=1.-efdisn2(inter) 396 enddo 397 do inter=2,8 398 efionn2(inter,2)=1.-efdisn2(inter) 399 enddo 400 432 open(132,file=trim(datafile)//'/EUVDAT'// 433 $ '/n2ion_branchingratio_schunkandnagy2000_param.dat') 434 do inter=1,15 435 read(132,*)i,nada,efionn2(inter,1),efionn2(inter,2) 436 !Multiply the relative efficiency of each channel by the total ionization efficiency (second column) 437 efdisn2(inter)=1.-nada 438 efionn2(inter,1)=(1.-efdisn2(inter))*efionn2(inter,1) 439 efionn2(inter,2)=(1.-efdisn2(inter))*efionn2(inter,2) 440 enddo 441 close(132) 442 do inter=16,36 443 efdisn2(inter)=1. 444 enddo 445 446 ! do inter=9,15 447 ! efionn2(inter,1)=1.-efdisn2(inter) 448 ! enddo 449 ! do inter=2,8 450 ! efionn2(inter,2)=1.-efdisn2(inter) 451 ! enddo 452 453 401 454 !3 channels for CO ionization 402 do inter=11,16 403 efionco(inter,1)=1.-efdisco(inter) 404 enddo 405 efionco(10,1)=0.87*(1.-efdisco(10)) 406 efionco(10,2)=0.13*(1.-efdisco(10)) 407 do inter=8,9 408 efionco(inter,2)=1.-efdisco(inter) 409 enddo 410 efionco(7,2)=0.1*(1.-efdisco(7)) 411 efionco(7,3)=0.9*(1.-efdisco(7)) 412 do inter=2,6 413 efionco(inter,3)=1.-efdisco(inter) 414 enddo 455 open(133,file=trim(datafile)//'/EUVDAT'// 456 $ '/coion_branchingratio_schunkandnagy2000_param.dat') 457 do inter=1,16 458 read(133,*)i,nada,efionco(inter,1),efionco(inter,2), 459 $ efionco(inter,3) 460 !Multiply the relative efficiency of each channel by the total ionization efficiency (second column) 461 efdisco(inter)=1.-nada 462 efionco(inter,1)=(1.-efdisco(inter))*efionco(inter,1) 463 efionco(inter,2)=(1.-efdisco(inter))*efionco(inter,2) 464 efionco(inter,3)=(1.-efdisco(inter))*efionco(inter,3) 465 enddo 466 close(133) 467 do inter=17,36 468 efdisco(inter)=1. 469 enddo 470 471 ! do inter=11,16 472 ! efionco(inter,1)=1.-efdisco(inter) 473 ! enddo 474 ! efionco(10,1)=0.87*(1.-efdisco(10)) 475 ! efionco(10,2)=0.13*(1.-efdisco(10)) 476 ! do inter=8,9 477 ! efionco(inter,2)=1.-efdisco(inter) 478 ! enddo 479 ! efionco(7,2)=0.1*(1.-efdisco(7)) 480 ! efionco(7,3)=0.9*(1.-efdisco(7)) 481 ! do inter=2,6 482 ! efionco(inter,3)=1.-efdisco(inter) 483 ! enddo 484 415 485 416 486 !Total ionization under 85 nm for N -
trunk/LMDZ.MARS/libf/aeronomars/param_v4_h.F90
r1266 r1888 54 54 real efdisco(ninter) 55 55 real efionco2(ninter,4) 56 real efiono2(ninter,2) 56 57 real efionn2(ninter,2) 57 58 real efionco(ninter,3) -
trunk/LMDZ.MARS/libf/aeronomars/paramfoto_compact.F
r1331 r1888 3 3 subroutine paramfoto_compact 4 4 $(ig,nlayer,chemthermod,lswitch,tx,timestep,zenit,zx,rm,nesptherm) 5 6 c Main thermospheric photochemistry routine. 5 7 6 8 c may 2008 FGG+MALV,GG … … 118 120 119 121 122 c external timestep 123 timefrac_sec=dble(timestep) 124 120 125 C Start: altitude loop 121 timefrac_sec=dble(timestep)122 123 126 do i=nlayer,lswitch,-1 124 c Concentrations to real*8 125 126 c Hay dos maneras de adaptar estos a los flags fotoquimicos: 127 c 1. Se definen todas las concentraciones, dejando como 0 las que no 128 c se utilicen en la quimica requerida. Esto es posiblemente lo mas 129 c sencillo, ya que no habria que modificar las llamadas a las subrutinas 130 c pero puede ser menos seguro y mas caro computacionalmente 131 c 2. Se definen nuevas variables rmini, rminput, rmoutput como arrays 132 c con dimension ajustable al numero de compuestos. Esto es posiblemente 133 c mas seguro, compacto y rapido, pero implica cambiar las llamadas a 134 c todas las subrutinas. 135 c Empiezo probando la primera manera. 136 127 c Temperature and concentrations to real*8 137 128 tx8=dble(tx(i)) 138 139 129 co2xini=dble(rm(i,i_co2)) 140 130 o2xini=dble(rm(i,i_o2)) … … 205 195 206 196 ! JYC criteria added to avoid instabilities in (H) + (O+) <-> (H+) + (O) reactions when H+ is important 207 208 197 fmargin1=5 209 198 !Only if ion chemistry requested … … 213 202 fmargin1=2000.*critere 214 203 if (fmargin1 .gt. 50.) fmargin1=50 215 ! print*,'long time step chimie',ig,i,critere,fmargin1216 204 endif 217 205 endif !Of chemthermod.eq.3 … … 699 687 function ionsec_nplus (zenit, alt) 700 688 701 c Calcula la eficiencia de produccion de N+ por electrones secundarios702 c siguiendoNicholson et al. 2009689 c Calculates the N+ production by photoelectrons, following 690 c Nicholson et al. 2009 703 691 704 692 c FGG sep 2010 first version … … 752 740 ionsec_nplus = 10**(ionsec_nplus-2.) 753 741 elseif(altaux.gt.80..and.altaux.le.108.4) then 754 ! else755 742 b0 = 6.346190854d4 756 743 b1 = -2.623253212d3 … … 760 747 ionsec_nplus = b0 + b1*altaux + b2*altaux**2 + b3*altaux**3 + 761 748 $ b4*altaux**4 762 ! ionsec_nplus = ionsec_nplus * 100.763 749 else 764 750 ionsec_nplus=0.d0 765 751 endif 766 752 if(ionsec_nplus.gt.100.d0.or.ionsec_nplus.lt.0.d0) 767 ! if(ionsec_nplus.lt.0.d0)768 753 $ ionsec_nplus=0.d0 769 754 770 755 771 !Ionizacion secundaria a 0772 ! ionsec_nplus=0.d0773 756 return 774 c END 757 775 758 end 776 759 … … 779 762 function ionsec_n2plus (zenit, alt) 780 763 781 c Calcula la eficiencia de produccion de N+ por electrones secundarios 782 c siguiendo Nicholson et al. 2009 783 784 c FGG sep 2010 first version 764 c N2+ production by photoelectrons, following Nicholson et al. 2009 765 766 c FGG sep 2010 first version 785 767 c*********************************************************************** 786 768 … … 826 808 ionsec_n2plus = 10**(ionsec_n2plus-2.) 827 809 elseif(altaux.gt.80..and.altaux.le.108.4) then 828 ! else829 810 b0 = 5.146111566d4 830 811 b1 = -1.771736158d3 … … 835 816 ionsec_n2plus = b0 + b1*altaux + b2*altaux**2 + b3*altaux**3 + 836 817 $ b4*altaux**4 + b5*altaux**5 837 ! ionsec_n2plus = ionsec_n2plus * 100.838 818 else 839 819 ionsec_n2plus = 0.d0 840 820 endif 841 821 if(ionsec_n2plus.gt.100.d0.or.ionsec_n2plus.lt.0.d0) 842 ! if(ionsec_n2plus.lt.0.d0)843 822 $ ionsec_n2plus=0.d0 844 823 845 !Ionizacion secundaria a 0846 ! ionsec_n2plus=0.d0847 824 return 848 c END 825 849 826 end 850 827 … … 854 831 function ionsec_oplus (zenit, alt) 855 832 856 c Calcula la eficiencia de produccion de N+ por electrones secundarios 857 c siguiendo Nicholson et al. 2009 858 859 c FGG sep 2010 first version 833 c O+ production by photoelectrons, from Nicholson et al. 2009 834 835 c FGG sep 2010 first version 860 836 c*********************************************************************** 861 837 … … 905 881 ionsec_oplus = 10**(ionsec_oplus-2.) 906 882 elseif(altaux.gt.80..and.altaux.le.112.9) then 907 ! else908 883 b0 = -5.934881676d5 909 884 b1 = 3.546095705d4 … … 915 890 ionsec_oplus = b0 + b1*altaux + b2*altaux**2 + b3*altaux**3 + 916 891 $ b4*altaux**4 + b5*altaux**5 + b6*altaux**6 917 ! ionsec_oplus = ionsec_oplus * 100.918 892 else 919 893 ionsec_oplus=0.d0 … … 921 895 922 896 if(ionsec_oplus.gt.100.d0.or.ionsec_oplus.lt.0.d0) 923 ! if(ionsec_oplus.lt.0.d0)924 897 $ ionsec_oplus=0.d0 925 898 926 !Ionizacion secundaria a 0927 ! ionsec_oplus=0.d0928 899 return 929 c END 900 930 901 end 931 902 … … 935 906 function ionsec_coplus (zenit, alt) 936 907 937 c Calcula la eficiencia de produccion de N+ por electrones secundarios 938 c siguiendo Nicholson et al. 2009 939 940 c FGG sep 2010 first version 908 c CO+ production by photoelectrons from Nicholson et al. 2009 909 910 c FGG sep 2010 first version 941 911 c*********************************************************************** 942 912 … … 982 952 ionsec_coplus = 10**(ionsec_coplus-2.) 983 953 elseif(altaux.gt.80..and.altaux.le.110.6) then 984 ! else985 954 b0 = -1.165107657d6 986 955 b1 = 4.315606169d4 … … 1000 969 $ b7*altaux**7 + b8*altaux**8 + b9*altaux**9 + 1001 970 $ b10*altaux**10 + b11*altaux**11 + b12*altaux**12 1002 ! ionsec_coplus = ionsec_coplus * 100.1003 971 else 1004 972 ionsec_coplus=0.d0 1005 973 endif 1006 974 if(ionsec_coplus.gt.100..or.ionsec_coplus.lt.0.d0) 1007 ! if(ionsec_coplus.lt.0.d0)1008 975 $ ionsec_coplus=0.d0 1009 976 1010 !Ionizacion secundaria a 01011 ! ionsec_coplus=0.d01012 977 return 1013 c END 978 1014 979 end 1015 980 … … 1019 984 function ionsec_co2plus (zenit, alt) 1020 985 1021 c Calcula la eficiencia de produccion de N+ por electrones secundarios 1022 c siguiendo Nicholson et al. 2009 986 c CO2+ production by photoelectrons, from Nicholson et al. 2009 1023 987 1024 988 c FGG sep 2010 first version … … 1066 1030 ionsec_co2plus = 10**(ionsec_co2plus-2.) 1067 1031 elseif(altaux.ge.80..and.altaux.le.112.9) then 1068 ! else1069 1032 b0 = 1.159404818d6 1070 1033 b1 = -5.617523193d4 … … 1082 1045 $ b7*altaux**7 + b8*altaux**8 + b9*altaux**9 + 1083 1046 $ b10*altaux**10 1084 ! ionsec_co2plus = ionsec_co2plus * 100.1085 1047 else 1086 1048 ionsec_co2plus = 0.d0 1087 1049 endif 1088 1050 if(ionsec_co2plus.gt.100.d0.or.ionsec_co2plus.lt.0.d0) 1089 ! if(ionsec_co2plus.lt.0.d0)1090 1051 $ ionsec_co2plus=0.d0 1091 1052 1092 !Ionizacion secundaria a 01093 ! ionsec_co2plus=0.d01094 1053 return 1095 c END 1054 1096 1055 end 1097 1056 … … 1100 1059 function ionsec_o2plus (zenit, alt) 1101 1060 1102 c Calcula la eficiencia de produccion de N+ por electrones secundarios 1103 c siguiendo Nicholson et al. 2009 1104 1105 c FGG sep 2010 first version 1061 c O2+ production by photoelectrons, from Nicholson et al. 2009 1062 1063 c FGG sep 2010 first version 1106 1064 c*********************************************************************** 1107 1065 … … 1144 1102 ionsec_o2plus = 10**(ionsec_o2plus-2.) 1145 1103 elseif(altaux.gt.80..and.altaux.le.112.9) then 1146 ! else1147 1104 b0 = 3.622091694d6 1148 1105 b1 = -1.45914419d5 … … 1157 1114 $ b4*altaux**4 + b5*altaux**5 + b6*altaux**6 + b7*altaux**7 1158 1115 $ + b8*altaux**8 1159 ! ionsec_o2plus = ionsec_o2plus * 100.1160 1116 else 1161 1117 ionsec_o2plus = 0.d0 1162 1118 endif 1163 1119 if(ionsec_o2plus.gt.100.d0.or.ionsec_o2plus.lt.0.d0) 1164 ! if(ionsec_o2plus.lt.0.d0)1165 1120 $ ionsec_o2plus=0.d0 1166 1121 1167 !Ionizacion secundaria a 0 1168 ! ionsec_o2plus=0.d0 1122 1169 1123 return 1170 c END 1124 1171 1125 end 1172 1126 … … 1178 1132 1179 1133 subroutine phdisrate(ig,nlayer,chemthermod,zenit,i) 1134 1135 c Calculates photoionization and photodissociation rates from the 1136 c photoabsorption rates calculated in jthermcalc_e107 and the 1137 c ionization/dissociation branching ratios in param_read_e107 1180 1138 1181 1139 c apr 2002 fgg first version … … 1189 1147 . efdiso,efdisn,efdish, 1190 1148 . efdisno,efdisn2,efdisno2, 1191 . efdisco,efionco2,efion n2,1149 . efdisco,efionco2,efiono2,efionn2, 1192 1150 . efionco,efiono3p,efionn, 1193 1151 . efionno,efionh … … 1282 1240 end if 1283 1241 jion(2,i,1)=jion(2,i,1) + 1284 $ jfotsout(inter,2,i) * fluxtop(inter) * (1.-efdiso2(inter)) 1242 $ jfotsout(inter,2,i) * fluxtop(inter) * efiono2(inter,1) 1243 jion(2,1,2)=jion(2,1,2) + 1244 $ jfotsout(inter,2,i) * fluxtop(inter) * efiono2(inter,2) 1245 !(1.-efdiso2(inter)) 1285 1246 1286 1247 c O3P … … 1381 1342 subroutine getch (ig,chemthermod,tt,zkm) 1382 1343 1344 1345 c Reaction rates. The parameters rcoef are read from the 1346 c chemthermos_reactionrates.def file 1383 1347 1384 c NOV 98 MALV First Version. From the work: 1385 c Rodrigo et al, Atmosfera, 3, pp.31-43, 1990 1386 c apr 02 FGG New reactions 1387 c Sep 07 fgg 1348 1388 1349 c*************************************************************************** 1389 1350 … … 1417 1378 tcte = tt 1418 1379 1380 ! goto 151 1419 1381 !Electronic temperatures 1420 1382 ! (Hanson et al. 1977) approx. from Mars p. 107 … … 1451 1413 $ ( zhanson(i2)-zhanson(i1) ) 1452 1414 t_elect = tehanson(i1) + (zkm-zhanson(i1)) * incremento 1415 1416 ! t_elect = t_elect * 2. 1453 1417 endif 1418 ! 151 continue 1419 !MAVEN measured electronic temperature (Ergun et al., GRL 2015) 1420 ! t_elect=((3140.+120.)/2.)+((3140.-120.)/2.)*tanh((zkm-241.)/60.) 1454 1421 1455 1422 !Initializations … … 2228 2195 2229 2196 if(jdistot8(5,i).gt.1.d-30) tauh2(27,i)= 1.d0/jdistot8(5,i) 2230 2231 ! if(ch28 * h2oxini.gt.1.d-30) tauo3(i,28) = 1.d0/(ch28*h2oxini)2232 ! if(ch28 * o3xini.gt.1.d-30) tauh2o(i,28) = 1.d0/(ch28*o3xini)2233 2197 2234 2198 !Only if N or ion chemistry requested … … 3879 3843 $ Pco(i,59) + Pco(i,73) 3880 3844 Lcotot(i) = Lco(i,4) + Lco(i,70) + Lco(i,77) + Lco(i,78) + 3881 $ Lco(i,9 0)3845 $ Lco(i,91) 3882 3846 3883 3847 … … 4162 4126 4163 4127 4164 c Calculates the concentrations of the fast species in PE 4128 c Calculates the concentrations of the fast species in PE. Includes a 4129 c procedure to avoid oscillations 4130 4165 4131 c 4166 4132
Note: See TracChangeset
for help on using the changeset viewer.