dync
C DYNC SOURCE OF166741 26/05/11 21:15:05 12538 SUBROUTINE DYNC ************************************************************************ * * RESOUT LE PB DYNAMIQUE PAR HBM + CONTINUATION : * .. . . * M q + C q + K q = f^ext(t) + f^nl(Q,Q,a) * * avec q(t) = \sum_j{q_jc cos (jwt) + q_js sin(jwt)} * * AUTEUR : ROBERTO ALCORTA, 2020 * ************************************************************************ IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMCOORD -INC TMDYNC INTEGER NHBM,NFFT,NSPAS LOGICAL CHECK,RIGIDE,REPRIS ************************************************************************ * LECTURE ************************************************************************ c lecture des arguments c HBMLIR copie depuis DEVLIR IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMLIR' & ITREDU,IPARNUM,KPREF,KCPR,NHBM,NFFT) IF (IERR.NE.0) RETURN c allocation memoire (creation des segments) IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMALO' & IPARNUM,KPREF,KTQ,KTKAM,KTPHI,KTLIAA,KTEMP,KTLIAB, & KTFEX,KTPAS,KTRES,KTNUM,IPMAIL,REPRIS,KPARNUM, & KSORT,ICHAIN,KOCLFA,KOCLB1,NHBM,NFFT) c Remplissage des tableaux des liaisons IF (ITLIA.NE.0) THEN IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a DEVLIA' SEGACT,MCOORD SEGDES,MCOORD IF (IERR.NE.0) RETURN ENDIF c Transposition des objets CASTEM dans des tableaux IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMTRA' & KTPHI,KTLIAB,RIGIDE) ************************************************************************ * CALCUL D'UNE SOLUTION INITIALE ************************************************************************ IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMINI' & KCPR,KOCLFA,KOCLB1,KPARNUM,NHBM,NFFT,CHECK,ITER) IF (CHECK) THEN c Pas de convergence, arret de %m1:8 MOTERR(1:8)='DYNC ' RETURN ENDIF IF(IIMPI.GE.2) & WRITE(IOIMP,*) 'DYNC : Solution initiale convergee' ************************************************************************ * CONTINUATION EN FONCTION D'UN PARAMETRE ************************************************************************ PARNUM = KPARNUM IF (parnum.TYPS.EQ.'FORC') THEN NOTYPS = 0 IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCON' & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS, & ITER) ELSEIF (parnum.TYPS.EQ.'AUTO') THEN NOTYPS = 1 IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCO2' & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS, & ITER) ELSEIF (parnum.TYPS.EQ.'NNM') THEN NOTYPS = 0 IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMCO3' & KCPR,KOCLFA,KOCLB1,NHBM,NFFT,KPARNUM,KSORT,NSPAS, & ITER) ENDIF ************************************************************************ * ECRITURE DES RESULTATS ET SORTIE DU PROGRAMME ************************************************************************ IF (IIMPI.EQ.333) WRITE(IOIMP,*) 'DYNC : appel a HBMSOR' RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales