SURFEX v8.1
General documentation of Surfex
lfinmg.F90
Go to the documentation of this file.
1 ! Oct-2012 P. Marguinaud 64b LFI
2 ! Jan-2011 P. Marguinaud Thread-safe LFI
3 ! R. El Khatib 30-Mar-2012 KULOUT
4 
5 SUBROUTINE lfinmg_fort &
6 & (lfi, knivau, kulout )
7 USE lfimod, ONLY : lficom
8 USE parkind1, ONLY : jprb
9 USE yomhook , ONLY : lhook, dr_hook
10 USE lfi_precision
11 IMPLICIT NONE
12 !****
13 ! CE SOUS-PROGRAMME SE CHARGE DE METTRE LE NIVEAU GLOBAL
14 ! D'IMPRESSION DES MESSAGES (*LFI%NIMESG*) A LA VALEUR KNIVAU .
15 !**
16 ! ARGUMENT : KNIVAU (ENTREE) ==> NIVEAU GLOBAL D'IMPRESSION
17 ! DES MESSAGES .
18 ! VALEURS POSSIBLES
19 !
20 ! 0 : N'EMETTRE QUE LES MESSAGES D'ERREURS REELLEMENT IMPORTANTS .
21 ! 1 : N'EMETTRE QU'UN MINIMUM DE MESSAGES "GLOBAUX", ET LES MESSAGES
22 ! LIES A UN FICHIER OUVERT QUI SONT DE NIVEAU AU PLUS EGAL AU
23 ! NIVEAU DE LA MESSAGERIE POUR CE FICHIER (MODE PAR DEFAUT) .
24 ! 2 : EMETTRE TOUS LES MESSAGES POSSIBLES, MEME S'ILS NE CORRESPON-
25 ! DENT PAS A UN FICHIER OUVERT AVEC LE NIVEAU DE MESSAGERIE 2 .
26 !
27 ! KULOUT : logical unit number for printing
28 !
29 !
30 TYPE(lficom) :: LFI
31 INTEGER (KIND=JPLIKB) KNIVAU, INIMES, IREP, INUMER
32 INTEGER (KIND=JPLIKB) KULOUT
33 INTEGER (KIND=JPLIKB) IOLD_NULOUT
34 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
35 CHARACTER(LEN=LFI%JPLMES) CLMESS
36 CHARACTER(LEN=LFI%JPLFTX) CLACTI
37 LOGICAL LLFATA
38 
39 !
40 REAL(KIND=JPRB) :: ZHOOK_HANDLE
41 IF (lhook) CALL dr_hook('LFINMG_FORT',0,zhook_handle)
42 clacti=''
43 IF (lfi%LFINMG_LLPREA) THEN
44  CALL lfiini_fort &
45 & (lfi, 2_jplikb )
46  lfi%LFINMG_LLPREA=.false.
47 ENDIF
48 !
49 IF (kulout .GE. 0) THEN
50  iold_nulout=lfi%NULOUT
51  lfi%NULOUT=kulout
52  IF (iold_nulout /= lfi%NULOUT) THEN
53  CALL flush(int(iold_nulout))
54  WRITE(lfi%NULOUT, &
55 & '('' NOTICE : LFI%NULOUT WAS CHANGED FROM '',I3, &
56 & '' TO '',I3)') iold_nulout,lfi%NULOUT
57  ENDIF
58 ENDIF
59 !
60 IF (knivau.GE.0.AND.knivau.LE.2) THEN
61  inimes=max(lfi%NIMESG,knivau)
62  lfi%NIMESG=knivau
63  irep=0
64 ELSE
65  inimes=lfi%NIMESG
66  irep=-2
67 ENDIF
68 !
69 llfata=irep.NE.0.AND.lfi%NERFAG.NE.2
70 !
71 IF (llfata) THEN
72  inimes=2
73 ELSEIF (irep.NE.0) THEN
74  inimes=0
75 ELSEIF (inimes.EQ.2) THEN
76  inimes=2
77 ELSE
78  IF (lhook) CALL dr_hook('LFINMG_FORT',1,zhook_handle)
79  RETURN
80 ENDIF
81 !
82 inumer=lfi%JPNIL
83 clnspr='LFINMG'
84 !
85 IF (max(inimes,lfi%NIMESG).EQ.2) THEN
86 !
87  IF (lfi%LFRANC) THEN
88  WRITE (unit=clmess, &
89 & fmt='(''KNIVAU='',I5,'', CODE INTERNE='', &
90 & I4)') knivau,irep
91  ELSE
92  WRITE (unit=clmess, &
93 & fmt='(''KNIVAU='',I5,'', INTERNAL CODE='', &
94 & I4)') knivau,irep
95  ENDIF
96 !
97  IF (inimes.NE.2) CALL lfiems_fort &
98 & (lfi, inumer,lfi%NIMESG,irep, &
99 & .false.,clmess, &
100 & clnspr,clacti)
101 ENDIF
102 !
103 CALL lfiems_fort &
104 & (lfi, inumer,inimes,irep,llfata, &
105 & clmess,clnspr,clacti)
106 !
107 IF (lhook) CALL dr_hook('LFINMG_FORT',1,zhook_handle)
108 END SUBROUTINE lfinmg_fort
109 
110 
111 
112 ! Oct-2012 P. Marguinaud 64b LFI
113 SUBROUTINE lfinmg64 &
114 & (knivau, kulout)
115 USE lfimod, ONLY : lfi => lficom_default, &
118 USE lfi_precision
119 IMPLICIT NONE
120 ! Arguments
121 INTEGER (KIND=JPLIKB) KNIVAU ! IN
122 INTEGER (KIND=JPLIKB) KULOUT ! IN
123 
124 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
125 
126 CALL lfinmg_fort &
127 & (lfi, knivau, kulout)
128 
129 END SUBROUTINE lfinmg64
130 
131 SUBROUTINE lfinmg &
132 & (knivau, kulout)
133 USE lfimod, ONLY : lfi => lficom_default, &
136 USE lfi_precision
137 IMPLICIT NONE
138 ! Arguments
139 INTEGER (KIND=JPLIKM) KNIVAU ! IN
140 INTEGER (KIND=JPLIKM) KULOUT ! IN
141 
142 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
143 
144 CALL lfinmg_mt &
145 & (lfi, knivau, kulout)
146 
147 END SUBROUTINE lfinmg
148 
149 SUBROUTINE lfinmg_mt &
150 & (lfi, knivau, kulout)
151 USE lfimod, ONLY : lficom
152 USE lfi_precision
153 IMPLICIT NONE
154 ! Arguments
155 type(lficom) lfi ! INOUT
156 INTEGER (KIND=JPLIKM) KNIVAU ! IN
157 INTEGER (KIND=JPLIKM) KULOUT ! IN
158 ! Local integers
159 INTEGER (KIND=JPLIKB) INIVAU ! IN
160 INTEGER (KIND=JPLIKB) IULOUT ! IN
161 ! Convert arguments
162 
163 inivau = int( knivau, jplikb)
164 iulout = int( kulout, jplikb)
165 
166 CALL lfinmg_fort &
167 & (lfi, inivau, iulout)
168 
169 
170 END SUBROUTINE lfinmg_mt
171 
172 !INTF KNIVAU IN
173 !INTF KULOUT IN
integer, parameter jplikb
subroutine lfinmg_fort(LFI, KNIVAU, KULOUT)
Definition: lfinmg.F90:7
subroutine lfinmg_mt(LFI, KNIVAU, KULOUT)
Definition: lfinmg.F90:151
subroutine new_lfi_default()
Definition: lfimod.F90:376
logical, save lficom_default_init
Definition: lfimod.F90:371
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfiini_fort(LFI, KOPTIO)
Definition: lfiini.F90:6
subroutine lfinmg64(KNIVAU, KULOUT)
Definition: lfinmg.F90:115
subroutine lfinmg(KNIVAU, KULOUT)
Definition: lfinmg.F90:133
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1