SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modi_gltools_glterr.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_glterr =======================
41 ! =======================================================================
42 !
43 ! Goal:
44 ! -----
45 ! Print an error message, the name of the routine issuing the message
46 ! and stop the model is the error is fatal.
47 ! First argument: routine name (can be extended with comments)
48 ! Second argument: error message
49 ! Third argument: a string 'WARN' or 'STOP'. If 'STOP' is specified
50 ! the error is considered as fatal and the model will stop.
51 !
52 ! Created : 2009/01 (D. Salas y Melia)
53 !
54 ! --------------------- BEGIN MODULE modi_gltools_glterr ------------------
55 !
56 !THXS_SFX!MODULE modi_gltools_glterr
57 !THXS_SFX!INTERFACE
58 !THXS_SFX!!
59 !THXS_SFX!SUBROUTINE gltools_glterr &
60 !THXS_SFX! ( hroutine,hmess,hflag )
61 !THXS_SFX!!
62 !THXS_SFX!! CHARACTER(400), INTENT(in) :: &
63 !THXS_SFX!! hroutine
64 !THXS_SFX!! CHARACTER(400), INTENT(in) :: &
65 !THXS_SFX!! hmess
66 !THXS_SFX!! CHARACTER(4), INTENT(in) :: &
67 !THXS_SFX!! hflag
68 !THXS_SFX! CHARACTER(LEN=*), INTENT(in) :: &
69 !THXS_SFX! hroutine
70 !THXS_SFX! CHARACTER(LEN=*), INTENT(in) :: &
71 !THXS_SFX! hmess
72 !THXS_SFX! CHARACTER(LEN=*), INTENT(in) :: &
73 !THXS_SFX! hflag
74 !THXS_SFX!END SUBROUTINE gltools_glterr
75 !THXS_SFX!!
76 !THXS_SFX!END INTERFACE
77 !THXS_SFX!END MODULE modi_gltools_glterr
78 !
79 ! ------------------- END MODULE modi_gltools_glterr ----------------------
80 !
81 !
82 ! -----------------------------------------------------------------------
83 ! -------------------------- SUBROUTINE gltools_glterr --------------------------
84 !
85 SUBROUTINE gltools_glterr &
86  ( hroutine,hmess,hflag )
87 !
88  USE modd_glt_param
89 !
90  IMPLICIT NONE
91 !
92 ! CHARACTER(400), INTENT(in) :: &
93 ! hroutine
94 ! CHARACTER(400), INTENT(in) :: &
95 ! hmess
96 ! CHARACTER(4), INTENT(in) :: &
97 ! hflag
98  CHARACTER(LEN=*), INTENT(in) :: &
99  hroutine
100  CHARACTER(LEN=*), INTENT(in) :: &
101  hmess
102  CHARACTER(LEN=*), INTENT(in) :: &
103  hflag
104 !
105  CHARACTER(7) :: &
106  ydiag
107 !
108 !
109  IF ( hflag/='STOP' .AND. hflag/='stop' .AND. &
110  hflag/='WARN' .AND. hflag/='warn' ) THEN
111  IF(lwg) THEN
112  WRITE(noutlu,*) 'Incorrect flag = ' // hflag // &
113  ' for routine GLTERR. We stop.'
114  IF ( noutlu/=6 ) CLOSE(noutlu)
115  ENDIF
116  stop
117  ENDIF
118 !
119  IF ( hflag=='STOP' .OR. hflag=='stop' ) THEN
120  ydiag='STOP'
121  ELSE
122  ydiag='WARNING'
123  ENDIF
124 !
125  IF (lwg) THEN
126  WRITE(noutlu,*) ' >>>> ' // trim(ydiag) // ' in glt_gelato <<<<'
127  WRITE(noutlu,*) ' >>>> ERROR in routine ' // trim(hroutine)
128  WRITE(noutlu,'(A70)') hmess
129  ENDIF
130  IF ( ydiag(1:4)=='STOP' ) THEN
131  IF (lwg) THEN
132  WRITE(noutlu,*) ' >>>> WE STOP ! <<<<'
133  IF ( noutlu/=6 ) CLOSE(noutlu)
134  ENDIF
135  stop
136  ENDIF
137 !
138 END SUBROUTINE gltools_glterr
139 !
140 ! ----------------------- END SUBROUTINE gltools_glterr -------------------------
141 ! -----------------------------------------------------------------------
subroutine gltools_glterr(hroutine, hmess, hflag)