SURFEX v8.1
General documentation of Surfex
lfineg.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe LFI
3 
4 SUBROUTINE lfineg_fort &
5 & (lfi, knivau )
6 USE lfimod, ONLY : lficom
7 USE parkind1, ONLY : jprb
8 USE yomhook , ONLY : lhook, dr_hook
10 IMPLICIT NONE
11 !****
12 ! CE SOUS-PROGRAMME SE CHARGE DE METTRE LE NIVEAU GLOBAL D'ERREUR
13 ! FATALE (*LFI%NERFAG*) A LA VALEUR KNIVAU . PAR DEFAUT, LFI%NERFAG VAUT 1.
14 !**
15 ! ARGUMENT : KNIVAU (ENTREE) ==> NIVEAU GLOBAL D'ERREUR FATALE.
16 ! VALEURS POSSIBLES
17 !
18 ! 0 : RENDRE FATALE TOUTE ERREUR DETECTEE, MEME SI ELLE CORRESPOND
19 ! A UN FICHIER OUVERT AVEC L'OPTION "PAS D'ERREUR FATALE".
20 ! 1 : NE REND FATALES QUE CERTAINES ERREURS "GLOBALES", C'EST-A-DIRE
21 ! NON RELIABLES A UN FICHIER OUVERT, ET LES ERREURS SUR LES FI-
22 ! CHIERS OUVERTS AVEC L'OPTION "ERREUR FATALE" (MODE PAR DEFAUT)
23 ! 2 : PASSER OUTRE TOUTE ERREUR DETECTEE, MEME SI ELLE CORRESPOND
24 ! A UN FICHIER OUVERT AVEC L'OPTION "ERREUR FATALE".
25 ! NEANMOINS, LE CODE-REPONSE EVENTUEL NE SERA PAS ZERO.
26 !
27 !
28 TYPE(lficom) :: LFI
29 INTEGER (KIND=JPLIKB) KNIVAU, INIMES, IREP, INUMER
30 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
31 CHARACTER(LEN=LFI%JPLMES) CLMESS
32 CHARACTER(LEN=LFI%JPLFTX) CLACTI
33 LOGICAL LLFATA
34 
35 !
36 REAL(KIND=JPRB) :: ZHOOK_HANDLE
37 IF (lhook) CALL dr_hook('LFINEG_FORT',0,zhook_handle)
38 clacti=''
39 IF (lfi%LFINEG_LLPREA) THEN
40  CALL lfiini_fort &
41 & (lfi, 2_jplikb )
42  lfi%LFINEG_LLPREA=.false.
43 ENDIF
44 !
45 IF (knivau.GE.0.AND.knivau.LE.2) THEN
46  lfi%NERFAG=knivau
47  irep=0
48 ELSE
49  irep=-2
50 ENDIF
51 !
52 llfata=irep.NE.0.AND.lfi%NERFAG.NE.2
53 !
54 IF (llfata) THEN
55  inimes=2
56 ELSEIF (irep.NE.0) THEN
57  inimes=0
58 ELSEIF (lfi%NIMESG.EQ.2) THEN
59  inimes=2
60 ELSE
61  IF (lhook) CALL dr_hook('LFINEG_FORT',1,zhook_handle)
62  RETURN
63 ENDIF
64 !
65 inumer=lfi%JPNIL
66 clnspr='LFINEG'
67 !
68 IF (max(inimes,lfi%NIMESG).EQ.2) THEN
69 !
70  IF (lfi%LFRANC) THEN
71  WRITE (unit=clmess, &
72 & fmt='(''KNIVAU='',I5,'', CODE INTERNE='', &
73 & I4)') knivau,irep
74  ELSE
75  WRITE (unit=clmess, &
76 & fmt='(''KNIVAU='',I5,'', INTERNAL CODE='', &
77 & I4)') knivau,irep
78  ENDIF
79 !
80  IF (inimes.NE.2) CALL lfiems_fort &
81 & (lfi, inumer,lfi%NIMESG,irep, &
82 & .false.,clmess, &
83 & clnspr,clacti)
84 ENDIF
85 !
86 CALL lfiems_fort &
87 & (lfi, inumer,inimes,irep,llfata, &
88 & clmess,clnspr,clacti)
89 !
90 IF (lhook) CALL dr_hook('LFINEG_FORT',1,zhook_handle)
91 END SUBROUTINE lfineg_fort
92 
93 
94 
95 ! Oct-2012 P. Marguinaud 64b LFI
96 SUBROUTINE lfineg64 &
97 & (knivau)
98 USE lfimod, ONLY : lfi => lficom_default, &
101 USE lfi_precision
102 IMPLICIT NONE
103 ! Arguments
104 INTEGER (KIND=JPLIKB) KNIVAU ! IN
105 
106 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
107 
108 CALL lfineg_fort &
109 & (lfi, knivau)
110 
111 END SUBROUTINE lfineg64
112 
113 SUBROUTINE lfineg &
114 & (knivau)
115 USE lfimod, ONLY : lfi => lficom_default, &
118 USE lfi_precision
119 IMPLICIT NONE
120 ! Arguments
121 INTEGER (KIND=JPLIKM) KNIVAU ! IN
122 
123 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
124 
125 CALL lfineg_mt &
126 & (lfi, knivau)
127 
128 END SUBROUTINE lfineg
129 
130 SUBROUTINE lfineg_mt &
131 & (lfi, knivau)
132 USE lfimod, ONLY : lficom
133 USE lfi_precision
134 IMPLICIT NONE
135 ! Arguments
136 type(lficom) lfi ! INOUT
137 INTEGER (KIND=JPLIKM) KNIVAU ! IN
138 ! Local integers
139 INTEGER (KIND=JPLIKB) INIVAU ! IN
140 ! Convert arguments
141 
142 inivau = int( knivau, jplikb)
143 
144 CALL lfineg_fort &
145 & (lfi, inivau)
146 
147 
148 END SUBROUTINE lfineg_mt
149 
150 !INTF KNIVAU IN
integer, parameter jplikb
subroutine lfineg64(KNIVAU)
Definition: lfineg.F90:98
subroutine new_lfi_default()
Definition: lfimod.F90:376
logical, save lficom_default_init
Definition: lfimod.F90:371
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfiini_fort(LFI, KOPTIO)
Definition: lfiini.F90:6
subroutine lfineg_fort(LFI, KNIVAU)
Definition: lfineg.F90:6
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
subroutine lfineg(KNIVAU)
Definition: lfineg.F90:115
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1
subroutine lfineg_mt(LFI, KNIVAU)
Definition: lfineg.F90:132