Ignore:
Timestamp:
Oct 7, 2013, 6:42:03 PM (11 years ago)
Author:
slebonnois
Message:

SL: Titan runs ! see DOC/chantiers/commit_importants.log

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/calchim.F

    r104 r1056  
    1       SUBROUTINE calchim(ny,qy_c,nomqy_c,declin_rad,ls_rad,dtchim,
     1      SUBROUTINE calchim(nlon,ny,qy_c,nomqy_c,declin_rad,ls_rad,dtchim,
    22     .                   ctemp,cplay,cplev,
    33     .                   dqyc)
     
    99c     Auteur: S. Lebonnois,  01/2000 | 09/2003
    1010c            adaptation pour Titan 3D: 02/2009
     11c            adaptation pour // : 04/2013
    1112c
    1213c-------------------------------------------------
    1314c
    1415      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
    1520      implicit none
    1621#include "dimensions.h"
     
    1924#include "YOMCST.h"
    2025
    21 #include "titan_for.h" 
    22 !!!  doit etre en accord avec titan.h
    23 #include "aerprod.h"
    24 
    2526c    Arguments
    2627c    ---------
    2728
     29      INTEGER      nlon                   ! nb of horiz points
    2830      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.
    3032      character*10 nomqy_c(NC+1)          ! Noms des especes chimiques
    3133      REAL         declin_rad,ls_rad      ! declinaison et long solaire en radians
    3234      REAL         dtchim                 ! pas de temps chimie
    33       REAL         ctemp(jjm+1,klev)      ! Temperature
    34       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 chimiques
     35      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
    3840     
    3941c    Local variables :
    4042c    -----------------
     43
     44      integer i,j,l,ic,jm1
     45
    4146c variables envoyees dans la chimie: double precision
    4247
    43       integer i,j,l,ic
    4448      REAL  temp_c(klev),press_c(klev)     ! T,p(mbar) a 1 lat donnee
    4549      REAL  declin_c                       ! declinaison en degres
     
    6468     
    6569      REAL  mass(NC),duree
    66       REAL  tablefluxtop(NC,jjm+1,5)
     70      REAL  tablefluxtop(NC,jjp1,5)
    6771      REAL  botCH4
    6872      DATA  botCH4/0.05/
     
    9094c ************************************
    9195
    92         allocate(krpd(15,ND+1,klev,jjm+1),krate(klev,NR))
     96        allocate(krpd(15,ND+1,klev,jjp1),krate(klev,NR))
    9397
    9498c Verification dimension verticale: coherence titan_for.h et klev
     
    110114        endif
    111115
    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):'
     116c calcul de temp_c, densites et press_c au milieu de l'ensemble des points:
     117c ----------------------------------------------------------------------
     118
     119        print*,'pression, densites et temp (chimie):'
    116120        print*,'level, press_c, nb, temp_c'
    117121        DO l=1,klev
    118122c     temp_c (K):
    119          temp_c(l)  = ctemp(jjm/2+1,l)
     123         temp_c(l)  = ctemp(nlon/2+1,l)
    120124c     press_c (mbar):
    121          press_c(l) = cplay(jjm/2+1,l)/100.
     125         press_c(l) = cplay(nlon/2+1,l)/100.
    122126c     nb (cm-3):
    123127         nb(l) = 1.e-4*press_c(l) / (RKBOL*temp_c(l))
     
    393397c                BOUCLE SUR LES LATITUDES
    394398c
    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
    397409c***********************************************************************
    398410c***********************************************************************
     
    459471c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    460472
    461        if (firstcal.and.(j.eq.1)) then
    462          print*,'Alt, densites et temp au pole (chimie):'
    463          print*,'level, z_bas, nb, temp_c'
    464          do l=1,klev
    465           print*,l,rinter(l)-RA/1000.,nb(l),temp_c(l)
    466          enddo
    467        endif
    468 
    469        if (firstcal.and.(j.eq.jjm/2)) then
    470 c         print*,'g,mugaz'
    471 c         print*,g,mugaz
    472          print*,'Alt, densites et temp a l equateur (chimie):'
    473          print*,'level, z_bas, nb, temp_c'
    474          do l=1,klev
    475           print*,l,rinter(l)-RA/1000.,nb(l),temp_c(l)
    476          enddo
    477        endif
    478        
    479473c-----------------------------------------------------------------------
    480474c
     
    507501c   --------------------
    508502       
    509        call gptitan(jjp1,rinter,temp_c,nb,
     503       call gptitan(rinter,temp_c,nb,
    510504     $              nomqy_c,cqy,fluxtop,
    511      $              declin_c,duree,(j-1),mass,
     505     $              declin_c,duree,(klat(j)-1),mass,
    512506     $              botCH4,krpd,krate,reactif,
    513507     $              nom_prod,nom_perte,prod,perte,
     
    515509     $              htoh2,surfhaze)
    516510       
    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       stop
    523 
    524511c   Tendances composition
    525512c   ---------------------
     
    551538c***********************************************************************
    552539c***********************************************************************
    553 c
     540
    554541c              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
    556553      ENDDO
    557554     
Note: See TracChangeset for help on using the changeset viewer.