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

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

Added an explicit error message when nsplit_i and nsplit_j values are not compatible with number of MPI processes.
EM

File size: 884 bytes
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: mpi_size, is_mpi_master
15  IMPLICIT NONE
16    nsplit_i=default_nsplit_i
17    nsplit_j=default_nsplit_j
18    CALL getin('nsplit_i',nsplit_i)
19    CALL getin('nsplit_j',nsplit_j)
20    ! Check that nsplit_i*nsplit_j*10>=mpi_size
21    IF (nsplit_i*nsplit_j*10<mpi_size) THEN
22      IF (is_mpi_master) THEN
23        WRITE(*,*) "Error: Number of MPI processes must be"
24        WRITE(*,*) "       <= 10*nsplit_i_nsplit_j"
25        WRITE(*,*) " but nsplit_i=",nsplit_i," , nsplit_j=",nsplit_j
26        WRITE(*,*) " while using ",mpi_size," MPI processes"
27      ENDIF
28      STOP
29    ENDIF
30  END SUBROUTINE init_domain_param
31 
32END MODULE domain_param
Note: See TracBrowser for help on using the repository browser.