source: LMDZ6/branches/IPSL-CM6A-MR/libf/phy_common/physics_distribution_mod.F90 @ 5225

Last change on this file since 5225 was 3435, checked in by Laurent Fairhead, 6 years ago

"Historic" :-) commit merging the physics branch used for DYNAMICO with the LMDZ trunk.
The same physics branch can now be used seamlessly with the traditional lon-lat LMDZ
dynamical core and DYNAMICO.
Testing consisted in running a lon-lat LMDZ bucket simulation with the NPv6.1 physics package
with the original trunk sources and the merged sources. Tests were succesful in the sense that
numeric continuity was preserved in the restart files from both simulation. Further tests
included running both versions of the physics codes for one year in a LMDZOR setting in which
the restart files also came out identical.

Caution:

  • as the physics package now manages unstructured grids, grid information needs to be transmitted

to the surface scheme ORCHIDEE. This means that the interface defined in surf_land_orchidee_mod.F90
is only compatible with ORCHIDEE version orchidee2.1 and later versions. If previous versions of
ORCHIDEE need to be used, the CPP key ORCHIDEE_NOUNSTRUCT needs to be set at compilation time.
This is done automatically if makelmdz/makelmdz_fcm are called with the veget orchidee2.0 switch

  • due to a limitation in XIOS, the time at which limit conditions will be read in by DYNAMICO will be

delayed by one physic timestep with respect to the time it is read in by the lon-lat model. This is caused
by the line

IF (MOD(itime-1, lmt_pas) == 0 .OR. (jour_lu /= jour .AND. grid_type /= unstructured)) THEN ! time to read

in limit_read_mod.F90

Work still needed on COSP integration and XML files for DYNAMICO

EM, YM, LF

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1!
2!$Id: physics_distribution_mod.F90 3435 2019-01-22 15:21:59Z abarral $
3!
4MODULE physics_distribution_mod
5
6
7CONTAINS
8
9  SUBROUTINE init_physics_distribution(grid_type, nvertex, &
10                                       nbp, nbp_lon, nbp_lat, nbp_lev, &
11                                       communicator)
12  USE mod_phys_lmdz_para, ONLY: init_phys_lmdz_para, klon_omp
13  USE mod_grid_phy_lmdz, ONLY: init_grid_phy_lmdz
14  USE dimphy, ONLY : Init_dimphy
15  USE infotrac_phy, ONLY : type_trac
16#ifdef REPROBUS
17  USE CHEM_REP, ONLY : Init_chem_rep_phys
18#endif
19
20  IMPLICIT NONE
21    INTEGER,INTENT(IN) :: grid_type
22    INTEGER,INTENT(IN) :: nvertex
23    INTEGER,INTENT(IN) :: nbp           
24    INTEGER,INTENT(IN) :: nbp_lon
25    INTEGER,INTENT(IN) :: nbp_lat
26    INTEGER,INTENT(IN) :: nbp_lev
27    INTEGER,INTENT(IN) :: communicator
28
29
30    CALL init_grid_phy_lmdz(grid_type,nvertex, nbp_lon,nbp_lat,nbp_lev)
31    CALL init_phys_lmdz_para(nbp,nbp_lon, nbp_lat, communicator)
32!$OMP PARALLEL
33    CALL init_dimphy(klon_omp,nbp_lev)
34
35! Initialization of Reprobus
36    IF (type_trac == 'repr') THEN
37#ifdef REPROBUS
38       CALL Init_chem_rep_phys(klon_omp,nbp_lev)
39#endif
40    END IF
41
42!$OMP END PARALLEL
43
44  END SUBROUTINE init_physics_distribution 
45
46!SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
47!  USE mod_phys_lmdz_para, ONLY: Init_phys_lmdz_para!, klon_omp
48!  USE mod_grid_phy_lmdz, ONLY: Init_grid_phy_lmdz!, nbp_lev
49!  USE dimphy, ONLY : Init_dimphy
50!  USE infotrac_phy, ONLY : type_trac
51!#ifdef REPROBUS
52!  USE CHEM_REP, ONLY : Init_chem_rep_phys
53!#endif
54
55!  IMPLICIT NONE
56 
57!    INTEGER,INTENT(in) :: iim
58!    INTEGER,INTENT(in) :: jjp1
59!    INTEGER,INTENT(in) :: llm
60!    INTEGER,INTENT(in) :: nb_proc
61!    INTEGER,INTENT(in) :: distrib(0:nb_proc-1)
62
63
64!    CALL Init_grid_phy_lmdz(iim,jjp1,llm)
65!    CALL Init_phys_lmdz_para(iim,jjp1,nb_proc,distrib)
66!!$OMP PARALLEL
67!    CALL Init_dimphy(klon_omp,nbp_lev)
68!
69!! Initialization of Reprobus
70!    IF (type_trac == 'repr') THEN
71!#ifdef REPROBUS
72!       CALL Init_chem_rep_phys(klon_omp,nbp_lev)
73!#endif
74!    END IF
75!
76!!$OMP END PARALLEL
77 
78!END SUBROUTINE Init_Phys_lmdz 
79
80
81
82
83
84
85
86
87END MODULE physics_distribution_mod
88
Note: See TracBrowser for help on using the repository browser.