source: dynamico_lmdz/aquaplanet/LMDZ5/libf/phylmd/tracreprobus_mod.F90 @ 3814

Last change on this file since 3814 was 3814, checked in by ymipsl, 10 years ago

remove all dynamic dependency in LMDZ physics except for the include "dimensions.h"

YM

File size: 3.6 KB
Line 
1MODULE tracreprobus_mod
2!
3! This module prepares and calls the Reprobus main subroutine
4!
5
6CONTAINS
7
8  SUBROUTINE tracreprobus(pdtphys, gmtime, debutphy, julien, &
9       presnivs, xlat, xlon, pphis, pphi, &
10       t_seri, pplay, paprs, sh , &
11       tr_seri)
12
13    USE dimphy
14    USE infotrac_phy
15#ifdef REPROBUS
16    USE CHEM_REP, ONLY : pdt_rep, &  ! pas de temps reprobus
17         daynum, iter, &             ! jourjulien, iteration chimie
18         pdel
19#endif
20    IMPLICIT NONE
21
22! Input argument
23!---------------
24    REAL,INTENT(IN)    :: pdtphys    ! Pas d'integration pour la physique (seconde)
25    REAL,INTENT(IN)    :: gmtime     ! Heure courante
26    LOGICAL,INTENT(IN) :: debutphy   ! le flag de l'initialisation de la physique
27    INTEGER,INTENT(IN) :: julien     ! Jour julien
28
29    REAL,DIMENSION(klev),INTENT(IN)        :: presnivs! pressions approximat. des milieux couches (en PA)
30    REAL,DIMENSION(klon),INTENT(IN)        :: xlat    ! latitudes pour chaque point
31    REAL,DIMENSION(klon),INTENT(IN)        :: xlon    ! longitudes pour chaque point
32    REAL,DIMENSION(klon),INTENT(IN)        :: pphis   ! geopotentiel du sol
33    REAL,DIMENSION(klon,klev),INTENT(IN)   :: pphi    ! geopotentiel de chaque couche
34
35    REAL,DIMENSION(klon,klev),INTENT(IN)   :: t_seri  ! Temperature
36    REAL,DIMENSION(klon,klev),INTENT(IN)   :: pplay   ! pression pour le mileu de chaque couche (en Pa)
37    REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs   ! pression pour chaque inter-couche (en Pa)
38    REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique   
39
40
41! Output argument
42!----------------
43    REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT)  :: tr_seri ! Concentration Traceur [U/KgA] 
44 
45
46! Local variables
47!----------------
48    INTEGER :: it, k
49
50#ifdef REPROBUS
51    !   -- CHIMIE REPROBUS --
52    pdt_rep=pdtphys/2.
53   
54    DO k = 1, klev
55       pdel(:,k) = paprs(:,k) - paprs (:,k+1)
56    END DO
57   
58    ! initialisation de ozone passif a ozone en debut d hiver HN et HS
59    IF (julien == 341 .OR. julien == 181) THEN
60       tr_seri(:,:,11)=tr_seri(:,:,8)
61    END IF
62   
63    DO  iter = 1,2
64       daynum = FLOAT(julien) + gmtime + (iter-1)*pdt_rep/86400.
65       
66       DO it=1, nbtr
67!     WRITE(lunout,*)it,' ',minval(tr_seri(:,:,it)),maxval(tr_seri(:,:,it))
68! seulement pour les especes chimiques (pas l'age de l'air)
69! verif valeurs extremes
70! correction: a 1.e-30 quand =0 ou negatif et
71! call abort si >ou= 1.e10
72          WRITE(*,*)it,'nqtot',nqtot,'nbtr',nbtr
73          IF (it < nqtot) THEN
74             WRITE(*,*)'ici',it,nqtot
75#ifdef REPROBUS
76             CALL minmaxqfi_chimie(tr_seri(1,1,it),0.,1.e10,'avant chimie ')
77#endif
78             WRITE(*,*)'apres'
79          ENDIF
80       ENDDO
81       
82#ifdef REPROBUS
83       CALL chemmain_rlong_1401( &
84            tr_seri, & !argument phytrac (change de nom apres: vmr)
85            xlon,    & !argument phytrac (change de nom apres: lon)
86            xlat,    & !argument phytrac (change de nom apres: lat)
87            t_seri,  & !argument phytrac (meme nom)
88            pplay,   & !argument phytrac (meme nom)
89            pphi,    & !argument phytrac (meme nom)
90            pphis,   & !argument phytrac (meme nom)
91            presnivs, & !argument phytrac (meme nom)
92            sh,      & !argument phytrac (meme nom)
93            debutphy) !argument phytrac (change de nom apres: debut)
94       ! pdel, pdt_rep, daynum : definit dans phytrac et utilise dans chemmain
95       !                 et transporte par CHEM_REP
96#endif       
97       
98    END DO
99   
100
101    !
102    DO it=1,nbtr
103       WRITE(solsym(it),'(i2)') it
104    END DO
105#endif
106  END SUBROUTINE tracreprobus
107
108END MODULE tracreprobus_mod
Note: See TracBrowser for help on using the repository browser.