SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modi_gltools_nextval.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !GLT_LIC The GELATO model is a seaice model used in stand-alone or embedded mode.
6 !GLT_LIC It has been developed by Meteo-France. The holder of GELATO is Meteo-France.
7 !GLT_LIC
8 !GLT_LIC This software is governed by the CeCILL-C license under French law and biding
9 !GLT_LIC by the rules of distribution of free software. See the CeCILL-C_V1-en.txt
10 !GLT_LIC (English) and CeCILL-C_V1-fr.txt (French) for details. The CeCILL is a free
11 !GLT_LIC software license, explicitly compatible with the GNU GPL
12 !GLT_LIC (see http://www.gnu.org/licenses/license-list.en.html#CeCILL)
13 !GLT_LIC
14 !GLT_LIC The CeCILL-C licence agreement grants users the right to modify and re-use the
15 !GLT_LIC software governed by this free software license. The exercising of this right
16 !GLT_LIC is conditional upon the obligation to make available to the community the
17 !GLT_LIC modifications made to the source code of the software so as to contribute to
18 !GLT_LIC its evolution.
19 !GLT_LIC
20 !GLT_LIC In consideration of access to the source code and the rights to copy, modify
21 !GLT_LIC and redistribute granted by the license, users are provided only with a limited
22 !GLT_LIC warranty and the software's author, the holder of the economic rights, and the
23 !GLT_LIC successive licensors only have limited liability. In this respect, the risks
24 !GLT_LIC associated with loading, using, modifying and/or developing or reproducing the
25 !GLT_LIC software by the user are brought to the user's attention, given its Free
26 !GLT_LIC Software status, which may make it complicated to use, with the result that its
27 !GLT_LIC use is reserved for developers and experienced professionals having in-depth
28 !GLT_LIC computer knowledge. Users are therefore encouraged to load and test the
29 !GLT_LIC suitability of the software as regards their requirements in conditions enabling
30 !GLT_LIC the security of their systems and/or data to be ensured and, more generally, to
31 !GLT_LIC use and operate it in the same conditions of security.
32 !GLT_LIC
33 !GLT_LIC The GELATO sofware is cureently distibuted with the SURFEX software, available at
34 !GLT_LIC http://www.cnrm.meteo.fr/surfex. The fact that you download the software deemed that
35 !GLT_LIC you had knowledge of the CeCILL-C license and that you accept its terms.
36 !GLT_LIC Attempts to use this software in a way not complying with CeCILL-C license
37 !GLT_LIC may lead to prosecution.
38 !GLT_LIC
39 ! =======================================================================
40 ! ===================== MODULE modi_gltools_nextval =======================
41 ! =======================================================================
42 !
43 !
44 ! This module contains a subroutine that allows to read valid
45 ! information in Gelato "namelist".
46 !
47 ! ------------------ BEGIN MODULE modi_gltools_nextval --------------------
48 !
49 !THXS_SFX!MODULE modi_gltools_nextval
50 !THXS_SFX!INTERFACE
51 !THXS_SFX!!
52 !THXS_SFX!SUBROUTINE gltools_nextval( klun,hlistfld,klistfound,kok,hpar,hval,hcomment )
53 !THXS_SFX! INTEGER, INTENT(in) :: &
54 !THXS_SFX! klun
55 !THXS_SFX! CHARACTER(80), DIMENSION(:), INTENT(in) :: &
56 !THXS_SFX! hlistfld
57 !THXS_SFX! INTEGER, DIMENSION(:), INTENT(inout) :: &
58 !THXS_SFX! klistfound
59 !THXS_SFX! INTEGER, INTENT(out) :: &
60 !THXS_SFX! kok
61 !THXS_SFX! CHARACTER(80), INTENT(out) :: &
62 !THXS_SFX! hpar,hval
63 !THXS_SFX! CHARACTER(1), OPTIONAL, INTENT(in) :: &
64 !THXS_SFX! hcomment
65 !THXS_SFX!END SUBROUTINE gltools_nextval
66 !THXS_SFX!!
67 !THXS_SFX!END INTERFACE
68 !THXS_SFX!END MODULE modi_gltools_nextval
69 !
70 ! --------------------- END MODULE TOOLS_NEXTVAL ------------------------
71 !
72 !
73 SUBROUTINE gltools_nextval( klun,hlistfld,klistfound,kok,hpar,hval,hcomment )
74 !
75 USE modi_gltools_nextline
76 !
78 !
79 IMPLICIT NONE
80 !
81  INTEGER, INTENT(in) :: &
82  klun
83  CHARACTER(80), DIMENSION(:), INTENT(in) :: &
84  hlistfld
85  INTEGER, DIMENSION(:), INTENT(inout) :: &
86  klistfound
87  INTEGER, INTENT(out) :: &
88  kok
89  CHARACTER(80), INTENT(out) :: &
90  hpar,hval
91  CHARACTER(1), OPTIONAL, INTENT(in) :: &
92  hcomment
93 !
94  INTEGER :: &
95  iend,infld,ji
96  CHARACTER(1) :: ycomment
97 !
98 !
99 !
100 ! 1. Define the comment character
101 ! ================================
102 !
103 IF (present(hcomment)) THEN
104  ycomment = hcomment
105 ELSE
106  ycomment = '#'
107 ENDIF
108 !
109 !
110 ! 2. Get the first informative line
111 ! ==================================
112 !
113  CALL gltools_nextline( klun,iend,hpar,hval,hcomment=ycomment )
114 !
115 !
116 ! 3. Controls
117 ! ============
118 !
119 infld = SIZE(hlistfld)
120 !
121 IF ( iend==1 ) THEN
122  IF (lwg) THEN
123  WRITE(*,*) '********************************************* '
124  WRITE(*,*) '*** No valid entry was found in gltpar for :'
125  DO ji=1,infld
126  IF ( klistfound(ji)==0 ) WRITE(*,*) hlistfld(ji)
127  END DO
128  WRITE(*,*) '*** Check gltpar file. We stop.'
129  ENDIF
130  stop
131 ENDIF
132 DO ji=1,infld
133  IF ( trim(adjustl(hlistfld(ji)))==trim(adjustl(hpar)) ) THEN
134  klistfound(ji)=1
135  EXIT
136  ENDIF
137 END DO
138 !
139 IF ( all(klistfound==1) ) THEN
140  kok=1
141  ELSE
142  kok=0
143 ENDIF
144 !
145 END SUBROUTINE gltools_nextval
subroutine gltools_nextline(klun, kend, hpar, hval, hcomment)
subroutine gltools_nextval(klun, hlistfld, klistfound, kok, hpar, hval, hcomment)