Changeset 894
- Timestamp:
- Mar 6, 2013, 1:50:54 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 4 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 -
trunk/LMDZ.VENUS/libf/phyvenus/profile.F
r887 r894 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) -
trunk/LMDZ.VENUS/libf/phyvenus/rcm1d.F
r887 r894 52 52 REAL gru,grv ! prescribed "geostrophic" background wind 53 53 REAL temp(llm) ! temperature at the middle of the layers 54 REAL q(llm,nqtot) ! tracer mixing ratio (e.g. kg/kg)54 REAL,allocatable :: q(:,:) ! tracer mixing ratio (e.g. kg/kg) 55 55 REAL tsoil(nsoilmx) ! subsurface soik temperature (K) 56 56 REAL zlay(llm) ! altitude estimee dans les couches (km) … … 67 67 REAL dudyn(llm),dvdyn(llm),dtempdyn(llm) 68 68 REAL dpsurf 69 REAL dq(llm,nqtot) 70 REAL dqdyn(llm,nqtot) 69 REAL,allocatable :: dq(:,:) 71 70 72 71 c Various intermediate variables … … 82 81 COMMON/cpdetvenus/cppdyn,nu_venus,t0_venus 83 82 REAL cppdyn,nu_venus,t0_venus 83 real pi 84 84 85 85 c======================================================================= … … 113 113 r= 8.314511E+0 *1000.E+0/mugaz 114 114 rcp= r/cpp 115 116 c----------------------------------------------------------------------- 117 c Initialisation des traceurs 118 c --------------------------- 119 c Choix du nombre de traceurs et du schema pour l'advection 120 c dans fichier traceur.def 121 call infotrac_init 122 123 c Allocation de la tableau q : champs advectes 124 allocate(q(llm,nqtot)) 125 allocate(dq(llm,nqtot)) 115 126 116 127 c ------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.