LMDZ
getparam.F90
Go to the documentation of this file.
1 !
2 ! $Id: getparam.F90 2094 2014-07-16 16:55:47Z lguez $
3 !
4 MODULE getparam
5 #ifdef CPP_IOIPSL
6  USE ioipsl
7 #else
8 ! if not using IOIPSL, we still need to use (a local version of) getin
10 #endif
11 
12  INTERFACE getpar
13  MODULE PROCEDURE getparamr,getparami,getparaml
14  END INTERFACE
16 
17  INTEGER, PARAMETER :: out_eff=99
18 
19 CONTAINS
20  SUBROUTINE ini_getparam(fichier)
21  USE parallel_lmdz
22  !
23  IMPLICIT NONE
24  !
25  CHARACTER*(*) :: fichier
26  IF (mpi_rank==0) OPEN(out_eff,file=fichier,status='unknown',form='formatted')
27 
28  END SUBROUTINE ini_getparam
29 
30  SUBROUTINE fin_getparam
31  USE parallel_lmdz
32  !
33  IMPLICIT NONE
34  !
35  IF (mpi_rank==0) CLOSE(out_eff)
36 
37  END SUBROUTINE fin_getparam
38 
39  SUBROUTINE getparamr(TARGET,def_val,ret_val,comment)
41  !
42  IMPLICIT NONE
43  !
44  ! Get a real scalar. We first check if we find it
45  ! in the database and if not we get it from the run.def
46  !
47  ! getinr1d and getinr2d are written on the same pattern
48  !
49  CHARACTER*(*) :: TARGET
50  REAL :: def_val
51  REAL :: ret_val
52  CHARACTER*(*) :: comment
53 
54  ret_val=def_val
55  call getin(TARGET,ret_val)
56 
57  IF (mpi_rank==0) THEN
58  write(out_eff,*) '######################################'
59  write(out_eff,*) '#### ',comment,' #####'
60  write(out_eff,*) TARGET,'=',ret_val
61  ENDIF
62 
63  END SUBROUTINE getparamr
64 
65  SUBROUTINE getparami(TARGET,def_val,ret_val,comment)
67  !
68  IMPLICIT NONE
69  !
70  ! Get a real scalar. We first check if we find it
71  ! in the database and if not we get it from the run.def
72  !
73  ! getinr1d and getinr2d are written on the same pattern
74  !
75  CHARACTER*(*) :: TARGET
76  INTEGER :: def_val
77  INTEGER :: ret_val
78  CHARACTER*(*) :: comment
79 
80  ret_val=def_val
81  call getin(TARGET,ret_val)
82 
83  IF (mpi_rank==0) THEN
84  write(out_eff,*) '######################################'
85  write(out_eff,*) '#### ',comment,' #####'
86  write(out_eff,*) comment
87  write(out_eff,*) TARGET,'=',ret_val
88  ENDIF
89 
90  END SUBROUTINE getparami
91 
92  SUBROUTINE getparaml(TARGET,def_val,ret_val,comment)
94  !
95  IMPLICIT NONE
96  !
97  ! Get a real scalar. We first check if we find it
98  ! in the database and if not we get it from the run.def
99  !
100  ! getinr1d and getinr2d are written on the same pattern
101  !
102  CHARACTER*(*) :: TARGET
103  LOGICAL :: def_val
104  LOGICAL :: ret_val
105  CHARACTER*(*) :: comment
106 
107  ret_val=def_val
108  call getin(TARGET,ret_val)
109 
110  IF (mpi_rank==0) THEN
111  write(out_eff,*) '######################################'
112  write(out_eff,*) '#### ',comment,' #####'
113  write(out_eff,*) TARGET,'=',ret_val
114  ENDIF
115 
116  END SUBROUTINE getparaml
117 
118 
119 END MODULE getparam
subroutine fin_getparam
Definition: getparam.F90:29
integer, save mpi_rank
!$Header!integer nvarmx s s s fichier
Definition: gradsdef.h:20
subroutine ini_getparam(fichier)
Definition: getparam.F90:21
subroutine, private getparaml(TARGET, def_val, ret_val, comment)
Definition: getparam.F90:84
subroutine, private getparamr(TARGET, def_val, ret_val, comment)
Definition: getparam.F90:37
integer, parameter out_eff
Definition: getparam.F90:17
subroutine, private getparami(TARGET, def_val, ret_val, comment)
Definition: getparam.F90:60