SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/XRD38/LFI/mt/lfiecd_mt.F
Go to the documentation of this file.
00001 C Jan-2011 P. Marguinaud Thread-safe LFI
00002       SUBROUTINE LFIECD_MT (LFI, KREP, KRANG, KTAB, KLONG, 
00003      S                      KPOSEC, KRETIN )
00004       USE LFIMOD, ONLY : LFICOM
00005       USE PARKIND1, ONLY : JPRB
00006       USE YOMHOOK , ONLY : LHOOK, DR_HOOK
00007 C****
00008 C        SOUS-PROGRAMME *INTERNE* DU LOGICIEL DE FICHIERS INDEXES LFI
00009 C     ECRITURE DES DONNEES PROPREMENT DITES, UNE FOIS L'ARTICLE LOGIQUE
00010 C     DEFINI (PAR NOM, OU PAR POSITION) .
00011 C**
00012 C    ARGUMENTS : KREP   (SORTIE) ==> CODE-REPONSE DU SOUS-PROGRAMME;
00013 C                KRANG  (ENTREE) ==> RANG ( DANS LA TABLE *LFI%NUMERO* )
00014 C                                    DE L'UNITE LOGIQUE CONCERNEE;
00015 C                KTAB   (ENTREE) ==> PREMIER MOT A ECRIRE;
00016 C                KLONG  (ENTREE) ==> LONGUEUR DE L'ARTICLE A ECRIRE;
00017 C                KPOSEC (ENTREE) ==> POSITION ( DANS LE FICHIER ) OU
00018 C                                    COMMENCER A ECRIRE L'ARTICLE;
00019 C                KRETIN (SORTIE) ==> CODE-RETOUR INTERNE.
00020 C
00021 #ifndef f77
00022 #include "precision.h"
00023 #endif
00024 C
00025       TYPE(LFICOM) :: LFI
00026       INTEGER KREP, KRANG, KLONG, KPOSEC, KRETIN
00027 #ifndef f77
00028       INTEGER (KIND=JPDBLE)  KTAB (KLONG), IFOURT (LFI%JPLARX)
00029 #else
00030       INTEGER KTAB (KLONG), IFOURT (LFI%JPLARX)
00031 #endif
00032       INTEGER INUCPL (LFI%JPNPDF), INAPHY, INUMER, ILARPH, 
00033      S        IPODEB, IPOFIN
00034       INTEGER IARDEB, IARFIN, IDCDEB, IDCFIN, ICPLTI, ICPLTF, ICPTTN
00035       INTEGER ICPTTX, INCPLT, INUMAP, J, JD, IDECDE, IPAREC, ITAMLI
00036       INTEGER INUMPJ, INUMPD, IARTIC, INPDRE, INPDTA, INPDIS, INDIK1
00037       INTEGER INDIK2, INDIC1, INDIC2, JI, IFACTM, IRETOU, INIMES
00038       INTEGER IRETIN
00039 C
00040       LOGICAL LLADON, LLDERN
00041 C
00042 #include "lficom2.h"
00043 #include "lficom_mt.h"
00044 C**
00045 C     1.  -  CONTROLES DES PARAMETRES D'APPEL, PUIS INITIALISATIONS.
00046 C-----------------------------------------------------------------------
00047 C
00048       REAL(KIND=JPRB) :: ZHOOK_HANDLE
00049       IF (LHOOK) CALL DR_HOOK('LFIECD_MT',0,ZHOOK_HANDLE)
00050       IRETOU=0
00051 C
00052       IF (KRANG.LE.0.OR.KRANG.GT.LFI%JPNXFI.OR.KPOSEC.EQ.0)
00053      S     THEN
00054         KREP=-16
00055         GOTO 1001
00056       ENDIF
00057 C
00058       INUMER=LFI%NUMERO(KRANG)
00059       IFACTM=LFI%MFACTM(KRANG)
00060       ILARPH=LFI%JPLARD*IFACTM
00061       KREP=0
00062 C**
00063 C     2.  -   PARTIE ECRITURE DES DONNEES .
00064 C-----------------------------------------------------------------------
00065 C*
00066 C     2.1 - UTILISATION DES ARTICLES PHYSIQUES PRESENTS EN MEMOIRE,
00067 C           ET QUE L'ON S'APPRETE A ECRIRE *EN ENTIER*.
00068 C-----------------------------------------------------------------------
00069 C
00070       IPODEB=KPOSEC
00071       IPOFIN=KPOSEC+KLONG-1
00072       IARDEB=1+(IPODEB-1)/ILARPH
00073       IARFIN=1+(IPOFIN-1)/ILARPH
00074       IDCDEB=MOD (IPODEB-1,ILARPH)
00075       IDCFIN=MOD (IPOFIN  ,ILARPH)
00076       LLDERN=IDCFIN.NE.0.AND.((IARFIN.NE.IARDEB)
00077      S                        .OR.(IARFIN.EQ.IARDEB.AND.IDCDEB.EQ.0))
00078       ICPLTI=IARDEB+(IDCDEB+ILARPH-1)/ILARPH
00079       ICPLTF=IARFIN-1+(ILARPH-IDCFIN)/ILARPH
00080       ICPTTN=ICPLTF+1
00081       ICPTTX=ICPLTI-1
00082       INCPLT=0
00083 C
00084       IF (LFI%LMISOP) THEN
00085        WRITE (UNIT=LFI%NULOUT,FMT=*)'KPOSEC= ',KPOSEC,', IPODEB= ',IPODEB,', IPOFIN= ',IPOFIN
00086        WRITE (UNIT=LFI%NULOUT,FMT=*)'IARDEB= ',IARDEB,', IARFIN= ',IARFIN,', IDCDEB= ',IDCDEB
00087        WRITE (UNIT=LFI%NULOUT,FMT=*)'IDCFIN= ',IDCFIN,', ICPLTI= ',ICPLTI,', ICPLTF= ',ICPLTF
00088        WRITE (UNIT=LFI%NULOUT,FMT=*)'ICPTTN= ',ICPTTN,', ICPTTX= ',ICPTTX
00089       ENDIF
00090 C
00091       IF (ICPLTF.GE.ICPLTI) THEN
00092 C
00093         DO 212 J=0,LFI%JPNPDF-1
00094         INUMAP=LFI%NUMAPD(J,KRANG)
00095 C
00096         IF (INUMAP.GE.ICPLTI.AND.INUMAP.LE.ICPLTF) THEN
00097           INCPLT=INCPLT+1
00098           INUCPL(INCPLT)=INUMAP
00099           ICPTTN=MIN0 (ICPTTN,INUMAP)
00100           ICPTTX=MAX0 (ICPTTX,INUMAP)
00101           IDECDE=(INUMAP-IARDEB)*ILARPH-IDCDEB
00102 C
00103           DO 211 JD=1,ILARPH
00104           LFI%MTAMPD(IXT(JD,J,KRANG))=KTAB(IDECDE+JD)
00105   211     CONTINUE
00106 C
00107           LFI%NLONPD(J,KRANG)=ILARPH
00108           LFI%LECRPD(J,KRANG)=.TRUE.
00109           IF (INCPLT.GT.(ICPLTF-ICPLTI)) GOTO 220
00110         ENDIF
00111 C
00112   212   CONTINUE
00113 C
00114       ENDIF
00115 C
00116   220 CONTINUE
00117 C*
00118 C     2.2 - TRAITEMENT DE LA PREMIERE PAGE DE DONNEES, SI L'ARTICLE
00119 C           LOGIQUE NE COMMENCE PAS JUSTE EN DEBUT D'ARTICLE PHYSIQUE.
00120 C           CETTE PAGE EST CONSERVEE... DES FOIS QUE LE PROCHAIN ACCES
00121 C           AU FICHIER SOIT POUR L'ARTICLE LOGIQUE IMMEDIATEMENT DEVANT
00122 C           ( CAS DE BALAYAGE INVERSE DU FICHIER, PAR EXEMPLE ) .
00123 C-----------------------------------------------------------------------
00124 C
00125       IDECDE=0
00126 C
00127       IF (IDCDEB.EQ.0) THEN
00128         IPAREC=0
00129         ITAMLI=LFI%JPNPDF
00130       ELSE
00131         IPAREC=MIN0 (ILARPH*IARDEB,IPOFIN)-KPOSEC+1
00132         ITAMLI=LFI%JPNPDF-1
00133 C
00134 C           L'ARTICLE DE DONNEES A ECRIRE NE COMMENCE PAS AU DEBUT D'UN
00135 C         ARTICLE PHYSIQUE. IL FAUT DONC AVOIR CET ARTICLE PHYSIQUE
00136 C         EN MEMOIRE POUR LE COMPLETER.
00137 C
00138         DO 222 J=1,LFI%JPNPDF
00139         INUMPJ=MOD (LFI%NDERPD(KRANG)+J,LFI%JPNPDF)
00140 C
00141         IF (LFI%NUMAPD(INUMPJ,KRANG).EQ.IARDEB) THEN
00142 C
00143 C           ARTICLE PHYSIQUE CHERCHE EN MEMOIRE.
00144 C
00145           IF (LFI%NLONPD(INUMPJ,KRANG).LT.IDCDEB
00146      S        .AND.IARDEB.LE.LFI%MDES1D(IXM(LFI%JPAXPD,KRANG))) THEN
00147 C
00148 C           LA PAGE DE DONNEES EST INSUFFISAMMENT REMPLIE, ET A
00149 C       UN ARTICLE ASSOCIE SUR FICHIER; IL FAUT DONC LIRE CET ARTICLE,
00150 C       ET RECOLLER LES MORCEAUX...
00151 C
00152             INAPHY=IARDEB
00153             CALL LFILDO_MT (LFI, KREP,INUMER,IARDEB,IFOURT,
00154      S                      LFI%NBREAD(KRANG),IFACTM,IRETIN)
00155 C
00156             IF (IRETIN.NE.0) THEN
00157               GOTO 904
00158             ENDIF
00159 C
00160             DO 221 JD=LFI%NLONPD(INUMPJ,KRANG)+1,ILARPH
00161             LFI%MTAMPD(IXT(JD,INUMPJ,KRANG))=IFOURT(JD)
00162   221       CONTINUE
00163 C
00164             LFI%NLONPD(INUMPJ,KRANG)=ILARPH
00165           ENDIF
00166 C
00167           INUMPD=INUMPJ
00168           GOTO 223
00169         ENDIF
00170 C
00171   222   CONTINUE
00172 C
00173 C     ARTICLE PHYSIQUE CHERCHE PAS EN MEMOIRE... ON DOIT DONC LE LIRE.
00174 C
00175         INUMPD=MOD (1+LFI%NDERPD(KRANG),LFI%JPNPDF)
00176         INAPHY=0
00177 C
00178         IF (LFI%LECRPD(INUMPD,KRANG)) THEN
00179 C
00180           CALL LFIVID_MT (LFI, KREP,KRANG,INUMPD,IFOURT,IRETIN)
00181 C
00182           IF (IRETIN.EQ.1) THEN
00183             GOTO 903
00184           ELSEIF (IRETIN.EQ.2) THEN
00185             GOTO 904
00186           ELSEIF (IRETIN.NE.0) THEN
00187             GOTO 1001
00188           ENDIF
00189 C
00190         ENDIF
00191 C
00192         LFI%NUMAPD(INUMPD,KRANG)=LFI%JPNIL
00193         INAPHY=IARDEB
00194         CALL LFILDO_MT (LFI, KREP,INUMER,IARDEB,
00195      S                  LFI%MTAMPD(IXT(1,INUMPD,KRANG)),
00196      S                  LFI%NBREAD(KRANG),IFACTM,IRETIN)
00197 C
00198         IF (IRETIN.NE.0) THEN
00199           GOTO 904
00200         ENDIF
00201 C
00202         LFI%NUMAPD(INUMPD,KRANG)=IARDEB
00203         LFI%NLONPD(INUMPD,KRANG)=ILARPH
00204 C
00205   223   CONTINUE
00206 C
00207 C         COMPLEMENT DE LA PAGE DE DONNEES ASSOCIEE AU PREMIER ARTICLE
00208 C       PHYSIQUE OU DOIVENT ETRE STOCKEES LES DONNEES A ECRIRE.
00209 C
00210         DO 224 JD=1,IPAREC
00211         LFI%MTAMPD(IXT(IDCDEB+JD,INUMPD,KRANG))=KTAB(JD)
00212   224   CONTINUE
00213 C
00214         LFI%LECRPD(INUMPD,KRANG)=.TRUE.
00215         LFI%NLONPD(INUMPD,KRANG)=MAX0 (LFI%NLONPD(INUMPD,KRANG),
00216      S                                 IDCDEB+IPAREC)
00217         LFI%NDERPD(KRANG)=INUMPD
00218       ENDIF
00219 C*
00220 C     2.3 - ECRITURE DES ARTICLES PHYSIQUES COMPLETS NE TENANT PAS OU NE
00221 C           DEVANT PAS ETRE STOCKES DANS LES PAGES DE DONNEES "TAMPON".
00222 C           S'IL Y EN A, LES EVENTUELLES PAGES DE DONNEES COPIEES AUX
00223 C           PARAGRAPHES PRECEDENTS (2.1 ET 2.2) PRECEDANT CES ARTICLES
00224 C           DANS LE FICHIER SERONT ALORS ELLES AUSSI ECRITES SUR DISQUE.
00225 C-----------------------------------------------------------------------
00226 C
00227       IF (.NOT.LFI%LTAMPE(KRANG)) THEN
00228         ITAMLI=0
00229       ELSEIF (LLDERN) THEN
00230         ITAMLI=ITAMLI-1
00231       ENDIF
00232 C
00233       IARTIC=ICPLTI-1
00234       INPDRE=(KLONG-IPAREC-IDCFIN+ILARPH-1)/ILARPH-INCPLT
00235       INPDTA=MIN0 (INPDRE,ITAMLI)
00236       INPDIS=INPDRE-ITAMLI
00237       INDIK1=1
00238       INDIK2=INCPLT
00239       LLADON=.TRUE.
00240 C
00241       DO 235 J=1,INPDIS
00242 C
00243   231 CONTINUE
00244       IARTIC=IARTIC+1
00245       IF (LFI%LMISOP) WRITE (UNIT=LFI%NULOUT,FMT=*)
00246      S 'BOUCLE 235, J= ',J,', IARTIC= ',IARTIC,', IDECDE= ',IDECDE
00247 C
00248       IF (IARTIC.GE.ICPTTN.AND.IARTIC.LE.ICPTTX) THEN
00249         IF (IARTIC.EQ.ICPTTN) ICPTTN=ICPTTN+1
00250         IF (IARTIC.EQ.ICPTTX) ICPTTX=ICPTTX-1
00251         INDIC1=INDIK1
00252         INDIC2=INDIK2
00253 C
00254 C          ON FILTRE LES ARTICLES PHYSIQUES DEJA STOCKES DANS DES PAGES
00255 C        DE DONNEES LORS DE LA PARTIE 2.1 ...
00256 C
00257         DO 232 JI=INDIC1,INDIC2
00258 C
00259         IF (IARTIC.EQ.INUCPL(JI)) THEN
00260           IF (JI.EQ.INDIK1) INDIK1=INDIK1+1
00261           IF (JI.EQ.INDIK2) INDIK2=INDIK2-1
00262           GOTO 231
00263         ENDIF
00264 C
00265   232   CONTINUE
00266 C
00267       ENDIF
00268 C
00269       IDECDE=(IARTIC-IARDEB)*ILARPH-IDCDEB
00270       INAPHY=0
00271       CALL LFIECX_MT (LFI, KREP,KRANG,IARTIC,KTAB(IDECDE+1),
00272      S                LLADON,IRETIN)
00273 C
00274       IF (IRETIN.EQ.1) THEN
00275         GOTO 903
00276       ELSEIF (IRETIN.EQ.2) THEN
00277         GOTO 904
00278       ELSEIF (IRETIN.NE.0) THEN
00279         GOTO 1001
00280       ENDIF
00281 C
00282   235 CONTINUE
00283 C*
00284 C     2.4 - ECRITURE DES ARTICLES PHYSIQUES COMPLETS QUE L'ON PEUT STOC-
00285 C           KER DANS LES PAGES DE DONNEES "TAMPON".
00286 C           ( TOUT EN PRESERVANT LES EMPLACEMENTS DE LA PREMIERE ET/OU
00287 C             DE LA DERNIERE PAGE DE DONNEES, SI INCOMPLETE(S) )
00288 C-----------------------------------------------------------------------
00289 C
00290       DO 246 J=1,INPDTA
00291       INUMPD=MOD (LFI%NDERPD(KRANG)+J,LFI%JPNPDF)
00292 C
00293   241 CONTINUE
00294       IARTIC=IARTIC+1
00295 C
00296       IF (IARTIC.GE.ICPTTN.AND.IARTIC.LE.ICPTTX) THEN
00297         IF (IARTIC.EQ.ICPTTN) ICPTTN=ICPTTN+1
00298         IF (IARTIC.EQ.ICPTTX) ICPTTX=ICPTTX-1
00299         INDIC1=INDIK1
00300         INDIC2=INDIK2
00301 C
00302 C          ON FILTRE LES ARTICLES PHYSIQUES DEJA STOCKES DANS DES PAGES
00303 C        DE DONNEES LORS DE LA PARTIE 2.1 ...
00304 C
00305         DO 242 JI=INDIC1,INDIC2
00306 C
00307         IF (IARTIC.EQ.INUCPL(JI)) THEN
00308           IF (JI.EQ.INDIK1) INDIK1=INDIK1+1
00309           IF (JI.EQ.INDIK2) INDIK2=INDIK2-1
00310           GOTO 241
00311         ENDIF
00312 C
00313   242   CONTINUE
00314 C
00315       ENDIF
00316 C
00317 C         SI NECESSAIRE, "VIDAGE" SUR FICHIER DE LA PAGE A UTILISER.
00318 C
00319       INAPHY=0
00320 C
00321       IF (LFI%LECRPD(INUMPD,KRANG)) THEN
00322 C
00323         CALL LFIVID_MT (LFI, KREP,KRANG,INUMPD,IFOURT,IRETIN)
00324 C
00325         IF (IRETIN.EQ.1) THEN
00326           GOTO 903
00327         ELSEIF (IRETIN.EQ.2) THEN
00328           GOTO 904
00329         ELSEIF (IRETIN.NE.0) THEN
00330           GOTO 1001
00331         ENDIF
00332 C
00333       ENDIF
00334 C
00335       IDECDE=(IARTIC-IARDEB)*ILARPH-IDCDEB
00336 C
00337       DO 245 JD=1,ILARPH
00338       LFI%MTAMPD(IXT(JD,INUMPD,KRANG))=KTAB(IDECDE+JD)
00339   245 CONTINUE
00340 C
00341       LFI%LECRPD(INUMPD,KRANG)=.TRUE.
00342       LFI%NUMAPD(INUMPD,KRANG)=IARTIC
00343       LFI%NLONPD(INUMPD,KRANG)=ILARPH
00344   246 CONTINUE
00345 C
00346       LFI%NDERPD(KRANG)=MOD (LFI%NDERPD(KRANG)+INPDTA,LFI%JPNPDF)
00347 C*
00348 C     2.5 - TRAITEMENT DE LA DERNIERE PAGE DE DONNEES SI ELLE EST
00349 C           INCOMPLETE, ET SI ON EST DANS L'UN DES 2 CAS SUIVANTS:
00350 C           SOIT ELLE DIFFERE DE LA PREMIERE, SOIT C'EST LA MEME QUE LA
00351 C           PREMIERE ET ELLE COMMENCE JUSTE EN DEBUT D'ARTICLE PHYSIQUE.
00352 C           CETTE PAGE EST CONSERVEE...EN ESPERANT QUE LE PROCHAIN ACCES
00353 C           AU FICHIER SERA POUR L'ARTICLE LOGIQUE IMMEDIATEMENT
00354 C           DERRIERE ( CAS DE CREATION DU FICHIER, PAR EXEMPLE ) .
00355 C-----------------------------------------------------------------------
00356 C
00357       IF (LLDERN) THEN
00358 C
00359         DO 252 J=1,LFI%JPNPDF
00360         INUMPJ=MOD (LFI%NDERPD(KRANG)+J,LFI%JPNPDF)
00361 C
00362         IF (LFI%NUMAPD(INUMPJ,KRANG).EQ.IARFIN) THEN
00363 C
00364 C           ARTICLE PHYSIQUE CHERCHE EN MEMOIRE.
00365 C
00366           INUMPD=INUMPJ
00367           GOTO 253
00368         ENDIF
00369 C
00370   252   CONTINUE
00371 C
00372 C           ARTICLE PHYSIQUE CHERCHE PAS EN MEMOIRE...
00373 C
00374         INUMPD=MOD (1+LFI%NDERPD(KRANG),LFI%JPNPDF)
00375         INAPHY=0
00376 C
00377         IF (LFI%LECRPD(INUMPD,KRANG)) THEN
00378 C
00379           CALL LFIVID_MT (LFI, KREP,KRANG,INUMPD,IFOURT,IRETIN)
00380 C
00381           IF (IRETIN.EQ.1) THEN
00382             GOTO 903
00383           ELSEIF (IRETIN.EQ.2) THEN
00384             GOTO 904
00385           ELSEIF (IRETIN.NE.0) THEN
00386             GOTO 1001
00387           ENDIF
00388 C
00389         ENDIF
00390 C
00391         IF (IARFIN.LE.LFI%MDES1D(IXM(LFI%JPAXPD,KRANG))) THEN
00392           LFI%NUMAPD(INUMPD,KRANG)=LFI%JPNIL
00393           INAPHY=IARFIN
00394           CALL LFILDO_MT (LFI, KREP,INUMER,IARFIN,
00395      S                    LFI%MTAMPD(IXT(1,INUMPD,KRANG)),
00396      S                    LFI%NBREAD(KRANG),IFACTM,IRETIN)
00397 C
00398           IF (IRETIN.NE.0) THEN
00399             GOTO 904
00400           ENDIF
00401 C
00402           LFI%NLONPD(INUMPD,KRANG)=ILARPH
00403         ELSE
00404           LFI%NLONPD(INUMPD,KRANG)=0
00405         ENDIF
00406 C
00407         LFI%NUMAPD(INUMPD,KRANG)=IARFIN
00408 C
00409   253   CONTINUE
00410         IDECDE=(IARFIN-IARDEB)*ILARPH-IDCDEB
00411 C
00412 C         COMPLEMENT DE LA PAGE DE DONNEES ASSOCIEE AU DERNIER ARTICLE
00413 C       PHYSIQUE OU DOIVENT ETRE STOCKEES LES DONNEES A ECRIRE.
00414 C
00415         DO 254 JD=1,IDCFIN
00416         LFI%MTAMPD(IXT(JD,INUMPD,KRANG))=KTAB(IDECDE+JD)
00417   254   CONTINUE
00418 C
00419         LFI%LECRPD(INUMPD,KRANG)=.TRUE.
00420         LFI%NLONPD(INUMPD,KRANG)=MAX0 (LFI%NLONPD(INUMPD,KRANG),IDCFIN)
00421         LFI%NDERPD(KRANG)=INUMPD
00422       ENDIF
00423 C
00424       GOTO 1001
00425 C**
00426 C     9.  - CI-DESSOUS, ETIQUETTES DE BRANCHEMENT EN CAS D'ERREUR E/S.
00427 C      AU CAS OU, ON FORCE LE CODE-REPONSE ENTREE/SORTIE A ETRE POSITIF.
00428 C-----------------------------------------------------------------------
00429 C
00430   903 CONTINUE
00431       IRETOU=1
00432       CLACTI='WRITE'
00433       GOTO 909
00434 C
00435   904 CONTINUE
00436       IRETOU=2
00437       CLACTI='READ'
00438 C
00439   909 CONTINUE
00440       KREP=IABS (KREP)
00441       IF (INAPHY.NE.0) LFI%NUMAPH(KRANG)=INAPHY
00442 C**
00443 C    10.  -  PHASE TERMINALE : MESSAGERIE INTERNE EVENTUELLE,
00444 C            VIA LE SOUS-PROGRAMME "LFIEMS", PUIS RETOUR.
00445 C-----------------------------------------------------------------------
00446 C
00447  1001 CONTINUE
00448       LLFATA=LLMOER (KREP,KRANG)
00449 C
00450       IF (KREP.EQ.0) THEN
00451         KRETIN=0
00452       ELSEIF (KREP.GT.0) THEN
00453         KRETIN=IRETOU
00454       ELSE
00455         KRETIN=3
00456       ENDIF
00457 C
00458       IF (LFI%LMISOP.OR.LLFATA) THEN
00459         INIMES=2
00460         CLNSPR='LFIECD'
00461         WRITE (UNIT=CLMESS,FMT='(''KREP='',I4,'', KRANG='
00462 ',I3,     S  '', KLONG='',I7,'', KPOSEC='',I8,'', KRETIN='',I2)')
00463      S   KREP, KRANG, KLONG, KPOSEC, KRETIN
00464         CALL LFIEMS_MT (LFI, INUMER,INIMES,KREP,.FALSE.,
00465      S                  CLMESS,CLNSPR,CLACTI)
00466       ENDIF
00467 C
00468       IF (LHOOK) CALL DR_HOOK('LFIECD_MT',1,ZHOOK_HANDLE)
00469       END
00470