ooobph
C OOOBPH SOURCE PV090527 26/04/24 08:23:01 12524 CMODE 92/04/03 13:28:36 ESOPV10 SUBROUTINE OOOBPH (HNOMV,PSEG,PARCH,HNOMVA,IDIM,NDIM, * NBMAX) C--------------------------------------------------------------------- C DESARCHIVAGE DE SEGMENTS C HNOMV : NOM DU TABLEAU OU DE LA VARIABLE SIMPLE C PSEG : SEGMENT ORIGINE C PARCH : SEGMENT ARCHIVE C HNOMVA : TABLEAU TRANSMIS C IDIM(NDIM) : DIMENSIONS DU TABLEAU C NDIM : NOMBRE DE DIMENSIONS D'UN TABLEAU C NBMAX : NOMBRE MAX DE VALEURS A ARCHIVER C C LONGUEURS: C ========= C LOGIQUE: 5 C INTEGER: 11 INTEGER*2 : 6 INTEGER*1 : 4 C REAL*4 : 16 REAL*8 : 25 REAL*16 : 42 C COMPLEX*8 : 35 COMPLEX*16: 53 COMPLEX*32 : 87 C C H_MULLEMAN LE 18/8/1991 C----------------------------------------------------------------------- %INC IOOARC %INC IOOCH %INC IOOCH2 LOGICAL VRAI C C----------------------------------------------------------------------- C KAS=CHARACTER GO TO 20 ENTRY OOOBPL (HNOMV,PSEG,PARCH,LNOMVA,IDIM,NDIM,NBMAX) KAS=LOGICAL GO TO 20 ENTRY OOOBPM (HNOMV,PSEG,PARCH,MNOMVA,IDIM,NDIM,NBMAX) KAS=LOGICAL_2 GO TO 20 ENTRY OOOBPN (HNOMV,PSEG,PARCH,NNOMVA,IDIM,NDIM,NBMAX) KAS=LOGICAL_1 GO TO 20 ENTRY OOOBPI (HNOMV,PSEG,PARCH,INOMVA,IDIM,NDIM,NBMAX) KAS=INTEGER GO TO 20 ENTRY OOOBPJ (HNOMV,PSEG,PARCH,JNOMVA,IDIM,NDIM,NBMAX) KAS=INTEGER_2 GO TO 20 ENTRY OOOBPK (HNOMV,PSEG,PARCH,KNOMVA,IDIM,NDIM,NBMAX) KAS=INTEGER_1 GO TO 20 ENTRY OOOBPR (HNOMV,PSEG,PARCH,RNOMVA,IDIM,NDIM,NBMAX) KAS=REAL_4 GO TO 20 ENTRY OOOBPD (HNOMV,PSEG,PARCH,DNOMVA,IDIM,NDIM,NBMAX) KAS=REAL_8 GO TO 20 ENTRY OOOBPQ (HNOMV,PSEG,PARCH,QNOMVA,IDIM,NDIM,NBMAX) KAS=REAL_16 GO TO 20 ENTRY OOOBPC (HNOMV,PSEG,PARCH,CNOMVA,IDIM,NDIM,NBMAX) KAS=COMPLEX GO TO 20 ENTRY OOOBPY (HNOMV,PSEG,PARCH,YNOMVA,IDIM,NDIM,NNMAX) KAS=COMPLEX_16 GO TO 20 ENTRY OOOBPZ (HNOMV,PSEG,PARCH,ZNOMVA,IDIM,NDIM,NBMAX) KAS=COMPLEX_32 GO TO 20 ENTRY OOOBPP (HNOMV,PSEG,PARCH,INOMVA,IDIM,NDIM,NBMAX) KAS=POINTEUR C 20 CONTINUE C C NMAX=1 IF(NDIM.EQ.0) THEN ELSE C CASE , KAS WHEN , CHARACTER IF (NDIM.EQ.1) THEN ELSE DO I=2,NDIM NMAX=NMAX*IDIM(I) ENDDO ENDIF C WHENOTHERS DO I=1,NDIM NMAX=NMAX*IDIM(I) ENDDO ENDCASE ENDIF C IF (NMAX.GE.NBMAX) NMAX=NBMAX DO I=1,NMAX CASE ,KAS WHEN , LOGICAL , LOGICAL_2 , LOGICAL_1 CH5=PARCH.CHARIV(INDICE:INDICE) INDICE=INDICE+1 IF (CH5(1:1).EQ.'T') THEN VRAI=.TRUE. ELSE VRAI=.FALSE. ENDIF CASE , KAS WHEN , LOGICAL IF(VRAI) THEN LNOMVA(I)=.TRUE. ELSE LNOMVA(I)=.FALSE. ENDIF WHEN , LOGICAL_2 IF(VRAI) THEN MNOMVA(I)=.TRUE. ELSE MNOMVA(I)=.FALSE. ENDIF WHEN , LOGICAL_1 IF(VRAI) THEN NNOMVA(I)=.TRUE. ELSE NNOMVA(I)=.FALSE. ENDIF ENDCASE C WHEN , INTEGER , POINTEUR CH11=PARCH.CHARIV(INDICE:INDICE+11) C INOMVA(I)=IVAL(CH11,11) READ(CH11,FMT='(I11)') INOMVA(I) INDICE=INDICE+11 C WHEN , INTEGER_2 CH6=PARCH.CHARIV(INDICE:INDICE+6) C JNOMVA(I)=IVAL(CH6,6) READ(CH6,FMT='(I6)') JNOMVA(I) INDICE=INDICE+6 C WHEN , INTEGER_1 CH6=PARCH.CHARIV(INDICE:INDICE+6) C KNOMVA(I)=IVAL(CH6,6) READ(CH6,FMT='(I6)') KNOMVA(I) INDICE=INDICE+6 C WHEN , REAL_4 CH16=PARCH.CHARIV(INDICE:INDICE+16) C RNOMVA(I)=VAL(CH16,16) READ(CH16,FMT='(E16.9)') RNOMVA(I) INDICE=INDICE+16 C WHEN , REAL_8 CH25=PARCH.CHARIV(INDICE:INDICE+25) C DNOMVA(I)=VAL(CH25,25) READ(CH25,FMT='(E25.18)') DNOMVA(I) INDICE=INDICE+25 C WHEN , REAL_16 CH42=PARCH.CHARIV(INDICE:INDICE+42) C QNOMVA(I)=VAL(CH42,42) READ(CH42,FMT='(E42.35)') QNOMVA(I) INDICE=INDICE+42 C WHEN , COMPLEX CH16=PARCH.CHARIV(INDICE:INDICE+16) C CNOMVA(1,I)=VAL(CH16,16) READ(CH16,FMT='(E16.9)') CNOMVA(1,I) INDICE=INDICE+16 CH16=PARCH.CHARIV(INDICE:INDICE+16) C CNOMVA(2,I)=VAL(CH16,16) READ(CH16,FMT='(E16.9)') CNOMVA(2,I) INDICE=INDICE+16 WHEN , COMPLEX_16 CH25=PARCH.CHARIV(INDICE:INDICE+25) C YNOMVA(1,I)=VAL(CH25,25) READ(CH25,FMT='(E25.18)') YNOMVA(1,I) INDICE=INDICE+25 CH25=PARCH.CHARIV(INDICE:INDICE+25) C YNOMVA(2,I)=VAL(CH25,25) READ(CH25,FMT='(E25.18)') YNOMVA(2,I) INDICE=INDICE+25 WHEN , COMPLEX_32 CH42=PARCH.CHARIV(INDICE:INDICE+42) C ZNOMVA(1,I)=VAL(CH42,42) READ(CH42,FMT='(E42.35)') ZNOMVA(1,I) INDICE=INDICE+42 CH42=PARCH.CHARIV(INDICE:INDICE+42) C ZNOMVA(2,I)=VAL(CH42,42) READ(CH42,FMT='(E42.35)') ZNOMVA(2,I) INDICE=INDICE+42 WHEN , CHARACTER ENDCASE ENDDO RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales