1 : C MODCAL SOURCE CHAT 05/01/13 01:47:31 5004 2 : SUBROUTINE MODCAL(EPSILO,NDIM,ITYG,XINTER,XNORMA 3 : $ ,XIREB,XNREB,IREBCO,IREBDI,XDEP2,TDEP,UREEL,U 4 : $ ,IZSH,DTREEL,XCON2,XARI2,TARI,DTNEW,ITEST1,ITEST2,LTEST) 5 : *************************************************************************** 6 : *** SP 'MODCAL' : traite les cas ou calibrage particule via 'CALIDT' est 7 : *** inefficace (cas ou pt calibré invariant et hors maille). 'MODCAL' 8 : *** recalibre le saut convectif seul sans tenir compte du saut dspersif. 9 : *** 10 : *** APPELES 1 = aucun 11 : *** APPELES 2 = 'CALIDT', 'LIEUPT' 12 : *** 13 : *** E = 'EPSILO' marge relative acceptée position % element 14 : *** 'NDIM' dimension de l'espace 15 : *** 'ITYG' entier caracterisant la geometrie de l'element 16 : *** 'XINTER' coord reelles du pt intersection du calibrage 17 : *** 'XNORMA' vecteur unitaire normal du calibrage 18 : *** 'XIREB' pt d'impact sur la face impermeable 19 : *** 'XNREB' vecteur normal à la face impermeable 20 : *** 'IREBCO' vaut 1 si rebond lors de la convection, 0 sinon 21 : *** 'IREBDI' vaut 1 si rebond lors de la diffusion, 0 sinon 22 : *** 'XDEP2' coord reelles depart particule avt calibrage 23 : *** 'TDEP' tps reel depart particule avt calibrage 24 : *** 'UREEL' vecteur "vitesse convective" du calibrage 25 : *** 'U' vecteur "vitesse diffusive" du calibrage 26 : *** 'IZSH' segment content coord reelles noeuds, fcts forme et base 27 : *** 'DTREEL' pas de tps réel de calcul avancée particule 28 : *** 29 : *** E/S = 'XCON2' nouvelles coord reelles apres convection 30 : *** 'XARI2' nouvelles coord reelles arrivee particule 31 : *** 'TARI' nouveau tps reel d'arrivee particule 32 : *** 'DTNEW' pas de tps avancee particule au cours traitement 33 : *** 'ITEST1' vaut 1 si calib sur conv seule donne dt coherent, 0 sinon 34 : *** 'ITEST2' vaut 1 si nveau pt arrivee appartient à maille, 0 sinon 35 : *** 'LTEST' vaut 1 si 1er essai calibrage, 0 si 2eme essai 36 : *** 37 : *** ORIGINE = CYRIL NOU 38 : *************************************************************************** 39 : 40 : 41 : IMPLICIT INTEGER(I-N) 42 : IMPLICIT REAL*8 (A-H,O-Z) 43 : SEGMENT IZSH 44 : REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9) 45 : ENDSEGMENT 46 : DIMENSION XINTER(3),XNORMA(3),XDEP2(3),XCON2(3),XARI2(3) 47 : DIMENSION UZERO(3),UREEL(3),U(3),XIREB(3),XNREB(3),xcon(3) 48 : *** on cree un vecteur "vitesse diffusive" nul 49 : DO 10 I=1,NDIM 50 : UZERO(I)=0.D0 51 : 10 CONTINUE 52 : *** traitement consistant a recalibrer sur convec seule (m vecteur vitesse) 52 : CALL CALIDT(EPSILO,NDIM,XINTER,XNORMA 53 : $ ,XIREB,XNREB,IREBCO,IREBDI,XDEP2,TDEP,UREEL 54 : $ ,UZERO,DTREEL,LTEST,DTNEW,XCON2,XARI2,TARI,ITEST1) 55 : *** saut diffusif avec m vecteur vitesse diff si pas d'echec calibrage 56 : DO 20 I=1,NDIM 57 : XARI2(I)=XCON2(I)+U(I)*SQRT(DTNEW) 58 : 20 CONTINUE 59 : *** localisation nouveau pt arrivee apres traitement à 0 pres 59 : CALL LIEUPT(0.D0,NDIM,ITYG,XARI2,IZSH,ITEST2) 60 : 61 : RETURN 62 : END 63 : 64 : 65 : 66 : 67 : 68 :
© Cast3M 2003 - All rights reserved.
Disclaimer