Changeset 2686 for trunk/LMDZ.VENUS
- Timestamp:
- Jun 2, 2022, 4:11:01 PM (2 years ago)
- Location:
- trunk/LMDZ.VENUS/libf/phyvenus
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/compo_hedin_mod2.F90
r2464 r2686 27 27 mu(1)=1. 28 28 do i=2,musize-1 29 mu(i)=mu(i-1)- 1./9.29 mu(i)=mu(i-1)-(2./(1.*musize-1.)) 30 30 enddo 31 mu(musize)= 0.31 mu(musize)=-1. 32 32 33 33 z(1)=100. -
trunk/LMDZ.VENUS/libf/phyvenus/concentrations2.F
r2464 r2686 5 5 use cpdet_phy_mod, only: cpdet 6 6 USE chemparam_mod 7 7 USE infotrac_phy, ONLY: tname 8 8 implicit none 9 9 … … 104 104 nbq = nbq + 1 105 105 niq(nbq) = i_h 106 aki(nbq) = 0.0 106 !aki(nbq) = 0.0 !! valeur d'origine 107 aki(nbq) = 37.9e-4 !??? A verifier 107 108 cpi(nbq) = 20.780e3 108 109 end if … … 167 168 c cpi(nbq) = 0.0 168 169 c endif 170 if (i_he /= 0) then 171 nbq = nbq + 1 172 niq(nbq) = i_he 173 aki(nbq) = 29.9e-4 174 cpi(nbq) = 5.2e3 175 end if 169 176 170 177 ! tell the world about it: 171 178 write(*,*) "concentrations: firstcall, nbq=",nbq 179 ! write(*,*) "test M_tr(nbq)=",M_tr(nbq) 172 180 ! write(*,*) " niq(1:nbq)=",niq(1:nbq) 173 181 ! write(*,*) " aki(1:nbq)=",aki(1:nbq) 174 182 ! write(*,*) " cpi(1:nbq)=",cpi(1:nbq) 175 176 183 do i = 1,nbq 184 write(*,*) "tname(i)=",tname(i) 185 write(*,*) "tname(niq(i))=",tname(niq(i)) 186 end do 177 187 firstcall = .false. 178 188 end if ! if (firstcall) … … 207 217 do l = 1,klev 208 218 do ig = 1,klon 209 do i = 1,nqmx 219 do i = 1,nqmx-nmicro 210 220 c iq = niq(i) 211 221 mmean(ig,l) = mmean(ig,l) + zq(ig,l,i)/M_tr(i) … … 234 244 235 245 do i = 1,nbq 236 c iq = niq(i) 237 ni(i) = ntot*zq(ig,l,i)*mmean(ig,l)/M_tr(i) 238 cpnew(ig,l) = cpnew(ig,l) + ni(i)*cpi(i) 246 iq = niq(i) 247 ni(i) = ntot*zq(ig,l,iq)*mmean(ig,l)/M_tr(iq) 248 !! On a une super formule pour calculer cp_co2 sur Venus 249 if (iq == i_co2) then 250 cpnew(ig,l) = cpnew(ig,l) + ni(i)*cpdet(zt(ig,l)) 251 else 252 cpnew(ig,l) = cpnew(ig,l) + ni(i)*cpi(i) 253 end if 239 254 akknew(ig,l) = akknew(ig,l) + ni(i)*aki(i) 240 255 end do -
trunk/LMDZ.VENUS/libf/phyvenus/hrtherm.F
r2622 r2686 81 81 !Only if O3, N or ion chemistry requested 82 82 c if(euvmod.ge.1) then 83 c xabsi(7,i) = rm(i,i_o )83 c xabsi(7,i) = rm(i,i_o3) 84 84 c endif 85 85 !Only if N or ion chemistry requested -
trunk/LMDZ.VENUS/libf/phyvenus/nonoro_gwd_ran_mod.F90
r2622 r2686 157 157 REAL vh(ngrid, nlayer + 1) ! Meridional wind at 1/2 levels 158 158 REAL ph(ngrid, nlayer + 1) ! Pressure at 1/2 levels 159 REAL, parameter:: psec = 1.e- 8! Security to avoid division by 0 pressure159 REAL, parameter:: psec = 1.e-9 ! Security to avoid division by 0 pressure 160 160 REAL bv(ngrid, nlayer + 1) ! Brunt Vaisala freq. at 1/2 levels 161 161 REAL, parameter:: bvsec = 1.e-5 ! Security to avoid negative BV -
trunk/LMDZ.VENUS/libf/phyvenus/param_v4_h.F90
r2464 r2686 10 10 real*8, parameter :: n_avog = 6.023e23 11 11 real*8, parameter :: gg = 6.67259e-8 12 real*8, parameter :: masa = 6.4163e2613 real*8, parameter :: radio = 3390.12 real*8, parameter :: masa = 4.8675e27 !masa de Venus(g) 13 real*8, parameter :: radio = 6051.848 !radio de Venus(km) 14 14 integer, parameter :: nreact=93 15 15 integer, parameter :: tapas=42 -
trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F
r2683 r2686 287 287 REAL zphi(klon,klev) 288 288 REAL zzlev(klon,klev+1),zzlay(klon,klev),z1,z2 289 REAL tlaymean ! valeur temporaire pour calculer zzlay 289 290 real tsurf(klon) 290 291 … … 828 829 do j=2,klev 829 830 flux_dyn(i,j) = flux_dyn(i,j-1) 830 . +cp det(t_seri(i,j-1))/RG*d_t_dyn(i,j-1)*(paprs(i,j-1)-paprs(i,j))831 . +cpnew(i,j-1)/RG*d_t_dyn(i,j-1)*(paprs(i,j-1)-paprs(i,j)) 831 832 enddo 832 833 enddo … … 883 884 c===== 884 885 885 c calcul d u geopotentielaux niveaux intercouches886 c calcul de l'altitude aux niveaux intercouches 886 887 c ponderation des altitudes au niveau des couches en dp/p 887 888 888 DO k=1,klev889 DO i=1,klon890 zzlay(i,k)=zphi(i,k)/RG ! [m]891 ENDDO892 ENDDO893 889 DO i=1,klon 890 zzlay(i,1)=zphi(i,1)/RG ! [m] 894 891 zzlev(i,1)=pphis(i)/RG ! [m] 895 892 ENDDO 893 DO k=2,klev 894 DO i=1,klon 895 tlaymean=t_seri(i,k) 896 IF (t_seri(i,k).ne.t_seri(i,k-1)) 897 & tlaymean=(t_seri(i,k)-t_seri(i,k-1)) 898 & /log(t_seri(i,k)/t_seri(i,k-1)) 899 900 zzlay(i,k)=zzlay(i,k-1) 901 & -(log(pplay(i,k)/pplay(i,k-1))*rnew(i,k-1)*tlaymean 902 & /(RG*(RA/(RA+zzlay(i,k-1)))**2)) 903 ENDDO 904 ENDDO 905 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 906 ! Old : from geopotential. Problem when mu varies in the upper atm... 907 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 908 ! DO k=1,klev 909 ! DO i=1,klon 910 ! zzlay(i,k)=zphi(i,k)/RG ! [m] 911 ! ENDDO 912 ! ENDDO 913 ! DO i=1,klon 914 ! zzlev(i,1)=pphis(i)/RG ! [m] 915 ! ENDDO 916 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 896 917 DO k=2,klev 897 918 DO i=1,klon … … 1375 1396 do j=2,klev 1376 1397 flux_ajs(i,j) = flux_ajs(i,j-1) 1377 . + cp det(t_seri(i,j-1))/RG*d_t_ajs(i,j-1)/dtime1398 . + cpnew(i,j-1)/RG*d_t_ajs(i,j-1)/dtime 1378 1399 . *(paprs(i,j-1)-paprs(i,j)) 1379 1400 enddo … … 1669 1690 ztlev(i,k) = (t_seri(i,k)+t_seri(i,k-1))/2. 1670 1691 zdtlev(i,k) = t_seri(i,k)-t_seri(i,k-1) 1671 zdzlev(i,k) = (z phi(i,k)-zphi(i,k-1))/RG1692 zdzlev(i,k) = (zzlay(i,k)-zzlay(i,k-1)) 1672 1693 zn2(i,k) = RG/ztlev(i,k) * ( zdtlev(i,k)/zdzlev(i,k) 1673 . + RG/cp det(ztlev(i,k)) )1694 . + RG/cpnew(i,k) ) 1674 1695 zn2(i,k) = max(zn2(i,k),1.e-12) ! securite 1675 1696 enddo … … 1881 1902 DO k = 1, klev 1882 1903 DO i = 1, klon 1883 d_t_ec(i,k)=0.5/cp det(t_seri(i,k))1904 d_t_ec(i,k)=0.5/cpnew(i,k) 1884 1905 $ *(u(i,k)**2+v(i,k)**2-u_seri(i,k)**2-v_seri(i,k)**2) 1885 1906 t_seri(i,k)=t_seri(i,k)+d_t_ec(i,k) … … 1891 1912 do j=2,klev 1892 1913 flux_ec(i,j) = flux_ec(i,j-1) 1893 . +cp det(t_seri(i,j-1))/RG*d_t_ec(i,j-1)*(paprs(i,j-1)-paprs(i,j))1914 . +cpnew(i,j-1)/RG*d_t_ec(i,j-1)*(paprs(i,j-1)-paprs(i,j)) 1894 1915 enddo 1895 1916 enddo
Note: See TracChangeset
for help on using the changeset viewer.