NEC-LIST: Over 10,000 wires, NEC4.1

From: Slauson William <slauson_william_at_email.domain.hidden>
Date: Mon, 04 Oct 2004 15:32:53 -0500

When using NEC4.1 with over 10,000 segments, one gets a
diagnostic from subroutine JNFIND about multiple wire junctions at a
patch (90 FORMAT). Please comment on my diagnosis following:
  There are no identifying tags for patches in input data (stored
in ITAG for wires). Wires can be connected to the center of patches.
Wire connection data is stored in ICON1 and ICON2, which give segment
numbers of wires or patches attached to the 2 ends. Wire segments are
numbered sequentially as read in. Patches connected to wires are given
segment numbers above 10000 in ICON1 and ICON2 to distinguish them from
wires (subroutine CONECT); therefore, 10000 must be changed to a value
greater than the maximum number of wire segments and patches MAXSEG (in
subroutines CONECT, EKSCSZ, JNFIND, CMSW). The 10000's appearing in
subroutines PATCH and CQRSL do not appear to be connected segment
numbers.
==============
      SUBROUTINE CONECT (IGND,ICHK)
      IF (I.LT.N2.AND.ICON1(I).GT.10000) GO TO 8
      IF (I.LT.N2.AND.ICON2(I).GT.10000) GO TO 15
C CONNECTION - DIVIDE PATCH INTO 4 PATCHES AT PRESENT ARRAY LOC.
      ICON1(ISEG)=10000+I
      ICON2(ISEG)=10000+I
      IF (IX.GT.10000) GO TO 43
      IF (IX.LT.10000) GO TO 45
      IX=IX-10000
      IF (IX.LT.10000) GO TO 47
      IX=IX-10000
==============
      SUBROUTINE PATCH (NX,NY,X1,Y1,Z1,X2,Y2,Z2,X3,Y3,Z3,X4,Y4,Z4)
May not be tag:
      IF (NY.GT.0) Z(MI)=10000.
==============
      SUBROUTINE EKSCSZ(RH,ZP,SLEN,ARAD,ZPEDS,XK,ETA,XKS,EZK,EZS,EZCM,
     &ERK,ERS,ERC,IND1,IND2)
C IF A SEGMENT CONNECTS TO A MFIE PATCH OR FORMS A JUNCTION CROSSING
C THE AIR-GROUND INTERFACE THE FIELD DUE TO THE POINT CHARGE ON THE
C CONNECTED END IS ADDED BY SUBROUTINE EKSCPQ
      IF(IND1.GT.10000)CALL EKSCPQ(-SHALF,ZP,RHOA,XK,ETA,XKS,EZK,EZS,
     &EZCM,ERK,ERS,ERC)
      IF(IND2.GT.10000)CALL EKSCPQ(SHALF,ZP,RHOA,XK,ETA,XKS,EZK,EZS,
     &EZCM,ERK,ERS,ERC)
==============
      SUBROUTINE JNFIND(JXSEG,JXEND,ICHEK,JNCSEG,JNCEND,JNCNO,IRADX,
     &IGNDX,IGNDC,IPATC)
      IF(JSEG.EQ.JXSEG)THEN
         IF(JNCNO.EQ.0)IGNDC=1
         GO TO 2
      ELSE IF(JSEG.EQ.0)THEN
         GO TO 2
C SEGMENT CONNECTION TO A SURFACE PATCH
      ELSE IF(JSEG.GT.10000)THEN
         IF(JNCNO.GT.0)THEN
            WRITE(3,90)JXEND,JXSEG
            STOP
         END IF
         IPATC=1
         GO TO 2
      END IF
==============
      SUBROUTINE CMSW (J1,J2,I1,I2,CM,CW,NCW,NROW,ITRP)
      IF (ICON1(I).GT.10000)THEN
         IPCH=ICON1(I)-10000
         FSIGN=-1.
      END IF
      IF (ICON2(I).GT.10000)THEN
         IPCH=ICON2(I)-10000
         FSIGN=1.
      END IF
      IF (IPCH.GT.10000)THEN
         IPCH=IPCH-10000
         FSIGN=-1.
      ELSE
         IPCH=ICON2(J1)
         IF (IPCH.LT.10000)RETURN
         IPCH=IPCH-10000
         FSIGN=1.
      END IF
==============
      SUBROUTINE CQRSL (X,LDX,N,K,QRAUX,Y,QY,QTY,B,RSD,XB,JOB,INFO)
C DETERMINE WHAT IS TO BE COMPUTED.
Probably not a patch tag.
      CQY=JOB/10000.NE.0
      CQTY=MOD(JOB,10000).NE.0

-- 
The NEC-List mailing list
NEC-List_at_robomod.net
http://www.robomod.net/mailman/listinfo/nec-list
Received on Mon Oct 04 2004 - 20:33:22 EDT

This archive was generated by hypermail 2.2.0 : Sat Oct 02 2010 - 00:10:44 EDT