SURFEX v8.1
General documentation of Surfex
lfiosf.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 lfiosf_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'obtenir l'option courante gouvernant
13 ! l'impression de STATISTIQUES a la fermeture d'un fichier
14 ! particulier, ouvert pour le logiciel LFI.
15 !
16 ! Noter que si le niveau global d'impression des statistiques
17 ! *LFI%NISTAG* vaut 0 ou 2, l'option propre au fichier est inoperante.
18 ! *LFI%NISTAG* vaut par defaut 1, est reglable via le s/p "LFINSG",
19 ! et sa valeur peut etre obtenue par le s/p "LFIOSG".
20 !**
21 ! ARGUMENTS : KREP (Sortie) ==> Code-REPonse du sous-programme;
22 ! KNUMER (Entree) ==> NUMERo d'unite logique concernee;
23 ! LDIMST (Sortie) ==> Option d'IMpression des STatisti-
24 ! ques a la fermeture (vrai=oui).
25 !
26 !
27 TYPE(lficom) :: LFI
28 INTEGER (KIND=JPLIKB) KREP, KNUMER, IRANG, IREP, INIMES
29 !
30 LOGICAL LDIMST
31 !
32 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
33 CHARACTER(LEN=LFI%JPLMES) CLMESS
34 CHARACTER(LEN=LFI%JPLFTX) CLACTI
35 LOGICAL LLFATA
36 
37 !
38 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (lhook) CALL dr_hook('LFIOSF_FORT',0,zhook_handle)
40 clacti=''
41 CALL lfinum_fort &
42 & (lfi, knumer,irang)
43 !
44 IF (irang.NE.0) THEN
45  IF (lfi%LMULTI) CALL lfiver_fort &
46 & (lfi, lfi%VERRUE(irang),'ON')
47  ldimst=lfi%LISTAT(irang)
48  lfi%NDEROP(irang)=20
49  IF (lfi%LMULTI) CALL lfiver_fort &
50 & (lfi, lfi%VERRUE(irang),'OFF')
51  irep=0
52 ELSE
53  irep=-1
54 ENDIF
55 !
56 krep=irep
57 llfata=llmoer(irep,irang)
58 !
59 IF (llfata.OR.ixnims(irang).EQ.2) THEN
60  inimes=2
61 ELSE
62  IF (lhook) CALL dr_hook('LFIOSF_FORT',1,zhook_handle)
63  RETURN
64 ENDIF
65 !
66 clnspr='LFIOSF'
67 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
68 & '', LDIMST= '',L1)') krep,knumer,ldimst
69 CALL lfiems_fort &
70 & (lfi, knumer,inimes,irep,llfata, &
71 & clmess,clnspr,clacti)
72 !
73 IF (lhook) CALL dr_hook('LFIOSF_FORT',1,zhook_handle)
74 
75 CONTAINS
76 
77 #include "lficom2.ixnims.h"
78 #include "lficom2.llmoer.h"
79 
80 END SUBROUTINE lfiosf_fort
81 
82 
83 
84 ! Oct-2012 P. Marguinaud 64b LFI
85 SUBROUTINE lfiosf64 &
86 & (krep, knumer, ldimst)
87 USE lfimod, ONLY : lfi => lficom_default, &
90 USE lfi_precision
91 IMPLICIT NONE
92 ! Arguments
93 INTEGER (KIND=JPLIKB) KREP ! OUT
94 INTEGER (KIND=JPLIKB) KNUMER ! IN
95 LOGICAL LDIMST ! OUT
96 
97 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
98 
99 CALL lfiosf_fort &
100 & (lfi, krep, knumer, ldimst)
101 
102 END SUBROUTINE lfiosf64
103 
104 SUBROUTINE lfiosf &
105 & (krep, knumer, ldimst)
106 USE lfimod, ONLY : lfi => lficom_default, &
109 USE lfi_precision
110 IMPLICIT NONE
111 ! Arguments
112 INTEGER (KIND=JPLIKM) KREP ! OUT
113 INTEGER (KIND=JPLIKM) KNUMER ! IN
114 LOGICAL LDIMST ! OUT
115 
116 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
117 
118 CALL lfiosf_mt &
119 & (lfi, krep, knumer, ldimst)
120 
121 END SUBROUTINE lfiosf
122 
123 SUBROUTINE lfiosf_mt &
124 & (lfi, krep, knumer, ldimst)
125 USE lfimod, ONLY : lficom
126 USE lfi_precision
127 IMPLICIT NONE
128 ! Arguments
129 type(lficom) lfi ! INOUT
130 INTEGER (KIND=JPLIKM) KREP ! OUT
131 INTEGER (KIND=JPLIKM) KNUMER ! IN
132 LOGICAL LDIMST ! OUT
133 ! Local integers
134 INTEGER (KIND=JPLIKB) IREP ! OUT
135 INTEGER (KIND=JPLIKB) INUMER ! IN
136 ! Convert arguments
137 
138 inumer = int( knumer, jplikb)
139 
140 CALL lfiosf_fort &
141 & (lfi, irep, inumer, ldimst)
142 
143 krep = int( irep, jplikm)
144 
145 END SUBROUTINE lfiosf_mt
146 
147 !INTF KREP OUT
148 !INTF KNUMER IN
149 !INTF LDIMST OUT
subroutine lfiosf(KREP, KNUMER, LDIMST)
Definition: lfiosf.F90:106
integer, parameter jplikb
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfiosf_fort(LFI, KREP, KNUMER, LDIMST)
Definition: lfiosf.F90:6
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 lfiosf64(KREP, KNUMER, LDIMST)
Definition: lfiosf.F90:87
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 lfiosf_mt(LFI, KREP, KNUMER, LDIMST)
Definition: lfiosf.F90:125