Changeset 894 for trunk/LMDZ.TITAN/libf
- Timestamp:
- Mar 6, 2013, 1:50:54 PM (12 years ago)
- Location:
- trunk/LMDZ.TITAN/libf/phytitan
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/profile.F
r887 r894 1 SUBROUTINE profile(unit,nlev,dzst, temp)1 SUBROUTINE profile(unit,nlev,dzst,pres,temp) 2 2 IMPLICIT NONE 3 3 c======================================================================= … … 10 10 c differents profils d'atmospheres. T=f(z) 11 11 c entree: 12 c unit unite de lecture de " testphys1d.def"12 c unit unite de lecture de "rcm1d.def" 13 13 c nlev nombre de niveaux (nlev=llm+1, surf + couches 1 a llm) 14 14 c dzst dz/T (avec dz = epaisseur de la couche en m) 15 c pres pressure profile 15 16 c ichoice choix de l'atmosphere: 16 17 c 1 Temperature constante … … 40 41 41 42 INTEGER nlev, unit 42 REAL dzst(nlev), temp(nlev)43 REAL dzst(nlev),pres(nlev),temp(nlev) 43 44 44 45 c local: … … 51 52 REAL hauteur,tmp 52 53 REAL zkm(nlev) ! altitude en km 54 real a1,b1,c1,a2,b2,c2 53 55 54 56 isin = 0 … … 86 88 87 89 ELSE IF(ichoice.EQ.2) THEN 88 print*,"Profil T a faire..." 89 stop 90 c temp(1) = 735. 91 c zkm(1) = 0.0 92 c DO il=2,nlev 93 c zkm(il) = zkm(il-1)+temp(il-1)*dzst(il)/1000. ! approx avec T(l-1) 94 c if(zkm(il).lt.60.) then 95 c temp(il)=735.-7.95*zkm(il) 96 c else 97 c temp(il)=AMAX1(258.-3.*(zkm(il)-60.),168.) 98 c endif 99 c zkm(il) = zkm(il-1)+(temp(il-1)+temp(il))/2.*dzst(il)/1000. 100 c ENDDO 90 a1 = 142.1 91 b1 = -21.45 92 c1 = 40.11 93 a2 = 106.3 94 b2 = 3183. 95 c2 = 4737. 96 DO il=1,nlev 97 temp(il)=a1*exp(-((pres(il)-b1)/c1)^2) 98 . + a2*exp(-((pres(il)-b2)/c2)^2) 99 ENDDO 100 zkm(1) = 0.0 101 DO il=2,nlev 102 zkm(il) = zkm(il-1)+(temp(il-1)+temp(il))/2.*dzst(il)/1000. 103 ENDDO 101 104 102 105 c----------------------------------------------------------------------- -
trunk/LMDZ.TITAN/libf/phytitan/rcm1d.F
r887 r894 78 78 REAL pk(llm),pks, w(llm) 79 79 INTEGER l, ierr, aslun 80 REAL tmp1(0:llm),tmp2(0:llm) 80 REAL tmp1(0:llm),tmp2(0:llm),tmp3(0:llm) 81 81 82 82 character*2 str2 … … 85 85 COMMON/cpdetvenus/cppdyn,nu_venus,t0_venus 86 86 REAL cppdyn,nu_venus,t0_venus 87 real pi 87 88 88 89 c======================================================================= … … 279 280 tmp1(ilayer)=-log(play(ilayer)/play(ilayer-1))*r/g 280 281 ENDDO 281 call profile(unit,nlayer+1,tmp1,tmp2) 282 DO ilayer=0,nlayer 283 tmp2(ilayer)=plev(ilayer+1) 284 ENDDO 285 call profile(unit,nlayer+1,tmp1,tmp2,tmp3) 282 286 CLOSE(unit) 283 287 284 288 print*," Pression Altitude Temperature" 285 289 ilayer=1 286 tsurf(1)=tmp 2(0)287 temp(1)=tmp 2(1)288 zlay(1)=tmp 2(1)*tmp1(1)290 tsurf(1)=tmp3(0) 291 temp(1)=tmp3(1) 292 zlay(1)=tmp3(1)*tmp1(1) 289 293 print*," 0",tsurf(1) 290 294 print*,ilayer,play(ilayer),zlay(ilayer),temp(ilayer) 291 295 DO ilayer=2,nlayer 292 temp(ilayer)=tmp 2(ilayer)293 zlay(ilayer)=zlay(ilayer-1)+tmp 2(ilayer)*tmp1(ilayer)296 temp(ilayer)=tmp3(ilayer) 297 zlay(ilayer)=zlay(ilayer-1)+tmp3(ilayer)*tmp1(ilayer) 294 298 print*,ilayer,play(ilayer),zlay(ilayer),temp(ilayer) 295 299 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.