SURFEX v8.1
General documentation of Surfex
fanerg.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 fanerg_fort &
4 & (fa, knivau )
5 USE fa_mod, ONLY : fa_com, jpniil
6 USE parkind1, ONLY : jprb
7 USE yomhook , ONLY : lhook, dr_hook
9 IMPLICIT NONE
10 !****
11 ! Ce sous-programme se charge de mettre le Niveau Global d'Erreur
12 ! Fatale du logiciel de Fichiers ARPEGE (*FA%NRFAGA*) a la valeur
13 ! KNIVAU, de meme que la variable correspondante du logiciel LFI.
14 ! Par defaut, FA%NRFAGA vaut 1.
15 !**
16 ! Argument : KNIVAU (Entree) ==> Niveau global d'erreur fatale.
17 ! Valeurs possibles:
18 !
19 ! 0 : Rendre fatale toute erreur detectee, meme si elle correspond
20 ! a un fichier ouvert avec l'option "pas d'erreur fatale".
21 ! 1 : Ne rend fatales que certaines erreurs "globales", c'est-a-dire
22 ! non reliables a un fichier ouvert, et les erreurs sur les fi-
23 ! chiers ouverts avec l'option "erreur fatale" (Mode par defaut)
24 ! 2 : Passer outre toute erreur detectee, meme si elle correspond
25 ! a un fichier ouvert avec l'option "erreur fatale".
26 ! Neanmoins, le code-reponse eventuel ne sera pas zero.
27 !
28 !
29 !
30 TYPE(fa_com) :: FA
31 INTEGER (KIND=JPLIKB) KNIVAU
32 !
33 INTEGER (KIND=JPLIKB) IREP, INIMES, INUMER
34 CHARACTER(LEN=FA%JPXNOM) CLACTI
35 CHARACTER(LEN=FA%JPLMES) CLMESS
36 CHARACTER(LEN=FA%JPLSPX) CLNSPR
37 LOGICAL LLFATA
38 
39 !
40 !
41 REAL(KIND=JPRB) :: ZHOOK_HANDLE
42 IF (lhook) CALL dr_hook('FANERG_MT',0,zhook_handle)
43 clacti=''
44 IF (fa%FANERG_LLPREA) THEN
45  CALL farine_fort &
46 & (fa, 2_jplikb )
47  fa%FANERG_LLPREA=.false.
48 ENDIF
49 !
50 IF (knivau.GE.0.AND.knivau.LE.2) THEN
51  fa%NRFAGA=knivau
52  CALL lfineg_fort &
53 & (fa%LFI, knivau)
54  irep=0
55 ELSE
56  irep=-52
57 ENDIF
58 !
59 llfata=irep.NE.0.AND.fa%NRFAGA.NE.2
60 !
61 IF (llfata) THEN
62  inimes=2
63 ELSEIF (irep.NE.0) THEN
64  inimes=0
65 ELSEIF (fa%NIMSGA.EQ.2) THEN
66  inimes=2
67 ELSE
68  IF (lhook) CALL dr_hook('FANERG_MT',1,zhook_handle)
69  RETURN
70 ENDIF
71 !
72 inumer=jpniil
73 clnspr='FANERG'
74 !
75 IF (max(inimes,fa%NIMSGA).EQ.2) THEN
76  WRITE (unit=clmess, &
77 & fmt='(''KNIVAU='',I5,'', CODE INTERNE='',I4)' &
78 & ) knivau,irep
79 ENDIF
80 !
81 CALL faipar_fort &
82 & (fa, inumer,inimes,irep,llfata,clmess, &
83 & clnspr,clacti,.false.)
84 !
85 IF (lhook) CALL dr_hook('FANERG_MT',1,zhook_handle)
86 END SUBROUTINE fanerg_fort
87 
88 
89 
90 ! Oct-2012 P. Marguinaud 64b LFI
91 SUBROUTINE fanerg64 &
92 & (knivau)
93 USE fa_mod, ONLY : fa => fa_com_default, &
96 USE lfi_precision
97 IMPLICIT NONE
98 ! Arguments
99 INTEGER (KIND=JPLIKB) KNIVAU ! IN
100 
101 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
102 
103 CALL fanerg_fort &
104 & (fa, knivau)
105 
106 END SUBROUTINE fanerg64
107 
108 SUBROUTINE fanerg &
109 & (knivau)
110 USE fa_mod, ONLY : fa => fa_com_default, &
113 USE lfi_precision
114 IMPLICIT NONE
115 ! Arguments
116 INTEGER (KIND=JPLIKM) KNIVAU ! IN
117 
118 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
119 
120 CALL fanerg_mt &
121 & (fa, knivau)
122 
123 END SUBROUTINE fanerg
124 
125 SUBROUTINE fanerg_mt &
126 & (fa, knivau)
127 USE fa_mod, ONLY : fa_com
128 USE lfi_precision
129 IMPLICIT NONE
130 ! Arguments
131 type(fa_com) fa ! INOUT
132 INTEGER (KIND=JPLIKM) KNIVAU ! IN
133 ! Local integers
134 INTEGER (KIND=JPLIKB) INIVAU ! IN
135 ! Convert arguments
136 
137 inivau = int( knivau, jplikb)
138 
139 CALL fanerg_fort &
140 & (fa, inivau)
141 
142 
143 END SUBROUTINE fanerg_mt
144 
145 !INTF KNIVAU IN
subroutine fanerg(KNIVAU)
Definition: fanerg.F90:110
subroutine fanerg_mt(FA, KNIVAU)
Definition: fanerg.F90:127
integer, parameter jplikb
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
Definition: fa_mod.F90:1
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfineg_fort(LFI, KNIVAU)
Definition: lfineg.F90:6
subroutine farine_fort(FA, KOPTIO)
Definition: farine.F90:5
subroutine fanerg64(KNIVAU)
Definition: fanerg.F90:93
logical lhook
Definition: yomhook.F90:15
type(fa_com), target, save fa_com_default
Definition: fa_mod.F90:476
subroutine fanerg_fort(FA, KNIVAU)
Definition: fanerg.F90:5
subroutine faipar_fort(FA, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI, LDRLFI)
Definition: faipar.F90:6
integer(kind=jplikb), parameter jpniil
Definition: fa_mod.F90:31