SURFEX v8.1
General documentation of Surfex
fatale.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe FA
3 SUBROUTINE fatale_fort &
4 & (fa, krep, knumer, lderfa )
5 USE fa_mod, ONLY : fa_com
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! Ce sous-programme permet d'activer ou de desactiver l'option
12 ! rendant fatale toute erreur detectee sur un fichier particulier,
13 ! ouvert pour le Logiciel de Fichiers ARPEGE, de meme pour l'option
14 ! correspondante du logiciel LFI.
15 ! Cependant, tant que le niveau global d'erreur fatale *FA%NRFAGA*
16 ! vaut 0 ou 2, l'option propre au fichier est inoperante.
17 ! *FA%NRFAGA* vaut par defaut 1, et est reglable via le s/p "FANERG".
18 !**
19 ! Arguments : KREP (Sortie) ==> Code-reponse du sous-programme;
20 ! KNUMER (Entree) ==> Numero d'Unite Logique concernee;
21 ! LDERFA (Entree) ==> Option d'Erreur Fatale (Vrai=oui).
22 !
23 !
24 !
25 TYPE(fa_com) :: FA
26 INTEGER (KIND=JPLIKB) KREP, KNUMER
27 !
28 INTEGER (KIND=JPLIKB) IRANG, IREP, INIMES
29 !
30 LOGICAL LDERFA, LLRLFI
31 !
32 CHARACTER(LEN=FA%JPXNOM) CLACTI
33 CHARACTER(LEN=FA%JPLMES) CLMESS
34 CHARACTER(LEN=FA%JPLSPX) CLNSPR
35 LOGICAL LLFATA
36 
37 !
38 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (lhook) CALL dr_hook('FATALE_MT',0,zhook_handle)
40 clacti=''
41 CALL fanumu_fort &
42 & (fa, knumer,irang)
43 !
44 IF (irang.NE.0) THEN
45  fa%FICHIER(irang)%LERRFA=lderfa
46  CALL lfierf_fort &
47 & (fa%LFI, irep,knumer,lderfa)
48  llrlfi=irep.NE.0
49 ELSE
50  irep=-51
51  llrlfi=.false.
52 ENDIF
53 !
54 llfata=llmoer(irep,irang)
55 krep=irep
56 !
57 IF (llfata.OR.ixnvms(irang).EQ.2) THEN
58  inimes=2
59 ELSE
60  IF (lhook) CALL dr_hook('FATALE_MT',1,zhook_handle)
61  RETURN
62 ENDIF
63 !
64 clnspr='FATALE'
65 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
66 & '', LDERFA= '',L1)') krep,knumer,lderfa
67 CALL faipar_fort &
68 & (fa, knumer,inimes,irep,llfata,clmess, &
69 & clnspr,clacti,llrlfi)
70 !
71 IF (lhook) CALL dr_hook('FATALE_MT',1,zhook_handle)
72 
73 CONTAINS
74 
75 #include "facom2.llmoer.h"
76 #include "facom2.ixnvms.h"
77 
78 END SUBROUTINE fatale_fort
79 
80 
81 
82 ! Oct-2012 P. Marguinaud 64b LFI
83 SUBROUTINE fatale64 &
84 & (krep, knumer, lderfa)
85 USE fa_mod, ONLY : fa => fa_com_default, &
88 USE lfi_precision
89 IMPLICIT NONE
90 ! Arguments
91 INTEGER (KIND=JPLIKB) KREP ! OUT
92 INTEGER (KIND=JPLIKB) KNUMER ! IN
93 LOGICAL LDERFA ! IN
94 
95 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
96 
97 CALL fatale_fort &
98 & (fa, krep, knumer, lderfa)
99 
100 END SUBROUTINE fatale64
101 
102 SUBROUTINE fatale &
103 & (krep, knumer, lderfa)
104 USE fa_mod, ONLY : fa => fa_com_default, &
107 USE lfi_precision
108 IMPLICIT NONE
109 ! Arguments
110 INTEGER (KIND=JPLIKM) KREP ! OUT
111 INTEGER (KIND=JPLIKM) KNUMER ! IN
112 LOGICAL LDERFA ! IN
113 
114 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
115 
116 CALL fatale_mt &
117 & (fa, krep, knumer, lderfa)
118 
119 END SUBROUTINE fatale
120 
121 SUBROUTINE fatale_mt &
122 & (fa, krep, knumer, lderfa)
123 USE fa_mod, ONLY : fa_com
124 USE lfi_precision
125 IMPLICIT NONE
126 ! Arguments
127 type(fa_com) fa ! INOUT
128 INTEGER (KIND=JPLIKM) KREP ! OUT
129 INTEGER (KIND=JPLIKM) KNUMER ! IN
130 LOGICAL LDERFA ! IN
131 ! Local integers
132 INTEGER (KIND=JPLIKB) IREP ! OUT
133 INTEGER (KIND=JPLIKB) INUMER ! IN
134 ! Convert arguments
135 
136 inumer = int( knumer, jplikb)
137 
138 CALL fatale_fort &
139 & (fa, irep, inumer, lderfa)
140 
141 krep = int( irep, jplikm)
142 
143 END SUBROUTINE fatale_mt
144 
145 !INTF KREP OUT
146 !INTF KNUMER IN
147 !INTF LDERFA IN
subroutine fatale(KREP, KNUMER, LDERFA)
Definition: fatale.F90:104
integer, parameter jplikb
subroutine lfierf_fort(LFI, KREP, KNUMER, LDERFA)
Definition: lfierf.F90:6
subroutine fatale_fort(FA, KREP, KNUMER, LDERFA)
Definition: fatale.F90:5
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fatale64(KREP, KNUMER, LDERFA)
Definition: fatale.F90:85
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
Definition: faipar.F90:6
subroutine fatale_mt(FA, KREP, KNUMER, LDERFA)
Definition: fatale.F90:123
subroutine fanumu_fort(FA, KNUMER, KRANG)
Definition: fanumu.F90:5