ooowph
C OOOWPH SOURCE PV090527 26/04/24 08:23:32 12524 SUBROUTINE OOOWPH (HNOMV,HNOMVA,IDIM,NDIM,NMAX) C--------------------------------------------------------------------- C C IMPRESSION D'UN SEGMENT : SEGPRT , PSEG*NMAX C (CONTENU DU SEGMENT) C C HNOMV NOM DU TABLEAU OU DE LA VARIABLE SIMPLE C C *NOMVA TABLEAU A IMPRIMER C C IDIM(NDIM) DIMENSIONS D'UN TABLEAU C C NDIM NOMBRE DE DIMENSIONS D'UN TABLEAU C C NMAX NOMBRE MAXIMUM DE VALEURS A IMPRIMER POUR UN TABLEAU C C C PROGRAMMEUR : M JACQ C CREE : 03/04/89 C C----------------------------------------------------------------------- C NELEM NOMBRE D'ELEMENTS PAR LIGNE %INC IOOUNIT PARAMETER (NELEM=5) CHARACTER *5 TRADL(NELEM) CHARACTER *(*) HNOMV INTEGER IDIM(*) C C DECLARATIONS DE *NOMVA C CHARACTER *(*) HNOMVA(1) LOGICAL LNOMVA(1) %IF VAX,PRIME,NORSK LOGICAL*2 MNOMVA(1) %ELSE LOGICAL MNOMVA(1) %ENDIF %IF IBM,VAX,SEL,PRIME LOGICAL*1 NNOMVA(1) %ELSE %IF NORSK LOGICAL*2 NNOMVA(1) %ELSE LOGICAL NNOMVA(1) %ENDIF %ENDIF C INTEGER INOMVA(1) C %IF SEL,UNIVAC,CRAY,CFT77,CDC,FPS,NOSVE,UNIX64,WIN64 INTEGER JNOMVA(1) %ELSE INTEGER*2 JNOMVA(1) %ENDIF C %IF SEL,UNIVAC,CRAY,CFT77,CDC,FPS,NOSVE,UNIX64,WIN64 INTEGER KNOMVA(1) %ELSE INTEGER*2 KNOMVA(1) %ENDIF C REAL RNOMVA(1) REAL CNOMVA(2,1) C %IF CRAY,CFT77,CDC,FPS,NOSVE,UNIX64,WIN64 REAL DNOMVA(1) REAL YNOMVA(2,1) %ELSE REAL*8 DNOMVA(1) REAL*8 YNOMVA(2,1) %ENDIF C %IF IBM,VAX,SEL,PRIME REAL*16 QNOMVA(1) REAL*16 ZNOMVA(2,1) %ELSE REAL*8 QNOMVA(1) REAL*8 ZNOMVA(2,1) %ENDIF C MACRO , (LOGICAL , LOGICAL_2 , LOGICAL_1 * , INTEGER , INTEGER_2 , INTEGER_1 * , REAL_4 , REAL_8 , REAL_16 * , COMPLEX , COMPLEX_16, COMPLEX_32 * , CHARACTER, POINTEUR ) C KAS=CHARACTER GO TO 20 ENTRY OOOWPL(HNOMV,LNOMVA,IDIM,NDIM,NMAX) KAS=LOGICAL GO TO 20 ENTRY OOOWPM(HNOMV,MNOMVA,IDIM,NDIM,NMAX) KAS=LOGICAL_2 GO TO 20 ENTRY OOOWPN(HNOMV,NNOMVA,IDIM,NDIM,NMAX) KAS=LOGICAL_1 GO TO 20 ENTRY OOOWPI(HNOMV,INOMVA,IDIM,NDIM,NMAX) KAS=INTEGER GO TO 20 ENTRY OOOWPJ(HNOMV,JNOMVA,IDIM,NDIM,NMAX) KAS=INTEGER_2 GO TO 20 ENTRY OOOWPK(HNOMV,KNOMVA,IDIM,NDIM,NMAX) KAS=INTEGER_1 GO TO 20 ENTRY OOOWPR(HNOMV,RNOMVA,IDIM,NDIM,NMAX) KAS=REAL_4 GO TO 20 ENTRY OOOWPD(HNOMV,DNOMVA,IDIM,NDIM,NMAX) KAS=REAL_8 GO TO 20 ENTRY OOOWPQ(HNOMV,QNOMVA,IDIM,NDIM,NMAX) KAS=REAL_16 GO TO 20 ENTRY OOOWPC(HNOMV,CNOMVA,IDIM,NDIM,NMAX) KAS=COMPLEX GO TO 20 ENTRY OOOWPY(HNOMV,YNOMVA,IDIM,NDIM,NMAX) KAS=COMPLEX_16 GO TO 20 ENTRY OOOWPZ(HNOMV,ZNOMVA,IDIM,NDIM,NMAX) KAS=COMPLEX_32 GO TO 20 ENTRY OOOWPP(HNOMV,INOMVA,IDIM,NDIM,NMAX) KAS=POINTEUR C 20 CONTINUE C IF(NDIM.EQ.0) THEN C C VARIABLE SIMPLE C KDIM=0 CASE ,KAS WHEN , POINTEUR WRITE(JLST,1150) HNOMV(1:MIN(30,LEN(HNOMV))) WHENOTHERS WRITE(JLST,1100) HNOMV(1:MIN(30,LEN(HNOMV))) ENDCASE ELSE KDIM=1 CASE ,KAS WHEN , CHARACTER IF(NDIM.EQ.1) THEN WRITE(JLST,1050) HNOMV(1:MIN(30,LEN(HNOMV))),IDIM(1) KDIM =0 ELSE C C TABLEAU C WRITE(JLST,1050) HNOMV(1:MIN(30,LEN(HNOMV))) * ,IDIM(1),(IDIM(I),I=2,NDIM) ENDIF WHEN , POINTEUR WRITE(JLST,1150) HNOMV(1:MIN(30,LEN(HNOMV))) * ,(IDIM(I),I=1,NDIM) WHENOTHERS WRITE(JLST,1100) HNOMV(1:MIN(30,LEN(HNOMV))) * ,(IDIM(I),I=1,NDIM) ENDCASE ENDIF C IF(KDIM.NE.0) THEN C C TABLEAU C CASE ,KAS WHEN , CHARACTER WHENOTHERS ENDCASE KDIM=KDIM*IDIM(I) ENDDO KDIM=MIN(NMAX,KDIM) C DO I=1,KDIM,NELEM C CASE ,KAS WHEN , LOGICAL , LOGICAL_2 , LOGICAL_1 JMAX=IMAX-I+1 DO J=1,JMAX CASE ,KAS WHEN , LOGICAL IF(LNOMVA(I+J-1)) THEN TRADL(J)='TRUE ' ELSE TRADL(J)='FALSE' ENDIF WHEN , LOGICAL_2 IF(MNOMVA(I+J-1)) THEN TRADL(J)='TRUE ' ELSE TRADL(J)='FALSE' ENDIF WHEN , LOGICAL_1 IF(NNOMVA(I+J-1)) THEN TRADL(J)='TRUE ' ELSE TRADL(J)='FALSE' ENDIF ENDCASE ENDDO WRITE(JLST,1200)I,(TRADL(J),J=1,JMAX) WHEN , INTEGER , POINTEUR WHEN , INTEGER_2 WHEN , INTEGER_1 WHEN , REAL_4 WHEN , REAL_8 WHEN , REAL_16 WHEN , COMPLEX WHEN , COMPLEX_16 WHEN , COMPLEX_32 WHEN , CHARACTER WRITE(JLST,1600)I ENDCASE ENDDO ELSE C C VARIABLE SIMPLE C CASE ,KAS WHEN , LOGICAL , LOGICAL_2 , LOGICAL_1 CASE ,KAS WHEN , LOGICAL IF(LNOMVA(1)) THEN TRADL(1)='TRUE ' ELSE TRADL(1)='FALSE' ENDIF WHEN , LOGICAL_2 IF(MNOMVA(1)) THEN TRADL(1)='TRUE ' ELSE TRADL(1)='FALSE' ENDIF WHEN , LOGICAL_1 IF(NNOMVA(1)) THEN TRADL(1)='TRUE ' ELSE TRADL(1)='FALSE' ENDIF ENDCASE WRITE(JLST,1250) TRADL(1) WHEN , INTEGER , POINTEUR WRITE(JLST,1350) INOMVA(1) WHEN , INTEGER_2 WRITE(JLST,1350) JNOMVA(1) WHEN , INTEGER_1 WRITE(JLST,1350) KNOMVA(1) WHEN , REAL_4 WRITE(JLST,1450) RNOMVA(1) WHEN , REAL_8 WRITE(JLST,1450) DNOMVA(1) WHEN , REAL_16 WRITE(JLST,1450) QNOMVA(1) WHEN , COMPLEX WRITE(JLST,1550) CNOMVA(1,1) WRITE(JLST,1550) CNOMVA(2,1) WHEN , COMPLEX_16 WRITE(JLST,1550) YNOMVA(1,1) WRITE(JLST,1550) YNOMVA(2,1) WHEN , COMPLEX_32 WRITE(JLST,1550) ZNOMVA(1,1) WRITE(JLST,1550) ZNOMVA(2,1) WHEN , CHARACTER WRITE(JLST,1650) HNOMVA(1) (1:MIN(11,LEN(HNOMVA(1)))) ENDCASE ENDIF RETURN C 1050 FORMAT(/,1X,A,' CARACTERE*',I6:,' DIMENSION ',3(I12)) 1100 FORMAT(/,1X,A:,' DIMENSION ',4(I12)) 1150 FORMAT(/,1X,A,'*POINTEUR':,' DIMENSION ',4(I12)) 1200 FORMAT(1X,I6,'*',5(2X,A5:)) 1250 FORMAT(8X ,2X,A5) 1300 FORMAT(1X,I6,'*',5(I12)) 1350 FORMAT(8X ,I12) 1400 FORMAT(1X,I6,'*',5(1PE12.4)) 1450 FORMAT(8X ,1PE12.4) 1500 FORMAT(1X,I6,'*',5(1PE12.4)) 1550 FORMAT(8X, 5(1PE12.4)) 1600 FORMAT(1X,I6,'*',5(2X,A11:)) 1650 FORMAT(8X ,2X,A11) END
© Cast3M 2003 - Tous droits réservés.
Mentions légales