mult_interface_seg.f

Go to the documentation of this file.
00001 C:\opentelemac\v7p0\sources\utils\bief\mult_interface_seg.f
00002 !
00047                      SUBROUTINE MULT_INTERFACE_SEG
00048 !                    *****************************
00049 !
00050      &(FSEG,NH_COM_SEG,DIM1NHCOM,NB_NEIGHB_SEG,
00051      & NB_NEIGHB_PT_SEG,XMUL,NSEG)
00052 !
00053 !***********************************************************************
00054 ! BIEF   V6P1                                   21/08/2010
00055 !***********************************************************************
00056 !
00057 !
00058 !
00059 !
00060 !
00061 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00062 !| DIM1NHCOM       |-->| FIRST DIMENSION OF NH_COM_SEG
00063 !| FSEG            |<->| THE FUNCTION DEFINED ON SEGMENTS
00064 !| NB_NEIGHB_PT_SEG|-->| NUMBER OF SEGMENTS SHARED WITH A NEIGHBOUR
00065 !|                 |   | PROCESSOR
00066 !| NB_NEIGHB_SEG   |-->| NUMBER OF NEIGHBOUR PROCESSORS (FOR SEGMENTS)
00067 !| NH_COM_SEG      |-->| ADDRESSES OF INTERFACE SEGMENTS
00068 !| NSEG            |-->| NUMBER OF SEGMENTS
00069 !| XMUL            |-->| THE CONSTANT
00070 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00071 !
00072       IMPLICIT NONE
00073       INTEGER LNG,LU
00074       COMMON/INFO/LNG,LU
00075 !
00076 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00077 !
00078       INTEGER, INTENT(IN)    :: DIM1NHCOM,NB_NEIGHB_SEG,NSEG
00079       INTEGER, INTENT(INOUT) :: NH_COM_SEG(DIM1NHCOM,NB_NEIGHB_SEG)
00080       INTEGER, INTENT(IN)    :: NB_NEIGHB_PT_SEG(NB_NEIGHB_SEG)
00081       DOUBLE PRECISION, INTENT(INOUT) :: FSEG(NSEG)
00082       DOUBLE PRECISION, INTENT(IN)    :: XMUL
00083 !
00084 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
00085 !
00086       INTEGER ISEG,IPROC,IKA,IADSEG
00087 !
00088 !-----------------------------------------------------------------------
00089 !
00090 !     DONE ONLY IF THERE IS AT LEAST ONE OTHER SUB-DOMAIN SHARING
00091 !     A SEGMENT WITH THIS ONE
00092 !
00093       IF(NB_NEIGHB_SEG.GT.0) THEN
00094 !
00095 !     LOOP ON ALL NEIGHBOURING SUB-DOMAINS
00096 !
00097       DO IPROC=1,NB_NEIGHB_SEG
00098 !
00099         IKA = NB_NEIGHB_PT_SEG(IPROC)
00100 !
00101 !       LOOP ON ALL SEGMENTS SHARED WITH THIS SUB-DOMAIN
00102 !       WHICH CANNOT BE SHARED WITH ANOTHER SUB-DOMAIN (UNLIKE POINTS)
00103 !
00104         DO ISEG=1,IKA
00105 !         ADDRESS IN SEGMENT NUMBERING
00106           IADSEG=NH_COM_SEG(ISEG,IPROC)
00107           FSEG(IADSEG)=FSEG(IADSEG)*XMUL
00108         ENDDO
00109 !
00110       ENDDO
00111 !
00112       ENDIF
00113 !
00114 !-----------------------------------------------------------------------
00115 !
00116       RETURN
00117       END

Generated on Fri Aug 31 2013 18:12:58 by S.E.Bourban (HRW) using doxygen 1.7.0