source: LMDZ5/tags/proto-testing-20131015/libf/phylmd/tracinca_mod.F90 @ 4309

Last change on this file since 4309 was 1795, checked in by Ehouarn Millour, 11 years ago

Version testing basee sur la r1794


Testing release based on r1794

File size: 6.3 KB
Line 
1!$Id $
2!
3MODULE tracinca_mod
4!
5! This module prepares and calls the INCA main subroutines.
6!
7
8CONTAINS
9
10  SUBROUTINE tracinca_init(aerosol,lessivage)
11    ! This subroutine initialize some control varaibles.
12
13    USE infotrac
14    IMPLICIT NONE
15   
16    ! Output variables
17    LOGICAL,DIMENSION(nbtr), INTENT(OUT) :: aerosol
18    LOGICAL,INTENT(OUT) :: lessivage
19   
20   
21    ! Initialization
22    lessivage  =.FALSE.
23    aerosol(:) = .FALSE.
24       
25  END SUBROUTINE tracinca_init
26
27  SUBROUTINE tracinca(                                &
28       nstep,    julien,   gmtime,         lafin,     &
29       pdtphys,  t_seri,   paprs,          pplay,     &
30       pmfu,     ftsol,    pctsrf,         pphis,     &
31       pphi,     albsol,   sh,             rh,        &
32       cldfra,   rneb,     diafra,         cldliq,    &
33       itop_con, ibas_con, pmflxr,         pmflxs,    &
34       prfl,     psfl,     aerosol_couple, flxmass_w, &
35       tau_aero, piz_aero, cg_aero,        ccm,       &
36       rfname,                                        &
37       tr_seri,  source,   solsym)     
38
39!========================================================
40!    -- CHIMIE INCA --
41!========================================================
42
43    USE dimphy
44    USE infotrac
45    USE vampir
46    USE comgeomphy
47    USE control_mod
48    USE indice_sol_mod
49
50   
51    IMPLICIT NONE
52   
53    INCLUDE "dimensions.h"
54    INCLUDE "paramet.h"
55
56!==========================================================================
57!                   -- DESCRIPTION DES ARGUMENTS --
58!==========================================================================
59
60
61! EN ENTREE ...
62!
63!Configuration grille,temps:
64    INTEGER,INTENT(IN) :: nstep      ! Appel physique
65    INTEGER,INTENT(IN) :: julien     ! Jour julien
66    REAL,INTENT(IN)    :: gmtime
67    REAL,INTENT(IN)    :: pdtphys    ! Pas d'integration pour la physique (seconde)
68    LOGICAL,INTENT(IN) :: lafin      ! le flag de la fin de la physique
69   
70
71!Physique:
72!--------
73    REAL,DIMENSION(klon,klev),INTENT(IN)   :: t_seri  ! Temperature
74    REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique
75    REAL,DIMENSION(klon,klev),INTENT(IN)   :: rh      ! humidite relative
76    REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs   ! pression pour chaque inter-couche (en Pa)
77    REAL,DIMENSION(klon,klev),INTENT(IN)   :: pplay   ! pression pour le mileu de chaque couche (en Pa)
78    REAL,DIMENSION(klon,klev),INTENT(IN)   :: pphi    ! geopotentiel
79    REAL,DIMENSION(klon),INTENT(IN)        :: pphis
80    REAL,DIMENSION(klon,klev),INTENT(IN)   :: cldliq  ! eau liquide nuageuse
81    REAL,DIMENSION(klon,klev),INTENT(IN)   :: cldfra  ! fraction nuageuse (tous les nuages)
82    REAL,DIMENSION(klon,klev),INTENT(IN)   :: diafra  ! fraction nuageuse (convection ou stratus artificiels)
83    REAL,DIMENSION(klon,klev),INTENT(IN)   :: rneb    ! fraction nuageuse (grande echelle)
84    INTEGER,DIMENSION(klon),INTENT(IN)     :: itop_con
85    INTEGER,DIMENSION(klon),INTENT(IN)     :: ibas_con
86    REAL,DIMENSION(klon),INTENT(IN)        :: albsol  ! albedo surface
87!
88!Convection:
89!----------
90    REAL,DIMENSION(klon,klev),INTENT(IN) :: pmfu  ! flux de masse dans le panache montant
91
92!...Tiedke     
93    REAL,DIMENSION(klon,klev+1),INTENT(IN)   :: pmflxr, pmflxs ! Flux precipitant de pluie, neige aux interfaces [convection]
94    REAL,DIMENSION(klon,klev+1),INTENT(IN)   :: prfl, psfl ! Flux precipitant de pluie, neige aux interfaces [large-scale]
95
96    LOGICAL,INTENT(IN)                       :: aerosol_couple
97    REAL,DIMENSION(klon,klev),INTENT(IN)     :: flxmass_w
98    REAL,DIMENSION(klon,klev,9,2),INTENT(IN) :: tau_aero
99    REAL,DIMENSION(klon,klev,9,2),INTENT(IN) :: piz_aero
100    REAL,DIMENSION(klon,klev,9,2),INTENT(IN) :: cg_aero
101    CHARACTER(len=4),DIMENSION(9),INTENT(IN) :: rfname
102    REAL,DIMENSION(klon,klev,2),INTENT(IN)   :: ccm
103
104! Arguments necessaires pour les sources et puits de traceur:
105    REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol  ! Temperature du sol (surf)(Kelvin)
106    REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol f(nature du sol)
107
108
109  ! InOutput argument
110    REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA] 
111
112  ! Output arguments
113    REAL,DIMENSION(klon,nbtr), INTENT(OUT)        :: source  ! a voir lorsque le flux de surface est prescrit
114    CHARACTER(len=8),DIMENSION(nbtr), INTENT(OUT) :: solsym
115
116!=======================================================================================
117!                        -- VARIABLES LOCALES TRACEURS --
118!=======================================================================================
119
120    INTEGER :: k
121    REAL,DIMENSION(klon,klev) :: pdel
122    REAL    :: calday
123    INTEGER :: ncsec
124
125    CALL VTe(VTphysiq)
126    CALL VTb(VTinca)
127   
128    calday = REAL(julien) + gmtime
129    ncsec  = NINT (86400.*gmtime)
130     
131    DO k = 1, klev
132       pdel(:,k) = paprs(:,k) - paprs (:,k+1)
133    END DO
134   
135    IF (config_inca == 'aero') THEN
136#ifdef INCA
137       CALL aerosolmain(                    &
138            aerosol_couple,tr_seri,pdtphys, &
139            pplay,pdel,prfl,pmflxr,psfl,    &
140            pmflxs,pmfu,itop_con,ibas_con,  &
141            pphi,airephy,nstep,rneb,t_seri, &     
142            rh,tau_aero,piz_aero,cg_aero,   &
143            rfname,ccm,lafin)
144#endif
145    END IF
146
147#ifdef INCA
148    CALL chemmain (tr_seri, &   !mmr
149         nstep,      & !nstep
150         calday,     & !calday
151         julien,     & !ncdate
152         ncsec,      & !ncsec
153         1,          & !lat
154         pdtphys,    & !delt
155         paprs(1,1), & !ps
156         pplay,      & !pmid
157         pdel,       & !pdel
158         airephy,    &
159         pctsrf(1,1),& !oro
160         ftsol,      & !tsurf
161         albsol,     & !albs
162         pphi,       & !zma
163         pphis,      & !phis
164         cldfra,     & !cldfr
165         rneb,       & !cldfr_st
166         diafra,     & !cldfr_cv
167         itop_con,   & !cldtop
168         ibas_con,   & !cldbot
169         cldliq,     & !cwat
170         prfl,       & !flxrst
171         pmflxr,     & !flxrcv
172         psfl,       & !flxsst
173         pmflxs,     & !flxscv
174         pmfu,       & !flxupd
175         flxmass_w,  & !flxmass_w
176         t_seri,     & !tfld
177         sh,         & !sh
178         rh,         & !rh
179         iip1,       & !nx
180         jjp1,       & !ny
181         source,     &
182         solsym)
183#endif
184   
185    CALL VTe(VTinca)
186    CALL VTb(VTphysiq)
187   
188   
189  END SUBROUTINE tracinca
190
191
192END MODULE tracinca_mod
Note: See TracBrowser for help on using the repository browser.