Changeset 5116 for LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer
- Timestamp:
- Jul 24, 2024, 2:54:37 PM (4 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/miecalc_aer.F90
r5112 r5116 21 21 USE dimphy 22 22 USE lmdz_yomcst , ONLY: RG, RPI 23 USE lmdz_phys_para, only: gather, scatter, bcast23 USE lmdz_phys_para, ONLY: gather, scatter, bcast 24 24 USE lmdz_grid_phy, ONLY: klon_glo 25 25 USE lmdz_phys_mpi_data, ONLY: is_mpi_root -
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/strataer_emiss_mod.F90
r5112 r5116 50 50 ALLOCATE(m_aer_emiss_vol(nErupt, nAerErupt)) 51 51 m_aer_emiss_vol = 0. ; m_sulf_emiss_vol = 0. 52 IF (ok_qemiss) then52 IF (ok_qemiss) THEN 53 53 ALLOCATE(m_H2O_emiss_vol(nErupt)) 54 54 ALLOCATE(m_H2O_emiss_vol_daily(nErupt)) … … 88 88 IF (flag_emit==1) THEN 89 89 CALL getin_p('m_sulf_emiss_vol', m_sulf_emiss_vol) 90 if (ok_qemiss) then90 if (ok_qemiss) THEN 91 91 CALL getin_p('m_H2O_emiss_vol', m_H2O_emiss_vol) 92 92 endif … … 154 154 !============= Print params ============= 155 155 IF (is_master) THEN 156 IF (nErupt > 0) then156 IF (nErupt > 0) THEN 157 157 if (flag_emit == 1 .OR. flag_emit == 4) THEN 158 158 WRITE(lunout, *) 'IN STRATAER nErupt: ', nErupt … … 172 172 WRITE(lunout, *) 'IN STRATAEREMISS : m_sulf_emiss_vol', m_sulf_emiss_vol 173 173 WRITE(lunout, *) 'IN STRATAER : m_aer_emiss_vol', m_aer_emiss_vol 174 IF (ok_qemiss) then174 IF (ok_qemiss) THEN 175 175 WRITE(lunout, *) 'IN STRATAEREMISS : m_H2O_emiss_vol', m_H2O_emiss_vol 176 176 ENDIF -
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/stratemit.F90
r5112 r5116 95 95 CALL STRATDISTRIB(altLMDz,altemiss,sigma_alt,f_lay_emiss) 96 96 97 IF (flag_emit==3) then97 IF (flag_emit==3) THEN 98 98 theta=(sin(theta_max/180.*RPI)-sin(theta_min/180.*RPI))/ & 99 99 (sin(xlat_max_sai/180.*RPI)-sin(xlat_min_sai/180.*RPI)) -
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/sulfate_aer_mod.F90
r5113 r5116 93 93 ! *** H2SO4-H2O curved surface - Kelvin effect factor *** 94 94 ! wet radius (m) (RRSI(IK) in [cm]) 95 if (f_r_wetB(ilon,ilev,IK) > 1.0) then95 if (f_r_wetB(ilon,ilev,IK) > 1.0) THEN 96 96 radwet = 1.e-2*RRSI(IK)*f_r_wetB(ilon,ilev,IK) 97 97 else 98 ! H2SO4-H2O flat surface, onlyon the first timestep98 ! H2SO4-H2O flat surface, ONLY on the first timestep 99 99 radwet = 1.e-2*RRSI(IK)*f_r_wet(ilon,ilev) 100 100 endif … … 787 787 788 788 789 end functionpsh2so4789 END FUNCTION psh2so4 790 790 !----------------------------------------------------------------------- 791 791 real function ndsh2so4(T) result(ndsh2so4_out) … … 794 794 IMPLICIT NONE 795 795 real, intent(in) :: T 796 real:: presat796 REAL :: presat 797 797 798 798 ! Boltzmann constant ( 1.38065e-23 J/K = m2⋅kg/(s2⋅K) ) … … 806 806 807 807 808 end functionndsh2so4808 END FUNCTION ndsh2so4 809 809 !----------------------------------------------------------------------- 810 810 real function psh2o(T) result(psh2o_out) … … 814 814 real, intent(in) :: T 815 815 816 if(T>229.) then816 IF(T>229.) THEN 817 817 ! Preining et al., 1981 (from Kulmala et al., 1998) 818 818 ! saturation vapor pressure (N/m2 = 1 Pa = 1 kg/(m·s2)) … … 833 833 834 834 835 end functionpsh2o835 END FUNCTION psh2o 836 836 !----------------------------------------------------------------------- 837 837 real function density(T,so4mfrac) result(density_out) … … 867 867 c6=-7.458060e-4, & 868 868 c7= 2.581390e-4 869 real:: a,b,c,so4m2,so4m3,so4m4,so4m5,so4m6869 REAL :: a,b,c,so4m2,so4m3,so4m4,so4m5,so4m6 870 870 871 871 so4m2=so4mfrac*so4mfrac … … 884 884 885 885 886 end functiondensity886 END FUNCTION density 887 887 !----------------------------------------------------------------------- 888 888 real function surftension(T,so4frac) result(surftension_out) … … 893 893 IMPLICIT NONE 894 894 real,intent(in) :: T, so4frac 895 real:: a,b,so4mfrac,so4m2,so4m3,so4m4,so4m5,so4sig895 REAL :: a,b,so4mfrac,so4m2,so4m3,so4m4,so4m5,so4sig 896 896 real, parameter :: & 897 897 a1= 0.11864, & … … 924 924 925 925 926 end functionsurftension926 END FUNCTION surftension 927 927 !----------------------------------------------------------------------- 928 928 real function wph2so4(pph2o,T) result(wph2so4_out) … … 944 944 real, intent(in) :: pph2o, T 945 945 946 real:: aw, rh, y1, y2, sulfmolal946 REAL :: aw, rh, y1, y2, sulfmolal 947 947 948 948 ! psh2o(T): equilibrium H2O pressure over pure liquid water (Pa) … … 955 955 ! composition 956 956 ! calculation of h2so4 molality 957 if(aw <= 0.05 .and. aw > 0.) then957 IF(aw <= 0.05 .and. aw > 0.) THEN 958 958 y1=12.372089320*aw**(-0.16125516114) & 959 959 -30.490657554*aw -2.1133114241 960 960 y2=13.455394705*aw**(-0.19213122550) & 961 961 -34.285174607*aw -1.7620073078 962 else if(aw <= 0.85 .and. aw > 0.05) then962 else IF(aw <= 0.85 .and. aw > 0.05) THEN 963 963 y1=11.820654354*aw**(-0.20786404244) & 964 964 -4.8073063730*aw -5.1727540348 … … 999 999 1000 1000 1001 end functionwph2so41001 END FUNCTION wph2so4 1002 1002 !----------------------------------------------------------------------- 1003 1003 real function solh2so4(T,xa) result(solh2so4_out) … … 1007 1007 real, intent(in) :: T, xa ! T(K) xa(H2SO4 mass fraction) 1008 1008 1009 real:: xw, a12,b12, cacta, presat1009 REAL :: xw, a12,b12, cacta, presat 1010 1010 1011 1011 xw=1.0-xa … … 1021 1021 1022 1022 1023 end functionsolh2so41023 END FUNCTION solh2so4 1024 1024 !----------------------------------------------------------------------- 1025 1025 real function rpmvh2so4(T,ws) result(rpmvh2so4_out) … … 1035 1035 -0.2315332,1.60074E-03,-2.5827835E-06/) 1036 1036 1037 real:: w1037 REAL :: w 1038 1038 1039 1039 w=ws*0.01 … … 1044 1044 1045 1045 1046 end functionrpmvh2so41046 END FUNCTION rpmvh2so4 1047 1047 !----------------------------------------------------------------------- 1048 1048 real function rmvh2o(T) result(rmvh2o_out) … … 1058 1058 1059 1059 1060 end functionrmvh2o1060 END FUNCTION rmvh2o 1061 1061 1062 1062 END MODULE sulfate_aer_mod -
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/traccoag_mod.F90
r5112 r5116 20 20 USE lmdz_grid_phy 21 21 USE lmdz_phys_mpi_data, ONLY: is_mpi_root 22 USE lmdz_phys_para, only: gather, scatter22 USE lmdz_phys_para, ONLY: gather, scatter 23 23 USE phys_cal_mod, ONLY: year_len, year_cur, mth_cur, day_cur, hour 24 24 USE sulfate_aer_mod
Note: See TracChangeset
for help on using the changeset viewer.