source: codes/icosagcm/branches/SATURN_DYNAMICO/ICOSAGCM/src/domain_param.f90 @ 314

Last change on this file since 314 was 293, checked in by millour, 10 years ago

Sanity check in init_domain_param only valid for pure MPI.
Checks for OpenMP and mixed MPI/Openmp to be implemented...
EM

File size: 1.0 KB
Line 
1MODULE domain_param
2
3INTEGER :: nsplit_i
4INTEGER :: nsplit_j
5INTEGER :: halo=1
6
7INTEGER, PARAMETER :: default_nsplit_i=1
8INTEGER, PARAMETER :: default_nsplit_j=1
9
10CONTAINS
11 
12  SUBROUTINE init_domain_param
13  USE ioipsl, ONLY: getin
14  USE mpipara, ONLY: using_mpi, mpi_size, is_mpi_master
15  USE omp_para, ONLY: using_openmp
16  IMPLICIT NONE
17    nsplit_i=default_nsplit_i
18    nsplit_j=default_nsplit_j
19    CALL getin('nsplit_i',nsplit_i)
20    CALL getin('nsplit_j',nsplit_j)
21
22    IF (using_mpi.and.(.not.using_openmp).and.(nsplit_i*nsplit_j*10<mpi_size)) THEN
23    ! Check that nsplit_i*nsplit_j*10>=mpi_size
24      IF (is_mpi_master) THEN
25        WRITE(*,*) "Error: Number of MPI processes must be"
26        WRITE(*,*) "       <= 10*nsplit_i_nsplit_j"
27        WRITE(*,*) " but nsplit_i=",nsplit_i," , nsplit_j=",nsplit_j
28        WRITE(*,*) " while using ",mpi_size," MPI processes"
29      ENDIF
30      STOP
31    ENDIF
32
33    ! TODO : same kind of test for OpenMP or mixed MPI/OpenMP cases
34  END SUBROUTINE init_domain_param
35 
36END MODULE domain_param
Note: See TracBrowser for help on using the repository browser.