SURFEX v8.1
General documentation of Surfex
lfista.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 lfista_fort &
5 & (lfi, krep, knumer )
6 USE lfimod, ONLY : lficom
7 USE parkind1, ONLY : jprb
8 USE yomhook , ONLY : lhook, dr_hook
10 IMPLICIT NONE
11 !****
12 ! SOUS-PROGRAMME CHARGE D'IMPRIMER LES STATISTIQUES D'UTILISATION
13 ! D'UN FICHIER OUVERT POUR LE LOGICIEL DE FICHIERS INDEXES *LFI*.
14 !**
15 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
16 ! KNUMER (ENTREE) ==> LFI%NUMERO DE L'UNITE LOGIQUE.
17 !
18 ! L'IMPRESSION DES STATISTIQUES VIA CE SOUS-PROGRAMME EST
19 ! FAITE QUELQUE SOIT LES OPTIONS D'IMPRESSION DES STATISTIQUES
20 ! A LA FERMETURE ( GLOBALE, OU PROPRE AU FICHIER ); IL SUFFIT
21 ! QUE L'UNITE LOGIQUE *KNUMER* SOIT OUVERTE POUR LE LOGICIEL LFI.
22 ! PAR AILLEURS, UTILSATION EST A COMPRENDRE "DEPUIS L'OUVERTURE".
23 ! ( MEME S'IL Y A QUELQUES ASPECTS "HISTORIQUES" )
24 !
25 !
26 TYPE(lficom) :: LFI
27 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
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 ! 1. - CONTROLES DU PARAMETRES D'ENTREE, PUIS INITIALISATIONS.
36 !-----------------------------------------------------------------------
37 !
38 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (lhook) CALL dr_hook('LFISTA_FORT',0,zhook_handle)
40 clacti=''
41 CALL lfinum_fort &
42 & (lfi, knumer,irang)
43 !
44 IF (irang.EQ.0) THEN
45  irep=-1
46  GOTO 1001
47 ENDIF
48 !
49  IF (lfi%LMULTI) CALL lfiver_fort &
50 & (lfi, lfi%VERRUE(irang),'ON')
51 !**
52 ! 2. - IMPRESSION DES STATISTIQUES PROPREMENT DITE.
53 !-----------------------------------------------------------------------
54 !
55 CALL lfiist_fort &
56 & (lfi, irang,.false.)
57 irep=0
58 !**
59 ! 10. - PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
60 ! VIA LE SOUS-PROGRAMME "LFIEMS" .
61 !-----------------------------------------------------------------------
62 !
63 1001 CONTINUE
64 krep=irep
65 llfata=llmoer(irep,irang)
66 !
67 IF (irang.NE.0) THEN
68  lfi%NDEROP(irang)=8
69  lfi%NDERCO(irang)=irep
70  IF (lfi%LMULTI) CALL lfiver_fort &
71 & (lfi, lfi%VERRUE(irang),'OFF')
72 ENDIF
73 !
74 IF (llfata.OR.ixnims(irang).EQ.2) THEN
75  inimes=2
76 ELSE
77  IF (lhook) CALL dr_hook('LFISTA_FORT',1,zhook_handle)
78  RETURN
79 ENDIF
80 !
81 clnspr='LFISTA'
82 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3)') &
83 & krep,knumer
84 CALL lfiems_fort &
85 & (lfi, knumer,inimes,irep,llfata, &
86 & clmess,clnspr,clacti)
87 !
88 IF (lhook) CALL dr_hook('LFISTA_FORT',1,zhook_handle)
89 
90 CONTAINS
91 
92 #include "lficom2.ixnims.h"
93 #include "lficom2.llmoer.h"
94 
95 END SUBROUTINE lfista_fort
96 
97 
98 
99 ! Oct-2012 P. Marguinaud 64b LFI
100 SUBROUTINE lfista64 &
101 & (krep, knumer)
102 USE lfimod, ONLY : lfi => lficom_default, &
105 USE lfi_precision
106 IMPLICIT NONE
107 ! Arguments
108 INTEGER (KIND=JPLIKB) KREP ! OUT
109 INTEGER (KIND=JPLIKB) KNUMER ! IN
110 
111 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
112 
113 CALL lfista_fort &
114 & (lfi, krep, knumer)
115 
116 END SUBROUTINE lfista64
117 
118 SUBROUTINE lfista &
119 & (krep, knumer)
120 USE lfimod, ONLY : lfi => lficom_default, &
123 USE lfi_precision
124 IMPLICIT NONE
125 ! Arguments
126 INTEGER (KIND=JPLIKM) KREP ! OUT
127 INTEGER (KIND=JPLIKM) KNUMER ! IN
128 
129 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
130 
131 CALL lfista_mt &
132 & (lfi, krep, knumer)
133 
134 END SUBROUTINE lfista
135 
136 SUBROUTINE lfista_mt &
137 & (lfi, krep, knumer)
138 USE lfimod, ONLY : lficom
139 USE lfi_precision
140 IMPLICIT NONE
141 ! Arguments
142 type(lficom) lfi ! INOUT
143 INTEGER (KIND=JPLIKM) KREP ! OUT
144 INTEGER (KIND=JPLIKM) KNUMER ! IN
145 ! Local integers
146 INTEGER (KIND=JPLIKB) IREP ! OUT
147 INTEGER (KIND=JPLIKB) INUMER ! IN
148 ! Convert arguments
149 
150 inumer = int( knumer, jplikb)
151 
152 CALL lfista_fort &
153 & (lfi, irep, inumer)
154 
155 krep = int( irep, jplikm)
156 
157 END SUBROUTINE lfista_mt
158 
159 !INTF KREP OUT
160 !INTF KNUMER IN
integer, parameter jplikb
subroutine lfista_fort(LFI, KREP, KNUMER)
Definition: lfista.F90:6
subroutine lfista(KREP, KNUMER)
Definition: lfista.F90:120
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
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
Definition: lfiver.F90:6
subroutine lfiist_fort(LFI, KRANG, LDAPFE)
Definition: lfiist.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfista_mt(LFI, KREP, KNUMER)
Definition: lfista.F90:138
subroutine lfista64(KREP, KNUMER)
Definition: lfista.F90:102
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