Changeset 3689 for trunk/LMDZ.VENUS
- Timestamp:
- Mar 17, 2025, 4:36:24 PM (3 months ago)
- Location:
- trunk/LMDZ.VENUS
- Files:
-
- 2 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/deftank/traceur-chemistry-IONOSPHERE.def
r2836 r3689 25 25 10 10 so2 26 26 10 10 so3 27 10 10 s2o2 27 10 10 osso_cis 28 10 10 osso_trans 29 10 10 s2o2_cyc 28 30 10 10 ocs 29 31 10 10 hso3 -
trunk/LMDZ.VENUS/deftank/traceur-chemistry.def
r1782 r3689 1 35 1 42 2 2 10 10 co2 3 3 10 10 co … … 25 25 10 10 so2 26 26 10 10 so3 27 10 10 s2o2 27 10 10 osso_cis 28 10 10 osso_trans 29 10 10 s2o2_cyc 28 30 10 10 ocs 29 31 10 10 hso3 … … 33 35 10 10 oscl 34 36 10 10 n2 37 10 10 he 38 10 10 n 39 10 10 n2d 40 10 10 no 41 10 10 no2 35 42 10 10 h2oliq 36 43 10 10 h2so4liq 37 -
trunk/LMDZ.VENUS/libf/phyvenus/chemparam_mod.F90
r3323 r3689 19 19 i_cl2, i_hcl, i_hocl, i_clco, i_clco3, & 20 20 i_cocl2, i_s, i_so, i_so2, i_so3, & 21 i_s2o2, i_ocs, i_hso3, i_h2so4, i_s2, & 21 i_osso_cis, i_osso_trans, i_s2o2_cyc, & 22 i_ocs, i_hso3, i_h2so4, i_s2, & 22 23 i_clso2, i_oscl, i_n2, i_he, i_n, i_no, & 23 24 i_no2, i_n2d, & … … 1533 1534 i_so2 = 0 1534 1535 i_so3 = 0 1535 i_s2o2 = 0 1536 i_osso_cis = 0 1537 i_osso_trans = 0 1538 i_s2o2_cyc = 0 1536 1539 i_ocs = 0 1537 1540 i_hso3 = 0 … … 1701 1704 m_tr(i_so3) = 80.063 1702 1705 type_tr(i_so3) = 1 1703 case('s2o2') 1704 i_s2o2 = i 1705 print*,'s2o2',i_s2o2 1706 m_tr(i_s2o2)= 96.1288 1707 type_tr(i_s2o2) = 1 1706 case('osso_cis') 1707 i_osso_cis = i 1708 print*,'osso_cis',i_osso_cis 1709 m_tr(i_osso_cis)= 96.1288 1710 type_tr(i_osso_cis) = 1 1711 case('osso_trans') 1712 i_osso_trans = i 1713 print*,'osso_trans',i_osso_trans 1714 m_tr(i_osso_trans)= 96.1288 1715 type_tr(i_osso_trans) = 1 1716 case('s2o2_cyc') 1717 i_s2o2_cyc = i 1718 print*,'s2o2_cyc',i_s2o2_cyc 1719 m_tr(i_s2o2_cyc)= 96.1288 1720 type_tr(i_s2o2_cyc) = 1 1708 1721 case('ocs') 1709 1722 i_ocs = i -
trunk/LMDZ.VENUS/libf/phyvenus/photochemistry_venus.F90
r3675 r3689 29 29 use param_v4_h, only: jion 30 30 use iono_h, only: phdisrate 31 !nphot ! number of photodissociations, include in "use photolysis_mod"32 31 33 32 implicit none … … 207 206 if (ok_jonline) then 208 207 if (sza_input <= 95.) then ! day at 300 km 209 call photolysis_online(nz, nb_phot_max, zlocal, p, & 210 t, mumean, i_co2,i_co, i_o, i_o1d, & 211 i_o2, i_o3, i_h2, i_oh, i_ho2, i_h2o2, i_h2o,& 212 i_h, i_hcl, i_cl2, i_hocl, i_so2, i_so, & 213 i_so3, i_s2, i_clo, i_ocs, i_cocl2, i_h2so4, & 214 i_cl, i_no2, i_no, i_n2, i_n2d, & 215 nesp, tr, sza_input, dist_sol, v_phot) 208 call photolysis_online(nz, nb_phot_max, & 209 zlocal, p, t, mumean, & 210 i_co2, i_co, i_o, i_o1d, i_o2, i_o3, i_h2, & 211 i_oh, i_ho2, i_h2o2, i_h2o, i_h, i_hcl, & 212 i_cl, i_clo, i_cl2, i_hocl, i_so2, i_so, i_so3, i_s2, & 213 i_osso_cis, i_osso_trans, i_s2o2_cyc, & 214 i_ocs, i_cocl2, i_h2so4, & 215 i_no2, i_no, i_n2, i_n2d, & 216 nesp, tr, sza_input, dist_sol, v_phot) 216 217 217 218 !Calculation of photoionization rates, if needed … … 530 531 indice_phot(nb_phot) = z3spec(1.0, i_h2, 2.0, i_h, 0.0, i_dummy) 531 532 532 533 533 !=========================================================== 534 534 ! H2O + hv -> H + OH … … 580 580 581 581 !=========================================================== 582 ! ClO + hv -> Cl + O 583 !=========================================================== 584 585 nb_phot = nb_phot + 1 586 587 indice_phot(nb_phot) = z3spec(1.0, i_clo, 1.0, i_cl, 1.0, i_o) 588 589 !=========================================================== 582 590 ! SO2 + hv -> SO + O 583 591 !=========================================================== … … 612 620 613 621 !=========================================================== 614 ! ClO + hv -> Cl +O622 ! OSSO_cis + hv -> SO + SO 615 623 !=========================================================== 616 624 617 625 nb_phot = nb_phot + 1 618 626 619 indice_phot(nb_phot) = z3spec(1.0, i_clo, 1.0, i_cl, 1.0, i_o) 627 indice_phot(nb_phot) = z3spec(1.0, i_osso_cis, 2.0, i_so, 0.0, i_dummy) 628 629 !=========================================================== 630 ! OSSO_trans + hv -> SO + SO 631 !=========================================================== 632 633 nb_phot = nb_phot + 1 634 635 indice_phot(nb_phot) = z3spec(1.0, i_osso_trans, 2.0, i_so, 0.0, i_dummy) 636 637 !=========================================================== 638 ! S2O2_cyc + hv -> SO + SO 639 !=========================================================== 640 641 nb_phot = nb_phot + 1 642 643 indice_phot(nb_phot) = z3spec(1.0, i_s2o2_cyc, 2.0, i_so, 0.0, i_dummy) 620 644 621 645 !=========================================================== … … 1589 1613 1590 1614 !=========================================================== 1591 ! g015 : SO + SO + CO2 -> S2O2 + CO21592 !===========================================================1593 1594 nb_reaction_3 = nb_reaction_3 + 11595 1596 indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_s2o2, 0.0, i_dummy)1597 1598 !===========================================================1599 ! g016 : S2O2 + CO2 -> SO + SO + CO21600 !===========================================================1601 1602 nb_phot = nb_phot + 11603 1604 indice_phot(nb_phot) = z3spec(1.0, i_s2o2, 2.0, i_so, 0.0, i_dummy)1605 1606 !===========================================================1607 1615 ! g017 : 0.5 ClCO3 + 0.5 SO -> Cl 1608 1616 ! 0.5 ClCO3 + 0.5 SO -> SO2 + CO2 … … 1714 1722 1715 1723 !=========================================================== 1716 ! g030: so3 + ocs -> s2o2 + co21717 !===========================================================1718 1719 nb_reaction_4 = nb_reaction_4 + 11720 1721 indice_4(nb_reaction_4) = z4spec(1.0, i_so3, 1.0, i_ocs, 1.0, i_s2o2, 1.0, i_co2)1722 1723 !===========================================================1724 ! g031: s2o2 + ocs -> co + so2 + s21725 !===========================================================1726 ! decomposee en1727 ! 0.5 s2o2 + 0.5 ocs -> co1728 ! 0.5 s2o2 + 0.5 ocs -> so2 + s21729 !===========================================================1730 1731 nb_reaction_4 = nb_reaction_4 + 11732 1733 indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_co, 0.0, i_dummy)1734 1735 nb_reaction_4 = nb_reaction_4 + 11736 1737 indice_4(nb_reaction_4) = z4spec(0.5, i_s2o2, 0.5, i_ocs, 1.0, i_so2, 1.0, i_s2)1738 1739 !===========================================================1740 1724 ! g032: so + so -> so2 + s 1741 1725 !=========================================================== … … 1744 1728 1745 1729 indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_so2, 1.0, i_s) 1730 1731 !=========================================================== 1732 ! g033 : SO + SO + CO2 -> OSSO_cis + CO2 1733 !=========================================================== 1734 1735 nb_reaction_3 = nb_reaction_3 + 1 1736 1737 indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_osso_cis, 0.0, i_dummy) 1738 1739 !=========================================================== 1740 ! g034: OSSO_cis + CO2 -> SO + SO + CO2 1741 !=========================================================== 1742 1743 nb_phot = nb_phot + 1 1744 1745 indice_phot(nb_phot) = z3spec(1.0, i_osso_cis, 2.0, i_so, 0.0, i_dummy) 1746 1747 !=========================================================== 1748 ! g035 : SO + SO + CO2 -> OSSO_trans + CO2 1749 !=========================================================== 1750 1751 nb_reaction_3 = nb_reaction_3 + 1 1752 1753 indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_osso_trans, 0.0, i_dummy) 1754 1755 !=========================================================== 1756 ! g036: OSSO_trans + CO2 -> SO + SO + CO2 1757 !=========================================================== 1758 1759 nb_phot = nb_phot + 1 1760 1761 indice_phot(nb_phot) = z3spec(1.0, i_osso_trans, 2.0, i_so, 0.0, i_dummy) 1762 1763 !=========================================================== 1764 ! g037 : SO + SO + CO2 -> S2O2_cyc + CO2 1765 !=========================================================== 1766 1767 nb_reaction_3 = nb_reaction_3 + 1 1768 1769 indice_3(nb_reaction_3) = z3spec(2.0, i_so, 1.0, i_s2o2_cyc, 0.0, i_dummy) 1770 1771 !=========================================================== 1772 ! g038: S2O2_cyc + CO2 -> SO + SO + CO2 1773 !=========================================================== 1774 1775 nb_phot = nb_phot + 1 1776 1777 indice_phot(nb_phot) = z3spec(1.0, i_s2o2_cyc, 2.0, i_so, 0.0, i_dummy) 1778 1779 !=========================================================== 1780 ! g040: OSSO_cis + O -> SO2 + SO 1781 !=========================================================== 1782 1783 nb_reaction_4 = nb_reaction_4 + 1 1784 1785 indice_4(nb_reaction_4) = z4spec(1.0, i_osso_cis, 1.0, i_o, 1.0, i_so2, 1.0, i_so) 1786 1787 !=========================================================== 1788 ! g042: OSSO_trans + O -> SO2 + SO 1789 !=========================================================== 1790 1791 nb_reaction_4 = nb_reaction_4 + 1 1792 1793 indice_4(nb_reaction_4) = z4spec(1.0, i_osso_trans, 1.0, i_o, 1.0, i_so2, 1.0, i_so) 1794 1795 !=========================================================== 1796 ! g044: S2O2_cyc + O -> SO2 + SO 1797 !=========================================================== 1798 1799 nb_reaction_4 = nb_reaction_4 + 1 1800 1801 indice_4(nb_reaction_4) = z4spec(1.0, i_s2o2_cyc, 1.0, i_o, 1.0, i_so2, 1.0, i_so) 1746 1802 1747 1803 !=========================================================== … … 2606 2662 g015, g016, g017, g018, g019, g020, g021, & 2607 2663 g022, g023, g024, g025, g026, g027, g028, & 2608 g029, g030, g031, g032, & 2664 g029, g030, g031, g032, g033, g034, g035, & 2665 g036, g037, g038, g039, g040, g041, g042, & 2666 g043, g044, g045, & 2609 2667 h001, h002, h003, & 2610 2668 i001, i002, i003, i004, i005, i006, & … … 3095 3153 nb_phot = nb_phot + 1 3096 3154 v_phot(:,nb_phot) = d014(:)*c(:,i_co) 3097 3098 3155 !---------------------------------------------------------------------- 3099 3156 ! reactions des composes carbones … … 3707 3764 v_4(:,nb_reaction_4) = g014(:) 3708 3765 3709 !--- g015: so + so + co2 -> s2o2 + co2 3710 3711 ! herron and huie, chem. phys. lett., 1980. 3712 3713 do iz = 1,nz 3714 ak0 = 2.5*4.4E-31 3715 ak1 = 1.0E-11 3716 3717 rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1) 3718 xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2) 3719 g015(iz) = rate*0.6**xpo 3720 end do 3721 3722 nb_reaction_3 = nb_reaction_3 + 1 3723 v_3(:,nb_reaction_3) = g015(:) 3724 3725 !--- g016: s2o2 + co2 -> so + so + co2 3726 3727 ! mills, phd, 1998 3728 3729 deq(:) = 2.5*1.0E-28*exp(6000./t(:)) 3730 3731 g016(:) = g015(:)/(deq(:)*conc(:)) 3732 3733 nb_phot = nb_phot + 1 3734 v_phot(:,nb_phot) = g016(:)*conc(:) 3766 !--- g015: free slot 3767 3768 !--- g016: free slot 3735 3769 3736 3770 !--- g017: clco3 + so -> cl + so2 + co2 … … 3876 3910 v_phot(:,nb_phot) = g029(:)*c(:,i_h2o) 3877 3911 3878 !--- g030: so3 + ocs -> s2o2 + co2 3879 3880 ! krasnopolsky , 2007 3881 3882 g030(:) = 1.0E-11*exp(-10000./t(:)) 3883 3884 nb_reaction_4 = nb_reaction_4 + 1 3885 v_4(:,nb_reaction_4) = g030(:) 3886 3887 !--- g031: s2o2 + ocs -> co + so2 + s2 3888 3889 ! split into 3890 ! 0.5 s2o2 + 0.5 ocs -> co 3891 ! 0.5 s2o2 + 0.5 ocs -> so2 + s2 3892 3893 ! krasnopolsky , 2007 3894 3895 g031(:) = 1.0E-20 3896 3897 nb_reaction_4 = nb_reaction_4 + 1 3898 v_4(:,nb_reaction_4) = g031(:) 3899 3900 nb_reaction_4 = nb_reaction_4 + 1 3901 v_4(:,nb_reaction_4) = g031(:) 3902 3903 ! g032: so + so -> so2 + s 3912 !--- g030: free slot 3913 3914 !--- g031: free slot 3915 3916 !--- g032: so + so -> so2 + s 3904 3917 3905 3918 ! krasnopolsky, 2012 … … 3909 3922 nb_reaction_3 = nb_reaction_3 + 1 3910 3923 v_3(:,nb_reaction_3) = g032(:) 3924 3925 !--- g033: so + so + co2 -> osso_cis + co2 3926 3927 ! Egan et al., 2025 3928 3929 do iz = 1,nz 3930 ak0 = 2.5*1.54e-31*(t(iz)/298.)**(-3.36) 3931 ak1 = 1.1e-10*(t(iz)/298.)**0.167 3932 rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1) 3933 xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2) 3934 g033(iz) = rate*0.42**xpo 3935 end do 3936 3937 nb_reaction_3 = nb_reaction_3 + 1 3938 v_3(:,nb_reaction_3) = g033(:) 3911 3939 3940 !--- g034: osso_cis + co2 -> so + so + co2 3941 3942 ! Egan et al., 2025 3943 3944 deq(:) = 1.02e-27*exp(17231./t(:)) 3945 g034(:) = g033(:)/(deq(:)*conc(:)) 3946 3947 nb_phot = nb_phot + 1 3948 v_phot(:,nb_phot) = g034(:)*conc(:) 3949 3950 !--- g035: so + so + co2 -> osso_trans + co2 3951 3952 ! Egan et al., 2025 3953 3954 do iz = 1,nz 3955 ak0 = 2.5*1.13e-31*(t(iz)/298.)**(-3.38) 3956 ak1 = 1.1e-10*(t(iz)/298.)**0.167 3957 rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1) 3958 xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2) 3959 g035(iz) = rate*0.42**xpo 3960 end do 3961 3962 nb_reaction_3 = nb_reaction_3 + 1 3963 v_3(:,nb_reaction_3) = g035(:) 3964 3965 !--- g036: osso_trans + co2 -> so + so + co2 3966 3967 ! Egan et al., 2025 3968 3969 deq(:) = 1.73e-27*exp(15395./t(:)) 3970 g036(:) = g035(:)/(deq(:)*conc(:)) 3971 3972 nb_phot = nb_phot + 1 3973 v_phot(:,nb_phot) = g036(:)*conc(:) 3974 3975 !--- g037: so + so + co2 -> s2o2_cyc + co2 3976 3977 ! Egan et al., 2025 3978 3979 do iz = 1,nz 3980 ak0 = 2.5*1.70e-32*(t(iz)/298.)**(-3.38) 3981 ak1 = 1.1e-10*(t(iz)/298.)**0.167 3982 rate = (ak0*conc(iz))/(1. + ak0*conc(iz)/ak1) 3983 xpo = 1./(1. + alog10((ak0*conc(iz))/ak1)**2) 3984 g037(iz) = rate*0.42**xpo 3985 end do 3986 3987 nb_reaction_3 = nb_reaction_3 + 1 3988 v_3(:,nb_reaction_3) = g037(:) 3989 3990 !--- g038: s2o2_cyc + co2 -> so + so + co2 3991 3992 ! Egan et al., 2025 3993 3994 deq(:) = 6.75e-28*exp(13392./t(:)) 3995 g038(:) = g037(:)/(deq(:)*conc(:)) 3996 3997 nb_phot = nb_phot + 1 3998 v_phot(:,nb_phot) = g038(:)*conc(:) 3999 4000 !--- g040: osso_cis + o -> so2 + so 4001 4002 ! Egan et al., 2025 4003 4004 g040(:) = 1.10e-10*(t(:)/298.)**0.167 4005 4006 nb_reaction_4 = nb_reaction_4 + 1 4007 v_4(:,nb_reaction_4) = g040(:) 4008 4009 !--- g042: osso_trans + o -> so2 + so 4010 4011 ! Egan et al., 2025 4012 4013 g042(:) = 1.10e-10*(t(:)/298.)**0.167 4014 4015 nb_reaction_4 = nb_reaction_4 + 1 4016 v_4(:,nb_reaction_4) = g042(:) 4017 4018 !--- g044: s2o2_cyc + o -> so2 + so 4019 4020 ! Egan et al., 2025 4021 4022 g044(:) = 1.10e-10*(t(:)/298.)**0.167 4023 4024 nb_reaction_4 = nb_reaction_4 + 1 4025 v_4(:,nb_reaction_4) = g044(:) 4026 3912 4027 !---------------------------------------------------------------------- 3913 4028 ! heterogeneous chemistry … … 5117 5232 i_v=i_v+1 5118 5233 !=============================== 5119 !--- 23 g016 s2o2 + co2 -> 2so + co25120 !===============================5121 rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev)5122 rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt5123 i_react=i_react+15124 i_v=i_v+15125 !===============================5126 5234 !--- 24 g023 s2 + co2 -> 2s + co2 5127 5235 !=============================== … … 5237 5345 !--- 41 g015: so + so + co2 -> s2o2 + co2 5238 5346 !=============================== 5239 5240 5241 5242 5243 5347 ! rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) & 5348 ! *traceur(i_lev,i_so)*concentration(i_lev) 5349 ! rate_night(i_lev,i_react) = rate_night(i_lev,i_react) + 2.*rate_local/nbr_pdt 5350 ! i_react=i_react+1 5351 ! i_v=i_v+1 5244 5352 !=============================== 5245 5353 !--- 42 g022: s + s + co2 -> s2 + co2 … … 6094 6202 ! 23 s2o2 + co2 -> 2so + co2 6095 6203 !=============================== 6096 6097 6098 6099 6204 ! rate_local = vphot(i_lev,23)*traceur(i_lev,i_s2o2)*concentration(i_lev) 6205 ! rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt 6206 ! i_react=i_react+1 6207 ! i_v=i_v+1 6100 6208 !=============================== 6101 6209 ! 24 s2 + co2 -> 2s + co2 … … 6222 6330 !--- 41 g015: so + so + co2 -> s2o2 + co2 6223 6331 !=============================== 6224 6225 6226 6227 6228 6332 ! rate_local = v3(i_lev,i_v)*traceur(i_lev,i_so)*concentration(i_lev) & 6333 ! *traceur(i_lev,i_so)*concentration(i_lev) 6334 ! rate_day(i_lev,i_react) = rate_day(i_lev,i_react) + 2.*rate_local/nbr_pdt 6335 ! i_react=i_react+1 6336 ! i_v=i_v+1 6229 6337 !=============================== 6230 6338 !--- 42 g022: s + s + co2 -> s2 + co2 -
trunk/LMDZ.VENUS/libf/phyvenus/photolysis_mod.F90
r3597 r3689 5 5 ! photolysis 6 6 7 integer, save :: nphot = 2 4! number of photolysis7 integer, save :: nphot = 27 ! number of photolysis 8 8 9 9 !$OMP THREADPRIVATE(nphot) 10 10 11 integer, parameter :: nabs = 2 1! number of absorbing gases11 integer, parameter :: nabs = 24 ! number of absorbing gases 12 12 13 13 ! spectral grid … … 39 39 real, dimension(nw), save :: xscl2 ! cl2 absorption cross-section (cm2) 40 40 real, dimension(nw), save :: xshocl ! hocl absorption cross-section (cm2) 41 real, dimension(nw), save :: xsclo ! clo absorption cross-section (cm2) 41 42 real, dimension(nw), save :: xsso2_200, xsso2_298, xsso2_360 ! so2 absorption cross-section (cm2) 42 43 real, dimension(nw), save :: xsso_150, xsso_250 ! so absorption cross-section (cm2) 43 44 real, dimension(nw), save :: xsso3 ! so3 absorption cross-section (cm2) 44 real, dimension(nw), save :: xsclo ! clo absorption cross-section (cm2) 45 real, dimension(nw), save :: xss2 ! s2 absorption cross-section (cm2) 46 real, dimension(nw), save :: xsosso_cis ! osso_cis absorption cross-section (cm2) 47 real, dimension(nw), save :: xsosso_trans ! osso_trans absorption cross-section (cm2) 48 real, dimension(nw), save :: xss2o2_cyc ! s2o2_cyc absorption cross-section (cm2) 45 49 real, dimension(nw), save :: xsocs ! cos absorption cross-section (cm2) 46 real, dimension(nw), save :: xss2 ! s2 absorption cross-section (cm2)47 50 real, dimension(nw), save :: xscocl2 ! cocl2 absorption cross-section (cm2) 48 51 real, dimension(nw), save :: xsh2so4 ! h2so4 absorption cross-section (cm2) … … 117 120 call rdxshocl(nw,wl,xshocl) 118 121 122 ! read and grid clo cross-sections 123 124 call rdxsclo(nw,wl,xsclo) 125 119 126 ! read and grid so2 cross-sections 120 127 … … 129 136 call rdxsso3(nw,wl,xsso3) 130 137 131 ! read and grid clo cross-sections 132 133 call rdxsclo(nw,wl,xsclo) 138 ! read and grid s2 cross-sections 139 140 call rdxss2(nw,wl,xss2) 141 142 ! read and grid osso cross-sections 143 144 call rdxsosso(nw,wl,wc,xsosso_cis,xsosso_trans,xss2o2_cyc) 134 145 135 146 ! read and grid ocs cross-sections … … 141 152 call rdxscocl2(nw,wl,xscocl2) 142 153 143 ! read and grid s2 cross-sections144 145 call rdxss2(nw,wl,xss2)146 147 154 ! read and grid h2so4 cross-sections 148 155 … … 151 158 ! read and grid h2 cross-sections 152 159 153 call rdxsh2(nw,wl, wc,xsh2,yieldh2)160 call rdxsh2(nw,wl,xsh2,yieldh2) 154 161 155 162 ! read and grid no cross-sections … … 2573 2580 !============================================================================== 2574 2581 2582 subroutine rdxsosso(nw,wl,wc,yg1,yg2,yg3) 2583 2584 !-----------------------------------------------------------------------------* 2585 != PURPOSE: =* 2586 != read SO dimer absorption cross-sections =* 2587 != =* 2588 != OSSO_cis + hv -> SO + SO =* 2589 != OSSO_trans + hv -> SO + SO =* 2590 != S2O2_cyc + hv -> SO + SO =* 2591 != =* 2592 != Theoritical Cross section: from Egan et al. GRL, 2025 =* 2593 != Quantum yield: assumed to be unity =* 2594 !-----------------------------------------------------------------------------* 2595 != PARAMETERS: =* 2596 != NW - INTEGER, number of specified intervals + 1 in working (I)=* 2597 != wavelength grid =* 2598 != WL - REAL, vector of lower limits of wavelength intervals in (I)=* 2599 != working wavelength grid =* 2600 !-----------------------------------------------------------------------------* 2601 != EDIT HISTORY: =* 2602 != 2025/02/14 Original, Franck Lefevre =* 2603 !-----------------------------------------------------------------------------* 2604 2605 USE mod_phys_lmdz_para, ONLY: is_master 2606 USE mod_phys_lmdz_transfert_para, ONLY: bcast 2607 2608 implicit none 2609 2610 ! input 2611 2612 integer :: nw ! number of wavelength grid points 2613 real, dimension(nw) :: wl, wc ! lower and central wavelength for each interval 2614 2615 ! output 2616 2617 real, dimension(nw) :: yg1 ! osso_cis cross-sections (cm2) 2618 real, dimension(nw) :: yg2 ! osso_trans cross-sections (cm2) 2619 real, dimension(nw) :: yg3 ! s2o2_cyc cross-sections (cm2) 2620 2621 ! local 2622 2623 integer, parameter :: kdata = 1000 2624 integer :: i, iw, n, n1, n2, n3, ierr 2625 integer :: kin 2626 real, parameter :: deltax = 1.e-4 2627 real, dimension(kdata) :: x1, y1, x2, y2, x3, y3 2628 real :: qy, lambda 2629 character(len = 100) :: fil 2630 2631 !**** cross sections from Egan et al., 2025 2632 2633 fil = 'cross_sections/OSSO_cross_sections_formatted.txt' 2634 print*, 'OSSO cross-section: ', fil 2635 2636 if (is_master) then 2637 2638 kin = 10 2639 open(kin, file=fil, status='old', iostat=ierr) 2640 2641 n = 600 2642 do i = 1,9 2643 read(kin,*) 2644 end do 2645 do i = 1,n 2646 read(kin,*) x1(i), y1(i), x2(i), y2(i), x3(i), y3(i) 2647 end do 2648 close(kin) 2649 2650 n1 = n 2651 call addpnt(x1,y1,kdata,n1,x1(1)*(1.-deltax),0.) 2652 call addpnt(x1,y1,kdata,n1, 0.,0.) 2653 call addpnt(x1,y1,kdata,n1,x1(n1)*(1.+deltax),0.) 2654 call addpnt(x1,y1,kdata,n1, 1E38,0.) 2655 call inter2(nw,wl,yg1,n1,x1,y1,ierr) 2656 2657 n2 = n 2658 call addpnt(x2,y2,kdata,n2,x2(1)*(1.-deltax),0.) 2659 call addpnt(x2,y2,kdata,n2, 0.,0.) 2660 call addpnt(x2,y2,kdata,n2,x2(n2)*(1.+deltax),0.) 2661 call addpnt(x2,y2,kdata,n2, 1E38,0.) 2662 call inter2(nw,wl,yg2,n2,x2,y2,ierr) 2663 2664 n3 = n 2665 call addpnt(x3,y3,kdata,n3,x3(1)*(1.-deltax),0.) 2666 call addpnt(x3,y3,kdata,n3, 0.,0.) 2667 call addpnt(x3,y3,kdata,n3,x3(n3)*(1.+deltax),0.) 2668 call addpnt(x3,y3,kdata,n3, 1E38,0.) 2669 call inter2(nw,wl,yg3,n3,x3,y3,ierr) 2670 2671 if (ierr /= 0) THEN 2672 write(*,*) ierr, fil 2673 stop 2674 end if 2675 2676 !**** quantum yield assumed to be unity 2677 2678 qy = 1. 2679 2680 do iw = 1,nw - 1 2681 lambda = wc(iw) 2682 if (lambda < 842.) then 2683 yg1(iw) = qy*yg1(iw) 2684 else 2685 yg1(iw) = 0. 2686 end if 2687 if (lambda < 938.) then 2688 yg2(iw) = qy*yg2(iw) 2689 else 2690 yg2(iw) = 0. 2691 end if 2692 yg3(iw) = qy*yg3(iw) 2693 ! write(55,'(f8.3,3e12.4)') lambda, yg1(iw), yg2(iw), yg3(iw) 2694 end do 2695 2696 end if ! is_master 2697 2698 call bcast(yg1) 2699 call bcast(yg2) 2700 call bcast(yg3) 2701 2702 end subroutine rdxsosso 2703 2704 !============================================================================== 2705 2575 2706 subroutine rdxsclo(nw, wl, yg) 2576 2707 … … 2869 3000 !============================================================================== 2870 3001 2871 subroutine rdxsh2(nw, wl, wc,yg, yieldh2)3002 subroutine rdxsh2(nw, wl, yg, yieldh2) 2872 3003 2873 3004 !-----------------------------------------------------------------------------* … … 2888 3019 2889 3020 integer :: nw ! number of wavelength grid points 2890 real, dimension(nw) :: wl , wc! lower and central wavelength for each interval3021 real, dimension(nw) :: wl ! lower and central wavelength for each interval 2891 3022 2892 3023 ! output -
trunk/LMDZ.VENUS/libf/phyvenus/photolysis_online.F
r3569 r3689 3 3 subroutine photolysis_online(nlayer, nb_phot_max, 4 4 $ alt, press, temp, mmean, 5 $ i_co2, i_co, i_o, i_o1d, i_o2, i_o3,i_h2, 6 $ i_oh, i_ho2, i_h2o2, i_h2o,i_h,i_hcl, 7 $ i_cl2, i_hocl, i_so2, i_so, i_so3, i_s2, 8 $ i_clo, i_ocs, i_cocl2, i_h2so4, i_cl, 9 $ i_no2, i_no, i_n2, i_n2d, nesp, rm, 10 $ sza, dist_sol, v_phot) 5 $ i_co2, i_co, i_o, i_o1d, i_o2, i_o3, i_h2, 6 $ i_oh, i_ho2, i_h2o2, i_h2o, i_h, i_hcl, 7 $ i_cl, i_clo, i_cl2, i_hocl, i_so2, i_so, i_so3, i_s2, 8 $ i_osso_cis, i_osso_trans, i_s2o2_cyc, 9 $ i_ocs, i_cocl2, i_h2so4, 10 $ i_no2, i_no, i_n2, i_n2d, 11 & nesp, rm, sza, dist_sol, v_phot) 11 12 12 13 use photolysis_mod … … 19 20 integer, intent(in) :: nlayer 20 21 integer, intent(in) :: nb_phot_max 21 integer, intent(in) :: i_co2, i_co, i_o, i_o1d, i_o2, i_o3, 22 integer, intent(in) :: i_co2, i_co, i_o, i_o1d, i_o2, i_o3, i_h2, 22 23 $ i_oh, i_ho2, i_h2o2, i_h2o, i_h, i_hcl, 23 $ i_cl2, i_hocl, i_so2, i_so, i_so3,i_s2, 24 $ i_clo,i_ocs, i_cl, i_cocl2, i_h2so4, 25 $ i_no2,i_no, i_n2, i_n2d, i_h2 24 $ i_cl, i_clo, i_cl2, i_hocl, i_so2, i_so, 25 $ i_so3, i_s2, 26 $ i_osso_cis, i_osso_trans, i_s2o2_cyc, 27 $ i_ocs, i_cocl2, i_h2so4, 28 $ i_no2, i_no, i_n2, i_n2d 26 29 27 30 real, dimension(nlayer), intent(in) :: press, temp, mmean ! pressure (hpa)/temperature (k)/mean molecular mass (g.mol-1) … … 67 70 68 71 integer :: j_o2_o, j_o2_o1d, j_co2_o, j_co2_o1d, j_o3_o1d, j_o3_o, 69 $ j_h2o, j_h2o2, j_ho2, j_h, j_hcl, j_cl2, j_hocl, j_so2, 70 $ j_so, j_so3,j_s2, j_clo, j_ocs, j_cocl2, j_h2so4, 72 $ j_h2o, j_h2o2, j_ho2, j_h, j_hcl, j_cl2, j_hocl, j_clo, 73 $ j_so2, j_so, j_so3, j_s2, j_osso_cis, j_osso_trans, 74 $ j_s2o2_cyc, j_ocs, j_cocl2, j_h2so4, 71 75 $ j_no2, j_no, j_n2, j_h2 72 76 73 77 integer :: a_o2, a_co2, a_o3, a_h2o, a_h2o2, a_ho2, a_hcl, a_cl2, 74 $ a_hocl, a_so2, a_so, a_so3, a_s2, a_clo, a_ocs, 78 $ a_hocl, a_clo, a_so2, a_so, a_so3, a_s2, a_osso_cis, 79 $ a_osso_trans, a_s2o2_cyc, a_ocs, 75 80 $ a_cocl2, a_h2so4, a_no2, a_no, a_n2, a_h2 81 76 82 integer :: nlev, i, ilay, ilev, iw, ialt 77 83 real :: deltaj … … 80 86 ! absorbing gas numbering 81 87 82 a_o2 = 1 ! o2 83 a_co2 = 2 ! co2 84 a_o3 = 3 ! o3 85 a_h2 = 4 ! h2 86 a_h2o = 5 ! h2o 87 a_h2o2 = 6 ! h2o2 88 a_ho2 = 7 ! ho2 89 a_hcl = 8 ! hcl 90 a_cl2 = 9 ! cl2 91 a_hocl = 10 ! hocl 92 a_so2 = 11 ! so2 93 a_so = 12 ! so 94 a_so3 = 13 ! so3 95 a_s2 = 14 ! s2 96 a_clo = 15 ! clo 97 a_ocs = 16 ! ocs 98 a_cocl2 = 17 ! cocl2 99 a_h2so4 = 18 ! h2so4 100 a_no2 = 19 ! no2 101 a_no = 20 ! no 102 a_n2 = 21 ! n2 88 a_o2 = 1 ! o2 89 a_co2 = 2 ! co2 90 a_o3 = 3 ! o3 91 a_h2 = 4 ! h2 92 a_h2o = 5 ! h2o 93 a_h2o2 = 6 ! h2o2 94 a_ho2 = 7 ! ho2 95 a_hcl = 8 ! hcl 96 a_cl2 = 9 ! cl2 97 a_hocl = 10 ! hocl 98 a_clo = 11 ! clo 99 a_so2 = 12 ! so2 100 a_so = 13 ! so 101 a_so3 = 14 ! so3 102 a_s2 = 15 ! s2 103 a_osso_cis = 16 ! osso_cis 104 a_osso_trans = 17 ! osso_trans 105 a_s2o2_cyc = 18 ! s2o2_cyc 106 a_ocs = 19 ! ocs 107 a_cocl2 = 20 ! cocl2 108 a_h2so4 = 21 ! h2so4 109 a_no2 = 22 ! no2 110 a_no = 23 ! no 111 a_n2 = 24 ! n2 103 112 104 113 ! photodissociation rates numbering. 105 114 ! photodissociations must be ordered the same way in subroutine "indice" 106 115 107 j_o2_o = 1 ! o2 + hv -> o + o 108 j_o2_o1d = 2 ! o2 + hv -> o + o(1d) 109 j_co2_o = 3 ! co2 + hv -> co + o 110 j_co2_o1d = 4 ! co2 + hv -> co + o(1d) 111 j_o3_o1d = 5 ! o3 + hv -> o2 + o(1d) 112 j_o3_o = 6 ! o3 + hv -> o2 + o 113 j_h2 = 7 ! h2 + hv -> h + h 114 j_h2o = 8 ! h2o + hv -> h + oh 115 j_ho2 = 9 ! ho2 + hv -> oh + o 116 j_h2o2 = 10 ! h2o2 + hv -> oh + oh 117 j_hcl = 11 ! hcl + hv -> h + cl 118 j_cl2 = 12 ! cl2 + hv -> cl + cl 119 j_hocl = 13 ! hocl + hv -> oh + cl 120 j_so2 = 14 ! so2 + hv -> so + o 121 j_so = 15 ! so + hv -> s + o 122 j_so3 = 16 ! so3 + hv -> so2 + o 123 j_s2 = 17 ! s2 + hv -> s + s 124 j_clo = 18 ! clo + hv -> cl + o 125 j_ocs = 19 ! ocs + hv -> co + s 126 j_cocl2 = 20 ! cocl2 + hv -> 2cl + co 127 j_h2so4 = 21 ! h2so4 + hv -> so3 + h2o 128 j_no2 = 22 ! no2 + hv -> no + o 129 j_no = 23 ! no + hv -> n + o 130 j_n2 = 24 ! n2 + hv -> n(2d) + n 131 132 ! j_hdo_od = ! hdo + hv -> od + h 133 ! j_hdo_d = ! hdo + hv -> d + oh 116 j_o2_o = 1 ! o2 + hv -> o + o 117 j_o2_o1d = 2 ! o2 + hv -> o + o(1d) 118 j_co2_o = 3 ! co2 + hv -> co + o 119 j_co2_o1d = 4 ! co2 + hv -> co + o(1d) 120 j_o3_o1d = 5 ! o3 + hv -> o2 + o(1d) 121 j_o3_o = 6 ! o3 + hv -> o2 + o 122 j_h2 = 7 ! h2 + hv -> h + h 123 j_h2o = 8 ! h2o + hv -> h + oh 124 j_ho2 = 9 ! ho2 + hv -> oh + o 125 j_h2o2 = 10 ! h2o2 + hv -> oh + oh 126 j_hcl = 11 ! hcl + hv -> h + cl 127 j_cl2 = 12 ! cl2 + hv -> cl + cl 128 j_hocl = 13 ! hocl + hv -> oh + cl 129 j_clo = 14 ! clo + hv -> cl + o 130 j_so2 = 15 ! so2 + hv -> so + o 131 j_so = 16 ! so + hv -> s + o 132 j_so3 = 17 ! so3 + hv -> so2 + o 133 j_s2 = 18 ! s2 + hv -> s + s 134 j_osso_cis = 19 ! osso_cis + hv -> so + so 135 j_osso_trans = 20 ! osso_trans + hv -> so + so 136 j_s2o2_cyc = 21 ! s2o2_cyc + hv -> so + so 137 j_ocs = 22 ! ocs + hv -> co + s 138 j_cocl2 = 23 ! cocl2 + hv -> 2cl + co 139 j_h2so4 = 24 ! h2so4 + hv -> so3 + h2o 140 j_no2 = 25 ! no2 + hv -> no + o 141 j_no = 26 ! no + hv -> n + o 142 j_n2 = 27 ! n2 + hv -> n(2d) + n 143 144 ! j_hdo_od = ! hdo + hv -> od + h 145 ! j_hdo_d = ! hdo + hv -> d + oh 134 146 135 147 !==== define working vertical grid for the uv radiative code … … 215 227 dtgas(ilay,iw,a_hocl) = colinc(ilay)*rm(ilay,i_hocl) 216 228 $ *xshocl(iw) 229 dtgas(ilay,iw,a_clo) = colinc(ilay)*rm(ilay,i_clo)*xsclo(iw) 217 230 dtgas(ilay,iw,a_so3) = colinc(ilay)*rm(ilay,i_so3)*xsso3(iw) 218 231 dtgas(ilay,iw,a_s2) = colinc(ilay)*rm(ilay,i_s2)*xss2(iw) 219 dtgas(ilay,iw,a_clo) = colinc(ilay)*rm(ilay,i_clo)*xsclo(iw) 232 dtgas(ilay,iw,a_osso_cis) = 233 $ colinc(ilay)*rm(ilay,i_osso_cis)*xsosso_cis(iw) 234 dtgas(ilay,iw,a_osso_trans) = 235 $ colinc(ilay)*rm(ilay,i_osso_trans)*xsosso_trans(iw) 236 dtgas(ilay,iw,a_s2o2_cyc) = 237 $ colinc(ilay)*rm(ilay,i_s2o2_cyc)*xss2o2_cyc(iw) 220 238 dtgas(ilay,iw,a_ocs) = colinc(ilay)*rm(ilay,i_ocs)*xsocs(iw) 221 239 dtgas(ilay,iw,a_cocl2) = colinc(ilay)*rm(ilay,i_cocl2) … … 250 268 sj(ilay,iw,j_cl2) = xscl2(iw) ! cl2 251 269 sj(ilay,iw,j_hocl) = xshocl(iw) ! hocl 270 sj(ilay,iw,j_clo) = xsclo(iw) ! clo 252 271 sj(ilay,iw,j_s2) = xss2(iw) ! s2 253 272 sj(ilay,iw,j_so3) = xsso3(iw) ! so3 254 sj(ilay,iw,j_clo) = xsclo(iw) ! clo 273 sj(ilay,iw,j_osso_cis) = xsosso_cis(iw) ! osso_cis 274 sj(ilay,iw,j_osso_trans) = xsosso_trans(iw) ! osso_trans 275 sj(ilay,iw,j_s2o2_cyc) = xss2o2_cyc(iw) ! s2o2_cyc 255 276 sj(ilay,iw,j_ocs) = xsocs(iw) ! ocs 256 277 sj(ilay,iw,j_cocl2) = xscocl2(iw) ! cocl2 … … 757 778 $ /(360. - 298.)*(temp - 298.) 758 779 end if 759 ! 219 nm photolysis t reshold780 ! 219 nm photolysis threshold 760 781 if (wc(iw) <= 219.) then 761 782 sj(ilev,iw,j_so2) = xsso2 -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac_chimie.F
r3323 r3689 95 95 !!! If the values are changed there, the same has to be done here !!! 96 96 97 ! integer,parameter :: i_co2=198 ! integer,parameter :: i_n2=1399 ! integer,parameter :: i_n=14100 ! integer,parameter :: i_o=3101 ! integer,parameter :: i_co=4102 103 97 integer,parameter :: ix_co2 = 1 104 98 integer,parameter :: ix_co = 2 … … 119 113 integer,parameter :: ix_n2 = 17 120 114 121 ! NEED TO BE THE SAME THANIN EUVHEAT.F90122 integer,parameter :: nespeuv =17 ! Number of species considered (11, 12 or 17 (with nitrogen))115 ! NEED TO BE THE SAME AS IN EUVHEAT.F90 116 integer,parameter :: nespeuv = 17 ! Number of species considered (11, 12 or 17 (with nitrogen)) 123 117 124 118 real :: vmr_dens_euv(nlon,nlev,nespeuv) ! local species density for EUV heating … … 141 135 142 136 if (ok_chem) then 137 143 138 ! set number of reactions, depending on ion chemistry or not 139 144 140 nb_reaction_4_ion = 64 145 141 !nb_reaction_4_deut = 35 146 142 147 ! Default numbers if no ion and no deuterium chemistry included143 ! default numbers if no ion and no deuterium chemistry 148 144 149 145 nb_reaction_4_max = 98 ! set number of bimolecular reactions 150 nb_reaction_3_max = 12 ! set number of quadratic reactions 151 nquench = 13 ! set number of quenching + heterogeneous 146 nb_reaction_3_max = 14 ! set number of quadratic reactions 147 nquench = 15 ! set number of first-order reactions: 148 ! quenching 149 ! thermal dissociation 150 ! heterogeneous 152 151 nphotion = 0 ! set number of photoionizations 153 152 154 153 if (ok_ionchem) then 155 nb_reaction_4_max = nb_reaction_4_max +nb_reaction_4_ion156 nphotion = 18! set number of photoionizations154 nb_reaction_4_max = nb_reaction_4_max + nb_reaction_4_ion 155 nphotion = 18 ! set number of photoionizations 157 156 endif 157 158 158 !if(deutchem) then 159 159 ! nb_reaction_4_max = nb_reaction_4_max + nb_reaction_4_deut 160 160 !end if 161 161 162 ! nb_phot_max is the total number of processes that are treated163 ! numerically as a photolysis:162 ! nb_phot_max is the total number of processes that are treated 163 ! numerically as a photolysis (first-order reaction): 164 164 165 165 nb_phot_max = nphot + nphotion + nquench … … 171 171 if (reinit_trac .and. ok_chem) then 172 172 173 !!! in this reinitialisation, trac is VOLUME mixing ratio 174 ! ONLY SO2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 175 ! convert mass to volume mixing ratio 173 ! convert mass to volume mixing ratio 176 174 do iq = 1,nqmax - nmicro 177 175 trac(:,:,iq) = trac(:,:,iq)*mmean(:,:)/m_tr(iq) … … 181 179 182 180 if (i_so2 /= 0) then 183 trac(:,:,i_so2) = 0. 184 trac(:,1:22,i_so2) = 10.e-6 185 186 ! AL TRACERS!!!!!!!!!!!!!!!!!!!!!!!!!!!! 187 ! print*, "Tracers are re-initialised" 188 ! trac(:,:,:) = 1.0e-30 189 190 ! if ((i_ocs /= 0) .and. (i_co /= 0) .and. (i_hcl /= 0) 191 ! $ .and. (i_so2 /= 0) .and. (i_h2o /= 0) 192 ! $ .and. (i_n2 /= 0) .and. (i_co2 /= 0)) then 193 194 ! trac(:,1:22,i_ocs) = 3.e-6 195 ! trac(:,1:22,i_co) = 25.e-6 196 ! trac(:,:,i_hcl) = 0.4e-6 197 ! trac(:,1:22,i_so2) = 7.e-6 198 ! trac(:,1:22,i_h2o) = 30.e-6 199 ! trac(:,:,i_n2) = 0.35e-1 200 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 181 trac(:,25:,i_so2) = 100.e-9 182 trac(:,1:24,i_so2) = 10.e-6 183 trac(:,25:,i_h2o) = 1.e-6 184 trac(:,1:24,i_h2o) = 30.e-6 185 186 trac(:,:,i_osso_cis) = 0. 187 trac(:,:,i_osso_trans) = 0. 188 trac(:,:,i_s2o2_cyc) = 0. 189 190 ! AL TRACERS!!!!!!!!!!!!!!!!!!!!!!!!!!!! 191 ! print*, "Tracers are re-initialised" 192 ! trac(:,:,:) = 1.0e-30 193 194 ! if ((i_ocs /= 0) .and. (i_co /= 0) .and. (i_hcl /= 0) 195 ! $ .and. (i_so2 /= 0) .and. (i_h2o /= 0) 196 ! $ .and. (i_n2 /= 0) .and. (i_co2 /= 0)) then 197 198 ! trac(:,1:22,i_ocs) = 3.e-6 199 ! trac(:,1:22,i_co) = 25.e-6 200 ! trac(:,:,i_hcl) = 0.4e-6 201 ! trac(:,1:22,i_so2) = 7.e-6 202 ! trac(:,1:22,i_h2o) = 30.e-6 203 ! trac(:,:,i_n2) = 0.35e-1 204 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 201 205 202 !ensure that sum of mixing ratios = 1206 ! ensure that sum of mixing ratios = 1 203 207 204 208 trac_sum(:,:) = 0. … … 210 214 end do 211 215 212 !initialise co2216 ! initialise co2 213 217 214 218 trac(:,:,i_co2) = 1. - trac_sum(:,:) … … 219 223 end if 220 224 221 !update mmean225 ! update mmean 222 226 223 227 mmean(:,:) = 0. … … 227 231 rnew(:,:) = 8.314/mmean(:,:)*1.e3 ! J/kg K 228 232 229 !convert volume to mass mixing ratio233 ! convert volume to mass mixing ratio 230 234 231 235 do iq = 1,nqmax - nmicro … … 408 412 409 413 ! electron temperature 414 410 415 do ilev = 1, nlev 411 t_elec(ilev) = temp_elect(zlocal(ilev),temp(ilon,ilev),412 $ 416 t_elec(ilev) = temp_elect(zlocal(ilev),temp(ilon,ilev), 417 $ sza_local,t_elec_origin) 413 418 end do 414 419
Note: See TracChangeset
for help on using the changeset viewer.