SURFEX v8.1
General documentation of Surfex
lfierf.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 lfierf_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'ACTIVER OU DE DESACTIVER L'OPTION
13 ! RENDANT FATALE TOUTE ERREUR DETECTEE SUR UN FICHIER PARTICULIER,
14 ! OUVERT POUR LE LOGICIEL LFI.
15 ! CEPENDANT, TANT QUE LE NIVEAU GLOBAL D'ERREUR FATALE *LFI%NERFAG*
16 ! VAUT 0 OU 2, L'OPTION PROPRE AU FICHIER EST INOPERANTE.
17 ! *LFI%NERFAG* VAUT PAR DEFAUT 1, ET EST REGLABLE VIA LE S/P "LFINEG".
18 !**
19 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
20 ! KNUMER (ENTREE) ==> LFI%NUMERO D'UNITE LOGIQUE CONCERNEE;
21 ! LDERFA (ENTREE) ==> OPTION D'ERREUR FATALE (VRAI=OUI).
22 !
23 !
24 TYPE(lficom) :: LFI
25 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
26 !
27 LOGICAL LDERFA
28 !
29 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
30 CHARACTER(LEN=LFI%JPLMES) CLMESS
31 CHARACTER(LEN=LFI%JPLFTX) CLACTI
32 LOGICAL LLFATA
33 
34 !
35 REAL(KIND=JPRB) :: ZHOOK_HANDLE
36 IF (lhook) CALL dr_hook('LFIERF_FORT',0,zhook_handle)
37 clacti=''
38 CALL lfinum_fort &
39 & (lfi, knumer,irang)
40 !
41 IF (irang.NE.0) THEN
42  lfi%LERFAT(irang)=lderfa
43  lfi%NDEROP(irang)=4
44  irep=0
45 ELSE
46  irep=-1
47 ENDIF
48 !
49 llfata=llmoer(irep,irang)
50 krep=irep
51 !
52 IF (llfata.OR.ixnims(irang).EQ.2) THEN
53  inimes=2
54 ELSE
55  IF (lhook) CALL dr_hook('LFIERF_FORT',1,zhook_handle)
56  RETURN
57 ENDIF
58 !
59 clnspr='LFIERF'
60 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
61 & '', LDERFA= '',L1)') krep,knumer,lderfa
62 CALL lfiems_fort &
63 & (lfi, knumer,inimes,irep,llfata, &
64 & clmess,clnspr,clacti)
65 !
66 IF (lhook) CALL dr_hook('LFIERF_FORT',1,zhook_handle)
67 
68 CONTAINS
69 
70 #include "lficom2.ixnims.h"
71 #include "lficom2.llmoer.h"
72 
73 END SUBROUTINE lfierf_fort
74 
75 
76 
77 ! Oct-2012 P. Marguinaud 64b LFI
78 SUBROUTINE lfierf64 &
79 & (krep, knumer, lderfa)
80 USE lfimod, ONLY : lfi => lficom_default, &
83 USE lfi_precision
84 IMPLICIT NONE
85 ! Arguments
86 INTEGER (KIND=JPLIKB) KREP ! OUT
87 INTEGER (KIND=JPLIKB) KNUMER ! IN
88 LOGICAL LDERFA ! IN
89 
90 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
91 
92 CALL lfierf_fort &
93 & (lfi, krep, knumer, lderfa)
94 
95 END SUBROUTINE lfierf64
96 
97 SUBROUTINE lfierf &
98 & (krep, knumer, lderfa)
99 USE lfimod, ONLY : lfi => lficom_default, &
102 USE lfi_precision
103 IMPLICIT NONE
104 ! Arguments
105 INTEGER (KIND=JPLIKM) KREP ! OUT
106 INTEGER (KIND=JPLIKM) KNUMER ! IN
107 LOGICAL LDERFA ! IN
108 
109 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
110 
111 CALL lfierf_mt &
112 & (lfi, krep, knumer, lderfa)
113 
114 END SUBROUTINE lfierf
115 
116 SUBROUTINE lfierf_mt &
117 & (lfi, krep, knumer, lderfa)
118 USE lfimod, ONLY : lficom
119 USE lfi_precision
120 IMPLICIT NONE
121 ! Arguments
122 type(lficom) lfi ! INOUT
123 INTEGER (KIND=JPLIKM) KREP ! OUT
124 INTEGER (KIND=JPLIKM) KNUMER ! IN
125 LOGICAL LDERFA ! IN
126 ! Local integers
127 INTEGER (KIND=JPLIKB) IREP ! OUT
128 INTEGER (KIND=JPLIKB) INUMER ! IN
129 ! Convert arguments
130 
131 inumer = int( knumer, jplikb)
132 
133 CALL lfierf_fort &
134 & (lfi, irep, inumer, lderfa)
135 
136 krep = int( irep, jplikm)
137 
138 END SUBROUTINE lfierf_mt
139 
140 !INTF KREP OUT
141 !INTF KNUMER IN
142 !INTF LDERFA IN
integer, parameter jplikb
subroutine lfierf_fort(LFI, KREP, KNUMER, LDERFA)
Definition: lfierf.F90:6
subroutine lfierf_mt(LFI, KREP, KNUMER, LDERFA)
Definition: lfierf.F90:118
subroutine lfierf(KREP, KNUMER, LDERFA)
Definition: lfierf.F90:99
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 lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1
subroutine lfierf64(KREP, KNUMER, LDERFA)
Definition: lfierf.F90:80