SURFEX v8.1
General documentation of Surfex
lfipxf.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 lfipxf_fort &
5 & (lfi, krep, knumer, knumex, cdcfgx, &
6 & klarex, kxcnex, &
7 & kfacex, knutra, cdnoma, klong )
8 USE lfimod, ONLY : lficom
9 USE parkind1, ONLY : jprb
10 USE yomhook , ONLY : lhook, dr_hook
11 USE lfi_precision
12 IMPLICIT NONE
13 !****
14 ! Sous-programme Preparatoire a la realisation d'une
15 ! "version eXport" d'un Fichier LFI vers un systeme
16 ! a priori different. La methode utilisee suppose:
17 !
18 ! - que les fichiers a acces direct FORTRAN soient implantes ou
19 ! traitables comme des fichiers non bloques sur le systeme
20 ! destinataire;
21 !
22 ! - que l'on puisse ecrire par WRITE FORTRAN des fichiers
23 ! non bloques sur le systeme ou est fait la "version export",
24 ! aussi appelee "fichier export";
25 !
26 ! - que la conversion des variables, numeriques voire aussi
27 ! caracteres, soit faite au niveau des couches d'entrees/sorties
28 ! FORTRAN sur le systeme ou est fait le fichier export;
29 !
30 ! ( dans la pratique, les deux points qui precedent impliquent un
31 ! parametrage au niveau du langage de controle, a priori )
32 !
33 ! - que le programme utilisateur ait ouvert au prealable le fichier
34 ! LFI dont on veut realiser une "version export", et appelle le
35 ! sous-programme LFIPXF;
36 !
37 ! - que le programme utilisateur specifie le contenu des articles
38 ! a exporter en termes de types FORTRAN; ceci pouvant se faire
39 ! de deux manieres, eventuellement combinables:
40 !
41 ! 1) Si le fichier contient (essentiellement) des donnees
42 ! utilisateur pouvant se decrire de maniere homogene,
43 ! par exemple rien que des variables reelles, et doit etre
44 ! exporte dans la totalite des articles, alors il suffira
45 ! d'appeler le sous-programme LFIXPH avec la description
46 ! correspondant a ces articles, que l'on peut aussi voir
47 ! comme une "description par defaut" (ou implicite);
48 !
49 ! 2) Si ce n'est pas le cas, ou si une partie des articles ne
50 ! peut pas etre decrite de la meme maniere que les autres
51 ! articles, alors il faudra que le programme utilisateur
52 ! specifie, pour chacun de ces articles,
53 ! le contenu en termes de types FORTRAN en appelant le sous-
54 ! programme LFIXPA: il s'agit la d'une description explicite,
55 ! ayant precedence sur une eventuelle description implicite;
56 !
57 ! - qu'en fin de compte le programme utilisateur appelle le sous-
58 ! programme LFIXPF qui fabriquera vraiment la version export,
59 ! a partir des specifications donnees via LFIPXF, LFIXPH, LFIXPA.
60 !**
61 ! ARGUMENTS : KREP (Sortie) ==> Code-Reponse du sous-programme;
62 ! KNUMER (Entree) ==> Numero d'Unite Logique associe
63 ! au fichier LFI a exporter;
64 ! KNUMEX (Entree) ==> Numero d'Unite Logique associe
65 ! a la version export a realiser;
66 ! CDCFGX (Entree) ==> Configuration du systeme
67 ! destinataire du fichier export;
68 ! KLAREX (Entree) ==> Longueur d'ARticle Elementaire du
69 ! logiciel LFI du systeme destinatai-
70 ! re, exprimee en mots du systeme
71 ! destinataire;
72 ! (LFI%JPLARD du logiciel "distant")
73 ! KXCNEX (Entree) ==> Nombre maXimum de Caracteres par
74 ! Nom d'article du logiciel LFI du
75 ! systeme destinataire;
76 ! (LFI%JPNCPN du logiciel "distant")
77 ! KFACEX (Entree) ==> Facteur multiplicatif du fichier
78 ! export;
79 ! KNUTRA (Entree) ==> Numero d'Unite Logique utilisable
80 ! pour un fichier de travail eventuel
81 ! (si utilisation de LFIXPA), de type
82 ! LFI;
83 ! CDNOMA (Sortie) ==> Nom du premier article "candidat"
84 ! (potentiel) a l'export;
85 ! KLONG (Sortie) ==> Longueur de cet article.
86 !
87 ! REMARQUE: Le fichier de travail n'est utilise que si l'on n'a pas
88 ! assez de place dans les tables pour stocker en memoire
89 ! les descripteurs. Mais si on en a besoin, il faut penser
90 ! que ce fichier occupera (temporairement, jusqu'a appel a
91 ! LFIXPF) une entree dans les tables LFI, et donc ne pas
92 ! avoir les tables saturees auparavant.
93 !
94 !
95 TYPE(lficom) :: LFI
96 CHARACTER CDNOMA*(*), CLNOMA*(lfi%jpncpn)
97 CHARACTER CDCFGX*(*), CLCFGX*(lfi%jpxccf)
98 !
99 INTEGER (KIND=JPLIKB) KREP, KNUMER, KNUMEX, KLAREX
100 INTEGER (KIND=JPLIKB) KXCNEX, KFACEX, KNUTRA
101 INTEGER (KIND=JPLIKB) KLONG, ILCLNO, ILCDNO, IRANMX
102 INTEGER (KIND=JPLIKB) ILCFGX, IDECBL, IPOSBL
103 INTEGER (KIND=JPLIKB) IRANG, IREP, INUMER, INBALO
104 INTEGER (KIND=JPLIKB) INTTRU, J, IRANIE, INIMES
105 INTEGER (KIND=JPLIKB) IRGPIM, IRGPIF, IARTIC, IRETIN, ILCDCF
106 !
107 LOGICAL LLVERG, LLVERF, LLEXUL, LLOUVR
108 !
109 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
110 CHARACTER(LEN=LFI%JPLMES) CLMESS
111 CHARACTER(LEN=LFI%JPLFTX) CLACTI
112 LOGICAL LLFATA
113 
114 !**
115 ! 1. - CONTROLES DES PARAMETRES D'APPEL, PUIS INITIALISATIONS.
116 !-----------------------------------------------------------------------
117 !
118 ! Appel legerement anticipe a LFINUM, garantissant l'initialisa-
119 ! tion des variables globales du logiciel a la 1ere utilisation.
120 !
121 REAL(KIND=JPRB) :: ZHOOK_HANDLE
122 IF (lhook) CALL dr_hook('LFIPXF_FORT',0,zhook_handle)
123 clacti=''
124 CALL lfinum_fort &
125 & (lfi, knumer,irang)
126 irep=0
127 inumer=knumer
128 llverf=.false.
129 llverg=.false.
130 ilcdno=int(len(cdnoma), jplikb)
131 ilcdcf=int(len(cdcfgx), jplikb)
132 clnoma=' '
133 ilclno=1
134 clcfgx=' '
135 ilcfgx=1
136 klong=0
137 !
138 IF (min(klarex,kxcnex,kfacex).LE.0) THEN
139  irep=-14
140  GOTO 1001
141 ELSEIF (ilcdno.LE.0) THEN
142  irep=-15
143  clnoma=lfi%CHINCO(:lfi%JPNCPN)
144  ilclno=lfi%JPNCPN
145 ENDIF
146 !
147 IF (ilcdcf.LE.0) THEN
148  irep=-15
149  clcfgx=lfi%CHINCO(:lfi%JPNCPN)
150  ilcfgx=lfi%JPNCPN
151 ENDIF
152 !
153 IF (irep.NE.0) THEN
154  GOTO 1001
155 ELSE
156  cdnoma=' '
157 ENDIF
158 !
159 ! Recherche de la longueur "utile" de la configuration specifiee.
160 ! (c'est-a-dire sans tenir compte des blancs terminaux eventuels)
161 !
162 idecbl=0
163 !
164 101 CONTINUE
165 iposbl=idecbl+int(index(cdcfgx(idecbl+1:),' '), jplikb)
166 !
167 IF (iposbl.LE.idecbl) THEN
168  ilcfgx=ilcdcf
169 ELSEIF (cdcfgx(iposbl:).EQ.' ') THEN
170  ilcfgx=iposbl-1
171 ELSE
172  idecbl=iposbl
173  GOTO 101
174 ENDIF
175 !
176 IF (ilcfgx.LE.lfi%JPXCCF) THEN
177  clcfgx=cdcfgx(:ilcfgx)
178 ELSE
179  clcfgx=cdcfgx(:lfi%JPXCCF)
180  ilcfgx=lfi%JPXCCF
181  irep=-15
182  GOTO 1001
183 ENDIF
184 !
185 DO j=0,lfi%JPCFMX
186 !
187 IF (cdcfgx.EQ.lfi%CFGMXD(j)) THEN
188  iranmx=j
189  GOTO 103
190 ENDIF
191 !
192 ENDDO
193 !
194 ! Configuration du systeme destinataire inconnue ou non prevue.
195 !
196 irep=-32
197 GOTO 1001
198 !
199 103 CONTINUE
200 !
201 IF (kxcnex.GT.lfi%JPXCIE) THEN
202  irep=-33
203  GOTO 1001
204 ENDIF
205 !
206 ! Controle de validite FORTRAN et de non ouverture prealable
207 ! des Numeros d'Unite Logique KNUMEX et KNUTRA.
208 !
209 inumer=knumex
210 INQUIRE (unit=knumex,exist=llexul,opened=llouvr,err=901, &
211 & iostat=irep)
212 clacti='EXPORT'
213 !
214 IF (.NOT.llexul) THEN
215  irep=-30
216  GOTO 1001
217 ELSEIF (llouvr) THEN
218  irep=-34
219  GOTO 1001
220 ENDIF
221 !
222 inumer=knutra
223 INQUIRE (unit=knutra,exist=llexul,opened=llouvr,err=901, &
224 & iostat=irep)
225 !
226 IF (lfi%LFRANC) THEN
227  clacti='DE TRAVAIL'
228 ELSE
229  clacti='WORK'
230 ENDIF
231 !
232 IF (.NOT.llexul) THEN
233  irep=-30
234  GOTO 1001
235 ELSEIF (llouvr) THEN
236  irep=-34
237  GOTO 1001
238 ENDIF
239 !
240 inumer=knumer
241 !
242 IF (irang.EQ.0) THEN
243  irep=-1
244  GOTO 1001
245 ENDIF
246 !
247  IF (lfi%LMULTI) CALL lfiver_fort &
248 & (lfi, lfi%VERRUE(irang),'ON')
249 llverf=lfi%LMULTI
250 !
251 IF (lfi%NEXPOR(irang).GT.0) THEN
252  irep=-35
253  clacti='EXPORT'
254  GOTO 1001
255 ELSEIF (lfi%NIMPOR(irang).GT.0) THEN
256  irep=-35
257  clacti='IMPORT'
258  GOTO 1001
259 ENDIF
260 !
261 inbalo=lfi%MDES1D(ixm(lfi%JPNALO,irang))
262 inttru=lfi%MDES1D(ixm(lfi%JPNTRU,irang))+lfi%NBTROU(irang)
263 !
264 IF (inbalo.EQ.inttru) THEN
265 !
266 ! Fichier vide de donnees... inexportable.
267 !
268  irep=-36
269  clacti='EXPORT'
270  GOTO 1001
271 ENDIF
272 !
273 ! Ouverture de l'unite logique KNUMEX.
274 !
275 inumer=knumex
276 OPEN (unit=knumex,status='UNKNOWN',access='SEQUENTIAL', &
277 & form='UNFORMATTED',iostat=irep,err=902)
278 rewind(unit=knumex,iostat=irep,err=906)
279 inumer=knumer
280 !**
281 ! 2. - RECHERCHE DU PREMIER ARTICLE LOGIQUE DE DONNEES DU FICHIER.
282 !-----------------------------------------------------------------------
283 !
284 ! Reinitialisation des caracteristiques de type "pointeur".
285 !
286 lfi%NDERGF(irang)=lfi%JPNIL
287 lfi%CNDERA(irang)=' '
288 lfi%NSUIVF(irang)=lfi%JPNIL
289 lfi%NPRECF(irang)=lfi%JPNIL
290 !
291 CALL lficax_fort &
292 & (lfi, irep,irang,irgpim,iartic,iretin)
293 !
294 IF (iretin.EQ.1) THEN
295  GOTO 903
296 ELSEIF (iretin.EQ.2) THEN
297  GOTO 904
298 ELSEIF (iretin.NE.0) THEN
299  GOTO 1001
300 ELSEIF (iartic.EQ.0) THEN
301  irep=-16
302  GOTO 1001
303 ENDIF
304 !
305 irgpif=lfi%MRGPIF(irgpim)
306 !
307 IF (.NOT.lfi%LPHASP(irgpim)) THEN
308 !
309  CALL lfipha_fort &
310 & (lfi, irep,irang,irgpim,iretin)
311 !
312  IF (iretin.EQ.1) THEN
313  GOTO 903
314  ELSEIF (iretin.EQ.2) THEN
315  GOTO 904
316  ELSEIF (iretin.NE.0) THEN
317  GOTO 1001
318  ENDIF
319 !
320 ENDIF
321 !
322 klong=lfi%MLGPOS(ixm(iartic,irgpim))
323 clnoma=lfi%CNOMAR(ixc(iartic,irgpim))
324 !
325 ! Recherche de la longueur "utile" du nom d'article.
326 ! (c'est-a-dire sans tenir compte des blancs terminaux eventuels)
327 !
328 idecbl=0
329 !
330 211 CONTINUE
331 iposbl=idecbl+int(index(clnoma(idecbl+1:),' '), jplikb)
332 !
333 IF (iposbl.LE.idecbl) THEN
334  ilclno=lfi%JPNCPN
335 ELSEIF (clnoma(iposbl:).EQ.' ') THEN
336  ilclno=iposbl-1
337 ELSE
338  idecbl=iposbl
339  GOTO 211
340 ENDIF
341 !
342 IF (ilcdno.GE.ilclno) THEN
343  cdnoma=clnoma(:ilclno)
344 ELSE
345  irep=-24
346  clacti=clnoma
347  GOTO 1001
348 ENDIF
349 !**
350 ! 3. - STOCKAGE DES PARAMETRES D'APPEL DANS LES TABLES.
351 !-----------------------------------------------------------------------
352 !
353 ! VERROUILLAGE GLOBAL EVENTUEL.
354 !
355 IF (lfi%LMULTI) CALL lfiver_fort &
356 & (lfi, lfi%VERGLA,'ON')
357 llverg=lfi%LMULTI
358 !
359 IF (lfi%NUIMEX.LT.lfi%JPIMEX) THEN
360 !
361  DO j=1,lfi%JPIMEX
362 !
363  IF (lfi%MNUIEX(j).EQ.lfi%JPNIL) THEN
364  iranie=j
365  lfi%NUIMEX=lfi%NUIMEX+1
366  lfi%NINIEX(lfi%NUIMEX)=j
367  lfi%MNUIEX(j)=knumer
368  GOTO 302
369  ENDIF
370 !
371  ENDDO
372 !
373  irep=-16
374  GOTO 1001
375 !
376 ELSE
377 !
378 ! Tables deja pleines...
379 !
380  irep=-37
381  GOTO 1001
382 ENDIF
383 !
384 302 CONTINUE
385 !
386 ! Deverrouillage Global eventuel.
387 !
388  IF (lfi%LMULTI) CALL lfiver_fort &
389 & (lfi, lfi%VERGLA,'OFF')
390 llverg=.false.
391 !
392 lfi%NEXPOR(irang)=iranie
393 lfi%NAEXPL(iranie)=0
394 lfi%CNIMPL(iranie)=' '
395 lfi%NIMPEX(iranie)=knumex
396 lfi%NUTRAV(iranie)=knutra
397 lfi%NLAPFD(iranie)=klarex*kfacex
398 lfi%NXCNLD(iranie)=kxcnex
399 lfi%NRCFMX(iranie)=iranmx
400 !
401 GOTO 1001
402 !**
403 ! 9. - CI-DESSOUS, ETIQUETTES DE BRANCHEMENT EN CAS D'ERREUR E/S.
404 !-----------------------------------------------------------------------
405 !
406 901 CONTINUE
407 clacti='INQUIRE'
408 GOTO 909
409 !
410 902 CONTINUE
411 clacti='OPEN'
412 GOTO 909
413 !
414 903 CONTINUE
415 clacti='WRITE'
416 GOTO 909
417 !
418 904 CONTINUE
419 clacti='READ'
420 GOTO 909
421 !
422 906 CONTINUE
423 clacti='REWIND'
424 !
425 909 CONTINUE
426 !
427 ! AU CAS OU, ON FORCE LE CODE-REPONSE ENTREE/SORTIE A ETRE POSITIF.
428 !
429 irep=abs(irep)
430 !**
431 ! 10. - PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
432 ! VIA LE SOUS-PROGRAMME "LFIEMS" .
433 !-----------------------------------------------------------------------
434 !
435 1001 CONTINUE
436 krep=irep
437 llfata=llmoer(irep,irang)
438  IF (llverg) CALL lfiver_fort &
439 & (lfi, lfi%VERGLA,'OFF')
440 !
441 IF (irang.NE.0) THEN
442  lfi%NDEROP(irang)=22
443  lfi%NDERCO(irang)=irep
444  IF (llverf) CALL lfiver_fort &
445 & (lfi, lfi%VERRUE(irang),'OFF')
446 ENDIF
447 !
448 IF (llfata.OR.ixnims(irang).EQ.2) THEN
449  inimes=2
450 ELSE
451  IF (lhook) CALL dr_hook('LFIPXF_FORT',1,zhook_handle)
452  RETURN
453 ENDIF
454 !
455 clnspr='LFIPXF'
456  WRITE (unit=clmess,fmt='(''ARGUMENTS='',I4,2('','',I3),A, &
457 & '','',I5,2('','',I2),'','',I3,A,'','',I6)') &
458 & krep,knumer,knumex,clcfgx(:ilcfgx),klarex,kxcnex,kfacex, &
459 & knutra,clnoma(:ilclno),klong
460 CALL lfiems_fort &
461 & (lfi, inumer,inimes,irep,llfata, &
462 & clmess,clnspr,clacti)
463 !
464 IF (lhook) CALL dr_hook('LFIPXF_FORT',1,zhook_handle)
465 
466 CONTAINS
467 
468 #include "lficom2.ixc.h"
469 #include "lficom2.ixm.h"
470 #include "lficom2.ixnims.h"
471 #include "lficom2.llmoer.h"
472 
473 END SUBROUTINE lfipxf_fort
474 
475 
476 
477 ! Oct-2012 P. Marguinaud 64b LFI
478 SUBROUTINE lfipxf64 &
479 & (krep, knumer, knumex, cdcfgx, klarex, kxcnex, &
480 & kfacex, knutra, cdnoma, klong)
481 USE lfimod, ONLY : lfi => lficom_default, &
484 USE lfi_precision
485 IMPLICIT NONE
486 ! Arguments
487 INTEGER (KIND=JPLIKB) KREP ! OUT
488 INTEGER (KIND=JPLIKB) KNUMER ! IN
489 INTEGER (KIND=JPLIKB) KNUMEX ! IN
490 CHARACTER (LEN=*) CDCFGX ! IN
491 INTEGER (KIND=JPLIKB) KLAREX ! IN
492 INTEGER (KIND=JPLIKB) KXCNEX ! IN
493 INTEGER (KIND=JPLIKB) KFACEX ! IN
494 INTEGER (KIND=JPLIKB) KNUTRA ! IN
495 CHARACTER (LEN=*) CDNOMA ! OUT
496 INTEGER (KIND=JPLIKB) KLONG ! OUT
497 
498 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
499 
500 CALL lfipxf_fort &
501 & (lfi, krep, knumer, knumex, cdcfgx, klarex, kxcnex, &
502 & kfacex, knutra, cdnoma, klong)
503 
504 END SUBROUTINE lfipxf64
505 
506 SUBROUTINE lfipxf &
507 & (krep, knumer, knumex, cdcfgx, klarex, kxcnex, &
508 & kfacex, knutra, cdnoma, klong)
509 USE lfimod, ONLY : lfi => lficom_default, &
512 USE lfi_precision
513 IMPLICIT NONE
514 ! Arguments
515 INTEGER (KIND=JPLIKM) KREP ! OUT
516 INTEGER (KIND=JPLIKM) KNUMER ! IN
517 INTEGER (KIND=JPLIKM) KNUMEX ! IN
518 CHARACTER (LEN=*) CDCFGX ! IN
519 INTEGER (KIND=JPLIKM) KLAREX ! IN
520 INTEGER (KIND=JPLIKM) KXCNEX ! IN
521 INTEGER (KIND=JPLIKM) KFACEX ! IN
522 INTEGER (KIND=JPLIKM) KNUTRA ! IN
523 CHARACTER (LEN=*) CDNOMA ! OUT
524 INTEGER (KIND=JPLIKM) KLONG ! OUT
525 
526 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
527 
528 CALL lfipxf_mt &
529 & (lfi, krep, knumer, knumex, cdcfgx, klarex, kxcnex, &
530 & kfacex, knutra, cdnoma, klong)
531 
532 END SUBROUTINE lfipxf
533 
534 SUBROUTINE lfipxf_mt &
535 & (lfi, krep, knumer, knumex, cdcfgx, klarex, kxcnex, &
536 & kfacex, knutra, cdnoma, klong)
537 USE lfimod, ONLY : lficom
538 USE lfi_precision
539 IMPLICIT NONE
540 ! Arguments
541 type(lficom) lfi ! INOUT
542 INTEGER (KIND=JPLIKM) KREP ! OUT
543 INTEGER (KIND=JPLIKM) KNUMER ! IN
544 INTEGER (KIND=JPLIKM) KNUMEX ! IN
545 CHARACTER (LEN=*) CDCFGX ! IN
546 INTEGER (KIND=JPLIKM) KLAREX ! IN
547 INTEGER (KIND=JPLIKM) KXCNEX ! IN
548 INTEGER (KIND=JPLIKM) KFACEX ! IN
549 INTEGER (KIND=JPLIKM) KNUTRA ! IN
550 CHARACTER (LEN=*) CDNOMA ! OUT
551 INTEGER (KIND=JPLIKM) KLONG ! OUT
552 ! Local integers
553 INTEGER (KIND=JPLIKB) IREP ! OUT
554 INTEGER (KIND=JPLIKB) INUMER ! IN
555 INTEGER (KIND=JPLIKB) INUMEX ! IN
556 INTEGER (KIND=JPLIKB) ILAREX ! IN
557 INTEGER (KIND=JPLIKB) IXCNEX ! IN
558 INTEGER (KIND=JPLIKB) IFACEX ! IN
559 INTEGER (KIND=JPLIKB) INUTRA ! IN
560 INTEGER (KIND=JPLIKB) ILONG ! OUT
561 ! Convert arguments
562 
563 inumer = int( knumer, jplikb)
564 inumex = int( knumex, jplikb)
565 ilarex = int( klarex, jplikb)
566 ixcnex = int( kxcnex, jplikb)
567 ifacex = int( kfacex, jplikb)
568 inutra = int( knutra, jplikb)
569 
570 CALL lfipxf_fort &
571 & (lfi, irep, inumer, inumex, cdcfgx, ilarex, ixcnex, &
572 & ifacex, inutra, cdnoma, ilong)
573 
574 krep = int( irep, jplikm)
575 klong = int( ilong, jplikm)
576 
577 END SUBROUTINE lfipxf_mt
578 
579 !INTF KREP OUT
580 !INTF KNUMER IN
581 !INTF KNUMEX IN
582 !INTF CDCFGX IN
583 !INTF KLAREX IN
584 !INTF KXCNEX IN
585 !INTF KFACEX IN
586 !INTF KNUTRA IN
587 !INTF CDNOMA OUT
588 !INTF KLONG OUT
subroutine lfipxf(KREP, KNUMER, KNUMEX, CDCFGX, KLAREX, KXCNEX, KFACEX, KNUTRA, CDNOMA, KLONG)
Definition: lfipxf.F90:509
integer, parameter jplikb
subroutine lfipxf_fort(LFI, KREP, KNUMER, KNUMEX, CDCFGX, KLAREX, KXCNEX, KFACEX, KNUTRA, CDNOMA, KLONG)
Definition: lfipxf.F90:8
subroutine lficax_fort(LFI, KREP, KRANG, KRGPIM, KARTEX, KRETIN)
Definition: lficax.F90:5
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
type(lficom), target, save lficom_default
Definition: lfimod.F90:370
logical lhook
Definition: yomhook.F90:15
subroutine lfipha_fort(LFI, KREP, KRANG, KRGPIM, KRETIN)
Definition: lfipha.F90:5
integer, parameter jplikm
subroutine lfiems_fort(LFI, KNUMER, KNIMES, KCODE, LDFATA, CDMESS, CDNSPR, CDACTI)
Definition: lfiems.F90:7
subroutine lfipxf_mt(LFI, KREP, KNUMER, KNUMEX, CDCFGX, KLAREX, KXCNEX, KFACEX, KNUTRA, CDNOMA, KLONG)
Definition: lfipxf.F90:537
subroutine lfipxf64(KREP, KNUMER, KNUMEX, CDCFGX, KLAREX, KXCNEX, KFACEX, KNUTRA, CDNOMA, KLONG)
Definition: lfipxf.F90:481
Definition: lfimod.F90:1
ERROR in index
Definition: ecsort_shared.h:90