SURFEX v8.1
General documentation of Surfex
lfinim.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 lfinim_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'AJUSTER LE NIVEAU DE MESSAGERIE
13 ! PROPRE AUX ACTIONS FAITES SUR UN FICHIER PARTICULIER, OUVERT POUR
14 ! LE LOGICIEL LFI.
15 ! CEPENDANT, TANT QUE LE NIVEAU DE MESSAGERIE GLOBAL *LFI%NIMESG*
16 ! VAUT 0 OU 2, LE NIVEAU PROPRE AU FICHIER EST INOPERANT.
17 ! *LFI%NIMESG* VAUT PAR DEFAUT 1, ET EST REGLABLE VIA LE S/P "LFINMG".
18 !**
19 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
20 ! KNUMER (ENTREE) ==> LFI%NUMERO D'UNITE LOGIQUE CONCERNEE;
21 ! KNIMES (ENTREE) ==> NIVEAU DE MESSAGERIE SOUHAITE.
22 !
23 !
24 TYPE(lficom) :: LFI
25 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNIMES, IRANG
26 INTEGER (KIND=JPLIKB) IREP, INIMES, INIMEX
27 !
28 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
29 CHARACTER(LEN=LFI%JPLMES) CLMESS
30 CHARACTER(LEN=LFI%JPLFTX) CLACTI
31 LOGICAL LLFATA
32 
33 !
34 REAL(KIND=JPRB) :: ZHOOK_HANDLE
35 IF (lhook) CALL dr_hook('LFINIM_FORT',0,zhook_handle)
36 clacti=''
37 CALL lfinum_fort &
38 & (lfi, knumer,irang)
39 inimex=0
40 !
41 IF (irang.EQ.0) THEN
42  irep=-1
43 ELSEIF (knimes.GE.0.AND.knimes.LE.2) THEN
44  inimex=ixnims(irang)
45  lfi%NIVMES(irang)=knimes
46  lfi%NDEROP(irang)=5
47  irep=0
48 ELSE
49  irep=-2
50 ENDIF
51 !
52 krep=irep
53 llfata=llmoer(irep,irang)
54 !
55 IF (llfata.OR.max(ixnims(irang),inimex).EQ.2) THEN
56  inimes=2
57 ELSE
58  IF (lhook) CALL dr_hook('LFINIM_FORT',1,zhook_handle)
59  RETURN
60 ENDIF
61 !
62 clnspr='LFINIM'
63 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
64 & '', KNIMES='',I3)') krep,knumer,knimes
65 CALL lfiems_fort &
66 & (lfi, knumer,inimes,irep,llfata, &
67 & clmess,clnspr,clacti)
68 !
69 IF (lhook) CALL dr_hook('LFINIM_FORT',1,zhook_handle)
70 
71 CONTAINS
72 
73 #include "lficom2.ixnims.h"
74 #include "lficom2.llmoer.h"
75 
76 END SUBROUTINE lfinim_fort
77 
78 
79 
80 ! Oct-2012 P. Marguinaud 64b LFI
81 SUBROUTINE lfinim64 &
82 & (krep, knumer, knimes)
83 USE lfimod, ONLY : lfi => lficom_default, &
86 USE lfi_precision
87 IMPLICIT NONE
88 ! Arguments
89 INTEGER (KIND=JPLIKB) KREP ! OUT
90 INTEGER (KIND=JPLIKB) KNUMER ! IN
91 INTEGER (KIND=JPLIKB) KNIMES ! IN
92 
93 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
94 
95 CALL lfinim_fort &
96 & (lfi, krep, knumer, knimes)
97 
98 END SUBROUTINE lfinim64
99 
100 SUBROUTINE lfinim &
101 & (krep, knumer, knimes)
102 USE lfimod, ONLY : lfi => lficom_default, &
105 USE lfi_precision
106 IMPLICIT NONE
107 ! Arguments
108 INTEGER (KIND=JPLIKM) KREP ! OUT
109 INTEGER (KIND=JPLIKM) KNUMER ! IN
110 INTEGER (KIND=JPLIKM) KNIMES ! IN
111 
112 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
113 
114 CALL lfinim_mt &
115 & (lfi, krep, knumer, knimes)
116 
117 END SUBROUTINE lfinim
118 
119 SUBROUTINE lfinim_mt &
120 & (lfi, krep, knumer, knimes)
121 USE lfimod, ONLY : lficom
122 USE lfi_precision
123 IMPLICIT NONE
124 ! Arguments
125 type(lficom) lfi ! INOUT
126 INTEGER (KIND=JPLIKM) KREP ! OUT
127 INTEGER (KIND=JPLIKM) KNUMER ! IN
128 INTEGER (KIND=JPLIKM) KNIMES ! IN
129 ! Local integers
130 INTEGER (KIND=JPLIKB) IREP ! OUT
131 INTEGER (KIND=JPLIKB) INUMER ! IN
132 INTEGER (KIND=JPLIKB) INIMES ! IN
133 ! Convert arguments
134 
135 inumer = int( knumer, jplikb)
136 inimes = int( knimes, jplikb)
137 
138 CALL lfinim_fort &
139 & (lfi, irep, inumer, inimes)
140 
141 krep = int( irep, jplikm)
142 
143 END SUBROUTINE lfinim_mt
144 
145 !INTF KREP OUT
146 !INTF KNUMER IN
147 !INTF KNIMES IN
integer, parameter jplikb
subroutine lfinim_fort(LFI, KREP, KNUMER, KNIMES)
Definition: lfinim.F90:6
subroutine lfinim64(KREP, KNUMER, KNIMES)
Definition: lfinim.F90:83
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfinim_mt(LFI, KREP, KNUMER, KNIMES)
Definition: lfinim.F90:121
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 lfinim(KREP, KNUMER, KNIMES)
Definition: lfinim.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