Ignore:
Timestamp:
Aug 25, 2015, 5:14:59 PM (9 years ago)
Author:
Ehouarn Millour
Message:

More on physics/dynamics separation and cleanup:

  • Set things up so that all physics-related initializations are done via iniphysiq.
  • Created a "geometry_mod.F90" module in phy_common to store information on the loacl grid (i.e. replaces comgeomphy) and moreover give these variables more obvious names (e.g.: rlond => longitude, rlatd => latitude, airephy => cell_area).
  • removed obsolete comgeomphy.h and comgeomphy.F90

EM

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phy_common/physics_distribution_mod.F90

    r2348 r2351  
    11!
    2 !$Header$
     2!$Id$
    33!
    4 SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
    5   USE mod_phys_lmdz_para, ONLY: Init_phys_lmdz_para, klon_omp
    6   USE mod_grid_phy_lmdz, ONLY: Init_grid_phy_lmdz, nbp_lev
    7   USE dimphy, ONLY : Init_dimphy
    8   USE infotrac_phy, ONLY : type_trac
    9 #ifdef REPROBUS
    10   USE CHEM_REP, ONLY : Init_chem_rep_phys
    11 #endif
    12 
    13   IMPLICIT NONE
    14  
    15     INTEGER,INTENT(in) :: iim
    16     INTEGER,INTENT(in) :: jjp1
    17     INTEGER,INTENT(in) :: llm
    18     INTEGER,INTENT(in) :: nb_proc
    19     INTEGER,INTENT(in) :: distrib(0:nb_proc-1)
     4MODULE physics_distribution_mod
    205
    216
    22     CALL Init_grid_phy_lmdz(iim,jjp1,llm)
    23     CALL Init_phys_lmdz_para(iim,jjp1,nb_proc,distrib)
    24 !$OMP PARALLEL
    25     CALL Init_dimphy(klon_omp,nbp_lev)
     7CONTAINS
    268
    27 ! Initialization of Reprobus
    28     IF (type_trac == 'repr') THEN
    29 #ifdef REPROBUS
    30        CALL Init_chem_rep_phys(klon_omp,nbp_lev)
    31 #endif
    32     END IF
     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
     13  USE mod_grid_phy_lmdz, ONLY: init_grid_phy_lmdz
     14  IMPLICIT NONE
     15    INTEGER,INTENT(IN) :: grid_type
     16    INTEGER,INTENT(IN) :: nvertex
     17    INTEGER,INTENT(IN) :: nbp           
     18    INTEGER,INTENT(IN) :: nbp_lon
     19    INTEGER,INTENT(IN) :: nbp_lat
     20    INTEGER,INTENT(IN) :: nbp_lev
     21    INTEGER,INTENT(IN) :: communicator
    3322
    34 !$OMP END PARALLEL
     23
     24    CALL init_grid_phy_lmdz(grid_type,nvertex, nbp_lon,nbp_lat,nbp_lev)
     25    CALL init_phys_lmdz_para(nbp,nbp_lon, nbp_lat, communicator)
     26
     27  END SUBROUTINE init_physics_distribution 
     28
     29!SUBROUTINE Init_Phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
     30!  USE mod_phys_lmdz_para, ONLY: Init_phys_lmdz_para!, klon_omp
     31!  USE mod_grid_phy_lmdz, ONLY: Init_grid_phy_lmdz!, nbp_lev
     32!  USE dimphy, ONLY : Init_dimphy
     33!  USE infotrac_phy, ONLY : type_trac
     34!#ifdef REPROBUS
     35!  USE CHEM_REP, ONLY : Init_chem_rep_phys
     36!#endif
     37
     38!  IMPLICIT NONE
     39 
     40!    INTEGER,INTENT(in) :: iim
     41!    INTEGER,INTENT(in) :: jjp1
     42!    INTEGER,INTENT(in) :: llm
     43!    INTEGER,INTENT(in) :: nb_proc
     44!    INTEGER,INTENT(in) :: distrib(0:nb_proc-1)
     45
     46
     47!    CALL Init_grid_phy_lmdz(iim,jjp1,llm)
     48!    CALL Init_phys_lmdz_para(iim,jjp1,nb_proc,distrib)
     49!!$OMP PARALLEL
     50!    CALL Init_dimphy(klon_omp,nbp_lev)
     51!
     52!! Initialization of Reprobus
     53!    IF (type_trac == 'repr') THEN
     54!#ifdef REPROBUS
     55!       CALL Init_chem_rep_phys(klon_omp,nbp_lev)
     56!#endif
     57!    END IF
     58!
     59!!$OMP END PARALLEL
    3560 
    36 END SUBROUTINE Init_Phys_lmdz 
     61!END SUBROUTINE Init_Phys_lmdz 
     62
     63
     64
     65
     66
     67
     68
     69
     70END MODULE physics_distribution_mod
     71
Note: See TracChangeset for help on using the changeset viewer.