GCC Code Coverage Report


Directory: ./
File: dyn_phys_sub/callphysiq_mod.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 6 7 85.7%
Branches: 3 4 75.0%

Line Branch Exec Source
1 !
2 ! $Id: $
3 !
4 MODULE callphysiq_mod
5
6 IMPLICIT NONE
7
8 CONTAINS
9
10 480 SUBROUTINE call_physiq(klon,llm,nqtot,tname, &
11 debut_split,lafin_split, &
12 jD_cur,jH_cur_split,zdt_split, &
13 zplev_omp,zplay_omp, &
14 zpk_omp,zphi_omp,zphis_omp, &
15 presnivs_omp, &
16 zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp, &
17 flxwfi_omp,pducov, &
18 zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp,zdpsrf_omp)
19
20
21 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat
22 USE control_mod, ONLY: planet_type
23 USE physiq_mod, ONLY: physiq
24 IMPLICIT NONE
25
26 INTEGER,INTENT(IN) :: klon ! (local) number of atmospheric columns
27 INTEGER,INTENT(IN) :: llm ! number of atmospheric layers
28 INTEGER,INTENT(IN) :: nqtot ! number of tracers
29 CHARACTER(len=*),INTENT(IN) :: tname(nqtot) ! tracer names
30 LOGICAL,INTENT(IN) :: debut_split ! .true. if very first call to physics
31 LOGICAL,INTENT(IN) :: lafin_split ! .true. if last call to physics
32 REAL,INTENT(IN) :: JD_cur ! Julian day
33 REAL,INTENT(IN) :: JH_cur_split ! Julian hour (fraction of day)
34 REAL,INTENT(IN) :: zdt_split ! time step over which the physics are evaluated
35 REAL,INTENT(IN) :: zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
36 REAL,INTENT(IN) :: zplay_omp(klon,llm) ! mid-layer pressure (Pa)
37 REAL,INTENT(IN) :: zpk_omp(klon,llm) ! Exner function
38 REAL,INTENT(IN) :: zphi_omp(klon,llm) ! geopotential at midlayer
39 REAL,INTENT(IN) :: zphis_omp(klon) ! surface geopotential
40 REAL,INTENT(IN) :: presnivs_omp(llm) ! approximate pressure of atm. layers
41 REAL,INTENT(IN) :: zufi_omp(klon,llm) ! zonal wind (m/s)
42 REAL,INTENT(IN) :: zvfi_omp(klon,llm) ! meridional wind (m/s)
43 REAL,INTENT(IN) :: zrfi_omp(klon,llm) ! relative wind vorticity, in s-1
44 REAL,INTENT(IN) :: ztfi_omp(klon,llm) ! temperature (K)
45 REAL,INTENT(IN) :: zqfi_omp(klon,llm,nqtot) ! tracers (*/kg of air)
46 REAL,INTENT(IN) :: flxwfi_omp(klon,llm) ! Vertical mass flux on lower mesh interfaces (kg/s)
47 REAL,INTENT(IN) :: pducov(nbp_lon+1,nbp_lat,llm) ! dynamical tendency on ucov
48 ! tendencies (in */s) from the physics:
49 REAL,INTENT(OUT) :: zdufi_omp(klon,llm) ! tendency on zonal winds
50 REAL,INTENT(OUT) :: zdvfi_omp(klon,llm) ! tendency on meridional winds
51 REAL,INTENT(OUT) :: zdtfi_omp(klon,llm) ! tendency on temperature
52 REAL,INTENT(OUT) :: zdqfi_omp(klon,llm,nqtot) ! tendency on tracers
53 REAL,INTENT(OUT) :: zdpsrf_omp(klon) ! tendency on surface pressure
54
55 ! Local variables
56 CHARACTER(len=11) :: modname="call_physiq"
57 LOGICAL,SAVE :: firstcall=.true.
58 !$OMP THREADPRIVATE(firstcall)
59
60 ! Sanity check on physics package type
61
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 479 times.
480 IF (firstcall) THEN
62
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
1 IF (planet_type.ne."earth") THEN
63 CALL abort_gcm(modname,"wrong planet_type for this physics package",1)
64 ENDIF
65 1 firstcall=.false.
66 ENDIF
67
68
69 ! Call physics package with required inputs/outputs
70 CALL physiq(klon, &
71 llm, &
72 debut_split, &
73 lafin_split, &
74 zdt_split, &
75 zplev_omp, &
76 zplay_omp, &
77 zphi_omp, &
78 zphis_omp, &
79 presnivs_omp, &
80 zufi_omp, &
81 zvfi_omp, &
82 zrfi_omp, &
83 ztfi_omp, &
84 zqfi_omp, &
85 flxwfi_omp, &
86 zdufi_omp, &
87 zdvfi_omp, &
88 zdtfi_omp, &
89 zdqfi_omp, &
90 480 zdpsrf_omp)
91
92
93 480 END SUBROUTINE call_physiq
94
95 END MODULE callphysiq_mod
96