smdpro
C SMDPRO SOURCE CB215821 20/07/31 21:15:17 10678 C*********************************************************************** C NOM : smdpro.eso C DESCRIPTION : Ecriture des profils et des champs C*********************************************************************** C HISTORIQUE : 29/11/2017 : RPAREDES : CREATION C HISTORIQUE : C*********************************************************************** C Prière de PRENDRE LE TEMPS DE COMPLÉTER LES COMMENTAIRES C en cas de modification de ce sous-programme afin de faciliter C la maintenance ! C*********************************************************************** C APPELÉ PAR : opérateur (SORT 'MED') sormed.eso C*********************************************************************** C ENTRÉES : C FID : Id du fichier C NOBJ : Nom du maillage C NBPR : Nombre de profils C INFSUP : Segment avec l'info sur les profils C NBCH : Nombre de champs C INFSCH : Segment avec l'info sur les champs C SORTIES : aucune C*********************************************************************** SUBROUTINE smdpro(FID, NOBJ, NBPR, INFSUP, NBCH, INFSCH) IMPLICIT INTEGER(i-n) IMPLICIT REAL*8(a-h,o-z) -INC CCMED -INC PPARAM -INC CCOPTIO -INC SMELEME -INC SMCOORD -INC CCGEOME -INC SMCHAML C ***** Déclaration des paramètres INTEGER*4 FID CHARACTER*8 NOBJ C ***** Déclaration des variables C-----Définition des entiers INTEGER*4 cret INTEGER*4 ftype INTEGER*4 psize INTEGER*4 ncomp C-----Chaines de Caractere de longueur MED_SNAME_SIZE=16 CHARACTER*16 dtunit CHARACTER*16 VID16 PARAMETER(VID16=' ') C-----Chaines de Caractere de longueur MED_NAME_SIZE=64 CHARACTER*64 fname CHARACTER*64 pname CHARACTER*64 mname CHARACTER*64 VID64 PARAMETER(VID64=' & ') C ***** Déclaration des segments SEGMENT SINT4 INTEGER INT4(psize) ENDSEGMENT C----- SEG INFSCH C nbchps : nombre de champs C NOMCHA : nom du champ C IETYPE : type d'entité (etype) C LISCOM : liste de SEG SLISCO (nom des composantes) SEGMENT INFSCH INTEGER IETYPE(nbchps) INTEGER LISCOM(nbchps) ENDSEGMENT SEGMENT SLISCO ENDSEGMENT C----- SEG INFSUP C nbprof : nombre de profils C NOMSUP : nom du support C LISSUP : liste de MELEME C IGTYPE : type géométrique (gtype) C LISSME : liste de SEG SLISSU (numérotation) SEGMENT INFSUP CHARACTER*8 NOMSUP(nbprof) INTEGER IGTYPE(nbchps) INTEGER LISSUP(nbprof), LISSME(nbprof) ENDSEGMENT SEGMENT SLISSU INTEGER LISSEL(nbelem), SNBNOD ENDSEGMENT C ********************************************************************** C Creation des profils C ********************************************************************** DO ia = 1,NBPR SLISSU = INFSUP.LISSME(ia) nbelem = SLISSU.LISSEL(/1) pname = INFSUP.NOMSUP(ia) psize = nbelem SEGINI SINT4 & cret) IF (cret .NE. 0) THEN moterr(1:6) = 'pfprw4' interr(1) = cret RETURN ENDIF SEGSUP SINT4 ENDDO C ********************************************************************** C Creation des champs C ********************************************************************** DO ia = 1,NBCH ftype = MED_FLOAT64 SLISCO = INFSCH.LISCOM(ia) ncomp = SLISCO.LISSCP(/2) dtunit = VID16 mname = NOBJ CALL mfdcre(FID, fname, ftype, ncomp, SLISCO.LISSCP, & SLISCO.LCUNIT, dtunit, mname, cret) IF (cret .NE. 0) THEN moterr(1:6) = 'mfdcre' interr(1) = cret RETURN ENDIF ENDDO RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales