34 SUBROUTINE i25tagn (NI25 ,NIN ,NRTM ,NSN ,NSNR ,
35 2 JTASK ,IAD_FRNOR ,FR_NOR ,IRTLM ,MSEGTYP ,
36 3 I_STOK_GLO,I_STOK_RTLM,CAND_OPT_E,STFNS ,ACTNOR ,IRECT ,
37 4 TAGNOD ,IAD_ELEM,FR_ELEM ,ADMSR ,KNOR2MSR ,
38 5 NOR2MSR ,FLAGREMN,KREMNOR ,REMNOR ,IEDGE ,
39 6 NEDGE,LEDGE,NRTM_FREE,FREE_IRECT_ID,I_STOK_E2S ,
40 7 CANDM_E2S ,CANDS_E2S ,MVOISIN ,E2S_ACTNOR,NADMSR ,STFM,
41 8 NUMBER_EDGE_TYPE1,NUMBER_EDGE_TYPE1_0,EDGE_TYPE1,EDGE_TYPE1_0 )
50#include "implicit_f.inc"
54#include "i25edge_c.inc"
66 INTEGER NI25, NIN, NRTM, NSN, NSNR, JTASK, FLAGREMN,NADMSR,
67 . IAD_FRNOR(NINTER25,NSPMD+1) ,FR_NOR(*),
68 . IRTLM(4,*), MSEGTYP(*), I_STOK_GLO, I_STOK_RTLM, CAND_OPT_E(*),
69 . ACTNOR(*), IRECT(4,*), TAGNOD(*), E2S_ACTNOR(*),
70 . IAD_ELEM(2,*), FR_ELEM(*), KNOR2MSR(*), NOR2MSR(*), ADMSR(4,*),
71 . KREMNOR(*), REMNOR(*), I_STOK_E2S, CANDM_E2S(*), CANDS_E2S(*), MVOISIN(4,*)
72 INTEGER,
INTENT(IN) :: IEDGE,NEDGE
73 INTEGER :: LEDGE(NLEDGE,NEDGE)
74 INTEGER :: FREE_IRECT_ID(NRTM),NRTM_FREE
75 INTEGER,
INTENT(in) :: NUMBER_EDGE_TYPE1
76 INTEGER,
INTENT(in) :: NUMBER_EDGE_TYPE1_0
77 INTEGER,
DIMENSION(NUMBER_EDGE_TYPE1),
INTENT(in) :: EDGE_TYPE1
78 INTEGER,
DIMENSION(NUMBER_EDGE_TYPE1_0),
INTENT(in) :: EDGE_TYPE1_0
82 my_real,
INTENT(IN):: stfm(nrtm)
87 INTEGER I, J, K, N, NOR, NOD, L, ISH, FIRST, , NL, LVOIS
88 INTEGER NRTMFT, NRTMLT, NSNF, NSNL, NSNRF, NSNRL, NODFT, NODLT,
89 . m, nor1, nor2, nadmsrft, nadmsrlt,
90 . nrtmft_free, nrtmlt_free, nedgft, nedglt, sol_edge, sh_edge
91 INTEGER ,JRM,IEDG,JEDG
92 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGMSR
95 nodft= 1+(jtask-1)*numnod/ nthread
96 nodlt= jtask*numnod/nthread
99 nrtmft= 1+(jtask-1)*nrtm/ nthread
100 nrtmlt= jtask*nrtm/nthread
101 actnor(nrtmft:nrtmlt)=0
106 nadmsrft= 1+(jtask-1)*nadmsr/ nthread
107 nadmsrlt= jtask*nadmsr/nthread
108 e2s_actnor(nadmsrft:nadmsrlt)=0
114 nsnf = 1 + nsn*(jtask-1) / nthread
115 nsnl = nsn*jtask / nthread
117 IF(flagremn == 2 )
THEN
119 ALLOCATE(tagmsr(nrtm))
126 tagmsr(remnor(m)) = 1
129 IF(irtlm(1,n) > 0)
THEN
130 IF(stfns(n)/=zero.AND.irtlm(4,n) == ispmd+1)
THEN
139 DO nl=knor2msr(nor)+1,knor2msr(nor+1)
141 IF(tagmsr(lvois)==0.AND.stfm(lvois) > zero)
THEN
154 tagmsr(remnor(m)) = 0
159 IF(irtlm(1,n) > 0)
THEN
160 IF(stfns(n)/=zero.AND.irtlm(4,n) == ispmd+1)
THEN
167 DO nl=knor2msr(nor)+1,knor2msr(nor+1)
169 IF(stfm(lvois) > zero)
THEN
184 nsnrf = 1 + nsnr*(jtask-1) / nthread
185 nsnrl = nsnr*jtask / nthread
187 IF(flagremn == 2 )
THEN
196 IF(
stifi(nin)%P(n)/=zero.AND.
irtlm_fi(nin)%P(4,n) == ispmd+1)
THEN
205 DO nl=knor2msr(nor)+1,knor2msr(nor+1)
207 IF(tagmsr(lvois)==0.AND.stfm(lvois) > zero)
THEN
229 IF(
stifi(nin)%P(n)/=zero.AND.
irtlm_fi(nin)%P(4,n) == ispmd+1)
THEN
238 DO nl=knor2msr(nor)+1,knor2msr(nor+1)
240 IF(stfm(lvois) > zero)
THEN
259 first = i_stok_rtlm + 1 + (i_stok_glo-i_stok_rtlm)*(jtask-1) / nthread
260 last = i_stok_rtlm + (i_stok_glo-i_stok_rtlm)*jtask / nthread
265 tagnod(irect(1,irm)) = 1
266 tagnod(irect(2,irm)) = 1
267 tagnod(irect(3,irm)) = 1
268 tagnod(irect(4,irm)) = 1
272 IF(ish > nrtm)ish=ish-nrtm
278 nrtmft_free= 1+(jtask-1)*nrtm_free/nthread
279 nrtmlt_free= jtask*nrtm_free/nthread
280 DO i=nrtmft_free,nrtmlt_free
281 irm = free_irect_id(i)
283 ish=iabs(msegtyp(irm))
285 IF(ish > nrtm)ish=ish-nrtm
289 IF(mvoisin(iedg,irm)==0)
THEN
290 IF(.NOT.(irect(3,irm)==irect(4,irm).AND.iedg==3))
THEN
291 tagnod(irect(iedg ,irm)) = 1
292 tagnod(irect(mod(iedg,4)+1,irm)) = 1
301 sh_edge =iedge-10*sol_edge
306 first = 1 + i_stok_e2s*(jtask-1) / nthread
307 last = i_stok_e2s*jtask / nthread
309 IF(cands_e2s(i) < 0)
THEN
312 tagnod(irect(1,irm)) = 1
313 tagnod(irect(2,irm)) = 1
314 tagnod(irect(3,irm)) = 1
315 tagnod(irect(4,irm)) = 1
320 nedgft = 1 + (jtask-1)*number_edge_type1_0 / nthread
321 nedglt = jtask*number_edge_type1_0 / nthread
322 IF(jtask==nthread) nedglt =number_edge_type1_0
323#include "vectorize.inc"
327 IF(sh_edge==1 .AND. ledge(ledge_type,i) /= 1 .AND. ledge(ledge_right_seg,i) /= 0) cycle
330 irm =ledge(ledge_left_seg ,i)
331 iedg=ledge(ledge_left_id ,i)
332 jrm =ledge(ledge_right_seg,i)
333 jedg=ledge(ledge_right_id ,i)
336 tagnod(irect(1,irm)) = 1
337 tagnod(irect(2,irm)) = 1
338 tagnod(irect(3,irm)) = 1
339 tagnod(irect(4,irm)) = 1
343 tagnod(irect(1,jrm)) = 1
344 tagnod(irect(2,jrm)) = 1
345 tagnod(irect(3,jrm)) = 1
346 tagnod(irect(4,jrm)) = 1
359 first = 1 + i_stok_e2s*(jtask-1) / nthread
360 last = i_stok_e2s*jtask / nthread
362 IF(cands_e2s(i) < 0)
THEN
365 IF(tagnod(irect(1,irm))==1)e2s_actnor(admsr(1,irm)) = 1
366 IF(tagnod(irect(2,irm))==1)e2s_actnor(admsr(2,irm)) = 1
367 IF(tagnod(irect(3,irm))==1)e2s_actnor(admsr(3,irm)) = 1
368 IF(tagnod(irect(4,irm))==1)e2s_actnor(admsr(4,irm)) = 1
373 nedgft = 1 + (jtask-1)*number_edge_type1 / nthread
374 nedglt = jtask*number_edge_type1 / nthread
375 IF(jtask==nthread) nedglt =number_edge_type1
376#include "vectorize.inc"
380 irm =ledge(ledge_left_seg ,i)
381 iedg=ledge(ledge_left_id ,i)
382 jrm =ledge(ledge_right_seg,i)
383 jedg=ledge(ledge_right_id ,i)
385 IF(tagnod(irect(1,irm))==1)e2s_actnor(admsr(iedg,irm)) = 1
386 IF(tagnod(irect(mod(iedg,4)+1,irm))==1)e2s_actnor(admsr(mod(iedg,4)+1,irm)) = 1
396 IF(nspmd > 1 .AND. jtask == 1)
THEN
397 DO i=iad_elem(1,1),iad_elem(1,nspmd+1)-1
399 tagnod(nod)=2 + tagnod(nod)
403 IF(tagnod(irect(j,i))>=2)
THEN
404 IF(actnor(i) == 0)
THEN
406 ELSEIF(actnor(i) == 1)
THEN
422 IF(flagremn == 2)
DEALLOCATE(tagmsr
438 . NOD_NORMAL,NMN ,MSR ,JTASK ,STIFM, STFE,
439 . ACTNOR ,MSEGTYP ,TAGNOD ,MVOISIN ,EVOISIN ,
440 . IAD_FREDG,FR_EDG ,WNOD_NORMAL,BUFFERS,IEDGE ,
441 . NEDGE ,LEDGE ,LBOUND ,NADMSR ,ADMSR ,
442 . IAD_FRNOR,FR_NOR,VTX_BISECTOR,FLAG,
443 . NB_FREE_BOUND,FREE_BOUND,TAGE,FREE_IRECT_ID,NRTM_FREE,
444 . FSKYT,IADNOR,ISHIFT,ADDCSRECT,PROCNOR,SOL_EDGE,
456#include "implicit_f.inc"
460#include "mvsiz_p.inc"
464#include "com01_c.inc"
465#include "com04_c.inc"
466#include "param_c.inc"
471 INTEGER NI25, NRTM, NRTM0, NMN, JTASK, IEDGE, NEDGE, FLAG, NADMSR,ISHIFT,SOL_EDGE,
472 . IRECT(4,NRTM), MSR(*),
473 . ACTNOR(*), MSEGTYP(*), TAGNOD(*),
474 . MVOISIN(4,*), EVOISIN(4,*), IAD_FREDG(NINTER25,*), FR_EDG(*),
475 . LEDGE(NLEDGE,*), LBOUND(*), ADMSR(4,*), IAD_FRNOR(NINTER25,*), FR_NOR(*),
476 . IADNOR(4,*),ADDCSRECT(*), PROCNOR(*)
477 INTEGER :: FREE_IRECT_ID(NRTM),NRTM_FREE
480 . X(3,NUMNOD), STIFM(*),STFE(NEDGE)
481 REAL*4 NOD_NORMAL(3,4,NRTM), WNOD_NORMAL(3,4,NRTM), VTX_BISECTOR(3,2,NADMSR)
482 REAL*4 FSKYT(3,*),FSKYN25(3,*)
483 INTEGER :: NB_FREE_BOUND,FREE_BOUND(4,4*NRTM)
490 INTEGER I, J, N, LLT, IRM, IAD, ISH
491 INTEGER IX1, IX2, IX3, IX4,
492 . i1, i2, i3, i4, jrm, jedg, iedg, is1,is2
493 INTEGER NRTMFT, NRTMLT, NADMSRFT, NADMSRLT
500 . x01, x02, x03, x04,
501 . y01, y02, y03, y04,
502 . z01, z02, z03, z04,
503 . xn1(mvsiz),yn1(mvsiz),zn1(mvsiz),
504 . xn2(mvsiz),yn2(mvsiz),zn2(mvsiz),
505 . xn3(mvsiz),yn3(mvsiz),zn3(mvsiz),
506 . xn4(mvsiz),yn4(mvsiz),zn4(mvsiz),
508 . vx, vy, vz, x12, y12, z12
510 LOGICAL :: LIMIT_CASE,IS_QUAD(MVSIZ)
539 nrtmft= 1+(jtask-1)*nrtm0/ nthread
540 nrtmlt= jtask*nrtm0/nthread
542 DO n=nrtmft,nrtmlt,mvsiz
544 llt=
min(nrtmlt-n+1,mvsiz
548#include "vectorize.inc"
565 IF(tagnod(ix1)==0.AND.
566 . tagnod(ix2)==0.AND.
567 . tagnod(ix3)==0.AND.
568 . tagnod(ix4)==0)
THEN
574 IF(stifm(irm) > zero)
THEN
590 x0 = (x1+x2+x3+x4)/4.0
591 y0 = (y1+y2+y3+y4)/4.0
592 z0 = (z1+z2+z3+z4)/4.0
612 xn1(i) = y01*z02 - z01*y02
613 yn1(i) = z01*x02 - x01*z02
614 zn1(i) = x01*y02 - y01*x02
615 xn2(i) = y02*z03 - z02*y03
616 yn2(i) = z02*x03 - x02*z03
617 zn2(i) = x02*y03 - y02*x03
618 xn3(i) = y03*z04 - z03*y04
619 yn3(i) = z03*x04 - x03*z04
620 zn3(i) = x03*y04 - y03*x04
621 xn4(i) = y04*z01 - z04*y01
622 yn4(i) = z04*x01 - x04*z01
623 zn4(i) = x04*y01 - y04*x01
626 aaa=run/
max(rem30,sqrt(xn1(i)*xn1(i)+yn1(i)*yn1(i)+zn1(i)*zn1(i)))
631 aaa=run/
max(rem30,sqrt(xn2(i)*xn2(i)+yn2(i)*yn2(i)+zn2(i)*zn2(i)))
636 aaa=run/
max(rem30,sqrt
641 aaa=run/
max(rem30,sqrt(xn4(i)*xn4(i)+yn4(i)*yn4(i)+zn4(i)*zn4(i)))
665#include "vectorize.inc"
669 IF(tage(irm)==1) cycle
674 nod_normal(1,1,irm)=xn1(i)
675 nod_normal(2,1,irm)=yn1(i)
676 nod_normal(3,1,irm)=zn1(i)
678 nod_normal(1,2,irm)=xn2(i)
679 nod_normal(2,2,irm)=yn2(i)
680 nod_normal(3,2,irm)=zn2(i)
682 nod_normal(1,3,irm)=xn3(i)
683 nod_normal(2,3,irm)=yn3(i)
684 nod_normal(3,3,irm)=zn3(i)
686 nod_normal(1,4,irm)=xn4(i)
687 nod_normal(2,4,irm)=yn4(i)
688 nod_normal(3,4,irm)=zn4(i)
692 nod_normal(1,1,irm)=xn1(i)
693 nod_normal(2,1,irm)=yn1(i)
694 nod_normal(3,1,irm)=zn1(i)
696 nod_normal(1,2,irm)=xn1(i)
697 nod_normal(2,2,irm)=yn1(i)
698 nod_normal(3,2,irm)=zn1(i)
700 nod_normal(1,4,irm)=xn1(i)
701 nod_normal(2,4,irm)=yn1(i)
702 nod_normal(3,4,irm)=zn1(i)
707#include "vectorize.inc"
712 IF(tage(irm)==1) cycle
716 IF(ish > nrtm)ish=ish-nrtm
720 nod_normal(1,1,ish)=-xn1(i)
721 nod_normal(2,1,ish)=-yn1(i)
722 nod_normal(3,1,ish)=-zn1(i)
724 nod_normal(1,4,ish)=-xn2(i)
725 nod_normal(2,4,ish)=-yn2(i)
726 nod_normal(3,4,ish)=-zn2(i)
728 nod_normal(1,3,ish)=-xn3(i)
729 nod_normal(2,3,ish)=-yn3(i)
730 nod_normal(3,3,ish)=-zn3(i)
732 nod_normal(1,2,ish)=-xn4(i)
733 nod_normal(2,2,ish)=-yn4(i)
734 nod_normal(3,2,ish)=-zn4(i)
738 nod_normal(1,1,ish)=-xn1(i)
739 nod_normal(2,1,ish)=-yn1(i)
740 nod_normal(3,1,ish)=-zn1
742 nod_normal(1,4,ish)=-xn1(i)
743 nod_normal(2,4,ish)=-yn1(i)
744 nod_normal(3,4,ish)=-zn1(i)
746 nod_normal(1,2,ish)=-xn1(i)
747 nod_normal(2,2,ish)=-yn1(i)
748 nod_normal(3,2,ish)=-zn1(i)
754 IF(sol_edge /= 0)
THEN
760 IF(tage(irm)==1) cycle
769 fskyt(1,iad) = xn4(i)+xn1(i)
770 fskyt(2,iad) = yn4(i)+yn1(i)
774 fskyt(1,iad) = xn1(i)+xn2(i)
775 fskyt(2,iad) = yn1(i)+yn2(i)
776 fskyt(3,iad) = zn1(i)+zn2(i)
779 fskyt(1,iad) = xn2(i)+xn3(i)
780 fskyt(2,iad) = yn2(i)+yn3(i)
781 fskyt(3,iad) = zn2(i)+zn3(i)
784 fskyt(1,iad) = xn3(i)+xn4(i)
785 fskyt(2,iad) = yn3(i)+yn4(i)
786 fskyt(3,iad) = zn3(i)+zn4(i)
789 fskyt(1,iad) = xn1(i)
790 fskyt(2,iad) = yn1(i)
791 fskyt(3,iad) = zn1(i)
794 fskyt(1,iad) = xn1(i)
795 fskyt(2,iad) = yn1(i)
796 fskyt(3,iad) = zn1(i)
799 fskyt(1,iad) = xn1(i)
800 fskyt(2,iad) = yn1(i)
801 fskyt(3,iad) = zn1(i)
811 nrtmft= 1+(jtask-1)*nrtm/ nthread
812 nrtmlt= jtask*nrtm/nthread
814 nadmsrft= 1+(jtask-1)*nadmsr/ nthread
815 nadmsrlt= jtask*nadmsr/nthread
817 lbound(nadmsrft:nadmsrlt)=0
825 irm = free_irect_id(i)
826 IF(stifm(irm) <= zero)cycle
828 IF(mvoisin(iedg,irm)==0)
THEN
829 IF(.NOT.(irect(3,irm)==irect(4,irm).AND.iedg==3))
THEN
830 nb_free_bound = nb_free_bound + 1
831 free_bound(1,nb_free_bound) = irm
832 free_bound(2,nb_free_bound) = iedg
836 is2=admsr(mod(iedg,4)+1,irm)
838 vx=nod_normal(1,iedg,irm)
839 vy=nod_normal(2,iedg,irm)
840 vz=nod_normal(3,iedg,irm)
842 IF(vx == 0 .AND. vy == 0 .AND. vz == 0)
THEN
844 free_bound(3,nb_free_bound) = 3
845 free_bound(4,nb_free_bound) = 3
847 lbound(is1) = lbound(is1) + 1
848 lbound(is2) = lbound(is2) + 1
849 free_bound(3,nb_free_bound) = lbound(is1)
850 free_bound(4,nb_free_bound) = lbound(is2)
853 IF(lbound(is1) > 2 .OR. lbound(is2) > 2)
THEN
866 irm = free_bound(1,i)
867 iedg = free_bound(2,i)
869 IF(lbound(is1) > 2)
THEN
871 vtx_bisector(1,1,is1) = rzero
872 vtx_bisector(2,1,is1) = rzero
873 vtx_bisector(3,1,is1) = rzero
874 vtx_bisector(1,2,is1) = rzero
875 vtx_bisector(2,2,is1) = rzero
876 vtx_bisector(3,2,is1) = rzero
879 is2=admsr(mod(iedg,4)+1,irm)
880 IF(lbound(is2) > 2)
THEN
882 vtx_bisector(1,1,is2) = rzero
883 vtx_bisector(2,1,is2) = rzero
884 vtx_bisector(3,1,is2) = rzero
885 vtx_bisector(1,2,is2) = rzero
886 vtx_bisector(2,2,is2) = rzero
887 vtx_bisector(3,2,is2) = rzero
898 nrtmft= 1+(jtask-1)*nb_free_bound/nthread
899 nrtmlt= jtask*nb_free_bound/nthread
900#include "vectorize.inc"
902 irm = free_bound(1,i)
903 iedg = free_bound(2,i)
904 nx=nod_normal(1,iedg,irm)
905 ny=nod_normal(2,iedg,irm)
906 nz=nod_normal(3,iedg,irm)
909 i2=irect(mod(iedg,4)+1,irm)
919 aaa=run/
max(rem30,sqrt(vx*vx+vy*vy+vz*vz))
924 nod_normal(1,iedg,irm)=vx
925 nod_normal(2,iedg,irm)=vy
926 nod_normal(3,iedg,irm)=vz
932#include "vectorize.inc"
934 irm = free_bound(1,i)
935 iedg = free_bound(2,i)
939 vx=nod_normal(1,iedg,irm)
940 vy=nod_normal(2,iedg,irm)
941 vz=nod_normal(3,iedg,irm)
945 vtx_bisector(1,i1,is1)=vx
946 vtx_bisector(2,i1,is1)=vy
947 vtx_bisector(3,i1,is1)=vz
950 is2=admsr(mod(iedg,4)+1,irm)
952 vtx_bisector(1,i2,is2)=vx
953 vtx_bisector(2,i2,is2)=vy
954 vtx_bisector(3,i2,is2)=vz
965 1 ni25,iad_fredg,fr_edg , nod_normal,wnod_normal,
SIZE ,nadmsr,
966 2 buffers%RECV_RQ ,buffers%SEND_RQ,buffers%IRINDEX,buffers%ISINDEX,buffers%IAD_RECV,
967 3 buffers%NBIRECV,buffers%NBISEND,buffers%RECV_BUF ,buffers%SEND_BUF ,vtx_bisector,
968 4 lbound,iad_frnor,fr_nor,1,fskyn25 ,ishift,addcsrect, procnor,sol_edge)
973 ELSE IF(flag == 2)
THEN
978 nrtmft= 1+(jtask-1)*nrtm/ nthread
979 nrtmlt= jtask*nrtm/nthread
980 DO n=nrtmft,nrtmlt,mvsiz
982 llt=
min(nrtmlt-n+1,mvsiz)
984#include "vectorize.inc"
990 IF(actnor(irm)==3)
THEN
991 wnod_normal(1:3,1:4,irm) = rzero
995 IF(actnor(irm)==0)
THEN
1002 IF(stifm(irm) <= 0)
THEN
1003 wnod_normal(1:3,1:4,irm) = rzero
1010 wnod_normal(1,j,irm) = nod_normal(1,jedg,jrm
1011 wnod_normal(2,j,irm) = nod_normal(2,jedg,jrm)
1012 wnod_normal(3,j,irm) = nod_normal(3,jedg,jrm)
1019 wnod_normal(1,j,irm) = rzero
1020 wnod_normal(2,j,irm) = rzero
1021 wnod_normal(3,j,irm) = rzero
1033 1 ni25,iad_fredg,fr_edg , nod_normal,wnod_normal,
SIZE , nadmsr,
1034 2 buffers%RECV_RQ ,buffers%SEND_RQ,buffers%IRINDEX,buffers%ISINDEX,buffers%IAD_RECV
1035 3 buffers%NBIRECV,buffers%NBISEND,buffers%RECV_BUF
1036 4 lbound,iad_frnor,fr_nor,2,fskyn25 ,ishift,addcsrect, procnor,sol_edge)
1037 WHERE (lbound(1:nadmsr) > 1)
1038 lbound(1:nadmsr) = 1
1045 DO irm=nrtmft,nrtmlt
1054 IF(actnor(irm)==0) cycle
1056 IF(stifm(irm) <= zero)
THEN
1057 nod_normal(1:3,1:4,irm) = rzero
1063 IF(jrm<0 .AND. stifm(irm) <= 0 )
THEN
1064 nod_normal(1,j,irm) = wnod_normal(1,j,irm)
1065 nod_normal(2,j,irm) = wnod_normal(2,j,irm)
1066 nod_normal(3,j,irm) = wnod_normal(3,j,irm)
1074 nx=nod_normal(1,j,irm)+wnod_normal(1,j,irm)
1075 ny=nod_normal(2,j,irm)+wnod_normal(2,j,irm)
1076 nz=nod_normal(3,j,irm)+wnod_normal(3,j,irm)
1077 aaa=run/
max(rem30,sqrt(nx*nx+ny*ny+nz*nz))
1078 nod_normal(1,j,irm)=nx*aaa
1079 nod_normal(2,j,irm)=ny*aaa
1080 nod_normal(3,j,irm)=nz*aaa