SURFEX v8.1
General documentation of Surfex
lfiomf.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 lfiomf_fort &
5 & (lfi, krep, knumer, knimes )
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 la valeur courante du niveau
13 ! de messagerie propre aux actions faites via le logiciel LFI,
14 ! sur un fichier particulier ouvert pour ce logiciel.
15 !
16 ! Noter que si le niveau global de messagerie *LFI%NIMESG*
17 ! vaut 0 ou 2, le niveau propre au fichier est inoperant.
18 ! *LFI%NIMESG* vaut par defaut 1, est reglable via le s/p "LFINMG",
19 ! et sa valeur courante peut etre obtenue par le s/p "LFIOMG".
20 !**
21 ! ARGUMENTS : KREP (Sortie) ==> Code-REPonse du sous-programme;
22 ! KNUMER (Entree) ==> NUMERo d'unite logique concernee;
23 ! KNIMES (Sortie) ==> NIveau courant de MESsagerie.
24 !
25 !
26 TYPE(lficom) :: LFI
27 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIMES, 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 REAL(KIND=JPRB) :: ZHOOK_HANDLE
36 IF (lhook) CALL dr_hook('LFIOMF_FORT',0,zhook_handle)
37 clacti=''
38 CALL lfinum_fort &
39 & (lfi, knumer,irang)
40 !
41 IF (irang.EQ.0) THEN
42  irep=-1
43 ELSE
44  knimes=lfi%NIVMES(irang)
45  lfi%NDEROP(irang)=21
46  irep=0
47 ENDIF
48 !
49 llfata=llmoer(irep,irang)
50 krep=irep
51 !
52 IF (llfata.OR.ixnims(irang).EQ.2) THEN
53  inimes=2
54 ELSE
55  IF (lhook) CALL dr_hook('LFIOMF_FORT',1,zhook_handle)
56  RETURN
57 ENDIF
58 !
59 clnspr='LFIOMF'
60 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
61 & '', KNIMES='',I3)') krep,knumer,knimes
62 CALL lfiems_fort &
63 & (lfi, knumer,inimes,irep,llfata, &
64 & clmess,clnspr,clacti)
65 !
66 IF (lhook) CALL dr_hook('LFIOMF_FORT',1,zhook_handle)
67 
68 CONTAINS
69 
70 #include "lficom2.ixnims.h"
71 #include "lficom2.llmoer.h"
72 
73 END SUBROUTINE lfiomf_fort
74 
75 
76 
77 ! Oct-2012 P. Marguinaud 64b LFI
78 SUBROUTINE lfiomf64 &
79 & (krep, knumer, knimes)
80 USE lfimod, ONLY : lfi => lficom_default, &
83 USE lfi_precision
84 IMPLICIT NONE
85 ! Arguments
86 INTEGER (KIND=JPLIKB) KREP ! OUT
87 INTEGER (KIND=JPLIKB) KNUMER ! IN
88 INTEGER (KIND=JPLIKB) KNIMES ! OUT
89 
90 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
91 
92 CALL lfiomf_fort &
93 & (lfi, krep, knumer, knimes)
94 
95 END SUBROUTINE lfiomf64
96 
97 SUBROUTINE lfiomf &
98 & (krep, knumer, knimes)
99 USE lfimod, ONLY : lfi => lficom_default, &
102 USE lfi_precision
103 IMPLICIT NONE
104 ! Arguments
105 INTEGER (KIND=JPLIKM) KREP ! OUT
106 INTEGER (KIND=JPLIKM) KNUMER ! IN
107 INTEGER (KIND=JPLIKM) KNIMES ! OUT
108 
109 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
110 
111 CALL lfiomf_mt &
112 & (lfi, krep, knumer, knimes)
113 
114 END SUBROUTINE lfiomf
115 
116 SUBROUTINE lfiomf_mt &
117 & (lfi, krep, knumer, knimes)
118 USE lfimod, ONLY : lficom
119 USE lfi_precision
120 IMPLICIT NONE
121 ! Arguments
122 type(lficom) lfi ! INOUT
123 INTEGER (KIND=JPLIKM) KREP ! OUT
124 INTEGER (KIND=JPLIKM) KNUMER ! IN
125 INTEGER (KIND=JPLIKM) KNIMES ! OUT
126 ! Local integers
127 INTEGER (KIND=JPLIKB) IREP ! OUT
128 INTEGER (KIND=JPLIKB) INUMER ! IN
129 INTEGER (KIND=JPLIKB) INIMES ! OUT
130 ! Convert arguments
131 
132 inumer = int( knumer, jplikb)
133 
134 CALL lfiomf_fort &
135 & (lfi, irep, inumer, inimes)
136 
137 krep = int( irep, jplikm)
138 knimes = int( inimes, jplikm)
139 
140 END SUBROUTINE lfiomf_mt
141 
142 !INTF KREP OUT
143 !INTF KNUMER IN
144 !INTF KNIMES OUT
integer, parameter jplikb
subroutine lfiomf_mt(LFI, KREP, KNUMER, KNIMES)
Definition: lfiomf.F90:118
subroutine lfiomf64(KREP, KNUMER, KNIMES)
Definition: lfiomf.F90:80
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfiomf(KREP, KNUMER, KNIMES)
Definition: lfiomf.F90:99
logical, save lficom_default_init
Definition: lfimod.F90:371
subroutine lfinum_fort(LFI, KNUMER, KRANG)
Definition: lfinum.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfiomf_fort(LFI, KREP, KNUMER, KNIMES)
Definition: lfiomf.F90:6
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