Changeset 1126 for trunk/LMDZ.COMMON/libf
- Timestamp:
- Dec 17, 2013, 1:02:44 PM (11 years ago)
- Location:
- trunk/LMDZ.COMMON/libf
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d/calfis.F
r1107 r1126 199 199 REAL,allocatable,save :: tmpvarbar(:) 200 200 REAL,allocatable,save :: tmpvarbarp1(:) 201 real :: zz1,zz2 201 202 202 203 c----------------------------------------------------------------------- … … 232 233 c---------------------------------------------- 233 234 c moyennes globales pour le profil de pression 234 if(planet_type.eq."titan") then235 if(planet_type.eq."titan".or.planet_type.eq."venus") then 235 236 ALLOCATE(plevmoy(llm+1)) 236 237 ALLOCATE(playmoy(llm)) … … 238 239 ALLOCATE(tetamoy(llm)) 239 240 ALLOCATE(pkmoy(llm)) 241 ALLOCATE(phimoy(0:llm)) 242 ALLOCATE(zlevmoy(llm+1)) 243 ALLOCATE(zlaymoy(llm)) 240 244 plevmoy=0. 241 245 do l=1,llmp1 … … 248 252 tetamoy=0. 249 253 pkmoy=0. 254 phimoy=0. 255 do i=1,iip1 256 do j=1,jjp1 257 phimoy(0)=phimoy(0)+pphis(i,j)/(iip1*jjp1) 258 enddo 259 enddo 250 260 do l=1,llm 251 261 do i=1,iip1 … … 253 263 tetamoy(l)=tetamoy(l)+pteta(i,j,l)/(iip1*jjp1) 254 264 pkmoy(l)=pkmoy(l)+ppk(i,j,l)/(iip1*jjp1) 265 phimoy(l)=phimoy(l)+pphi(i,j,l)/(iip1*jjp1) 255 266 enddo 256 267 enddo 257 268 enddo 258 playmoy = preff * (pkmoy/cpp) ** unskap269 playmoy(:) = preff * (pkmoy(:)/cpp) ** unskap 259 270 call tpot2t(llm,tetamoy,tmoy,pkmoy) 271 c SI ON TIENT COMPTE DE LA VARIATION DE G AVEC L'ALTITUDE: 272 zlaymoy(:) = g*rad*rad/(g*rad-phimoy(:))-rad 273 zlevmoy(1) = phimoy(0)/g 274 DO l=2,llm 275 zz1=(playmoy(l-1)+plevmoy(l))/(playmoy(l-1)-plevmoy(l)) 276 zz2=(plevmoy(l) +playmoy(l))/(plevmoy(l) -playmoy(l)) 277 zlevmoy(l)=(zz1*zlaymoy(l-1)+zz2*zlaymoy(l))/(zz1+zz2) 278 ENDDO 279 zlevmoy(llmp1)=zlaymoy(llm)+(zlaymoy(llm)-zlevmoy(llm)) 260 280 c------------------- 261 281 c + lat index … … 265 285 ig0 = 2 266 286 DO j = 2,jjm 267 268 269 270 287 do i=0,iim-1 288 klat(ig0+i) = j 289 enddo 290 ig0 = ig0+iim 271 291 ENDDO 272 292 klat(ngridmx) = jjp1 273 endif ! planet_type=titan293 endif ! planet_type=titan 274 294 c---------------------------------------------- 275 295 ELSE -
trunk/LMDZ.COMMON/libf/dyn3d/moyzon_mod.F90
r1107 r1126 18 18 ! to be changed... 19 19 REAL,ALLOCATABLE,SAVE :: plevmoy(:),playmoy(:) 20 REAL,ALLOCATABLE,SAVE :: zlevmoy(:),zlaymoy(:),phimoy(:) 20 21 REAL,ALLOCATABLE,SAVE :: tmoy(:),tetamoy(:),pkmoy(:) 21 22 INTEGER,ALLOCATABLE,SAVE :: klat(:) -
trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F
r1107 r1126 260 260 REAL,allocatable,save :: tmpvarbar(:) 261 261 REAL,allocatable,save :: tmpvarbarp1(:) 262 real :: zz1,zz2 262 263 263 264 c----------------------------------------------------------------------- … … 314 315 c------------------------------------------------------------------ 315 316 c moyennes globales pour les profils de pression et de temperature 316 if(planet_type.eq."titan" ) then317 if(planet_type.eq."titan".or.planet_type.eq."venus") then 317 318 call AllGather_Field(pp,iip1*jjp1,llmp1) 318 319 call AllGather_Field(pteta,iip1*jjp1,llm) 319 320 call AllGather_Field(ppk,iip1*jjp1,llm) 321 call AllGather_Field(pphi,iip1*jjp1,llm) 322 call AllGather_Field(pphis,iip1*jjp1,1) 320 323 ALLOCATE(plevmoy(llm+1)) 321 324 ALLOCATE(playmoy(llm)) … … 323 326 ALLOCATE(tetamoy(llm)) 324 327 ALLOCATE(pkmoy(llm)) 328 ALLOCATE(phimoy(0:llm)) 329 ALLOCATE(zlevmoy(llm+1)) 330 ALLOCATE(zlaymoy(llm)) 325 331 plevmoy=0. 326 332 do l=1,llmp1 … … 333 339 tetamoy=0. 334 340 pkmoy=0. 341 phimoy=0. 342 do i=1,iip1 343 do j=1,jjp1 344 phimoy(0)=phimoy(0)+pphis(i,j)/(iip1*jjp1) 345 enddo 346 enddo 335 347 do l=1,llm 336 348 do i=1,iip1 … … 338 350 tetamoy(l)=tetamoy(l)+pteta(i,j,l)/(iip1*jjp1) 339 351 pkmoy(l)=pkmoy(l)+ppk(i,j,l)/(iip1*jjp1) 352 phimoy(l)=phimoy(l)+pphi(i,j,l)/(iip1*jjp1) 340 353 enddo 341 354 enddo 342 355 enddo 343 playmoy = preff * (pkmoy/cpp) ** unskap356 playmoy(:) = preff * (pkmoy(:)/cpp) ** unskap 344 357 call tpot2t_p(1,llm,tetamoy,tmoy,pkmoy) 358 c SI ON TIENT COMPTE DE LA VARIATION DE G AVEC L'ALTITUDE: 359 zlaymoy(:) = g*rad*rad/(g*rad-phimoy(:))-rad 360 zlevmoy(1) = phimoy(0)/g 361 DO l=2,llm 362 zz1=(playmoy(l-1)+plevmoy(l))/(playmoy(l-1)-plevmoy(l)) 363 zz2=(plevmoy(l) +playmoy(l))/(plevmoy(l) -playmoy(l)) 364 zlevmoy(l)=(zz1*zlaymoy(l-1)+zz2*zlaymoy(l))/(zz1+zz2) 365 ENDDO 366 zlevmoy(llmp1)=zlaymoy(llm)+(zlaymoy(llm)-zlevmoy(llm)) 345 367 c------------------- 346 368 c + lat index 347 369 allocate(klat(klon)) 348 370 do ig0=1,klon 349 350 371 j=index_j(ig0) 372 klat(ig0)=j 351 373 enddo 352 374 endif ! planet_type=titan -
trunk/LMDZ.COMMON/libf/dyn3dpar/moyzon_mod.F90
r1107 r1126 24 24 ! to be changed... 25 25 REAL,ALLOCATABLE,SAVE :: plevmoy(:),playmoy(:) 26 REAL,ALLOCATABLE,SAVE :: zlevmoy(:),zlaymoy(:),phimoy(:) 26 27 REAL,ALLOCATABLE,SAVE :: tmoy(:),tetamoy(:),pkmoy(:) 27 28 INTEGER,ALLOCATABLE,SAVE :: klat(:)
Note: See TracChangeset
for help on using the changeset viewer.