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-listReceived 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