SURFEX v8.1
General documentation of Surfex
lfifmd.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 lfifmd_fort &
5 & (lfi, kfacmd )
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 de changer le Facteur Multiplicatif
13 ! par Defaut du logiciel de fichiers indexes LFI.
14 ! Apres appel reussi a ce sous-programme, toute ouverture d'unite
15 ! logique LFI pour laquelle il n'y a pas de facteur multiplicatif
16 ! predefini (via *LFIAFM*) se fera en traitant le fichier avec une
17 ! longueur PHYSIQUE d'article de LFI%JPLARD*KFACMD mots.
18 !
19 ! La valeur implicite de ce Facteur Multiplicatif par Defaut est
20 ! definie dans *LFIINI* ( en l'occurrence, il s'agit de 1 ) .
21 !**
22 ! ARGUMENT : KFACMD (Entree) ==> Facteur Multiplicatif par Defaut
23 !
24 !
25 TYPE(lficom) :: LFI
26 INTEGER (KIND=JPLIKB) KFACMD, INIMES, IREP, INUMER
27 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
28 CHARACTER(LEN=LFI%JPLMES) CLMESS
29 CHARACTER(LEN=LFI%JPLFTX) CLACTI
30 LOGICAL LLFATA
31 
32 !
33 REAL(KIND=JPRB) :: ZHOOK_HANDLE
34 IF (lhook) CALL dr_hook('LFIFMD_FORT',0,zhook_handle)
35 clacti=''
36 IF (lfi%LFIFMD_LLPREA) THEN
37  CALL lfiini_fort &
38 & (lfi, 2_jplikb )
39  lfi%LFIFMD_LLPREA=.false.
40 ENDIF
41 !
42 IF (kfacmd.LE.0) THEN
43  irep=-14
44 ELSEIF (kfacmd.GT.lfi%JPFACX) THEN
45  irep=-28
46 ELSE
47  irep=0
48 !
49 ! Modification, sous Verrouillage Global eventuel.
50 !
51  IF (lfi%LMULTI) CALL lfiver_fort &
52 & (lfi, lfi%VERGLA,'ON')
53 !
54  lfi%MFACTU(0)=kfacmd
55 !
56  IF (lfi%LMULTI) CALL lfiver_fort &
57 & (lfi, lfi%VERGLA,'OFF')
58 ENDIF
59 !
60 ! MESSAGERIE EVENTUELLE, AVEC ABORT SI NECESSAIRE .
61 !
62 llfata=irep.NE.0.AND.lfi%NERFAG.NE.2
63 !
64 IF (llfata) THEN
65  inimes=2
66 ELSEIF (irep.NE.0) THEN
67  inimes=0
68 ELSEIF (lfi%NIMESG.EQ.0) THEN
69  IF (lhook) CALL dr_hook('LFIFMD_FORT',1,zhook_handle)
70  RETURN
71 ELSE
72  inimes=lfi%NIMESG
73 ENDIF
74 !
75 clnspr='LFIFMD'
76 inumer=lfi%JPNIL
77 !
78 IF (inimes.EQ.2) THEN
79 !
80  IF (lfi%LFRANC) THEN
81  WRITE (unit=clmess, &
82 & fmt='(''KFACMD='',I5,'', CODE INTERNE='', &
83 & I4)') kfacmd,irep
84  ELSE
85  WRITE (unit=clmess, &
86 & fmt='(''KFACMD='',I5,'', INTERNAL CODE='', &
87 & I4)') kfacmd,irep
88  ENDIF
89 !
90  CALL lfiems_fort &
91 & (lfi, inumer,inimes,irep,llfata, &
92 & clmess,clnspr,clacti)
93 ENDIF
94 !
95 IF (inimes.GE.1) THEN
96 !
97  IF (lfi%LFRANC) THEN
98  WRITE (unit=clmess,fmt= &
99 & '(''Reglage du Facteur Multiplicatif par Defaut a'',I3)') &
100 & kfacmd
101  ELSE
102  WRITE (unit=clmess,fmt= &
103 & '(''Default Multiply Factor set to'',I3)') &
104 & kfacmd
105  ENDIF
106 !
107 ENDIF
108 !
109 CALL lfiems_fort &
110 & (lfi, inumer,inimes,irep,llfata, &
111 & clmess,clnspr,clacti)
112 !
113 IF (lhook) CALL dr_hook('LFIFMD_FORT',1,zhook_handle)
114 END SUBROUTINE lfifmd_fort
115 
116 
117 
118 ! Oct-2012 P. Marguinaud 64b LFI
119 SUBROUTINE lfifmd64 &
120 & (kfacmd)
121 USE lfimod, ONLY : lfi => lficom_default, &
124 USE lfi_precision
125 IMPLICIT NONE
126 ! Arguments
127 INTEGER (KIND=JPLIKB) KFACMD ! IN
128 
129 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
130 
131 CALL lfifmd_fort &
132 & (lfi, kfacmd)
133 
134 END SUBROUTINE lfifmd64
135 
136 SUBROUTINE lfifmd &
137 & (kfacmd)
138 USE lfimod, ONLY : lfi => lficom_default, &
141 USE lfi_precision
142 IMPLICIT NONE
143 ! Arguments
144 INTEGER (KIND=JPLIKM) KFACMD ! IN
145 
146 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
147 
148 CALL lfifmd_mt &
149 & (lfi, kfacmd)
150 
151 END SUBROUTINE lfifmd
152 
153 SUBROUTINE lfifmd_mt &
154 & (lfi, kfacmd)
155 USE lfimod, ONLY : lficom
156 USE lfi_precision
157 IMPLICIT NONE
158 ! Arguments
159 type(lficom) lfi ! INOUT
160 INTEGER (KIND=JPLIKM) KFACMD ! IN
161 ! Local integers
162 INTEGER (KIND=JPLIKB) IFACMD ! IN
163 ! Convert arguments
164 
165 ifacmd = int( kfacmd, jplikb)
166 
167 CALL lfifmd_fort &
168 & (lfi, ifacmd)
169 
170 
171 END SUBROUTINE lfifmd_mt
172 
173 !INTF KFACMD IN
integer, parameter jplikb
subroutine lfifmd64(KFACMD)
Definition: lfifmd.F90:121
subroutine lfifmd(KFACMD)
Definition: lfifmd.F90:138
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfifmd_mt(LFI, KFACMD)
Definition: lfifmd.F90:155
logical, save lficom_default_init
Definition: lfimod.F90:371
subroutine lfiver_fort(LFI, PVEROU, CDSENS)
Definition: lfiver.F90:6
integer, parameter jprb
Definition: parkind1.F90:32
subroutine lfiini_fort(LFI, KOPTIO)
Definition: lfiini.F90:6
subroutine lfifmd_fort(LFI, KFACMD)
Definition: lfifmd.F90:6
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
Definition: lfimod.F90:1