Changeset 1056 for trunk/LMDZ.TITAN/libf/phytitan/calchim.F
- Timestamp:
- Oct 7, 2013, 6:42:03 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/calchim.F
r104 r1056 1 SUBROUTINE calchim(n y,qy_c,nomqy_c,declin_rad,ls_rad,dtchim,1 SUBROUTINE calchim(nlon,ny,qy_c,nomqy_c,declin_rad,ls_rad,dtchim, 2 2 . ctemp,cplay,cplev, 3 3 . dqyc) … … 9 9 c Auteur: S. Lebonnois, 01/2000 | 09/2003 10 10 c adaptation pour Titan 3D: 02/2009 11 c adaptation pour // : 04/2013 11 12 c 12 13 c------------------------------------------------- 13 14 c 14 15 use dimphy 16 use common_mod, only:utilaer,maer,prodaer,csn,csh,psurfhaze, 17 . NLEV,NC,ND,NR 18 USE comgeomphy, only: rlatd 19 use moyzon_mod, only: klat 15 20 implicit none 16 21 #include "dimensions.h" … … 19 24 #include "YOMCST.h" 20 25 21 #include "titan_for.h"22 !!! doit etre en accord avec titan.h23 #include "aerprod.h"24 25 26 c Arguments 26 27 c --------- 27 28 29 INTEGER nlon ! nb of horiz points 28 30 INTEGER ny ! nb de composes (nqmax-nmicro) 29 REAL qy_c( jjm+1,klev,NC)! Especes chimiques apres adv.+diss.31 REAL qy_c(nlon,klev,NC) ! Especes chimiques apres adv.+diss. 30 32 character*10 nomqy_c(NC+1) ! Noms des especes chimiques 31 33 REAL declin_rad,ls_rad ! declinaison et long solaire en radians 32 34 REAL dtchim ! pas de temps chimie 33 REAL ctemp( jjm+1,klev) ! Temperature34 REAL cplay( jjm+1,klev) ! pression (Pa)35 REAL cplev( jjm+1,klev) ! pression intercouches (Pa)36 37 REAL dqyc( jjm+1,klev,NC) ! Tendances especes chimiques35 REAL ctemp(nlon,klev) ! Temperature 36 REAL cplay(nlon,klev) ! pression (Pa) 37 REAL cplev(nlon,klev) ! pression intercouches (Pa) 38 39 REAL dqyc(nlon,klev,NC) ! Tendances especes chimiques 38 40 39 41 c Local variables : 40 42 c ----------------- 43 44 integer i,j,l,ic,jm1 45 41 46 c variables envoyees dans la chimie: double precision 42 47 43 integer i,j,l,ic44 48 REAL temp_c(klev),press_c(klev) ! T,p(mbar) a 1 lat donnee 45 49 REAL declin_c ! declinaison en degres … … 64 68 65 69 REAL mass(NC),duree 66 REAL tablefluxtop(NC,jj m+1,5)70 REAL tablefluxtop(NC,jjp1,5) 67 71 REAL botCH4 68 72 DATA botCH4/0.05/ … … 90 94 c ************************************ 91 95 92 allocate(krpd(15,ND+1,klev,jj m+1),krate(klev,NR))96 allocate(krpd(15,ND+1,klev,jjp1),krate(klev,NR)) 93 97 94 98 c Verification dimension verticale: coherence titan_for.h et klev … … 110 114 endif 111 115 112 c calcul de temp_c, densites et press_c a l'equateur:113 c -------------------------------------------------- 114 115 print*,'pression, densites et temp a l equateur(chimie):'116 c calcul de temp_c, densites et press_c au milieu de l'ensemble des points: 117 c ---------------------------------------------------------------------- 118 119 print*,'pression, densites et temp (chimie):' 116 120 print*,'level, press_c, nb, temp_c' 117 121 DO l=1,klev 118 122 c temp_c (K): 119 temp_c(l) = ctemp( jjm/2+1,l)123 temp_c(l) = ctemp(nlon/2+1,l) 120 124 c press_c (mbar): 121 press_c(l) = cplay( jjm/2+1,l)/100.125 press_c(l) = cplay(nlon/2+1,l)/100. 122 126 c nb (cm-3): 123 127 nb(l) = 1.e-4*press_c(l) / (RKBOL*temp_c(l)) … … 393 397 c BOUCLE SUR LES LATITUDES 394 398 c 395 DO j=1,jjp1 396 399 DO j=1,nlon 400 401 if (j.eq.1) then 402 jm1=1 403 else 404 jm1=j-1 405 endif 406 407 if((j.eq.1).or.(klat(j).ne.klat(jm1))) then 408 397 409 c*********************************************************************** 398 410 c*********************************************************************** … … 459 471 c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 460 472 461 if (firstcal.and.(j.eq.1)) then462 print*,'Alt, densites et temp au pole (chimie):'463 print*,'level, z_bas, nb, temp_c'464 do l=1,klev465 print*,l,rinter(l)-RA/1000.,nb(l),temp_c(l)466 enddo467 endif468 469 if (firstcal.and.(j.eq.jjm/2)) then470 c print*,'g,mugaz'471 c print*,g,mugaz472 print*,'Alt, densites et temp a l equateur (chimie):'473 print*,'level, z_bas, nb, temp_c'474 do l=1,klev475 print*,l,rinter(l)-RA/1000.,nb(l),temp_c(l)476 enddo477 endif478 479 473 c----------------------------------------------------------------------- 480 474 c … … 507 501 c -------------------- 508 502 509 call gptitan( jjp1,rinter,temp_c,nb,503 call gptitan(rinter,temp_c,nb, 510 504 $ nomqy_c,cqy,fluxtop, 511 $ declin_c,duree,( j-1),mass,505 $ declin_c,duree,(klat(j)-1),mass, 512 506 $ botCH4,krpd,krate,reactif, 513 507 $ nom_prod,nom_perte,prod,perte, … … 515 509 $ htoh2,surfhaze) 516 510 517 c if ( j.eq.jjm/2 )518 c $ print*,cqy(1,1),cqy(klev,1),cqy(1,2),cqy(klev,2)519 c if ( j.eq.jjm/2 )520 c $ print*,qy_c(j,1,1),qy_c(j,klev,1),qy_c(j,1,2),qy_c(j,klev,2)521 522 c stop523 524 511 c Tendances composition 525 512 c --------------------- … … 551 538 c*********************************************************************** 552 539 c*********************************************************************** 553 c 540 554 541 c FIN: BOUCLE SUR LES LATITUDES 555 c 542 543 else ! same latitude, we don't do calculations again 544 dqyc(j,:,:) = dqyc(jm1,:,:) 545 if (aerprod.eq.1) then 546 prodaer(j,:,:) = prodaer(jm1,:,:) 547 maer(j,:,:) = maer(jm1,:,:) 548 csn(j,:,:) = csn(jm1,:,:) 549 csh(j,:,:) = csh(jm1,:,:) 550 endif 551 endif 552 556 553 ENDDO 557 554
Note: See TracChangeset
for help on using the changeset viewer.