Changeset 3740
- Timestamp:
- Apr 27, 2025, 4:19:12 PM (2 months ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 1 deleted
- 9 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/changelog.txt
r3739 r3740 4816 4816 == 26/04/2025 == EM 4817 4817 Code tidying: put routines in modules, remove useless "return" statements, etc. 4818 4819 == 27/04/2025 == EM 4820 Code tidying; removed unused mufract.F (mucorr.F does the job); turned 4821 ambiguously named sig.F to sig_h2o.F90 and make it a module. -
trunk/LMDZ.MARS/libf/phymars/improvedclouds_mod.F
r3739 r3740 21 21 use microphys_h, only: mco2, vo1, mh2o, mhdo, molco2, molhdo, To 22 22 use nuclea_mod, only: nuclea 23 use sig_h2o_mod, only: sig_h2o 23 24 use growthrate_mod, only: growthrate 24 25 use write_output_mod, only: write_output … … 91 92 REAL*8 n_aer(nbin_cld) ! number conc. of particle/each size bin 92 93 REAL*8 m_aer(nbin_cld) ! mass mixing ratio of particle/each size bin 93 94 REAL*8 sig ! Water-ice/air surface tension (N.m)95 EXTERNAL sig96 94 97 95 REAL dN,dM … … 405 403 c saturation at equilibrium 406 404 c rice should not be too small, otherwise seq value is not valid 407 seq = exp(2.*sig (zt(ig,l))*mh2o / (rho_ice*rgp*zt(ig,l)*405 seq = exp(2.*sig_h2o(zt(ig,l))*mh2o / (rho_ice*rgp*zt(ig,l)* 408 406 & max(rice(ig,l),1.e-7))) 409 407 -
trunk/LMDZ.MARS/libf/phymars/mucorr.F
r38 r3740 1 MODULE mucorr_mod 2 3 IMPLICIT NONE 4 5 CONTAINS 6 1 7 SUBROUTINE mucorr(npts,pdeclin, plat, pmu, pfract,phaut,prad) 2 8 IMPLICIT NONE … … 4 10 c======================================================================= 5 11 c 6 c C alcul of equivalent solar angle andand fraction of day whithout12 c Compute equivalent solar angle and fraction of day whithout 7 13 c diurnal cycle. 8 14 c … … 14 20 c npts number of points 15 21 c pdeclin solar declinaison 16 c plat(npts) 17 c phaut hauteur typique de l'atmosphere18 c prad rayon planetaire22 c plat(npts) latitude 23 c phaut thickness of atmosphere 24 c prad planet radius 19 25 c 20 26 c Output : 21 27 c -------- 22 c pmu(npts) equivalent cosin usof the solar angle28 c pmu(npts) equivalent cosine of the solar angle 23 29 c pfract(npts) fractionnal day 24 30 c … … 32 38 c Arguments : 33 39 c ----------- 34 INTEGER npts 35 REAL plat(npts),pmu(npts), pfract(npts) 36 REAL phaut,prad,pdeclin 40 INTEGER,INTENT(IN) :: npts 41 REAL,INTENT(IN) :: plat(npts) 42 REAL,INTENT(IN) :: phaut,prad,pdeclin 43 REAL,INTENT(OUT) :: pmu(npts), pfract(npts) 37 44 c 38 45 c Local variables : … … 51 58 sz = sin (z) 52 59 53 DO 20j = 1, npts60 DO j = 1, npts 54 61 55 62 phi = plat(j) … … 86 93 IF (pmu(j).eq.0.) pfract(j) = 0. 87 94 88 20 CONTINUE95 ENDDO 89 96 90 97 c----------------------------------------------------------------------- … … 93 100 94 101 alph=phaut/prad 95 DO 30j=1,npts102 DO j=1,npts 96 103 c !!!!!! 97 104 pmu(j)=sqrt(1224.*pmu(j)*pmu(j)+1.)/35. 98 105 c $ (sqrt(alph*alph*pmu(j)*pmu(j)+2.*alph+1.)-alph*pmu(j)) 99 30 CONTINUE 106 ENDDO 100 107 101 RETURN 102 END 108 END SUBROUTINE mucorr 109 110 END MODULE mucorr_mod -
trunk/LMDZ.MARS/libf/phymars/nirco2abs.F
r3726 r3740 10 10 use tracer_mod, only: igcm_co2, igcm_o 11 11 use comgeomfi_h, only: sinlon, coslon, sinlat, coslat 12 use solang_mod, only: solang 12 13 USE comcstfi_h, ONLY: pi 13 14 USE time_phylmdz_mod, ONLY: daysec -
trunk/LMDZ.MARS/libf/phymars/nuclea.F
r3726 r3740 10 10 use microphys_h, only: desorp, kbz, nus, rgp, surfdif, vo1 11 11 use callkeys_mod, only: temp_dependent_m, cloud_adapt_ts 12 use sig_h2o_mod, only: sig_h2o 12 13 implicit none 13 14 * * … … 33 34 c Local variables 34 35 DOUBLE PRECISION nh2o 35 DOUBLE PRECISION sig ! Water-ice/air surface tension (N.m)36 external sig37 36 DOUBLE PRECISION rstar ! Radius of the critical germ (m) 38 37 DOUBLE PRECISION gstar ! # of molecules forming a critical embryo … … 118 117 119 118 nh2o = ph2o / kbz / temp 120 rstar = 2. * sig (temp) * vo1 / (rgp*temp*log(sat))119 rstar = 2. * sig_h2o(temp) * vo1 / (rgp*temp*log(sat)) 121 120 gstar = 4. * nav * pi * (rstar * rstar * rstar) / (3.*vo1) 122 121 … … 140 139 endif 141 140 142 fistar = (4./3.*pi) * sig (temp) * (rstar * rstar) *141 fistar = (4./3.*pi) * sig_h2o(temp) * (rstar * rstar) * 143 142 & zefshape 144 143 deltaf = (2.*desorp-surfdif-fistar)/ -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r3727 r3740 61 61 & mu0, fract, local_time 62 62 use solarlong_mod, only: solarlong 63 use solang_mod, only: solang 64 use mucorr_mod, only: mucorr 63 65 use nirdata_mod, only: NIR_leedat 64 66 use nirco2abs_mod, only: nirco2abs -
trunk/LMDZ.MARS/libf/phymars/sig_h2o.F90
r3739 r3740 1 ********************************************************* 2 double precision function sig(t) 3 implicit none 4 * this function computes the surface tension (N.m) * 5 * between water ice and air as a function of temp. * 6 ********************************************************* 1 module sig_h2o_mod 2 3 implicit none 4 5 contains 6 7 !******************************************************** 8 double precision function sig_h2o(t) 9 implicit none 10 ! this function computes the surface tension (N.m) * 11 ! between water ice and air as a function of temp. * 12 !******************************************************** 7 13 8 realt14 real,intent(in) :: t 9 15 10 sig= (141. - 0.15 * dble(t)) * 1.e-316 sig_h2o = (141. - 0.15 * dble(t)) * 1.e-3 11 17 12 return 13 end 18 end function sig_h2o 19 20 end module sig_h2o_mod 14 21 -
trunk/LMDZ.MARS/libf/phymars/solang.F
r38 r3740 1 MODULE solang_mod 2 3 IMPLICIT NONE 4 5 CONTAINS 6 1 7 subroutine solang ( kgrid,psilon,pcolon,psilat,pcolat, 2 8 & ptim1,ptim2,ptim3,pmu0,pfract ) … … 65 71 C --------- 66 72 C 67 INTEGER kgrid 68 REAL ptim1,ptim2,ptim3 69 REAL psilon(kgrid),pcolon(kgrid),pmu0(kgrid),pfract(kgrid) 70 REAL psilat(kgrid), pcolat(kgrid) 73 INTEGER,INTENT(IN) :: kgrid 74 REAL,INTENT(IN) :: ptim1,ptim2,ptim3 75 REAL,INTENT(IN) :: psilon(kgrid),pcolon(kgrid) 76 REAL,INTENT(IN) :: psilat(kgrid), pcolat(kgrid) 77 REAL,INTENT(OUT) :: pmu0(kgrid),pfract(kgrid) 71 78 C 72 79 INTEGER jl … … 81 88 C -------------- 82 89 C 83 100 CONTINUE 90 84 91 C 85 92 DO jl=1,kgrid … … 111 118 ENDDO 112 119 C 113 RETURN 114 END 120 121 END SUBROUTINE solang 122 123 END MODULE solang_mod -
trunk/LMDZ.MARS/libf/phymars/swr_toon.F
r3727 r3740 14 14 use yomlw_h, only: nlaylte 15 15 use callkeys_mod, only: rayleigh 16 use swrayleigh_mod, only: swrayleigh 16 17 17 18 IMPLICIT NONE -
trunk/LMDZ.MARS/libf/phymars/swrayleigh.F
r2616 r3740 1 MODULE swrayleigh_mod 2 3 IMPLICIT NONE 4 5 CONTAINS 6 1 7 SUBROUTINE swrayleigh(kdlon,knu,ppsol,prmu,prayl) 2 USE comcstfi_h 8 3 9 IMPLICIT NONE 4 10 c======================================================================= … … 31 37 c Input/Output 32 38 c ------------ 33 INTEGER kdlon, knu39 INTEGER,INTENT(IN) :: kdlon, knu 34 40 35 real ppsol(kdlon),prmu(kdlon),prayl(kdlon) 41 real,intent(in) :: ppsol(kdlon),prmu(kdlon) 42 real,intent(out) :: prayl(kdlon) 36 43 c 37 44 c Local variables : … … 83 90 END DO 84 91 92 END SUBROUTINE swrayleigh 85 93 86 return 87 end 88 94 END MODULE swrayleigh_mod
Note: See TracChangeset
for help on using the changeset viewer.