SURFEX v8.1
General documentation of Surfex
lfimst.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 lfimst_fort &
5 & (lfi, krep, knumer, ldimst )
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 PERMET D'ACTIVER OU DE DESACTIVER L'OPTION
13 ! D'IMPRESSION DE STATISTIQUES A LA FERMETURE D'UN FICHIER
14 ! PARTICULIER, OUVERT POUR LE LOGICIEL LFI.
15 ! CEPENDANT, TANT QUE LE NIVEAU GLOBAL D'IMPRESSION DES STAT.
16 ! *LFI%NISTAG* VAUT 0 OU 2, L'OPTION PROPRE AU FICHIER EST INOPERANTE.
17 ! *LFI%NISTAG* VAUT PAR DEFAUT 1, ET EST REGLABLE VIA LE S/P "LFINSG".
18 !**
19 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
20 ! KNUMER (ENTREE) ==> LFI%NUMERO D'UNITE LOGIQUE CONCERNEE;
21 ! LDIMST (ENTREE) ==> OPTION D'IMPRESSION (VRAI=OUI)
22 !
23 !
24 TYPE(lficom) :: LFI
25 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
26 !
27 LOGICAL LDIMST
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 REAL(KIND=JPRB) :: ZHOOK_HANDLE
36 IF (lhook) CALL dr_hook('LFIMST_FORT',0,zhook_handle)
37 clacti=''
38 CALL lfinum_fort &
39 & (lfi, knumer,irang)
40 !
41 IF (irang.NE.0) THEN
42  IF (lfi%LMULTI) CALL lfiver_fort &
43 & (lfi, lfi%VERRUE(irang),'ON')
44  lfi%LISTAT(irang)=ldimst
45  lfi%NDEROP(irang)=3
46  IF (lfi%LMULTI) CALL lfiver_fort &
47 & (lfi, lfi%VERRUE(irang),'OFF')
48  irep=0
49 ELSE
50  irep=-1
51 ENDIF
52 !
53 krep=irep
54 llfata=llmoer(irep,irang)
55 !
56 IF (llfata.OR.ixnims(irang).EQ.2) THEN
57  inimes=2
58 ELSE
59  IF (lhook) CALL dr_hook('LFIMST_FORT',1,zhook_handle)
60  RETURN
61 ENDIF
62 !
63 clnspr='LFIMST'
64 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
65 & '', LDIMST= '',L1)') krep,knumer,ldimst
66 CALL lfiems_fort &
67 & (lfi, knumer,inimes,irep,llfata, &
68 & clmess,clnspr,clacti)
69 !
70 IF (lhook) CALL dr_hook('LFIMST_FORT',1,zhook_handle)
71 
72 CONTAINS
73 
74 #include "lficom2.ixnims.h"
75 #include "lficom2.llmoer.h"
76 
77 END SUBROUTINE lfimst_fort
78 
79 
80 
81 ! Oct-2012 P. Marguinaud 64b LFI
82 SUBROUTINE lfimst64 &
83 & (krep, knumer, ldimst)
84 USE lfimod, ONLY : lfi => lficom_default, &
87 USE lfi_precision
88 IMPLICIT NONE
89 ! Arguments
90 INTEGER (KIND=JPLIKB) KREP ! OUT
91 INTEGER (KIND=JPLIKB) KNUMER ! IN
92 LOGICAL LDIMST ! IN
93 
94 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
95 
96 CALL lfimst_fort &
97 & (lfi, krep, knumer, ldimst)
98 
99 END SUBROUTINE lfimst64
100 
101 SUBROUTINE lfimst &
102 & (krep, knumer, ldimst)
103 USE lfimod, ONLY : lfi => lficom_default, &
106 USE lfi_precision
107 IMPLICIT NONE
108 ! Arguments
109 INTEGER (KIND=JPLIKM) KREP ! OUT
110 INTEGER (KIND=JPLIKM) KNUMER ! IN
111 LOGICAL LDIMST ! IN
112 
113 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
114 
115 CALL lfimst_mt &
116 & (lfi, krep, knumer, ldimst)
117 
118 END SUBROUTINE lfimst
119 
120 SUBROUTINE lfimst_mt &
121 & (lfi, krep, knumer, ldimst)
122 USE lfimod, ONLY : lficom
123 USE lfi_precision
124 IMPLICIT NONE
125 ! Arguments
126 type(lficom) lfi ! INOUT
127 INTEGER (KIND=JPLIKM) KREP ! OUT
128 INTEGER (KIND=JPLIKM) KNUMER ! IN
129 LOGICAL LDIMST ! IN
130 ! Local integers
131 INTEGER (KIND=JPLIKB) IREP ! OUT
132 INTEGER (KIND=JPLIKB) INUMER ! IN
133 ! Convert arguments
134 
135 inumer = int( knumer, jplikb)
136 
137 CALL lfimst_fort &
138 & (lfi, irep, inumer, ldimst)
139 
140 krep = int( irep, jplikm)
141 
142 END SUBROUTINE lfimst_mt
143 
144 !INTF KREP OUT
145 !INTF KNUMER IN
146 !INTF LDIMST IN
integer, parameter jplikb
subroutine lfimst_fort(LFI, KREP, KNUMER, LDIMST)
Definition: lfimst.F90:6
subroutine lfimst64(KREP, KNUMER, LDIMST)
Definition: lfimst.F90:84
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
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfimst(KREP, KNUMER, LDIMST)
Definition: lfimst.F90:103
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
subroutine lfimst_mt(LFI, KREP, KNUMER, LDIMST)
Definition: lfimst.F90:122