SURFEX v8.1
General documentation of Surfex
lfiecr.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 lfiecr_fort &
5 & (lfi, krep, knumer, cdnoma, ktab, klong )
6 USE lfimod, ONLY : lficom
7 USE parkind1, ONLY : jprb
8 USE yomhook , ONLY : lhook, dr_hook
10 IMPLICIT NONE
11 !****
12 ! SOUS-PROGRAMME D'ECRITURE D'UN ARTICLE (DE DONNEES) SUR UNE
13 ! UNITE LOGIQUE OUVERTE POUR LE LOGICIEL DE FICHIERS INDEXES LFI;
14 ! L'ARTICLE DOIT ETRE UN "BLOC" DE DONNEES ADJACENTES.
15 !**
16 ! ARGUMENTS : KREP (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
17 ! KNUMER (ENTREE) ==> LFI%NUMERO DE L'UNITE LOGIQUE;
18 ! CDNOMA (ENTREE) ==> NOM DE L'ARTICLE A ECRIRE;
19 ! KTAB (ENTREE) ==> PREMIER MOT A ECRIRE
20 ! KLONG (ENTREE) ==> LONGUEUR DE L'ARTICLE A ECRIRE.
21 !
22 !
23 TYPE(lficom) :: LFI
24 CHARACTER CDNOMA*(*), CLNOMA*(lfi%jpncpn)
25 !
26 INTEGER (KIND=JPLIKB) KREP, KNUMER, KLONG
27 INTEGER (KIND=JPLIKB) KTAB (klong)
28 INTEGER (KIND=JPLIKB) IRANG, IREP, ILCLNO, IDECBL
29 INTEGER (KIND=JPLIKB) IPOSBL, INBALO, INBPIR
30 INTEGER (KIND=JPLIKB) IFACTM, ILARPH, INALPP, IRPIEX
31 INTEGER (KIND=JPLIKB) IARTEX, ILONEX, IRPIEC
32 INTEGER (KIND=JPLIKB) IARTEC, IPOSEC, IDTROU, ILONUT
33 INTEGER (KIND=JPLIKB) INPPIM, IRETIN, IRGPI, J
34 INTEGER (KIND=JPLIKB) IRGPIM, ILFORC, INPILE, INAPHY
35 INTEGER (KIND=JPLIKB) IRANGM, INAPXX, INDMAX
36 INTEGER (KIND=JPLIKB) IMDESC, INIMES, ILCDNO
37 !
38 LOGICAL LLLECT, LLECR, LLVERF
39 !
40 CHARACTER(LEN=LFI%JPLSPX) CLNSPR
41 CHARACTER(LEN=LFI%JPLMES) CLMESS
42 CHARACTER(LEN=LFI%JPLFTX) CLACTI
43 LOGICAL LLFATA
44 
45 !**
46 ! 1. - CONTROLES DES PARAMETRES D'APPEL, PUIS INITIALISATIONS.
47 !-----------------------------------------------------------------------
48 !
49 ! Appel legerement anticipe a LFINUM, garantissant l'initialisa-
50 ! tion des variables globales du logiciel a la 1ere utilisation.
51 !
52 REAL(KIND=JPRB) :: ZHOOK_HANDLE
53 IF (lhook) CALL dr_hook('LFIECR_FORT',0,zhook_handle)
54 clacti=''
55 CALL lfinum_fort &
56 & (lfi, knumer,irang)
57 llverf=.false.
58 ilcdno=int(len(cdnoma), jplikb)
59 !
60 IF (ilcdno.LE.0) THEN
61  irep=-15
62  clnoma=lfi%CHINCO(:lfi%JPNCPN)
63  ilclno=lfi%JPNCPN
64  GOTO 1001
65 ELSEIF (cdnoma.EQ.' ') THEN
66  irep=-18
67  clnoma=' '
68  ilclno=1
69  GOTO 1001
70 ENDIF
71 !
72 ! Recherche de la longueur "utile" du nom d'article specifie.
73 ! (c'est-a-dire sans tenir compte des blancs terminaux eventuels)
74 !
75 idecbl=0
76 !
77 101 CONTINUE
78 iposbl=idecbl+int(index(cdnoma(idecbl+1:),' '), jplikb)
79 !
80 IF (iposbl.LE.idecbl) THEN
81  ilclno=ilcdno
82 ELSEIF (cdnoma(iposbl:).EQ.' ') THEN
83  ilclno=iposbl-1
84 ELSE
85  idecbl=iposbl
86  GOTO 101
87 ENDIF
88 !
89 IF (ilclno.LE.lfi%JPNCPN) THEN
90  clnoma=cdnoma(:ilclno)
91 ELSE
92  clnoma=cdnoma(:lfi%JPNCPN)
93  ilclno=lfi%JPNCPN
94  irep=-15
95  GOTO 1001
96 ENDIF
97 !
98 IF (klong.LE.0) THEN
99  irep=-14
100  GOTO 1001
101 ELSEIF (irang.EQ.0) THEN
102  irep=-1
103  GOTO 1001
104 ENDIF
105 !
106  IF (lfi%LMULTI) CALL lfiver_fort &
107 & (lfi, lfi%VERRUE(irang),'ON')
108 llverf=lfi%LMULTI
109 !
110 IF (lfi%NEXPOR(irang).GT.0) THEN
111 !
112 ! Fichier en cours d'export... ne devant donc pas etre modifie.
113 !
114  irep=-37
115  GOTO 1001
116 ENDIF
117 !
118 lllect=.true.
119 llecr =.false.
120 inbalo=lfi%MDES1D(ixm(lfi%JPNALO,irang))
121 inbpir=lfi%MDES1D(ixm(lfi%JPNPIR,irang))
122 ifactm=lfi%MFACTM(irang)
123 ilarph=lfi%JPLARD*ifactm
124 inalpp=lfi%JPNAPP*ifactm
125 !**
126 ! 2. - EXPLORATION DES (PAIRES DE) PAGES ET ARTICLES D'INDEX,
127 ! A LA RECHERCHE DE L'ARTICLE LOGIQUE ET/OU D'UN "TROU"
128 ! DANS L'INDEX, SUFFISANT POUR Y "CASER" LEDIT ARTICLE.
129 !-----------------------------------------------------------------------
130 !
131 inaphy=0
132 CALL lfiree_fort &
133 & (lfi, irep,irang,clnoma(:ilclno),klong,irpiex, &
134 & iartex, ilonex,irpiec,iartec,iposec, &
135 & idtrou,ilonut,iretin)
136 !
137 IF (iretin.EQ.1) THEN
138  GOTO 903
139 ELSEIF (iretin.EQ.2) THEN
140  GOTO 904
141 ELSEIF (iretin.NE.0) THEN
142  GOTO 1001
143 ENDIF
144 !
145 inppim=lfi%NPPIMM(irang)
146 !
147 IF (iartex.NE.0.AND.lfi%NEXPOR(irang).GT.0) THEN
148 !
149 ! Fichier en cours d'export... la seule modification acceptee
150 ! est l'ajout de nouveaux articles.
151 !
152  irep=-37
153  GOTO 1001
154 ENDIF
155 !**
156 ! 3. - PARTIE ECRITURE DES DONNEES .
157 !-----------------------------------------------------------------------
158 !
159 CALL lfiecd_fort &
160 & (lfi, irep,irang,ktab,klong,iposec,iretin)
161 !
162 IF (iretin.EQ.1) THEN
163  GOTO 903
164 ELSEIF (iretin.EQ.2) THEN
165  GOTO 904
166 ELSEIF (iretin.NE.0) THEN
167  GOTO 1001
168 ENDIF
169 !**
170 ! 4. - MODIFICATION(S) EVENTUELLE(S) DE L'INDEX.
171 !-----------------------------------------------------------------------
172 !
173 IF (iartex.NE.0.AND.iartec.NE.iartex) THEN
174 !*
175 ! 4.1 - CAS OU L'ON CREE UN TROU DANS L'INDEX.
176 !-----------------------------------------------------------------------
177 !
178 ! RECHERCHE OU MISE EN MEMOIRE DE L'ARTICLE D'INDEX "NOMS"
179 ! CONTENANT LES CARACTERISTIQUES DE L'ARTICLE LOGIQUE
180 ! QUE L'ON "TROUE".
181 !
182  DO j=1,inppim
183  irgpi=lfi%MRGPIM(j,irang)
184 !
185  IF (lfi%MRGPIF(irgpi).EQ.irpiex) THEN
186  irgpim=irgpi
187  GOTO 413
188  ENDIF
189 !
190  ENDDO
191 !
192  ilforc=1
193  inpile=1
194  inaphy=0
195  CALL lfipim_fort &
196 & (lfi, irep,irang,irangm,irgpim,irpiex, &
197 & ilforc,inpile, iretin)
198 !
199  IF (iretin.EQ.1) THEN
200  GOTO 903
201  ELSEIF (iretin.EQ.2) THEN
202  GOTO 904
203  ELSEIF (iretin.NE.0) THEN
204  GOTO 1001
205  ENDIF
206 !
207  inppim=max(inppim,irangm)
208 !
209 413 CONTINUE
210  lfi%CNOMAR(ixc(iartex,irgpim))=' '
211  lfi%LECRPI(irgpim,1)=.true.
212 !
213  IF (ilonex.NE.ilonut) THEN
214 !
215 ! STOCKAGE DE LA LONGUEUR TOTALE UTILISABLE DU TROU .
216 ! DANS CE CAS, ON EST SUR QUE LA PAGE D'INDEX "LONG./POS."
217 ! EST TOUJOURS PHASEE.
218 !
219  lfi%MLGPOS(ixm(2*iartex-1,irgpim))=ilonut
220  lfi%LECRPI(irgpim,2)=.true.
221  ENDIF
222 !
223 ENDIF
224 !
225 IF (inalpp*(irpiec-1)+iartec.GT.inbalo) THEN
226 !*
227 ! 4.2 - CAS OU L'ON A CREE UN ARTICLE LOGIQUE SUPPLEMENTAIRE.
228 !-----------------------------------------------------------------------
229 !
230  lfi%MDES1D(ixm(lfi%JPNALO,irang))=inbalo+1
231 !
232  IF (inbalo.NE.0.AND.iartec.EQ.1) THEN
233 !
234 ! ON DOIT CREER UNE P.A.I. SUPPLEMENTAIRE.
235 !
236  IF (irpiec.GT.inbpir) THEN
237 !
238 ! CETTE NOUVELLE P.A.I. EST "EXCEDENTAIRE".
239 ! RECHERCHE DU PREMIER ARTICLE PHYSIQUE DISPONIBLE
240 ! POUR Y ECRIRE (ULTERIEUREMENT) CETTE P.A.I. EXCEDENTAIRE.
241 ! LE CONTROLE DE DEPASSEMENT DE CAPACITE DE L'INDEX
242 ! DU FICHIER A ETE FAIT DANS LE SOUS-PROGRAMME *LFIREE*.
243 !
244  inapxx=lfi%MDES1D(ixm(lfi%JPAXPD,irang))
245  indmax=lfi%JPNIL
246 !
247  DO j=0,lfi%JPNPDF-1
248 !
249  IF (lfi%NUMAPD(j,irang).GT.inapxx) THEN
250  inapxx=lfi%NUMAPD(j,irang)
251  indmax=j
252  ENDIF
253 !
254  ENDDO
255 !
256  IF (irpiec.GT.(inbpir+1)) THEN
257  imdesc=lfi%MDES1D(ixm(ilarph+2-irpiec+inbpir,irang))
258  inapxx=max(inapxx,imdesc+1)
259  ENDIF
260 !
261  lfi%MDES1D(ixm(ilarph+1-irpiec+inbpir,irang))=inapxx+1
262 !
263 ! L'ON A AUSSI CREE, EN GENERAL, UNE ZONE "PERDUE" (MAIS NEANMOINS
264 ! REUTILISABLE DANS UNE CERTAINE MESURE) A LA FIN DU DERNIER
265 ! ARTICLE PHYSIQUE DES DONNEES QUE L'ON VIENT D'ECRIRE.
266 ! IL EST ALORS NECESSAIRE DE "COMPLETER" LA ZONE PERDUE,
267 ! POUR NE PAS AVOIR DE PROBLEME ULTERIEUR DANS *LFIECX*.
268 !
269  IF (indmax.NE.lfi%JPNIL) THEN
270 !
271  DO j=lfi%NLONPD(indmax,irang)+1,ilarph
272  lfi%MTAMPD(ixt(j,indmax,irang))=0
273  ENDDO
274 !
275  lfi%NLONPD(indmax,irang)=ilarph
276  ENDIF
277 !
278  ENDIF
279 !
280  ilforc=1
281  inpile=0
282  inaphy=0
283  CALL lfipim_fort &
284 & (lfi, irep,irang,irangm,irgpim,irpiec, &
285 & ilforc,inpile, iretin)
286 !
287  IF (iretin.EQ.1) THEN
288  GOTO 903
289  ELSEIF (iretin.EQ.2) THEN
290  GOTO 904
291  ELSEIF (iretin.NE.0) THEN
292  GOTO 1001
293  ENDIF
294 !
295  lfi%NPODPI(irang)=irangm
296 !
297 ! REMARQUE: LA DERNIERE P.P.I. EST TOUJOURS "PHASEE".
298 !
299  lfi%LPHASP(irgpim)=.true.
300  ELSE
301  irgpim=lfi%MRGPIM(lfi%NPODPI(irang),irang)
302  ENDIF
303 !
304  lfi%NALDPI(irang)=iartec
305  lfi%CNOMAR(ixc(iartec,irgpim))=clnoma(:ilclno)
306  lfi%MLGPOS(ixm(2*iartec-1,irgpim))=klong
307  lfi%MLGPOS(ixm(2*iartec ,irgpim))=iposec
308  lfi%LECRPI(irgpim,1)=.true.
309  lfi%LECRPI(irgpim,2)=.true.
310 !
311 ELSEIF (iartex.EQ.0.OR.klong.NE.ilonex) THEN
312 !*
313 ! 4.3 - CAS OU L'ON REUTILISE UN ARTICLE OU TROU QUI EXISTAIT
314 ! AU PREALABLE, EN MODIFIANT SES CARACTERISTIQUES DE NOM ET/OU
315 ! DE LONGUEUR.
316 !-----------------------------------------------------------------------
317 !
318  DO j=1,inppim
319  irgpi=lfi%MRGPIM(j,irang)
320 !
321  IF (lfi%MRGPIF(irgpi).EQ.irpiec) THEN
322  irangm=j
323  irgpim=irgpi
324 !
325 ! L'ARTICLE D'INDEX "NOMS" CORRESPONDANT EST EN MEMOIRE...
326 ! PHASAGE EVENTUEL DE LA PAGE D'INDEX "LONG/POS" .
327 !
328  inaphy=0
329 !
330  IF (.NOT.lfi%LPHASP(irgpim)) THEN
331 !
332  CALL lfipha_fort &
333 & (lfi, irep,irang,irgpim,iretin)
334 !
335  IF (iretin.EQ.1) THEN
336  GOTO 903
337  ELSEIF (iretin.EQ.2) THEN
338  GOTO 904
339  ELSEIF (iretin.NE.0) THEN
340  GOTO 1001
341  ENDIF
342 !
343  ENDIF
344 !
345  GOTO 434
346  ENDIF
347 !
348  ENDDO
349 !
350 ! ARTICLE D'INDEX CORRESPONDANT NON PRESENT EN MEMOIRE...
351 ! ON L'Y AMENE.
352 !
353  ilforc=1
354  inpile=2
355  inaphy=0
356  CALL lfipim_fort &
357 & (lfi, irep,irang,irangm,irgpim,irpiec, &
358 & ilforc,inpile, iretin)
359 !
360  IF (iretin.EQ.1) THEN
361  GOTO 903
362  ELSEIF (iretin.EQ.2) THEN
363  GOTO 904
364  ELSEIF (iretin.NE.0) THEN
365  GOTO 1001
366  ENDIF
367 !
368 434 CONTINUE
369 !
370  IF (iartec.NE.iartex.OR.irpiec.NE.irpiex) THEN
371  lfi%CNOMAR(ixc(iartec,irgpim))=clnoma(:ilclno)
372  lfi%LECRPI(irgpim,1)=.true.
373  ENDIF
374 !
375  lfi%MLGPOS(ixm(2*iartec-1,irgpim))=klong
376  lfi%LECRPI(irgpim,2)=.true.
377 !
378 ENDIF
379 !**
380 ! 5. - MISE A JOUR: STATISTIQUES, TABLES, PAGE DOCUMENTAIRE.
381 !-----------------------------------------------------------------------
382 !
383 IF (iartex.EQ.0) THEN
384  lfi%NBNECR(irang)=lfi%NBNECR(irang)+1
385 ELSEIF (klong.EQ.ilonex) THEN
386  lfi%NREESP(irang)=lfi%NREESP(irang)+1
387 ELSEIF (klong.LT.ilonex) THEN
388  lfi%NREECO(irang)=lfi%NREECO(irang)+1
389  lfi%LMIMAL(irang)=lfi%LMIMAL(irang).OR. &
390 & ilonex.EQ.lfi%MDES1D(ixm(lfi%JPLXAL,irang))
391 ELSE
392  lfi%NREELO(irang)=lfi%NREELO(irang)+1
393  lfi%LMIMAL(irang)=lfi%LMIMAL(irang).OR. &
394 & ilonex.EQ.lfi%MDES1D(ixm(lfi%JPLNAL,irang))
395 ENDIF
396 !
397 lfi%NBTROU(irang)=lfi%NBTROU(irang)+idtrou
398 IF (lfi%LMISOP) WRITE (unit=lfi%NULOUT,fmt=*) &
399 & 'IDTROU = ',idtrou,', ILONEX = ',ilonex,', KLONG = ',klong
400 !
401 ! On met a jour ce qui a trait aux acces pseudo-sequentiels...
402 !
403 lfi%NDERGF(irang)=inalpp*(irpiec-1)+iartec
404 lfi%CNDERA(irang)=clnoma(:ilclno)
405 lfi%NSUIVF(irang)=lfi%JPNIL
406 lfi%NPRECF(irang)=lfi%JPNIL
407 !
408 imdesc=lfi%MDES1D(ixm(lfi%JPLNAL,irang))
409 lfi%MDES1D(ixm(lfi%JPLNAL,irang))=min(imdesc,klong)
410 imdesc=lfi%MDES1D(ixm(lfi%JPLXAL,irang))
411 lfi%MDES1D(ixm(lfi%JPLXAL,irang))=max(imdesc,klong)
412 lfi%MDES1D(ixm(lfi%JPLTAL,irang))= &
413 & lfi%MDES1D(ixm(lfi%JPLTAL,irang))+klong-ilonex
414 IF (inbalo.EQ.0) lfi%MDES1D(ixm(lfi%JPLNAL,irang))=klong
415 !
416 IF (.NOT.lfi%LMODIF(irang)) THEN
417 !
418 ! CAS DE LA PREMIERE ECRITURE DEPUIS L'OUVERTURE DU FICHIER.
419 !
420  lfi%LMODIF(irang)=.true.
421  inaphy=0
422  CALL lfimoe_fort &
423 & (lfi, irep,irang,iretin)
424 !
425  IF (iretin.EQ.1) THEN
426  GOTO 903
427  ELSEIF (iretin.EQ.2) THEN
428  GOTO 904
429  ELSEIF (iretin.NE.0) THEN
430  GOTO 1001
431  ENDIF
432 !
433 ENDIF
434 !
435 irep=0
436 lfi%NBMOEC(irang)=lfi%NBMOEC(irang)+klong
437 GOTO 1001
438 !**
439 ! 9. - CI-DESSOUS, ETIQUETTES DE BRANCHEMENT EN CAS D'ERREUR E/S.
440 !-----------------------------------------------------------------------
441 !
442 903 CONTINUE
443 clacti='WRITE'
444 GOTO 909
445 !
446 904 CONTINUE
447 clacti='READ'
448 !
449 909 CONTINUE
450 !
451 ! AU CAS OU, ON FORCE LE CODE-REPONSE ENTREE/SORTIE A ETRE POSITIF.
452 !
453 irep=abs(irep)
454 IF (inaphy.NE.0) lfi%NUMAPH(irang)=inaphy
455 !**
456 ! 10. - PHASE TERMINALE : MESSAGERIE, AVEC "ABORT" EVENTUEL,
457 ! VIA LE SOUS-PROGRAMME "LFIEMS" .
458 !-----------------------------------------------------------------------
459 !
460 1001 CONTINUE
461 krep=irep
462 llfata=llmoer(irep,irang)
463 !
464 IF (irang.NE.0) THEN
465  lfi%NDEROP(irang)=1
466  lfi%NDERCO(irang)=irep
467  IF (llverf) CALL lfiver_fort &
468 & (lfi, lfi%VERRUE(irang),'OFF')
469 ENDIF
470 !
471 IF (llfata.OR.ixnims(irang).EQ.2) THEN
472  inimes=2
473 ELSE
474  IF (lhook) CALL dr_hook('LFIECR_FORT',1,zhook_handle)
475  RETURN
476 ENDIF
477 !
478 clnspr='LFIECR'
479 WRITE (unit=clmess,fmt='(''KREP='',I4,'', KNUMER='',I3, &
480 & '', CDNOMA='''''',A,'''''', KLONG='',I7)') &
481 & krep,knumer,clnoma(:ilclno),klong
482 CALL lfiems_fort &
483 & (lfi, knumer,inimes,irep,llfata, &
484 & clmess,clnspr,clacti)
485 !
486 IF (lhook) CALL dr_hook('LFIECR_FORT',1,zhook_handle)
487 
488 CONTAINS
489 
490 #include "lficom2.ixc.h"
491 #include "lficom2.ixm.h"
492 #include "lficom2.ixnims.h"
493 #include "lficom2.ixt.h"
494 #include "lficom2.llmoer.h"
495 
496 END SUBROUTINE lfiecr_fort
497 
498 
499 
500 ! Oct-2012 P. Marguinaud 64b LFI
501 SUBROUTINE lfiecr64 &
502 & (krep, knumer, cdnoma, ktab, klong)
503 USE lfimod, ONLY : lfi => lficom_default, &
506 USE lfi_precision
507 IMPLICIT NONE
508 ! Arguments
509 INTEGER (KIND=JPLIKB) KREP ! OUT
510 INTEGER (KIND=JPLIKB) KNUMER ! IN
511 CHARACTER (LEN=*) CDNOMA ! IN
512 INTEGER (KIND=JPLIKB) KLONG ! IN
513 INTEGER (KIND=JPLIKB) KTAB (klong) ! IN
514 
515 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
516 
517 CALL lfiecr_fort &
518 & (lfi, krep, knumer, cdnoma, ktab, klong)
519 
520 END SUBROUTINE lfiecr64
521 
522 SUBROUTINE lfiecr &
523 & (krep, knumer, cdnoma, ktab, klong)
524 USE lfimod, ONLY : lfi => lficom_default, &
527 USE lfi_precision
528 IMPLICIT NONE
529 ! Arguments
530 INTEGER (KIND=JPLIKM) KREP ! OUT
531 INTEGER (KIND=JPLIKM) KNUMER ! IN
532 CHARACTER (LEN=*) CDNOMA ! IN
533 INTEGER (KIND=JPLIKM) KLONG ! IN
534 INTEGER (KIND=JPLIKB) KTAB (klong) ! IN
535 
536 IF (.NOT. lficom_default_init) CALL new_lfi_default ()
537 
538 CALL lfiecr_mt &
539 & (lfi, krep, knumer, cdnoma, ktab, klong)
540 
541 END SUBROUTINE lfiecr
542 
543 SUBROUTINE lfiecr_mt &
544 & (lfi, krep, knumer, cdnoma, ktab, klong)
545 USE lfimod, ONLY : lficom
546 USE lfi_precision
547 IMPLICIT NONE
548 ! Arguments
549 type(lficom) lfi ! INOUT
550 INTEGER (KIND=JPLIKM) KREP ! OUT
551 INTEGER (KIND=JPLIKM) KNUMER ! IN
552 CHARACTER (LEN=*) CDNOMA ! IN
553 INTEGER (KIND=JPLIKM) KLONG ! IN
554 INTEGER (KIND=JPLIKB) KTAB (klong) ! IN
555 ! Local integers
556 INTEGER (KIND=JPLIKB) IREP ! OUT
557 INTEGER (KIND=JPLIKB) INUMER ! IN
558 INTEGER (KIND=JPLIKB) ILONG ! IN
559 ! Convert arguments
560 
561 inumer = int( knumer, jplikb)
562 ilong = int( klong, jplikb)
563 
564 CALL lfiecr_fort &
565 & (lfi, irep, inumer, cdnoma, ktab, ilong)
566 
567 krep = int( irep, jplikm)
568 
569 END SUBROUTINE lfiecr_mt
570 
571 !INTF KREP OUT
572 !INTF KNUMER IN
573 !INTF CDNOMA IN
574 !INTF KTAB IN DIMS=KLONG KIND=JPLIKB
575 !INTF KLONG IN
subroutine lfimoe_fort(LFI, KREP, KRANG, KRETIN)
Definition: lfimoe.F90:5
subroutine lfiree_fort(LFI, KREP, KRANG, CDNOMA, KLONG, KRPIEX, KARTEX, KLONEX, KRPIEC, KARTEC, KPOSEC, KDTROU, KLONUT, KRETIN)
Definition: lfiree.F90:8
subroutine lfiecr_mt(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
Definition: lfiecr.F90:545
subroutine lfiecr_fort(LFI, KREP, KNUMER, CDNOMA, KTAB, KLONG)
Definition: lfiecr.F90:6
integer, parameter jplikb
subroutine lfiecr(KREP, KNUMER, CDNOMA, KTAB, KLONG)
Definition: lfiecr.F90:524
subroutine new_lfi_default()
Definition: lfimod.F90:376
subroutine lfiecr64(KREP, KNUMER, CDNOMA, KTAB, KLONG)
Definition: lfiecr.F90:503
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
Definition: lfimod.F90:1
ERROR in index
Definition: ecsort_shared.h:90
subroutine lfiecd_fort(LFI, KREP, KRANG, KTAB, KLONG, KPOSEC, KRETIN)
Definition: lfiecd.F90:6
subroutine lfipim_fort(LFI, KREP, KRANG, KRANGM, KRGPIM, KRGPIF, KRGFOR, KNPILE, KRETIN)
Definition: lfipim.F90:6