source: LMDZ5/trunk/libf/dynphy_lonlat/phydev/callphysiq_mod.F90 @ 2453

Last change on this file since 2453 was 2422, checked in by Ehouarn Millour, 9 years ago

Small modification in the way time and calendar are handled: Now all the time keeping is done in the physics and only the timestep is transfered from the dynamics to the physics. Due to changes in computations and roundoffs this will change reference bench results.
The implementation of this change in phymar is left as future work.
EM

File size: 3.3 KB
Line 
1!
2! $Id: $
3!
4MODULE callphysiq_mod
5
6IMPLICIT NONE
7
8CONTAINS
9
10SUBROUTINE 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                       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 physiq_mod, ONLY: physiq
23  IMPLICIT NONE
24
25  INTEGER,INTENT(IN) :: klon ! (local) number of atmospheric columns
26  INTEGER,INTENT(IN) :: llm  ! number of atmospheric layers
27  INTEGER,INTENT(IN) :: nqtot ! number of tracers
28  CHARACTER(len=*),INTENT(IN) :: tname(nqtot) ! tracer names
29  LOGICAL,INTENT(IN) :: debut_split ! .true. if very first call to physics
30  LOGICAL,INTENT(IN) :: lafin_split ! .true. if last call to physics
31  REAL,INTENT(IN) :: JD_cur ! Julian day
32  REAL,INTENT(IN) :: JH_cur_split ! Julian hour (fraction of day)
33  REAL,INTENT(IN) :: zdt_split ! time step over which the physics are evaluated
34  REAL,INTENT(IN) :: zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
35  REAL,INTENT(IN) :: zplay_omp(klon,llm) ! mid-layer pressure (Pa)
36  REAL,INTENT(IN) :: zphi_omp(klon,llm) ! geopotential at midlayer
37  REAL,INTENT(IN) :: zphis_omp(klon) ! surface geopotential
38  REAL,INTENT(IN) :: presnivs_omp(llm) ! approximate pressure of atm. layers
39  REAL,INTENT(IN) :: zufi_omp(klon,llm) ! zonal wind (m/s)
40  REAL,INTENT(IN) :: zvfi_omp(klon,llm) ! meridional wind (m/s)
41  REAL,INTENT(IN) :: zrfi_omp(klon,llm) ! relative wind vorticity, in s-1
42  REAL,INTENT(IN) :: ztfi_omp(klon,llm) ! temperature (K)
43  REAL,INTENT(IN) :: zqfi_omp(klon,llm,nqtot) ! tracers (*/kg of air)
44  REAL,INTENT(IN) :: flxwfi_omp(klon,llm) ! Vertical mass flux on lower mesh interfaces (kg/s)
45  REAL,INTENT(IN) :: pducov(nbp_lon+1,nbp_lat,llm) ! dynamical tendency on ucov
46  ! tendencies (in */s) from the physics:
47  REAL,INTENT(OUT) :: zdufi_omp(klon,llm) ! tendency on zonal winds
48  REAL,INTENT(OUT) :: zdvfi_omp(klon,llm) ! tendency on meridional winds
49  REAL,INTENT(OUT) :: zdtfi_omp(klon,llm) ! tendency on temperature
50  REAL,INTENT(OUT) :: zdqfi_omp(klon,llm,nqtot) ! tendency on tracers
51  REAL,INTENT(OUT) :: zdpsrf_omp(klon) ! tendency on surface pressure
52 
53
54! Call physics package with required inputs/outputs
55  CALL physiq(klon,           &
56              llm,            &
57              debut_split,    &
58              lafin_split,    &
59              zdt_split,      &
60              zplev_omp,      &
61              zplay_omp,      &
62              zphi_omp,       &
63              zphis_omp,      &
64              presnivs_omp,   &
65              zufi_omp,       &
66              zvfi_omp,       &
67              ztfi_omp,       &
68              zqfi_omp,       &
69              flxwfi_omp,     &
70              zdufi_omp,      &
71              zdvfi_omp,      &
72              zdtfi_omp,      &
73              zdqfi_omp,      &
74              zdpsrf_omp)
75
76
77END SUBROUTINE call_physiq
78
79END MODULE callphysiq_mod
Note: See TracBrowser for help on using the repository browser.