SURFEX v8.1
General documentation of Surfex
lfioef.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 lfioef_fort &
5 & (lfi, krep, knumer, lderfa )
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 permet d'obtenir l'option courante
13 ! de traitement des ERREURS detectees par le logiciel LFI,
14 ! pour un fichier particulier ouvert pour ce logiciel.
15 !
16 ! Noter que si le niveau global d'erreur fatale *LFI%NERFAG*
17 ! vaut 0 ou 2, l'option propre au fichier est inoperante.
18 ! *LFI%NERFAG* vaut par defaut 1, est reglable via le s/p "LFINEG",
19 ! et sa valeur peut etre obtenue par le s/p "LFIOEG".
20 !**
21 ! ARGUMENTS : KREP (Sortie) ==> Code-REPonse du sous-programme;
22 ! KNUMER (Entree) ==> NUMERo d'unite logique concernee;
23 ! LDERFA (Sortie) ==> Option d'ERreur FAtale (vrai=oui).
24 !
25 !
26 TYPE(lficom) :: LFI
27 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
28 !
29 LOGICAL LDERFA
30 !
31 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
32 CHARACTER(LEN=LFI%JPLMES) CLMESS
33 CHARACTER(LEN=LFI%JPLFTX) CLACTI
34 LOGICAL LLFATA
35 
36 !
37 REAL(KIND=JPRB) :: ZHOOK_HANDLE
38 IF (lhook) CALL dr_hook('LFIOEF_FORT',0,zhook_handle)
39 clacti=''
40 CALL lfinum_fort &
41 & (lfi, knumer,irang)
42 !
43 IF (irang.EQ.0) THEN
44  irep=-1
45 ELSE
46  lderfa=lfi%LERFAT(irang)
47  lfi%NDEROP(irang)=19
48  irep=0
49 ENDIF
50 !
51 llfata=llmoer(irep,irang)
52 krep=irep
53 !
54 IF (llfata.OR.ixnims(irang).EQ.2) THEN
55  inimes=2
56 ELSE
57  IF (lhook) CALL dr_hook('LFIOEF_FORT',1,zhook_handle)
58  RETURN
59 ENDIF
60 !
61 clnspr='LFIOEF'
62 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
63 & '', LDERFA= '',L1)') krep,knumer,lderfa
64 CALL lfiems_fort &
65 & (lfi, knumer,inimes,irep,llfata, &
66 & clmess,clnspr,clacti)
67 !
68 IF (lhook) CALL dr_hook('LFIOEF_FORT',1,zhook_handle)
69 
70 CONTAINS
71 
72 #include "lficom2.ixnims.h"
73 #include "lficom2.llmoer.h"
74 
75 END SUBROUTINE lfioef_fort
76 
77 
78 
79 ! Oct-2012 P. Marguinaud 64b LFI
80 SUBROUTINE lfioef64 &
81 & (krep, knumer, lderfa)
82 USE lfimod, ONLY : lfi => lficom_default, &
85 USE lfi_precision
86 IMPLICIT NONE
87 ! Arguments
88 INTEGER (KIND=JPLIKB) KREP ! OUT
89 INTEGER (KIND=JPLIKB) KNUMER ! IN
90 LOGICAL LDERFA ! OUT
91 
92 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
93 
94 CALL lfioef_fort &
95 & (lfi, krep, knumer, lderfa)
96 
97 END SUBROUTINE lfioef64
98 
99 SUBROUTINE lfioef &
100 & (krep, knumer, lderfa)
101 USE lfimod, ONLY : lfi => lficom_default, &
104 USE lfi_precision
105 IMPLICIT NONE
106 ! Arguments
107 INTEGER (KIND=JPLIKM) KREP ! OUT
108 INTEGER (KIND=JPLIKM) KNUMER ! IN
109 LOGICAL LDERFA ! OUT
110 
111 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
112 
113 CALL lfioef_mt &
114 & (lfi, krep, knumer, lderfa)
115 
116 END SUBROUTINE lfioef
117 
118 SUBROUTINE lfioef_mt &
119 & (lfi, krep, knumer, lderfa)
120 USE lfimod, ONLY : lficom
121 USE lfi_precision
122 IMPLICIT NONE
123 ! Arguments
124 type(lficom) lfi ! INOUT
125 INTEGER (KIND=JPLIKM) KREP ! OUT
126 INTEGER (KIND=JPLIKM) KNUMER ! IN
127 LOGICAL LDERFA ! OUT
128 ! Local integers
129 INTEGER (KIND=JPLIKB) IREP ! OUT
130 INTEGER (KIND=JPLIKB) INUMER ! IN
131 ! Convert arguments
132 
133 inumer = int( knumer, jplikb)
134 
135 CALL lfioef_fort &
136 & (lfi, irep, inumer, lderfa)
137 
138 krep = int( irep, jplikm)
139 
140 END SUBROUTINE lfioef_mt
141 
142 !INTF KREP OUT
143 !INTF KNUMER IN
144 !INTF LDERFA OUT
subroutine lfioef_fort(LFI, KREP, KNUMER, LDERFA)
Definition: lfioef.F90:6
integer, parameter jplikb
subroutine lfioef_mt(LFI, KREP, KNUMER, LDERFA)
Definition: lfioef.F90:120
subroutine new_lfi_default()
Definition: lfimod.F90:376
logical, save lficom_default_init
Definition: lfimod.F90:371
subroutine lfinum_fort(LFI, KNUMER, KRANG)
Definition: lfinum.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
integer, parameter jplikm
subroutine lfioef64(KREP, KNUMER, LDERFA)
Definition: lfioef.F90:82
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1
subroutine lfioef(KREP, KNUMER, LDERFA)
Definition: lfioef.F90:101