SURFEX v8.1
General documentation of Surfex
lfinsg.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 lfinsg_fort &
5 & (lfi, knivau )
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 SE CHARGE DE METTRE LE NIVEAU GLOBAL
13 ! D'IMPRESSION DES STATISTIQUES A LA FERMETURE (*LFI%NISTAG*)
14 ! A LA VALEUR KNIVAU . PAR DEFAUT, LFI%NISTAG VAUT 1 .
15 !**
16 ! ARGUMENT : KNIVAU (ENTREE) ==> NIVEAU GLOBAL D'IMPRESSION DES
17 ! STATISTIQUES; VALEURS POSSIBLES
18 !
19 ! 0 : NE PAS IMPRIMER LES STATISTIQUES A LA FERMETURE D'UN
20 ! FICHIER, MEME SI CELA AVAIT ETE DEMANDE LORS DE SON OUVERTURE.
21 ! 1 : N'IMPRIMER LES STATISTIQUES A LA FERMETURE QUE SI CELA
22 ! AVAIT ETE DEMANDE LORS DE L'OUVERTURE (MODE PAR DEFAUT).
23 ! 2 : IMPRIMER LES STATISTIQUES A LA FERMETURE D'UN FICHIER,
24 ! MEME SI LE FICHIER AVAIT ETE OUVERT SANS CETTE OPTION.
25 !
26 !
27 TYPE(lficom) :: LFI
28 INTEGER (KIND=JPLIKB) KNIVAU, INIMES, IREP, INUMER
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('LFINSG_FORT',0,zhook_handle)
37 clacti=''
38 IF (lfi%LFINSG_LLPREA) THEN
39  CALL lfiini_fort &
40 & (lfi, 2_jplikb )
41  lfi%LFINSG_LLPREA=.false.
42 ENDIF
43 !
44 IF (knivau.GE.0.AND.knivau.LE.2) THEN
45  lfi%NISTAG=knivau
46  irep=0
47 ELSE
48  irep=-2
49 ENDIF
50 !
51 ! MESSAGERIE EVENTUELLE, AVEC ABORT SI NECESSAIRE .
52 !
53 llfata=irep.NE.0.AND.lfi%NERFAG.NE.2
54 !
55 IF (llfata) THEN
56  inimes=2
57 ELSEIF (irep.NE.0) THEN
58  inimes=0
59 ELSEIF (lfi%NIMESG.EQ.2) THEN
60  inimes=2
61 ELSE
62  IF (lhook) CALL dr_hook('LFINSG_FORT',1,zhook_handle)
63  RETURN
64 ENDIF
65 !
66 inumer=lfi%JPNIL
67 clnspr='LFINSG'
68 !
69 IF (max(inimes,lfi%NIMESG).EQ.2) THEN
70 !
71  IF (lfi%LFRANC) THEN
72  WRITE (unit=clmess, &
73 & fmt='(''KNIVAU='',I5,'', CODE INTERNE='', &
74 & I4)') knivau,irep
75  ELSE
76  WRITE (unit=clmess, &
77 & fmt='(''KNIVAU='',I5,'', INTERNAL CODE='', &
78 & I4)') knivau,irep
79  ENDIF
80 !
81  IF (inimes.NE.2) CALL lfiems_fort &
82 & (lfi, inumer,lfi%NIMESG,irep, &
83 & .false.,clmess, &
84 & clnspr,clacti)
85 ENDIF
86 !
87 CALL lfiems_fort &
88 & (lfi, inumer,inimes,irep,llfata, &
89 & clmess,clnspr,clacti)
90 !
91 IF (lhook) CALL dr_hook('LFINSG_FORT',1,zhook_handle)
92 END SUBROUTINE lfinsg_fort
93 
94 
95 
96 ! Oct-2012 P. Marguinaud 64b LFI
97 SUBROUTINE lfinsg64 &
98 & (knivau)
99 USE lfimod, ONLY : lfi => lficom_default, &
102 USE lfi_precision
103 IMPLICIT NONE
104 ! Arguments
105 INTEGER (KIND=JPLIKB) KNIVAU ! IN
106 
107 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
108 
109 CALL lfinsg_fort &
110 & (lfi, knivau)
111 
112 END SUBROUTINE lfinsg64
113 
114 SUBROUTINE lfinsg &
115 & (knivau)
116 USE lfimod, ONLY : lfi => lficom_default, &
119 USE lfi_precision
120 IMPLICIT NONE
121 ! Arguments
122 INTEGER (KIND=JPLIKM) KNIVAU ! IN
123 
124 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
125 
126 CALL lfinsg_mt &
127 & (lfi, knivau)
128 
129 END SUBROUTINE lfinsg
130 
131 SUBROUTINE lfinsg_mt &
132 & (lfi, knivau)
133 USE lfimod, ONLY : lficom
134 USE lfi_precision
135 IMPLICIT NONE
136 ! Arguments
137 type(lficom) lfi ! INOUT
138 INTEGER (KIND=JPLIKM) KNIVAU ! IN
139 ! Local integers
140 INTEGER (KIND=JPLIKB) INIVAU ! IN
141 ! Convert arguments
142 
143 inivau = int( knivau, jplikb)
144 
145 CALL lfinsg_fort &
146 & (lfi, inivau)
147 
148 
149 END SUBROUTINE lfinsg_mt
150 
151 !INTF KNIVAU IN
integer, parameter jplikb
subroutine lfinsg_fort(LFI, KNIVAU)
Definition: lfinsg.F90:6
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfinsg(KNIVAU)
Definition: lfinsg.F90:116
subroutine lfinsg_mt(LFI, KNIVAU)
Definition: lfinsg.F90:133
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
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
subroutine lfinsg64(KNIVAU)
Definition: lfinsg.F90:99
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1