SURFEX v8.1
General documentation of Surfex
fanmsg.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe FA
3 ! R. El Khatib 30-Mar-2012 KULOUT
4 SUBROUTINE fanmsg_fort &
5 & (fa, knivau, kulout)
6 USE fa_mod, ONLY : fa_com, jpniil
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'
13 ! impression des Messages du logiciel de Fichiers ARPEGE (*FA%NIMSGA*)
14 ! a la valeur KNIVAU, de meme que la variable correspondante du
15 ! du logiciel LFI. Par defaut, FA%NIMSGA vaut 1.
16 !**
17 ! Argument : KNIVAU (Entree) ==> Niveau Global d'Impression
18 ! des Messages.
19 ! Valeurs possibles:
20 !
21 ! 0 : N'emettre que les messages d'erreurs reellement importants .
22 ! 1 : N'emettre qu'un minimum de messages "globaux", et les messages
23 ! lies a un fichier ouvert qui sont de niveau au plus egal au
24 ! niveau de la messagerie pour ce fichier (Mode par defaut) .
25 ! 2 : Emettre tous les messages possibles, meme s'ils ne correspon-
26 ! dent pas a un fichier ouvert avec le niveau de Messagerie 2 .
27 !
28 ! KULOUT : logical unit number for printing
29 !
30 !
31 !
32 TYPE(fa_com) :: FA
33 INTEGER (KIND=JPLIKB) KNIVAU
34 INTEGER (KIND=JPLIKB) KULOUT
35 !
36 INTEGER (KIND=JPLIKB) IREP, INIMES, INUMER
37 CHARACTER(LEN=FA%JPXNOM) CLACTI
38 CHARACTER(LEN=FA%JPLMES) CLMESS
39 CHARACTER(LEN=FA%JPLSPX) CLNSPR
40 LOGICAL LLFATA
41 
42 !
43 !
44 REAL(KIND=JPRB) :: ZHOOK_HANDLE
45 
46 IF (lhook) CALL dr_hook('FANMSG_MT',0,zhook_handle)
47 clacti=''
48 
49 IF (fa%FANMSG_LLPREA) THEN
50  CALL farine_fort &
51 & (fa, 2_jplikb )
52  fa%FANMSG_LLPREA=.false.
53 ENDIF
54 !
55 IF (knivau.GE.0.AND.knivau.LE.2) THEN
56  inimes=max(fa%NIMSGA,knivau)
57  fa%NIMSGA=knivau
58  CALL lfinmg_fort &
59 & (fa%LFI, knivau,kulout)
60  irep=0
61 ELSE
62  inimes=fa%NIMSGA
63  irep=-52
64 ENDIF
65 !
66 llfata=irep.NE.0.AND.fa%NRFAGA.NE.2
67 !
68 IF (llfata) THEN
69  inimes=2
70 ELSEIF (irep.NE.0) THEN
71  inimes=0
72 ELSEIF (inimes.NE.2) THEN
73  IF (lhook) CALL dr_hook('FANMSG_MT',1,zhook_handle)
74  RETURN
75 ENDIF
76 !
77 inumer=jpniil
78 clnspr='FANMSG'
79 !
80 IF (max(inimes,fa%NIMSGA).EQ.2) THEN
81  WRITE (unit=clmess, &
82 & fmt='(''KNIVAU='',I5,'', CODE INTERNE='',I4)' &
83 & ) knivau,irep
84  IF (inimes.NE.2) CALL faipar_fort &
85 & (fa, inumer,fa%NIMSGA,irep, &
86 & .false.,clmess, &
87 & clnspr,clacti,.false.)
88 ENDIF
89 !
90 CALL faipar_fort &
91 & (fa, inumer,inimes,irep,llfata,clmess, &
92 & clnspr,clacti, &
93 & .false.)
94 !
95 IF (lhook) CALL dr_hook('FANMSG_MT',1,zhook_handle)
96 END SUBROUTINE fanmsg_fort
97 
98 
99 ! Oct-2012 P. Marguinaud 64b LFI
100 SUBROUTINE fanmsg64 &
101 & (knivau, kulout)
102 USE fa_mod, ONLY : fa => fa_com_default, &
105 USE lfi_precision
106 IMPLICIT NONE
107 ! Arguments
108 INTEGER (KIND=JPLIKB) KNIVAU ! IN
109 INTEGER (KIND=JPLIKB) KULOUT ! IN
110 
111 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
112 
113 CALL fanmsg_fort &
114 & (fa, knivau, kulout)
115 
116 END SUBROUTINE fanmsg64
117 
118 SUBROUTINE fanmsg &
119 & (knivau, kulout)
120 USE fa_mod, ONLY : fa => fa_com_default, &
123 USE lfi_precision
124 IMPLICIT NONE
125 ! Arguments
126 INTEGER (KIND=JPLIKM) KNIVAU ! IN
127 INTEGER (KIND=JPLIKM) KULOUT ! IN
128 
129 IF (.NOT. fa_com_default_init) CALL new_fa_default ()
130 
131 CALL fanmsg_mt &
132 & (fa, knivau, kulout)
133 
134 END SUBROUTINE fanmsg
135 
136 SUBROUTINE fanmsg_mt &
137 & (fa, knivau, kulout)
138 USE fa_mod, ONLY : fa_com
139 USE lfi_precision
140 IMPLICIT NONE
141 ! Arguments
142 type(fa_com) fa ! INOUT
143 INTEGER (KIND=JPLIKM) KNIVAU ! IN
144 INTEGER (KIND=JPLIKM) KULOUT ! IN
145 ! Local integers
146 INTEGER (KIND=JPLIKB) INIVAU ! IN
147 INTEGER (KIND=JPLIKB) IULOUT ! IN
148 ! Convert arguments
149 
150 inivau = int( knivau, jplikb)
151 iulout = int( kulout, jplikb)
152 
153 CALL fanmsg_fort &
154 & (fa, inivau, iulout)
155 
156 
157 END SUBROUTINE fanmsg_mt
158 
159 !INTF KNIVAU IN
160 !INTF KULOUT IN
integer, parameter jplikb
subroutine lfinmg_fort(LFI, KNIVAU, KULOUT)
Definition: lfinmg.F90:7
subroutine fanmsg_fort(FA, KNIVAU, KULOUT)
Definition: fanmsg.F90:6
logical, save fa_com_default_init
Definition: fa_mod.F90:477
subroutine new_fa_default()
Definition: fa_mod.F90:649
subroutine fanmsg64(KNIVAU, KULOUT)
Definition: fanmsg.F90:102
Definition: fa_mod.F90:1
subroutine fanmsg_mt(FA, KNIVAU, KULOUT)
Definition: fanmsg.F90:138
integer, parameter jprb
Definition: parkind1.F90:32
subroutine farine_fort(FA, KOPTIO)
Definition: farine.F90:5
logical lhook
Definition: yomhook.F90:15
subroutine fanmsg(KNIVAU, KULOUT)
Definition: fanmsg.F90:120
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
integer(kind=jplikb), parameter jpniil
Definition: fa_mod.F90:31