source: trunk/LMDZ.MARS/libf/dynphy_lonlat/mod_interface_dyn_phys.F90 @ 2414

Last change on this file since 2414 was 1682, checked in by emillour, 8 years ago

All GCMs: set things up to enable pluging physics with dynamico

  • dyn3d
  • gcm.F90 : move I/O initialization (dates) to be done before physics

initialization

  • dyn3dpar
  • gcm.F : move I/O initialization (dates) to be done before physics

initialization

  • dynphy_lonlat:
  • inigeomphy_mod.F90 : add ind_cell_glo computation and transfer

to init_geometry

  • phy_common:
  • geometry_mod.F90 : add ind_cell_glo module variable to store global

column index

  • print_control_mod.F90 : make initialization occur via init_print_control_mod

to avoid circular module dependencies

  • init_print_control_mod.F90 : added to initialize print_control_mod module

variables

  • mod_phys_lmdz_mpi_data.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_para.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_omp_data.F90 : add is_omp_master (alias of is_omp_root) module

variable and use print_control_mod (rather than
iniprint.h)

  • physics_distribution_mod.F90 : add call to init_dimphy in

init_physics_distribution

  • xios_writefield.F90 : generic routine to output field with XIOS (for debug)
  • misc:
  • handle_err_m.F90 : call abort_physic, rather than abort_gcm
  • wxios.F90 : updates to enable unstructured grids

set module variable g_ctx_name to "LMDZ"
wxios_init(): remove call to wxios_context_init
wxios_context_init(): call xios_context_initialize with COMM_LMDZ_PHY
add routine wxios_set_context() to get handle and set context to XIOS
wxios_domain_param(): change arguments and generate the domain in-place
add wxios_domain_param_unstructured(): generate domain for unstructured case

NB: access is via "domain group" (whereas it is via "domain" in

wxios_domain_param)

  • dynphy_lonlat/phy[std|mars|venus|titan]:
  • iniphysiq_mod.F90 : Remove call to init_dimphy (which is now done in

phy_common/physics_distribution_mod.F90)

EM

File size: 1.2 KB
Line 
1!
2! $Id: mod_interface_dyn_phys.F90 2351 2015-08-25 15:14:59Z emillour $
3!
4MODULE mod_interface_dyn_phys
5  INTEGER,SAVE,dimension(:),allocatable :: index_i
6  INTEGER,SAVE,dimension(:),allocatable :: index_j
7 
8 
9CONTAINS
10 
11#ifdef CPP_PARA
12! Interface with parallel physics,
13  SUBROUTINE Init_interface_dyn_phys
14    USE mod_phys_lmdz_mpi_data
15    IMPLICIT NONE
16    include 'dimensions.h'   
17   
18    INTEGER :: i,j,k
19   
20    ALLOCATE(index_i(klon_mpi))
21    ALLOCATE(index_j(klon_mpi))
22   
23    k=1
24    IF (is_north_pole_dyn) THEN
25      index_i(k)=1
26      index_j(k)=1
27      k=2
28    ELSE
29      DO i=ii_begin,iim
30        index_i(k)=i
31        index_j(k)=jj_begin
32        k=k+1
33       ENDDO
34    ENDIF
35   
36    DO j=jj_begin+1,jj_end-1
37      DO i=1,iim
38        index_i(k)=i
39        index_j(k)=j
40        k=k+1
41      ENDDO
42    ENDDO
43   
44    IF (is_south_pole_dyn) THEN
45      index_i(k)=1
46      index_j(k)=jj_end
47    ELSE
48      DO i=1,ii_end
49        index_i(k)=i
50        index_j(k)=jj_end
51        k=k+1
52       ENDDO
53    ENDIF
54 
55  END SUBROUTINE Init_interface_dyn_phys
56#else
57  SUBROUTINE Init_interface_dyn_phys
58  ! dummy routine for seq case
59  END SUBROUTINE Init_interface_dyn_phys
60#endif
61! of #ifdef CPP_PARA
62END MODULE mod_interface_dyn_phys
Note: See TracBrowser for help on using the repository browser.