GCC Code Coverage Report


Directory: ./
File: phys/tracinca_mod.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 14 0.0%
Branches: 0 6 0.0%

Line Branch Exec Source
1 !$Id $
2 !
3 MODULE tracinca_mod
4 !
5 ! This module prepares and calls the INCA main subroutines.
6 !
7 IMPLICIT NONE
8
9 CHARACTER(len=4),SAVE :: config_inca
10 !$OMP THREADPRIVATE(config_inca)
11 ! config_inca='none' => without INCA
12 ! config_inca='chem' => INCA with chemistry
13 ! config_inca='aero' => INCA with aerosols
14 CONTAINS
15
16 SUBROUTINE tracinca_init(aerosol,lessivage)
17 ! This subroutine initialize some control varaibles.
18
19 USE infotrac_phy, ONLY: nbtr
20 USE ioipsl_getin_p_mod, ONLY: getin_p
21 IMPLICIT NONE
22
23 ! Output variables
24 LOGICAL,DIMENSION(nbtr), INTENT(OUT) :: aerosol
25 LOGICAL,INTENT(OUT) :: lessivage
26
27
28 ! Initialization
29 lessivage =.FALSE.
30 aerosol(:) = .FALSE.
31
32 END SUBROUTINE tracinca_init
33
34 SUBROUTINE tracinca( &
35 nstep, julien, gmtime, lafin, &
36 pdtphys, t_seri, paprs, pplay, &
37 pmfu, upwd, ftsol, pctsrf, pphis, &
38 pphi, albsol, sh, ch, rh, &
39 cldfra, rneb, diafra, cldliq, &
40 itop_con, ibas_con, pmflxr, pmflxs, &
41 prfl, psfl, aerosol_couple, flxmass_w, &
42 tau_aero, piz_aero, cg_aero, ccm, &
43 rfname, &
44 tr_seri, source)
45
46 !========================================================
47 ! -- CHIMIE INCA --
48 !========================================================
49
50 USE dimphy
51 USE infotrac_phy, ONLY: nbtr
52 USE vampir
53 USE indice_sol_mod
54 USE geometry_mod, ONLY: cell_area
55 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat
56 USE aero_mod, ONLY : naero_grp
57 IMPLICIT NONE
58
59 !==========================================================================
60 ! -- DESCRIPTION DES ARGUMENTS --
61 !==========================================================================
62
63
64 ! EN ENTREE ...
65 !
66 !Configuration grille,temps:
67 INTEGER,INTENT(IN) :: nstep ! Appel physique
68 INTEGER,INTENT(IN) :: julien ! Jour julien
69 REAL,INTENT(IN) :: gmtime
70 REAL,INTENT(IN) :: pdtphys ! Pas d'integration pour la physique (seconde)
71 LOGICAL,INTENT(IN) :: lafin ! le flag de la fin de la physique
72
73
74 !Physique:
75 !--------
76 REAL,DIMENSION(klon,klev),INTENT(IN) :: t_seri ! Temperature
77 REAL,DIMENSION(klon,klev),INTENT(IN) :: sh ! humidite specifique
78 REAL,DIMENSION(klon,klev),INTENT(IN) :: ch ! eau liquide
79 REAL,DIMENSION(klon,klev),INTENT(IN) :: rh ! humidite relative
80 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: paprs ! pression pour chaque inter-couche (en Pa)
81 REAL,DIMENSION(klon,klev),INTENT(IN) :: pplay ! pression pour le mileu de chaque couche (en Pa)
82 REAL,DIMENSION(klon,klev),INTENT(IN) :: pphi ! geopotentiel
83 REAL,DIMENSION(klon),INTENT(IN) :: pphis
84 REAL,DIMENSION(klon,klev),INTENT(IN) :: cldliq ! eau liquide nuageuse
85 REAL,DIMENSION(klon,klev),INTENT(IN) :: cldfra ! fraction nuageuse (tous les nuages)
86 REAL,DIMENSION(klon,klev),INTENT(IN) :: diafra ! fraction nuageuse (convection ou stratus artificiels)
87 REAL,DIMENSION(klon,klev),INTENT(IN) :: rneb ! fraction nuageuse (grande echelle)
88 INTEGER,DIMENSION(klon),INTENT(IN) :: itop_con
89 INTEGER,DIMENSION(klon),INTENT(IN) :: ibas_con
90 REAL,DIMENSION(klon),INTENT(IN) :: albsol ! albedo surface
91 !
92 !Convection:
93 !----------
94 REAL,DIMENSION(klon,klev),INTENT(IN) :: pmfu ! flux de masse dans le panache montant - Tiedtke
95 REAL,DIMENSION(klon,klev),INTENT(IN) :: upwd ! flux de masse dans le panache montant - Emanuel
96
97 !...Tiedke
98 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: pmflxr, pmflxs ! Flux precipitant de pluie, neige aux interfaces [convection]
99 REAL,DIMENSION(klon,klev+1),INTENT(IN) :: prfl, psfl ! Flux precipitant de pluie, neige aux interfaces [large-scale]
100
101 LOGICAL,INTENT(IN) :: aerosol_couple
102 REAL,DIMENSION(klon,klev),INTENT(IN) :: flxmass_w
103 REAL,DIMENSION(klon,klev,naero_grp,2),INTENT(IN) :: tau_aero
104 REAL,DIMENSION(klon,klev,naero_grp,2),INTENT(IN) :: piz_aero
105 REAL,DIMENSION(klon,klev,naero_grp,2),INTENT(IN) :: cg_aero
106 CHARACTER(len=4),DIMENSION(naero_grp),INTENT(IN) :: rfname
107 REAL,DIMENSION(klon,klev,2),INTENT(IN) :: ccm
108
109 ! Arguments necessaires pour les sources et puits de traceur:
110 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: ftsol ! Temperature du sol (surf)(Kelvin)
111 REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol f(nature du sol)
112
113
114 ! InOutput argument
115 REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA]
116
117 ! Output arguments
118 REAL,DIMENSION(klon,nbtr), INTENT(OUT) :: source ! a voir lorsque le flux de surface est prescrit
119
120 !=======================================================================================
121 ! -- VARIABLES LOCALES TRACEURS --
122 !=======================================================================================
123
124 INTEGER :: k
125 REAL,DIMENSION(klon,klev) :: pdel
126 REAL,DIMENSION(klon,klev) :: zpmfu ! flux de masse dans le panache montant
127 REAL :: calday
128 INTEGER :: ncsec
129
130 CALL VTe(VTphysiq)
131 CALL VTb(VTinca)
132
133 calday = REAL(julien) + gmtime
134 ncsec = NINT (86400.*gmtime)
135
136 DO k = 1, klev
137 pdel(:,k) = paprs(:,k) - paprs (:,k+1)
138 END DO
139
140
141
142
143 CALL VTe(VTinca)
144 CALL VTb(VTphysiq)
145
146
147 END SUBROUTINE tracinca
148
149
150 END MODULE tracinca_mod
151