The TELEMAC-MASCARET system  trunk
sd_strsg4.f
Go to the documentation of this file.
1 ! ********************
2  SUBROUTINE sd_strsg4
3 ! ********************
4 !
5  &(npoin,nseg,glosegb,nsegblk,gloseg4)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief TRANSFORMS THE SEGMENTS OF A 4-MATRIX SYSTEM INTO
12 ! THE SEGMENTS OF A SINGLE BLOCK.
13 !
14 !history E. RAZAFINDRAKOTO (LNH)
15 !+ 20/11/06
16 !+ V5P7
17 !+
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 !| GLOSEG4 |<--| FIRST AND SECOND POINT OF SEGMENTS IN BLOCK
33 !| GLOSEGB |-->| FIRST AND SECOND POINT OF SEGMENTS
34 !| NPOIN |-->| NUMBER OF POINTS
35 !| NSEG |-->| NUMBER OF SEGMENTS
36 !| NSEGBLK |-->| NUMBER OF SEGMENTS IN THE FINAL BLOCK
37 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 !
39  USE bief, ex_sd_strsg4 => sd_strsg4
40 !
42  IMPLICIT NONE
43 !
44 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
45 !
46  INTEGER, INTENT(IN) :: NSEGBLK,NSEG,NPOIN
47  INTEGER, INTENT(IN) :: GLOSEGB(nseg,2)
48  INTEGER, INTENT(INOUT) :: GLOSEG4(2*nsegblk)
49 !
50 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 !
52  INTEGER I,ISEG,JSEG
53 !
54 !----------------------------------------------
55 ! INFO : NSEGBLK=NSEG*4 + NPOIN !!!!
56 !----------------------------------------------
57 !
58 ! MATRIX ASSEMBLES TOTAL BLOCKS:
59 !
60 !----------------------------------------------
61 !
62  jseg=0
63 !
64 ! BLOCK 1 (EXTRA-DIAGONAL TERMS)
65 ! ------------------------------
66 !
67  DO iseg=1,nseg
68  jseg=jseg+1
69  gloseg4(jseg)= glosegb(iseg,1)
70  gloseg4(jseg+nsegblk)= glosegb(iseg,2)
71  ENDDO
72 !
73 ! BLOCKS 2 AND 3 (PREVIOUSLY DIAGONAL TERMS)
74 ! ------------------------------------------
75 !
76  DO i=1,npoin
77  jseg=jseg+1
78  gloseg4(jseg)= i
79  gloseg4(jseg+nsegblk)= i+npoin
80  ENDDO
81 !
82 ! BLOCKS 2 AND 3 (EXTRA-DIAGONAL TERMS)
83 ! -------------------------------------
84 !
85  DO iseg=1,nseg
86  jseg=jseg+1
87  gloseg4(jseg)= glosegb(iseg,1)
88  gloseg4(jseg+nsegblk)= glosegb(iseg,2)+ npoin
89  jseg=jseg+1
90  gloseg4(jseg)= glosegb(iseg,2)
91  gloseg4(jseg+nsegblk)= glosegb(iseg,1)+ npoin
92  ENDDO
93 !
94 ! BLOCK 4 (EXTRA-DIAGONAL TERMS)
95 ! ------------------------------
96 !
97  DO iseg=1,nseg
98  jseg=jseg+1
99  gloseg4(jseg) = glosegb(iseg,1)+npoin
100  gloseg4(jseg+nsegblk) = glosegb(iseg,2)+npoin
101  ENDDO
102 !
103 !-----------------------------------------------------------------------
104 !
105  RETURN
106  END
subroutine sd_strsg4(NPOIN, NSEG, GLOSEGB, NSEGBLK, GLOSEG4)
Definition: sd_strsg4.f:7
Definition: bief.f:3