@CAT,P 1035-001-001.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1035-001-001,,,130366053241,000 )@@G@@**PF**@@@A8\@@@@@@@@@@@[@=,@@@]FE^\6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@N@@#G@@@]F^@@@@@@@P@@D0@@@]F^ /6@@C@@@@@@@#X@@@@W@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1@@@@@@@@@@@B@@@@@@@[D@@@@@@@@@@@@@@I@@@AC )@@G@@@@@@@3@@@@@@@@@@@@@@@@@@@[=@@4@@\@[]@@@@@@@@@@@@@@@@@(@@'@[X@@@@@@@@@@@@AD )@@G@@@@@@@S@@K@@@@@A@@-@@)@@@@@@@@W@@@@@@@@@@@@@@2@@@@@@@@P@@@@@@@@@@@@@@G@@@AE )@@G@@@@Y@@@@@@@@@@@H@@@@[G@[Y@@@@@@@@@@@@@@@@@:@@@@@@@@@@@@@@@@@@@@@@@@@@@@#WAF )@@G@@@@@@@@@@@@@@@@@@@@@@_@@@@@@@@@@@@@@T@@@@[V@[+@@@@@@@@@@@J@[E@[*@@U@@@@@@AG )@@G@@@@@@@M@@@@[%@@@@@@@@@@@@@@ @@O@@@@[T@[$@[H@@?@@@@@@@@@@@@@@@@@@@@<@@E@@@AH )@@G@@@@@@[S@@@@@@@@@@@@@@R@@@@@@@@@@@;@@@@@8@@@@@@@@@@@@@@@@@Q@@@@@D@@@@@@@@@AI )@@G@@@@@@@0@[^@@@@@C@@@@[U@@@@[R@@@@@@@@@@@@@@=@@@@@@@@@@@F@@@@@@@@@@@.@@@@[MAJ )@@G@@@@@@@@@@V@@@@@#@[-@@@@@@@@@@@@@@/@@@@[K@@+@[@@@@@@9@@@@[O@[:@[#@@@@@@@@@AK )@@G@@@@@@@@@[W@@@@[Q@@@@@Z@@N@@[@@$@@@@@@@@@@@@@[L@@@@@@@@@@@7@@@@@@@[?@@X@@@AL )@@G@@@@@@@,@@L@@@@[C@[<@[B@@]@@@@@5@@>@@@@@@@@@@[0@@@@@@@@@@@*@@@@@@@@@@[F@@@AM )@@G@@@@@@@@@@@@@@@@@@@"@@&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[&@@@@@@@#U@[ @@E@#XAN )@@G@@ALFNUM @@@@@@@@[@[' @ @@@[[@@@@H@@@@W@G][AAICODEXC AO )@@G@@@@@@@@@@[@]; @ @@@[[@@@@]@@@@WHG].AAIPNJLIM @@@@@^@@[@]0AP )@@G@@ @ @@@[[@@@@B@@@@WJG/[AAIGETCJE @@@@@@@@[@]] AQ )@@G@@@ @@@[[@@@@[@@@@WQD(IAOIEVTERM @@@@@@@@[@]! @ @]@#^@@@@DAR )@@G@@@@@@WRD*ZCNIFETLIM @@@@@@@@[@]3 @ @[@][@@@@K@@@@W)B5;CTIAS )@@G@@MISCEL @@@@@@@@[@@@ @ @@@[[@@@@[@@@@W0GX/CTIDMPMEM AT )@@G@@@@@@@@@@[@[4 @ @[@][@@@@F@@@@W1A% CUIMEMORY @@@@@@@@[@[/AU )@@G@@ @ @]@#[@@@@E@@@@W/A.,CUIDCSOL @@@@@@@@[@[" AV )@@G@@@ @#@^^@@@@<@@@@XAB[LCUINXTCHR @@@@@@@@[@]G @ @B@ [@@@@EAW )@@G@@@@@@X(B(MCUILNKREF @@@@@@@@[@]Q @ @#@^[@@@@&@@@@X3B7"CUIAX )@@G@@SUBNAM @@@@@@@@[@]R @ @]@#[@@@@O@@@@YTB9TCUIRESERV AY )@@G@@@@@@@!@@[@]X @ @]@#[@@@@M@@@@Y!CA CUIINDEX @@@@@@@@[@])AZ )@@G@@ @ @#@^^@@@@O@@@@Y_CE)CUICOMCOF @@@@@@@@[@]= BA )@@G@@@ @#@^[@@@@X@@@@ZNCI:CUITRUNC @@@@@@@@[@]> @ @^@ ^@@@@WBB )@@G@@@@@@Z0CKJCUITERR @@@@@@@@[@]& @ @#@^^@@@@U@@@@)GCL4CUIBC )@@G@@INTGR8 @@@@@@@@[@]\ @ @]@#[@@@@S@@@@)&CZKCUIJFET BD )@@G@@@@@@@@@@[@]4 @ @^@ ^@@@[&@@@@)"C<"CUIASOL @@@@@@@@[@]_BE )@@G@@ @ @^@ ^@@@@Q@@@@+=C6DCUIACDCMP @@@@@@@@[@#A BF )@@G@@@ @#@^[@@@@U@@@@+'D]CCUIACSOL @@@@[Z@@[@#B @ @^@ ^@@@@PBG )@@G@@@@@@^D*ICUIFOURAN @@@@@@@@[@#M BK )@@G@@@ @#@^[@@@@%@@@@>=D!9CUIMATVAL @@@@@@@@[@[6 @ @^@ [@@@>UBL )@@G@@@@@@&I^"MCWIMAGPHS @@@@@@@@[@[8 @ @^@ [@@@@B@@@[F*^"3CWIBM )@@G@@CARD @@@@@6@@[@]E @ @C@ ^@@@[T@@@[F\A['CWINEWNOD BN )@@G@@@@@@@@@@[@]N @ @ @ [@@@@M@@@[HCAGXCWICPYTAB @@@@@@@@[@]PBO )@@G@@ @ @#@^[@@@@D@@@[HUA6=CWISETUP @@@@#O@@[@]V BP )@@G@@@ @A@ ^@@@@>@@@[HCWIDIODE @@@@@@@@[@]1BT )@@G@@ @ @ @ ^@@@@/@@@[K?HUVCWISENCAL @@@@@%@@[@]" BU )@@G@@@ @ @ [@@@[?@@@[L*H(ICWIGETNOD @@@@@@@@[@]K @ @^@ [@@@@OBV )@@G@@@@@[NO /3CXIMEMPTR @@@@#Q@@[@[3 @ @#@^[@@@@M@@@[N*E .CXIBW )@@G@@COPY @@@@@@@@[@]@ @ @I@ ^@@@@O@@@[N'GCVCYIADDELT BX )@@G@@@@@@@@@@[@]O @ @A@ [@@@@)@@@[OIE_\CZIELPRNT @@@@@@@@[@]SBY )@@G@@ @ @^@ [@@@]@@@@[O,F[WCZINOISE @@@@[A@@[@#D BZ )@@G@@@ @ @ ^@@@[/@@@[Q,FS@CZIDINIT @@@@[!@@[@#F @ @ @ ^@@@@;CA )@@G@@@@@[S%FT^CZIDISTO @@@@@@@@[@#G @ @ @ ^@@@]*@@@[T>FU@CZICB )@@G@@SCALE @@@@@@@@[@#L @ @B@ ^@@@@P@@@[WHF1+D[IFIND CC )@@G@@@@@@[I@@[@[; @ @A@ ^@@@@\@@@[W+DM4D]IEXPEQN @@@@@@@@[@]9CD )@@G@@ @ @#@^[@@@ZI@@@[XLF#6D IMOSEQ1 @@@@@@@@[@]6 CE )@@G@@@ @^@ [@@@ZK@@@[/ZF 6D IMCORE @[J@[[@@[@]# @ @[@]N@@@@^CF )@@G@@@@@]V\KP2D IPZAN @@@@[)@@[@#[ @ @^@ [@@@ZK@@@]V3CX-DAICG )@@G@@MATPTR @@@@[>@@[@]W @ @ @ [@@@[_@@@];#IADDAIMATLOC CH )@@G@@@@@@@@@@[@]Z @ @B@ [@@@[>@@@].]IB1DAIEVPOLY @@@@@@@@[@]?CI )@@G@@ @ @^@ [@@@@V@@@]"$IDMDAICODGEN @@@@@@@@[@]- CJ )@@G@@@ @]@#[@@@@%@@@]_] 9ODBIMULLER @@@@[N@@[@#] @ @B@ [@@@@,CK )@@G@@@@@]_?DU$DBIPZADJ @@@@@@@@[@## @ @B@ [@@@[W@@@#@UDV0DBICL )@@G@@CALDET @@@@[(@@[@#^ @ @^@ [@@@ZK@@@#[6DW?DBIPZLOAD CM )@@G@@@@@@@@@@[@# @ @#@^[@@@ZN@@@#-ADX1DBITITLE @@@@#R@@[@[1CN )@@G@@ @ @B@ ^@@@@O@@@^@TE+LDCIDCOP @@@@@@@@[@]/ CO )@@G@@@ @B@ ^@@@[/@@@^@!E/"DGISSTF @@@@@@@@[@]. @ @ @ ^@@@@,CP )@@G@@@@@^](F@&DGIMOSEQ2 @@@@@@@@[@]7 @ @ @ [@@@[^@@@^#RC*'DIICQ )@@G@@ELMNSY @@@@@@@@[@]8 @ @^@ [@@@ZY@@@^^VC%*DIIMOSCAP CR )@@G@@@@@@@@@@[@]' @ @ @ [@@@@6@@@^<9C?JDIIBJT @@@@@@@@[@]2CS )@@G@@ @ @D@ ^@@@[>@@@^=\B%*DJISORUPD @@@@@@@@[@]$ CT )@@G@@@ @A@ [@@@@2@@@^&OF8%DJIMOSFET @@@@@@@@[@]5 @ @A@ [@@@]RCU )@@G@@@@@^$A +S]UJMODCHK @@@@@@@@[@]T @ @H@ [@@@]Y@@@^(XD3Q^UJCV )@@G@@PLOT @@@@@@@@[@#K @ @G@ ^@@@@0@@@^:;I0K [JUPDATE CW )@@G@@@@@@@@@@[@]: @ @^@ [@@@@O@@@^?:HD0 DJRAND @@@@@@@@[@#NCX )@@G@@ @ @@@[[@@@@#@@@^?_ "CBTJUSERS-GUIDE @@@@@@@@[@@@ CY )@@G@@@ @]@#[@@@@]@@@^!]CO)CCJLOAD @@@@@@@@[@]( @ @G@ ^@@@[NCZ )@@G@@@@@^!^GIXCEJITER8 @@@@[,@@[@]* @ @F@ ^@@@@Q@@@^,RGL%CEJDA )@@G@@MCORE @@@@@@@@[@@@ASC @ @^@ [@@@@D@@@^,!GGMEXJCOMPRS DB )@@G@@@@@@@@@@[@[2 @ @^@ [@@@@W@@@^,6A8PFGJDMPMAT @@@@@@@@[@[5DC )@@G@@ @ @B@ [@@@@G@@@^\MA9DFGJOUTNAM @@@@@@@@[@[9 DD )@@G@@@ @^@ [@@@@Y@@@^\YA'^FGJDCDCMP @@@@@@@@[@[. @ @^@ [@@@@TDE )@@G@@@@@^\/A'7FGJMOVE @@@@@@@@[@[_ @ @H@ ^@@@@^@@@^0PA;UFGJDF )@@G@@ZERO @@@@@@@@[@][ @ @B@ ^@@@@H@@@^0TA/HFGJKEYSRC DG )@@G@@@@@@@@@@[@]A @ @#@^[@@@@O@@@^0&B^VFGJEXTNAM @@@@@@@@[@]BDH )@@G@@ @ @#@^[@@@@I@@@^0'B "FGJGETLIN @@@@@@@@[@]F DI )@@G@@@ @B@ [@@@@B@@@^1CBE+FGJERRCHK @@@@@@@@[@]H @ @B@ [@@@]-DJ )@@G@@@@@^1JBPXFGJSHLSRT @@@@@@@@[@]I @ @]@#[@@@@H@@@^30BRHFGJDK )@@G@@PUTNOD @@@@@@@@[@]J @ @#@^[@@@@K@@@^3.BR!FGJSUBCKT DL )@@G@@@@@@@@@@[@]L @ @D@ [@@@@T@@@^4HBTZFGJFNDNAM @@@@@@@@[@]MDM )@@G@@ @ @ @ [@@@@Q@@@^4&BU]FGJTOPCHK @@@@@@@@[@]U DN )@@G@@@ @ @ [@@@[@@@@^4/F@XFOJTMPUPD @@@@@@@@[@[7 @ @B@ [@@@[ DO )@@G@@@@@^5/CT$[WKOUTDEF @@@@@@@@[@]D @ @A@ [@@@@+@@@^7[F\J]CKDP )@@G@@READIN @@@@[\@@[@] @ @O@ ^@@@#U@@@^7 QM]OKDCTRANC @@@@@@@@[@@@ @ @C@ [@@@@I@@@ J: Q"]OKDZ )@@G@@DCOPC @@@@@@@@[@@@ @ @B@ [@@@@#@@@ J9 RV]OKACANC EA )@@G@@@@@@@@@@[@@@ @ @B@ [@@@@E@@@ J/ R_]OKOVTPVTC @@@@@@@@[@@@EB )@@G@@ @ @B@ [@@@@A@@@ KA SS]OKCOMMON @@@@@@@@^@@@ EC )@@G@@@ @@@[[@@@@Q@@@ KGAA*]OKTITLE @@@@@@@] @@@ @@@ K\@@]@@HED )@@G@@@@@ K+AJ%]OKCOMPRS @@@@@@@] @@@ @@@ K.@@]@@G@@@ K1AJ7]OKEE )@@G@@MEMPTR @@@@@@@] @@@ @@@ L#@@]@@^@@@ K_AJ9]OKDMPMEM EF )@@G@@@@@@@@@] @@@ @@@ LI@@]@@D@@@ L AJ']OKDMPMAT @@@@@@@] @@@EG )@@G@@ @@@ LX@@#@@H@@@ LKAJ.]OKMATVAL @@@@@@@] @@@ EH )@@G@@@@@ L(@@]@@D@@@ L)AK#]OKTMPUPD @@@@@@@] @@@ @@@ MZ@@#@@4EI )@@G@@@@@ L:AKW]OKMAGPHS @@@@@@@] @@@ @@@ M&@@]@@^@@@ M+AKY]OKEJ )@@G@@OUTNAM @@@@@@@] @@@ @@@ M_@@]@@R@@@ M*AK<]OKALFNUM EK )@@G@@@@@@@@@] @@@ @@@ NF@@]@@E@@@ N[AK>]OKFIND @@@@@@@] @@@EL )@@G@@ @@@ N-@@#@@O@@@ NHAK%]OKMEMORY @@@@@@@] @@@ EM )@@G@@@@@ N&@@]@@]@@@ N=AK,]OKDCDCMP @@@@@@@] @@@ @@@ N3@@]@@FEN )@@G@@@@@ N*AK1]OKDCSOL @@@@@@@] @@@ @@@ N"@@]@@D@@@ N5AK5]OKEO )@@G@@MOVE @@@@@@@] @@@ @@@ O^@@]@@^@@@ O@AK7]OKCOPY EP )@@G@@@@@@@@@] @@@ @@@ OM@@]@@G@@@ OAAK9]OKZERO @@@@@@@] @@@EQ )@@G@@ @@@ OT@@]@@ @@@ OOAK']OKGETCJE @@@@@@@] @@@ ER )@@G@@@@@ OW@@]@@[@@@ OVAK;]OKMCORE @]^@@@@] @@@ASC @@@ O&@@]@@CES )@@G@@@@@ OYAK_]OKMCORE @@@@@@@@ @@@ @@@ O(@@[@@[@@@ O*AL@]OKET )@@G@@READIN @@@@@@@] @@@ @@@ R=@@ @]'@@@ O%AL0]OKKEYSRC EU )@@G@@@@@@@@@] @@@ @@@ R?@@]@@#@@@ R(AL9]OKEXTNAM @@@@@@@] @@@EV )@@G@@ @@@ R3@@]@@ @@@ R,AL.]OKRUNCON @@@@@@@] @@@ EW )@@G@@@@@ U@@@^@]F@@@ R5AM,]OKOUTDEF @@@@@@@] @@@ @@@ UU@@]@@QEX )@@G@@@@@ U^AM2]OKCARD @@@@@@@] @@@ @@@ VH@@#@@1@@@ UWAM']OKEY )@@G@@GETLIN @@@@@@@] @@@ @@@ VN@@]@@#@@@ VKAM_]OKNXTCHR EZ )@@G@@@@@@@@@] @@@ @@@ VT@@]@@^@@@ VPAN^]OKERRCHK @@@@@@@] @@@FA )@@G@@ @@@ XA@@ @[:@@@ VVAOB]OKSHLSRT @@@@@@@] @@@ FB )@@G@@@@@ XK@@]@@ @@@ XFAOC]OKPUTNOD @@@@@@@] @@@ @@@ XS@@]@@AFC )@@G@@@@@ XMAOF]OKGETNOD @@@@@@@] @@@ @@@ XZ@@]@@ @@@ XUAOI]OKFD )@@G@@SUBCKT @@@@@@@] @@@ @@@ X2@@#@@L@@@ X-AOM]OKFNDNAM FE )@@G@@@@@@@@@] @@@ @@@ X.@@]@@C@@@ X5AOP]OKNEWNOD @@@@@@@] @@@FF )@@G@@ @@@ YB@@]@@C@@@ X_AOS]OKADDELT @@@@@@@] @@@ FG )@@G@@@@@ Y*@@#@@Z@@@ YDAO+]OKCPYTAB @@@@@@@] @@@ @@@ Y\@@]@@^FH )@@G@@@@@ Y:AO=]OKLNKREF @@@@@@@] @@@ @@@ Z]@@]@@L@@@ Y1AO$]OKFI )@@G@@SUBNAM @@@@@@@] @@@ @@@ ZH@@]@@D@@@ Z^AO(]OKELPRNT FJ )@@G@@@@@@@@@] @@@ @@@ ).@@#@[,@@@ ZJAO']OKMODCHK @@@@@@@] @@@FK )@@G@@ @@@ @@@ &LAQ]]OKMATLOC @@@@@@@] @@@FP )@@G@@ @@@ *Z@@]@[&@@@ &9AQM]OKINDEX @@@@@@@] @@@ FQ )@@G@@@@@ *$@@]@@A@@@ *-AQQ]OKCODGEN @@@@@@@] @@@ @@@ ([@@#@@SFR )@@G@@@@@ *(AQ)]OKMINS @@@@@@@] @@@ @@@ (B@@#@@#@@@ (^AQ-]OKFS )@@G@@DCTRAN @@@@@@@] @@@ @@@ :^@@ @['@@@ (EASY]OKCOMCOF FT )@@G@@@@@@@@@] @@@ @@@ :T@@]@@K@@@ :DAS<]OKTRUNC @@@@@@@] @@@FU )@@G@@ @@@ :0@@#@@P@@@ :VAS:]OKTERR @@@@@@@] @@@ FV )@@G@@@@@ ?@@@]@@H@@@ :3AS,]OKSORUPD @@@@@@@] @@@ @@@ ?+@@#@@)FW )@@G@@@@@ ?]AS6]OKITER8 @@@@@@@] @@@ @@@ ?1@@#@@G@@@ ?>AS;]OKFX )@@G@@LOAD @@@@@@@] @@@ @@@ !=@@#@@0@@@ ?4ATE]OKNLCSRC FY )@@G@@@@@@@@@] @@@ @@@ ,Y@@#@@7@@@ !$ATR]OKUPDATE @@@@@@@] @@@FZ )@@G@@ @@@ ,(@@]@@C@@@ ,-ATU]OKEVPOLY @@@@@@@] @@@ GA )@@G@@@@@ ,;@@]@@K@@@ ,:ATW]OKEVTERM @@@@@@@] @@@ @@@ \^@@]@@BGB )@@G@@@@@ ,.ATX]OKNXTPWR @@@@@@@] @@@ @@@ \F@@]@@ @@@ \AATZ]OKGC )@@G@@INTGR8 @@@@@@@] @@@ @@@ \X@@]@@K@@@ \HAT+]OKPNJLIM GD )@@G@@@@@@@@@] @@@ @@@ \=@@]@@ @@@ \ZAT<]OKDIODE @@@@@@@] @@@GE )@@G@@ @@@ 0G@@#@@&@@@ \&AT:]OKBJT @@@@@@@] @@@ GF )@@G@@@@@ 1U@@#@[F@@@ 0JAU^]OKFETLIM @@@@@@@] @@@ @@@ 1>@@]@@CGG )@@G@@@@@ 1XAU ]OKJFET @@@@@@@] @@@ @@@ 2$@@#@[@@@@ 1$AUV]OKGH )@@G@@MOSFET @@@@@@@] @@@ @@@ 4S@@#@[,@@@ 2%AV]]OKMOSEQ1 GI )@@G@@@@@@@@@] @@@ @@@ 4=@@]@@D@@@ 4VAVD]OKMOSEQ2 @@@@@@@] @@@GJ )@@G@@ @@@ 5Q@@]@@0@@@ 4&AVO]OKELMNSY @@@@@@@] @@@ GK )@@G@@@@@ 6 @@]@@!@@@ 5SAV)]OKEXPEQN @@@@@@@] @@@ @@@ 6I@@]@@BGL )@@G@@@@@ 6BAV&]OKMOSCAP @@@@@@@] @@@ @@@ 6"@@]@@,@@@ 6KAV0]OKGM )@@G@@CODEXC @@@@@@@] @@@ @@@ 7]@@]@@]@@@ 7@AV1]OKDCOP GN )@@G@@@@@@@@@] @@@ @@@ 9H@@#@]D@@@ 7^AWG]OKSSTF @@@@@@@] @@@GO )@@G@@ @@@ 9*@@#@@S@@@ 9KAWL]OKSENCAL @@@@@@@] @@@ GP )@@G@@@@@ ;B@@^@[W@@@ 9:AW=]OKASOL @@@@@@@] @@@ @@@ ;Q@@]@@FGQ )@@G@@@@@ ;FAW*]OKACAN @@@@@@@] @@@ @@@ ;3@@ @@V@@@ ;SAX@]OKGR )@@G@@PZAN @@@@@@@] @@@ @@@ /D@@#@@L@@@ ;8AXA]OKMULLER GS )@@G@@@@@@@@@] @@@ @@@ .B@@#@@;@@@ /GAXM]OKPZADJ @@@@@@@] @@@GT )@@G@@ @@@ "'@@^@[0@@@ .EAX/]OKCALDET @@@@@@@] @@@ GU )@@G@@@@@ _I@@#@@K@@@ ""AY]]OKPZLOAD @@@@@@@] @@@ @@@A[G@@#@[;GV )@@G@@@@@ _LAZI]OKACDCMP @@@@@@@] @@@ @@@A[X@@#@@I@@@A[JAZN]OKGW )@@G@@ACSOL @@@@@@@] @@@ @@@A[!@@]@@H@@@A[)AZQ]OKACLOAD GX )@@G@@@@@@@@@] @@@ @@@A#?@@#@[.@@@A[\A)>]OKNOISE @@@@@@@] @@@GY )@@G@@ @@@A X@@^@[,@@@A#\A-Z]OKACASOL @@@@@@@] @@@ GZ )@@G@@@@@A 0@@]@@J@@@A -A->]OKDINIT @@@@@@@] @@@ @@@AAP@@#@@@@^@#H@@@AASA=Q]OKHB )@@G@@NTRPL8 @@@@@@@] @@@ @@@AD"@@]@@P@@@AD(A=+]OKSETPRN HC )@@G@@@@@@@@@] @@@ @@@AEH@@#@@H@@@AE@A=&]OKSETPLT @@@@@@@] @@@HD )@@G@@ @@@AE)@@#@@K@@@AEKA=%]OKPLOT @@@@@@@] @@@ HE )@@G@@@@@AFD@@#@@&@@@AE@ ^@@@]#@@@AJ% G9]TKSETMEM @@@@@@@] @@@HN )@@G@@ @@@AM:@@^@@"@@@AL! HU]TKSPICE2E @@@@@@@@[@#XMAP HO )@@G@@@ @I@ A@@@@E@@@AM\ H']TKSPICE2E @@@@@@@]A@@@ )@@]@ @@@@>6HP )@@G@@@@@AM9 I ]TK@@@ XS@@]@@A@@@@@@@@[@@@ @ @\@ ^@@@[N@@@A87 FF]TKHQ )@@G@@SPICE @@@@@@@] @@@ @@@A'Y@@A@@O@@@A'E FW]TKSETMEM HR )@@G@@@@@@@@@@[@@@ @ @>@ ^@@@]#@@@A'= G9]TKSETMEM @@@@@@@] @@@HS )@@G@@ @@@A.>@@^@@"@@@A/$ HU]TKSPICE2E @@@@@@@@[@@@MAP HT )@@G@@@ @I@ A@@@@E@@@A.( H']TKSPICE2E @@@@@@@]A@@@ )@@]@ @@@@>6HU )@@G@@@@@A.3 I ]TKNOISE @@@@@@@] @@@ @@@AW'@@^@[,@@@AVGA-Z]OKHV )@@G@@ACASOL @@@@@@@] @@@ @@@AXH@@]@@J@@@AW"A->]OKDINIT HW )@@G@@@@@@@@@] @@@ @@@AX2@@#@@<@@@AXJA-3]OKDISTO @@@@@@@] @@@HX )@@G@@ @@@A-]@@^@#H@@@AX5A=Q]OKOVTPVT @@@@@@@] @@@ HY )@@G@@@@@A-6@@^@@0@@@A-AA=X]OKNTRPL8 @@@@@@@] @@@ @@@A+J@@]@@PHZ )@@G@@@@@A-'A=+]OKSETPRN @@@@@@@] @@@ @@@A+Y@@#@@H@@@A+LA=&]OKIA )@@G@@SETPLT @@@@@@@] @@@ @@@A+1@@#@@K@@@A+-A=%]OKPLOT IB )@@G@@@@@@@@@] @@@ @@@A[@@]@@F@@@A=6AW*]OKKEYSRC IL )@@G@@@@@@@@@] @@@ @@@AXS@@]@@#@@@AXPAL9]OKEXTNAM @@@@@@@] @@@IM )@@G@@ @@@AXZ@@]@@ @@@AXUAL.]OKRUNCON @@@@@@@] @@@ IN )@@G@@@@@AZ?@@^@]F@@@AX-AM,]OKOUTDEF @@@@@@@] @@@ @@@A)A@@]@@QIO )@@G@@@@@AZ0AM2]OKCARD @@@@@@@] @@@ @@@A)9@@#@@1@@@A)CAM']OKIP )@@G@@GETLIN @@@@@@@] @@@ @@@A)_@@]@@#@@@A)/AM_]OKNXTCHR IQ )@@G@@@@@@@@@] @@@ @@@A- @@]@@^@@@A-[AN^]OKACDCMP @@@@@@@# @@@IR )@@G@@ @@@A$R@@#@@I@@@A$D *R]OKACSOL @@@@@@@# @@@ IS )@@G@@@@@A$$@@]@@H@@@A$U *W]OKACLOAD @@@@@@@# @@@ @@@A(>@@#@[/IT )@@G@@@@@A$( (@]OKNOISE @@@@@@@# @@@ @@@A:Q@@^@[,@@@A(* (U]OKIU )@@G@@ACASOL @@@@@@@# @@@ @@@A:(@@]@@J@@@A:U (Y]OKDINIT IV )@@G@@@@@@@@@# @@@ @@@A?I@@#@@<@@@A:: (&]OKDISTO @@@@@@@# @@@IW )@@G@@ @@@A\Y@@^@#H@@@A?L %<]OKOVTPVT @@@@@@@# @@@ IX )@@G@@@@@A0M@@^@@0@@@A\+ %?]OKNTRPL8 @@@@@@@# @@@ @@@A0:@@]@@PIY )@@G@@@@@A0Q %2]OKSETPRN @@@@@@@# @@@ @@@A0'@@#@@H@@@A0! %6]OKIZ )@@G@@SETPLT @@@@@@@# @@@ @@@A1H@@#@@K@@@A0. %.]OKPLOT JA )@@G@@@@@@@@@] @@@ @@@A16@@#@@&@@@A1K : ]OKSCALE @@@@@@@] @@@JB )@@G@@ @@@A2C@@]@@J@@@A19 :C]OKFOURAN @@@@@@@# @@@ JC )@@G@@@@@A2&@@^@@W@@@A2E :J]OKRAND @@@@@@@] @@@ @@@A2?@@]@@]JD )@@G@@@@@A2% :K]OKADDELTT @@@@@@)@[@^J @ @@@[^@@@@)@@@A>6G*E]GKJE )@@G@@ADDELTT @@@@@@)] @@@ @@@A&6@@#@@)@@@A&QG*M]GKLNKREFT JF )@@G@@@@@@@@)@[@^L @ @@@[^@@@@U@@@A&9G*O]GKLNKREFT @@@@@@)] @@@JG )@@G@@ @@@A$$@@]@@O@@@A$NG*U]GKELPRNTT @@@@@@)@[@^N JH )@@G@@@ @@@[^@@@[;@@@A$(G*Y]GKELPRNTT @@@@@@)] @@@ @@@A:U@@#@[6JI )@@G@@@@@A(=G*;]GKMATPTRT @@@@@@)@[@^P @ @@@[^@@@[_@@@A:XG(9]GKJJ )@@G@@MATPTRT @@@@@@)] @@@ @@@A\P@@#@[9@@@A!WG%O]GKMATLOCT JK )@@G@@@@@@@@)@[@^R @ @@@[^@@@[:@@@A\SG%T]GKMATLOCT @@@@@@)] @@@JL )@@G@@ @@@A24@@]@[1@@@A1#G%7]GKLOADT @@@@@@)@[@^T JM )@@G@@@ @@@[^@@@[X@@@A26G:2]GKLOADT @@@@@@)] @@@ @@@A5G@@^@@9JN )@@G@@@@@A4NG?E]GKNLCSRCT @@@@@@)@[@^V @ @@@[^@@@[I@@@A5KG?H]GKJO )@@G@@NLCSRCT @@@@@@)] @@@ @@@A7U@@#@@/@@@A6YG?W]GKSENCALT JP )@@G@@@@@@@@)@[@^X @ @@@[^@@@[2@@@A7XG!N]GKSENCALT @@@@@@)] @@@JQ )@@G@@ @@@A;S@@^@]D@@@A9JG!:]GKACANT @@@@@@)@[@^Z JR )@@G@@@ @@@[^@@@@?@@@A;WG!!]GKACANT @@@@@@)] @@@ @@@A/$@@ @@ZJS )@@G@@@@@A/CG!7]GKACLOADT @@@@@@)@[@^- @ @@@[^@@@]V@@@A/?G!/]GKJT )@@G@@ACLOADT @@@@@@)] @@@ @@@B[R@@#@]K@@@A_BG,*]GKSETPRNT JU )@@G@@@@@@@@)@[@^< @ @@@[^@@@@Q@@@B[UG\B]GKSETPRNT @@@@@@)] @@@JV )@@G@@ @@@B][@@^@@L@@@B[0G\I]GKSETPLTT @@@@@@)@[@^> JW )@@G@@@ @@@[^@@@@T@@@B] G\M]GKSETPLTT @@@@@@)] @@@ @@@B]0@@^@@MJX )@@G@@@@@B]YG\R]GKPPLOT @@@@@@)] @@@ @@@B#U@@#@@&@@@B]4G\9]GKJY )@@G@@PRTCN @@@@@@)@ @@@ @@@B#Y@@[@@[@@@B#XG\;]GKMCORE JZ )@@G@@@@@@@@@] @@@ASC @@@B#$@@]@@C@@@B#ZG\.]GKRESTOR @@@@@@)] @@@KA )@@G@@ @@@B#5@@]@@G@@@B#(G0 ]GKGETSMP @@@@@@)] @@@ KB )@@G@@@@@B^@@@#@@D@@@B#7G0O]GKRANF @@@@@@)] @@@ @@@B^D@@]@@AKC )@@G@@@@@B^#G0Q]GKSUPTIM @@@@@@)] @@@ @@@B^I@@]@@#@@@B^FG0-]GKKD )@@G@@SETTOL @@@@@@)] @@@ @@@B^Q@@]@@A@@@B^KG0>]GKRDMOD KE )@@G@@@@@@@@)] @@@ @@@B^3@@#@@V@@@B^SG0?]GKSCONV @@@@@@)] @@@KF )@@G@@ @@@B V@@#@@>@@@B^6G1C]GKMODLNK @@@@@@)] @@@ KG )@@G@@@@@BA%@@#@[G@@@B YG1Q]GKELSRCH @@@@@@)] @@@ @@@BA2@@]@@ KH )@@G@@@@@BA!G1U]GKEXTBL @@@@@@)] @@@ @@@BA'@@]@@A@@@BA4G1W]GKKI )@@G@@MODVAL @@@@@@)] @@@ @@@BB*@@#@@?@@@BA/G1>]GKDIVDIF KJ )@@G@@@@@@@@)] @@@ @@@BB.@@#@@M@@@BB:G1.]GKSENFMT @@@@@@)] @@@KK )@@G@@ @@@BC?@@#@@?@@@BC@G5^]GKSNEWS @@@@@@)@[@^7 KL )@@G@@@ @ @ [@@@@A@@@BC\AEA]HKSNEWS @@@@@@)] @@@ @@@BC;@@]@@AKM )@@G@@@@@BC5AEI]HKPMPRM @@@@@@)@[@^9 @ @E@ [@@@@T@@@BC.AF5]HKKN )@@G@@PMPRM @@@@@@)] @@@ @@@BD0@@#@@U@@@BDQAG[]HKRUNCONTU KO )@@G@@@@@@@@)@[@@@ @ @Q@ [@@@@W@@@BD3D?V]HKRUNCONT @@@@@@)@[@^/KP )@@G@@ @ @@@[^@@@]'@@@BEJD?"]HKRUNCONT @@@@@@)] @@@ KQ )@@G@@@@@BJ?@@ @]<@@@BHDD!"]HKSPICE2ET @@@@@@)@[@ TMAP @ @O@ [@@@@MKR )@@G@@@@@BJ1D,T]HKMODCHKT @@@@@@)@[@^_ @ @@@[^@@@]0@@@BK#EW1]HKKS )@@G@@MODCHKT @@@@@@)] @@@ @@@BPG@@#@]T@@@BM3EYL]HKOPTCHK KT )@@G@@@@@@@@@@[@ [ @ @V@ [@@@@R@@@BPJF#7]HKOPTCHK @@@@@@@] @@@KU )@@G@@ @@@BQF@@#@@>@@@BP&F^B]HKEVALMC @@@@@@)@[@ # KV )@@G@@@ @&@ [@@@@+@@@BQIBS[]IKEVALMC @@@@@@)] @@@ @@@BR@@@#@@KKW )@@G@@@@@BQ0BSN]IKDCOPTU @@@@@@)@[@@@ @ @B@ [@@@@I@@@BR#F59]IKKX )@@G@@DCOPT @@@@@@)@[@ A @ @@@[^@@@]B@@@BRLF6Y]IKDCOPT KY )@@G@@@@@@@@)] @@@ @@@BV\@@^@]R@@@BTSF7#]IKACSENS @@@@@@)@[@ CKZ )@@G@@ @ @F@ [@@@]7@@@BV3F7S]IKACSENS @@@@@@)] @@@ LA )@@G@@@@@B@B 4]NKDCTRANT @@@@@@)] @@@LE )@@G@@ @@@B(2@@ @]F@@@B$$BAF]NKSAMPLE @@@@@@)@[@ J LF )@@G@@@ @^@ [@@@[#@@@B(7B*.]NKSAMPLE @@@@@@)] @@@ @@@B:!@@#@@3LG )@@G@@@@@B%'B(X]NKTRSENS @@@@@@)@[@ L @ @ @ [@@@@Y@@@B:0B(2]NKLH )@@G@@TRSENS @@@@@@)] @@@ @@@B?:@@#@@X@@@B?IB("]NKTRANMC LI )@@G@@@@@@@@)@[@ N @ @A@ [@@@@F@@@B?,B%1]NKTRANMC @@@@@@)] @@@LJ )@@G@@ @@@B!A@@#@@H@@@B?9B%"]NKOVTPVTTU @@@@@@)@[@@@ LK )@@G@@@ @%@ [@@@@2@@@B!DC%6]NKOVTPVTT @@@@@@)@[@ Q @ @@@[^@@@[%LL )@@G@@@@@B!;C:X]NKOVTPVTT @@@@@@)] @@@ @@@B1M@@ @[!@@@B\>C?E]NKLM )@@G@@STUBS @@@@@@)@ @@@ @@@B1T@@[@@]@@@B1RC,N]NKPDMP$$ LN )@@G@@@@@@@@)] @@@ @@@B5;@@ @^-@@@B1UC,N]NKSPICE2ET @@@@@@)#A@@@LO )@@G@@ )@@]@D@@@@;Q@@@B6@C,V]NKDOC-GUIDE @@@@@@@@[@@@ LP )@@G@@@ @8@ [@@@E"@@@C1QET)]NK@ @@@[^@@@]Z@@@A-LG$R]GKERRCHKT @@@@@@@] @@@LQ )@@G@@ @@@A>1@@ @][@@@@@@@@[@@@ @ @7@ [@@@F@@@@DBMEDN]NKLR )@@G@@OVTPVTT @@@@@@@] @@@ @@@D@W@@ @[!@@@C"\C?E]NKSTUBS LS )@@G@@@@@@@@@@ @@@ @@@D@<@@[@@]@@@D@-C,N]NKPDMP$$ @@@@@@@] @@@LT )@@G@@ @@@D @@ @^-@@@D@=C,N]NKSPICE2ET @@@@@@@#A@@@ LU )@@G@@)@@]@D@@@@;Q@@@D EC,V]NKSAMPLE @@@@@@@] @@@ @@@DB/@@#@@3LV )@@G@@@@@DBDB(X]NKTRSENS @@@@@@@@[@@@ @ @ @ [@@@@Y@@@DB_B(2]NKLW )@@G@@TRSENS @@@@@@@] @@@ @@@DC'@@#@@X@@@DCXB("]NKTRANMC LX )@@G@@@@@@@@@@[@@@ @ @A@ [@@@@F@@@DC.B%1]NKTRANMC @@@@@@@] @@@LY )@@G@@ @@@DDP@@#@@H@@@DDCB%"]NKSTUBS @@@@@@@@ @@@ LZ )@@G@@@@@DDU@@[@@]@@@DDSB1F]NKPDMP$$ @@@@@@@] @@@ @@@DH/@@ @^-MA )@@G@@@@@DDVB1G]NKSPICE2ET @@@@@@@#A@@@ )@@]@D@@@@;Q@@@DI[B1J]NKMB )@@G@@PDMP$$ @@@@@@@] @@@ @@@DK;@@ @^-@@@DGUBU6]IKSPICE2ET MC )@@G@@@@@@@@@#A@@@ )@@]@D@@@@;M@@@DL@BU;]IKSNEWS @@@@@@@@[@@@MD )@@G@@ @ @ @ [@@@@A@@@DG>AEA]HKSNEWS @@@@@@@] @@@ ME )@@G@@@@@DG1@@]@@A@@@DG:AEI]HKMONTE @@@@@@@@[@@@ @ @C@ [@@@@@@@DJGAG;]HKDIVDIF @@@@@@@] @@@ @@@D["@@#@@MMK )@@G@@@@@D[?G1.]GKACSENS @@@@@@@] @@@ @@@DA,@@ @^!@@@D][G4.]GKML )@@G@@SENFMT @@@@@@@] @@@ @@@DBZ@@#@@?@@@DA3G5^]GKTRANMC MM )@@G@@@@@@@@@] @@@ @@@DB,@@#@@G@@@DB+G5C]GKOPTCHK @@@@@@@# @@@MN )@@G@@ @@@DCP@@#@@=@@@DB1G5G]GKDCOPTU @@@@@@@@[@@@ MO )@@G@@@ @^@ [@@@@I@@@DQSGD3]GKMONTE @@@@@@@@[@@@ @ @B@ [@@@@$MP )@@G@@@@@DQ&GF!]GKACSENS @@@@@@@@[@@@ @ @E@ [@@@]9@@@DRHGM6]GKMQ )@@G@@JOB @@@@@@@@[@@@ @ @]@#[@@@@A@@@DUAGQJ]GKJOB1 MR )@@G@@@@@@@@@@[@@@ @ @@@[[@@@@ @@@DUGGR,]GKJOB2 @@@@@@@@[@@@MS )@@G@@ @ @@@[[@@@@^@@@DULGTD]GKJOB3 @@@@@@@@[@@@ MT )@@G@@@ @@@[[@@@@^@@@DUPGV[]GKDIVDIF @@@@@@@] @@@ @@@DVL@@#@@MMU )@@G@@@@@DU_F@0[WKACSENS @@@@@@@] @@@ @@@D)[@@ @^!@@@DVOFA][WKMV )@@G@@SENFMT @@@@@@@] @@@ @@@D)2@@#@@?@@@D)AFAE[WKOPTCHK MW )@@G@@@@@@@@@] @@@ @@@D-S@@#@@<@@@D)5FAJ[WK005 MX )@@G@@13,'78-65','0','0','0' :@@@@(@C@@@@C001 A005 17,'0'MY )@@G@@,'0','0','0':@@@@%@E@@@@C001 A005 21,'06:00A','07:00MZ )@@G@@P','0','0' :@@@@:@C@@@@C001 A005 25,'0','0','0','0'NA )@@G@@:@@@@?@C@@@@C001 A005 29,'0','0','0','0':@@@@!@E@@@@NB )@@G@@C001 A005 33,'08-17-79','0','0','77F' :@@@@,@E@@@@NC )@@G@@C001 A006 1,'C001 A006','0','0','0' :@@@@\@E@@@@ND )@@G@@C001 A006 5,'J9-12','0','REPRO','0' :@@@@0@D@@@@NE )@@G@@C001 A006 9,'J10','0','0','0' :@@@@1@D@@@@C001 ANF )@@G@@006 13,'78-65','0','0','0' :@@@@2@C@@@@C001 A006 NG )@@G@@ 17,'0','0','0','0':@@@@3@C@@@@C001 A006 NH )@@G@@ 21,'0','0','0','0':@@@@4@C@@@@C001 A006 25,'0'NI )@@G@@,'0','0','0':@@@@5@C@@@@C001 A006 29,'0','0','0','0'NJ )@@G@@:@@@@6@E@@@@C001 A006 33,'08-17-79','0','0','74F' NK )@@G@@:@@@@7@E@@@@C001 A007 1,'C001 A007','0','0','0' NL )@@G@@:@@@@8@F@@@@C001 A007 5,'GJ3-5','0','PROGRAM','MANANM )@@G@@GERS' :@@@@9@D@@@@C001 A007 9,'GH4','0','0','0' NN )@@G@@:@@@@'@D@@@@C001 A007 13,'78-65','0','0','0' :@@@@;NO )@@G@@@C@@@@C001 A007 17,'0','0','0','0':@@@@/@E@@@@C001 ANP )@@G@@007 21,'06:00A','07:00P','0','0' :@@@@.@C@@@@C001 ANQ )@@G@@007 25,'0','0','0','0':@@@@"@C@@@@C001 A007 NR )@@G@@ 29,'0','0','0','0':@@@@_@E@@@@C001 A007 NS )@@G@@33,'08-17-79','0','0','77F' :@@@[@@E@@@@C001 A008 NT )@@G@@ 1,'C001 A008','0','0','0' :@@@[[@F@@@@C001 A008 NU )@@G@@ 5,'F5-F9','0','EDP','PROGRAMMERS' :@@@[]@C@@@@C001 A008 NV )@@G@@ 9,'0','0','0','0':@@@[#@D@@@@C001 A008 13,'78NW )@@G@@-65','0','0','0' :@@@[^@C@@@@C001 A008 17,'0','0','NX )@@G@@0','0':@@@[ @C@@@@C001 A008 21,'0','0','0','0':@@@[ANY )@@G@@@C@@@@C001 A008 25,'0','0','0','0':@@@[B@C@@@@C001 ANZ )@@G@@008 29,'0','0','0','0':@@@[C@E@@@@C001 A008 OA )@@G@@ 33,'08-17-79','0','0','77F' :@@@[D@E@@@@C001 A009 OB )@@G@@ 1,'C001 A009','0','0','0' :@@@[E@E@@@@C001 A009 OC )@@G@@ 5,'G5','0','EDP','MANAGERS' :@@@[F@D@@@@C001 A009 OD )@@G@@ 9,'G5','0','0','0' :@@@[G@D@@@@C001 A009 OE )@@G@@ 13,'78-65','0','0','0' :@@@[H@C@@@@C001 A009 OF )@@G@@17,'0','0','0','0':@@@[I@E@@@@C001 A009 21,'06:00A',OG )@@G@@'07:00P','0','0' :@@@[J@C@@@@C001 A009 25,'0','0','OH )@@G@@0','0':@@@[K@C@@@@C001 A009 29,'0','0','0','0':@@@[LOI )@@G@@@E@@@@C001 A009 33,'08-17-79','0','0','77F' :@@@[MOJ )@@G@@@E@@@@C001 A010 1,'C001 A010','0','0','0' :@@@[NOK )@@G@@@F@@@@C001 A010 5,'E6-9','0','MESSAGE','CENTER' OL )@@G@@:@@@[O@D@@@@C001 A010 9,'E8','0','0','0' :@@@[POM )@@G@@@D@@@@C001 A010 13,'78-65','0','0','0' :@@@[Q@C@@@@ON )@@G@@C001 A010 17,'0','0','0','0':@@@[R@E@@@@C001 A010 OO )@@G@@ 21,'06:00A','07:00P','0','0' :@@@[S@C@@@@C001 A010 OP )@@G@@ 25,'0','0','0','0':@@@[T@C@@@@C001 A010 OQ )@@G@@ 29,'0','0','0','0':@@@[U@E@@@@C001 A010 33,'08OR )@@G@@-23-79','0','0','78F' :@@@[V@E@@@@C001 A011 1,'C0OS )@@G@@01 A011','0','0','0' :@@@[W@E@@@@C001 A011 5,'DEOT )@@G@@6-8','0','WATERJET','0' :@@@[X@D@@@@C001 A011 9,'D6OU )@@G@@','0','0','0' :@@@[Y@D@@@@C001 A011 13,'78-65','OV )@@G@@0','0','0' :@@@[Z@C@@@@C001 A011 17,'0','0','0','0'OW )@@G@@:@@@[)@E@@@@C001 A011 21,'06:00A','07:00P','0','0' OX )@@G@@:@@@[-@C@@@@C001 A011 25,'0','0','0','0':@@@[+@C@@@@OY )@@G@@C001 A011 29,'0','0','0','0':@@@[<@E@@@@C001 A011 OZ )@@G@@ 33,'08-17-79','0','0','77F' :@@@[=@E@@@@C001 A012 PA )@@G@@ 1,'C001 A012','0','0','0' :@@@[>@F@@@@C001 A012 PB )@@G@@ 5,'KM1; KM1M','0','DIRECTORS','0' :@@@[&@C@@@@C001 APC )@@G@@012 9,'0','0','0','0':@@@[$@D@@@@C001 A012 PD )@@G@@ 13,'78-65','0','0','0' :@@@[*@C@@@@C001 A012 PE )@@G@@ 17,'0','0','0','0':@@@[(@C@@@@C001 A012 21,'0'PF )@@G@@,'0','0','0':@@@[%@C@@@@C001 A012 25,'0','0','0','0'PG )@@G@@:@@@[:@C@@@@C001 A012 29,'0','0','0','0':@@@[?@E@@@@PH )@@G@@C001 A012 33,'08-17-79','0','0','78F' :@@@[!@E@@@@PI )@@G@@C001 A013 1,'C001 A013','0','0','0' :@@@[,@D@@@@PJ )@@G@@C001 A013 5,'H1','0','OQUIST','0':@@@[\@D@@@@C001 APK )@@G@@013 9,'H1','0','0','0' :@@@[0@D@@@@C001 A013 PL )@@G@@ 13,'78-65','0','0','0' :@@@[1@D@@@@C001 A013 PM )@@G@@ 17,'H4R','0','0','0' :@@@[2@E@@@@C001 A013 PN )@@G@@ 21,'06:00A','07:00P','0','0' :@@@[3@C@@@@C001 A013 PO )@@G@@ 25,'0','0','0','0':@@@[4@C@@@@C001 A013 29,'0'PP )@@G@@,'0','0','0':@@@[5@E@@@@C001 A013 33,'08-17-79','0',PQ )@@G@@'0','77F' :@@@[6@E@@@@C001 A014 1,'C001 A014','0'PR )@@G@@,'0','0' :@@@[7@G@@@@C001 A014 5,'JK1','SANCHINIPS )@@G@@','KIRBY','CALKINS' :@@@[8@C@@@@C001 A014 9,'0'PT )@@G@@,'0','0','0':@@@[9@D@@@@C001 A014 13,'78-65','0','0'PU )@@G@@,'0' :@@@['@D@@@@C001 A014 17,'H4R','0','0','0' PV )@@G@@:@@@[;@E@@@@C001 A014 21,'06:00A','07:00P','0','0' PW )@@G@@:@@@[/@C@@@@C001 A014 25,'0','0','0','0':@@@[.@C@@@@PX )@@G@@C001 A014 29,'0','0','0','0':@@@["@E@@@@C001 A014 PY )@@G@@ 33,'08-23-79','0','0','75F' :@@@[_@E@@@@C001 A015 PZ )@@G@@ 1,'C001 A015','0','0','0' :@@@]@@E@@@@C001 A015 QA )@@G@@ 5,'GH2','0','REUEL','FIORE' :@@@][@C@@@@C001 A015 QB )@@G@@ 9,'0','0','0','0':@@@]]@D@@@@C001 A015 QC )@@G@@ 13,'78-65','0','0','0' :@@@]#@C@@@@C001 A015 QD )@@G@@17,'0','0','0','0':@@@]^@E@@@@C001 A015 21,'06:00A',QE )@@G@@'07:00P','0','0' :@@@] @C@@@@C001 A015 25,'0','0','QF )@@G@@0','0':@@@]A@C@@@@C001 A015 29,'0','0','0','0':@@@]BQG )@@G@@@E@@@@C001 A015 33,'08-17-79','0','0','78F' :@@@]CQH )@@G@@@E@@@@C001 A016 1,'C001 A016','0','0','0' :@@@]DQI )@@G@@@D@@@@C001 A016 5,'GH1','0','RYKER','0':@@@]E@D@@@@QJ )@@G@@C001 A016 9,'G1','0','0','0' :@@@]F@D@@@@C001 AQK )@@G@@016 13,'78-65','0','0','0' :@@@]G@C@@@@C001 A016 QL )@@G@@ 17,'0','0','0','0':@@@]H@E@@@@C001 A016 QM )@@G@@ 21,'06:00A','07:00P','0','0' :@@@]I@C@@@@C001 A016 QN )@@G@@ 25,'0','0','0','0':@@@]J@C@@@@C001 A016 29,'0'QO )@@G@@,'0','0','0':@@@]K@E@@@@C001 A016 33,'08-17-79','0',QP )@@G@@'0','78F' :@@@]L@E@@@@C001 A017 1,'C001 A017','0'QQ )@@G@@,'0','0' :@@@]M@F@@@@C001 A017 5,'G2-5','0','PUBQR )@@G@@LIC','RELATIONS' :@@@]N@D@@@@C001 A017 9,'G3','0',QS )@@G@@'0','0' :@@@]O@D@@@@C001 A017 13,'78-65','0','0'QT )@@G@@,'0' :@@@]P@C@@@@C001 A017 17,'0','0','0','0':@@@]QQU )@@G@@@E@@@@C001 A017 21,'06:00A','07:00P','0','0' :@@@]RQV )@@G@@@C@@@@C001 A017 25,'0','0','0','0':@@@]S@C@@@@C001 AQW )@@G@@017 29,'0','0','0','0':@@@]T@E@@@@C001 A017 QX )@@G@@ 33,'08-17-79','0','0','77F' :@@@]U@E@@@@C001 A018 QY )@@G@@ 1,'C001 A018','0','0','0' :@@@]V@D@@@@C001 A018 QZ )@@G@@ 5,'FG1','0','LOBBY','0':@@@]W@D@@@@C001 A018 RA )@@G@@ 9,'F1','0','0','0' :@@@]X@D@@@@C001 A018 RB )@@G@@13,'78-65','0','0','0' :@@@]Y@C@@@@C001 A018 17,'0'RC )@@G@@,'0','0','0':@@@]Z@C@@@@C001 A018 21,'0','0','0','0'RD )@@G@@:@@@])@C@@@@C001 A018 25,'0','0','0','0':@@@]-@C@@@@RE )@@G@@C001 A018 29,'0','0','0','0':@@@]+@E@@@@C001 A018 RF )@@G@@18-1AW@^\@^\@@L@[E@@@@@[N93355001144005114 HF4LF423 HF 3 HF HF RG )@@G@@@@@@@U@@@@*4@@@@@@@@@[3]@@@[3]@@@@@@@@@[3]@@@]WK@@@@(I@@@@(I@@@@(I@@@@@@RH )@@G@@@@@]WK@@@@K&@@@@FP@@@@E<@@@@G:@@@@HX@@@@JH@@@@A*@@@@@@@@@@@@@@@@@@@@@@@@RI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RJ )@@G@@@@@@@@TSC-60 208U-10A P A P E CJENSEN HF MISC CONTRACT COLLATERK )@@G@@RAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSRL )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N93356001144005114 HF4LF423 RM )@@G@@HF 3 HF HF @@@@@\@@@ 2G@@@@@@@@@AUP@@@AUP@@@@@@@@@AUP@@@GHK@@@ 2;RN )@@G@@@@@ 2;@@@ 2;@@@@@@@@@GHK@@@@>)@@@@SA@@@@RQ@@@@&N@@@@IU@@@@UF@@@@@@@@@@@@RO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@TSC-60 208U-3A P A P E CJENSEN HF MISRQ )@@G@@C CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGERR )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95503001144RS )@@G@@005114 HF4LF423 HF 3 HF HF @@@@[F@@@@"E@@@@@@@@@@P#@@@@P#@@@@@@RT )@@G@@@@@@P#@@@[OS@@@@_P@@@@_P@@@@_P@@@@@@@@@[OS@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RU )@@G@@@@@@@@@@@@#7@@@@]>@@@@I$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-47 SRC-23 CRW )@@G@@JENSEN HF MISC CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-1RX )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[ERY )@@G@@@@@@@[N95408823910005114 HF4LF625 HF 5 HF HF _____"____'F@@@[< RZ )@@G@@@@@#U/@@@^"[@@@@@@@@@^"[@@@^8)____'Y@@@@.3@@@@.3@@@@Z1@@@^8)@@@@@@@@@@@@SA )@@G@@@@@@@@@@@@@@@@@@@B@@@@BC@@@@LE@@@[AI@@@@*&@@@@0U@@@@@@@@6%@@@@J!@@@@H2@@@@D"@@@@KP@@@@J4@@@[TB@@@@_3@@@@7"@@@@:TTM )@@G@@@@@@*3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TN )@@G@@@@@@@@HF-8020/8030 PE CJENSEN FY-80 COMMERCIAL COLLATETO )@@G@@RAL RATHGEBER HF HF-80 RATHGEBER HF HF-80 TP )@@G@@ RATHGEBER @[E@[E@@@@@[N95066001144005114 HF4MF423 TQ )@@G@@HF 3 HF HF @@@@[=@@@#DW@@@@@@_____._____.@@@@@@_____.@@@#E"@@@#F@TR )@@G@@@@@#F@@@@#F@@@@@@@@@@#E"@@@@@S@@@@@@____5]@@@@@3@@@@@@@@@@@@@@@@@@@@@@@@TS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@156W MCOUPLER PE CSNIDER HF MISTU )@@G@@C CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGETV )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95440823929TW )@@G@@005111 HF1NA111 HF 1 HF HF @@@@[<@@@^5H@@@@@@@@@@[2@@@@[2@@@@@@TX )@@G@@@@@@[2@@@^8)@@@^6,@@@^2A@@@^2A@@@@^*@@@^8)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TY )@@G@@@@@@[2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FSK MODEM UPDATE CUA )@@G@@ROSENBERGER FSK MODEM DARLING HF 718U/VEHICULAR UB )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EUC )@@G@@@@@@@[N99604828591005111 HF1NA314 HF 4 HF HF ____.4___.".@@@@@@UD )@@G@@@@@#).@@@#).@@@@@@@@@#).@@@[X0___./2___./2___./2@@@@@@@@@[X0@@@@]'@@@@@@UE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@718U- TECH DUG )@@G@@ATA SHEETS CDUSHEK 718U TECH DATA DARLING UH )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR UI )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4@;2\ @^\@^\UK )@@G@@@@O@[E@@@@@[N93087823302005111 HF1NA635 HF 5 HF HF @@@@@E@@@[HVUL )@@G@@4@;2\ @^\@^\@@O@[E@@@@@[N93087823302005111 HF1NA635 HF 5 HF HF UM )@@G@@@@@@@E@@@[HV@@@@@@@@@D8R@@@D8R@@@@@@@@@D8R@@@F /@@@[H>@@@[H>@@@[H>@@@@@@UN )@@G@@@@@F /@@@@#S@@@@DA@@@@@@____6;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UP )@@G@@@@@@@@ECUADOR VC114 BLD CROSENBERGER ECUADOR VC-114 UQ )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIUR )@@G@@CULAR JAKSA @[E@[E@@@@@[N93092823358005111 HF1NA635 US )@@G@@HF 5 HF HF ___/A5___W8-@@@@@@@@@$KM@@@$KM@@@@@@@@@$KM@@@@J%___S_RUT )@@G@@___S_R___S_R@@@@@@@@@@J%@@@CZ0@@@C/]___"#!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@VC-117 PROGRAM START-UP CDOWNING VC-117UW )@@G@@ NIGERIA DARLING HF 718U/VEHICULAR JAKSA UX )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N93329829732UY )@@G@@005111 HF1NA625 HF 5 HF HF _____+___81T@@@@@@@@@Z)_@@@Z)_@@@@@@UZ )@@G@@@@@Z)_@@@SL/___80/___80/___80/@@@@@@@@@SL/@@@CU@@@@[)S@@@@-A@@@@]U@@@@[IVA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RAVEN CONFIG STUDY CVC )@@G@@DUFF RAVEN DARLING HF 718U/VEHICULAR VD )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EVE )@@G@@@@@@@[N93339823358005111 HF1NA635 HF 5 HF HF _____F___4\L@@@@@@VF )@@G@@@@@)>#@@@)>#@@@@@@@@@)>#@@@PN-___4,X___4,X___4,X@@@@@@@@@PN-@@@AHX@@@ JMVG )@@G@@@@@[AR@@@@/-@@@@J]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC-117 TTY BVI )@@G@@UILD/TEST CNEYENS VC-117 NIGERIA DARLING VJ )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR VK )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2;;I8!@^\@^\VM )@@G@@@@P@[E@@@@@[N93340823358005111 HF1NA635 HF 5 HF HF ____"/___1PEVN )@@G@@2;;I8!@^\@^\@@P@[E@@@@@[N93340823358005111 HF1NA635 HF 5 HF HF VO )@@G@@____"/___1PE@@@@@@@@@=OQ@@@=OQ@@@@@@@@@=OQ@@@P*Y___1OB___1OB___1OB@@@@@@VP )@@G@@@@@P*Y@@@@!#@@@@?@@@@@8,@@@[6S@@@[FQ@@@@@@@@@@@@@@@@Y^@@@@@@@@@@@@@@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VR )@@G@@@@@@@@VC-117 TTY DESIGN CNEYENS VC-117 NIGERIA VS )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIVT )@@G@@CULAR JAKSA @[E@[E@@@@@[N93346823358005111 HF1NA635 VU )@@G@@HF 5 HF HF @@@@@1@@@](4@@@@@@@@@]:8@@@]:8@@@@@@@@@]:8@@@ QX@@@]%>VV )@@G@@@@@]%>@@@]%>@@@@@@@@@ QX@@@@^3@@@@C@@@@@BG@@@@]N@@@@1T@@@@#"@@@@@@@@@@@@VW )@@G@@@@@@ Z@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@VC-117 TECHNICAL MANAGEMENT CDUSHEK VC-117VY )@@G@@ NIGERIA DARLING HF 718U/VEHICULAR JAKSA VZ )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N93347823358WA )@@G@@005111 HF1NA635 HF 5 HF HF @@@@@$@@@]N:@@@@@@@@@#=1@@@#=1@@@@@@WB )@@G@@@@@#=1@@@ 9#@@@]OM@@@]OM@@@]OM@@@@@@@@@ 9#@@@@H0@@@[;&_____7@@@@@@@@@@@@WC )@@G@@@@@@@@@@@@Y^____-;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC-117 ENGR INST BOOKS CWE )@@G@@DOWNING VC-117 NIGERIA DARLING HF 718U/VEHICULAR WF )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EWG )@@G@@@@@@@[N93348823358005111 HF1NA635 HF 5 HF HF _____\____Z]@@@@@@WH )@@G@@@@@#&T@@@#&T@@@@@@@@@#&T@@@# G____Y2____Y2____Y2@@@@@@@@@# G@@@@@[@@@@#KWI )@@G@@@@@@@@@@@@Y/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC-117 LAB RWK )@@G@@EPLACEMENT CDOWNING VC-117 NIGERIA DARLING WL )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR WM )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WP )@@G@@#,%*T&@^\@^\@@Q@[E@@@@@[N94885829767005111 HF1NA625 HF 5 HF HF WQ )@@G@@@@@@@]@@@@.Q@@@@IW@@@>05@@@>_L@@@@BQ@@@&A$@@@$^@@@@@.T@@@[J:@@@[J:@@@@#)WR )@@G@@@@@$^@@@@#UG@@@ 4 @@@B4C@@@J#]@@@@87@@@@3 @@@EC.@@@E_1___3<,___0-\@@@A35WS )@@G@@@@@@IW@@@@#:@@@@#:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WT )@@G@@@@@@@@106E-2A ENGR PURCH DOWNING 106E-2A WU )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIWV )@@G@@CULAR JAKSA @[E@[E@@@@@[N94905829767005111 HF1NA625 WW )@@G@@HF 5 HF HF @@@@@[@@@@ 8@@@@@@@@@BYP@@@BYP@@@@@@@@@BYP@@@B=I@@@@ 9WX )@@G@@@@@@ 9@@@@ 9@@@@@@@@@B=I@@@[<0@@@@-V@@@@M2@@@@KT@@@@O\@@@@#[@@@@@@@@@@@@WY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@MRC-107 CONV TECH MGMT CDOWNING 106E-2XA )@@G@@A DARLING HF 718U/VEHICULAR JAKSA XB )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N94906829767XC )@@G@@005111 HF1NA625 HF 5 HF HF ____".___/+'@@@@@@@@@C:U@@@C:U@@@@@@XD )@@G@@@@@C:U@@@ HN___/-8___/-8___/-8@@@@@@@@@ HN@@@[N=@@@@R+@@@@DP@@@@1Y@@@@^7XE )@@G@@@@@@[H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MRC-107 POWER BOX + CABLING CXG )@@G@@HOFFMAN 106E-2A DARLING HF 718U/VEHICULAR XH )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EXI )@@G@@@@@@@[N94907829767005111 HF1NA625 HF 5 HF HF ____"J___8IQ@@@@@@XJ )@@G@@@@@I\T@@@I\T@@@@@@@@@I\T@@@A/@___8G&___8G&___8G&@@@@@@@@@A/@@@@#L!@@@[%4XK )@@G@@@@@@?T@@@@R2@@@@^*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MRC-107 1C CXM )@@G@@ONTROLS/JUNC BOX CROSENBERGER 106E-2A DARLING XN )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR XO )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2FTJJ[@^\@^\XQ )@@G@@@@R@[E@@@@@[N94908829767005111 HF1NA625 HF 5 HF HF @@@@@1@@@@%0XR )@@G@@2FTJJ[@^\@^\@@R@[E@@@@@[N94908829767005111 HF1NA625 HF 5 HF HF XS )@@G@@@@@@@1@@@@%0@@@@@@@@@@?5@@@@?5@@@@@@@@@@?5@@@[SQ@@@@:-@@@@:-@@@@:-@@@@@@XT )@@G@@@@@[SQ@@@@ U@@@@B<@@@@#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XV )@@G@@@@@@@@MRC-107 REP/REFB GFE ITEMS CDOWNING 106E-2A XW )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIXX )@@G@@CULAR JAKSA @[E@[E@@@@@[N94909829767005111 HF1NA625 XY )@@G@@HF 5 HF HF @@@@@Y@@@^R*@@@@@@@@@ED @@@ED @@@@@@@@@ED @@@I-F@@@^SAXZ )@@G@@@@@^SA@@@^SA@@@@@@@@@I-F@@@@6+@@@['G@@@[8R@@@[U2@@@@E-@@@@^[@@@@ ,@@@@ PYA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@MRC-107 MNTG SHELVES + HDWE CTRANTER 106E-2YC )@@G@@A DARLING HF 718U/VEHICULAR JAKSA YD )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N95097823606YE )@@G@@005111 HF1NA625 HF 5 HF HF __________/V@@@@@@@@@ .5@@@ .5@@@@@@YF )@@G@@@@@ .5@@@ 'L____/V____/V____/V@@@@@@@@@ 'L@@@@S:@@@[NF@@@@8+@@@[N3@@@[D]YG )@@G@@@@@@!N@@@@E=@@@@^1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SAUDI PRC-66B DESIGN CYI )@@G@@GRISWOLD SAUDI PRC-66 DARLING HF 718U/VEHICULAR YJ )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EYK )@@G@@@@@@@[N95098823606005111 HF1NA625 HF 5 HF HF _____"____8-@@@@@@YL )@@G@@@@@ASY@@@ASY@@@@@@@@@ASY@@@AK_____8)____8)____8)@@@@@@@@@AK_@@@@#G@@@@A4YM )@@G@@@@@@B/@@@@)2@@@[O<@@@['7@@@]^Y@@@@L8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SAUDI PRC-66YO )@@G@@B BUILD CGRISWOLD SAUDI PRC-66 DARLING YP )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR YQ )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=,X:3Z@^\@^\YS )@@G@@@@S@[E@@@@@[N95373829924005111 HF1NA625 HF 5 HF HF ____"U____N0YT )@@G@@=,X:3Z@^\@^\@@S@[E@@@@@[N95373829924005111 HF1NA625 HF 5 HF HF YU )@@G@@____"U____N0@@@@@@@@@[U3@@@[U3@@@@@@@@@[U3@@@@?_____MF____MF____MF@@@@@@YV )@@G@@@@@@?_@@@@@@@@@@@@@@@@@@@@@@CD@@@@NA@@@@.?@@@@@T@@@@@@@@@@[Z@@@@@@@@@@@@YW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YX )@@G@@@@@@@@916E-1 CIPHER CNTRL CGRISWOLD VEHICULAR COMM YY )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIYZ )@@G@@CULAR JAKSA @[E@[E@@@@@[N95483829767005111 HF1NA625 ZA )@@G@@HF 5 HF HF ____"(____P>@@@@A&@@@[J/@@@[Q+@@@@BQ@@@[X8@@@@2N____OUZB )@@G@@____T3____T3@@@@C<@@@@2N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@T@@@@#.@@@@F!ZC )@@G@@@@@@[E@@@@@@@@@@"\@@@@A&@@@@#:@@@@#:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@106E-2A CABLES/PWR DIST BOX HOFFMAN 106E-2ZE )@@G@@A DARLING HF 718U/VEHICULAR JAKSA ZF )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N95485829767ZG )@@G@@005111 HF1NA625 HF 5 HF HF _____9____';@@@@F:@@@@5D@@@[@4@@@@T^ZH )@@G@@@@@[T8@@@[O>____'?____2:____2:@@@@OZ@@@[O>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZI )@@G@@@@@@["@@@@C9@@@@#C@@@@FR@@@@#2@@@@S[@@@@F:@@@@LH@@@@^6@@@@#[@@@@@@@@@@@@ZJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@106E-2A PE ON T/L ZK )@@G@@DOWNING 106E-2A DARLING HF 718U/VEHICULAR ZL )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EZM )@@G@@@@@@@[N95486829767005111 HF1NA625 HF 5 HF HF @@@@[F@@@[K&@@@@@@ZN )@@G@@@@@@QY@@@@QY@@@@#Y@@@@T/@@@[:<@@@[L$@@@[AN@@@[AN@@@@FV@@@[:<@@@@@@@@@@@@ZO )@@G@@@@@@@@@@@@@@@@@@@@@@@@B/@@@@ .@@@@[Z@@@@@@@@@@@@@@@@BA@@@@@@@@@@#[@@@@@XZP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CONTROL/J-BOZQ )@@G@@X ROSENBERGER 106E-2A DARLING ZR )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR ZS )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZV )@@G@@V\U9.?@^\@^\@@T@[E@@@@@[N95487829767005111 HF1NA625 HF 5 HF HF ZW )@@G@@@@@@[C@@@@/,____*<@@@@+;@@@@FZ@@@@F?@@@@RF@@@[O@@@@@/5@@@@AQ@@@@AQ@@@@%\ZX )@@G@@@@@[O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]7@@@@# @@@@E @@@@@2@@@@MCZY )@@G@@____*<@@@@F?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZZ )@@G@@@@@@@@MRC-107 MT HDWE TRANTER 106E-2A AA )@@G@@ DARLING HF 718U/VEHICULAR JAKSA HF 718U/VEHIAB )@@G@@CULAR JAKSA @[E@[E@@@@@[N95269CL7HF1005111 HF1NA437 AC )@@G@@HF 7 HF HF @@@@[I@@@#\!@@@@@@@@@[@$@@@[@$@@@@@@@@@[@$@@@^1[@@@#0UAD )@@G@@@@@]EW@@@]EW@@@@S5@@@^1[@@@@@@@@@@@@@@@@@@@@@@@@@@@@D#@@@@P=@@@@AO@@@@@+AE )@@G@@@@@@EC@@@@EQ@@@@[?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@VEH PROD DATA SHEET CBERGERON FY-80 AG )@@G@@COMMERCIAL COLLATERAL JAKSA HF 718U/VEHICULAR JAKSA AH )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N95270CL7HF1AI )@@G@@005111 HF1NA437 HF 7 HF HF _____4____O5@@@@L6@@@AFY@@@AXO@@@@@@AJ )@@G@@@@@AXO@@@ 12____OX___"&\___"&\@@@@_=@@@ 12@@@@@@@@@@]-@@@@^2@@@@OL@@@[____I8____I8@@@@H2@@@^8)@@@@@@@@@@@@@@@@@@@@@@X.@@@]3DBM )@@G@@@@@@9;@@@@%'@@@@KQ@@@@BE@@@@]2@@@@#G@@@@J\@@@@#T@@@@#T@@@@@@@@@@@@@@@@@@BN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@719D-10/40 R+D BO )@@G@@KLEMETSON PRC 515 JOYCE HF PRC-515-PACKSETBP )@@G@@S JAKSA HF PRC-515-PACKSETS JAKSA @[E@[EBQ )@@G@@@@@@@[N95491823947005111 HF1NB314 HF 4 HF HF _____/____71@@@@]-BR )@@G@@@@@#;^@@@#.>@@@@^%@@@^]J@@@#'@____70____;]____;]@@@@[N@@@#'@@@@@@@@@@@@@BS )@@G@@@@@@@@@@@@@@@@@@@@@@@@[Z@@@@9K@@@@="@@@[%2@@@@Y>@@@@M@@@@@]-@@@@]P@@@@]PBT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@514A-7 TSO TBU )@@G@@EST KAVLIE 514A-7 DARLING BV )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR BW )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4&LN]>@^\@^\BY )@@G@@@@V@[E@@@@@[N93436823400005112 HF2NB625 HF 5 HF HF @@@@@@@@@@[-BZ )@@G@@4&LN]>@^\@^\@@V@[E@@@@@[N93436823400005112 HF2NB625 HF 5 HF HF CA )@@G@@@@@@@@@@@@[-@@@@Y;@@@RC=@@@R$Z@@@]QV@@@T.'@@@T_V@@@@[-@@@@G @@@@G @@@@%^CB )@@G@@@@@T_V@@@@_#@@@]#J@@@[Q)@@@#N%@@@[-W@@@@/U@@@[Q#@@@D.S@@@]CT___7Q2@@@@?NCC )@@G@@@@@@Y;@@@@2D@@@@2D@@@@2D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CD )@@G@@@@@@@@YUGO PACKSET P E HARO YUGO PACKSET PROD ENG CE )@@G@@ JOYCE HF PRC-515-PACKSETS JAKSA HF PRC-515-PCF )@@G@@ACKSETS JAKSA @[E@[E@@@@@[N95533823960005111 HF1NB625 CG )@@G@@HF 5 HF HF _____(____;;@@@@@@@@@@R/@@@@R/@@@@@@@@@@R/@@@@N+____;>CH )@@G@@____;>____;>@@@@@@@@@@N+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@I*CI )@@G@@@@@@DH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@499R-19A CONN KIT CKLEMETSON 499R-1CK )@@G@@9A DARLING HF 718U/VEHICULAR JAKSA CL )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N95228CL7HF1CM )@@G@@005111 HF1NB437 HF 7 HF HF _____?____KW@@@@@S@@@^(:@@@^%#@@@@@@CN )@@G@@@@@^%#@@@#'@____J/___"\?___"\?@@@@)*@@@#'@@@@[$H@@@@?S@@@@X9@@@@Z$@@@@<%CO )@@G@@@@@@^(@@@@ K@@@@B=@@@@KS@@@@DW@@@@D:@@@@@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@718U-4/5 ACCESS P E CCQ )@@G@@ACKERMAN FY-80 COMMERCIAL COLLATERAL JAKSA HF 718U/VEHICULAR CR )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[ECS )@@G@@@@@@@[N95229CL7HF1005111 HF1NB437 HF 7 HF HF @@@@@L@@@]=O@@@@0!CT )@@G@@@@@FOL@@@G^"@@@@@@@@@G^"@@@I()@@@]=+@@@]DF@@@]DF@@@[G^@@@I()@@@@(4@@@@*(CU )@@G@@@@@@"#@@@@9V@@@@.@@@ 3_@@@@@@@@@ 3_@@@^8I____^I___"3>___"3>@@@@Y:DD )@@G@@@@@^8I@@@@%6@@@@.N@@@@)K@@@@NJ@@@@43@@@@#K@@@@YL@@@@$M@@@@Q=@@@@SF@@@@Y@DE )@@G@@@@@@I]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF )@@G@@@@@@@@671U-1/2/4 PROD ENGR CACKERMAN FY-80 COMMERCIAL COLLATEDG )@@G@@RAL JAKSA HF 718U/VEHICULAR JAKSA HF 718U/VEHIDH )@@G@@CULAR JAKSA @[E@[E@@@@@[N95232CL7HF1005111 HF1NB437 DI )@@G@@HF 7 HF HF _____+___"HW@@@[NN@@@A&E@@@B9X@@@@@@@@@B9X@@@AA*___"HEDJ )@@G@@___"6F___"6F@@@@%M@@@AA*@@@@G6@@@@D6@@@@#R@@@@F*@@@@$-@@@[58____PR@@@[D,DK )@@G@@@@@[N/____,)@@@][<@@@[NN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@718U CONTROLS PE CVANDERHEI FY-80 DM )@@G@@COMMERCIAL COLLATERAL JAKSA HF 718U/VEHICULAR JAKSA DN )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N95233CL7HF1DO )@@G@@005111 HF1NB437 HF 7 HF HF @@@@@T@@@[JZ@@@@A3@@@#-.@@@#*0@@@@@@DP )@@G@@@@@#*0@@@^8)@@@[J0@@@@5$@@@@5$@@@@)/@@@^8)@@@@J-@@@@!1@@@@S^@@@@@P____BXDQ )@@G@@@@@@0(@@@@Z]@@@@!B@@@@N&@@@@-E@@@@NM@@@@A3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@718U-1/2/9 ACCES PE CDS )@@G@@KLEMETSON FY-80 COMMERCIAL COLLATERAL JAKSA HF 718U/VEHICULAR DT )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EDU )@@G@@@@@@@[N95277CL7HF1005111 HF1NB437 HF 7 HF HF _____"____.F@@@[+]DV )@@G@@@@@@/L@@@]YN@@@@@@@@@]YN@@@]WK____./@@@[H$@@@[H$@@@@MS@@@]WK@@@@@@@@@@@:DW )@@G@@@@@@[_@@@@CD@@@@TX@@@@ [@@@@[#@@@@@@@@@@@O@@@@B;@@@@D,@@@[+]@@@@@@@@@@@@DX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@719D-2A PROGDY )@@G@@/CUST SUPPORT CHARO FY-80 COMMERCIAL COLLATERAL JAKSA DZ )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR EA )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/CDYNS@^\@^\EC )@@G@@@@X@[E@@@@@[N95523CL7HF1005111 HF1NB437 HF 7 HF HF @@@@@5@@@[MXED )@@G@@SJ0"R%@^\@^\@@X@[E@@@@@[N95523CL7HF1005111 HF1NB437 HF 7 HF HF EE )@@G@@@@@@@5@@@[MX@@@@B3@@@[[S@@@[DF@@@@@@@@@[DF@@@]WK@@@[N @@@@"*@@@@"*@@@@WKEF )@@G@@@@@]WK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ E@@@@B;@@@@RC@@@@EV@@@@M0EG )@@G@@@@@@B3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@719D-2A PL CRC ASSIST CHARO FY-80 COMMERCIAL COLLATEEI )@@G@@RAL JAKSA HF 718U/VEHICULAR JAKSA HF 718U/VEHIEJ )@@G@@CULAR JAKSA @[E@[E@@@@@[N95607823991005113 HF3NC314 EK )@@G@@HF 4 HF HF @@@@@V@@@[^&@@@]ZU@@@@KA@@@]\)@@@@ N@@@]43@@@#'2@@@[ _EL )@@G@@@@@#)X@@@#)X@@@@ @@@#'2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EM )@@G@@@@@@C6@@@@#*@@@@#*@@@]ZU@@@@ N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@KILO 671U-9 OSC CARD FLYNN KILO 6EO )@@G@@71U-9 KOSKELA HF HF-80 RATHGEEP )@@G@@BER HF HF-80 RATHGEBER @[E@[E@@@@@[N95707824152EQ )@@G@@005115 HF5NC625 HF 5 HF HF @@@@@[@@@@[F@@@@]!@@@@=6@@@@$<@@@@@@ER )@@G@@@@@@$<@@@@* @@@@@+____\I____\I@@@@O@@@@@* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=6@@@@]!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FREQ CONTROL CARD MOD CEU )@@G@@GROSHONG 651S-1/851S-1 BERNER HF 51S/AMAT/LCHF/6EV )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EEW )@@G@@@@@@@[N95240CL7HF1005111 HF1NC437 HF 7 HF HF ____"(___"0M@@@@E_EX )@@G@@@@@]@@@@C+@@@@G#@@@@E_@@@@@@@@@@@@EZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@635U-1/2 PROFA )@@G@@D ENGR CROTH FY-80 COMMERCIAL COLLATERAL JAKSA FB )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR FC )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4&LN]>@^\@^\FE )@@G@@@@Y@[E@@@@@[N95255CL7HF3005113 HF3NC437 HF 7 HF HF _____G____@QFF )@@G@@2FX*!+@^\@^\@@Y@[E@@@@@[N95255CL7HF3005113 HF3NC437 HF 7 HF HF FG )@@G@@_____G____@Q@@@@EU@@@]3]@@@].W@@@@@@@@@].W@@@[.@___"_<____@G____@G@@@@D1FH )@@G@@@@@[.@@@@@IJ@@@@H%@@@@MA@@@@%?@@@@R.@@@@T1@@@@]&@@@@D.@@@@ I@@@@FJ@@@@F(FI )@@G@@@@@@EU@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FJ )@@G@@@@@@@@HF-8060 PE CROTH FY-80 COMMERCIAL COLLATEFK )@@G@@RAL RATHGEBER HF HF-80 RATHGEBER HF HF-80 FL )@@G@@ RATHGEBER @[E@[E@@@@@[N95285CL7HF5005115 HF5NC437 FM )@@G@@HF 7 HF HF _____%____>_@@@@]N@@@]PE@@@]RX@@@@@@@@@]RX@@@[.@____>+FN )@@G@@____V ____V @@@@G0@@@[.@@@@@@@@@@@#3@@@@I4@@@@LB@@@@^@@@@@FI@@@@BY@@@@R#FO )@@G@@@@@@J]@@@@S)@@@@WF@@@@]N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@651S PE PROG/CUST SUP CGROSHONG FY-80 FQ )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEFR )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95593001122FS )@@G@@005112 HF2ND423 HF 3 HF HF @@@@@)@@@]+N@@@@LE@@@@/8@@@[I]@@@^ESFT )@@G@@@@@ SU@@@B;M@@@]+8@@@].#@@@].#@@@@<\@@@B;M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FU )@@G@@@@@@@@@@@@@@@@@@@@@@@@F+@@@@RJ@@@@UB@@@@LE@@@@-C@@@@-C@@@@-C@@@@-C@@@@-CFV )@@G@@@@@@-C@@@@-4@@@@-4@@@@@@@@@@@@@@@@@@@@@@@@YUGO SUPPLEMENT =2 FW )@@G@@FEE HF MISC CONTRACT COLLATERAL JAKSA HF PRC-515-PACKSETFX )@@G@@S JAKSA HF PRC-515-PACKSETS JAKSA @[E@[EFY )@@G@@@@@@@[N95146823643005113 HF3NE625 HF HF HF @@@@@R@@@@;C@@@@@@FZ )@@G@@@@@#BB@@@#BB@@@@@@@@@#BB@@@^]&@@@@;Z@@@@;Z@@@@;Z@@@@@@@@@^]&@@@@@@@@@@@@GA )@@G@@@@@@@@@@@@@@@@@@& @@@] N@@@@@@@@@@V\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FREDERICKS DGC )@@G@@EMOD/KEYER CWEBB FREDERICKS DEMOD/KEYER KOSKELA GD )@@G@@HF HF-80 RATHGEBER HF HF-80 GE )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH )@@G@@9WQMTX@^\@^\@@Z@[E@@@@@[N95441823645005113 HF3NE625 HF 5 HF HF GI )@@G@@@@@@@U@@@@C<@@@@@@@@@@TV@@@@TV@@@@@@@@@@TV@@@@+S@@@@C.@@@@C.@@@@C.@@@@@@GJ )@@G@@@@@@+S@@@@@@@@@@@@@@@@@@@@@@@@@@@@E>@@@@CJ@@@@A$@@@@@@@@@@@@@@@@@@@@@@@@GK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GL )@@G@@@@@@@@189D-2 PHONE PATCH CWOHLLEBEN HF-80 GM )@@G@@ KOSKELA HF HF-80 RATHGEBER HF HF-80 GN )@@G@@ RATHGEBER @[E@[E@@@@@[N95559823981005113 HF3NE625 GO )@@G@@HF 5 HF HF ____;$___.QZ@@@@@@@@@#:4@@@#:4@@@@@@@@@#:4@@@@./___.MBGP )@@G@@___.MB___.MB@@@@@@@@@@./@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GQ )@@G@@@@@]9Z@@@@2P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CAIRO SUBSCRIBER N R CPARKER HF-80 GS )@@G@@ KOSKELA HF HF-80 RATHGEGT )@@G@@BER HF HF-80 RATHGEBER @[E@[E@@@@@[N95560823981GU )@@G@@005113 HF3NE625 HF 5 HF HF @@@@@@@@@@["@@@@?0@@@@^N@@@@1#@@@^XBGV )@@G@@@@@ IE@@@ K^@@@@['____\.____\.@@@[A8@@@ K^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@6@@@@#P@@@@@C@@@@?0@@@[U9@@@[HE@@@@%/@@@@T]@@@@SEGX )@@G@@@@@@S/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAIRO T/L INTEG SUPT GY )@@G@@WEBB HF-80 KOSKELA HF HF-80 GZ )@@G@@ RATHGEBER HF HF-80 RATHGEBER @[E@[EHA )@@G@@@@@@@[N95561823981005113 HF3NE625 HF 5 HF HF @@@@@=@@@LXS@@@^];HB )@@G@@@@@[0Q@@@ 3L@@@R_%@@@X2;@@@\K(@@@LX,@@@EXU@@@EXU@@@F#(@@@\K(@@@@@@@@@@@@HC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@44@@@@ ]@@@@6)@@@^];@@@F#7@@@AU_HD )@@G@@@@@AT]@@@@]2@@@@]2@@@@]I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAIRO VENDORHE )@@G@@ HARDWARE WEBB HF-80 KOSKELA HF )@@G@@HF HF-80 RATHGEBER HF HF-80 HG )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SJ0"R%@^\@^\HI )@@G@@@@)@[E@@@@@[N95562823981005113 HF3NE625 HF 5 HF HF @@@@@#@@@@::HJ )@@G@@JW'/*#@^\@^\@@)@[E@@@@@[N95562823981005113 HF3NE625 HF 5 HF HF HK )@@G@@@@@@@#@@@@::@@@E]B@@@ =U@@@J&-@@@^11@@@OSM@@@P^P@@@@?#@@@ JY@@@ JY@@@ Y\HL )@@G@@@@@P^P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=R@@@@:=@@@^OZHM )@@G@@@@@E]B@@@^!E@@@@@;@@@@@;@@@@@;@@@@@;@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HN )@@G@@@@@@@@CAIRO SUBSCRIBER R PARKER HF-80 HO )@@G@@ KOSKELA HF HF-80 RATHGEBER HF HF-80 HP )@@G@@ RATHGEBER @[E@[E@@@@@[N95581823965005114 HF4NE625 HQ )@@G@@HF 5 HF HF _____N____]=@@@@@)@@@#B3@@@#CN@@@@@@@@@#CN@@@]EG____[8HR )@@G@@____]S____]S@@@@@@@@@]EG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A$HS )@@G@@@@@@.>@@@[B0@@@@;7@@@@@)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@URG-I SPANISH VIP CPELLEY URG-I HU )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEHV )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95227CL7HF4HW )@@G@@005114 HF4NE437 HF 7 HF HF @@@@@>@@@[4V@@@@[E@@@#])@@@##%@@@@@@HX )@@G@@@@@##%@@@^8)@@@[46@@@[RO@@@[RO@@@@Y?@@@^8)@@@@WE@@@@[W@@@@J'___.-#@@@@H,HY )@@G@@@@@#S\@@@@Q$@@@@KM@@@@FV@@@@M<@@@@C*@@@@[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@URG-I PRGM/CUST SUPPORT CIA )@@G@@PELLEY FY-80 COMMERCIAL COLLATERAL RATHGEBER HF URG/CPLRS/ARC-1IB )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EIC )@@G@@@@@@@[N95231CL7HF4005114 HF4NE437 HF 7 HF HF @@@@@)@@@[<1@@@@]9ID )@@G@@@@@#L&@@@#OZ@@@@@@@@@#OZ@@@^8)@@@[=[@@@@4(@@@@4(@@@@2L@@@^8)@@@@CJ@@@@@OIE )@@G@@@@@@Y4@@@]J<@@@@E-___.Q3@@@@>/@@@[ 2@@@@2.@@@@LQ@@@@DQ@@@@]9@@@@@@@@@@@@IF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@URG-I TL R/EIG )@@G@@ ACC PE CPELLEY FY-80 COMMERCIAL COLLATERAL RATHGEBER IH )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 II )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BA_\2?@^\@^\IK )@@G@@@@-@[E@@@@@[N95258CL7HF3005113 HF3NE437 HF 7 HF HF @@@@@ @@@@T0IL )@@G@@BA_\2?@^\@^\@@-@[E@@@@@[N95258CL7HF3005113 HF3NE437 HF 7 HF HF IM )@@G@@@@@@@ @@@@T0@@@@JF@@@A:6@@@A;[@@@@@@@@@A;[@@@BO0@@@@T\____8@____8@@@@@09IN )@@G@@@@@BO0@@@[JS@@@[2>____9!___""-@@@@>H@@@@!2@@@@VH@@@[1V@@@@TZ@@@@+[@@@@Q+IO )@@G@@@@@@JF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IP )@@G@@@@@@@@HF-80 T/L ASSY PE CWEBB FY-80 COMMERCIAL COLLATEIQ )@@G@@RAL RATHGEBER HF HF-80 RATHGEBER HF HF-80 IR )@@G@@ RATHGEBER @[E@[E@@@@@[N95259CL7HF3005113 HF3NE437 IS )@@G@@HF 7 HF HF _____.____\[@@@[R @@@C%5@@@E['@@@@@@@@@E['@@@D1@____\ IT )@@G@@@@@@UZ@@@@UZ@@@@:?@@@D1@@@@@-K@@@]+Y@@@[P+@@@[?#@@@@\6@@@@<*____WR____=WIU )@@G@@@@@@?V@@@@I"@@@[P6@@@[R @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF-80 PROG/CUST SUPPORT CWEBB FY-80 IW )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF HF-80 RATHGEIX )@@G@@BER HF HF-80 RATHGEBER @[E@[E@@@@@[N93202823332IY )@@G@@005115 HF5NF111 HF 1 HF HF _____H___/YH@@@@@@@@@E&C@@@E&C@@@@@@IZ )@@G@@@@@E&C@@@B#=___/XV___/XV___/XV@@@@@@@@@B#=@@@@@@@@@]J @@@@@C___.0'@@@@@@JA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C1.1 R/E.D CJC )@@G@@KOSKELA C BERNER HF 51S/AMAT/LCHF/6JD )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EJE )@@G@@@@@@@[N93206823332005115 HF5NF111 HF 1 HF HF _____%___"Z+@@@@@@JF )@@G@@@@@C>'@@@C>'@@@@@@@@@C>'@@@B C___"ZH___"ZH___"ZH@@@@@@@@@B C@@@@@@@@@@D@JG )@@G@@@@@@S-@@@@RF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C2.0 CE JI )@@G@@ COLSON C BERNER JJ )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S JK )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JN )@@G@@D?9?6,@^\@^\@@+@[E@@@@@[N93218823333005115 HF5NF111 HF 1 HF HF JO )@@G@@_____+____UK@@@@@@@@@]&O@@@]&O@@@@@@@@@]&O@@@]@C____T3____T3____T3@@@@@@JP )@@G@@@@@]@C@@@@ ?@@@@D%@@@@='@@@@QW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JR )@@G@@@@@@@@F4.2 AD CKOSKELA F JS )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/JT )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N93219823334005115 HF5NF111 JU )@@G@@HF 1 HF HF _____S___"T@@@@@@@@@@ :E@@@ :E@@@@@@@@@ :E@@@^#=___"STJV )@@G@@___"ST___"ST@@@@@@@@@^#=@@@@@@@@@[E0@@@@*[@@@@I<@@@@@@@@@@@@@@@@@@@@@@@@JW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@A1.1 PDI CLUNDBERG A JY )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEJZ )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95074823334KA )@@G@@005115 HF5NF111 HF 1 HF HF ____.F___;TZ@@@@@@@@@BIU@@@BIU@@@@@@KB )@@G@@@@@BIU@@@]>A___;Q:___;Q:___;Q:@@@@@@@@@]>A@@@[!9@@@[$ @@@[^.@@@@L"@@@@]9KC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A1.3 R/E MOD CKE )@@G@@LUNDBERG A BERNER HF 51S/AMAT/LCHF/6KF )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EKG )@@G@@@@@@@[N95076823334005115 HF5NF111 HF 1 HF HF @@@@@X@@@@H$@@@@@@KH )@@G@@@@@@-Q@@@@-Q@@@@@@@@@@-Q@@@@\U@@@@I^@@@@I^@@@@I^@@@@@@@@@@\U@@@@ %@@@@^HKI )@@G@@@@@@#0@@@@[I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A1.5 OA KK )@@G@@ CSMITH A BERNER KL )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S KM )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JW'/*#@^\@^\KO )@@G@@@@<@[E@@@@@[N95077823334005115 HF5NF111 HF 1 HF HF ____;>___;6JKP )@@G@@D+DW\'@^\@^\@@<@[E@@@@@[N95077823334005115 HF5NF111 HF 1 HF HF KQ )@@G@@____;>___;6J@@@@@@@@@ !6@@@ !6@@@@@@@@@ !6@@@[Z?___;15___;15___;15@@@@@@KR )@@G@@@@@[Z?@@@@-2@@@@XN@@@@RW@@@]O=@@@[RX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KT )@@G@@@@@@@@A1.6 FCB CSMITH A KU )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/KV )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95333823684005115 HF5NF111 KW )@@G@@HF 1 HF HF _____<___")W@@@@Q#@@@AU^@@@A0B@@@@@@@@@A0B@@@ KH___") KX )@@G@@___"17___"17@@@@^L@@@ KH@@@@@@@@@@@@@@@@@@@@@[#Q@@@@.C@@@@95@@@@03@@@@&[KY )@@G@@@@@@/5@@@@8T@@@@N\@@@@Q#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@C2.0 CE WILLS C1/2/3LA )@@G@@/4/5 BERNER HF 51S/AMAT/LCHF/651S/851S RATHGELB )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95337823685LC )@@G@@005115 HF5NF111 HF 1 HF HF _____9____84____%=@@@[=9@@@[JY@@@@!XLD )@@G@@@@@[/;@@@[5G____8K____O?____O?@@@@JW@@@[5G@@@@@@@@@@@@@@@@@@@@@[LC@@@@@@LE )@@G@@@@@@@@@@@@@@@@@@24____ZR@@@@[>@@@@@@____%=@@@@:N@@@@]E@@@@@@@@@@@@@@@@@@LF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F4.5 HF-280 ENV TESTS LG )@@G@@BARNUM HF-280 TESTS/DEV BERNER HF 51S/AMAT/LCHF/6LH )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[ELI )@@G@@@@@@@[N95338823685005115 HF5NF111 HF 1 HF HF ____""___.BR@@@@N5LJ )@@G@@@@@ )<@@@ 4S@@@[-*@@@BQ@@@@^WS___.AR___.BR___.BR@@@@P(@@@^WS@@@@@@@@@@@@LK )@@G@@@@@@@@@@@^06@@@@D-____52@@@@JO@@@@@X@@@@)*@@@@@@@@@@@@@@@@N5@@@@%T@@@@-^LL )@@G@@@@@@I,@@@@BX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F4.4 HF-280LM )@@G@@ FCC TESTING BARNUM HF-280 TESTS/DEV BERNER LN )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S LO )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P'@[E@@@@@[N95350823683005115 HF5NF111 HF 1 HF HF MU )@@G@@_____7____1,@@@@B>@@@],A@@@]5:@@@@@@@@@]5:@@@]$Q____1%____7/____7/@@@@[NMV )@@G@@@@@]$Q@@@@@@@@@@@@@@@@@@@@@@C>@@@@H?@@@@UV@@@@V"@@@@X:@@@@>R@@@@OE@@@@EKMW )@@G@@@@@@B>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MX )@@G@@@@@@@@A1.5 OA SMITH HF REC/AMATEUR PROGRAMS MY )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/MZ )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95351823683005115 HF5NF111 NA )@@G@@HF 1 HF HF _____5____-R@@@@A]@@@^.U@@@ #W@@@@@@@@@ #W@@@^=:____-INB )@@G@@____=?____=?@@@@]=@@@^=:@@@@@@@@@@@@@@@@@@@@@@Q\@@@@?0@@@@<\@@@@7)@@@@4RNC )@@G@@@@@@=Y@@@@:6@@@@U[@@@@A]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ND )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@A1.6 FCB SMITH HF RECNE )@@G@@/AMATEUR PROGRAMS BERNER HF 51S/AMAT/LCHF/651S/851S RATHGENF )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95352823683NG )@@G@@005115 HF5NF111 HF 1 HF HF ____"4___;T8@@@[?0@@@D[[@@@E!1@@@@@@NH )@@G@@@@@E!1@@@AA*___;S6___;/3___;/3@@@[C3@@@AA*@@@@@@@@@@@@@@@@@@@@@@@6@@@@P'NI )@@G@@@@@@HY@@@@AI@@@@[J@@@@Y"@@@#E$@@@^:1@@@[?0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A1.7 BLD/TEST NK )@@G@@LUNDBERG HF REC/AMATEUR PROGRAMS BERNER HF 51S/AMAT/LCHF/6NL )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[ENM )@@G@@@@@@@[N95353823683005115 HF5NF111 HF 1 HF HF @@@@@%@@@]*G@@@@Q]NN )@@G@@@@@#KE@@@#&G@@@@@@@@@#&G@@@AI7@@@]*:@@@[/)@@@[/)@@@[]H@@@AI7@@@@@@@@@@@@NO )@@G@@@@@@@@@@@@@@@@@@])@@@@# @@@@@T@@@@K6@@@[G>@@@@,Q@@@@"V@@@@Q]@@@@@@@@@@@@NP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A3.0 ACCESSONQ )@@G@@RY DES SMITH HF REC/AMATEUR PROGRAMS BERNER NR )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S NS )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D+DW\'@^\@^\NU )@@G@@@@&@[E@@@@@[N95362823682005115 HF5NF111 HF 1 HF HF @@@@[W@@@]I'NV )@@G@@4*A,,U@^\@^\@@&@[E@@@@@[N95362823682005115 HF5NF111 HF 1 HF HF NW )@@G@@@@@@[W@@@]I'@@@@[&@@@@EY@@@@G^@@@@@@@@@@G^@@@]WK@@@]KG@@@][E@@@][E@@@@K*NX )@@G@@@@@]WK@@@@@@@@@@@@@@@@@@@@@@^U@@@@ Y@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&@@@@@@NY )@@G@@@@@@[&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NZ )@@G@@@@@@@@R1.1 PROD DES/INTEG VONDERHEIDE HF REC/AMATEUR PROGRAMS OA )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/OB )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95448823943005115 HF5NF625 OC )@@G@@HF 5 HF HF _____Y____'6@@@@@@@@@@Q=@@@@Q=@@@@@@@@@@Q=@@@@K'____'POD )@@G@@____'P____'P@@@@@@@@@@K'@@@@@@@@@@@@@@@@@@@@@@@@@@@@]*@@@@@@@@@@@@@@@@@@OE )@@G@@@@@@N/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@YUGO 30S-1 SYSTEM DEMO CSMITH YUGO 3OG )@@G@@0S-1 BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEOH )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N94807CL7HF5OI )@@G@@005115 HF5NF437 HF 7 HF HF ____.X___0G9____5T@@@T1J@@@T&(@@@@@@OJ )@@G@@@@@T&(@@@D1@___0EQ___\_0___\_0@@@@@@@@@D1@@@@]5-@@@]]X@@@[X*@@@@$X@@@@P4OK )@@G@@@@@@ U@@@@##@@@@@*____"I@@@@@@@@@@@@____5T@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@6/20 CH PARTS ORDER COM )@@G@@BARNUM FY-80 COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/6ON )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EOO )@@G@@@@@@@[N95073CL7HF5005115 HF5NF437 HF 7 HF HF ____"N___9I%@@@@@@OP )@@G@@@@@H#:@@@H#:@@@@@@@@@H#:@@@AK%___9G"___9G"___9G"@@@@@@@@@AK%@@@E0F@@@J OOQ )@@G@@@@@@N%___0$*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-280 TRANSOS )@@G@@ COLLATERAL CKOSKELA FY-80 COMMERCIAL COLLATERAL RATHGEBER OT )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S OU )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P'<@@@@+I@@@[W.@@@[W.@@@@!/@@@B><@@@@@@@@@@@@RW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GA@@@[()@@@[DM@@@]V2@@@[*:@@@@@@@@@@@@RX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-280( ) PTRY )@@G@@L MTL SPT LUNDBERG FY-80 COMMERCIAL COLLATERAL RATHGEBER RZ )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S SA )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK$N65@^\@^\SC )@@G@@@@%@[E@@@@@[N95644CL7HF5005115 HF5NF437 HF 7 HF HF @@@@@)@@@#8ASD )@@G@@@"T^5;@^\@^\@@%@[E@@@@@[N95644CL7HF5005115 HF5NF437 HF 7 HF HF SE )@@G@@@@@@@)@@@#8A@@@^;0@@@[+.@@@AY!@@@[Y#@@@B/0@@@F5=@@@#84@@@ )(@@@ )(@@@#92SF )@@G@@@@@F5=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X@@@@ $@@@[W9SG )@@G@@@@@^;0@@@@'B@@@@____3R____9(____9(@@@@^S@@@@M>@@@@@@@@@@@@SY )@@G@@@@@@@@@@@@@@@@@@]:@@@@@_@@@@]"@@@@#B@@@@^D@@@@@@@@@@A:@@@@A^@@@@^&@@@@@@SZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAPTOR 500 DTA )@@G@@ECODERS REL NELSON HF MISC CONTRACT COLLATERAL JAKSA TB )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR TC )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TF )@@G@@6$]L6.@^\@^\@@:@[E@@@@@[N93386001144005114 HF4OA423 HF 3 HF HF TG )@@G@@@@@@@M@@@@TD@@@@@@@@@[?0@@@[?0@@@@@@@@@[?0@@@]AF@@@@TV@@@@TV@@@@TV@@@@@@TH )@@G@@@@@]AF@@@@]V@@@@IC@@@@@Y@@@@GP@@@@MI@@@@IX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TJ )@@G@@@@@@@@TSC-60 PHASE 3 REL CNELSON HF MISC CONTRACT COLLATETK )@@G@@RAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSTL )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N94989823057005116 HF6OA625 TM )@@G@@HF 5 HF HF _____3____.3@@@@@@@@@@N?@@@@N?@@@@#A@@@@Q2@@@@OO____.-TN )@@G@@____/D____/D@@@@[Y@@@@OO@@@@]L@@@@BD____2%@@@@@B@@@@@[@@@@@@@@@@@@_____+TO )@@G@@@@@@[N@@@@@*@@@@^%@@@@@@@@@@[<@@@@[<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 HF CPLR LOT II REL PRINGNITZ CP-140TQ )@@G@@ PROGRAM DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDTR )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95080823321TS )@@G@@005116 HF6OA625 HF 5 HF HF _____J____1.@@@@@@@@@@!E@@@@!E@@@@@@TT )@@G@@@@@@!E@@@@YS____1H____1H____1H@@@@@@@@@@YS@@@@J9@@@@JB@@@@A$@@@@@@@@@@@@TU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD REL COLLATERAL CTW )@@G@@PRIGNITZ NIMROD DAVID HF E-2C/S-3A/HF-12TX )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ETY )@@G@@@@@@@[N95149823651005114 HF4OA625 HF 5 HF HF @@@@@]@@@@@R@@@@#@TZ )@@G@@@@@@O/@@@@R/@@@@]N@@@@UJ@@@@U3@@@@@=@@@@#%@@@@#%@@@@]H@@@@U3@@@@@@@@@@@@UA )@@G@@@@@@@@@@@@^M@@@@[&@@@@@@@@@@[\@@@@[]@@@@#*@@@@]]@@@@A(@@@@#@@@@@]N@@@@@@UB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E-3A HF REL-UC )@@G@@LOT IV NELSON AWACS ZIMMERMAN UD )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 UE )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\=:'F^@^\@^\UG )@@G@@@@?@[E@@@@@[N95190823057005116 HF6OA625 HF 5 HF HF _____$____;KUH )@@G@@\=:'F^@^\@^\@@?@[E@@@@@[N95190823057005116 HF6OA625 HF 5 HF HF UI )@@G@@_____$____;K@@@@@@@@@@IK@@@@IK@@@@F%@@@@T'@@@@O0____'5____'K____'K@@@@@8UJ )@@G@@@@@@O0@@@@@@@@@@@@@@@@@<@@@@^]@@@@^A@@@@[R@@@@@@@@@@[R@@@@[9@@@@@;@@@@@#UK )@@G@@@@@@@@@@@@@;@@@@@;@@@@[]@@@@[]@@@@[=@@@@[]@@@@[]@@@@[]@@@@[]@@@@[]@@@@[]UL )@@G@@@@@@@@CP-140 HF CPLR REL DATA PRIGNITZ CP-140 PROGRAM UM )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AUN )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95470823910005114 HF4OA625 UO )@@G@@HF 5 HF HF @@@@@,@@@@-C@@@@ @@@@@X#@@@@+#@@@@^&@@@@&(@@@[CV@@@@-2UP )@@G@@@@@@ZA@@@@ZA@@@@GM@@@[CV@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BW@@@@EYUQ )@@G@@@@@@]^@@@@#<@@@@ +@@@@ @@@@@^&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@TSC 60 PHASE IV REL NELSON TSC-60US )@@G@@ IV ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEUT )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95638829795UU )@@G@@005114 HF4OA625 HF 5 HF HF @@@@@A@@@@]A@@@@[@@@@@VR@@@@WR@@@@@@UV )@@G@@@@@@WR@@@@YV@@@@]^_____Q_____Q@@@@#!@@@@YV@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@&@@@@U1@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-47 REL DATA CUY )@@G@@NELSON DDG-47 PRGM ZIMMERMAN HF URG/CPLRS/ARC-1UZ )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EVA )@@G@@@@@@@[N95817829913005114 HF4OA625 HF 5 HF HF @@@@@^@@@@@:@@@@@@VB )@@G@@@@@@@@@@@@@@@@@@JH@@@@JH@@@@J8@@@@@:@@@@@@@@@@@@@@@@@@@@@@J8@@@@@@@@@@@@VC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^]@@@@^]VD )@@G@@@@@@#B@@@@^]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@490R-8 COUPLVE )@@G@@ER-RELIABILITY MINTON 490 R-8 ANT CPLR ZIMMERMAN VF )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 VG )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OK5A *@^\@^\VI )@@G@@@@!@[E@@@@@[N95818823978005114 HF4OA625 HF 5 HF HF @@@@@E@@@@#CVJ )@@G@@OK5A *@^\@^\@@!@[E@@@@@[N95818823978005114 HF4OA625 HF 5 HF HF VK )@@G@@@@@@@E@@@@#C@@@@@@@@@@@@@@@@@@@@@@U8@@@@U8@@@@Y@@@@@#C@@@@@@@@@@@@@@@@@@VL )@@G@@@@@@Y@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VM )@@G@@@@@@@@@@@@ S@@@@ S@@@@ S@@@@ S@@@@ S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VN )@@G@@@@@@@@490T-1 RELIABILITY PE MINTON COUPLER GROUP VO )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSVP )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N95251CL7HF4005114 HF4OA437 VQ )@@G@@HF 7 HF HF @@@@@X@@@@^A@@@@]&@@@@CX@@@@F#@@@@@@@@@@F#@@@@J*@@@@^>VR )@@G@@@@@@^"@@@@^"@@@@]H@@@@J*____72@@@@[&@@@@]:@@@@]\@@@@#J@@@@[,@@@@@)@@@@#BVS )@@G@@@@@@@@@@@@@@@@@@[A@@@@]&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@URG II PROD ENGR REL CNELSON FY-80 VU )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEVV )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95262CL7HF3VW )@@G@@005113 HF3OA437 HF 7 HF HF _____2____$0@@@@@4@@@#ND@@@#N.@@@@@@VX )@@G@@@@@#N.@@@];)____$+____>E____>E@@@@#G@@@];)@@@@#P@@@@OW@@@@DF@@@@++@@@@(UVY )@@G@@@@@@S6@@@@5V@@@@N,@@@@^J@@@@@#@@@@@@@@@@@4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-80 PROD ENGR-REL CWA )@@G@@PRIGNITZ FY-80 COMMERCIAL COLLATERAL RATHGEBER HF HF-80 WB )@@G@@ RATHGEBER HF HF-80 RATHGEBER @[E@[EWC )@@G@@@@@@@[N95296CL7HF1005111 HF1OA437 HF 7 HF HF _____!____YJ@@@@YEWD )@@G@@@@@]_K@@@#XU@@@@@@@@@#XU@@@];)____Y ____?<____?<@@@@J?@@@];)@@@@@@@@@@[*WE )@@G@@@@@@^^@@@@ A@@@@PG____.*@@@@R<@@@@2Y@@@@QY@@@@$@@@@@UE@@@@YE@@@@@@@@@@@@WF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@718U PROD ENWG )@@G@@GR REL CLEWIS FY-80 COMMERCIAL COLLATERAL JAKSA WH )@@G@@HF 718U/VEHICULAR JAKSA HF 718U/VEHICULAR WI )@@G@@JAKSA @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WL )@@G@@N#Z0J5@^\@^\@@,@[E@@@@@[N95297CL7HF5005115 HF5OA437 HF 7 HF HF WM )@@G@@@@@@[A@@@@P @@@@[)@@@@B%@@@@DE@@@@@@@@@@DE@@@@ZK@@@@QA@@@@O-@@@@O-@@@@# WN )@@G@@@@@@ZK@@@@@@@@@@@@@@@@@@@@@@@@@@@@]V@@@@@@@@@@[Z@@@@@@@@@@[<@@@@@@@@@@]HWO )@@G@@@@@@[)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WP )@@G@@@@@@@@AMATEUR EQUIP PROD-REL CNELSON FY-80 COMMERCIAL COLLATEWQ )@@G@@RAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/WR )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95298CL7HF5005115 HF5OA437 WS )@@G@@HF 7 HF HF @@@@@-@@@@OL@@@@A6@@@@+8@@@@(,@@@@@@@@@@(,@@@@")@@@@O2WT )@@G@@@@@@P#@@@@P#@@@@A>@@@@")@@@@@@@@@@@@@@@@[&@@@@@@@@@@#_@@@@^X@@@@#"@@@@CHWU )@@G@@@@@@^D@@@@#<@@@@^_@@@@A6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@LOW COST HF PROD-REL CNELSON FY-80 WW )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEWX )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95299CL7HF5WY )@@G@@005115 HF5OA437 HF 7 HF HF @@@@@(@@@@TV@@@@ P@@@@ZB@@@@=W@@@@@@WZ )@@G@@@@@@=W@@@@")@@@@U^@@@@T5@@@@T5@@@@ =@@@@")@@@@@@@@@@@@@@@@@@@@@@@@@@@@[RXA )@@G@@@@@@[L@@@@ X@@@@BC@@@@^3@@@@ >@@@@ +@@@@ P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@651S RCVRS PROD-REL CXC )@@G@@NELSON FY-80 COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/6XD )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EXE )@@G@@@@@@@[N95336823684005115 HF5OC111 HF 1 HF HF @@@@[B@@@@PN@@@@@@XF )@@G@@@@@@#]@@@@#]@@@@ "@@@@D@@@@@ZK@@@@QK@@@@NN@@@@NN@@@@# @@@@ZK@@@@@@@@@@@@XG )@@G@@@@@@@@@@@@@@@@@@]C____"F@@@@@S@@@@@@@@@@@@@@@@@@@@@@]Q@@@@@@@@@@#K@@@@],XH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C5.0 ME XI )@@G@@ ROGERS C1/2/3/4/5 BERNER XJ )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S XK )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\=:'F^@^\@^\XM )@@G@@@@\@[E@@@@@[N95393823907005116 HF6OC625 HF 5 HF HF @@@@@.@@@[S(XN )@@G@@;%G0 O@^\@^\@@\@[E@@@@@[N95393823907005116 HF6OC625 HF 5 HF HF XO )@@G@@@@@@@.@@@[S(@@@@@ @@@@?A@@@@?F@@@@F?@@@@77@@@]LQ@@@[TZ@@@[I2@@@[I2@@@@FCXP )@@G@@@@@]LQ@@@@@@@@@@@@@@@@@@@@@@]Q@@@@D'@@@@G1@@@@[%@@@@I>@@@@@@@@@@]@@@@@@6XQ )@@G@@@@@@@ @@@@F?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XR )@@G@@@@@@@@CP-140 PGSE HUMAN FACTORS NIDAY CP-140 XS )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AXT )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N94836823530005112 HF2OD314 XU )@@G@@HF 4 HF HF @@@@]G@@@GM]@@@@@@___/W(___/W(@@@@@@___/W(@@@C08@@@GOIXV )@@G@@@@@GOI@@@GOI@@@@@@@@@C08@@@@@B_____[_____*@@@@@@@@@@@@@@@@@@@@@@@@___8X+XW )@@G@@___"UG___"7#_____-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@YUGO 969J-3 PTL BUILD CJACKSON YUGO XY )@@G@@ JOYCE HF PRC-515-PACKSETS JAKSA XZ )@@G@@ HF PRC-515-PACKSETS JAKSA @[E@[E@@@@@[N93029001144YA )@@G@@005114 HF4OE423 HF 3 HF HF _____4____"Z@@@@@@@@@@K?@@@@K?@@@@@@YB )@@G@@@@@@K?@@@@J[____"O____"O____"O@@@@@@@@@@J[@@@@[H@@@@^2@@@@@_@@@@ L@@@@@@YC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MK825 BUILD/TEST CYE )@@G@@LIPP HF MISC CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-1YF )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EYG )@@G@@@@@@@[N93468001144005114 HF4OE423 HF 3 HF HF @@@@@^@@@@ Z@@@@@@YH )@@G@@@@@[.K@@@[.K@@@@@@@@@[.K@@@]]3@@@@ <@@@@ <@@@@ <@@@@@@@@@]]3@@@@A[@@@@LYYI )@@G@@@@@@B2@@@@U_@@@@[S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARM-86 TURKEYK )@@G@@Y T E CLIPP HF MISC CONTRACT COLLATERAL RATHGEBER YL )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 YM )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OK5A *@^\@^\YO )@@G@@@@0@[E@@@@@[N93469001144005114 HF4OE423 HF 3 HF HF @@@@@ @@@@A6YP )@@G@@*6CN)A@^\@^\@@0@[E@@@@@[N93469001144005114 HF4OE423 HF 3 HF HF YQ )@@G@@@@@@@ @@@@A6@@@@@@@@@[;8@@@[;8@@@@@@@@@[;8@@@]]3@@@@A;@@@@A;@@@@A;@@@@@@YR )@@G@@@@@]]3@@@@A@@@@@H.@@@@F,@@@@SZ@@@@#'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YT )@@G@@@@@@@@ARM-86 GREECE T E CLIPP HF MISC CONTRACT COLLATEYU )@@G@@RAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSYV )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N94841001144005114 HF4OE423 YW )@@G@@HF 3 HF HF @@@@@]@@@@]^@@@@@@@@@[NY@@@[NY@@@@@@@@@[NY@@@[P=@@@@]AYX )@@G@@@@@@]A@@@@]A@@@@@@@@@[P=@@@@#[@@@@ =@@@@FW@@@@KH@@@@C)@@@@L0@@@@@@@@@@^GYY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@AN/GRM-107 TEST SET CDAY HF MISZA )@@G@@C CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEZB )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95085001122ZC )@@G@@005112 HF2OE423 HF 3 HF HF _____K____W[@@@@@@@@@[1L@@@[1L@@@@@@ZD )@@G@@@@@[1L@@@[G=____VM____VM____VM@@@@@@@@@[G=@@@@?0@@@@YP@@@@K$@@@@I7@@@@@@ZE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YUGO TE CZG )@@G@@DAY HF MISC CONTRACT COLLATERAL JAKSA HF PRC-515-PACKSETZH )@@G@@S JAKSA HF PRC-515-PACKSETS JAKSA @[E@[EZI )@@G@@@@@@@[N95378823908005112 HF2OE314 HF 4 HF HF _____)____<:@@@@@@ZJ )@@G@@@@@[74@@@[74@@@@@@@@@[74@@@[V[____ZZ )@@G@@____S>____S>@@@@@@@@@[5,@@@@Y-@@@@!^@@@@,P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@699W-1/URG-1 ADAPTER CHAMMOND URG-1 AC )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEAD )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95022823568AE )@@G@@005114 HF4OE625 HF 5 HF HF @@@@@#@@@@^@@@@@@@@@@[%0@@@[%0@@@@@@AF )@@G@@@@@[%0@@@[,3@@@@^#@@@@^#@@@@^#@@@@@@@@@[,3@@@@&L@@@@$D@@@@L@@@@@@@@@@@^UAG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JORDANIAN TEST EQUIPMENT CAI )@@G@@WALKER JORDANIAN TE ZIMMERMAN HF URG/CPLRS/ARC-1AJ )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EAK )@@G@@@@@@@[N95063823576005114 HF4OE625 HF 5 HF HF _____&____W^@@@@@HAL )@@G@@@@@]0T@@@]0&@@@@@Q@@@]0/@@@]G*____V:____V5____V5@@@@@@@@@]G*@@@@I4@@@[#;AM )@@G@@@@@@K8@@@@KB@@@@ Q____XC@@@@IF@@@@S&@@@@B.@@@@#2@@@@@A@@@@@H@@@@@@@@@@@QAN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TWO TONE GENAO )@@G@@ ARC-109/URG 2 LIPP ARC-109/URG II GEN ZIMMERMAN AP )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 AQ )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.&%- +@^\@^\AS )@@G@@@@2@[E@@@@@[N95072829790005116 HF6OE625 HF 5 HF HF _____$____4BAT )@@G@@.&%- +@^\@^\@@2@[E@@@@@[N95072829790005116 HF6OE625 HF 5 HF HF AU )@@G@@_____$____4B@@@@@@@@@@"]@@@@"]@@@@@@@@@@"]@@@@12____3\____3\____3\@@@@@@AV )@@G@@@@@@12@@@@>H@@@@#_____>R@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AX )@@G@@@@@@@@E2C EXTENDER CABLE HAWKEYE CHOTEVEC E-2C HAWKEYE AY )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AAZ )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95089829789005116 HF6OE625 BA )@@G@@HF 5 HF HF _____=____5$@@@@@@@@@@2#@@@@2#@@@@@@@@@@2#@@@@$K____5GBB )@@G@@____5G____5G@@@@@@@@@@$K@@@@K>@@@@P0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@E2C EXTENDER CABLES CLAMMERS E-2C EBE )@@G@@XT CBLS DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDBF )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95090823526BG )@@G@@005114 HF4OE625 HF 5 HF HF @@@@@C@@@@[V@@@@@@@@@@K&@@@@K&@@@@@@BH )@@G@@@@@@K&@@@@MD@@@@[<@@@@[<@@@@[<@@@@@@@@@@MD@@@@CJ@@@@ 1@@@@@@@@@@@@@@@@@@BI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TSC-60 TWO TONE GEN CBK )@@G@@LIPP TSC-60 TWO TONE GEN ZIMMERMAN HF URG/CPLRS/ARC-1BL )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EBM )@@G@@@@@@@[N95159823604005114 HF4OE625 HF 5 HF HF _____+____+L@@@@@@BN )@@G@@@@@]#\@@@]#\@@@@@@@@@]#\@@@[>=____-4____-4____-4@@@@@@@@@[>=@@@@@@@@@@@@BO )@@G@@@@@@+=@@@[S[@@@@/0@@@@A[@@@@@@@@@@@@____AR@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@BP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TWO-TONE GENBQ )@@G@@ GERMANY CLIPP TWO-TONE GEN ZIMMERMAN BR )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 BS )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*6CN)A@^\@^\BU )@@G@@@@3@[E@@@@@[N95168829795005114 HF4OE625 HF 5 HF HF @@@@@[@@@@[?BV )@@G@@KV.Y9!@^\@^\@@3@[E@@@@@[N95168829795005114 HF4OE625 HF 5 HF HF BW )@@G@@@@@@@[@@@@[?@@@@#%@@@@(<@@@@!H@@@@+Y@@@[J:@@@[LJ@@@@[=____9X____9X@@@@O*BX )@@G@@@@@[LJ@@@@@@@@@@[M@@@@@_@@@@ 1@@@@]G@@@@^-@@@@F0@@@@@@@@@@@@@@@@#P@@@@F\BY )@@G@@@@@@#%@@@@MZ@@@@ O@@@@E:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BZ )@@G@@@@@@@@DDG-47 DATA AGE NORDBY DDG-47 PRGM CA )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSCB )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N95189823556005116 HF6OE625 CC )@@G@@HF 5 HF HF _____3___"9"@@@@[*@@@E[F@@@E]3@@@@@@@@@E]3@@@C/$___"93CD )@@G@@___";V___";V@@@@@@@@@C/$@@@@@@@@@@@@@@@]YM@@@^U8@@@]&A@@@@UB@@@@B4@@@@@@CE )@@G@@@@@@@@@@@@@@@@@@@@@@@@[*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@SARA FACT TEST FIX CHANSON SARA HCG )@@G@@F DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDCH )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95192823646CI )@@G@@005113 HF3OE625 HF 5 HF HF _____K____$\@@@@[6@@@[F%@@@[H)@@@@@@CJ )@@G@@@@@[H)@@@@4>____$^____*'____*'@@@@@@@@@@4>@@@@@@@@@@@@@@@@E @@@@K_@@@@Y@@@]GE@@@#'\@@@#%4____0^____04____04@@@@@@EB )@@G@@@@@#%4@@@@@@@@@@@@@@@@@@@@@@@@@@@@GP@@@[]$@@@@UP@@@@[Z@@@@@@@@@@@^@@@@@NEC )@@G@@@@@@#Y@@@@PZ@@@@VP@@@[VQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ED )@@G@@@@@@@@CP-140 PGSE COMMON TE(15028) DAY CP-140 EE )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AEF )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95396823907005116 HF6OE625 EG )@@G@@HF 5 HF HF _____/____IK@@@#J=@@@J_0@@@NJO@@@#1Z@@@R@3@@@QJ^____IKEH )@@G@@@@@@#V@@@@#V@@@]T<@@@QJ^@@@@@@@@@@@@@@@@@@@@@@D!@@@]D@@@@[JE@@@[6!@@@]0JEI )@@G@@@@@]7'@@@]D1@@@]5M@@@#J=@@@]]V@@@[CV@@@@&(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 PGSE CONSOLE TE JAMIESON CP-140EK )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDEL )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95397823907EM )@@G@@005116 HF6OE625 HF 5 HF HF _____1___.V.@@@]X-@@@KWO@@@M95@@@@67EN )@@G@@@@@N0?@@@LG>___.V8____ >____ >@@@@8*@@@LG>@@@@@@@@@@@@@@@@@@@@@@N2@@@]NMEO )@@G@@@@@#K]@@@]^4@@@#^6@@@]GN@@@[YC@@@[1D@@@]X-@@@@>P@@@@L+@@@@@@@@@@@@@@@@@@EP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 PGSE 548U-10 TE EQ )@@G@@LAWRENCE CP-140 DAVID HF E-2C/S-3A/HF-12ER )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EES )@@G@@@@@@@[N95473823911005114 HF4OE625 HF 5 HF HF @@@@@D@@@@[U@@@@^*ET )@@G@@@@@@@'@@@@ +@@@@C]@@@@H=@@@@J@@@@@[W@@@@@O@@@@@O@@@@^;@@@@J@@@@@@@@@@@@@EU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'@@@@@@@@@@^*@@@@]+@@@@]0EV )@@G@@@@@@]0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@975K-4 TEST EW )@@G@@SET TE LIPP 975K-4 ZIMMERMAN EX )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 EY )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,-SVG[@#=@@@FA )@@G@@@@6@[E@@@@@[N95600823565005112 HF2OE625 HF 5 HF HF _____J____+^FB )@@G@@,-SVG[@#=@@@@@6@[E@@@@@[N95600823565005112 HF2OE625 HF 5 HF HF FC )@@G@@_____J____+^@@@@P@@@@[ J@@@[UJ@@@@#)@@@[X\@@@@_F____-V____>_____>_@@@@N/FD )@@G@@@@@@_F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@@@G%@@@@8VFE )@@G@@@@@@P@@@@@#)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FF )@@G@@@@@@@@YUGO TE COLLATERAL (4043) DAY YUGO/ST FG )@@G@@ JOYCE HF PRC-515-PACKSETS JAKSA HF PRC-515-PFH )@@G@@ACKSETS JAKSA @[E@[E@@@@@[N95250CL7HF1005111 HF1OE437 FI )@@G@@HF 7 HF HF @@@@@[@@@@#L@@@@I5@@@](U@@@]8J@@@@@@@@@]8J@@@];)@@@@#LFJ )@@G@@@@@@[#@@@@[#@@@@L#@@@];)@@@@CE@@@@U/@@@@M;@@@@BO@@@@^'@@@@I,@@@@II@@@@S@FK )@@G@@@@@@F,@@@@G+@@@@T_@@@@I5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF MISC TEST SETS HANSEN FY-80 FM )@@G@@COMMERCIAL COLLATERAL JAKSA HF 718U/VEHICULAR JAKSA FN )@@G@@ HF 718U/VEHICULAR JAKSA @[E@[E@@@@@[N93328829732FO )@@G@@005111 HF1OS625 HF 5 HF HF @@@@@A@@@@VU@@@@@@@@@A%W@@@A%W@@@@@@FP )@@G@@@@@A%W@@@B /@@@@V)@@@@V)@@@@V)@@@@@@@@@B /@@@[XZ@@@@,H@@@@[>@@@@@@@@@@@@FQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RAVEN LIFE CYCLE STUDY CFS )@@G@@STORDAHL RAVEN DARLING HF 718U/VEHICULAR FT )@@G@@ JAKSA HF 718U/VEHICULAR JAKSA @[E@[EFU )@@G@@@@@@@[N95326823647005116 HF6OE625 HF 5 HF HF @@@@@#@@@@\O@@@@ "FV )@@G@@@@@L_3@@@M 1@@@@A'@@@MG:@@@M/]@@@@\R@@@@!K@@@@!K@@@@BV@@@M/]@@@@@@@@@@@@FW )@@G@@@@@@^.@@@]V]@@@E)2@@@[Q8@@@[R$@@@[B8@@@@/6@@@@E]@@@@[3@@@@ "@@@@A'@@@@@@FX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-121 TE (NFY )@@G@@IMROD) DAY HF-121 PROGRAM DAVID FZ )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR GA )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GD )@@G@@E]O+@.@^\@^\@@[@[E@@@@@[N93222823335005115 HF5%A111 HF 1 HF HF GE )@@G@@____">___.F9@@@@@@@@@ .)@@@ .)@@@@@@@@@ .)@@@#C@___.EZ___.EZ___.EZ@@@@@@GF )@@G@@@@@#C@@@@@@@@@@@%5@@@@@)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GH )@@G@@@@@@@@R1.2 SD CHRNCIRIK R GI )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/GJ )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95075823334005115 HF5%A111 GK )@@G@@HF 1 HF HF @@@@@+@@@@57@@@@@@@@@[*9@@@[*9@@@@@@@@@[*9@@@]ZM@@@@6TGL )@@G@@@@@@6T@@@@6T@@@@@@@@@]ZM@@@@^;@@@@F9@@@[@O@@@@&O@@@@[5@@@@@'@@@@@H@@@@@GGM )@@G@@____:2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@A1.4 DTO CHRNCIRIK A GO )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEGP )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95349823683GQ )@@G@@005115 HF5%A111 HF 1 HF HF @@@@@Y@@@#!9@@@@"D@@@B=L@@@C+U@@@@@@GR )@@G@@@@@C+U@@@GK2@@@#,S@@@#9'@@@#9'@@@@VL@@@GK2@@@@@@@@@@@@@@@@@@@@@[=>@@@]@XGS )@@G@@@@@@&+@@@@*[@@@@*Z@@@@)"@@@@NN@@@[N/@@@@"D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A1.4 DTO CGU )@@G@@HRNCIRIK HF REC/AMATEUR PROGRAMS BERNER HF 51S/AMAT/LCHF/6GV )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EGW )@@G@@@@@@@[N95354823682005115 HF5%A111 HF 1 HF HF @@@@@:@@@^"Y____*JGX )@@G@@@@@A5H@@@AXX@@@@@@@@@AXX@@@FWY@@@^_[@@@^]^@@@^]^@@@@>H@@@FWY@@@@@@@@@@@@GY )@@G@@@@@@@@@@@@T7@@@@P4@@@@_>@@@@29@@@@6 @@@@<@@@@@MO@@@]$:____*J@@@@@@@@@@@@GZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CASPER R SMOHA )@@G@@ CHRNCIRIK HF REC/AMATEUR PROGRAMS BERNER HB )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S HC )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,-SVG[@^\@@@HE )@@G@@@@]@[E@@@@@[N95078823335005115 HF5%F111 HF 1 HF HF @@@@@]@@@@]AHF )@@G@@\R?(W4@^\@^\@@]@[E@@@@@[N95078823335005115 HF5%F111 HF 1 HF HF HG )@@G@@@@@@@]@@@@]A@@@@@@@@@[M$@@@[M$@@@@@@@@@[M$@@@[O\@@@@]C@@@@]C@@@@]C@@@@@@HH )@@G@@@@@[O\@@@@B!@@@@) @@@@H8@@@@G:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HJ )@@G@@@@@@@@R1.3 IF CSABIN R HK )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/HL )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95355823682005115 HF5%F111 HM )@@G@@HF 1 HF HF _____3____L>@@@@NY@@@A@=@@@AO]@@@@^&@@@AS*@@@ %A____LXHN )@@G@@____)%____)%@@@@^S@@@ %A@@@@@@@@@@@@@@@@@@@@@@K+@@@@!)@@@[LM@@@[ ]@@@[_XHO )@@G@@@@@@N-@@@@R&@@@@[%@@@@NY@@@@^&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@R1.3 IF SABIN HF RECHQ )@@G@@/AMATEUR PROGRAMS BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEHR )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N91917829424HS )@@G@@005114 HF4KB625 HF 5 HF HF _____/____"6@@@@@@@@@@)*@@@@)*@@@@@@HT )@@G@@@@@@)*@@@@ZW____"3____"3____"3@@@@@@@@@@ZW@@@@@)@@@@@@@@@@@@@@@@@@@@@@@@HU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GRUMMAN 490R-8 CPLR SYS CM CHW )@@G@@MILLER GRUMAN 490 R-8 ZIMMERMAN HF URG/CPLRS/ARC-1HX )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EHY )@@G@@@@@@@[N94866823534005114 HF4KB625 HF 5 HF HF @@@@@A@@@@J;@@@@@@HZ )@@G@@@@@#(_@@@#(_@@@@@@@@@#(_@@@#'@@@@@K[@@@@K[@@@@K[@@@@@@@@@#'@@@@@O$@@@@$&IA )@@G@@@@@@FW@@@@BM@@@@IK@@@@C\@@@@B/@@@@LE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TSC-60 PH IIIC )@@G@@I CONF MGMT CMILLER TSC-60 PHASE III ZIMMERMAN ID )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 IE )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECIG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IH )@@G@@5$G>M\@^\@^\@@#@[E@@@@@[N94924823552005116 HF6KB625 HF 5 HF HF II )@@G@@@@@@@I@@@@B>@@@@@@@@@@!$@@@@!$@@@@@@@@@@!$@@@@5U@@@@B3@@@@B3@@@@B3@@@@@@IJ )@@G@@@@@@5U@@@@]S@@@@]D@@@@@Y@@@@LR@@@@A;@@@@A5@@@@A#@@@@]$@@@@@@@@@@@@@@@@@@IK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IL )@@G@@@@@@@@NIMROD TWA CM CVOLDEN NIMROD IM )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AIN )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95116829494005116 HF6KB625 IO )@@G@@HF 5 HF HF _____2____27@@@@@@@@@[03@@@[03@@@@@@@@@[03@@@[@@@@F>@@@@@@@@@@F>@@@@W=@@@@K_@@@@K_@@@@K_@@@@@@@@@@W=@@@@@@@@@@]=JC )@@G@@@@@@@@@@@@#]@@@@[#@@@@#(@@@@[N@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AWACS HF LOTJE )@@G@@ IV CM CHACKBARTH AWACS ZIMMERMAN JF )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 JG )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E]O+@.@^\@^\JI )@@G@@@@^@[E@@@@@[N95546823959005114 HF4KB625 HF 5 HF HF _____Y____RDJJ )@@G@@@J#Y[L@^\@^\@@^@[E@@@@@[N95546823959005114 HF4KB625 HF 5 HF HF JK )@@G@@_____Y____RD@@@@].@@@]JL )@@G@@@@@[.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[GI@@@@2=@@@@L#@@@@N7JM )@@G@@@@@@].@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JN )@@G@@@@@@@@DDG-47 CONF MGMT LOE CCAYLOR CPLR GROUP JO )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSJP )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N95558829908005116 HF6KB625 JQ )@@G@@HF 5 HF HF _____8____\(@@@@PJ@@@@"M@@@[N-@@@]DT@@@#W'@@@#G!____\2JR )@@G@@@@@@N#@@@@N#@@@@O @@@#G!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GEJS )@@G@@@@@@Z%@@@@[R@@@@LB@@@@PJ@@@@ZR@@@@T @@@@TR@@@@ZR@@@@SJ@@@@@@@@@@@@@@@@@@JT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@E2C/LOT VIII/HF CM VOLDEN E-2C JU )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDJV )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95573823980JW )@@G@@005114 HF4KB625 HF 5 HF HF _____/____''@@@@JC@@@@XE@@@@?M@@@]#/JX )@@G@@@@@]0I@@@]:[____'2____1 ____1 @@@@NG@@@]:[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JY )@@G@@@@@@@@@@@@@@@@@@ -@@@@B?@@@@ [@@@@E/@@@@JC@@@@PG@@@@LE@@@@LE@@@@PG@@@@LEJZ )@@G@@@@@@LE@@@@O/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TSC-60 PH V CM KA )@@G@@MILLER URG-II ZIMMERMAN HF URG/CPLRS/ARC-1KB )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EKC )@@G@@@@@@@[N95582823677005114 HF4KB625 HF 5 HF HF ___________8@@@@#7KD )@@G@@@@@@GJ@@@@KA@@@@KK@@@@)Q@@@@)D_____2____.6____.6@@@@#B@@@@)D@@@@@@@@@@@@KE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@@@@#]@@@@ F@@@@#+@@@@#7@@@@^X@@@@]RKF )@@G@@@@@@]R@@@@]R@@@@]R@@@@]R@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AWACS LOT V KG )@@G@@- CM HACKBARTH AWACS V ZIMMERMAN KH )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 KI )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P @%:)@^\@^\KK )@@G@@@@ @[E@@@@@[N95639823907005116 HF6KB625 HF 5 HF HF @@@@@T@@@@L%KL )@@G@@P @%:)@^\@^\@@ @[E@@@@@[N95639823907005116 HF6KB625 HF 5 HF HF KM )@@G@@@@@@@T@@@@L%@@@@@P@@@@@)@@@@@5@@@@2L@@@@3A@@@[^"@@@@L8@@@@E#@@@@E#@@@@D-KN )@@G@@@@@[^"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@@@@@@@@@@@@KO )@@G@@@@@@@P@@@@E@@@@@E@@@@@EM@@@@N_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KP )@@G@@@@@@@@CP-140 PGSE C.M. DATA VOLDEN CP-140 KQ )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AKR )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95652829795005114 HF4KB625 KS )@@G@@HF 5 HF HF @@@@@G@@@@GB@@@@FG@@@@U<@@@@>\@@@@??@@@[MV@@@[Y?@@@@GLKT )@@G@@@@@@D>@@@@D>@@@@J^@@@[Y?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KU )@@G@@@@@@@@@@@@J4@@@@E\@@@@FG@@@@KS@@@@IE@@@@IE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-47 PGM DATA CAYLOR DDG-47KW )@@G@@ PRGM ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEKX )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95671823989KY )@@G@@005116 HF6KB625 HF 4 HF HF _____4____\3@@@@G,@@@@-W@@@@,E@@@[1?KZ )@@G@@@@@]Z6@@@]J$____\0____'L____'L@@@@F&@@@]J$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FJ@@@@QH@@@@G,@@@@KF@@@@G;@@@@G;@@@@KF@@@@G;LB )@@G@@@@@@G;@@@@KZ@@@@HF@@@@@@@@@@@@@@@@@@@@@@@@NIMROD III LC )@@G@@VOLDEN 913Z-2/2A DAVID HF E-2C/S-3A/HF-12LD )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ELE )@@G@@@@@@@[N95678823596005116 HF6KB625 HF 5 HF HF @@@@@K@@@@AQ@@@@ &LF )@@G@@@@@@[@@@@@A&@@@@N+@@@@UC@@@@ZK@@@@ C____$&____$&@@@@U8@@@@ZK@@@@@@@@@@@@LG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-@@@@@Z@@@@ &@@@@N+@@@@@@LH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-2, LINK LI )@@G@@II, HF-122 CM VOLDEN DDG-2 PROG DAVID LJ )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR LK )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECLM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LN )@@G@@9/6@;*@^\@^\@@A@[E@@@@@[N95278CL7HF4005114 HF4KB437 HF 7 HF HF LO )@@G@@_____6____;*@@@@@@@@@@3T@@@@3T@@@@@@@@@@3T@@@@,8____;Y____'6____'6@@@@@*LP )@@G@@@@@@,8@@@@@@@@@@#%@@@@MM@@@@AT@@@@ Y@@@@[Y@@@@#?@@@@A"@@@@]F@@@@[K@@@@]#LQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LR )@@G@@@@@@@@HF COLL-GNL PURP CM CMILLER FY-80 COMMERCIAL COLLATELS )@@G@@RAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSLT )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N95303CL7HF5005115 HF5KB437 LU )@@G@@HF 7 HF HF _____1____,3@@@@B+@@@[_L@@@]A3@@@@@@@@@]A3@@@[5Q____,+LV )@@G@@____:6____:6@@@@EI@@@[5Q@@@@@@@@@@@X@@@@AM@@@@OD@@@@IM@@@@LJ@@@@E$@@@@K[LW )@@G@@@@@@C"@@@@B2@@@@T)@@@@B+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF-280 CM CMILLER FY-80 LY )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGELZ )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95469CL7HF5MA )@@G@@005115 HF5KB437 HF 7 HF HF _____;____.N@@@@A"@@@[@\@@@[B!@@@@@@MB )@@G@@@@@[B!@@@[^8____.E____9M____9M@@@@E6@@@[^8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MC )@@G@@@@@@D5@@@@B?@@@@MV@@@@FV@@@@C2@@@@C&@@@@A"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AMATEUR/RCVRS CM CME )@@G@@CARSON FY-80 COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/6MF )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EMG )@@G@@@@@@@[N93292001144005114 HF4LA423 HF 3 HF HF @@@@@G@@@@W'@@@@@@MH )@@G@@@@@#G1@@@#G1@@@@@@@@@#G1@@@#(7@@@@XA@@@@XA@@@@XA@@@@@@@@@#(7@@@@HG@@@@K^MI )@@G@@@@@@#(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-105 SYS MK )@@G@@ASSIST CVANDERHEI HF MISC CONTRACT COLLATERAL RATHGEBER ML )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 MM )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J#Y[L@^\@^\MO )@@G@@@@B@[E@@@@@[N93186823376005113 HF3LA625 HF 5 HF HF @@@@@+@@@@XRMP )@@G@@\RF*J%@^\@^\@@B@[E@@@@@[N93186823376005113 HF3LA625 HF 5 HF HF MQ )@@G@@@@@@@+@@@@XR@@@@@@@@@@8#@@@@8#@@@@@@@@@@8#@@@[P/@@@@X9@@@@X9@@@@X9@@@@@@MR )@@G@@@@@[P/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MT )@@G@@@@@@@@ANRITE SYS TEST CPARKER ANRITE AV CO MU )@@G@@ KOSKELA HF HF-80 RATHGEBER HF HF-80 MV )@@G@@ RATHGEBER @[E@[E@@@@@[N95367CL7HF5005115 HF5LA437 MW )@@G@@HF 7 HF HF ____.)___8IL@@@A-X@@@ADE@@@G%$@@@@@@@@@G%$@@@^8)___8H8MX )@@G@@___"\P___"\P@@@@@@@@@^8)@@@@@@@@@@@@@@@@@@@@@[H^@@@[W4@@@@'2@@@@S@@@@@P9MY )@@G@@@@@@)^@@@@L%@@@[^9@@@A-X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CR-200/220 PE CHANSON FY-80 NA )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGENB )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95595823976NC )@@G@@005115 HF5LB111 HF 1 HF HF @@@@@K@@@]RL@@@@NK@@@F";@@@GMF@@@@@@ND )@@G@@@@@GMF@@@I()@@@]RP@@@@!&@@@@!&@@@[/_@@@I()@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NE )@@G@@@@@@@@@@@@@@@@@@@@@@@^=E@@@A).@@@@94@@@@NK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GRR-XXX ADV ACT DESIGN CNG )@@G@@DAWSON GRR-XXX BERNER HF 51S/AMAT/LCHF/6NH )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[ENI )@@G@@@@@@@[N94867823535005115 HF5LB314 HF 4 HF HF ____;K___;*N@@@@@@NJ )@@G@@@@@ 'F@@@ 'F@@@@@@@@@ 'F@@@[X0___;<=___;<=___;<=@@@@@@@@@[X0@@@@#=@@@@@@NK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@851S-1 RCVR NM )@@G@@MARKETING DEMO CZIEGELBEIN 851S-1 DEMO BERNER NN )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S NO )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4L9*HX@^\@^\NQ )@@G@@@@C@[E@@@@@[N95125823640005115 HF5LB314 HF HF HF @@@@@F@@@@>FNR )@@G@@4L9*HX@^\@^\@@C@[E@@@@@[N95125823640005115 HF5LB314 HF HF HF NS )@@G@@@@@@@F@@@@>F@@@@@@@@@^NE@@@^NE@@@@@@@@@^NE@@@^8)@@@@>Q@@@@>Q@@@@>Q@@@@@@NT )@@G@@@@@^8)@@@@Z1@@@]A:@@@[0*@@@@20@@@@@F@@@@@@____DE@@@@@@@@@@@@@@@@@@@@@@@@NU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NV )@@G@@@@@@@@GPRR ADV ACT DESGN CWILSON HF REC/AMATEUR PRGMS NW )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/NX )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N93470823491005115 HF5LB625 NY )@@G@@HF 5 HF HF @@@@@\@@@@:=@@@@@@@@@@1X@@@@1X@@@@@@@@@@1X@@@[X0@@@@?NNZ )@@G@@@@@@?N@@@@?N@@@@@@@@@[X0@@@@CR@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@851S-1 RCVRS FOR FCC CZIEGELBEIN 851S-1OC )@@G@@ RECEIVERS BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEOD )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N94806823515OE )@@G@@005115 HF5LB865 HF 5 HF HF ____"\___"58@@@@@@@@@](B@@@](B@@@@@@OF )@@G@@@@@](B@@@[X0___"4*___"4*___"4*@@@@@@@@@[X0@@@@B2@@@@AM@@@@@@@@@@@@@@@@@@OG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@851S-1 RCVR FOR NSA COI )@@G@@ZIEGELBEIN NSA 851S-1 BERNER HF 51S/AMAT/LCHF/6OJ )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EOK )@@G@@@@@@@[N94896823553005114 HF4LB625 HF 5 HF HF _____.____'Q@@@@@@OL )@@G@@@@@#K=@@@#K=@@@@@@@@@#K=@@@#E9____'O____'O____'O@@@@@@@@@#E9@@@@ ;@@@@^,OM )@@G@@@@@@]5@@@@T8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ON )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@USCG SFSCO AOO )@@G@@DD-ON CZIEGELBEIN USCG SFSCO ZIMMERMAN OP )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 OQ )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECOS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OT )@@G@@H9O"*A@^\@^\@@D@[E@@@@@[N95185823659005115 HF5LB625 HF 5 HF HF OU )@@G@@@@@@@V@@@@++@@@@@@@@@[U#@@@[U#@@@@@@@@@[U#@@@[.@@@@@+.@@@@+.@@@@+.@@@@@@OV )@@G@@@@@[.@@@@@@@@@@@@@@@@@@@@@@@!^@@@@?_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OX )@@G@@@@@@@@851S-1/2 NIRT DES/REL CCHURCH 851S-1/2 OY )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/OZ )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95374823677005114 HF4LB625 PA )@@G@@HF 5 HF HF @@@@@G@@@@##@@@@@@@@@@FK@@@@FK@@@@EZ@@@@P\@@@@S5@@@@#APB )@@G@@@@@@@6@@@@@6@@@@]X@@@@S5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@@@@I@@@@@O@@@@ ZPC )@@G@@@@@@[B@@@@@B@@@@#7@@@@@@@@@@##@@@@#O@@@@^C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@514A-2B CONTROL PE ZIEGELBEIN AWACS PE )@@G@@V ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEPF )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N95747824159PG )@@G@@005115 HF5LB625 HF 5 HF HF @@@@[-@@@[[W@@@@@@@@@@@@@@@@@@@@@@[QPH )@@G@@@@@@[Q@@@[]3@@@[[X@@@@[#@@@@[#@@@[@X@@@[]3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[Q@@@@@@PJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@851S-1 RCVR CYTA PK )@@G@@CHURCH 851S BERNER HF 51S/AMAT/LCHF/6PL )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EPM )@@G@@@@@@@[N95234CL7HF4005114 HF4LB437 HF 7 HF HF ___________6@@@@#\PN )@@G@@@@@@; @@@@"4@@@@@@@@@@"4@@@@")_____:____9B____9B@@@@EN@@@@")@@@@@@@@@@BIPO )@@G@@@@@@C(@@@@ M@@@@C1@@@@C^@@@@]2@@@@DN@@@@^(@@@@@Y@@@@#;@@@@#\@@@@@@@@@@@@PP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@635V-1 PROD PQ )@@G@@ENGR CDAWSON FY-80 COMMERCIAL COLLATERAL RATHGEBER PR )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 PS )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1NWR+N@^\@^\PU )@@G@@@@E@[E@@@@@[N95284CL7HF5005115 HF5LB437 HF 7 HF HF _____%___"5?PV )@@G@@1NWR+N@^\@^\@@E@[E@@@@@[N95284CL7HF5005115 HF5LB437 HF 7 HF HF PW )@@G@@_____%___"5?@@@@@@@@@A+S@@@A+S@@@@@@@@@A+S@@@ R0___"5R___"5R___"5R@@@@@@PX )@@G@@@@@ R0@@@@@@@@@@>!@@@];A@@@[3\@@@[@A@@@@E/@@@@@@@@@@]4@@@@@@@@@@@@@@@@@@PY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PZ )@@G@@@@@@@@851S PE CR PTL CZIEGELBEIN FY-80 COMMERCIAL COLLATEQA )@@G@@RAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/QB )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95301CL7HF5005115 HF5LB437 QC )@@G@@HF 7 HF HF @@@@@+@@@@57@@@@ D@@@[);@@@[&^@@@@@@@@@[&^@@@]WK@@@@6GQD )@@G@@@@@@+P@@@@+P@@@@T@@@@]WK@@@@@@@@@@@$@@@@CY@@@@^@@@@@ &@@@@^A@@@@#H@@@@I:QE )@@G@@@@@@Z-@@@@CH@@@@K=@@@@ D@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@851S PE PROG/CUST SUP CZIEGELBEIN FY-80 QG )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEQH )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95496CL7HF5QI )@@G@@005115 HF5LB437 HF 7 HF HF @@@@@I@@@@5\@@@[I*@@@#3.@@@ ]>@@@@@@QJ )@@G@@@@@ ]>@@@ 8$@@@@6]@@@[E"@@@[E"@@@@9?@@@ 8$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QK )@@G@@@@@@IA@@@@)B@@@@46@@@@U%@@@@,L@@@[B_@@@[I*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@851S PROD ENG IN CR CQM )@@G@@ZIEGELBEIN FY-80 COMMERCIAL COLLATERAL RATHGEBER HF 51S/AMAT/LCHF/6QN )@@G@@51S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[EQO )@@G@@@@@@@[N94935823561005115 HF5LC111 HF 1 HF HF @@@@@R@@@[B"@@@@@@QP )@@G@@@@@#\S@@@#\S@@@@@@@@@#\S@@@^7!@@@[CP@@@[CP@@@[CP@@@@@@@@@^7!@@@@@@@@@[I(QQ )@@G@@@@@@#V@@@@[H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F6.0 AC DES QS )@@G@@ CLUNDBERG F6.0 BERNER QT )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S QU )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@4L9*HX@^\@^\QW )@@G@@@@F@[E@@@@@[N91896001166005116 HF6LC623 HF 3 HF HF @@@@@F@@@@ JQX )@@G@@2H;/Z>@^\@^\@@F@[E@@@@@[N91896001166005116 HF6LC623 HF 3 HF HF QY )@@G@@@@@@@F@@@@ J@@@@@@@@@@(6@@@@(6@@@@@@@@@@(6@@@@\K@@@@ U@@@@ U@@@@ U@@@@@@QZ )@@G@@@@@@\K@@@@# @@@@Q;@@@@@@____5#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RB )@@G@@@@@@@@E2C SPARES ANT/IND P E CFOWLER HF MISC CONTRACT COLLATERC )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3ARD )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N91909001166005116 HF6LC423 RE )@@G@@HF 3 HF HF @@@@@H@@@@K\@@@@@@@@@[:Q@@@[:Q@@@@@@@@@[:Q@@@[/M@@@@K/RF )@@G@@@@@@K/@@@@K/@@@@@@@@@[/M@@@@E.@@@@JU@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@E2C HF C-9076 LOT 6 P E CFOWLER HF MISRI )@@G@@C CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDRJ )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N93194001144RK )@@G@@005114 HF4LC423 HF 3 HF HF _____#____35@@@@@@@@@@+%@@@@+%@@@@@@RL )@@G@@@@@@+%@@@@P=____29____29____29@@@@@@@@@@P=@@@@C0@@@@H1@@@@@@@@@@@@@@@@@@RM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-105 MCDONNELL DOUGLAS PE CRO )@@G@@FRAZIER HF MISC CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-1RP )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[ERQ )@@G@@@@@@@[N93195001144005114 HF4LC423 HF 3 HF HF _____.____"O@@@@@@RR )@@G@@@@@@_/@@@@_/@@@@@@@@@@_/@@@@"J____"M____"M____"M@@@@@@@@@@"J@@@@^?@@@@DORS )@@G@@@@@@ C@@@@O#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-105 SPARRU )@@G@@ES CKNIGHT HF MISC CONTRACT COLLATERAL RATHGEBER RV )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 RW )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECRY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RZ )@@G@@)\W,:'@^\@^\@@G@[E@@@@@[N93291001144005114 HF4LC423 HF 3 HF HF SA )@@G@@@@@@@A@@@@G$@@@@@@@@@]9+@@@]9+@@@@@@@@@]9+@@@#AJ@@@@G!@@@@G!@@@@G!@@@@@@SB )@@G@@@@@#AJ@@@@L.@@@@-U@@@@S8@@@@X2@@@@#J@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SD )@@G@@@@@@@@ARC-105 P E CKNIGHT HF MISC CONTRACT COLLATESE )@@G@@RAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSSF )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N93385001144005114 HF4LC423 SG )@@G@@HF 3 HF HF @@@@@#@@@@[M@@@@@@@@@@(>@@@@(>@@@@@@@@@@(>@@@@%'@@@@[PSH )@@G@@@@@@[P@@@@[P@@@@@@@@@@%'____8@____23@@@@@@@@@@@@@@@@@@@@@@@@@@@@C_@@@@@@SI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@490R-8 ANT CPLR P E CKNIGHT HF MISSK )@@G@@C CONTRACT COLLATERAL RATHGEBER HF URG/CPLRS/ARC-105 RATHGESL )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N93404001166SM )@@G@@005116 HF6LC423 HF 3 HF HF @@@@@1@@@@M4@@@@@@@@@@OC@@@@OC@@@@@@SN )@@G@@@@@@OC@@@@$!@@@@N>@@@@N>@@@@N>@@@@@@@@@@$!@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@SO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 490T-3/890F PE I CSQ )@@G@@FOWLER HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12SR )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ESS )@@G@@@@@@@[N93488001166005116 HF6LC423 HF 3 HF HF @@@@@B@@@@ L@@@@@@ST )@@G@@@@@[@<@@@[@<@@@@@@@@@[@<@@@[ ;@@@@ S@@@@ S@@@@ S@@@@@@@@@[ ;@@@@@@____\2SU )@@G@@@@@@C?@@@@I>@@@@@Y@@@@#)@@@@#+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E2C LOT 7 C-SW )@@G@@9076 CNTRL P E CFOWLER HF MISC CONTRACT COLLATERAL BERANDT SX )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR SY )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1NWR+N@^\@^\TA )@@G@@@@H@[E@@@@@[N93490001166005116 HF6LC423 HF 3 HF HF @@@@@A@@@@ 0TB )@@G@@X]R XE@^\@^\@@H@[E@@@@@[N93490001166005116 HF6LC423 HF 3 HF HF TC )@@G@@@@@@@A@@@@ 0@@@@@@@@@[VP@@@[VP@@@@@@@@@[VP@@@[-F@@@@ 6@@@@ 6@@@@ 6@@@@@@TD )@@G@@@@@[-F@@@@@@@@@@EQ@@@@VV@@@@]8@@@@^I@@@@#)@@@@@E@@@@@@@@@@@@@@@@@@@@@@@@TE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TF )@@G@@@@@@@@E2C LOT 7 CU-2041/MT-4450 PE CFOWLER HF MISC CONTRACT COLLATETG )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3ATH )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95082001166005116 HF6LC423 TI )@@G@@HF 3 HF HF @@@@@.@@@@0M@@@@@@@@@@Y7@@@@Y7@@@@@@@@@@Y7@@@[KA@@@@1JTJ )@@G@@@@@@1J@@@@1J@@@@@@@@@[KA@@@@@@@@@@@@@@@@#9@@@@CR@@@@HO@@@@^(@@@@@^@@@@@@TK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@490S-3 ANT CPLR P.E. CSNIDER HF MISTM )@@G@@C CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDTN )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95502001166TO )@@G@@005116 HF6LC423 HF 3 HF HF _____6____'6@@@@@@@@@@_N@@@@_N@@@@@@TP )@@G@@@@@@_N@@@@'[____'!____'!____'!@@@@@@@@@@'[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TQ )@@G@@@@@@@@@@@@R>@@@@R9@@@@J5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 490T-3/890F-3A CTS )@@G@@FOWLER HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12TT )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ETU )@@G@@@@@@@[N95521001166005116 HF6LC423 HF 3 HF HF @@@@@#@@@@[R@@@@@@TV )@@G@@@@@@&N@@@@&N@@@@@@@@@@&N@@@@$!@@@@[U@@@@[U@@@@[U@@@@@@@@@@$!@@@@@@@@@@@@TW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]:@@@@#0@@@@M3@@@@EA@@@@]_@@@@@@@@@@@@@@@@@@TX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TYQ-3A 490T-TY )@@G@@3 CPLR CFOWLER HF MISC CONTRACT COLLATERAL BERANDT TZ )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR UA )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2H;/Z>@^\@^\UC )@@G@@@@I@[E@@@@@[N95579001166005116 HF6LC423 HF 3 HF HF @@@@@I@@@@E>UD )@@G@@PC_G+"@^\@^\@@I@[E@@@@@[N95579001166005116 HF6LC423 HF 3 HF HF UE )@@G@@@@@@@I@@@@E>@@@@C3@@@@78@@@[@:@@@@@@@@@[@:@@@[FY@@@@E3@@@@E.@@@@E.@@@@C(UF )@@G@@@@@[FY@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@)@@@@VK@@@@J&@@@@G+UG )@@G@@@@@@C3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UH )@@G@@@@@@@@CP-140 490T-3 PE FOWLER HF MISC CONTRACT COLLATEUI )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AUJ )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95630001166005116 HF6LC423 UK )@@G@@HF 3 HF HF _____<____,S@@@@]1@@@@D,@@@@GZ@@@[^^@@@[K<@@@@")____!/UL )@@G@@____,[____,[@@@@^%@@@@")@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UM )@@G@@@@@@@)@@@@A0@@@@]Y@@@@]1@@@@FQ@@@@FQ@@@@FQ@@@@FQ@@@@FQ@@@@FQ@@@@@@@@@@@@UN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@E2C HF LOT VIII C-9076 FOWLER HF MISUO )@@G@@C CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDUP )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95662001166UQ )@@G@@005116 HF6LC423 HF 3 HF HF @@@@@A@@@@A8@@@@@@@@@@@!@@@@@!@@@[ZYUR )@@G@@@@@[)F@@@[$C@@@@A.@@@@ J@@@@ J@@@@^S@@@[$C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@US )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Z@@@@@I@@@@@@@@@@K.@@@@LJ@@@@K.@@@@K.@@@@J$UT )@@G@@@@@@F1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD III - 490T/390F-3 UU )@@G@@FOWLER HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12UV )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EUW )@@G@@@@@@@[N95676001166005116 HF6LC423 HF 3 HF HF @@@@@Y@@@@Z!@@@@=JUX )@@G@@@@@@T/@@@@"F@@@@E2@@@[C.@@@[( @@@@)C@@@@W2@@@@W2@@@@2R@@@[( @@@@@@@@@@@@UY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2@@@@TE@@@@=J@@@@E2@@@@@@UZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E-2C/AS-133/VA )@@G@@ FOWLER HF MISC CONTRACT COLLATERAL BERANDT VB )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR VC )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECVE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VF )@@G@@]NAF8)@^\@^\@@J@[E@@@@@[N93097823330005114 HF4LC625 HF 5 HF HF VG )@@G@@@@@@@J@@@#R<@@@@@@@@@NAG@@@NAG@@@@@@@@@NAG@@@QX"@@@#R2@@@#R2@@@#R2@@@@@@VH )@@G@@@@@QX"___"MA@@@@C%@@@@F @@@@F<@@@@#%@@@@#7@@@@]S@@@@@@@@@@@@@@@@@@@@@@@@VI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VJ )@@G@@@@@@@@490B-1A COUPLER CFOWLER 490B-1A COUPLER VK )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSVL )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N93358823368005114 HF4LC625 VM )@@G@@HF 5 HF HF __________.N@@@@@@@@@BP@@@@BP@@@@@@@@@@BP@@@@BMO____.NVN )@@G@@____.N____.N@@@@@@@@@BMO@@@@NJ@@@@0I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@TSC-60 172Q-1 ANT SIM CNEWHOUSE TSC-60VQ )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEVR )@@G@@BER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[E@@@@@[N94943829769VS )@@G@@005116 HF6LC625 HF 5 HF HF @@@@@(@@@A/C@@@@D_@@@D(2@@@D31@@@@#BVT )@@G@@@@@D68@@@K3%@@@A/2@@@BA/@@@BA/@@@@]/@@@K3%@@@[ER@@@[O5@@@@KP@@@@6-@@@@?QVU )@@G@@@@@[#8@@@@GP@@@@QB@@@@E1@@@@@$@@@@ P@@@@D_@@@@#B@@@@@@@@@@@@@@@@@@@@@@@@VV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AS1331A/ARC-80 ANTENNA VW )@@G@@FOWLER ARC-80 ANTENNA DAVID HF E-2C/S-3A/HF-12VX )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EVY )@@G@@@@@@@[N94976823556005116 HF6LC625 HF 5 HF HF @@@@]O@@@E]Q@@@@[-VZ )@@G@@___/%"___/?Z@@@@@@___/?Z@@@A1F@@@E^:@@@EAG@@@EAG@@@@@@@@@A1F@@@@3]@@@@PUWA )@@G@@@@@@@6@@@@[T@@@@SO@@@@#>@@@@P5@@@]Y<@@@]D#@@@@J%___34J@@@@[-@@@@@@@@@@@@WB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SARA D/B 156WC )@@G@@U-2/3 CGEHRING SARA HF DAVID WD )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR WE )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@X]R XE@^\@^\WG )@@G@@@@K@[E@@@@@[N95145823644005114 HF4LC625 HF HF HF ____.!___"/>WH )@@G@@-FHK5[@^\@^\@@K@[E@@@@@[N95145823644005114 HF4LC625 HF HF HF WI )@@G@@____.!___"/>@@@@@@@@@[5R@@@[5R@@@@@@@@@[5R@@@@\:___"'N___"'N___"'N@@@@@@WJ )@@G@@@@@@\:@@@@@@@@@@B>@@@@BL@@@@B.@@@@B;@@@@4_@@@@P@@@@@@@@@@@A0@@@@@@@@@@ 'WK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WL )@@G@@@@@@@@309H-1 CPLR CNEWHOUSE 309H-1 CPLR WM )@@G@@ ZIMMERMAN HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRSWN )@@G@@/ARC-105 RATHGEBER @[E@[E@@@@@[N95598823988005116 HF6LC625 WO )@@G@@HF 5 HF HF @@@@[I@@@]Z@___/=^@@@^C>@@@@?%@@@@@@@@@@?%@@@#FC@@@]YYWP )@@G@@___"'B___"'B@@@@CV@@@#FC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WQ )@@G@@@@@@@@@@@#@]@@@[C<___/=^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD TWA AS1331-938L-1 CFOWLER NIMRODWS )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDWT )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95768826154WU )@@G@@005116 HF6LC625 HF 5 HF HF @@@@@!@@@@J\@@@@C,@@@@@L@@@@C_@@@@E!WV )@@G@@@@@@N?@@@@=J@@@@K<@@@@NF@@@@NF@@@@K3@@@@=J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@C,@@@@E!@@@@@@@@@@@@@@@@@@@@@@@@WX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@890F-3,-002 RELEASE WY )@@G@@FOWLER E-2C DAVID HF E-2C/S-3A/HF-12WZ )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EXA )@@G@@@@@@@[S99270139906005117 HF7LC626 HF016 HF HF ____""___UY*@@@B/&@@[YX7@@@8;&___UX,___Y0X___Y0X@@@ )B@@@8;&@@@@*9@@@[2QXC )@@G@@@@@[SE@@@^Z0@@@ (D@@@BF,@@@A(=@@@FP@@@@CHP@@@B(6@@@B._@@@B/<@@@AJ,@@@#9FXD )@@G@@@@@]0W@@@["1@@@[2P@@@[;(@@@]8+@@@]B@@@@@@@@@@@@@@@@@@@@@@@@@PRC-105 AMP/XE )@@G@@CPLR FRAZIER LAMPS/PRC-105 PRGMS ABODEELY XF )@@G@@HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER XG )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PC_G+"@^\@^\XI )@@G@@@@L@[E@@@@@[N95071CL7HF5005115 HF5LC437 HF 7 HF HF @@@@@&@@@@.BXJ )@@G@@ZS*24O@^\@^\@@L@[E@@@@@[N95071CL7HF5005115 HF5LC437 HF 7 HF HF XK )@@G@@@@@@@&@@@@.B@@@@@@@@@[-I@@@[-I@@@@@@@@@[-I@@@]Y;@@@@.!@@@@.!@@@@.!@@@@@@XL )@@G@@@@@]Y;@@@@V=@@@@UH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XN )@@G@@@@@@@@HF-280 COUPLER COLLATERAL CLUNDBERG FY-80 COMMERCIAL COLLATEXO )@@G@@RAL RATHGEBER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/XP )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95236CL7HF6005116 HF6LC437 XQ )@@G@@HF 7 HF HF @@@@@B@@@@@@@@ \@@@@ X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AT-107 A/B PROD ENGR CYA )@@G@@FRAZIER FY-80 COMMERCIAL COLLATERAL RATHGEBER HF URG/CPLRS/ARC-1YB )@@G@@05 RATHGEBER HF URG/CPLRS/ARC-105 RATHGEBER @[E@[EYC )@@G@@@@@@@[N93458001166005116 HF6LD423 HF 3 HF HF @@@@@$@@@@F&@@@@@@YD )@@G@@@@@@M?@@@@M?@@@@@@@@@@M?@@@@Y9@@@@GH@@@@GH@@@@GH@@@@@@@@@@Y9@@@@@@@@@@E]YE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD II 99YG )@@G@@3E-1/2 PE CGREGORY HF MISC CONTRACT COLLATERAL BERANDT YH )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR YI )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECYK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YL )@@G@@J/6==,@^\@^\@@M@[E@@@@@[N93453823495005116 HF6LD314 HF 4 HF HF YM )@@G@@____4]___'>Q@@@@@@@@@APY@@@APY@@@@@@@@@APY@@@@,8___'TT___'TT___'TT@@@@@@YN )@@G@@@@@@,8@@@@[1@@@@@@@@@@1&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YP )@@G@@@@@@@@MOD PARTS FOR MR-150A/1000A CFEE MR-150A/1000A YQ )@@G@@ BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AYR )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95563822120005116 HF6LD625 YS )@@G@@HF 5 HF HF _____/____'&@@@@=M@@@[(U@@@]H?@@@@K@@@@>K@@@@>K@@@@@@ZP )@@G@@@@@[H8@@@@Q,@@@@#-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZR )@@G@@@@@@@@NIMROD II 671U-10 PE CGROSHONG HF MISC CONTRACT COLLATEZS )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AZT )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N93489001166005116 HF6LE423 ZU )@@G@@HF 3 HF HF @@@@[#@@@[+N@@@@@@@@@@\G@@@@\G@@@@@@@@@@\G@@@]M+@@@[/@@@@UX@@@@UX@@@@UX@@@@@@@@@@>/@@@@@@@@@@@@@@@@@@@@@@@@@@@@FZBE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@635U-4 PE (TACAMO) CBG )@@G@@ROTH HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12BH )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EBI )@@G@@@@@@@[N93190823380005116 HF6LE625 HF 5 HF HF ____6^___-DX@@@@@@BJ )@@G@@@@@<8.@@@<8.@@@@@@@@@<8.@@@^8)___)_+___)_+___)_+@@@@@@@@@^8)@@@CK @@@FLHBK )@@G@@@@@ V'@@@A_R___0HB@@@[G @@@@!2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-122 MULTOBM )@@G@@TS BLD CSTERNOWSKI HF-122 MULTOTS DAVID BN )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BO )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECBQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BR )@@G@@ODJ?YQ@^\@^\@@P@[E@@@@@[N94840823521005115 HF5LE625 HF 5 HF HF BS )@@G@@@@@@@I@@@@< @@@@@@@@@#KX@@@#KX@@@@@@@@@#KX@@@#30@@@@@@@@< @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E2C LOT 7 AM-6526 P A P E CEM )@@G@@RODES HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12EN )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EEO )@@G@@@@@@@[N95086001166005116 HF6LF423 HF 3 HF HF @@@@@+@@@][>@@@@@@EP )@@G@@@@@#3I@@@#3I@@@@@@@@@#3I@@@ 5P@@@]]B@@@]]B@@@]]B@@@@@@@@@ 5P@@@@H @@@@K;EQ )@@G@@@@@@KG@@@@=#@@@@+P@@@@W!@@@@JD@@@@<9@@@@$Y@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ER )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@548U-10 1 KWES )@@G@@ PA P.E. CRODES HF MISC CONTRACT COLLATERAL BERANDT ET )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR EU )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECEW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EX )@@G@@M%<@@@C><@@@C><@@@@@@EZ )@@G@@@@@D#]@@@@H^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FB )@@G@@@@@@@@548U-10 PWR AMP P.E. CRODES HF MISC CONTRACT COLLATEFC )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AFD )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95184001166005116 HF6LF423 FE )@@G@@HF 3 HF HF _____T____WQ@@@@MT@@@[YF@@@[0=@@@@LA@@@][%@@@[X0____W FF )@@G@@____\I____\I@@@@KQ@@@[X0@@@@@@@@@@@@@@@@ &@@@@D:@@@@C2@@@@AZ@@@@BS@@@@K@FG )@@G@@@@@@FY@@@@IO@@@@IZ@@@@MT@@@@LA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@548U-10 KW PA SARA RODES HF MISFI )@@G@@C CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDFJ )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95309001166FK )@@G@@005116 HF6LF423 HF 3 HF HF @@@@@4@@@@L5@@@@@@@@@@K=@@@@K=@@@@@@FL )@@G@@@@@@K=@@@@@@@@T7@@@@E/@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@GV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-II MOD 5GW )@@G@@48U-10 CRODES DDG-2 PROG DAVID GX )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR GY )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^YK%=R@^\@^\HA )@@G@@@@U@[E@@@@@[N95419823680005116 HF6LF625 HF 5 HF HF _____^____K,HB )@@G@@^YK%=R@^\@^\@@U@[E@@@@@[N95419823680005116 HF6LF625 HF 5 HF HF HC )@@G@@_____^____K,@@@@@@@@@][O@@@][O@@@@@@@@@][O@@@[LC____J3____J3____J3@@@@@@HD )@@G@@@@@[LC@@@@@@@@@@@@@@@@@@@@@@@@@@@@HR@@@@R;@@@@U:@@@@\ @@@@IA@@@@^G@@@@@@HE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF )@@G@@@@@@@@TYQ-3A MOD 548U-10 CRODES TYQ-3A HG )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AHH )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[S98852139712005117 HF7LF626 HI )@@G@@HF 6 HF HF _____$___"$)@@@@@@@@@BA#@@@BA#@@@@@@@@@BA#@@@ !G___"$CHJ )@@G@@___"$C___"$C@@@@@@@@@ !G@@@@#4@@@@4@@@@@ B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS HF PWR AMPLIFIER CHORNBECK CAWS HM )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHN )@@G@@HY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S98856139712HO )@@G@@005117 HF7LF626 HF 6 HF HF ____">___;B&@@@@@@@@@EP"@@@EP"@@@@@@HP )@@G@@@@@EP"@@@ WF___;AG___;AG___;AG@@@@@@@@@ WF@@@[?_@@@@3$@@@@K9@@@@F]@@@@@@HQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS POWER SUPPLIES CHS )@@G@@KALINSKY CAWS ABODEELY HF PROD/R+D/OTHER HT )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[EHU )@@G@@@@@@@[N95244CL7HF4005114 HF4LF437 HF 7 HF HF _____;____9%@@@@+XHV )@@G@@@@@[)?@@@]#D@@@@@@@@@]#D@@@[.@____96@@@@KH@@@@KH@@@@GB@@@[.@@@@@A>@@@@D>HW )@@G@@@@@@]A@@@@#B@@@@ Y@@@@HC@@@@#$@@@@DH@@@@F6@@@@KJ@@@@J6@@@@+X@@@@@@@@@@@@HX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@URG-II PROG/HY )@@G@@CUST SUPPORT CJENSEN FY-80 COMMERCIAL COLLATERAL RATHGEBER HZ )@@G@@HF URG/CPLRS/ARC-105 RATHGEBER HF URG/CPLRS/ARC-105 IA )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECIC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ID )@@G@@A6LNJ @^\@^\@@V@[E@@@@@[N95246CL7HF6005116 HF6LF437 HF 7 HF HF IE )@@G@@@@@@@^@@@@D,@@@@BC@@@#T+@@@#)%@@@@@@@@@#)%@@@#%S@@@@D,_____>_____>@@@@LKIF )@@G@@@@@#%S@@@@EM@@@@EZ@@@@,1@@@@X%@@@@X @@@@LF@@@@BO@@@@T,@@@@SK@@@@FC@@@@ ?IG )@@G@@@@@@BC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IH )@@G@@@@@@@@MR PA/PS CRC ASSIST CRODES FY-80 COMMERCIAL COLLATEII )@@G@@RAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AIJ )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95634CL7HF6005116 HF6LF437 IK )@@G@@HF 7 HF HF @@@@[C@@@[\"@@@@GI@@@@Y^@@@@%M@@@@@@@@@@%M@@@]VB@@@[05IL )@@G@@@@@[Q%@@@[Q%@@@@&T@@@]VB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IM )@@G@@@@@@^J@@@@YF____;(@@@@GI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF-122 548U-11PA CRODES FY-80 IO )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDIP )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[M71001823607IQ )@@G@@005118 HF8LS844 HF 4 HF HF @@@@[W@@@@H[@@@@@@@@@@[F@@@@[F@@@@@@IR )@@G@@@@@@[F@@@@J*@@@@IX@@@@IX@@@@IX@@@@@@@@@@J*@@@@@@@@@@@@@@@@@@@@@@@?@@@@@ZIS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CR-200 IB RPNTS CIU )@@G@@FRANKLIN CR-300 USERS GUIDE HILL HF SECURE VOICE/DAIV )@@G@@TA MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY @[E@[EIW )@@G@@@@@@@[N95403822120005116 HF6MD625 HF 5 HF HF @@@@@S@@@@BH@@@@@@IX )@@G@@@@@@R:@@@@R:@@@@@@@@@@R:@@@@ZK@@@@B>@@@@B>@@@@B>@@@@@@@@@@ZK@@@@@@@@@@@@IY )@@G@@@@@@@@@@@@/V@@@@LG@@@@E>@@@@@@@@@@@@___""N@@@@[F@@@@@@@@@@@@@@@@@@@@@@@@IZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 514E-JA )@@G@@3 MOD CDETTMAN CP-140 HF PROGRAM DAVID JB )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR JC )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ^J7ZA@^\@^\JE )@@G@@@@W@[E@@@@@[N93067823323005118 HF8NB314 HF 4 HF HF ____"Q___&J7JF )@@G@@ ^J7ZA@^\@^\@@W@[E@@@@@[N93067823323005118 HF8NB314 HF 4 HF HF JG )@@G@@____"Q___&J7@@@@@@@@@2GL@@@2GL@@@@@@@@@2GL@@@SU)___&II___&II___&II@@@@@@JH )@@G@@@@@SU)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JJ )@@G@@@@@@@@CRYPTEL TASK 2 CGIBSON VOICE RANDOMIZER JK )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF SECUREJL )@@G@@ VOICE/DATA MCCARTHY @[E@[E@@@@@[N94917823556005116 HF6NB635 JM )@@G@@HF 5 HF HF _____>___6NV@@@@@@@@@,O,@@@,O,@@@@@@@@@,O,@@@=$0___6N[JN )@@G@@___6N[___6N[@@@@@@@@@=$0@@@[%7@@@^*R@@@^(%@@@J=-@@@C;E@@@A#^@@@]RV_____=JO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@SARA DES/DEV HF PILOT CNTL CROBINSON SARA HJQ )@@G@@F DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDJR )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N94942823500JS )@@G@@005117 HF7NB635 HF 5 HF HF ____/\___"+7@@@@@@@@@]I=@@@]I=@@@@@@JT )@@G@@@@@]I=@@@@,G___"Z$___"Z$___"Z$@@@@@@@@@@,G@@@@@*@@@@@-@@@@@@@@@@@@@@@@@@JU )@@G@@@@@[%V@@@@G2@@@@M\@@@@[F@@@@@M@@@@@U@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LAMPS ENG DATA CJW )@@G@@KAVLIE LAMPS DATA ABODEELY HF PROD/R+D/OTHER JX )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[EJY )@@G@@@@@@@[N95068829784005118 HF8NB625 HF 5 HF HF @@@@@)@@@@MB@@@@@@JZ )@@G@@@@@@$D@@@@$D@@@@@@@@@@$D@@@@90@@@@M$@@@@M$@@@@M$@@@@@@@@@@90@@@@[Z@@@@]ZKA )@@G@@@@@@@9@@@@K7@@@@GA@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@913N-1 CONTRKC )@@G@@OL CGIBSON 913N-1 CNTL HILL KD )@@G@@HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA KE )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^YK%=R@^\@^\KG )@@G@@@@X@[E@@@@@[N95525823916005117 HF7NB625 HF 5 HF HF ____"8___"8OKH )@@G@@M:UZAE@^\@^\@@X@[E@@@@@[N95525823916005117 HF7NB625 HF 5 HF HF KI )@@G@@____"8___"8O@@@@&?@@@]A*@@@]!O@@@@@@@@@]!O@@@[>C___"73____YZ____YZ@@@@@@KJ )@@G@@@@@[>C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E7@@@@R&@@@[NX@@@@K,KK )@@G@@@@@@&?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KL )@@G@@@@@@@@ARC-174 BUILD COLL KLEMETSON LAMPS KM )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/KN )@@G@@OTHER MCCARTHY @[E@[E@@@@@[N95526823916005117 HF7NB625 KO )@@G@@HF 5 HF HF ____"5___.$%@@@@S#@@@ H!@@@ >0@@@@@@@@@ >0@@@#GW___.&:KP )@@G@@___.",___.",@@@@@@@@@#GW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@___':5KQ )@@G@@@@@D>*@@@[P6____&S@@@@S#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-174 BUILD OF 8 CKLEMETSON LAMPS KS )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTKT )@@G@@HY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[N95646829954KU )@@G@@005117 HF7NB625 HF 5 HF HF @@@@@0@@@]5T@@@@Y2@@@]>T@@@#^F@@@@@@KV )@@G@@@@@#^F@@@ 9/@@@]51@@@[W9@@@[W9@@@[7%@@@ 9/@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[IE@@@[RJ@@@@Y2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FCC HF STUDY CKY )@@G@@KLEMETSON FCC HF STUDY ABODEELY HF PROD/R+D/OTHER KZ )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[ELA )@@G@@@@@@@[N95109823611005118 HF8NC111 HF 1 HF HF _____&____GV@@@@@@LB )@@G@@@@@#_ @@@#_ @@@@@@@@@#_ @@@#FC____G]____G]____G]@@@@@@@@@#FC@@@@Q\@@@[W_@@@@K+@@@@[2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@7LM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LN )@@G@@@@@@@@KEY MAN DEV CHANSON SP SECURE DATA PRGMS LO )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF SECURELP )@@G@@ VOICE/DATA MCCARTHY @[E@[E@@@@@[N95453823951005116 HF6NC111 LQ )@@G@@HF 1 HF HF @@@@[]@@@KI7@@@@@@@@@CE$@@@CE$@@@@@@@@@CE$@@@SU)@@@KJ9LR )@@G@@@@@KJ9@@@KJ9@@@@@@@@@SU)@@@@@@@@@@@@@@@@@@@@@@@@@@@OXV@@@^EZ@@@@@@___\+?LS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF-122 DES DEV CFLYNN HF-122LU )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDLV )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95061001166LW )@@G@@005116 HF6NC423 HF 3 HF HF _____)____\H_____6@@@[C3@@@[C%@@@@@@LX )@@G@@@@@[C%@@@@7T____,,____,>____,>@@@@@@@@@@7T@@@@^L@@@@#8@@@@[T@@@@]1@@@@CWLY )@@G@@@@@@JG@@@@D;@@@@EO@@@@I1@@@@@@@@@@@@_____6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-121 RADIO 913Z-2 PE CMA )@@G@@GROSHONG HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12MB )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EMC )@@G@@@@@@@[N95160001166005116 HF6NC423 HF 3 HF HF ____".____MD@@@@@@MD )@@G@@@@@[5&@@@[5&@@@@@@@@@[5&@@@[A,____LB____LB____LB@@@@@@@@@[A,@@@@@@@@@@#;ME )@@G@@@@@@ @@@@@P]@@@@M)@@@@FO@@@@Z6@@@@T_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@635U-4 PE (SMG )@@G@@ARA) CROTH HF MISC CONTRACT COLLATERAL BERANDT MH )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR MI )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ^J7ZA@^\@^\MK )@@G@@@@Z@[E@@@@@[N95161001166005116 HF6NC423 HF 3 HF HF ____"S___/9]ML )@@G@@8N !K-@^\@^\@@Z@[E@@@@@[N95161001166005116 HF6NC423 HF 3 HF HF MM )@@G@@____"S___/9]@@@@[Z@@@ TM@@@ U1@@@@\4@@@AE>@@@#[/___/7Q___/?4___/?4@@@@HTMN )@@G@@@@@#[/@@@@@@@@@@D#@@@@@@@@@@J7@@@@,M@@@[@7@@@@1:@@@[&.@@@@NA )@@G@@@@@@)^@@@@WQ@@@@?O@@@@UW@@@[#_@@@[JG____(T@@@@[<@@@@@@@@@@@@@@@@@@@@@@@@NB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@671U-9A PROD (SARA) NC )@@G@@FLYNN HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12ND )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ENE )@@G@@@@@@@[N95377001166005116 HF6NC423 HF 3 HF HF _____Z___.Z!@@@]TLNF )@@G@@@@@B==@@@D.5@@@@ME@@@EJ_@@@B\>___.Z>____N.____N.@@@@>?@@@B\>@@@@@@@@@@@@NG )@@G@@@@@@@@@@@@EG@@@[^:@@@[@?@@@@2)@@@@/@@@@[L^@@@[@7@@@[O&@@@]TL@@@@ME@@@@@@NH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SYS TEST/TSONI )@@G@@ (SARA) FLYNN HF MISC CONTRACT COLLATERAL BERANDT NJ )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR NK )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M:UZAE@^\@^\NM )@@G@@@@)@[E@@@@@[N95455001166005116 HF6NC423 HF 3 HF HF ____"=___.$2NN )@@G@@IKRUY*@^\@^\@@)@[E@@@@@[N95455001166005116 HF6NC423 HF 3 HF HF NO )@@G@@____"=___.$2@@@@@@@@@ @!@@@ @!@@@@@@@@@ @!@@@]$ ___.&R___.&R___.&R@@@@@@NP )@@G@@@@@]$ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@V@@@@@@@@@@@@@[AG@@@@@@@@@[AG@@@[8O@@@@2C@@@[# @@@[# @@@@&%@@@[8O@@@@@@@@@@@@PK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^[@@@@E=@@@@7$@@@@@@@@@@@@PL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD III -PM )@@G@@ 671U-10 GROSHONG HF MISC CONTRACT COLLATERAL BERANDT PN )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR PO )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8N !K-@^\@^\PQ )@@G@@@@+@[E@@@@@[N95751001166005116 HF6NC423 HF 3 HF HF _____9____8?PR )@@G@@.A620]@^\@^\@@+@[E@@@@@[N95751001166005116 HF6NC423 HF 3 HF HF PS )@@G@@_____9____8?@@@@YR@@@@IV@@@@?2@@@[ES@@@[7E@@@[\,____8<____5R____5R@@@@<\PT )@@G@@@@@[\,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IVPU )@@G@@@@@@YR@@@@=;@@@@>X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PV )@@G@@@@@@@@NIMROD III 635U-4 PE ROTH HF MISC CONTRACT COLLATEPW )@@G@@RAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3APX )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95790001166005116 HF6NC423 PY )@@G@@HF 3 HF HF @@@@@3@@@@H+@@@@@@@@@@@@@@@@@@@@@@G(@@@@G(@@@@UF@@@@H+PZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@UF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@ISRAEL GROUND STATION FLYNN HF MISQC )@@G@@C CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDQD )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95004823495QE )@@G@@005116 HF6NC314 HF 4 HF HF _____!____;7@@@@@@@@@@V6@@@@V6@@@@@@QF )@@G@@@@@@V6@@@@RW____;>____;>____;>@@@@@@@@@@RW@@@@A]@@@@@)@@@@@@@@@@@V@@@@@@QG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MARITIME EXTNDR CABLES CQI )@@G@@YOUNG MR-150A/1000A BERANDT HF E-2C/S-3A/HF-12QJ )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EQK )@@G@@@@@@@[N95039823593005118 HF8NC314 HF 4 HF HF @@@@@U@@@@"B@@@@@@QL )@@G@@@@@]:7@@@]:7@@@@@@@@@]:7@@@#%S@@@@"-@@@@"-@@@@"-@@@@@@@@@#%S@@@@%\@@@@]?QM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CR-110 DEVELQO )@@G@@OPMENT MGMT CHANSON CR 110 DEV HILL QP )@@G@@HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA QQ )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IKRUY*@^\@^\QS )@@G@@@@<@[E@@@@@[N95064823587005118 HF8NC314 HF 4 HF HF @@@@@$@@@[WUQT )@@G@@"GB$FC@^\@^\@@<@[E@@@@@[N95064823587005118 HF8NC314 HF 4 HF HF QU )@@G@@@@@@@$@@@[WU@@@@@@@@@]HR@@@]HR@@@@@@@@@]HR@@@#%S@@@[X[@@@[X[@@@[X[@@@@@@QV )@@G@@@@@#%S@@@@@@@@@@2Y@@@[U9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QX )@@G@@@@@@@@CR-200 TESTING CHANSON CR-200 TESTING QY )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF SECUREQZ )@@G@@ VOICE/DATA MCCARTHY @[E@[E@@@@@[N95079823495005116 HF6NC314 RA )@@G@@HF 4 HF HF _____"____"D@@@@@@@@@[Z$@@@[Z$@@@@@@@@@[Z$@@@[X0____"CRB )@@G@@____"C____"C@@@@@@@@@[X0@@@@ S@@@@V.@@@@+E@@@@#"@@@@[F@@@@^ @@@@@@@@@@@[RC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@MR-150A/635U-2 BLD/TEST CYOUNG MR-150RE )@@G@@A/1000A BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDRF )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95666824000RG )@@G@@005116 HF6NC314 HF 4 HF HF _____6____'W@@@@@@@@@[C6@@@[C6@@@@A@RH )@@G@@@@@[I6@@@[C ____9I____BP____BP@@@@ND@@@[C @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[C6@@@@@@@@@@#M@@@@],@@@@@@@@@@@@@@@@@@RJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-581 ARMY DEMO RK )@@G@@GROFF MARITIME BERANDT HF E-2C/S-3A/HF-12RL )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ERM )@@G@@@@@@@[N94855823321005116 HF6NC625 HF 5 HF HF @@@@@G@@@@N6@@@@@@RN )@@G@@@@@]E[@@@]E[@@@@@@@@@]E[@@@]Y#@@@@O]@@@@O]@@@@O]@@@@@@@@@]Y#@@@@O[@@@@$LRO )@@G@@@@@@@:@@@@[C@@@@CO@@@@[\@@@@#/@@@@AX@@@@]?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NIMROD CUST RQ )@@G@@ASSIST CSTERNOWSKI NIMROD DAVID RR )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR RS )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECRU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@D!XYLO@^\@^\@@=@[E@@@@@[N95056823596005116 HF6NC625 HF 5 HF HF RW )@@G@@____6-___1P7____"?@@@LLH@@@LJ'@@@@@@@@@LJ'@@@]WK___1GP___1AW___1AW@@@@^&RX )@@G@@@@@]WK@@@[5J@@@@-W@@@@O4@@@#*,@@@^%6@@@#^<@@@]ZN@@@@@W@@@@@ @@@@@@____V?RY )@@G@@____"?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RZ )@@G@@@@@@@@DDG-2 LINK 11 PROGRAM CFLYNN DDG-2 PROG SA )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3ASB )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95062822120005116 HF6NC625 SC )@@G@@HF 5 HF HF _____:___.[;@@@@@@@@@LLG@@@LLG@@@@@@@@@LLG@@@IM4___.[$SD )@@G@@___.[$___.[$@@@@@@@@@IM4@@@@L)@@@@-O@@@@79@@@[=B@@@]LT@@@#G3@@@[9<@@@]/2SE )@@G@@@@@]L3@@@@+D____"2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 RADIO CUST PE CUHLENHOPP CP-140SG )@@G@@ HF PROGRAM DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDSH )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95152826126SI )@@G@@005116 HF6NC625 HF 5 HF HF ____"+___"\#@@@@@@@@@]%Y@@@]%Y@@@@@@SJ )@@G@@@@@]%Y@@@[S ___"!&___"!&___"!&@@@@@@@@@[S @@@@@@@@@@H<@@@@_Z@@@@)_@@@@>$SK )@@G@@@@@@P+@@@@@D@@@@[W_____2_____;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DOS COLLATERAL ENGR CSM )@@G@@YOUNG DEPT OF ST MARITIME SUPPORT BERANDT HF E-2C/S-3A/HF-12SN )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ESO )@@G@@@@@@@[N95416823596005116 HF6NC625 HF 5 HF HF ____.=___"$M@@@@W4SP )@@G@@@@@[00@@@]H=@@@@BQ@@@]O'@@@@'S___">X___";W___";W@@@@B]@@@@'S@@@@@@@@@@@@SQ )@@G@@@@@@@@@@@@@@@@@@^!@@@@F.@@@@R$@@@@&U@@@@KJ@@@@JD@@@@]!@@@@W4@@@@BQ@@@@@@SR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DDG-II MOD 6SS )@@G@@71U-10 FLYNN DDG-2 PROG DAVID ST )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR SU )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.A620]@^\@^\SW )@@G@@@@>@[E@@@@@[N95417823596005116 HF6NC625 HF 5 HF HF ____"6____>XSX )@@G@@@%\0VE@^\@^\@@>@[E@@@@@[N95417823596005116 HF6NC625 HF 5 HF HF SY )@@G@@____"6____>X@@@@C\@@@@1<@@@@'M@@@@A$@@@[@9@@@@>P____=V____$]____$]@@@@APSZ )@@G@@@@@@>P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>@@@@@Y@@@@@8@@@@NL@@@@H:@@@@DY@@@@ ITA )@@G@@@@@@C\@@@@A$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TB )@@G@@@@@@@@DDG-II HF-122 SYS FLYNN DDG-2 PROG TC )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3ATD )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95418823680005116 HF6NC625 TE )@@G@@HF 5 HF HF ____/-___./9@@@@@@@@@#]"@@@#]"@@@@@@@@@#]"@@@@/U___.9VTF )@@G@@___.9V___.9V@@@@@@@@@@/U@@@@@@@@@@@@@@@@@@@@@@@@@@@@C,@@@@RM@@@@\B@@@[E(TG )@@G@@@@@@Q.@@@@J$@@@@]%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@TYQ-3A MOD 671U-10 CFLYNN TYQ-3ATI )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDTJ )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95420823680TK )@@G@@005116 HF6NC625 HF 5 HF HF _____Y____34@@@@@@@@@@2[@@@@2[@@@@@@TL )@@G@@@@@@2[@@@@>P____3N____3N____3N@@@@@@@@@@>P@@@@@@@@@@@@@@@@@@@@@@@@@@@@[BTM )@@G@@@@@@@\@@@@@8@@@@M4@@@@I$@@@@D7@@@@^[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TYQ-3A HF-122 SYS CTO )@@G@@FLYNN TYQ-3A DAVID HF E-2C/S-3A/HF-12TP )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[ETQ )@@G@@@@@@@[N95430823674005115 HF5NC625 HF 5 HF HF @@@@@R@@@@]J@@@@@@TR )@@G@@@@@@C%@@@@C%@@@@@@@@@@C%@@@@FK@@@@]&@@@@]&@@@@]&@@@@@@@@@@FK@@@@@@@@@@@@TS )@@G@@@@@@@@@@@@@@@@@@@W@@@@@(@@@@ O@@@@]L@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MODIFY 651S-TU )@@G@@1 RADIO CGROSHONG 651S-1 BERNER TV )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S TW )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]*'^)C@^\@^\TY )@@G@@@@&@[E@@@@@[N95472823674005115 HF5NC625 HF 5 HF HF _____$___"#"TZ )@@G@@]*'^)C@^\@^\@@&@[E@@@@@[N95472823674005115 HF5NC625 HF 5 HF HF UA )@@G@@_____$___"#"@@@@@@@@@E@L@@@E@L@@@@@@@@@E@L@@@C#8___"#&___"#&___"#&@@@@@@UB )@@G@@@@@C#8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^.I@@@ ##@@@@@@@@@@@@@@@@@@UC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UD )@@G@@@@@@@@MODIFY 651S-1 RADIO CGROSHONG 651S-1 UE )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/UF )@@G@@LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95659823989005116 HF6NC625 UG )@@G@@HF 4 HF HF _____9____V"@@@@$E@@@[;O@@@]+Y@@@BNO@@@D52@@@DL0____V.UH )@@G@@____7A____7A@@@@,7@@@DL0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UI )@@G@@@@@@@@@@@@IH@@@[!B@@@@$E@@@[M;@@@@1<@@@@1)@@@@12@@@@1)@@@@!1@@@@,Y@@@@\RUJ )@@G@@@@@@,Y@@@@@@@@@@@@@@@@@@NIMROD III CUST ASSISTANCE HOFFNER 913Z-2UK )@@G@@/2A DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDUL )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95731824161UM )@@G@@005116 HF6NC625 HF 5 HF HF @@@@@(@@@A6B@@@#Q_@@@[T)@@@^0Z@@@^3]UN )@@G@@@@@D<-@@@KUJ@@@A6,@@@AW?@@@AW?@@@^1J@@@KUJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[T)@@@#Q_@@@]?A@@@[=S@@@@+=@@@@@@@@@@@@UP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF-8070A REC/EXC MOD UQ )@@G@@GROSHONG HF-8070A REC/EXC MOD STERNOWSKI HF E-2C/S-3A/HF-12UR )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EUS )@@G@@@@@@@[S99295139925005117 HF7NC626 HF 6 HF HF _____*____= @@@@B5UT )@@G@@@@@[NM@@@[VB@@@@9G@@@]ON@@@[8@____@@@@#+@@@@D#@@@@#Y@@@@W;@@@@NM@@@@G0@@@@^!@@@@B5@@@@LN@@@@LNUV )@@G@@@@@@F>@@@@F[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AARDVARK TECUW )@@G@@H MGMT ROBINSON LPI PROGRAM ABODEELY UX )@@G@@HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER UY )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECVA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@!?9[G0@^\@^\@@$@[E@@@@@[S99296139925005117 HF7NC626 HF 6 HF HF VC )@@G@@____\0___5M @@@@GN@@@]S#@@@]=Q@@@DXB@@@G[X@@@[#)___5]]___5EH___5EH@@@@I6VD )@@G@@@@@[#)@@@@@@@@@@@@@@@@@@@@@@M_@@@@HS@@@@#7@@@@@@@@@@X=@@@@T8@@@@-:@@@@U,VE )@@G@@@@@@GN@@@@LQ@@@@X]@@@[ 0@@@[T;@@@@'1@@@^EI@@@@S>@@@@L,@@@@J9@@@@J9@@@@@@VF )@@G@@@@@@@@AARD CORRELATOR HART LPI PROGRAM VG )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/VH )@@G@@OTHER MCCARTHY @[E@[E@@@@@[S99297139925005117 HF7NC626 VI )@@G@@HF 6 HF HF ____/.___4V/@@@[%"@@@@)N@@@]FL@@@JSS@@@L<(@@@ .@___4TQVJ )@@G@@___6^O___6^O@@@@@@@@@ .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B1@@@@VWVK )@@G@@____0V@@@@E @@@@]>@@@[%"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VL )@@G@@@@@@@@@@@@@@@@@JSS@@@@@@AARD IV.H PURCH EQUIP UHLENHOPP LPI PRVM )@@G@@OGRAM ABODEELY HF PROD/R+D/OTHER MCCARTVN )@@G@@HY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S99414139925VO )@@G@@005117 HF7NC626 HF 6 HF HF ____0D___19+@@@[ZC@@@^%"@@@AEA@@@D>]3EB@^\@^\@@*@[E@@@@@[S99429139925005117 HF7NC626 HF 6 HF HF WE )@@G@@____"C___.R1@@@@@@@@@@ Z@@@@ Z@@@^3@@@@^8Z@@@]I)___.Q@___.Y&___.Y&@@@@@@WF )@@G@@@@@]I)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Z@@@@@@WG )@@G@@@@@@@@@@@@@@@@@[B<@@@[L.@@@[L.@@@[B<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WH )@@G@@@@@@@@AARD CAB AND CABLES UHLENHOPP LPI PROGRAM WI )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/WJ )@@G@@OTHER MCCARTHY @[E@[E@@@@@[S99430139925005117 HF7NC626 WK )@@G@@HF 6 HF HF ____9G___.^B@@@@E2@@@@@@@@@@E2@@@#&O@@@#1A@@@@!@___/;9WL )@@G@@___/M'___/M'@@@@9-@@@@!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WM )@@G@@@@@@@@@@@@@@@@@@@@@@@@E2@@@@/@@@@@/@@@@@'C@@@@4G@@@@@@@@@@@@@@@@@@@@@@@@WN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@AARD CPU AND I/O UHLENHOPP LPI PRWO )@@G@@OGRAM ABODEELY HF PROD/R+D/OTHER MCCARTWP )@@G@@HY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S99431139925WQ )@@G@@005117 HF7NC626 HF 6 HF HF ____0(___5UI@@@@@@@@@@]%@@@@]%@@@F8ZWR )@@G@@@@@F;D@@@[A)___5FQ___5)4___5)4@@@@@@@@@[A)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]%@@@@@@@@@@@@@@@@@@@@@@-*@@@@?W@@@[OCWT )@@G@@@@@[4G@@@[;;@@@[;;@@@[<1@@@[C=@@@@./@@@@@@AARD TIME AND SYNC WU )@@G@@UHLENHOPP LPI PROGRAM ABODEELY HF PROD/R+D/OTHER WV )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[EWW )@@G@@@@@@@[S99432139925005117 HF7NC626 HF 6 HF HF ____/D___/Z*@@@@@@WX )@@G@@@@@@@@@@@@@@@@@ ]L@@@ ]L@@@[X@___/U,___;V+___;V+@@@@@@@@@[X@@@@@@@@@@@@@WY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WZ )@@G@@@@@[:V@@@[:V@@@[:V@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AARD HF-80 MXA )@@G@@ODS UHLENHOPP LPI PROGRAM ABODEELY XB )@@G@@HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER XC )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]*'^)C@^\@^\XE )@@G@@@@(@[E@@@@@[N95241CL7HF6005116 HF6NC437 HF 7 HF HF ____"K___;/(XF )@@G@@CD3O\\@^\@^\@@(@[E@@@@@[N95241CL7HF6005116 HF6NC437 HF 7 HF HF XG )@@G@@____"K___;/(@@@@@$@@@B\P@@@B\/@@@@@@@@@B\/@@@#%S___;'V___'1(___'1(@@@[DTXH )@@G@@@@@#%S@@@[IA@@@]RQ@@@@V*@@@@7;@@@@TH@@@[>1@@@@G'@@@@*T@@@@[1@@@@@@@@@@@OXI )@@G@@@@@@@$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@MARITIME R/T CRC ASSIST CYOUNG FY-80 COMMERCIAL COLLATEXK )@@G@@RAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AXL )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95242CL7HF6005116 HF6NC437 XM )@@G@@HF 7 HF HF _____3___.1X@@@@-9@@@O@!@@@O+&@@@@@@@@@O+&@@@MN8___.1LXN )@@G@@___.(B___.(B@@@@%#@@@MN8@@@[ S@@@#[M@@@[*D@@@]%#@@@]E'@@@[$R@@@[7)@@@GZ)XO )@@G@@@@@]S6___;@,___/ @@@@@-9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@MARITIME PROG/CUST CYOUNG FY-80 XQ )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDXR )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95243CL7HF6XS )@@G@@005116 HF6NC437 HF 7 HF HF _____?___"3R@@@@Q#@@@A.:@@@BN,@@@@@@XT )@@G@@@@@BN,@@@AA*___"29___"B.___"B.@@@[@_@@@AA*@@@@@@@@@@ V@@@@]!@@@@[L@@@@*MXU )@@G@@@@@@9D@@@@9[@@@@74@@@@R1@@@[T7@@@[0U@@@@Q#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MARITIME T/L CRC ASSIST CXW )@@G@@YOUNG FY-80 COMMERCIAL COLLATERAL RATHGEBER HF E-2C/S-3A/HF-12XX )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EXY )@@G@@@@@@@[N95302CL7HF5005115 HF5NC437 HF 7 HF HF @@@@@#@@@@H]@@@@D9XZ )@@G@@@@@ \\@@@ 9*@@@@@@@@@ 9*@@@AA*@@@@H@____6;____6;@@@@Z.@@@AA*@@@@@@@@@@D^YA )@@G@@@@@@>U@@@[A;@@@@\3@@@@N.@@@@GS@@@@(Y@@@[ L@@@@:(@@@@J6@@@@D9@@@@@@@@@@@@YB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@651S PROD ENYC )@@G@@GR CGROSHONG FY-80 COMMERCIAL COLLATERAL RATHGEBER YD )@@G@@HF 51S/AMAT/LCHF/651S/851S RATHGEBER HF 51S/AMAT/LCHF/651S/851S YE )@@G@@RATHGEBER @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECYG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@0F,% (@^\@^\@@%@[E@@@@@[N95477CL7HF6005116 HF6NC437 HF 7 HF HF YI )@@G@@_____4____L>@@@@/7@@@ /_@@@A96@@@@@@@@@A96@@@AFJ____LS____DO____DO@@@@TZYJ )@@G@@@@@AFJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9E@@@@!R@@@[PP@@@[S0@@@@N:@@@[O,YK )@@G@@@@@@/7@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YL )@@G@@@@@@@@HF-122 TEST/DOCUMENTATION CFLYNN FY-80 COMMERCIAL COLLATEYM )@@G@@RAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3AYN )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95632CL7HF6005116 HF6NC437 YO )@@G@@HF 7 HF HF @@@@[F@@@@'L@@@@ A@@@@I@@@@@NA@@@@@@@@@@NA@@@[IC@@@@;]YP )@@G@@@@@@&0@@@@&0@@@@L[@@@[IC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YQ )@@G@@@@@@[C@@@@]D@@@@E\@@@@ A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@HF-122 671U-11 R/T CFLYNN FY-80 YS )@@G@@COMMERCIAL COLLATERAL RATHGEBER HF E-2C/S-3A/HF-121/122/MAR BERANDYT )@@G@@T HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[E@@@@@[N95626001166YU )@@G@@005116 HF6ND423 HF 3 HF HF @@@@@V@@@@^?@@@@@@@@@@]_@@@@]_@@@@EDYV )@@G@@@@@@HC@@@@MC@@@@ @@@@@#3@@@@#3@@@@[Y@@@@MC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@I@@@@@@@@@@]1@@@@@@@@@@[5@@@@[<@@@@[5@@@@[<@@@@[5YX )@@G@@@@@@@;@@@@@(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E2C LOT VIII MT-4448/9 YY )@@G@@BATES HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12YZ )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EZA )@@G@@@@@@@[N94830823527005118 HF8ND625 HF 5 HF HF _____S___31T@@@@@@ZB )@@G@@@@@:>\@@@:>\@@@@@@@@@:>\@@@ZQ+___302___302___302@@@@@@@@@ZQ+@@@A)G@@@ 5VZC )@@G@@@@@#$[@@@]1]@@@[4^@@@[T?@@@@A_@@@@@;@@@@@@@@@@@@@@@@A^@@@@@@@@@@@@@@@@@@ZD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VP-XXX DESIGZE )@@G@@N-DEVELOP CERICKSON VP-XXX DESIGN HILL ZF )@@G@@HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA ZG )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3>]3EB@^\@^\ZI )@@G@@@@:@[E@@@@@[N94845823528005118 HF8ND625 HF 5 HF HF @@@@@,@@@[(UZJ )@@G@@4UW76 @^\@^\@@:@[E@@@@@[N94845823528005118 HF8ND625 HF 5 HF HF ZK )@@G@@@@@@@,@@@[(U@@@@@@@@@[8V@@@[8V@@@@@@@@@[8V@@@#+<@@@[%C@@@[%C@@@[%C@@@@@@ZL )@@G@@@@@#+<@@@@X%@@@@X&@@@@]_@@@@[D@@@@@@@@@@@V@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZN )@@G@@@@@@@@VP-XXX TECH MGMT CERICKSON VP-XXX TECH MGMT ZO )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF SECUREZP )@@G@@ VOICE/DATA MCCARTHY @[E@[E@@@@@[N94846823528005118 HF8ND625 ZQ )@@G@@HF 5 HF HF _____P___97E@@@@@@@@@O$$@@@O$$@@@@@@@@@O$$@@@IYC___96)ZR )@@G@@___96)___96)@@@@@@@@@IYC@@@[2^@@@^DY@@@[H+@@@]<$@@@[^,@@@@SL@@@@@@@@@@@@ZS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@VP-XXX TECH SUPPORT CERICKSON VP-XXXZU )@@G@@ TECH MGMT HILL HF SECURE VOICE/DATA MCCARTZV )@@G@@HY HF HF SECURE VOICE/DATA MCCARTHY @[E@[E@@@@@[N95617829957ZW )@@G@@005119 HF9ND625 HF 5 HF HF ____/H___4GW@@@^(K@@@AK<@@@E93@@@ 4KZX )@@G@@@@@K,#@@@^8)___4EW___9,T___9,T@@@]@"@@@^8)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@!@@@]N$@@@#/J@@@^(K@@@]2B@@@[4X@@@@*4@@@@MW@@@@MWZZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 728U-2 ME AA )@@G@@HOFFA ARC-XXX GLYNN HF ARC-XXX AB )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY @[E@[EAC )@@G@@@@@@@[N95769829964005119 HF9ND625 HF 5 HF HF ____________@@@@@@AD )@@G@@@@@@@@@@@@@@@@@MV3@@@MV3@@@MV3____________@@@@@@@@@@@@@@@MV3@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ADL@@@ADLAF )@@G@@@@@ADL@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX TOOLAG )@@G@@ING R/T AND C NEYENS ARC-XXX GLYNN AH )@@G@@HF ARC-XXX MCCARTHY HF ARC-XXX AI )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AU1@2@^\@^\AK )@@G@@@@?@[E@@@@@[N95775829961005119 HF9ND625 HF 5 HF HF __________/GAL )@@G@@@AU1@2@^\@^\@@?@[E@@@@@[N95775829961005119 HF9ND625 HF 5 HF HF AM )@@G@@__________/G@@@@#3@@@@@@@@@@#3@@@EX%@@@E-X@@@EX%____/G______@@@@@@@@@@@@AN )@@G@@@@@EX%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO )@@G@@@@@@#3@@@#ZI@@@#ZI@@@#ZI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AP )@@G@@@@@@@@ARC-XXX R/T ELEC PARTS NEYENS ARC-XXX AQ )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARC-XXX AR )@@G@@ MCCARTHY @[E@[E@@@@@[N95429823679005115 HF5NE625 AS )@@G@@HF 5 HF HF @@@@@D@@@@FT@@@@1O@@@[[B@@@[2V@@@@@@@@@[2V@@@["=@@@@GDAT )@@G@@@@@@.X@@@@.X@@@@@@@@@["=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@#@@@@@@@@@@@@AU )@@G@@@@@[@D@@@@@@@@@@@@@@@@1O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@MODEM PROC F CYTA CWEBB CYPRUSAW )@@G@@ BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEAX )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95495823925AY )@@G@@005117 HF7NE625 HF 5 HF HF @@@@@^@@@@J=@@@@\E@@@^=*@@@ N2@@@@@@AZ )@@G@@@@@ N2@@@ <$@@@@J5@@@@"_@@@@"_@@@@@@@@@ <$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BA )@@G@@@@@@MS@@@@BG@@@[N1@@@@,^@@@[FA@@@@"D@@@@\E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TENNE CIRCUIT CARDS CBC )@@G@@PARKER TENNE ABODEELY HF PROD/R+D/OTHER BD )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[EBE )@@G@@@@@@@[N95505823913005117 HF7NE625 HF 5 HF HF @@@@@K@@@@,]@@@@[0BF )@@G@@@@@#!^@@@#,4@@@@@@@@@#,4@@@^X]@@@@,I@@@@+>@@@@+>@@@@E"@@@^X]@@@@@@@@@@@@BG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]3@@@@"P@@@@#O@@@[$[@@@[[$@@@@[0@@@@@@@@@@@@BH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TENNE MOD KIBI )@@G@@T BLD CPARKER TENNE ABODEELY BJ )@@G@@HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER BK )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ECBM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BN )@@G@@D G,YQ@^\@^\@@!@[E@@@@@[N95506823913005117 HF7NE625 HF 5 HF HF BO )@@G@@@@@@@[@@@@BR@@@@)___.12CX )@@G@@___.12___.12@@@@@@@@@@>)@@@@@@@@@@@@@@@@@@@@@]*V@@@[XJ@@@@MH@@@@[7@@@@[QCY )@@G@@___"S*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@F4.2 HF-280 ACC DEV CBARNUM HF-280DA )@@G@@ TESTS/DEV BERNER HF 51S/AMAT/LCHF/651S/851S RATHGEDB )@@G@@BER HF 51S/AMAT/LCHF/651S/851S RATHGEBER @[E@[E@@@@@[N95166001166DC )@@G@@005116 HF6OA423 HF 3 HF HF _____%____%S@@@@@@@@@[;>@@@[;>@@@@@@DD )@@G@@@@@[;>@@@[>(____%#____%#____%#@@@@@@@@@[>(@@@@@@@@@@[B@@@@ O@@@@H#@@@@J5DE )@@G@@@@@@EO@@@@R%@@@@7&____":@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E2C LOT VII HF REL CDG )@@G@@PRIGNITZ HF MISC CONTRACT COLLATERAL BERANDT HF E-2C/S-3A/HF-12DH )@@G@@1/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT @[E@[EDI )@@G@@@@@@@[N95705001166005116 HF6OA423 HF 3 HF HF @@@@@^@@@@^T@@@@[-DJ )@@G@@@@@@@@@@@@[-@@@[WD@@@[X%@@@[-.@@@@^N____9N____9N@@@@JE@@@[-.@@@@@@@@@@@@DK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[-@@@@JU@@@@J[DL )@@G@@@@@@J[@@@@JU@@@@JU@@@@J9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E-2C LOT VIIDM )@@G@@I HF REL PRIGNITZ HF MISC CONTRACT COLLATERAL BERANDT DN )@@G@@HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR DO )@@G@@BERANDT @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AU1@2@^\@^\DQ )@@G@@@@\@[E@@@@@[N93452822120005116 HF6OA625 HF 5 HF HF ____.Q____GVDR )@@G@@$,SYNP@^\@^\@@\@[E@@@@@[N93452822120005116 HF6OA625 HF 5 HF HF DS )@@G@@____.Q____GV@@@@@@@@@[QB@@@[QB@@@@@@@@@[QB@@@@Z'____D2____D2____D2@@@@@@DT )@@G@@@@@@Z'@@@@ 5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@CP-140 HF LOT I REL CDONZE CP-140 HF PROGRAM DW )@@G@@ DAVID HF E-2C/S-3A/HF-121/122/MAR BERANDT HF E-2C/S-3ADX )@@G@@/HF-121/122/MAR BERANDT @[E@[E@@@@@[N94809823500005117 HF7OA625 DY )@@G@@HF 5 HF HF @@@@@K@@@@EN@@@@@@@@@@4 @@@@4 @@@@@@@@@@4 @@@@"*@@@@E@@@@@@@@@@@@@@@@@@EA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@LAMPS REL DATA CWHITEMAN LAMPS EC )@@G@@DATA ABODEELY HF PROD/R+D/OTHER MCCARTED )@@G@@HY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[N94810823502EE )@@G@@005117 HF7OA625 HF 5 HF HF _____,____7D@@@@@@@@@@/M@@@@/M@@@@@@EF )@@G@@@@@@/M@@@@3F____68____68____68@@@@@@@@@@3F@@@@Y@@@@@[3@@@@@J@@@@@@@@@@@@EG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LAMPS ACCEPT TEST-4 RELIAB CEI )@@G@@WHITEMAN LAMPS ACCEPT ABODEELY HF PROD/R+D/OTHER EJ )@@G@@ MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[EEK )@@G@@@@@@@[N94990822120005116 HF6OA625 HF 5 HF HF _____9____7Z@@@@@@EL )@@G@@@@@]K#@@@]K#@@@@A0@@@]Q3@@@]IG____7S____4*____4*@@@@]/@@@]IG@@@@F.@@@@QNEM )@@G@@@@@@XM@@@@];@@@@#%@@@@NX@@@@DU@@@@BLANK @ X@@9)@#;V_MEMRY @ 1@@@@@#_N2GB )@@G@@TABINF @ 1@@H@@#_OEMISCEL @ 1@@@@@#_Q#LINE @ 1@@@@@#_Q&GC )@@G@@CIRDAT @ 1@@@@@#_Q8MOSARG @ 1@@@@@#_RPSTATUS @ 1@@@@@#_SIGD )@@G@@FLAGS @ 1@@@@@#_S4KNSTNT @ 1@@@@@#_TPDC @ 1@@@@@#_T5GE )@@G@@AC @ 1@@@@@#_UITRAN @ 1@@@@@#_V[OUTINF @ 1@@@@@#_VOGF )@@G@@CJE @ 1@@@@@#_V1DEBUG @ 1@@@@@#_WVSNSTAT @ 1@@@@@#_W%GG )@@G@@MCSTAT @ 1@@@@@#_X]XQTOPT @ 1@@@@@#_X!BLANK @ 1@@@@@#_YBGH )@@G@@STATUS @^9@@@@@^'B_FLAGS @^9@@@@@^'C>KNSTNT @^9@@@@@^'D GI )@@G@@DC @^9@@@@@^'D>AC @^9@@@@@^'D"TRAN @^9@@@@@^'E1GJ )@@G@@OUTINF @^9@@@@@^'F^CJE @^9@@@@@^'F-DEBUG @^9@@@@@^'GFGK )@@G@@MCSTAT @^9@@@@@^'GSBLANK @^9@@@@@^'HBMEMRY @^S@@@@@^Z[QGL )@@G@@TABINF @^S@@H@@^Z[?MISCEL @^S@@@@@^Z#TLINE @^S@@@@@^Z#8GM )@@G@@CIRDAT @^S@@@@@^Z^CMOSARG @^S@@@@@^Z^5@@@B>5@@@BJ]____(GLN )@@G@@@@@@FD@@@@FD@@@@D'@@@BJ]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F3@@@@C8@@@@5@@@@[[S@@@@D?@@@@DI@@@@E$@@@@DSLP )@@G@@@@@@D8@@@@4%@@@@DS@@@@0XARC-XXX INT TE-NON-RECUR JAMIESON ARC-XXLQ )@@G@@X GLYNN HF ARC-XXX MCCARTLR )@@G@@HY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95761829962LS )@@G@@005119 HF9OE625 HF 5 HF HF _____;___"?7@@@@@@@@@@@@@@@@@@@@@WFYLT )@@G@@@@@WFY@@@U9#___"!=@@@GF*@@@GF*@@@@Z@@@@U9#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[K?@@@[JM@@@]NE@@@[JM@@@[]'LV )@@G@@@@@[[)@@@]CD@@@[R[@@@]CD@@@[R[@@@[^M@@@[]6ARC-XXX INT TE-RECURRING LW )@@G@@JAMIESON ARC-XXX GLYNN HF ARC-XXX LX )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY @[E@[ELY )@@G@@@@@@@[N95754829960005119 HF9OK625 HF 5 HF HF @@@@@D@@@@P8@@@@D&LZ )@@G@@@@@@BC@@@@K,@@@]/9@@@#H$@@@#=S@@@@Q1@@@]#V@@@]#V@@@@B'@@@#=S@@@@@@@@@@@@MA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BC@@@@D&@@@@LO@@@@LOMB )@@G@@@@@@LO@@@@LO@@@@K;@@@@K;@@@@LL@@@@LL@@@@LL@@@@LL@@@@K\@@@@@@AN/ARC-XXX DMC )@@G@@ATA CAE BALL ARC-XXX GLYNN MD )@@G@@HF ARC-XXX MCCARTHY HF ARC-XXX ME )@@G@@MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@3A_B)Y@[I@@@MG )@@G@@@@7@[E@@@@@[N95765829961005119 HF9OK625 HF 5 HF HF @@@@@#@@@@ _MH )@@G@@3A_B)Y@[I@@@@@7@[E@@@@@[N95765829961005119 HF9OK625 HF 5 HF HF MI )@@G@@@@@@@#@@@@ _@@@@LQ@@@@C @@@@TV@@@].^@@@#QZ@@@#XR@@@@A8@@@["+@@@["+@@@@BFMJ )@@G@@@@@#XR@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@C MK )@@G@@@@@@LQ@@@@K;@@@@KT@@@@K@@@@@K;@@@@KT@@@@KT@@@@KQ@@@@LL@@@@NB@@@@O^@@@@LLML )@@G@@@@@@@@ARC-XXX COLL (PRE-PROD) VEENSTRA ARC-XXX MM )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARC-XXX MN )@@G@@ MCCARTHY @[E@[E@@@@@[S99293139906005117 HF7OC626 MO )@@G@@HF016 HF HF _____Y____!:@@@@TS@@@@$ @@@[@X@@@@B2@@@[CJ@@@@6[____!1MP )@@G@@@@@@#:@@@@#:@@@@#!@@@@6[@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE@@@@]6@@@@D:@@@@GUMQ )@@G@@@@@@ 5@@@@@0@@@@[V@@@@TSQOWA?S@^\@^\@@[@[E@@@@@[N95475823522005119 HF9MR )@@G@@%A111 HF 1 HF HF _____)____ '@@@@@@@@@#6^@@@#6^@@@@@@@@@#6^@@@];)MS )@@G@@____ V____ V____ V@@@@@@@@@];)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[ 2MT )@@G@@@@@[1^@@@@84@@@@AU@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BIRD SMO CMOGER MV )@@G@@(BIRD) ARC-XXX GLYNN HF ARC-XXX MW )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95611MX )@@G@@829957005119 HF9%A625 HF 5 HF HF ____.;___9<1@@@]EE@@@ ;5@@@C _MY )@@G@@@@@#KV@@@FQU@@@^8)___9+ ___'!S___'!S@@@[^3@@@^8)@@@@@@@@@@@@@@@@@@@@@@@@MZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>/@@@]V?@@@]'H@@@]EE@@@[OK@@@@_&@@@@Q)@@@@+"NA )@@G@@@@@@#B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF-718U-2 SYNTH NB )@@G@@ MOGER ARC-XXX GLYNN HF ARC-XXX NC )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY ND )@@G@@@[E@[E@@@@@[N95779829961005119 HF9%A625 HF 5 HF HF @@@@@D@@@@%DNE )@@G@@@@@@@@@@@@@@@@@@@@@@@A[!@@@A[!@@@A:2@@@@% ____?A____?A@@@[C5@@@A:2@@@@@@NF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[HNNG )@@G@@@@@[G'@@@[HN@@@[G'@@@[HN@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXNH )@@G@@X SYNTH COLL MOGER ARC-XXX GLYNN NI )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX NJ )@@G@@ MCCARTHY @[E@[E@@@@@[S99291139925005117 HF7%B626 HF 6 HF NK )@@G@@HF _____?___"%J@@@@@@@@@CQS@@@CQS@@@@@@@@@CQS@@@B@P___"(/___"(/___"(/NL )@@G@@@@@@@@@@@B@P@@@@@@@@@@@@@@@@@@@@@@63@@@[>4@@@[7>@@@[:L@@@[? @@@@=.@@@@@@NM )@@G@@@@@@ 9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NN )@@G@@@@@@@@@@@@@@LPI WAVEFORM (SYS) DEF CBLISS LPI PROGRAM NO )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PRONP )@@G@@D/R+D/OTHER MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NR )@@G@@@@@@@@@@@@@@3A_B)Y@^\@@@@@]@[E@@@@@[S99292139925005117 HF7%B626 HF 6 NS )@@G@@HF HF _____4____=5F0?QS+@^\@^\@@]@[E@@@@@[S99292139925005117 HF7NT )@@G@@%B626 HF 6 HF HF _____4____=5@@@@@@@@@^[D@@@^[D@@@@@@@@@^[D@@@#>4NU )@@G@@____=%____=%____=%@@@@@@@@@#>4@@@@@@@@@@@@@@@@@@@@@@^.@@@@YX@@@[[,@@@@"XNV )@@G@@@@@[P%@@@@B'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LPI PROP/SOUNDING CBLISS NX )@@G@@LPI PROGRAM ABODEELY HF PROD/R+D/OTHER NY )@@G@@MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S99422NZ )@@G@@139925005117 HF7%B626 HF 6 HF HF ____"N___"^S@@@@@@@@@#1F@@@#1FOA )@@G@@@@@@@@@@@#1F@@@[38___"]?___"]?___"]?@@@@@@@@@[38@@@@@@@@@@@@@@@@@@@@@@@@OB )@@G@@@@@@@@@@@@@@@@@@@@@@@[OI@@@]W.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AARD TASK I ICD REPORT OD )@@G@@ BLISS LPI PROGRAM ABODEELY HF PROD/R+D/OE )@@G@@OTHER MCCARTHY HF PROD/R+D/OTHER MCCARTHY OF )@@G@@@[E@[E@@@@@[N95686829961005119 HF9%C625 HF 5 HF HF ____"2____L#OG )@@G@@@@@@NT@@@@=N@@@@7?@@@@7O@@@[\@@@@@")____JZ____[H____[H@@@@P'@@@@")@@@@@@OH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@J=@@@@O\@@@@NT@@@@MWOI )@@G@@@@@@MW@@@@MW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXOJ )@@G@@X S/V ENGR SUP LANGENFELD ARC-XXX GLYNN OK )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX OL )@@G@@ MCCARTHY @[E@[E@@@@@[N95687829960005119 HF9%C625 HF 5 HF OM )@@G@@HF @@@@@[@@@@]&_____(@@@@G6@@@@G)@@@^S*@@@^>C@@@^*8@@@@#0@@@#X2@@@#X2ON )@@G@@@@@@JP@@@^*8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DIOO )@@G@@@@@@#*_____(@@@[\:@@@[\:@@@@9M@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OP )@@G@@@@@@@@@@@@@@ARC-XXX DATA/ANALYSIS LANGENFELD ARC-XXX OQ )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCOR )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OT )@@G@@@@@@@@@@@@@@40'7SE@^\@^\@@#@[E@@@@@[N95717829963005119 HF9%C625 HF 5 OU )@@G@@HF HF @@@@@[@@@@^4QR1S_T@^\@^\@@#@[E@@@@@[N95717829963005119 HF9OV )@@G@@%C625 HF 5 HF HF @@@@@[@@@@^4@@@@H>@@@@@@@@@@H>@@@^2*@@@ @H@@@ @OW )@@G@@@@@@^3____'<____'<@@@@L!@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H>@@@@]N@@@[)#@@@@]N@@@[+Q@@@@^&@@@[+Q@@@@^!OY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX EMP TESTING LANGENFELD OZ )@@G@@ARC-XXX GLYNN HF ARC-XXX PA )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95451PB )@@G@@823941005118 HF8%E625 HF 5 HF HF __________9=@@@@;\@@@J[K@@@J/_PC )@@G@@@@@[&%@@@L<(@@@LXL____9$@@@@+R@@@@+R@@@[9%@@@LXL@@@@@@@@@@@@@@@@@@@@@@@@PD )@@G@@@@@@@@@@@@@@@@@]3&@@@]"0@@@]7+@@@]S9@@@#"Z@@@@;\@@@@V#@@@[F$@@@@@@@@@@@@PE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ME-680 SOFTWARE DEV PF )@@G@@ BONG ME-680 HILL HF SECURE VOPG )@@G@@ICE/DATA MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY PH )@@G@@@[E@[E@@@@@[N95585823975005118 HF8%E625 UH 5 HF HF @@@@@K@@@]S(PI )@@G@@@@@[;O@@@^(/@@@A>K@@@ >V@@@GE:@@@I<+@@@]S7@@@]#7@@@]#7@@@#RP@@@I<+@@@@@@PJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=9@@@@2F@@@[MD@@@]@\@@@[;O@@@]7"PK )@@G@@@@@]!X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ME-840PL )@@G@@ SOFTWARE DES LUKOWSKI R+D (COMBO RADIO) HILL PM )@@G@@ HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA PN )@@G@@ MCCARTHY @[E@[E@@@@@[S99271139905005118 HF8%E626 HF 6 HF PO )@@G@@HF _____/____=Y@@@@6V@@@GU6@@@HLL@@@@R#@@@H*O@@@HG3____=Y@@@@BV@@@@BVPP )@@G@@@@@@P#@@@HG3@@@@@@@@@@A5@@@@CS@@@@@@@@B?@@@@ [@@@@AV@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LAMPS 718U-5 CMILLER QB )@@G@@LAMPS DATA ABODEELY HF PROD/R+D/OTHER QC )@@G@@MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[N94919QD )@@G@@822120005116 HF6KB625 HF 5 HF HF _____/____20@@@@IT@@@^8X@@@ A6QE )@@G@@@@@[26@@@A9?@@@A?M____2>____JW____JW@@@@RA@@@A?M@@@@D<@@@@N_@@@@++@@@@S"QF )@@G@@@@@@@@@@IT@@@@QB@@@@L%@@@@L%@@@@QBQG )@@G@@@@@@L%@@@@L%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP-140 LOT II HF/UHF QH )@@G@@ VOLDEN CP-140 HF PROGRAM DAVID HF E-2C/S-3AQI )@@G@@/HF-121/122/MAR BERANDT HF E-2C/S-3A/HF-121/122/MAR BERANDT QJ )@@G@@@[E@[E@@@@@[N95733829961005119 HF9KB625 HF 5 HF HF _____"____" QK )@@G@@@@@@AL@@@@['@@@@CF@@@]#8@@@]G#@@@]EJ____"F@@@@D<@@@@D<@@@@AU@@@]EJ@@@@@@QL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@['@@@@AL@@@@CUQM )@@G@@@@@@A!@@@@A!@@@@CU@@@@A!@@@@A!@@@@C>@@@@A6@@@@A6@@@@C>@@@@A6@@@@A6ARC-XXQN )@@G@@X CONFIG MGMT LOE MILLER ARC-XXX GLYNN QO )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX QP )@@G@@@@@@@@@[!@@@@@@@@@@@@@@@@@@@[?@@@@@@@@@@@@@@\@@@@@@@[P@@@@@@@@@@@@@@@@@@QQ )@@G@@@[A@[M@[$@[N@[8@@@@@@@[3@@@@@$@@8@@(@@@@@@@@@@@@@[6@[&@[@@@@@[J@@?@@%@@@QR )@@G@@@@@@[,@@@@@@@@@@@@@@F@@@@@@@[V@@@@@@@@@@@@@@!@@@@@C@@@@@@@@@@@,@@@@@@@@1QS )@@G@@@@@@@@@@@@@@@@@@@'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@QT )@@G@@@@@@@@@@@@[(@@@@@&@@Z@@@@@@@@@@@7@[B@@@@[%@[9@@@@@@@[]@@@@@@@@T@@@@@O@@@QU )@@G@@@[D@[K@@@@@=@@@@[ @@:@@@@@@@@@@@@@@@@@@@@9@@I@@@@@@@@+@@@@@@@@@@@@@@B@@@QV )@@G@@@@@@@@@@H@@@@@6@@@@@S@@@@@@@@@@[+@@P@@G@@@@@@@@@@@@@[*@@N@@@@@^@@@@@>@@@QW )@@G@@@@Y@@@@@@@@@@@@@[E@@@@@@@@@@@<@@@@@@@@@@[)@@.@@D@@@@@@@[:@@@@@Q@@W@@@@@@QX )@@G@@@@@@@@@[Z@@@@@]@@2@[S@@@@[C@@@@@J@[7@[O@@;@[1@@@@@@@@@@@L@@@@@X@@@@@)@[FQY )@@G@@@@E@[H@@@@@@@@@@@@@@ @@@@@@@@@@@3@@@@@@@@@@@A@@@@@@@[#@[[@@@@@0@@_@[L@[RQZ )@@G@@@@@@@R@@@@@@@@@@@@@@@@@M@@@@@@@@#@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@[-@@5@@@RA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@[5@[=@@@@@@@[2@[I@@^@[9TITLE @[1@@@@@@@@@RB )@@G@@COMPRS @[2@@@@@@@@@MEMPTR @[3@[U@@@@@@DMPMEM @[4@@@@@@@@@RC )@@G@@DMPMAT @[5@@@@@@@@@MATVAL @[6@@@@@@@@@TMPUPD @[7@[<@@@@@@RD )@@G@@MAGPHS @[8@@@@@@@@@OUTNAM @[9@@@@@@@@@ALFNUM @['@@@@@@@@@RE )@@G@@FIND @[;@@/@@@@@@MEMORY @[/@@@@@@@@@DCDCMP @[.@[Y@@@@@@RF )@@G@@DCSOL @["@@@@@@@@@MOVE @[_@@@@@@@@@COPY4 @]@@[\@@@@@@RG )@@G@@COPY8 @]@@@*@@@@@@COPY16 @]@@@@@@@@@@ZERO4 @][@[Q@@@@@@RH )@@G@@ZERO8 @][@@@@@@@@@ZERO16 @][@@@@@@@@@GETCJE @]]@[G@@@@@@RI )@@G@@MCORE @]#@@V@@@@@VLCORE @]#@@U@@@@@UNOCORE @]#@@@@@@@@@RJ )@@G@@LCORE @]^@@@@@@@@@MCORE @]^@[T@@@@@@READIN @] @@@@@@@@@RK )@@G@@KEYSRC @]A@@@@@@@@@EXTNAM @]B@@@@@@@@@RUNCON @]C@@@@@@@@@RL )@@G@@OUTDEF @]D@@-@@@@@@CARD @]E@[X@@@@@@GETLIN @]F@@@@@@@@@RM )@@G@@NXTCHR @]G@@@@@@@@@ERRCHK @]H@@@@@@@@@SHLSRT @]I@@@@@@@@@RN )@@G@@PUTNOD @]J@@@@@@@@@GETNOD @]K@@"@@@@@@SUBCKT @]L@@@@@@@@@RO )@@G@@FNDNAM @]M@@@@@@@@@NEWNOD @]N@@@@@@@@@ADDELT @]O@@@@@@@@@RP )@@G@@CPYTAB @]P@@@@@@@@@LNKREF @]Q@@@@@@@@@SUBNAM @]R@[4@@@@@@RQ )@@G@@ELPRNT @]S@@4@@@@@@MODCHK @]T@@@@@@@@@TOPCHK @]U@@@@@@@@@RR )@@G@@SETUP @]V@[0@@@@@@MATPTR @]W@[W@@@@@@RESERV @]X@@@@@@@@@RS )@@G@@REORDR @]Y@@@@@@@@@MATLOC @]Z@@@@@@@@@INDEX @])@@@@@@@@@RT )@@G@@CODGEN @]-@@@@@@@@@MINS @]+@@@@@@@@@MINS0 @]+@@@@@@@@@RU )@@G@@MINS1 @]+@@@@@@@@@MINS2 @]+@[^@@@@@@MINS3 @]+@@@@@@@@@RV )@@G@@MINS4 @]+@@@@@@@@@DCTRAN @]<@@@@@@@@@COMCOF @]=@@@@@@@@@RW )@@G@@TRUNC @]>@@@@@@@@@TERR @]&@@@@@@@@@SORUPD @]$@[>@@@@@@RX )@@G@@ITER8 @]*@@@@@@@@@LOAD @](@@@@@@@@@NLCSRC @]%@@@@@@@@@RY )@@G@@UPDATE @]:@@@@@@@@@EVPOLY @]?@@@@@@@@@EVTERM @]!@@@@@@@@@RZ )@@G@@NXTPWR @],@@@@@@@@@INTGR8 @]\@@@@@@@@@PNJLIM @]0@@@@@@@@@SA )@@G@@DIODE @]1@@@@@@@@@BJT @]2@@@@@@@@@FETLIM @]3@@@@@@@@@SB )@@G@@JFET @]4@@@@@@@@@MOSFET @]5@@@@@@@@@MOSEQ1 @]6@@@@@@@@@SC )@@G@@MOSEQ2 @]7@@@@@@@@@ELMNSY @]8@@@@@@@@@EXPEQN @]9@@@@@@@@@SD )@@G@@MOSCAP @]'@@@@@@@@@CODEXC @];@@@@@@@@@DCOP @]/@@@@@@@@@SE )@@G@@SSTF @].@@@@@@@@@SENCAL @]"@@@@@@@@@ASOL @]_@@@@@@@@@SF )@@G@@ACAN @#@@@@@@@@@@PZAN @#[@@@@@@@@@MULLER @#]@@@@@@@@@SG )@@G@@PZADJ @##@@@@@@@@@CALDET @#^@@@@@@@@@PZLOAD @# @@@@@@@@@SH )@@G@@ACDCMP @#A@@@@@@@@@ACSOL @#B@@@@@@@@@ACLOAD @#C@@@@@@@@@SI )@@G@@NOISE @#D@@@@@@@@@ACASOL @#E@@@@@@@@@DINIT @#F@@@@@@@@@SJ )@@G@@DISTO @#G@@@@@@@@@NTRPL8 @#H@@@@@@@@@SETPRN @#I@@@@@@@@@SK )@@G@@SETPLT @#J@@@@@@@@@PLOT @#K@@@@@@@@@SCALE @#L@@@@@@@@@SL )@@G@@FOURAN @#M@@@@@@@@@RAND @#N@@@@@@@@@OVTPVT @#P@@@@@@@@@SM )@@G@@FMAIN$ @#T@@@@@@@@@SETMEM @#V@@@@@@@@@GETMEM @#V@@@@@@@@@SN )@@G@@RELMEM @#V@@@@@@@@@EXTMEM @#V@@@@@@@@@SIZMEM @#V@@@@@@@@@SO )@@G@@CLRMEM @#V@@@@@@@@@PTRMEM @#V@@@@@@@@@CRUNCH @#V@@@@@@@@@SP )@@G@@PLTSET @^ @@@@@@@@@TMPUPD @^B@@@@@@@@@FIND @^D@@@@@@@@@SQ )@@G@@READIN @^F@@@@@@@@@ERRCHK @^H@@@@@@@@@ADDELT @^J@@@@@@@@@SR )@@G@@LNKREF @^L@@@@@@@@@ELPRNT @^N@@@@@@@@@MATPTR @^P@[7@@@@@@SS )@@G@@MATLOC @^R@@@@@@@@@LOAD @^T@@@@@@@@@NLCSRC @^V@@@@@@@@@ST )@@G@@SENCAL @^X@[@@@@@@@ACAN @^Z@@@@@@@@@ACLOAD @^-@@@@@@@@@SU )@@G@@SETPRN @^<@@@@@@@@@SETPLT @^>@@@@@@@@@PPLOT @^&@]3@@@@@@SV )@@G@@PRTCN @^$@@@@@@@@@MCORE @^*@]Q@@@@@@LCORE @^*@]G@@@@@@SW )@@G@@NOCORE @^*@@@@@@@@@RESTOR @^(@@@@@@@@@GETSMP @^%@]%@@@@@@SX )@@G@@RANF @^:@@@@@@@@@RANFPC @^:@@@@@@@@@RANFNC @^:@@@@@@@@@SY )@@G@@SUPTIM @^?@@@@@@@@@SETTOL @^!@@@@@@@@@RDMOD @^,@]X@@@@@@SZ )@@G@@SCONV @^\@@@@@@@@@MODLNK @^0@@@@@@@@@ELSRCH @^1@@@@@@@@@TA )@@G@@EXTBL @^2@@@@@@@@@MODVAL @^3@@@@@@@@@DIVDIF @^4@@@@@@@@@TB )@@G@@SENFMT @^5@@@@@@@@@SENSRC @^5@@@@@@@@@SEN2P @^5@@@@@@@@@TC )@@G@@SENCVT @^5@@@@@@@@@SNEWS @^7@@@@@@@@@PMPRM @^9@@@@@@@@@TD )@@G@@RUNCON @^/@@@@@@@@@MODCHK @^_@@@@@@@@@OPTCHK @ [@@@@@@@@@TE )@@G@@EVALMC @ #@]0@@@@@@DCOP @ A@@@@@@@@@ACSENS @ C@@@@@@@@@TF )@@G@@MONTE @ E@@@@@@@@@DCTRAN @ H@]M@@@@@@SAMPLE @ J@@@@@@@@@TG )@@G@@TRSENS @ L@@@@@@@@@TRANMC @ N@@@@@@@@@OVTPVT @ Q@@@@@@@@@TH )@@G@@NAMENM @ R@@@@@@@@@CLKNM @ R@@@@@@@@@RNIDNM @ R@@@@@@@@@TI )@@G@@ADDT$$ @ S@@@@@@@@@PDMP$$ @ S@@@@@@@@@SCMP$$ @ S@@@@@@@@@TJ )@@G@@SLCP$$ @ S@@@@@@@@@TCMP$$ @ S@@@@@@@@@XLEN$$ @ S@@@@@@@@@TK )@@G@@@@@@]9@@@@BB@@@@AK_____C____7!____7!@@@@EO@@@@AK@@@@@@@@@@@@@@@@@@@@@@@@TL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^I@@@@@@@@@@]9@@@@@@@@@@@@@@@@@@TM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PROM KIT FOR BI-SYNC TN )@@G@@ LAHR PROM KIT HILL HF SECURE VOTO )@@G@@ICE/DATA MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY TP )@@G@@@[E@[E@@@@@[N95663CL7HF8005118 HF8LA437 HF 7 HF HF _____K____URTQ )@@G@@@@@@5:@@@@:6@@@[--@@@@L"@@@[3Z@@@[IC____U*@@@@I[@@@@I[@@@@OL@@@[IC@@@@@@TR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I%@@@@XG@@@@5:@@@@L"TS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ANSI STT )@@G@@UPPORT LAHR FY-80 COMMERCIAL COLLATERAL MCCARTTU )@@G@@HY HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA TV )@@G@@ MCCARTHY @[E@[E@@@@@[N95664CL7HF8005118 HF8LA437 HF 7 HF TW )@@G@@HF _____*___"+?@@@[[:@@@AK,@@@BMT@@@@L"@@@B=R@@@AA*___"+K___"K.___"K.TX )@@G@@@@@[=/@@@AA*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]X9TY )@@G@@@@@#25@@@[[:@@@@L"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZ )@@G@@@@@@@@@@@@@@SECURE DATA PROD SUPPORT LAHR FY-80 COMMERCIAL CUA )@@G@@OLLATERAL MCCARTHY HF SECURE VOICE/DATA MCCARTHY HF HF UB )@@G@@SECURE VOICE/DATA MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UD )@@G@@@@@@@@@@@@@@SJ]&>S@^\@^\@@C@[E@@@@@[N94865001188005118 HF8LB423 HF 3 UE )@@G@@HF HF ____.Z___/.** F\3E@^\@^\@@C@[E@@@@@[N94865001188005118 HF8UF )@@G@@LB423 HF 3 HF HF ____.Z___/.*@@@@@@@@@^_+@@@^_+@@@@@@@@@^_+@@@[':UG )@@G@@___/;C___/;C___/;C@@@@@@@@@[':@@@@@Z@@@@@M@@@@DD@@@[$;@@@@TH@@@@E9@@@[[7UH )@@G@@@@@[QB@@@@^^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM-4823 PRESELECTOR P E CDAWSON UJ )@@G@@HF MISC CONTRACT COLLATERAL MCCARTHY HF SECURE VOICE/DATA UK )@@G@@MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY @[E@[E@@@@@[S98851UL )@@G@@139712005117 HF7LB626 HF 6 HF HF _____C___82.@@@@@@@@@OIB@@@OIBUM )@@G@@@@@@@@@@@OIB@@@H@I___82A___82A___82A@@@@@@@@@H@I@@@[-T@@@[5D@@@[YK@@@[]*UN )@@G@@@@@@[_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS HF RCVR/XCTR UP )@@G@@ CHENNESSEY CAWS ABODEELY HF PROD/R+D/UQ )@@G@@OTHER MCCARTHY HF PROD/R+D/OTHER MCCARTHY UR )@@G@@@[E@[E@@@@@[S98855139712005117 HF7LB626 HF 6 HF HF @@@@@G@@@[XIUS )@@G@@@@@@@@@@@E*K@@@E*K@@@@@@@@@E*K@@@G %@@@[XU@@@[XU@@@[XU@@@@@@@@@G %@@@@$.UT )@@G@@@@@@7+@@@@$>@@@@Y_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS VUV )@@G@@HF RECEIVER CHENNESSEY CAWS ABODEEUW )@@G@@LY HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER UX )@@G@@ MCCARTHY @[E@[E@@@@@[S98857139712005117 HF7LB626 HF 6 HF UY )@@G@@HF @@@@@,@@@]WX@@@@@@@@@]4<@@@]4<@@@@@@@@@]4<@@@ L,@@@]XF@@@]XF@@@]XFUZ )@@G@@@@@@@@@@@ L,@@@@FB@@@@) @@@@<&@@@@ 6@@@@@)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@CAWS PORTABLE TRANSMITTER CHENNESSEY CAWS VC )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PROVD )@@G@@D/R+D/OTHER MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VF )@@G@@@@@@@@@@@@@@4'!O19@^\@^\@@D@[E@@@@@[S98858139712005117 HF7LB626 HF 6 VG )@@G@@HF HF ____"7___;]6+BT5]#@^\@^\@@D@[E@@@@@[S98858139712005117 HF7VH )@@G@@LB626 HF 6 HF HF ____"7___;]6@@@@_'@@@A6]@@@B5/@@@#":@@@F4$@@@A6VVI )@@G@@___;[3___;UJ___;UJ@@@@:J@@@A6V@@@@@@@@@@Y8@@@@2[@@@[&R@@@@#7@@@@[<@@@@-+VJ )@@G@@@@@@@@@@@@^A@@@@#"@@@[EQ@@@@_'@@@[N?@@@]%_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS HF/VHF SYSTEM INTEG HENNESSEY VL )@@G@@CAWS ABODEELY HF PROD/R+D/OTHER VM )@@G@@MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S98860VN )@@G@@139712005117 HF7LB626 HF 6 HF HF @@@@@B@@@@&K@@@@@@@@@BPD@@@BPDVO )@@G@@@@@@@@@@@BPD@@@B;)@@@@&R@@@@&R@@@@&R@@@@@@@@@B;)@@@@@#@@@@@@_____M@@@@@@VP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS HME CIRCUIT DEVELOPVR )@@G@@ CWIEGEL CAWS ABODEELY HF PROD/R+D/VS )@@G@@OTHER MCCARTHY HF PROD/R+D/OTHER MCCARTHY VT )@@G@@@[E@[E@@@@@[S98861139712005117 HF7LB626 HF 6 HF HF @@@@@E@@@@WCVU )@@G@@@@@@@@@@@#>6@@@#>6@@@@@@@@@#>6@@@^]C@@@@WM@@@@WM@@@@WM@@@@@@@@@^]C@@@@'/VV )@@G@@@@@@O3@@@@[]@@@@#:@@@@]3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS HVX )@@G@@ME REDESIGN CYCLE CWIEGEL CAWS ABODEEVY )@@G@@LY HF PROD/R+D/OTHER MCCARTHY HF PROD/R+D/OTHER VZ )@@G@@ MCCARTHY @[E@[E@@@@@[N95748824157005117 HF7LC314 HF 4 HF WA )@@G@@HF @@@@@A@@@@*'@@@@@9@@@@@+@@@@[V@@@DBG@@@DC$@@@D3^@@@@%X@@@D2+@@@D2+WB )@@G@@@@@@@@@@@D3^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WC )@@G@@@@@@@+@@@@@9@@@[O-@@@[O-@@@[O-@@@[7A@@@[(#@@@[()@@@@@@@@@@@@@@@@@@@@@@@@WD )@@G@@@@@@@@@@@@@@549C-1 (P/O 719D-15) FRAZIER 549C-1 WE )@@G@@ ABODEELY HF PROD/R+D/OTHER MCCARTHY HF PROWF )@@G@@D/R+D/OTHER MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WH )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@V$$J$%@^\@^\@@E@[E@@@@@[N93473823498005117 HF7WJ )@@G@@LC625 HF 5 HF HF _____Q___":8@@@@@@@@@^Y*@@@^Y*@@@@@@@@@^Y*@@@#D8WK )@@G@@___":J___":J___":J@@@@@@@@@#D8@@@@[]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LAMPS DES/MOD 548S-3 CTIMM WN )@@G@@LAMPS ABODEELY HF PROD/R+D/OTHER WO )@@G@@MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[N95618WP )@@G@@829957005119 HF9LC625 HF 5 HF HF ____.I___3@_@@@ A!@@@E3S@@@J' WQ )@@G@@@@@^W@@@@OQ @@@BO0___2"%___5])___5])@@@#W7@@@BO0@@@@@@@@@@@@@@@@@@@@@@@@WR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LD@@@ ] @@@ )E@@@ A!@@@]%.@@@[1#@@@@@@@@@@@@WS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 490A-1 COUPLER WT )@@G@@ MOORE ARC-XXX GLYNN HF ARC-XXX WU )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY WV )@@G@@@[E@[E@@@@@[N95667829971005119 HF9LC625 HF 5 HF HF @@@@@%@@@^H%WW )@@G@@@@@[PG@@@[3 @@@#CL@@@]:%@@@ 3;@@@E[.@@@^I]@@@]W:@@@]W:@@@#9N@@@E[.@@@@@@WX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@0M@@@[]3@@@[PG@@@[3[WY )@@G@@@@@@8(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RC-135WZ )@@G@@ INVUL FILTER FOWLER RC-135 GLYNN XA )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX XB )@@G@@ MCCARTHY @[E@[E@@@@@[N95708829961005119 HF9LC625 HF 5 HF XC )@@G@@HF @@@@@H@@@[>L@@@@@@@@@@@@@@@@@@@@@D;P@@@D;P@@@F)&@@@[>L_____I_____IXD )@@G@@@@@[8G@@@F)&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XE )@@G@@@@@@@@@@@@@@@@@[_L@@@[_[@@@[_[@@@[_[@@@[_[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XF )@@G@@@@@@@@@@@@@@ARC-XXX ANT CPLR RE MOORE ARC-XXX XG )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCXH )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@* F\3E@^\@^\@@F@[E@@@@@[S98853139712005117 HF7LC626 HF 6 XK )@@G@@HF HF @@@@@C@@@[TC0E'[!)@^\@^\@@F@[E@@@@@[S98853139712005117 HF7XL )@@G@@LC626 HF 6 HF HF @@@@@C@@@[TC@@@@@@@@@J+]@@@J+]@@@@@@@@@J+]@@@K;MXM )@@G@@@@@[TK@@@[TK@@@[TK@@@@@@@@@K;M@@@@F;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CAWS AUTO ANT COUPLER CFOWLER XP )@@G@@CAWS ABODEELY HF PROD/R+D/OTHER XQ )@@G@@MCCARTHY HF PROD/R+D/OTHER MCCARTHY @[E@[E@@@@@[S99428XR )@@G@@139925005117 HF7LC626 HF 6 HF HF ____.<___'( @@@@@@@@@@DJ@@@@DJXS )@@G@@@@@C!N@@@C6+@@@#X^___'&-___'P]___'P]@@@@<^@@@#X^@@@@@@@@@@@@@@@@@@@@@@@@XT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B'@@@@[P@@@@@@@@@@^&@@@[,)@@@] _@@@[".XU )@@G@@@@@[(N@@@[F"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AARD IV F CPLR XV )@@G@@ FOWLER LPI PROGRAM ABODEELY HF PROD/R+D/XW )@@G@@OTHER MCCARTHY HF PROD/R+D/OTHER MCCARTHY XX )@@G@@@[E@[E@@@@@[N95718829961005119 HF9LD625 HF 5 HF HF _____8____H!XY )@@G@@@@@@[H@@@@AI@@@@BV@@@F*0@@@F0F@@@E.D____G.___'!M___'!M@@@^6@@@@E.D@@@@@@XZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI@@@@[H@@@^/LYA )@@G@@@@@^/L@@@@8B@@@@8B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXYB )@@G@@X CPLR FAB HARDWARE WALLACE ARC-XXX GLYNN YC )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX YD )@@G@@ MCCARTHY @[E@[E@@@@@[N95770829964005119 HF9LD625 HF 5 HF YE )@@G@@HF ____________@@@@@@@@@@@@@@@@@@@@@ODV@@@ODV@@@ODV____________@@@@@@YF )@@G@@@@@@@@@@@ODV@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YG )@@G@@@@@@@@@@@@@@@@@A!5@@@A!3@@@A!3@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@@@@@@@@@@@@@ARC-XXX TOOLING - CPLR WALLACE ARC-XXX YI )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCYJ )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YL )@@G@@@@@@@@@@@@@@0T>T(M@^\@^\@@G@[E@@@@@[N95774829961005119 HF9LD625 HF 5 YM )@@G@@HF HF ___________%0T>T(M@^\@^\@@G@[E@@@@@[N95774829961005119 HF9YN )@@G@@LD625 HF 5 HF HF ___________%@@@@@P@@@@@@@@@@@P@@@COK@@@CO>@@@COKYO )@@G@@_____%______@@@@@@@@@@@@@@@COK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P@@@]1V@@@]1V@@@]1U@@@@@@@@@@@@@@@@@@@@@@@@YQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX CPLR ELEC PARTS WALLACE YR )@@G@@ARC-XXX GLYNN HF ARC-XXX YS )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95108YT )@@G@@823625005118 HF8LE111 HF 1 HF HF ____0%___^PJ___;:@@@[AQ3@@[][4YU )@@G@@@@@@@@@@[][4@@@AA*___^^3__"_\4__"_\4@@@@@@@@@AA*@@@C]E@@@DYG@@@B_$@@@E13___>13@@@CJ&@@@^/C@@@@@@AD )@@G@@@@@]LE@@@]C*@@@],2@@@]#<@@@[W @@@]1E@@@#91@@@# \@@@@HZ@@@Q)]___1M+___3X3___3X3@@@[2,@@@Q)]@@@@@@BF )@@G@@@@@@G)@@@@8H@@@[3Q@@@[$+@@@[36@@@[QE@@@ 4@@@#K6@@@#,'@@@#']@@@]FE@@@]Z"BG )@@G@@@@@#86@@@^-B@@@@ZJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PROJ 1BH )@@G@@928 H T DES ERICKSON SECURE VOICE PRGMS HILL BI )@@G@@ HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA BJ )@@G@@ MCCARTHY @[E@[E@@@@@[S99287139905005118 HF8LE626 HF 6 HF BK )@@G@@HF _____U___6#1@@@]!-@@@W'/@@@Z*X@@@ [9@@@=%Q@@@U!+___6#F___5%-___5%-BL )@@G@@@@@]7S@@@U!+@@@@@@@@@@G]@@@[C3@@@[-[@@@#E=@@@]&#@@@]%4@@@AK<@@@#'N@@@]/0BM )@@G@@@@@^+ @@@]!-@@@[2Z@@@[VK@@@[4E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BN )@@G@@@@@@@@@@@@@@PROJ 1928 MOBILE DES CONGDON SECURE VOICE PRGMSBO )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF BP )@@G@@SECURE VOICE/DATA MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BR )@@G@@@@@@@@@@@@@@R+7EPT@^\@^\@@J@[E@@@@@[S99298139905005118 HF8LE626 HF 6 BS )@@G@@HF HF @@@@@+@@@ OXR+7EPT@^\@^\@@J@[E@@@@@[S99298139905005118 HF8BT )@@G@@LE626 HF 6 HF HF @@@@@+@@@ OX@@@@W @@@[&F@@@]]K@@@CAJ@@@ECZ@@@JXKBU )@@G@@@@@ O1@@@#I0@@@#I0@@@@;J@@@JXK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[A@@@@@2BV )@@G@@@@@@^,@@@@]<@@@@PF@@@[B7@@@@W @@@[[+@@@[?X@@@]$0@@@]0)@@@@@@@@@@@@@@@@@@BW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1928 PROD PTL HTALK ERICKSON BX )@@G@@SECURE VOICE PRGMS HILL HF SECURE VOICE/DATA BY )@@G@@MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY @[E@[E@@@@@[S99299BZ )@@G@@139905005118 HF8LE626 HF 6 HF HF _____.____34@@@@P]@@@[1=@@@]A&CA )@@G@@@@@B3D@@@D9\@@@D!K____3)___..\___..\@@@@;/@@@D!K@@@@@@@@@@@@@@@@@@@@@@@@CB )@@G@@@@@@@@@@@@[A@@@@@@@@@@@@@@@@@@@@@@J @@@[-T@@@@P]@@@@2G@@@[TZ@@@#TL@@@]IHCC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1928 PROD PTL BASE CD )@@G@@ ERICKSON SECURE VOICE PRGMS HILL HF SECURE VOCE )@@G@@ICE/DATA MCCARTHY HF HF SECURE VOICE/DATA MCCARTHY CF )@@G@@@[E@[E@@@@@[S99400139905005118 HF8LE626 HF 6 HF HF @@@@@)@@@^8*CG )@@G@@@@@@:B@@@[H^@@@[8F@@@CP8@@@EI#@@@JBA@@@^9#@@@^D4@@@^D4@@@@/1@@@JBA@@@@@@CH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[A@@@@@@@@@@]1@@@@P\@@@@N[@@@@)X@@@@:B@@@@8$CI )@@G@@@@@[Z @@@#+6@@@]VQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1928 PCJ )@@G@@ROD PTL MOBILE ERICKSON SECURE VOICE PRGMS HILL CK )@@G@@ HF SECURE VOICE/DATA MCCARTHY HF HF SECURE VOICE/DATA CL )@@G@@ MCCARTHY @[E@[E@@@@@[S99401139905005118 HF8LE626 HF 6 HF CM )@@G@@HF @@@@@Q@@@[V^@@@@JQ@@@@0D@@@@_Z@@@#25@@@^2O@@@AHG@@@[U8____H7____H7CN )@@G@@@@@[CE@@@AHG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<@@@@]-@@@@ I@@@@@P@@@@A^CO )@@G@@@@@@-Y@@@@JQ@@@@(&@@@[ZP@@@[ZT@@@@E-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@PROJ 1928 PROD PTL KEYFILL ERICKSON SECURE VOICE PRGMSCQ )@@G@@ HILL HF SECURE VOICE/DATA MCCARTHY HF HF CR )@@G@@SECURE VOICE/DATA MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@DYTINY@^\@^\@@K@[E@@@@@[N95608823522005119 HF9CV )@@G@@LF111 HF 1 HF HF ____"2___"8)@@@@WT@@@]EI@@@]&$@@@@@@@@@]&$@@@[X0CW )@@G@@___"7C___"!O___"!O@@@@&H@@@[X0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CX )@@G@@@@@@@@@@@@B*@@@@(@@@@98@@@@6BDE )@@G@@@@@@W @@@@^^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 728U-2 PS DF )@@G@@ CAROLLO ARC-XXX GLYNN HF ARC-XXX DG )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY DH )@@G@@@[E@[E@@@@@[N95620829957005119 HF9LF625 HF 5 HF HF ____.G___2VGDI )@@G@@@@@^53@@@BJ>@@@G S@@@DAH@@@PF>@@@B=S___2S2___4O?___4O?@@@#VE@@@B=S@@@@@@DJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@'@@@]AN@@@ CS@@@^53@@@]3/DK )@@G@@@@@])I@@@[:L@@@@;(@@@@,@@@@@XD@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 728DL )@@G@@U-2 PA/FILTER ERICKSON ARC-XXX GLYNN DM )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX DN )@@G@@ MCCARTHY @[E@[E@@@@@[N95777829961005119 HF9LF625 HF 5 HF DO )@@G@@HF _____9____6U@@@@@@@@@@@J@@@@@J@@@]>3@@@]&]@@@]WW____6T____.)____.)DP )@@G@@@@@@@@@@@]WW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@J@@@@@@@@@@K.@@@@L2@@@@R)@@@@X,@@@@%#@@@@<3@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@ARC-XXX PWR SUPPLY COLL CAROLLO ARC-XXX DS )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCDT )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@@@@@@@X67QC=@^\@^\@@L@[E@@@@@[N95778829961005119 HF9LF625 HF 5 DW )@@G@@HF HF _____6____RGX67QC=@^\@^\@@L@[E@@@@@[N95778829961005119 HF9DX )@@G@@LF625 HF 5 HF HF _____6____RG@@@@@@@@@@@J@@@@@J@@@BZ<@@@BZ2@@@A6;DY )@@G@@____RC____,O____,O@@@@@@@@@A6;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@J@@@@@@@@@[J6@@@[KB@@@[J5@@@[KB@@@[J5@@@[J5@@@@@@EA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX PA/FILTER COLL ERICKSON EB )@@G@@ARC-XXX GLYNN HF ARC-XXX EC )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N93413ED )@@G@@001212005211 UH1MA423 UH 3 UH UH _____2____\;@@@@@@@@@]F<@@@]F@@@@@@@@@@:,@@@@)N@@@@0J@@@@UK@@@@@[ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@ARC-159 SMALL BOAT CMILLER ARC-159 EU )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIEV )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EX )@@G@@@@@@@@@@@@@@W([@RE@^\@^\@@M@[E@@@@@[N95690824154005211 UH1MA314 UH 4 EY )@@G@@UH UH @@@@@%@@@@)NW([@RE@^\@^\@@M@[E@@@@@[N95690824154005211 UH1EZ )@@G@@MA314 UH 4 UH UH @@@@@%@@@@)N@@@@Q6@@@@QC@@@@?"@@@@@@@@@@?"@@@[ICFA )@@G@@@@@@-E@@@@:>@@@@:>@@@@GV@@@[IC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FB )@@G@@@@@@@@@@@@@@@@@@H"@@@@CE@@@@Q6@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-159V F-104G RETROFIT CMILLER FD )@@G@@ARC-159V FREELAND LOS AIRCRAFT COMM PROGRAMS FE )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[N95746FF )@@G@@824164005211 UH1MA314 UH 4 UH UH @@@@@M@@@@A=@@@@DA@@@@@Y@@@@D=FG )@@G@@@@@@QP@@@@Z9@@@@$^@@@@BF@@@@JZ@@@@JZ@@@@RB@@@@$^@@@@@@@@@@@@@@@@@@@@@@@@FH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Y@@@@DA@@@@QP@@@@@@@@@@@@@@@@@@FI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM-3624/ARA-50 MOD FJ )@@G@@ VICK ARA-50 FREELAND LOS AIRCRAFTFK )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND FL )@@G@@@[E@[E@@@@@[N94833823503005211 UH1MA625 UH 5 UH UH _____"____"%FM )@@G@@@@@@@@@@@[%J@@@[%J@@@@@@@@@[%J@@@[*9____"(____"(____"(@@@@@@@@@[*9@@@@#?FN )@@G@@@@@@CA@@@@[3@@@@[3@@@@J:@@@@LP@@@@#6@@@@^J@@@@#>@@@@#6@@@@B!@@@@@@@@@@@@FO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF-301FP )@@G@@ F-18 DATA CLOPER DF-301E BROWNEFQ )@@G@@LL LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAFR )@@G@@MS FREELAND @[E@[E@@@@@[N94835829751005211 UH1MA625 UH 5 UH FS )@@G@@UH @@@@@L@@@@EW@@@@@@@@@@2[@@@@2[@@@@@@@@@@2[@@@@/,@@@@E!@@@@E!@@@@E!FT )@@G@@@@@@@@@@@@/,@@@@]8@@@@@@@@@@@@@@@@@@@@@@@1@@@@@1@@@@L&@@@@LP@@@@A;@@@@#XFU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FV )@@G@@@@@@@@@@@@@@ARA-50/BOEING TEST-DATA CVICK ARA-50 BOEING FW )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIFX )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@FZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@"@R;U?@^\@^\@@N@[E@@@@@[N95011823582005211 UH1GB )@@G@@MA625 UH 5 UH UH _____!___!D5@@@CCN@@[,Z)@@[6$3@@@@P(@@[6.W@@[=BCGC )@@G@@___!D:___5XO___5XO@@@@EN@@[=BC@@@GX_@@@G6&@@@B[.@@@ ?=@@@DL1@@@ E\@@@ VEGD )@@G@@@@@IT:@@@G.3@@@B8G@@@E>U@@@CCN@@@@P(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 PARTS 20 JOHNSON GF )@@G@@628B-1 PTS PROC FREELAND LOS AIRCRAFT COMM PROGRAMS GG )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[N95102GH )@@G@@823579005211 UH1MA625 UH 5 UH UH _____.____."@@@@@@@@@[BQ@@@[BQGI )@@G@@@@@@@@@@@[BQ@@@[ N____./____./____./@@@@@@@@@[ N@@@@L#@@@@]<@@@@ 6@@@@CMGJ )@@G@@____58@@@@@_@@@@ [@@@@HQ@@@@B)@@@@KK@@@@^(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-159 ENG DATA GL )@@G@@ CGOETZ ARC-159 US NAVY FREELAND LOS AIRCRAFTGM )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND GN )@@G@@@[E@[E@@@@@[N95174823648005211 UH1MA625 UH 5 UH UH @@@@@J@@@@K GO )@@G@@@@@@@@@@@[RY@@@[RY@@@@@@@@@[RY@@@[$2@@@@KO@@@@KO@@@@KO@@@@@@@@@[$2@@@@@@GP )@@G@@@@@@#_@@@@GV@@@@CU@@@@J(@@@@C @@@@E.@@@@SY@@@@#-@@@@@@@@@@@@@@@@@@@@@@@@GQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF-301GR )@@G@@ FAIRCHILD MOD CVICK DF-301 FAIRCHILD MOD FREELAGS )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAGT )@@G@@MS FREELAND @[E@[E@@@@@[N95520823675005211 UH1MA315 UH 4 UH GU )@@G@@UH _____(____!4@@@@(H@@@@W@@@@[ H@@@@UZ@@@[Z?@@@[IC____,V@@@@Y'@@@@Y'GV )@@G@@@@@@NI@@@[IC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@GW )@@G@@@@@@V\@@@@(H@@@@I6@@@@F(@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GX )@@G@@@@@@@@@@@@@@MT-6093/BUILD 10 MILLER ARC-159 GY )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIGZ )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HB )@@G@@@@@@@@@@@@@@TJ@RM(@^\@^\@@O@[E@@@@@[N95656823017005211 UH1MA625 UH 5 HC )@@G@@UH UH @@@@@[@@@@@FTJ@RM(@^\@^\@@O@[E@@@@@[N95656823017005211 UH1HD )@@G@@MA625 UH 5 UH UH @@@@@[@@@@@F@@@@]^@@@@^K@@@@AO@@@@3$@@@@9;@@@@'_HE )@@G@@@@@@[^@@@@-!@@@@-!@@@@P]@@@@'_@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF )@@G@@@@@@@@@@@@@@@@@@^K@@@@@@@@@@]^@@@@DI@@@@DI@@@@DI@@@@DI@@@@DI@@@@ -@@@@@@HG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IAF ENG SUP MILLER HH )@@G@@ARC-159 FREELAND LOS AIRCRAFT COMM PROGRAMS HI )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[N95787HJ )@@G@@824166005211 UH1MA625 UH 5 UH UH _____R___'LR@@@#@)@@@@@@@@@#@)HK )@@G@@@@@L@G@@@O@?@@@IM^___'LR@@@@@@@@@@@@@@@@@@@@@IM^@@@@@@@@@@@@@@@@@@@@@@@@HL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@)@@@AG3@@@E3T@@@@@@@@@@@@HM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MCAIR ARC-182 LINK-4 ENGHN )@@G@@RNG JOHNSON ARC-182 FREELAND LOS AIRCRAFTHO )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND HP )@@G@@@[E@[E@@@@@[N95813824172005211 UH1MA625 UH 5 UH UH @@@@[<@@@[A;HQ )@@G@@@@@@@:@@@@@@@@@@@:@@@@@@@@@@@:@@@[B&@@@[A;@@@@@@@@@@@@@@@@@@@@@[B&@@@@@@HR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@@@@@@HS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-15HT )@@G@@9 FY-79 DATA GOETZ ARC-159 FREELAHU )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAHV )@@G@@MS FREELAND @[E@[E@@@@@[S99219139774005211 UH1MA626 UH 6 UH HW )@@G@@UH _____6___"@R@@@@@@@@@QC6@@@QC6@@@@@@@@@QC6@@@OD ___"@I___"@I___"@IHX )@@G@@@@@@@@@@@OD @@@]]5@@@]L5@@@[;5@@@]+0@@@]( @@@[.#@@@@35@@@@I%@@@@@@@@@@@@HY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HZ )@@G@@@@@@@@@@@@@@AN/ARC-182(V) CNTRL/FRT PNL CBUROKER ARC-182 IA )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIIB )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ID )@@G@@@@@@@@@@@@@@+0G@BJ@^\@^\@@P@[E@@@@@[S99220139774005211 UH1MA626 UH 6 IE )@@G@@UH UH _____;___")'+0G@BJ@^\@^\@@P@[E@@@@@[S99220139774005211 UH1IF )@@G@@MA626 UH 6 UH UH _____;___")'@@@@@@@@@+>7@@@+>7@@@@@@@@@+>7@@@-A,IG )@@G@@___")6___")6___")6@@@@@@@@@-A,@@@ V1@@@D)C@@@[*2@@@[]X@@@[Q,@@@[UE@@@[B0IH )@@G@@@@@@R>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@II )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) MAIN RCVR CHALLOCK IJ )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS IK )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99224IL )@@G@@139774005211 UH1MA626 UH 6 UH UH _____4___" %____"@@@@M;O@@@M9PIM )@@G@@@@@@@@@@@M9P@@@K"5___" Z___"#)___"#)@@@@@@@@@K"5@@@]%J@@@](]@@@@C'@@@]^MIN )@@G@@@@@[$$@@@[)?@@@@$1@@@@H4@@@@@@@@@@@@@@@@KP____"@@@@@@@@@@@@@@@@@@@@@@@@@IO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) PWR SUPPLYIP )@@G@@ DEV CDURSPEK ARC-182 FREELAND LOS AIRCRAFTIQ )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND IR )@@G@@@[E@[E@@@@@[S99225139774005211 UH1MA626 UH 6 UH UH _____8___"4AIS )@@G@@____.#@@@LH<@@@LE$@@@@@@@@@LE$@@@J"$___"3____"1#___"1#@@@@@@@@@J"$@@@]N^IT )@@G@@@@@##D@@@[M#@@@]AH@@@]C @@@@1'@@@@1S@@@@M)@@@@@@@@@@@@@@@@FC____.#@@@@@@IU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARCIV )@@G@@-182(V) GUARD RCVR DEV CCULBERTSON ARC-182 FREELAIW )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAIX )@@G@@MS FREELAND @[E@[E@@@@@[S99226139774005211 UH1MA626 UH 6 UH IY )@@G@@UH @@@@@^@@@@6E@@@@@@@@@L0Q@@@L0Q@@@@@@@@@L0Q@@@M&=@@@@6I@@@@6I@@@@6IIZ )@@G@@@@@@@@@@@M&=@@@[]&@@@#D?@@@@2E@@@]'#@@@#A$@@@]W8@@@@!W@@@@H\@@@@@@@@@@@@JA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JB )@@G@@@@@@@@@@@@@@AN/ARC-182(V) SYSTEM INTEG CJOHNSON ARC-182 JC )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIJD )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JF )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@NSJ1+5@^\@^\@@Q@[E@@@@@[S99228139774005211 UH1JH )@@G@@MA626 UH 6 UH UH _____5____*?@@@@@@@@@#;M@@@#;M@@@@@@@@@#;M@@@#<5JI )@@G@@____*+____*+____*+@@@@@@@@@#<5@@@@WW@@@@HO@@@@TV@@@@I;@@@@P!@@@@M!@@@@2*JJ )@@G@@@@@@&J@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) ANTENNA CMOES JL )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS JM )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99229JN )@@G@@139774005211 UH1MA626 UH 6 UH UH _____"____71@@@@@@@@@ETW@@@ETWJO )@@G@@@@@@@@@@@ETW@@@ELH____70____70____70@@@@@@@@@ELH@@@[G%@@@]W"@@@@*6@@@[V.JP )@@G@@@@@[=<@@@@?;@@@@]'@@@@ T@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@JQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) RT-1250 DEJR )@@G@@V CJOHNSON ARC-182 FREELAND LOS AIRCRAFTJS )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND JT )@@G@@@[E@[E@@@@@[S99230139774005211 UH1MA626 UH 6 UH UH _____2___"0VJU )@@G@@@@@@BN@@@EZX@@@E&0@@@@@@@@@E&0@@@DR@___"0J___"7+___"7+@@@@@@@@@DR@@@@@%:JV )@@G@@@@@[8-@@@[DY@@@]YR@@@[+(@@@@$T@@@@49@@@@FU@@@@@@@@@@@@@@@@CI@@@@BN@@@@@@JW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARCJX )@@G@@-182(V) 1553A ADAPTOR CSTERNOWSKI ARC-182 FREELAJY )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAJZ )@@G@@MS FREELAND @[E@[E@@@@@[S99234139774005211 UH1MA626 UH 6 UH KA )@@G@@UH _____,___. 9____/+@@@N7S@@@N3;@@@@@@@@@N3;@@@K9=___. *___.]F___.]FKB )@@G@@@@@@@@@@@K9=@@@['%@@@##5@@@]D"@@@#UN@@@]C[@@@]P5@@@@WE@@@@%/@@@@@@@@@@@@KC )@@G@@@@@@E"____/+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KD )@@G@@@@@@@@@@@@@@AN/ARC-182(V) C-10319 CNTRL CSTERNOWSKI ARC-182 KE )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIKF )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KH )@@G@@@@@@@@@@@@@@K8'\6;@^\@^\@@R@[E@@@@@[S99235139774005211 UH1MA626 UH 6 KI )@@G@@UH UH _____9____2ZK8'\6;@^\@^\@@R@[E@@@@@[S99235139774005211 UH1KJ )@@G@@MA626 UH 6 UH UH _____9____2Z@@@@#&@@@#W;@@@#)-@@@@@@@@@#)-@@@#M.KK )@@G@@____2V____6[____6[@@@@@@@@@#M.@@@@,5@@@@63@@@@K[@@@@%!@@@@FG@@@@ZA____/BKL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) C-10320 CNTRL CGUTHRIDGE KN )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS KO )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99236KP )@@G@@139774005211 UH1MA626 UH 6 UH UH _____7___"'4@@@@]<@@@HKU@@@HM.KQ )@@G@@@@@@@@@@@HM.@@@GH%___"'?___".J___".J@@@@@@@@@GH%@@@[&9@@@[Z0@@@@7S@@@[PFKR )@@G@@@@@[IN@@@[:_@@@@D$@@@@G9@@@@@@@@@@@@@@@@@@@@@@]<@@@@@@@@@@@@@@@@@@@@@@@@KS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) ID-2121 DEKT )@@G@@V CSTERNOWSKI ARC-182 FREELAND LOS AIRCRAFTKU )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND KV )@@G@@@[E@[E@@@@@[S99237139774005211 UH1MA626 UH 6 UH UH _____!___"K-KW )@@G@@@@@@@@@@@FQ @@@FQ @@@@@@@@@FQ @@@D&P___"KJ___"KJ___"KJ@@@@@@@@@D&P@@@@4&KX )@@G@@@@@[+&@@@[J$@@@[0O@@@]A@@@@]VV@@@@P=@@@@KB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARCKZ )@@G@@-182(V) SA-2157 DEV CGUTHRIDGE ARC-182 FREELALA )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRALB )@@G@@MS FREELAND @[E@[E@@@@@[S99238139774005211 UH1MA626 UH 6 UH LC )@@G@@UH _____?___;3#@@@@3K@@@L+!@@@MP.@@@A;E@@@TLB@@@P#2___;2%___'>-___'>-LD )@@G@@@@@]G*@@@P#2@@@@;,@@@[7C@@@@BZ@@@[1:@@@@VI@@@[ [@@@[K.@@@[Q<@@@[\M@@@[%-LE )@@G@@@@@[ZU@@@@3K@@@]N,@@@]N,@@@]N,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LF )@@G@@@@@@@@@@@@@@AN/ARC-182(V) TECH MGMT JOHNSON ARC-182 LG )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AILH )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LJ )@@G@@@@@@@@@@@@@@"X<98X@^\@^\@@S@[E@@@@@[S99239139774005211 UH1MA626 UH 6 LK )@@G@@UH UH @@@@@D@@@@* "X<98X@^\@^\@@S@[E@@@@@[S99239139774005211 UH1LL )@@G@@MA626 UH 6 UH UH @@@@@D@@@@* @@@@CR@@@]R,@@@]) @@@#DN@@@ (S@@@ALZLM )@@G@@@@@@*B@@@@E.@@@@E.@@@@:I@@@ALZ@@@@EX@@@@@@@@@@@@@@@@NG@@@@&3@@@@B(@@@@ PLN )@@G@@@@@@HE@@@@@@@@@@S1@@@@P=@@@@CR@@@[U3@@@@@@@@@@@@@@@@N!@@@[U3@@@@@@@@@@@@LO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) ECCM INTEROP JOHNSON LP )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS LQ )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99240LR )@@G@@139774005211 UH1MA626 UH 6 UH UH @@@@@M@@@[N+@@@[L@@@@#!)@@@^")LS )@@G@@@@@@;9@@@ 'T@@@BIP@@@[N/@@@[8:@@@[8:@@@@!_@@@BIP@@@@HH@@@@$(@@@@M<@@@@F6LT )@@G@@@@@@F\@@@@FZ@@@@]X@@@@YA@@@@@_@@@@DH@@@[@4@@@[L@@@@@R]@@@@X/@@@@A;@@@@@@LU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) DATA EXH ALV )@@G@@ JOHNSON ARC-182 FREELAND LOS AIRCRAFTLW )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LX )@@G@@@[E@[E@@@@@[S99274139774005211 UH1MA626 UH 6 UH UH _____!___/@+LY )@@G@@@@@]],@@@Q7:@@@S'T@@@@)X@@@TU6@@@PVM___/@V___"TN___"TN@@@@EN@@@PVM@@@@@@LZ )@@G@@@@@@@M@@@@@@@@@@H)@@@]CD@@@[ES@@@['&@@@I:;___.']@@@[.(@@@]9F@@@]],@@@@)XMA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT-125MB )@@G@@0/ARC-182 PRTS PROC JOHNSON ARC-182 FREELAMC )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMD )@@G@@MS FREELAND @[E@[E@@@@@[S99275139774005211 UH1MA626 UH 6 UH ME )@@G@@UH _____\___/E8@@@[,[@@@S_Q@@@U!R@@@@V#@@@VCU@@@RNG___/E1___"D+___"D+MF )@@G@@@@@@EN@@@RNG@@@@@@@@@@@M@@@@@@@@@@HJ@@@](8@@@]V$@@@[XD@@@BI'@@@ 26@@@[;AMG )@@G@@@@@#MR@@@[,[@@@@V#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MH )@@G@@@@@@@@@@@@@@ARC-182(V)1 PARTS PROC JOHNSON ARC-182 MI )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIMJ )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ML )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@W,^N_%@^\@^\@@T@[E@@@@@[S99276139774005211 UH1MN )@@G@@MA626 UH 6 UH UH ____"[___.38@@@@B/@@@#5K@@@#.G@@@@[Q@@@#"+@@@[0=MO )@@G@@___.2[___.9J___.9J@@@@]^@@@[0=@@@@@@@@@@@@@@@@@@@@@@^Z@@@@HX@@@@D0@@@@NQMP )@@G@@@@@[##@@@[J^@@@@RF@@@@W/@@@@B/@@@@[Q@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 ID-2121 PARTS PROC HITE MR )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS MS )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99278MT )@@G@@139774005211 UH1MA626 UH 6 UH UH ____"_____*'@@@@@J@@@@/A@@@@/PMU )@@G@@@@@@[Q@@@@.:@@@@>>____$9____$U____$U@@@@]^@@@@>>@@@@@@@@@@^D@@@@@\@@@@@@MV )@@G@@@@@@#>@@@@@]@@@@@@@@@@O)@@@@A.@@@@]@@@@@QE@@@@@J@@@@[Q@@@@@@@@@@@@@@@@@@MW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 C-10320 PARTS MX )@@G@@ GUTHRIDGE ARC-182 FREELAND LOS AIRCRAFTMY )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND MZ )@@G@@@[E@[E@@@@@[S99279139774005211 UH1MA626 UH 6 UH UH _____Y____X'NA )@@G@@@@@@#'@@@][2@@@] ?@@@@^^@@@]D0@@@[$K____XZ____=____UV@@@@@K@@@@^G@@@@H"@@@@FB@@@@HL@@@@:1@@@@+R@@@@C8@@@@#'@@@@^^NC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-18ND )@@G@@2 SA-2157 PARTS GUTHRIDGE ARC-182 FREELANE )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRANF )@@G@@MS FREELAND @[E@[E@@@@@[S99280139774005211 UH1MA626 UH 6 UH NG )@@G@@UH _____D___"#0@@@@TP@@@ #7@@@ XG@@@@A2@@@ <"@@@#$A___"#B___"-E___"-ENH )@@G@@@@@@]^@@@#$A@@@@@@@@@@@@@@@@@@@@@@[W@@@@P$@@@@K*@@@@B:@@@[?H@@@[[[@@@@X@NI )@@G@@@@@[EN@@@@TP@@@@A2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NJ )@@G@@@@@@@@@@@@@@ARC-182 C-10319 PARTS STERNOWSKI ARC-182 NK )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AINL )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NN )@@G@@@@@@@@@@@@@@S8J4=8@^\@^\@@U@[E@@@@@[S99402139933005211 UH1MA626 UH 6 NO )@@G@@UH UH _____S___._0S8J4=8@^\@^\@@U@[E@@@@@[S99402139933005211 UH1NP )@@G@@MA626 UH 6 UH UH _____S___._0@@@@@@@@@B :@@@B :@@@@@@@@@B :@@@ ^5NQ )@@G@@___._D___._D___._D@@@@@@@@@ ^5@@@@@@@@@@@@@@@@@@@@@@@@@@@#OZ@@@[2'@@@@.2NR )@@G@@@@@[@)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 STUDIES CMOES NT )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS NU )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99403NV )@@G@@139774005211 UH1MA626 UH 6 UH UH _____I___8Y@@@@[,@@@G?A___'AR___9",___9",@@@[ES@@@G?A@@@@@@OD )@@G@@@@@@@@@@@@@@@@@@@@@@@@U"@@@[[#@@@ *B@@@ ?5___.ZX@@@[7/@@@[6'@@@@;_@@@[IEOE )@@G@@@@@[IE@@@[IE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-18OF )@@G@@2 RT-1250 PE 7 JOHNSON ARC-182 FREELAOG )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAOH )@@G@@MS FREELAND @[E@[E@@@@@[S99405139774005211 UH1MA626 UH 6 UH OI )@@G@@UH @@@@@G@@@@K[@@@@AM@@@@E3@@@@L @@@[$@@@@@@@@@->$@@@U%\PU )@@G@@___9 B___9R8___9R8@@@@@@@@@U%\@@@[X&@@@[(2@@@#:A@@@]ZJ@@@#5 @@@]*4@@@] XPV )@@G@@@@@#$<@@@#.H@@@]TZ@@@[*Z@@@@M1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-159 P E CMILLER PX )@@G@@FY-80 COMMERCIAL COLLATERAL FREELAND LOS AIRCRAFT COMM PROGRAMS PY )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[N95201PZ )@@G@@CL7LS1005211 UH1MA437 UH 7 UH UH _____7____3=@@@@UB@@@]F<@@@]>%QA )@@G@@@@@@@@@@@]>%@@@]TG____3-____'8____'8@@@@M0@@@]TG@@@@@S@@@@@B@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@)@@@@GS@@@[A?@@@@*3@@@@I!@@@@UB@@@@@@@@@@@@@@@@@@@@@@@@QC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARA-50 ASSIST COC QD )@@G@@ CVICK FY-80 COMMERCIAL COLLATERAL FREELAND LOS AIRCRAFTQE )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND QF )@@G@@@[E@[E@@@@@[N95202CL7LS1005211 UH1MA437 UH 7 UH UH _____,____X,QG )@@G@@@@@@BO@@@#&T@@@#!!@@@@@@@@@#!!@@@#FC____XU____P4____P4@@@@I'@@@#FC@@@@[;QH )@@G@@@@@@NJ@@@@#!@@@@B4@@@@]L@@@@A]@@@@@@@@@@N#@@@@.1@@@@.4@@@@,3@@@@BO@@@@@@QI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF-301QJ )@@G@@ ASSIST COC CVICK FY-80 COMMERCIAL COLLATERAL FREELAQK )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAQL )@@G@@MS FREELAND @[E@[E@@@@@[N95204CL7LS1005211 UH1MA437 UH 7 UH QM )@@G@@UH _____%___"!#@@@@BJ@@@BM?@@@BT;@@@@@@@@@BT;@@@AA*___"??___"+V___"+VQN )@@G@@@@@@L)@@@AA*@@@@ O@@@@8U@@@]+"@@@@F#@@@@F:@@@@D&@@@@I2@@@@?0@@@[S]@@@@2VQO )@@G@@@@@@F!@@@@BJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QP )@@G@@@@@@@@@@@@@@AIRCRAFT CUS LIA VE CCANNOY FY-80 COMMERCIAL CQQ )@@G@@OLLATERAL FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIQR )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QT )@@G@@@@@@@@@@@@@@?Z(!X2@^\@^\@@X@[E@@@@@[N95551CL7LS1005211 UH1MA437 UH 7 QU )@@G@@UH UH _____J___?ST?Z(!X2@^\@^\@@X@[E@@@@@[N95551CL7LS1005211 UH1QV )@@G@@MA437 UH 7 UH UH _____J___?ST@@@ 3\@@@6A*@@@;'R@@@@@@@@@;'R@@@*MCQW )@@G@@___?R0___\C[___\C[@@@##Y@@@*MC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QX )@@G@@@@@EN3@@@V-B@@@B,:@@@C<#@@@ 3\@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 SPEC PE 40 CJOHNSON QZ )@@G@@FY-80 COMMERCIAL COLLATERAL FREELAND LOS AIRCRAFT COMM PROGRAMS RA )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[N95715RB )@@G@@CL7LS1005211 UH1MA437 UH 7 UH UH @@@@@B@@@#3D@@@]0E@@@]%$@@@ U1RC )@@G@@@@@*NP@@@!,A@@@1-P@@@#3J@@@#WO@@@#WO@@@^KL@@@1-P@@@@@@@@@@@@@@@@@@@@@@@@RD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]%$@@@]0E@@@^3P@@@^8+@@@^?5@@@^$*RE )@@G@@@@@^+U@@@^+U@@@^^\@@@^^\@@@^^\@@@@@@@@@@@@@@@@@@ARC-159 NAVY PROD ENGR RF )@@G@@ MILLER FY-80 COMMERCIAL COLLATERAL FREELAND LOS AIRCRAFTRG )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND RH )@@G@@@[E@[E@@@@@[N95802CL7LS1005211 UH1MA437 UH 7 UH UH _____3____56RI )@@G@@@@@@]-@@@@@@@@@@]-@@@[S*@@@[VD@@@[L@____56@@@@@@@@@@@@@@@@@@@@@[L@@@@@@@RJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]-@@@@ -RK )@@G@@@@@@F-@@@@KB@@@@KB@@@@H4@@@@H4@@@@F0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@719K-1RL )@@G@@ P E WICK FY-80 COMMERCIAL COLLATERAL FREELARM )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRARN )@@G@@MS FREELAND @[E@[E@@@@@[N95387823905005241 UH4MC111 UH 1 UH RO )@@G@@UH _____"____+?@@@]IO@@@Q(&@@@S7'@@@@@@@@@S7'@@@SU)____+>___"B____"B_RP )@@G@@@@@#*'@@@SU)@@@@@@@@@@@@@@@@@@@@@@O/@@@[M!@@@]Q^@@@[5V@@@#39@@@^)E@@@]1GRQ )@@G@@@@@ 1J@@@]IO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RR )@@G@@@@@@@@@@@@@@GRC-171 ANTI-JAM CWATSON GRC-171 PROGRAM RS )@@G@@ KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY LOS SART )@@G@@T/DATA/GROUND PRGMS KINGERY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@@@@@@@@@@@@@L[FJ@\@^\@^\@@Y@[E@@@@@[N94910823547005241 UH4MC314 UH 4 RW )@@G@@UH UH @@@@@8@@@G2/.5.ZA^@^\@^\@@Y@[E@@@@@[N94910823547005241 UH4RX )@@G@@MC314 UH 4 UH UH @@@@@8@@@G2/@@@[:(@@@CBU@@@D3#@@@@@@@@@D3#@@@Q&_RY )@@G@@@@@G3/@@@IZ>@@@IZ>@@@@@@@@@Q&_@@@@OD@@@]EY@@@@X:@@@B$F@@@@U6___.'3___96@@@B&<@@@B_A@@@@S<@@@@US@@@@US@@@@@@@@@B_A@@@@@@@@@@@@@@@@@@@@@@#USF )@@G@@@@@@[I@@@@@@@@@@@@@@@@[Z@@@@@@@@@@@@@@@@@@@@@@@@@@@@C7@@@@C7@@@@C7@@@@@@SG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B-1 REDESIGN SAFETY LATCSH )@@G@@H WILLIAMSON B-1 CDR/CPI PROGRAM KINGERY LOS SAT/DATASI )@@G@@/GROUND PRGMS KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY SJ )@@G@@@[E@[E@@@@@[N91464826328005241 UH4MC625 UH 5 UH UH _____.____'GSK )@@G@@@@@@@@@@@^NQ@@@^NQ@@@@@@@@@^NQ@@@^H-____'E____'E____'E@@@@@@@@@^H-@@@@#!SL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SECT BSN )@@G@@UOY FAIL ANALYSIS CWILLIAMSON SECT BUOY FAIL ANALYSIS KINGERSO )@@G@@Y LOS SAT/DATA/GROUND PRGMS KINGERY LOS SAT/DATA/GROUND PRGMSP )@@G@@S KINGERY @[E@[E@@@@@[N95530823970005241 UH4MC625 UH 5 UH SQ )@@G@@UH _____#____L3@@@@@^@@@[.G@@@[.K@@@@@@@@@[.K@@@[IC____K7____K;____K;SR )@@G@@@@@@@@@@@[IC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[.G@@@@@@SS )@@G@@@@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ST )@@G@@@@@@@@@@@@@@DWARF DIFAR SONOBUOY CMURET DWARF DIFAR SONOBUSU )@@G@@OY KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY LOS SASV )@@G@@T/DATA/GROUND PRGMS KINGERY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SX )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@[YG:;V@^\@^\@@Z@[E@@@@@[N95679823997005241 UH4SZ )@@G@@MC625 UH 5 UH UH _____/____,S@@@[E"@@@@,@@@@[8"@@@B@)@@@C9Y@@@C&2TA )@@G@@____!N___9_X___9_X@@@@; @@@C&2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TB )@@G@@@@@@@@@@@@@@@@@@@@@@@@,@@@@[E"@@@[X\@@@[">@@@[T5@@@[J]@@@@6M@@@@[J@@@@[LTC )@@G@@@@@@]<@@@@@@@@@@@@@@@@@@@@@@@@ARGENTINE NAVY A.T.C. VHF HOLTZ TD )@@G@@ARGENTINE NAVY A.T.C. VHF KINGERY LOS SAT/DATA/GROUND PRGMS TE )@@G@@KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY @[E@[E@@@@@[N95738TF )@@G@@823997005241 UH4MC625 UH 5 UH UH __________,K@@@@TM@@@@]!@@@@V_TG )@@G@@@@@-B_@@@-<"@@@-MJ____,K@@@@]*@@@@]*@@@@[L@@@-MJ@@@@@@@@@@@@@@@@@@@@@@@@TH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]!@@@@TM@@@]___P.>___P.>@@@F*%@@@P*R@@@@@@TN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QM@@@^HJ@@@#0Q@@@JF)TO )@@G@@@@@H'R@@@D5H@@@C\3@@@##"@@@@"N@@@@\K@@@@\K@@@@_M@@@@@@@@@@@@@@@@@@SPECIATP )@@G@@L PROJECT MOES ARC-182 FREELATQ )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRATR )@@G@@MS FREELAND @[E@[E@@@@@[S99443139933005211 UH1MC626 UH 6 UH TS )@@G@@UH ____"U___.-S@@@@[A@@@@@@@@@@[A@@@^91@@@^'7@@@]WK___.-S@@@@@@@@@@@@TT )@@G@@@@@@@@@@@]WK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TU )@@G@@@@@@@@@@@@[A@@@]*Y@@@]C7@@@@CW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TV )@@G@@@@@@@@@@@@@@SPECIAL PROJ FIRMWARE NOES ARC-182 TW )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AITX )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZ )@@G@@@@@@@@@@@@@@?Z(!X2@^\@^\@@)@[E@@@@@[N95368823672005241 UH4MD111 UH 1 UA )@@G@@UH UH @@@@@Y@@@BU*MQXN5Q@^\@^\@@)@[E@@@@@[N95368823672005241 UH4UB )@@G@@MD111 UH 1 UH UH @@@@@Y@@@BU*@@@@B1@@@K7:@@@K_W@@@@@@@@@K_W@@@SU)UC )@@G@@@@@BV^@@@B[%@@@B[%@@@@-F@@@SU)@@@@@@@@@@@@@@@@@@@@@# ?@@@#L;@@@ IO@@@#E!UD )@@G@@@@@@, @@@@=>@@@@)T@@@@O@@@@@B1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SRA-33 REPLACE DES CLEWIS UF )@@G@@SRA-33 KINGERY LOS SAT/DATA/GROUND PRGMS UG )@@G@@KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY @[E@[E@@@@@[N95369UH )@@G@@823673005241 UH4MD111 UH 1 UH UH @@@@@J@@@#,5@@@ \<@@@I;2@@@O:PUI )@@G@@@@@@@@@@@O:P@@@SU)@@@#\F@@@ U(@@@ U(@@@](Q@@@SU)@@@@@@@@@@@@@@@@@@@@@@)KUJ )@@G@@@@@@S,@@@@+_@@@[<9@@@#-/@@@]A6@@@].O@@@#P6@@@ \<@@@@@@@@@@@@@@@@@@@@@@@@UK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NGR ANTI-JAM MODIF UL )@@G@@ CKEESE NGR KINGERY LOS SAT/DATAUM )@@G@@/GROUND PRGMS KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY UN )@@G@@@[E@[E@@@@@[N93081829499005241 UH4MD625 UH 5 UH UH _____.____04UO )@@G@@@@@@@@@@@FD0@@@FD0@@@@@@@@@FD0@@@E'<____02____02____02@@@@@@@@@E'<@@@@@@UP )@@G@@@@@@(6@@@]S$@@@@.&@@@[ !@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NGR QUUR )@@G@@AL TEST ASSIST CKEESE NGR KINGERUS )@@G@@Y LOS SAT/DATA/GROUND PRGMS KINGERY LOS SAT/DATA/GROUND PRGMUT )@@G@@S KINGERY @[E@[E@@@@@[N95049829500005241 UH4MD625 UH 5 UH UU )@@G@@UH @@@@@E@@@@EE@@@@@@@@@[R$@@@[R$@@@@@@@@@[R$@@@[-3@@@@EG@@@@]1@@@@]1UV )@@G@@@@@@BV@@@[-3@@@@BV@@@@@Z@@@@^ @@@@@@@@@@JD@@@@F1@@@]NK___"[%@@@@N5@@@@B"UW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UX )@@G@@@@@@@@@@@@@@NGR DATA A001/A002/A003 CKEESE NGR UY )@@G@@ KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY LOS SAUZ )@@G@@T/DATA/GROUND PRGMS KINGERY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@.5.ZA^@^\@^\@@-@[E@@@@@[N94911823543005241 UH4ME314 UH 4 VC )@@G@@UH UH @@@@#F@@@]NROKCE"B@^\@^\@@-@[E@@@@@[N94911823543005241 UH4VD )@@G@@ME314 UH 4 UH UH @@@@#F@@@]NR@@@@@@___"3X___"3X@@@@@@___"3X@@@[E@VE )@@G@@@@@]Q+@@@]Q+@@@]Q+@@@@@@@@@[E@@@@@@@@@@@@O@@@@@@___"@&@@@@@@@@@@@@@@@@@@VF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@514P-2 CONTROL PILOT LINE 5 CMCPHERSON VH )@@G@@514P-2 CONTROL KINGERY LOS SAT/DATA/GROUND PRGMS VI )@@G@@KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY @[E@[E@@@@@[N94912VJ )@@G@@823546005241 UH4ME314 UH 4 UH UH @@@@]G@@@[X]@@@@@@____=+____=+VK )@@G@@@@@@@@____=+@@@[#1@@@[ZI@@@[ZI@@@[ZI@@@@@@@@@[#1@@@@@@@@@@@@@@@@@@____N2VL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@379L-1 CNTL PILOT LINE BVN )@@G@@LD 5 CMCPHERSON 379L-1 CONTROL KINGERY LOS SAT/DATAVO )@@G@@/GROUND PRGMS KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY VP )@@G@@@[E@[E@@@@@[N94997823580005211 UH1ME625 UH 5 UH UH ____.T____ZEVQ )@@G@@@@@@@@@@@@8:@@@@8:@@@@@@@@@@8:@@@@PK____W=____W=____W=@@@@@@@@@@PK@@@@#EVR )@@G@@@@@@GM@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@515F-1VT )@@G@@ RCVR BLD 2 CMCCORMICK 515F-1 RCVR FREELAVU )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAVV )@@G@@MS FREELAND @[E@[E@@@@@[N95006823563005241 UH4ME625 UH 5 UH VW )@@G@@UH @@@@$F@@@YEI@@@@@@___+XD___+XD@@@@@@___+XD@@@[I<@@@Y1T@@@Y1T@@@Y1TVX )@@G@@@@@@@@@@@[I<@@@@#B___/G)@@@@[?___-YW@@@@@@@@@@@@@@@@@E@@@@@@@@@@@@@@@@@^VY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VZ )@@G@@@@@@@@@@@@@@C-10370/ MODIF SARA CMCPHERSON GRC-171 MODIF TO SWA )@@G@@ARA KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY LOS SAWB )@@G@@T/DATA/GROUND PRGMS KINGERY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WD )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@))_OH+@^\@^\@@+@[E@@@@@[N95313823652005241 UH4WF )@@G@@ME625 UH 5 UH UH ____"C____1]@@@@@@@@@@Y8@@@@Y8@@@@@@@@@@Y8@@@@I^WG )@@G@@____\F____\F____\F@@@@@@@@@@I^@@@@@@@@@@@@@@@@C&@@@@A @@@@#A@@@@G4@@@@@LWH )@@G@@@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GRC-171 CABINET 1 CTHROLSON WJ )@@G@@GRC-171 PROGRAM KINGERY LOS SAT/DATA/GROUND PRGMS WK )@@G@@KINGERY LOS SAT/DATA/GROUND PRGMS KINGERY @[E@[E@@@@@[S99227WL )@@G@@139774005211 UH1ME626 UH 6 UH UH _____.____H1@@@@@@@@@Y____H\____H\____H\@@@@@@@@@+>Y@@@#;1@@@A=0@@@^)_@@@#RXWN )@@G@@@@@#UT@@@^ 1@@@@1Z@@@@CD@@@@I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) MAIN CHASSWP )@@G@@IS CHAMMOND ARC-182 FREELAND LOS AIRCRAFTWQ )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND WR )@@G@@@[E@[E@@@@@[S99231139774005211 UH1ME626 UH 6 UH UH @@@@@9@@@@TOWS )@@G@@@@@@@@@@@@N<@@@@N<@@@@@@@@@@N<@@@@!0@@@@UH@@@@UH@@@@UH@@@@@@@@@@!0@@@@[WWT )@@G@@@@@@CS@@@@]X@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARCWV )@@G@@-182(V) MT-4934 DEV CMCCORMICK ARC-182 FREELAWW )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAWX )@@G@@MS FREELAND @[E@[E@@@@@[S99232139774005211 UH1ME626 UH 6 UH WY )@@G@@UH _____;____">@@@@@@@@@@<4@@@@<4@@@@@@@@@@<4@@@@+Q____"-____"-____"-WZ )@@G@@@@@@@@@@@@+Q@@@@]^@@@@DC@@@@ V@@@@^X@@@@B,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XB )@@G@@@@@@@@@@@@@@AN/ARC-182(V) MT-4935 DEV CMCCORMICK ARC-182 XC )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIXD )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XF )@@G@@@@@@@@@@@@@@@G)(;6@^\@^\@@<@[E@@@@@[S99233139774005211 UH1ME626 UH 6 XG )@@G@@UH UH @@@@[O@@@@=L@G)(;6@^\@^\@@<@[E@@@@@[S99233139774005211 UH1XH )@@G@@ME626 UH 6 UH UH @@@@[O@@@@=L@@@@@@@@@@B@@@@@B@@@@@@@@@@@B@@@@@?>XI )@@G@@@@@@>>@@@@>>@@@@>>@@@@@@@@@@?>@@@@@,@@@@]E@@@@[B@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) MT-4936 DEV CMCCORMICK XL )@@G@@ARC-182 FREELAND LOS AIRCRAFT COMM PROGRAMS XM )@@G@@FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND @[E@[E@@@@@[S99277XN )@@G@@139774005211 UH1ME626 UH 6 UH UH @@@@@-@@@@CF@@@@@@@@@@K'@@@@K'XO )@@G@@@@@@@@@@@@K'@@@@T&@@@@C?@@@@C?@@@@C?@@@@@@@@@@T&@@@@@@@@@@B=@@@@A1@@@@@[XP )@@G@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@]C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-182 MOUNTS PARTS PROXR )@@G@@C CMCCORMICK ARC-182 FREELAND LOS AIRCRAFTXS )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND XT )@@G@@@[E@[E@@@@@[N94890823548005211 UH1MF314 UH 4 UH UH @@@@@"@@@##4XU )@@G@@@@@@D4@@@[%)@@@[4O@@@@@@@@@[4O@@@^8)@@@#^G@@@[G$@@@[G$@@@@Z6@@@^8)@@@@@#XV )@@G@@@@@@@@@@@@@@@@@@@@@@@@ Y@@@@@@@@@@@@@@@@@@@@@@N+@@@@Q2@@@@Q%@@@@D4@@@@@@XW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF-301XX )@@G@@/ARA-50 COMPUTER SIM CDRAPAC DF-301/ARA-50 FREELAXY )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAXZ )@@G@@MS FREELAND @[E@[E@@@@@[N95117823603005211 UH1MF314 UH 4 UH YA )@@G@@UH @@@@@1@@@A]M@@@@@C@@@@#X@@@@#>@@@AA*@@@AEH@@@GHK@@@A##@@@A#F@@@A#FYB )@@G@@@@@@@@@@@GHK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#J@@@@@@@@@@@EYC )@@G@@@@@@@^@@@@@C@@@AA*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YD )@@G@@@@@@@@@@@@@@ARC-159 PA/PS PROD IMP DRAPAC ARC-159 PRGMS YE )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIYF )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@@@@@@@@@@@@@OKCE"B@^\@^\@@=@[E@@@@@[N95624823986005211 UH1MF314 UH 4 YI )@@G@@UH UH @@@@@-@@@^C_+_72_T@^\@^\@@=@[E@@@@@[N95624823986005211 UH1YJ )@@G@@MF314 UH 4 UH UH @@@@@-@@@^C_@@@@I'@@@@:@@@[K;@@@[>NYR )@@G@@@@@[PA@@@[HH@@@@)U@@@@CH@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARC-182(V) PA/LP FILTYT )@@G@@ER CREEVE ARC-182 FREELAND LOS AIRCRAFTYU )@@G@@ COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND YV )@@G@@@[E@[E@@@@@[S99222139774005211 UH1MF626 UH 6 UH UH _____.____=)YW )@@G@@@@@@@@@@@N39@@@N39@@@@@@@@@N39@@@NSS____=Y____=Y____=Y@@@@@@@@@NSS@@@]V,YX )@@G@@@@@## @@@[C"@@@]J]@@@]Q,@@@[1(@@@@M]@@@@ Y@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN/ARCYZ )@@G@@-182(V) PWR AMP DEV CFOLKMAN ARC-182 FREELAZA )@@G@@ND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIRCRAFT COMM PROGRAZB )@@G@@MS FREELAND @[E@[E@@@@@[S99223139774005211 UH1MF626 UH 6 UH ZC )@@G@@UH _____'____(*@@@@@@@@@A7+@@@A7+@@@@@@@@@A7+@@@A-A____(<____(<____(@@@@@@@@@@@@ZE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZF )@@G@@@@@@@@@@@@@@AN/ARC-182(V) TRANSMIT AUD CREEVE ARC-182 ZG )@@G@@ FREELAND LOS AIRCRAFT COMM PROGRAMS FREELAND LOS AIZH )@@G@@RCRAFT COMM PROGRAMS FREELAND @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@R *3.J@^\@^\@@>@[E@@@@@[N95438823927005119 HF9ZL )@@G@@NA111 HF 1 HF HF @@@@[-@@@F64@@@@@@@@@@O/@@@@O/@@@@@@@@@@O/@@@GHKZM )@@G@@@@@F8O@@@F0G@@@F0G@@@@CC@@@GHK@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]K@@@@@@ZN )@@G@@@@@@[P@@@@K_@@@@@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC-114 UPGRADE CDUFF ZP )@@G@@VC-114 ROLTGEN HF ARC-XXX ZQ )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95439ZR )@@G@@823928005119 HF9NA111 HF 1 HF HF @@@@[Q@@@E@@@@K(@@@[C#@@@@@I@@@@@J@@@@@@@@@@@@@@@@@@@@@@@@ZU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@106E/GRC ANTENNAS ZV )@@G@@ CTRANTER 106E/GRC ROLTGEN HF ARC-XXX ZW )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY ZX )@@G@@@[E@[E@@@@@[N94958001199005119 HF9NA423 HF 3 HF HF @@@@@1@@@@UNZY )@@G@@@@@@@@@@@@V*@@@@V*@@@@@@@@@@V*@@@@6?@@@@V^@@@@V^@@@@V^@@@@@@@@@@6?@@@@@@ZZ )@@G@@@@@@@L@@@@@@@@@@@K@@@@@@@@@@[8____"B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@437Z-1AB )@@G@@ ANTENNA P E QTY 89 CDUSHEK HF MISC CONTRACT COLLATERAL MCCARTAC )@@G@@HY HF ARC-XXX MCCARTHY HF ARC-XXX AD )@@G@@ MCCARTHY @[E@[E@@@@@[N94959001199005119 HF9NA423 HF 3 HF AE )@@G@@HF @@@@[ @@@@%J@@@@@@@@@@J+@@@@J+@@@@#?@@@@NI@@@@")@@@@:M@@@@%Y@@@@%YAF )@@G@@@@@@@8@@@@")@@@@@P@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Z@@@@@@@@@@@@@@@@@%AG )@@G@@@@@@@@@@@@@@@@@@@;@@@@@;@@@@@;@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@437Z-1 ANTENNA P E QTY 100 DUSHEK HF MISC CONTRACT CAI )@@G@@OLLATERAL MCCARTHY HF ARC-XXX MCCARTHY HF ARCAJ )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@G)(;6@^\@^\@@&@[E@@@@@[N95474823522005119 HF9NB111 HF 1 AM )@@G@@HF HF @@@@@@@@@@@,+YHSOK@^\@^\@@&@[E@@@@@[N95474823522005119 HF9AN )@@G@@NB111 HF 1 HF HF @@@@@@@@@@@,@@@@@@@@[ @@@@[ @@@@;@@@@[X0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BR )@@G@@@@@@@@@@@@#2@@@@X9@@@@@@@@@@,)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HF SYSTEM BITE CHOELZ BT )@@G@@(BIRD) ARC-XXX GLYNN HF ARC-XXX BU )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95612BV )@@G@@829957005119 HF9NB625 HF 5 HF HF ____.T___'M/@@@@7W@@@[/;@@@]4RBW )@@G@@@@@AN=@@@DB;@@@#U0___'M4____!4____!4@@@[0@@@@#U0@@@@@@@@@@@@@@@@@@@@@@@@BX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[3@@@[FI@@@@\'@@@@7W@@@]:O@@@[6,@@@[1+@@@@@@BY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 728U-2 R/E BZ )@@G@@ ENDERSON ARC-XXX GLYNN HF ARC-XXX CA )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY CB )@@G@@@[E@[E@@@@@[N95613829957005119 HF9NB625 HF 5 HF HF ____/V___814CC )@@G@@@@@[N3@@@#;/@@@ J\@@@ E>@@@EUO@@@#FC___803___.'N___.'N@@@@.O@@@#FC@@@@@@CD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@M<@@@[;G@@@[,H@@@[N3@@@[5DCE )@@G@@@@@[%,@@@[%,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF 728CF )@@G@@U-2 CONTROL HARO ARC-XXX GLYNN CG )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX CH )@@G@@ MCCARTHY @[E@[E@@@@@[N95614829957005119 HF9NB625 HF 5 HF CI )@@G@@HF _____Z___"V>@@@[-,@@@^[P@@@ <#@@@@'J@@@AXM@@@^8)___"VH___"22___"22CJ )@@G@@@@@[6^@@@^8)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KG@@@['0CK )@@G@@@@@[6T@@@[-,@@@@VE@@@@S7@@@@AI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL )@@G@@@@@@@@@@@@@@AF 514A-8 CONTROL MANSTROM ARC-XXX CM )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCCN )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@@@@@@@@@@@EC@@@@OO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@%W"/65@^\@^\@@*@[E@@@@@[N95615829957005119 HF9CR )@@G@@NB625 HF 5 HF HF _____0____)D@@@@&-@@@[_F@@@]>?@@@[ ^@@@#%0@@@#FCCS )@@G@@____)R@@@@X/@@@@X/@@@@,[@@@#FC@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT )@@G@@@@@@@@@@@@L/@@@@&%@@@[A>@@@@&-@@@@++@@@@++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF HF SYS INTEGRATION HOELZ CV )@@G@@ARC-XXX GLYNN HF ARC-XXX CW )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95616CX )@@G@@829957005119 HF9NB625 HF 5 HF HF @@@@[Y@@@[CV@@@@@@@@@@@@@@@@@@CY )@@G@@@@@@^&@@@@^&@@@[IC@@@[D+@@@@8B@@@@8B@@@@L+@@@[IC@@@@@@@@@@@@@@@@@@@@@@@@CZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]N@@@@]N@@@@@@@@@@@@DA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF HF SUPPORT GROUPS DB )@@G@@ HOELZ ARC-XXX GLYNN HF ARC-XXX DC )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY DD )@@G@@@[E@[E@@@@@[N95684829960005119 HF9NB625 HF 5 HF HF @@@@@B@@@@]UDE )@@G@@@@@@D0@@@@@@@@@@D0@@@@V%@@@@>U@@@@*-@@@@#B@@@@MU@@@@MU@@@@HE@@@@*-@@@@@@DF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D0@@@@DIDG )@@G@@@@@@DI@@@@DI@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXDH )@@G@@X BOOM EMI/EMC HOELZ ARC-XXX GLYNN DI )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX DJ )@@G@@ MCCARTHY @[E@[E@@@@@[N95685829960005119 HF9NB625 HF 5 HF DK )@@G@@HF @@@@@9@@@[3U@@@@O5@@@@DD@@@@X"@@@@70@@@[P,@@@#D'@@@[4G@@@[&5@@@[&5DL )@@G@@@@@@*H@@@#D'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DM )@@G@@@@@@DD@@@@O5@@@@3E@@@@^&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DN )@@G@@@@@@@@@@@@@@ARC-XXX B003 QUAL TEST PLAN HOELZ ARC-XXX DO )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCDP )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@+YHSOK@^\@^\@@(@[E@@@@@[N95709829961005119 HF9NB625 HF 5 DS )@@G@@HF HF @@@@@^@@@@E?S;HI@I@^\@^\@@(@[E@@@@@[N95709829961005119 HF9DT )@@G@@NB625 HF 5 HF HF @@@@@^@@@@E?@@@@@@@@@@@R@@@@@R@@@#+L@@@#+*@@@#!EDU )@@G@@@@@@E+____&2____&2@@@@%I@@@#!E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@R@@@@@@@@@@!D@@@@!V@@@@!D@@@@!V@@@@!D@@@@@@@@@@@@DW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX CONTROL P E MANSTROM DX )@@G@@ARC-XXX GLYNN HF ARC-XXX DY )@@G@@MCCARTHY HF ARC-XXX MCCARTHY @[E@[E@@@@@[N95710DZ )@@G@@829961005119 HF9NB625 HF 5 HF HF @@@@@)@@@@ZV@@@@[%@@@@@R@@@@][EA )@@G@@@@@@_)@@@[[-@@@[-K@@@@Z\@@@@N6@@@@N6@@@@JP@@@[-K@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@R@@@@[%@@@@J(@@@@KB@@@@J(@@@@KBEC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXX ASSIST MGMT ED )@@G@@ HOELZ ARC-XXX GLYNN HF ARC-XXX EE )@@G@@ MCCARTHY HF ARC-XXX MCCARTHY EF )@@G@@@[E@[E@@@@@[N95713829961005119 HF9NB625 HF 5 HF HF _____,____&UEG )@@G@@@@@@DD@@@@TU@@@@+<@@@]H.@@@]0)@@@]Q-____&@____S]____S]@@@@V[@@@]Q-@@@@@@EH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TU@@@@DD@@@@WTEI )@@G@@@@@@WT@@@@WT@@@@WT@@@@WT@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ARC-XXEJ )@@G@@X PARTS ORD/EXPD HOELZ ARC-XXX GLYNN EK )@@G@@ HF ARC-XXX MCCARTHY HF ARC-XXX EL )@@G@@ MCCARTHY @[E@[E@@@@@[N95776829961005119 HF9NB625 HF 5 HF EM )@@G@@HF @@@@@K@@@]S!@@@@@@@@@@@!@@@@@!@@@GIE@@@GI7@@@I$,@@@]S7@@@[)_@@@[)_EN )@@G@@@@@]>@@@@I$,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EO )@@G@@@@@@@!@@@@@@@@@])X@@@]Z;@@@]Z7@@@]ZP@@@]I&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EP )@@G@@@@@@@@@@@@@@ARC-XXX R/T P E QTY 12 HOELZ ARC-XXX EQ )@@G@@ GLYNN HF ARC-XXX MCCARTHY HF ARCER )@@G@@-XXX MCCARTHY @[E@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@=ZMH/X@^\@^\@@%@[E@@@@@[N95037823557005118 HF8NC314 HF 4 EU )@@G@@HF HF @@@@[@@@@@S'*[@@@@*SDFF**[@@@@CTS@@E@D@@@@ SUBROUTINE AEV )@@G@@LFNUM(/NUMBER/,/STRING/,/IPOS/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@YEW )@@G@@@G@@@@C THIS ROUTINE CONVERTS NUMBER INTO CHARACTER FORM, STORING THEX )@@G@@E *[@@@@CTS@@*@G@@@@C CHARACTERS IN THE CHARACTER ARRAY STRING, BEGIEY )@@G@@NNING WITH THE POSITION *[@@@@CTS@@2@^@@@@C INDICATED BY IPOS. *[@@@@EZ )@@G@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) FA )@@G@@*[@@@@CTS@[K@[@@@@C *[@@@@CTS@[U@ @@@@ DIMENSION ADIGIT(10) FB )@@G@@*[@@@@CTS@[=@ @@@@ DIMENSION STRING(1) *[@@@@CTS@[,@F@@@@ FC )@@G@@DATA ADIGIT / 1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9 / *[@@@@CTS@[8FD )@@G@@@ @@@@ DATA AMINUS / 1H- / *[@@@@CTS@]]@[@@@@C *[@@@@CTS@]GFE )@@G@@@[@@@@C *[@@@@CTS@]Q@#@@@@ NUM=NUMBER *[@@@@CTS@])@[@@@@C FF )@@G@@*[@@@@CTS@]%@^@@@@C CHECK FOR NUMBER < 0 *[@@@@CTS@]4@[@@@@C *[@@@@FG )@@G@@CTS@]"@ @@@@ IF (NUM.GE.0) GO TO 10 *[@@@@CTS@#C@#@@@@ NUM=-NFH )@@G@@UM *[@@@@CTS@#M@B@@@@C... NEGATIVE NUMBER% INSERT MINUS SIGN *[@@@@FI )@@G@@CTS@#W@B@@@@ CALL MOVE(STRING,IPOS,AMINUS,1,1) *[@@@@CTS@#&@#@@@@FJ )@@G@@ IPOS=IPOS+1 *[@@@@CTS@#0@[@@@@C *[@@@@CTS@#'@E@@@@C CONVERT NFK )@@G@@UMBER ONE DIGIT AT A TIME, IN REVERSE ORDER *[@@@@CTS@^^@[@@@@C FL )@@G@@*[@@@@CTS@^I@#@@@@ 10 ISTART=IPOS *[@@@@CTS@^S@^@@@@ 20 NUMTMP=NUM/1FM )@@G@@0 *[@@@@CTS@^+@ @@@@ IDIGIT=NUM-NUMTMP*10 *[@@@@CTS@^?@D@@@@FN )@@G@@ CALL MOVE(STRING,IPOS,ADIGIT(IDIGIT+1),1,1) *[@@@@CTS@^6@#@@@@FO )@@G@@ IPOS=IPOS+1 *[@@@@CTS@ @@#@@@@ NUM=NUMTMP *[@@@@CTS@ E@ @@@@FP )@@G@@ IF (NUM.NE.0) GO TO 20 *[@@@@CTS@ O@#@@@@ ISTOP=IPOS-1*[@@@@FQ )@@G@@CTS@ Y@[@@@@C *[@@@@CTS@ *@B@@@@C NOW REVERSE THE ORDER OF THE DIGIFR )@@G@@TS *[@@@@CTS@ 2@[@@@@C *[@@@@CTS@ /@A@@@@ 30 IF (ISTOP.LE.ISTARFS )@@G@@T) GO TO 40 *[@@@@CTS@AA@B@@@@ CALL MOVE(TMPDGT,1,STRING,ISTART,1) FT )@@G@@*[@@@@CTS@AK@C@@@@ CALL MOVE(STRING,ISTART,STRING,ISTOP,1) *[@@@@FU )@@G@@CTS@AU@B@@@@ CALL MOVE(STRING,ISTOP,TMPDGT,1,1) *[@@@@CTS@A=@^@@@@FV )@@G@@ ISTART=ISTART+1 *[@@@@CTS@A,@^@@@@ ISTOP=ISTOP-1 *[@@@@FW )@@G@@CTS@A8@#@@@@ GO TO 30 *[@@@@CTS@B]@[@@@@C *[@@@@CTS@BG@^@@@@FX )@@G@@C CONVERSION COMPLETE *[@@@@CTS@BQ@[@@@@C *[@@@@CTS@B)@]@@@@ 40 FY )@@G@@RETURN*[@@@@CTS@B%@]@@@@ END _@@@@@@@@@@@*[@@@@*SDFF**[@@@@CTS@@EFZ )@@G@@@A@@@@ SUBROUTINE CODEXC(/I/,/J/) *[@@@@CTS@@O@#@@@@ WRITE(GA )@@G@@6,10) *[@@@@CTS@@Y@D@@@@ 10 FORMAT('0SUBROUTINE CODEXC HAS BEEN CALLEDGB )@@G@@') *[@@@@CTS@@*@]@@@@ RETURN*[@@@@CTS@@2@]@@@@ END _@@@@@GC )@@G@@7 -46.8 691.7 -.12586 -.15089-37.408 .7387-02 70.422 @Q@[@@GD )@@G@@ 806.7615 54.8 32.1*[@@@@*SDFF**[@@@@CTS@@E@E@@@@ SUBROUTINE PGE )@@G@@NJLIM(/VNEW/,/VOLD/,/VT/,/VCRIT/,/ICHECK/)*[@@@@CTS@@O@[@@@@C *[@@@@GF )@@G@@CTS@@Y@G@@@@C THIS ROUTINE LIMITS THE CHANGE-PER-ITERATION OF DEVICEGG )@@G@@ PN-JUNCTION*[@@@@CTS@@*@]@@@@C VOLTAGES. *[@@@@CTS@@2@[@@@@C *[@@@@GH )@@G@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) *[@@@@CTS@[A@#@@@@ GI )@@G@@VLIM=VT+VT *[@@@@CTS@[K@^@@@@ DELV=VNEW-VOLD *[@@@@CTS@[U@B@@@@GJ )@@G@@ IF (DABS(DELV).LE.VLIM) GO TO 30 *[@@@@CTS@[=@A@@@@ IF (VNGK )@@G@@EW.LE.VCRIT) GO TO 30 *[@@@@CTS@[,@A@@@@ IF (VOLD.LE.0.0D0) GO TOGL )@@G@@ 20 *[@@@@CTS@[8@^@@@@ ARG=1.0D0+DELV/VT *[@@@@CTS@]]@A@@@@ GM )@@G@@IF (ARG.LE.0.0D0) GO TO 10 *[@@@@CTS@]G@ @@@@ VNEW=VOLD+VT*DLOG(GN )@@G@@ARG) *[@@@@CTS@]Q@#@@@@ GO TO 100 *[@@@@CTS@])@#@@@@ 10 VNEW=VGO )@@G@@CRIT *[@@@@CTS@]%@#@@@@ GO TO 100 *[@@@@CTS@]4@ @@@@ 20 VNEW=VGP )@@G@@T*DLOG(VNEW/VT) *[@@@@CTS@]"@#@@@@ GO TO 100 *[@@@@CTS@#C@#@@@@GQ )@@G@@ 30 ICHECK=1 *[@@@@CTS@#M@[@@@@C *[@@@@CTS@#W@]@@@@C FINISHED GR )@@G@@*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@]@@@@ 100 RETURN*[@@@@CTS@#'@]@@@@GS )@@G@@ END _@@@@@ -.917904-01 -.917164-01 -.917911-01 .000000 GT )@@G@@ -.807301 @@@[@@@I@[@@ 145*[@@@@*SDFF**[@@@@CTS@@EGU )@@G@@@^@@@@ SUBROUTINE GETCJE *[@@@@CTS@@O@]@@@@ RETURN*[@@@@CTS@@YGV )@@G@@@]@@@@ END _@@@@@@^@@@@ DO 120 I = 1,3 @A@@@@ ENTH(1GW )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@C@@@@ SUBROUTINE EVTERM(/VAL/,/ARG/,/IEXP/GX )@@G@@) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@D@@@@C THIS ROUTINE EVALUGY )@@G@@ATES ONE TERM OF A POLYNOMIAL.*[@@@@CTS@@*@[@@@@C *[@@@@CTS@@2@A@@@@GZ )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[AHA )@@G@@@[@@@@C *[@@@@CTS@[K@#@@@@ JEXP=IEXP+1 *[@@@@CTS@[U@ @@@@ HB )@@G@@IF (JEXP.GE.6) GO TO 60 *[@@@@CTS@[=@A@@@@ GO TO (10,20,30,40,50), HC )@@G@@JEXP *[@@@@CTS@[,@#@@@@ 10 VAL=1.D0 *[@@@@CTS@[8@#@@@@ GO TO HD )@@G@@100 *[@@@@CTS@]]@#@@@@ 20 VAL=ARG *[@@@@CTS@]G@#@@@@ GO TO HE )@@G@@100 *[@@@@CTS@]Q@#@@@@ 30 VAL=ARG*ARG *[@@@@CTS@])@#@@@@ GO TO HF )@@G@@100 *[@@@@CTS@]%@^@@@@ 40 VAL=ARG*ARG*ARG *[@@@@CTS@]4@#@@@@ HG )@@G@@GO TO 100 *[@@@@CTS@]"@#@@@@ 50 VAL=ARG*ARG *[@@@@CTS@#C@#@@@@ HH )@@G@@VAL=VAL*VAL *[@@@@CTS@#M@#@@@@ GO TO 100 *[@@@@CTS@#W@A@@@@ 60 HI )@@G@@IF (ARG.EQ.0.D0) GO TO 70 *[@@@@CTS@#&@B@@@@ ARGEXP=DFLOAT(IEXPHJ )@@G@@)*DLOG(DABS(ARG)) *[@@@@CTS@#0@B@@@@ IF (ARGEXP.LT.-174.D0) GO TO 7HK )@@G@@0 *[@@@@CTS@#'@^@@@@ VAL=DEXP(ARGEXP) *[@@@@CTS@^^@^@[@@ HL )@@G@@IMOD2=IAND(IEXP,1)@^@@@[ IMOD2= AND(IEXP,1)*[@@@@CTS@^I@A@@@@ HM )@@G@@IF (IMOD2.EQ.0) GO TO 100 *[@@@@CTS@^S@^@@@@ VAL=DSIGN(VAL,ARG)HN )@@G@@*[@@@@CTS@^+@#@@@@ GO TO 100 *[@@@@CTS@^?@#@@@@ 70 VAL=0.D0 HO )@@G@@*[@@@@CTS@^6@[@@@@C *[@@@@CTS@ @@]@@@@C FINISHED *[@@@@CTS@ E@[@@@@HP )@@G@@C *[@@@@CTS@ O@]@@@@ 100 RETURN*[@@@@CTS@ Y@]@@@@ END ___@@@HQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HR )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@C@@@@ SUBROUTINE FETLIM(/VNEW/,/VOLD/,/VTOHS )@@G@@/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE LIMITHT )@@G@@S THE PER-ITERATION CHANGE OF FET VOLTAGES. *[@@@@CTS@@*@[@@@@C HU )@@G@@*[@@@@CTS@@2@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) *[@@@@CTS@@/@[@@@@HV )@@G@@C *[@@@@CTS@[A@D@@@@C THREE REGIONS OF OPERATION ARE IDENTIFIEDHW )@@G@@% *[@@@@CTS@[K@[@@@@C *[@@@@CTS@[U@C@@@@C V < VHX )@@G@@TO DEFINITELY OFF*[@@@@CTS@[=@E@@@@C VTO = V = VTO+3.5HY )@@G@@ OFF OR ON DEPENDING ON VBS*[@@@@CTS@[,@C@@@@C VTO+3.5 < V HZ )@@G@@ DEFINITELY ON *[@@@@CTS@[8@[@@@@C *[@@@@CTS@]]@B@@@@ IA )@@G@@VTSTHI=DABS(2.0D0*(VOLD-VTO))+2.0D0 *[@@@@CTS@]G@A@@@@ VTSTLO=VTSTHIB )@@G@@I/2.0D0+2.0D0 *[@@@@CTS@]Q@^@@@@ VTOX=VTO+3.5D0 *[@@@@CTS@])IC )@@G@@@^@@@@ DELV=VNEW-VOLD *[@@@@CTS@]%@[@@@@C *[@@@@CTS@]4@A@@@@ID )@@G@@ IF (VOLD.LT.VTO) GO TO 300 *[@@@@CTS@]"@A@@@@ IF (VOLD.LT.IE )@@G@@VTOX) GO TO 200 *[@@@@CTS@#C@[@@@@C *[@@@@CTS@#M@]@@@@C ON ... IF )@@G@@*[@@@@CTS@#W@[@@@@C *[@@@@CTS@#&@A@@@@ IF (DELV.GT.0.0D0) GO TOIG )@@G@@ 120 *[@@@@CTS@#0@#@@@@C... GOING OFF *[@@@@CTS@#'@A@@@@ IF (VNIH )@@G@@EW.LT.VTOX) GO TO 110 *[@@@@CTS@^^@A@@@@ IF (-DELV.LE.VTSTLO) GO II )@@G@@TO 500*[@@@@CTS@^I@^@@@@ VNEW=VOLD-VTSTLO *[@@@@CTS@^S@#@@@@ IJ )@@G@@GO TO 500 *[@@@@CTS@^+@A@@@@ 110 VNEW=DMAX1(VNEW,VTO+2.0D0) *[@@@@IK )@@G@@CTS@^?@#@@@@ GO TO 500 *[@@@@CTS@^6@#@@@@C... STAYING ON *[@@@@IL )@@G@@CTS@ @@A@@@@ 120 IF (DELV.LT.VTSTHI) GO TO 500 *[@@@@CTS@ E@^@@@@ IM )@@G@@VNEW=VOLD+VTSTHI *[@@@@CTS@ O@#@@@@ GO TO 500 *[@@@@CTS@ Y@[@@@@IN )@@G@@C *[@@@@CTS@ *@^@@@@C MIDDLE REGION ... *[@@@@CTS@ 2@[@@@@C IO )@@G@@*[@@@@CTS@ /@A@@@@ 200 IF (DELV.GT.0.0D0) GO TO 210 *[@@@@CTS@AA@#@@@@IP )@@G@@C... DECREASING *[@@@@CTS@AK@A@@@@ VNEW=DMAX1(VNEW,VTO-0.5D0) IQ )@@G@@*[@@@@CTS@AU@#@@@@ GO TO 500 *[@@@@CTS@A=@#@@@@C... INCREASING IR )@@G@@*[@@@@CTS@A,@A@@@@ 210 VNEW=DMIN1(VNEW,VTO+4.0D0) *[@@@@CTS@A8@#@@@@IS )@@G@@ GO TO 500 *[@@@@CTS@B]@[@@@@C *[@@@@CTS@BG@]@@@@C OFF ... IT )@@G@@*[@@@@CTS@BQ@[@@@@C *[@@@@CTS@B)@A@@@@ 300 IF (DELV.GT.0.0D0) GO TOIU )@@G@@ 310 *[@@@@CTS@B%@A@@@@ IF (-DELV.LE.VTSTHI) GO TO 500*[@@@@CTS@B4IV )@@G@@@^@@@@ VNEW=VOLD-VTSTHI *[@@@@CTS@B"@#@@@@ GO TO 500 *[@@@@IW )@@G@@CTS@CC@^@@@@ 310 VTEMP=VTO+0.5D0 *[@@@@CTS@CM@A@@@@ IF (VNEW.GT.IX )@@G@@VTEMP) GO TO 320 *[@@@@CTS@CW@A@@@@ IF (DELV.LE.VTSTLO) GO TO 500 IY )@@G@@*[@@@@CTS@C&@^@@@@ VNEW=VOLD+VTSTLO *[@@@@CTS@C0@#@@@@ GO TO IZ )@@G@@500 *[@@@@CTS@C'@#@@@@ 320 VNEW=VTEMP *[@@@@CTS@D^@[@@@@C *[@@@@JA )@@G@@CTS@DI@]@@@@C FINISHED *[@@@@CTS@DS@[@@@@C *[@@@@CTS@D+@]@@@@ 500 JB )@@G@@RETURN*[@@@@CTS@D?@]@@@@ END ___.LE.VTSTHI) GO TO 500*[@@@@CTS@B4JC )@@G@@@^@@@@ VNEW=VOLD-VT*[S@@@*SDFF*@G@@@@ COMMON /MISCEL/APROG(3),JD )@@G@@ATIME(2),ADATE(2),ATITLE(2),RSTATS(590), @ @@@@ 1 IWIDTH,LWIDTH,NJE )@@G@@OPAGE ___@[@^@)^@)^@1^@)^[DE9DC-OD@?D-RDD^E-C -I*[S@@@*SDFF**[@@@@CTS@@EJF )@@G@@@A@@@@ SUBROUTINE DMPMEM(/ANAM/) *[@@@@CTS@@O@A@@@@ IMPLICJG )@@G@@IT REAL*8 (A-H,O-Z) *[@@@@CTS@@Y@[@@@@C *[@@@@CTS@@*@F@@@@C JH )@@G@@ THIS ROUTINE PRINTS OUT THE CURRENT MEMORY ALLOCATION MAP. *[@@@@CTS@@2JI )@@G@@@F@@@@C 'ANAM' SHOULD BE THE (BCD) NAME OF THE ROUTINE CALLING DMPMEM. JJ )@@G@@*[@@@@CTS@@/@[@@@@C @ @@@[ INCLUDE F.MEMRY,LIST @ @@@[ JK )@@G@@INCLUDE F.BLANK,LIST *[@@@@CTS@[A@F@[@@ COMMON /MEMRY/ LORG,ICORJL )@@G@@E,MAXCOR,MAXUSE,MEMAVL,LDVAL,NUMBLK,*[@@@@CTS@[K@^@[@@ 1 LOCTAB,LTJM )@@G@@AB *[@@@@CTS@[U@ @[@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@[=@^@[@@JN )@@G@@ INTEGER NODPLC(64)*[@@@@CTS@[,@ @[@@ COMPLEX*16 CVALUE(32) JO )@@G@@*[@@@@CTS@[8@C@@@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@JP )@@G@@CTS@]]@[@@@@C *[@@@@CTS@]G@B@@@@ WRITE (6,5) ANAM,ICORE,MEMAVL,JQ )@@G@@LDVAL *[@@@@CTS@]Q@D@@@@ 5 FORMAT('0DMPMEM CALLED BY',A7,'; CORSIZ=',JR )@@G@@O12, *[@@@@CTS@])@C@@@@ 1 ' OCTAL) AVLSPC=',I6,'; LDVAL=',I6/ JS )@@G@@*[@@@@CTS@]%@B@@@@ 2 1H0,24X,'MEMORY ALLOCATION MAP'/ *[@@@@CTS@]4JT )@@G@@@E@@@@ 3 14X,'BLKNUM MEMORG MEMSIZ MEMUSE USRPTR ADDR($)') *[@@@@JU )@@G@@CTS@]"@#@@@@ LTAB1=LOCTAB*[@@@@CTS@#C@^@@@@ DO 20 I=1,NUMBLK JV )@@G@@*[@@@@CTS@#M@ @@@@ MORG=NODPLC(LTAB1+1) *[@@@@CTS@#W@ @@@@ JW )@@G@@MSIZ=NODPLC(LTAB1+2) *[@@@@CTS@#&@ @@@@ MUSE=NODPLC(LTAB1+3) JX )@@G@@*[@@@@CTS@#0@ @@@@ MADR=NODPLC(LTAB1+4) *[@@@@CTS@#'@]@@@@ JY )@@G@@JPTR=0*[@@@@CTS@^^@C@@@@ IF (MADR.NE.0) JPTR=NODPLC(LORG+MADR) JZ )@@G@@*[@@@@CTS@^I@C@@@@ WRITE (6,11) I,MORG,MSIZ,MUSE,JPTR,MADR *[@@@@KA )@@G@@CTS@^S@B@@@@ 11 FORMAT(13X,5I7,1X,O12,' OCTAL') *[@@@@CTS@^+@^@@@@KB )@@G@@ LTAB1=LTAB1+4 *[@@@@CTS@^?@#@@@@ 20 CONTINUE *[@@@@CTS@^6KC )@@G@@@#@@@@ WRITE (6,21)*[@@@@CTS@ @@C@@@@ 21 FORMAT(1H0,24X,'END OF AKD )@@G@@LLOCATION MAP'/) *[@@@@CTS@ E@]@@@@ RETURN*[@@@@CTS@ O@]@@@@ KE )@@G@@END ___@@@^@)^@)^@)DDA*[S@@@*SDFF**[@@@@CTS@@E@C@@@@ SUBROUTINE MKF )@@G@@EMORY(/ATYPE/,/KEY/,/MFL/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@KG )@@G@@C THIS ROUTINE ADJUSTS THE AMOUNT OF CENTRAL MEMORY USED BY SPICE. KH )@@G@@*[@@@@CTS@@*@[@@@@C *[@@@@CTS@@2@A@@@@ IMPLICIT REAL*8 (A-H,O-ZKI )@@G@@) @ @@@] INCLUDE F.MEMRY,LIST @ @@@] INCLUDE F.FLAGS,LIKJ )@@G@@ST @^@@@] INCLUDE F.CJE,LIST@ @@@] INCLUDE F.BLANK,LIST KK )@@G@@@^@]@[@ADD,P *SPICE.MEMORYD *[@@@@CTS@@/@F@[@@ COMMON /MEMRY/ LORKL )@@G@@G,ICORE,MAXCOR,MAXUSE,MEMAVL,LDVAL,NUMBLK,*[@@@@CTS@[A@^@[@@ 1 LOCKM )@@G@@TAB,LTAB *[@@@@CTS@[K@G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,KN )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@[U@F@[@@ 1 LVLCOD,LVLTIM,IKO )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@[=@G@[@@ COMMONKP )@@G@@ /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,*[@@@@CTS@[,KQ )@@G@@@G@[@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPUKR )@@G@@, *[@@@@CTS@[8@C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) KS )@@G@@*[@@@@CTS@]]@^@[@@ REAL*8 JOBNAM *[@@@@CTS@]G@ @[@@ COMMONKT )@@G@@ /BLANK/ VALUE(64)*[@@@@CTS@]Q@^@[@@ INTEGER NODPLC(64)*[@@@@CTS@])KU )@@G@@@ @[@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@]%@C@[@@ EQUIVALENCE KV )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@]4@[@@@@C *[@@@@CTS@]"@[@@@@KW )@@G@@C *[@@@@CTS@#C@A@@@@ IF (MFL.GT.MAXMEM) GO TO 30 *[@@@@CTS@#MKX )@@G@@@ @@@@ MAXCOR=MAX0(MAXCOR,MFL) *[@@@@CTS@#W@[@@@@C *[@@@@CTS@#&KY )@@G@@@C@@@@C CHANGE MEMORY ALLOCATION TO BE MFL WORDS *[@@@@CTS@#0@[@@@@KZ )@@G@@C *[@@@@CTS@#'@#@@@@ GO TO 40 *[@@@@CTS@^^@#@@@@ 30 NOGO=-LA )@@G@@1 *[@@@@CTS@^I@]@@@@ 40 RETURN*[@@@@CTS@^S@]@@@@ END ___CDSLB )@@G@@A@*D([F[#D9M -HC1G C)^@)*[@@@@CTS@#W@[@@@@CS)^@)*[S@@@*SDFF**[@@@@CTSAR"LC )@@G@@@I@@@@ SUBROUTINE DCSOL LD )@@G@@ 00234700 *[@@@@CTSASC@I@@@@C LE )@@G@@ 00234701 *[@@@@CTSASM@I@@@@C LF )@@G@@THIS ROUTINE SOLVES THE SYSTEM OF CIRCUIT EQUATIONS BY PERFORMING 002347LG )@@G@@02 *[@@@@CTSASW@I@@@@C A FORWARD AND BACKWARD SUBSTITUTION STEP USINGLH )@@G@@ THE PREVIOUSLY-COMPUTED00234703 *[@@@@CTSAS&@I@@@@C LU FACTORS. LI )@@G@@ 00234704 *[@@@@LJ )@@G@@CTSAS0@I@@@@C LK )@@G@@ 00234705 *[@@@@CTSAS'@I@@@@ IMPLICIT REAL*8 (A-H,O-ZLL )@@G@@) 00234800 @ @@@# INCLUDLM )@@G@@E F.TABINF,LIST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDLN )@@G@@E F.BLANK,LIST @^@#@]@ADD,P *SPICE.DCSOLD *[@@@@CTSAT^@I@]@@ LO )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, 0000LP )@@G@@10 *[@@@@CTSATI@I@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDLQ )@@G@@ELIM,ICOLUM,INSIZE, 000020 *[@@@@CTSATS@I@]@@ 2 JUNODE,LSLR )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, 000030 *[@@@@LS )@@G@@CTSAT+@I@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACLT )@@G@@INS,LVNIM1, 000040 *[@@@@CTSAT?@I@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LU )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, 000050 *[@@@@CTSAT6@I@]@@LV )@@G@@ 5 LOUTPT, LW )@@G@@ 000060 *[@@@@CTSAU@@I@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKLX )@@G@@P,LACINS,LLVNIM, 000070 *[@@@@CTSAUE@I@]@@ 7 LLXLY )@@G@@0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, 000080 LZ )@@G@@*[@@@@CTSAUO@I@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG MA )@@G@@ 000090 *[@@@@CTSAUY@I@]@@ COMMON /CIRDAT/ LOMB )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, 000010 *[@@@@CTSAU*MC )@@G@@@I@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS MD )@@G@@ 000020 *[@@@@CTSAU2@I@]@@ COMMON /BLANK/ VALUE(64) ME )@@G@@ 000010 *[@@@@CTSAU/@I@]@@ MF )@@G@@INTEGER NODPLC(64) 0000MG )@@G@@20 *[@@@@CTSAVA@I@]@@ COMPLEX*16 CVALUE(32) MH )@@G@@ 000030 *[@@@@CTSAVK@I@]@@ EQUIVALENCE MI )@@G@@(VALUE(1),NODPLC(1),CVALUE(1)) 000040 *[@@@@MJ )@@G@@CTSAVU@I@@@@C MK )@@G@@ 00235200 *[@@@@CTSAV=@I@@@@C FORWARD SUBSTITUTION ML )@@G@@ 00235300 *[@@@@CTSAV,@I@@@@MM )@@G@@C MN )@@G@@00235400 *[@@@@CTSAV8@I@@@@ DO 20 I=2,NSTOP MO )@@G@@ 00235500 *[@@@@CTSAW]@I@@@@ JSTARTMP )@@G@@=NODPLC(ILC+I) 00235600 MQ )@@G@@*[@@@@CTSAWG@I@@@@ JSTOP=NODPLC(ILC+I+1)-1 MR )@@G@@ 00235700 *[@@@@CTSAWQ@I@@@@ IF (JSTART.GT.JSTOMS )@@G@@P) GO TO 20 00235800 *[@@@@CTSAW)MT )@@G@@@I@@@@ IO=NODPLC(IORDER+I) MU )@@G@@ 00235900 *[@@@@CTSAW%@I@@@@ IF (VALUE(LVN+IO).EQ.0.D0) GO MV )@@G@@TO 20 00236000 *[@@@@CTSAW4@I@@@@ MW )@@G@@DO 10 J=JSTART,JSTOP 002361MX )@@G@@00 *[@@@@CTSAW"@I@@@@ JO=NODPLC(ILR+J) MY )@@G@@ 00236200 *[@@@@CTSAXC@I@@@@ JO=NODPLC(IOMZ )@@G@@RDER+JO) 00236300 *[@@@@NA )@@G@@CTSAXM@I@@@@ VALUE(LVN+JO)=VALUE(LVN+JO)-VALUE(LYL+J)*VALUE(LVN+IO)NB )@@G@@ 00236400 *[@@@@CTSAXW@I@@@@ 10 CONTINUE NC )@@G@@ 00236500 *[@@@@CTSAX&@I@@@@ND )@@G@@ 20 CONTINUE NE )@@G@@00236600 *[@@@@CTSAX0@I@@@@C NF )@@G@@ 00236700 *[@@@@CTSAX'@I@@@@C BACK SUBSNG )@@G@@TITUTION 00236800 NH )@@G@@*[@@@@CTSAY^@I@@@@C NI )@@G@@ 00236900 *[@@@@CTSAYI@I@@@@ K=NSTOP+1 NJ )@@G@@ 00237000 *[@@@@CTSAYSNK )@@G@@@I@@@@ DO 50 I=2,NSTOP NL )@@G@@ 00237100 *[@@@@CTSAY+@I@@@@ K=K-1 NM )@@G@@ 00237200 *[@@@@CTSAY?@I@@@@ NN )@@G@@IO=NODPLC(IORDER+K) 002373NO )@@G@@00 *[@@@@CTSAY6@I@@@@ JSTART=NODPLC(IUR+K) NP )@@G@@ 00237400 *[@@@@CTSAZ@@I@@@@ JSTOP=NODPLCNQ )@@G@@(IUR+K+1)-1 00237500 *[@@@@NR )@@G@@CTSAZE@I@@@@ IF (JSTART.GT.JSTOP) GO TO 40 NS )@@G@@ 00237600 *[@@@@CTSAZO@I@@@@ DO 30 J=JSTART,JSTOP NT )@@G@@ 00237700 *[@@@@CTSAZY@I@@@@NU )@@G@@ JO=NODPLC(IUC+J) NV )@@G@@00237800 *[@@@@CTSAZ*@I@@@@ JO=NODPLC(IORDER+JO) NW )@@G@@ 00237900 *[@@@@CTSAZ2@I@@@@ VALUE(NX )@@G@@LVN+IO)=VALUE(LVN+IO)-VALUE(LYU+J)*VALUE(LVN+JO) 00238000 NY )@@G@@*[@@@@CTSAZ/@I@@@@ 30 CONTINUE NZ )@@G@@ 00238100 *[@@@@CTSA)A@I@@@@ 40 VALUE(LVN+IO)=VALUOA )@@G@@E(LVN+IO)/VALUE(LYNL+IO) 00238200 *[@@@@CTSA)KOB )@@G@@@I@@@@ 50 CONTINUE OC )@@G@@ 00238300 *[@@@@CTSA)U@I@@@@ RETURN OD )@@G@@ 00238400 *[@@@@CTSA)=@I@@@@ OE )@@G@@END 002385OF )@@G@@00 ___AK3A83A@0^@)^@)*[S@@@*SDFF**[@@@@CTS@@E@ @@@# FUNCTION NXTOG )@@G@@CHR(/INT/) *[@@@@CTS@@O@[@@@#C *[@@@@CTS@@Y@G@@@#C THIS ROUTINEOH )@@G@@ ADVANCES THE CURRENT LINE SCAN POSITION BY ONE COLUMN*[@@@@CTS@@*@F@@@#OI )@@G@@C AND CHECKS WHETHER OR NOT THE NEXT CHARACTER IS A DELIMITER. *[@@@@OJ )@@G@@CTS@@2@[@@@#C *[@@@@CTS@@/@A@@@# IMPLICIT REAL*8 (A-H,O-Z) OK )@@G@@@ @@@B INCLUDE F.LINE,LIST *[@@@@CTS@[A@E@B@# COMMON /LINEOL )@@G@@/ ACHAR,AFIELD(15),OLDLIN(15),KNTRC,KNTLIM*[@@@@CTS@[K@[@@@#C *[@@@@OM )@@G@@CTS@[U@ @A@#C DIMENSION ADELIM(5) @ @@@A DIMENSION ADELIM(5ON )@@G@@) @B@^@# CHARACTER ACHAR*8,ADELIM*1(5) @C@A@^ CHARACOO )@@G@@TER ACHAR*8,ADELIM*1(5) ,ABLNK*8 *[@@@@CTS@[=@C@@@# DATA ADELIM OP )@@G@@/ 1H , 1H,, 1H=, 1H(, 1H) / *[@@@@CTS@[,@^@@@# DATA ABLNK / 1H /OQ )@@G@@*[@@@@CTS@[8@[@@@#C @#@@@A ACHAR=ABLNK *[@@@@CTS@]]@^@@@# OR )@@G@@KNTRC=KNTRC+1 *[@@@@CTS@]G@A@@@# IF (KNTRC.GT.KNTLIM) GO TO 30 OS )@@G@@*[@@@@CTS@]Q@B@@@# CALL MOVE(ACHAR,1,AFIELD,KNTRC,1) *[@@@@CTS@])OT )@@G@@@#@@@# DO 10 I=1,5 *[@@@@CTS@]%@D@A@# IF (SUBSTR(ACHAR,1,1).EQOU )@@G@@.ADELIM(I)) GO TO 20 @B@@@A IF (ACHAR.EQ.ADELIM(I)) GO TO 20 OV )@@G@@*[@@@@CTS@]4@#@@@# 10 CONTINUE *[@@@@CTS@]"@[@@@#C *[@@@@CTS@#COW )@@G@@@#@@@#C NON-DELIMITER *[@@@@CTS@#M@[@@@#C *[@@@@CTS@#W@#@@@# OX )@@G@@NXTCHR=1 *[@@@@CTS@#&@]@@@# RETURN*[@@@@CTS@#0@[@@@#C *[@@@@OY )@@G@@CTS@#'@]@@@#C DELIMITER*[@@@@CTS@^^@[@@@#C *[@@@@CTS@^I@#@@@# 20 OZ )@@G@@NXTCHR=0 *[@@@@CTS@^S@]@@@# RETURN*[@@@@CTS@^+@[@@@#C *[@@@@PA )@@G@@CTS@^?@#@@@#C END-OF-LINE *[@@@@CTS@^6@[@@@#C *[@@@@CTS@ @@#@@@#PB )@@G@@ 30 NXTCHR=-1 *[@@@@CTS@ E@#@@@# ACHAR=ABLNK *[@@@@CTS@ O@]@@@#PC )@@G@@ RETURN*[@@@@CTS@ Y@]@@@# END ___^@)*[S@@@*SDFF**[@@@@CTS@@EPD )@@G@@@^@@@@ SUBROUTINE LNKREF *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@E@@@@PE )@@G@@C THIS ROUTINE RESOLVES ALL UNSATISFIED NAME REFERENCES.*[@@@@CTS@@*PF )@@G@@@[@@@@C *[@@@@CTS@@2@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@#PG )@@G@@ INCLUDE F.TABINF,LIST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@#PH )@@G@@ INCLUDE F.FLAGS,LIST @ @@@# INCLUDE F.BLANK,LIST @^@#@]PI )@@G@@@ADD,P *SPICE.LNKREFD *[@@@@CTS@@/@G@]@@ COMMON /TABINF/ IELMNT,IPJ )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[A@G@]@@ 1 ISEPK )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[KPL )@@G@@@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFPM )@@G@@,ISR, *[@@@@CTS@[U@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWPN )@@G@@AP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,PO )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[,@#@]@@ 5 LOUPP )@@G@@TPT, *[@@@@CTS@[8@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACIPQ )@@G@@NS,LLVNIM, *[@@@@CTS@]]@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLPR )@@G@@X2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]G@A@]@@ 8 LLD0,LLD1,LLTD,PS )@@G@@LLOUTP,LDIAG*[@@@@CTS@]Q@G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50PT )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@])@C@]@@ 1 NUT,NLT,NXTRM,NPU )@@G@@DIST,NTLIN,IBR,NUMVS *[@@@@CTS@]%@G@]@@ COMMON /FLAGS/ IPRNTA,IPPV )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@]4@F@]@@ 1 LVLPW )@@G@@COD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@]"@ @]@@PX )@@G@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#C@^@]@@ INTEGER NODPLC(64)PY )@@G@@*[@@@@CTS@#M@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@#W@C@]@@ PZ )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@QA )@@G@@CTS@#0@^@@@@C MUTUAL INDUCTORS *[@@@@CTS@#'@[@@@@C *[@@@@CTS@^^QB )@@G@@@^@@@@ LOC=LOCATE(4) *[@@@@CTS@^I@ @@@@ 100 IF (LOC.EQ.0) GO TQC )@@G@@O 200 *[@@@@CTS@^S@^@@@@ IREF=NODPLC(LOC+2)*[@@@@CTS@^V@ @[@@ QD )@@G@@VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@^)@B@[@@ CALL FNDNAM(VALF,LOC-1,LQE )@@G@@OC+2,3) *[@@@@CTS@^+@D@[@@C CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1QF )@@G@@,LOC+2,3) @D@@@[ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+2,3) QG )@@G@@*[@@@@CTS@^?@^@@@@ IREF=NODPLC(LOC+3)*[@@@@CTS@^,@ @[@@ VALF=VQH )@@G@@ALUE(IUNSAT+IREF) *[@@@@CTS@^0@B@[@@ CALL FNDNAM(VALF,LOC-1,LOC+3,3QI )@@G@@) *[@@@@CTS@^6@D@[@@C CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+3QJ )@@G@@,3) @D@@@[ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+3,3) *[@@@@QK )@@G@@CTS@ @@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@ E@#@@@@ GO TO 100 QL )@@G@@*[@@@@CTS@ O@[@@@@C *[@@@@CTS@ Y@A@@@@C CURRENT-CONTROLLED CURRENT QM )@@G@@SOURCE*[@@@@CTS@ *@[@@@@C *[@@@@CTS@ 2@^@@@@ 200 LOC=LOCATE(7) QN )@@G@@*[@@@@CTS@ /@ @@@@ 210 IF (LOC.EQ.0) GO TO 300 *[@@@@CTS@AA@^@@@@ QO )@@G@@NUMP=NODPLC(LOC+4)*[@@@@CTS@AK@^@@@@ LOCP=NODPLC(LOC+6)*[@@@@CTS@AUQP )@@G@@@^@@@@ DO 220 I=1,NUMP *[@@@@CTS@A=@ @@@@ IREF=NODPLC(LOCP+IQQ )@@G@@) *[@@@@CTS@A&@ @[@@ VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@A*@B@[@@QR )@@G@@ CALL FNDNAM(VALF,LOC-1,LOCP+I,9) *[@@@@CTS@A,@D@[@@C CALL FQS )@@G@@NDNAM(VALUE(IUNSAT+IREF),LOC-1,LOCP+I,9) @D@@@[ CALL FNDNAM(VALUE(QT )@@G@@IUNSAT+IREF),LOC-1,LOCP+I,9) *[@@@@CTS@A8@#@@@@ 220 CONTINUE *[@@@@QU )@@G@@CTS@B]@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@BG@#@@@@ GO TO 210 QV )@@G@@*[@@@@CTS@BQ@[@@@@C *[@@@@CTS@B)@B@@@@C CURRENT-CONTROLLED VOLTAGE QW )@@G@@SOURCES *[@@@@CTS@B%@[@@@@C *[@@@@CTS@B4@^@@@@ 300 LOC=LOCATE(8QX )@@G@@) *[@@@@CTS@B"@ @@@@ 310 IF (LOC.EQ.0) GO TO 400 *[@@@@CTS@CC@^@@@@QY )@@G@@ NUMP=NODPLC(LOC+4)*[@@@@CTS@CM@^@@@@ LOCP=NODPLC(LOC+7)*[@@@@QZ )@@G@@CTS@CW@^@@@@ DO 320 I=1,NUMP *[@@@@CTS@C&@ @@@@ IREF=NODPLC(RA )@@G@@LOCP+I) *[@@@@CTS@C*@ @[@@ VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@C%RB )@@G@@@B@[@@ CALL FNDNAM(VALF,LOC-1,LOCP+I,9) *[@@@@CTS@C0@D@[@@C RC )@@G@@CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOCP+I,9) @D@@@[ CALL FNDNAM(RD )@@G@@VALUE(IUNSAT+IREF),LOC-1,LOCP+I,9) *[@@@@CTS@C'@#@@@@ 320 CONTINUE RE )@@G@@*[@@@@CTS@D^@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@DI@#@@@@ GO TO RF )@@G@@310 *[@@@@CTS@DS@[@@@@C *[@@@@CTS@D+@]@@@@C DIODES *[@@@@CTS@D?RG )@@G@@@[@@@@C *[@@@@CTS@D6@^@@@@ 400 LOC=LOCATE(11) *[@@@@CTS@E@@ @@@@RH )@@G@@ 410 IF (LOC.EQ.0) GO TO 500 *[@@@@CTS@EE@^@@@@ IREF=NODPLC(LOC+5)RI )@@G@@*[@@@@CTS@EG@ @[@@ VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@EI@B@[@@ RJ )@@G@@CALL FNDNAM(VALF,LOC-1,LOC+5,21) *[@@@@CTS@EO@D@[@@C CALL FNDNAM(RK )@@G@@VALUE(IUNSAT+IREF),LOC-1,LOC+5,21) @D@@@[ CALL FNDNAM(VALUE(IUNSATRL )@@G@@+IREF),LOC-1,LOC+5,21) *[@@@@CTS@EY@^@@@@ LOC=NODPLC(LOC) *[@@@@RM )@@G@@CTS@E*@#@@@@ GO TO 410 *[@@@@CTS@E2@[@@@@C *[@@@@CTS@E/@]@@@@RN )@@G@@C BJTS *[@@@@CTS@FA@[@@@@C *[@@@@CTS@FK@^@@@@ 500 LOC=LOCATE(1RO )@@G@@2) *[@@@@CTS@FU@ @@@@ 510 IF (LOC.EQ.0) GO TO 600 *[@@@@CTS@F=@^@@@@RP )@@G@@ IREF=NODPLC(LOC+8)*[@@@@CTS@F*@ @[@@ VALF=VALUE(IUNSAT+IREF) RQ )@@G@@*[@@@@CTS@F%@B@[@@ CALL FNDNAM(VALF,LOC-1,LOC+8,22) *[@@@@CTS@F,RR )@@G@@@D@[@@C CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+8,22) @D@@@[ RS )@@G@@CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+8,22) *[@@@@CTS@F8@^@@@@ RT )@@G@@LOC=NODPLC(LOC) *[@@@@CTS@G]@#@@@@ GO TO 510 *[@@@@CTS@GG@[@@@@RU )@@G@@C *[@@@@CTS@GQ@]@@@@C JFETS *[@@@@CTS@G)@[@@@@C *[@@@@CTS@G%RV )@@G@@@^@@@@ 600 LOC=LOCATE(13) *[@@@@CTS@G4@ @@@@ 610 IF (LOC.EQ.0) GO TRW )@@G@@O 700 *[@@@@CTS@G"@^@@@@ IREF=NODPLC(LOC+7)*[@@@@CTS@H@@ @[@@ RX )@@G@@VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@H]@B@[@@ CALL FNDNAM(VALF,LOC-1,LRY )@@G@@OC+7,23) *[@@@@CTS@HC@D@[@@C CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1RZ )@@G@@,LOC+7,23) @D@@@[ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+7,23) SA )@@G@@*[@@@@CTS@HM@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@HW@#@@@@ GO TO SB )@@G@@610 *[@@@@CTS@H&@[@@@@C *[@@@@CTS@H0@]@@@@C MOSFETS *[@@@@CTS@H'SC )@@G@@@[@@@@C *[@@@@CTS@I^@^@@@@ 700 LOC=LOCATE(14) *[@@@@CTS@II@ @@@@SD )@@G@@ 710 IF (LOC.EQ.0) GO TO 1000*[@@@@CTS@IS@^@@@@ IREF=NODPLC(LOC+8)SE )@@G@@*[@@@@CTS@IU@ @[@@ VALF=VALUE(IUNSAT+IREF) *[@@@@CTS@IW@B@[@@ SF )@@G@@CALL FNDNAM(VALF,LOC-1,LOC+8,24) *[@@@@CTS@I+@D@[@@C CALL FNDNAM(SG )@@G@@VALUE(IUNSAT+IREF),LOC-1,LOC+8,24) @D@@@[ CALL FNDNAM(VALUE(IUNSATSH )@@G@@+IREF),LOC-1,LOC+8,24) *[@@@@CTS@I?@^@@@@ LOC=NODPLC(LOC) *[@@@@SI )@@G@@CTS@I6@#@@@@ GO TO 710 *[@@@@CTS@J@@[@@@@C *[@@@@CTS@JE@]@@@@SJ )@@G@@C FINISHED *[@@@@CTS@JO@[@@@@C *[@@@@CTS@JY@ @@@@ 1000 CALL CLRMEM(SK )@@G@@LUNSAT) *[@@@@CTS@J*@]@@@@ RETURN*[@@@@CTS@J2@]@@@@ END SL )@@G@@___ S8 )2AK(*[@@@@CTS@F8@A@@@@^@)^@)^@)D-JCS.D1JC-KD-# [GD9# C)^@)*[@@@@SM )@@G@@CTS@G]@^@@@@^@)^@)^@)C9J^[OD8)A*1A@)*[@@@@CTS@GG@[@@@@CS)^@)*[@@@@CTS@GQSN )@@G@@@#@@@@CS)^[EC1 E-N^@)^@)*[S@@@*SDFF**[@@@@CTS@@E@A@@@@ SUBROUTINE SSO )@@G@@UBNAM(/LOCE/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS RSP )@@G@@OUTINE CONSTRUCTS THE NAMES OF ELEMENTS ADDED AS A RESULT OF*[@@@@CTS@@*SQ )@@G@@@F@@@@C SUBCIRCUIT EXPANSION. THE FULL ELEMENT NAMES ARE OF THE FORM SR )@@G@@*[@@@@CTS@@2@C@@@@C XA.XB.XC.XD. --- .XN.NAME *[@@@@SS )@@G@@CTS@@/@G@@@@C WHERE #NAME# IS THE NOMINAL ELEMENT NAME, AND THE #X#*S DEST )@@G@@NOTE THE *[@@@@CTS@[A@G@@@@C SEQUENCE OF SUBCIRCUIT CALLS (FROM TOP OSU )@@G@@R CIRCUIT LEVEL DOWN THROUGH *[@@@@CTS@[K@G@@@@C NESTED SUBCIRCUIT CALLSV )@@G@@S) WHICH CAUSED THE PARTICULAR ELEMENT TO BE *[@@@@CTS@[U@G@@@@C ADDESW )@@G@@D. AT PRESENT, SPICE RESTRICTS ALL ELEMENT NAMES TO BE 8 CHARAC- *[@@@@SX )@@G@@CTS@[=@G@@@@C TERS OR LESS. THEREFORE, THE NAME USED CONSISTS OF THE RISY )@@G@@GHTMOST 8 *[@@@@CTS@[,@F@@@@C CHARACTERS OF THE FULL ELEMENT NAME, WITSZ )@@G@@H THE LEFTMOST CHARACTER*[@@@@CTS@[8@G@@@@C REPLACED BY AN ASTERISK (#*#TA )@@G@@) IF THE FULL ELEMENT NAME IS LONGER THAN *[@@@@CTS@]]@#@@@@C 8 CHARACTETB )@@G@@RS. *[@@@@CTS@]G@[@@@@C *[@@@@CTS@]Q@A@@@@ IMPLICIT REAL*8 (ATC )@@G@@-H,O-Z) @ @@@] INCLUDE F.BLANK,LIST @^@]@[@ADD,P *SPICE.SUBNTD )@@G@@AMD *[@@@@CTS@])@ @[@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@]%@^@]@@TE )@@G@@ INTEGER NODPLC(64)*[@@@@CTS@]4@ @]@@ COMPLEX*16 CVALUE(32) TF )@@G@@*[@@@@CTS@]"@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@TG )@@G@@CTS@#C@[@@@@C *[@@@@CTS@#M@[@@@@C *[@@@@CTS@#W@C@@@@ DATA ATH )@@G@@BLANK, APER, ASTK / 1H , 1H., 1H* / *[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0TI )@@G@@@A@@@@C CONSTRUCT SUBCIRCUIT ELEMENT NAME*[@@@@CTS@#'@[@@@@C *[@@@@TJ )@@G@@CTS@^^@B@@@@ IF (NODPLC(LOCE-1).EQ.0) GO TO 100 *[@@@@CTS@^I@ @@@@TK )@@G@@ LOCVE=NODPLC(LOCE+1) *[@@@@CTS@^S@#@@@@ LOC=LOCE *[@@@@TL )@@G@@CTS@^+@#@@@@ NCHAR=9 *[@@@@CTS@^?@#@@@@ SNAME=ABLANK*[@@@@TM )@@G@@CTS@^6@#@@@@ ACHAR=ABLANK*[@@@@CTS@ @@^@@@@ 10 LOCV=NODPLC(LOC+1)TN )@@G@@*[@@@@CTS@ E@^@@@@ ELNAME=VALUE(LOCV)*[@@@@CTS@ O@^@@@@ DO 20 TO )@@G@@ICHAR=1,8 *[@@@@CTS@ Y@B@@@@ CALL MOVE(ACHAR,1,ELNAME,9-ICHAR,1) TP )@@G@@*[@@@@CTS@ *@A@@@@ IF (ACHAR.EQ.ABLANK) GO TO 20 *[@@@@CTS@ 2@ @@@@TQ )@@G@@ IF (NCHAR.EQ.1) GO TO 40*[@@@@CTS@ /@^@@@@ NCHAR=NCHAR-1 TR )@@G@@*[@@@@CTS@AA@B@@@@ CALL MOVE(SNAME,NCHAR,ACHAR,1,1) *[@@@@CTS@AKTS )@@G@@@#@@@@ 20 CONTINUE *[@@@@CTS@AU@^@@@@ 30 LOC=NODPLC(LOC-1) *[@@@@TT )@@G@@CTS@A=@ @@@@ IF (LOC.EQ.0) GO TO 60 *[@@@@CTS@A,@ @@@@ IF (NCTU )@@G@@HAR.EQ.1) GO TO 40*[@@@@CTS@A8@^@@@@ NCHAR=NCHAR-1 *[@@@@CTS@B]TV )@@G@@@B@@@@ CALL MOVE(SNAME,NCHAR,APER,1,1) *[@@@@CTS@BG@#@@@@ TW )@@G@@GO TO 10 *[@@@@CTS@BQ@[@@@@C *[@@@@CTS@B)@E@@@@C NAME IS LONGER TX )@@G@@THAN 8 CHARACTERS: FLAG WITH ASTERISK *[@@@@CTS@B%@[@@@@C *[@@@@TY )@@G@@CTS@B4@A@@@@ 40 CALL MOVE(SNAME,1,ASTK,1,1) *[@@@@CTS@B"@#@@@@ TZ )@@G@@GO TO 70 *[@@@@CTS@CC@[@@@@C *[@@@@CTS@CM@C@@@@C LEFT-JUSTIFY ANUA )@@G@@D STORE THE CONSTRUCTED NAME *[@@@@CTS@CW@[@@@@C *[@@@@CTS@C&@ @@@@UB )@@G@@ 60 IF (NCHAR.EQ.1) GO TO 70*[@@@@CTS@C0@C@@@@ CALL MOVE(SNAME,1,UC )@@G@@SNAME,NCHAR,9-NCHAR) *[@@@@CTS@C'@C@@@@ CALL MOVE(SNAME,10-NCHARUD )@@G@@,ABLANK,1,NCHAR-1)*[@@@@CTS@D^@^@@@@ 70 VALUE(LOCVE)=SNAME*[@@@@CTS@DIUE )@@G@@@[@@@@C *[@@@@CTS@DS@]@@@@C FINISHED *[@@@@CTS@D+@[@@@@C *[@@@@UF )@@G@@CTS@D?@]@@@@ 100 RETURN*[@@@@CTS@D6@]@@@@ END ___CT[D-G^[HD9QC**UG )@@G@@ETICDHC*?D1#D[[EK?CDKC(M )1 )1 C)^@)*[@@@@CTS@BG@^@@@@^@)^@)^@)C9J^[OD8)UH )@@G@@AC0^@)*[@@@@CTS@BQ@[@@@@CS)^@)*[@@@@CTS@B)@J@@@@CS)^[ICDHC*)DDN^[GD9IC9 UI )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@B@@@@ SUBROUTINE RESERV (/NODE1/,/NODE2/) UJ )@@G@@*[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE RECORDS THEUK )@@G@@ FACT THAT THE (NODE1, NODE2) ELEMENT OF *[@@@@CTS@@*@D@@@@C THE CIRCUIUL )@@G@@T EQUATION COEFFICIENT MATRIX IS NONZERO. *[@@@@CTS@@2@[@@@@C *[@@@@UM )@@G@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@] INCLUDE F.TAUN )@@G@@BINF,LIST @ @@@] INCLUDE F.FLAGS,LIST @ @@@] INCLUDE F.BLUO )@@G@@ANK,LIST @^@]@[@ADD,P *SPICE.RESERVD *[@@@@CTS@[A@G@[@@ COMMONUP )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[KUQ )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEUR )@@G@@, *[@@@@CTS@[U@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,US )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQUT )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@[@@ 4 LX0UU )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8UV )@@G@@@#@[@@ 5 LOUTPT, *[@@@@CTS@]]@E@[@@ 6 LUNSAT,LTEMPS,LFIELD,UW )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@[@@ 7 LLX0,LLVN,LLYNLUX )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@[@@ 8UY )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@[@@ COMMON /FLAGS/ IPRUZ )@@G@@NTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@]%@F@[@@ 1VA )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@]4VB )@@G@@@ @[@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@]"@^@[@@ INTEGER NODPVC )@@G@@LC(64)*[@@@@CTS@#C@ @[@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@#M@C@[@@VD )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#W@[@@@@C VE )@@G@@*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@ @@@@ IF (NOGO.NE.0) GO TO 300VF )@@G@@*[@@@@CTS@#'@^@@@@C... TEST FOR GROUND *[@@@@CTS@^^@A@@@@ IF (NOVG )@@G@@DE1.EQ.1) GO TO 300 *[@@@@CTS@^I@A@@@@ IF (NODE2.EQ.1) GO TO 30VH )@@G@@0 *[@@@@CTS@^S@[@@@@C *[@@@@CTS@^+@B@@@@C TEST FOR (NODE1,NODE2VI )@@G@@) MATRIX ELEMENT *[@@@@CTS@^?@[@@@@C *[@@@@CTS@^6@^@@@@ LOC=ISVJ )@@G@@R+NODE1 *[@@@@CTS@ @@B@@@@ 100 IF (NODPLC(LOC).EQ.0) GO TO 110 VK )@@G@@*[@@@@CTS@ E@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@ O@C@@@@ IF (NOVL )@@G@@DPLC(LOC+1).EQ.NODE2) GO TO 300 *[@@@@CTS@ Y@#@@@@ GO TO 100 VM )@@G@@*[@@@@CTS@ *@[@@@@C *[@@@@CTS@ 2@B@@@@C RESERVE (NODE1,NODE2) MATRIVN )@@G@@X ELEMENT *[@@@@CTS@ /@[@@@@C *[@@@@CTS@AA@D@@@@ 110 NODPLC(NUMOFVO )@@G@@F+NODE1)=NODPLC(NUMOFF+NODE1)+1 *[@@@@CTS@AK@D@@@@ NODPLC(NMOFFVP )@@G@@C+NODE2)=NODPLC(NMOFFC+NODE2)+1 *[@@@@CTS@AU@A@@@@ CALL SIZMEM(VQ )@@G@@NUMOFF,ISIZE) *[@@@@CTS@A=@ @@@@ NEWLOC=NUMOFF+ISIZE+1 *[@@@@VR )@@G@@CTS@A,@^@@@@ NODPLC(LOC)=NEWLOC*[@@@@CTS@A8@ @@@@ CALL EXTMEM(VS )@@G@@NUMOFF,2) *[@@@@CTS@B]@^@@@@ NODPLC(NEWLOC)=0 *[@@@@CTS@BG@ @@@@VT )@@G@@ NODPLC(NEWLOC+1)=NODE2 *[@@@@CTS@BQ@[@@@@C *[@@@@CTS@B)@#@@@@VU )@@G@@C MARK DIAGONAL *[@@@@CTS@B%@[@@@@C *[@@@@CTS@B4@A@@@@ IF (NOVV )@@G@@DE1.NE.NODE2) GO TO 300 *[@@@@CTS@B"@ @@@@ NODPLC(NDIAG+NODE1)=1 VW )@@G@@*[@@@@CTS@CC@[@@@@C *[@@@@CTS@CM@]@@@@C FINISHED *[@@@@CTS@CW@[@@@@VX )@@G@@C *[@@@@CTS@C&@]@@@@ 300 RETURN*[@@@@CTS@C0@]@@@@ END ___D1HVY )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@B@@@@ FUNCTION INDEX(/NODE1/,/NODE2/) VZ )@@G@@*[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE MAPS A (ROWWA )@@G@@, COLUMN) MATRIX TERM SPECIFICATION INTO *[@@@@CTS@@*@G@@@@C THE OFFSETWB )@@G@@ FROM THE ORIGIN OF THE MATRIX STORAGE AT WHICH THE TERM IS *[@@@@CTS@@2WC )@@G@@@^@@@@C ACTUALLY LOCATED. *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@WD )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LIST WE )@@G@@@ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.BLANK,LIST WF )@@G@@@^@#@]@ADD,P *SPICE.INDEXD *[@@@@CTS@[K@G@]@@ COMMON /TABINF/ IEWG )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[U@G@]@@ 1WH )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@WI )@@G@@CTS@[=@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,WJ )@@G@@NUMOFF,ISR, *[@@@@CTS@[,@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIWK )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[8@G@]@@ 4 LX0,LVN,LYNL,LYWL )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@]]@#@]@@ 5WM )@@G@@ LOUTPT, *[@@@@CTS@]G@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKWN )@@G@@P,LACINS,LLVNIM, *[@@@@CTS@]Q@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LWO )@@G@@LX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@])@A@]@@ 8 LLD0,LLD1WP )@@G@@,LLTD,LLOUTP,LDIAG*[@@@@CTS@]%@G@]@@ COMMON /CIRDAT/ LOCATE(50),JELWQ )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]4@C@]@@ 1 NUT,NLT,NWR )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]"@ @]@@ COMMON /BLANK/ VALWS )@@G@@UE(64)*[@@@@CTS@#C@^@]@@ INTEGER NODPLC(64)*[@@@@CTS@#M@ @]@@ WT )@@G@@COMPLEX*16 CVALUE(32) *[@@@@CTS@#W@C@]@@ EQUIVALENCE (VALUE(1),NOWU )@@G@@DPLC(1),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@^@@@@C CHECK FORWV )@@G@@ GROUND *[@@@@CTS@#'@[@@@@C *[@@@@CTS@^^@A@@@@ IF (NODE1.EQWW )@@G@@.1) GO TO 400 *[@@@@CTS@^I@A@@@@ IF (NODE2.EQ.1) GO TO 400 WX )@@G@@*[@@@@CTS@^S@[@@@@C *[@@@@CTS@^+@ @@@@ N1=NODPLC(IEQUA+NODE1) WY )@@G@@*[@@@@CTS@^?@ @@@@ N1=NODPLC(JMNODE+N1) *[@@@@CTS@^6@ @@@@ WZ )@@G@@N2=NODPLC(JMNODE+NODE2) *[@@@@CTS@ @@[@@@@C *[@@@@CTS@ E@[@@@@C XA )@@G@@*[@@@@CTS@ O@ @@@@ IF (N1-N2) 100,200,300 *[@@@@CTS@ Y@[@@@@C XB )@@G@@*[@@@@CTS@ *@#@@@@C UPPER TRIANGLE *[@@@@CTS@ 2@[@@@@C *[@@@@CTS@ /XC )@@G@@@^@@@@ 100 NS=NODPLC(IUR+N1) *[@@@@CTS@AA@ @@@@ NE=NODPLC(IUR+N1+1XD )@@G@@) *[@@@@CTS@AK@ @@@@ 110 IF (NS.GE.NE) GO TO 400 *[@@@@CTS@AU@B@@@@XE )@@G@@ IF (NODPLC(IUC+NS).EQ.N2) GO TO 120 *[@@@@CTS@A=@#@@@@ NS=NS+XF )@@G@@1 *[@@@@CTS@A,@#@@@@ GO TO 110 *[@@@@CTS@A8@^@@@@ 120 INDEX=XG )@@G@@NSTOP+NS *[@@@@CTS@B]@#@@@@ GO TO 500 *[@@@@CTS@BG@[@@@@C XH )@@G@@*[@@@@CTS@BQ@]@@@@C DIAGONAL *[@@@@CTS@B)@[@@@@C *[@@@@CTS@B%@#@@@@XI )@@G@@ 200 INDEX=NODE2 *[@@@@CTS@B4@#@@@@ GO TO 500 *[@@@@CTS@B"@[@@@@XJ )@@G@@C *[@@@@CTS@CC@#@@@@C LOWER TRIANGLE *[@@@@CTS@CM@[@@@@C *[@@@@XK )@@G@@CTS@CW@^@@@@ 300 NS=NODPLC(ILC+N2) *[@@@@CTS@C&@ @@@@ NE=NODPLC(ILXL )@@G@@C+N2+1) *[@@@@CTS@C0@ @@@@ 310 IF (NS.GE.NE) GO TO 400 *[@@@@CTS@C'XM )@@G@@@B@@@@ IF (NODPLC(ILR+NS).EQ.N1) GO TO 320 *[@@@@CTS@D^@#@@@@ XN )@@G@@NS=NS+1 *[@@@@CTS@DI@#@@@@ GO TO 310 *[@@@@CTS@DS@^@@@@ 320 XO )@@G@@INDEX=NSTOP+NUT+NS*[@@@@CTS@D+@#@@@@ GO TO 500 *[@@@@CTS@D?@[@@@@XP )@@G@@C *[@@@@CTS@D6@#@@@@C UNUSED LOCATION*[@@@@CTS@E@@[@@@@C *[@@@@XQ )@@G@@CTS@EE@#@@@@ 400 INDEX=1 *[@@@@CTS@EO@[@@@@C *[@@@@CTS@EY@]@@@@XR )@@G@@C FINISHED *[@@@@CTS@E*@[@@@@C *[@@@@CTS@E2@]@@@@ 500 RETURN*[@@@@XS )@@G@@CTS@E/@]@@@@ END ___^[GD9RC(M^[OELDCDIC9G*[S@@@*SDFF**[@@@@CTS@@EXT )@@G@@@^@@@@ SUBROUTINE COMCOF *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@XU )@@G@@C THIS ROUTINE CALCULATES THE TIMESTEP-DEPENDENT TERMS USED IN THE XV )@@G@@*[@@@@CTS@@*@^@@@@C NUMERICAL INTEGRATION.*[@@@@CTS@@2@[@@@@C *[@@@@XW )@@G@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TAXX )@@G@@BINF,LIST @ @@@# INCLUDE F.STATUS,LIST @ @@@# INCLUDE F.FLXY )@@G@@AGS,LIST @ @@@# INCLUDE F.BLANK,LIST @^@#@]@ADD,P *SPICE.COMCXZ )@@G@@OFD *[@@@@CTS@[A@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAYA )@@G@@T,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[K@G@]@@ 1 ISENS,NSENS,IFOUR,NFOYB )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[U@G@]@@ 2 JUNYC )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=YD )@@G@@@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVYE )@@G@@NIM1, *[@@@@CTS@[,@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXYF )@@G@@5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8@#@]@@ 5 LOUTPT, *[@@@@CTS@]]YG )@@G@@@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@YH )@@G@@CTS@]G@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,YI )@@G@@LLX6,LLX7, *[@@@@CTS@]Q@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@YJ )@@G@@CTS@])@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNYK )@@G@@I,EGFET, *[@@@@CTS@]%@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOYL )@@G@@RD,MAXORD,NONCON,ITERNO,*[@@@@CTS@]4@^@]@@ 2 ITEMNO,NOSOLV *[@@@@YM )@@G@@CTS@]"@G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTYN )@@G@@IM,LIMPTS, *[@@@@CTS@#C@F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4YO )@@G@@,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@#M@ @]@@ COMMON /BLANK/ VALUE(64)YP )@@G@@*[@@@@CTS@#W@^@]@@ INTEGER NODPLC(64)*[@@@@CTS@#&@ @]@@ COMPLEYQ )@@G@@X*16 CVALUE(32) *[@@@@CTS@#0@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1YR )@@G@@),CVALUE(1))*[@@@@CTS@#'@ @@@@ DIMENSION GMAT(7,7) *[@@@@CTS@^^YS )@@G@@@[@@@@C *[@@@@CTS@^I@E@@@@C COMPUTE COEFFICIENTS FOR PARTICULAR INTYT )@@G@@EGRATION METHOD *[@@@@CTS@^S@[@@@@C *[@@@@CTS@^+@ @@@@ IF (MEYU )@@G@@THOD.NE.1) GO TO 5*[@@@@CTS@^?@ @@@@ IF (IORD.EQ.1) GO TO 5 *[@@@@YV )@@G@@CTS@^6@^@@@@C... TRAPEZOIDAL METHOD*[@@@@CTS@ @@^@@@@ AG(1)=2.D0/DYW )@@G@@ELTA *[@@@@CTS@ E@#@@@@ GO TO 200 *[@@@@CTS@ O@[@@@@C *[@@@@YX )@@G@@CTS@ Y@A@@@@C CONSTRUCT GEAR COEFFICIENT MATRIX*[@@@@CTS@ *@[@@@@C YY )@@G@@*[@@@@CTS@ 2@#@@@@ 5 ISTOP=IORD+1*[@@@@CTS@ '@ @[@@ CALL ZERO8(AYZ )@@G@@G,1,ISTOP) *[@@@@CTS@ /@ @[@@C CALL ZERO8(AG,ISTOP) @ @@@[ ZA )@@G@@CALL ZERO8(AG,ISTOP) *[@@@@CTS@AA@#@@@@ AG(2)=-1.D0 *[@@@@CTS@AKZB )@@G@@@^@@@@ DO 10 I=1,ISTOP *[@@@@CTS@AU@^@@@@ GMAT(1,I)=1.D0 ZC )@@G@@*[@@@@CTS@A=@#@@@@ 10 CONTINUE *[@@@@CTS@A,@^@@@@ DO 20 I=2,ISZD )@@G@@TOP *[@@@@CTS@A8@^@@@@ GMAT(I,1)=0.D0 *[@@@@CTS@B]@#@@@@ 20 ZE )@@G@@CONTINUE *[@@@@CTS@BG@#@@@@ ARG=0.D0 *[@@@@CTS@BQ@^@@@@ ZF )@@G@@DO 40 I=2,ISTOP *[@@@@CTS@B)@ @@@@ ARG=ARG+DELOLD(I-1) *[@@@@ZG )@@G@@CTS@B%@#@@@@ ARG1=1.D0 *[@@@@CTS@B4@^@@@@ DO 30 J=2,ISTOP ZH )@@G@@*[@@@@CTS@B"@^@@@@ ARG1=ARG1*ARG *[@@@@CTS@CC@^@@@@ GMAT(JZI )@@G@@,I)=ARG1 *[@@@@CTS@CM@#@@@@ 30 CONTINUE *[@@@@CTS@CW@#@@@@ 40 ZJ )@@G@@CONTINUE *[@@@@CTS@C&@[@@@@C *[@@@@CTS@C0@A@@@@C SOLVE FOR GEAR ZK )@@G@@COEFFICIENTS AG(')*[@@@@CTS@C'@[@@@@C *[@@@@CTS@D^@[@@@@C *[@@@@ZL )@@G@@CTS@DI@^@@@@C LU DECOMPOSITION *[@@@@CTS@DS@[@@@@C *[@@@@CTS@D+ZM )@@G@@@^@@@@ DO 70 I=2,ISTOP *[@@@@CTS@D?@#@@@@ JSTART=I+1 *[@@@@ZN )@@G@@CTS@D6@A@@@@ IF (JSTART.GT.ISTOP) GO TO 70 *[@@@@CTS@E@@ @@@@ ZO )@@G@@DO 60 J=JSTART,ISTOP *[@@@@CTS@EE@A@@@@ GMAT(J,I)=GMAT(J,I)/GMATZP )@@G@@(I,I) *[@@@@CTS@EO@ @@@@ DO 50 K=JSTART,ISTOP *[@@@@CTS@EY@C@@@@ZQ )@@G@@ GMAT(J,K)=GMAT(J,K)-GMAT(J,I)*GMAT(I,K) *[@@@@CTS@E*@#@@@@ 50 ZR )@@G@@CONTINUE *[@@@@CTS@E2@#@@@@ 60 CONTINUE *[@@@@CTS@E/@#@@@@ 70 ZS )@@G@@CONTINUE *[@@@@CTS@FA@[@@@@C *[@@@@CTS@FK@^@@@@C FORWARD SUBSTITZT )@@G@@UTION *[@@@@CTS@FU@[@@@@C *[@@@@CTS@F=@^@@@@ DO 90 I=2,ISTOP ZU )@@G@@*[@@@@CTS@F,@#@@@@ JSTART=I+1 *[@@@@CTS@F8@A@@@@ IF (JSTART.GZV )@@G@@T.ISTOP) GO TO 90 *[@@@@CTS@G]@ @@@@ DO 80 J=JSTART,ISTOP *[@@@@ZW )@@G@@CTS@GG@A@@@@ AG(J)=AG(J)-GMAT(J,I)*AG(I) *[@@@@CTS@GQ@#@@@@ 80 ZX )@@G@@CONTINUE *[@@@@CTS@G)@#@@@@ 90 CONTINUE *[@@@@CTS@G%@[@@@@C ZY )@@G@@*[@@@@CTS@G4@^@@@@C BACKWARD SUBSTITUTION*[@@@@CTS@G"@[@@@@C *[@@@@ZZ )@@G@@CTS@HC@C@@@@ AG(ISTOP)=AG(ISTOP)/GMAT(ISTOP,ISTOP) *[@@@@CTS@HMAA )@@G@@@#@@@@ IR=ISTOP *[@@@@CTS@HW@^@@@@ DO 110 I=2,ISTOP *[@@@@AB )@@G@@CTS@H&@#@@@@ JSTART=IR *[@@@@CTS@H0@#@@@@ IR=IR-1 *[@@@@AC )@@G@@CTS@H'@ @@@@ DO 100 J=JSTART,ISTOP *[@@@@CTS@I^@A@@@@ AG(IR)AD )@@G@@=AG(IR)-GMAT(IR,J)*AG(J)*[@@@@CTS@II@#@@@@ 100 CONTINUE *[@@@@CTS@ISAE )@@G@@@A@@@@ AG(IR)=AG(IR)/GMAT(IR,IR) *[@@@@CTS@I+@#@@@@ 110 CONTINAF )@@G@@UE *[@@@@CTS@I?@[@@@@C *[@@@@CTS@I6@]@@@@C FINISHED *[@@@@CTS@J@AG )@@G@@@[@@@@C *[@@@@CTS@JE@]@@@@ 200 RETURN*[@@@@CTS@JO@]@@@@ END AH )@@G@@___C(MC9 D1#C*)^@)*[@@@@CTS@+I@[@@@@CS)^@)*[@@@@CTS@+S@B@@@@^@)A)5A@)D-JAI )@@G@@CT B(ID9^E[GCS*DDOCT D-H*[S@@@*SDFF**[@@@@CTS@@E@A@@@@ SUBROUTINE TAJ )@@G@@RUNC(/DELNEW/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@F@@@@C THIS RAK )@@G@@OUTINE DETERMINES THE NEW TRANSIENT STEPSIZE BY EITHER*[@@@@CTS@@*@G@@@@AL )@@G@@C CALLING TERR TO ESTIMATE THE LOCAL TRUNCATION ERROR, OR BY CHECKING AM )@@G@@*[@@@@CTS@@2@G@@@@C ON THE NUMBER OF ITERATIONS NEEDED TO CONVERGE AT THAN )@@G@@E LAST TIMEPOINT. *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@ IMPLICAO )@@G@@IT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.CIRDAT,LIST @ @@@^ AP )@@G@@INCLUDE F.STATUS,LIST @ @@@^ INCLUDE F.FLAGS,LIST @ @@@^ AQ )@@G@@INCLUDE F.TRAN,LIST @ @@@^ INCLUDE F.BLANK,LIST @^@^@#@ADD,PAR )@@G@@ *SPICE.TRUNCD *[@@@@CTS@[K@G@#@@ COMMON /CIRDAT/ LOCATE(50),JELAS )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@[U@C@#@@ 1 NUT,NLT,NAT )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@[=@G@#@@ COMMON /STATUS/ OMAU )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@[,@F@#@@ 1AV )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@[8AW )@@G@@@^@#@@ 2 ITEMNO,NOSOLV *[@@@@CTS@]]@G@#@@ COMMON /FLAGS/ IPRAX )@@G@@NTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@]G@F@#@@ 1AY )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@]QAZ )@@G@@@F@#@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG BA )@@G@@*[@@@@CTS@])@ @#@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@]%@^@#@@ BB )@@G@@INTEGER NODPLC(64)*[@@@@CTS@]4@ @#@@ COMPLEX*16 CVALUE(32) *[@@@@BC )@@G@@CTS@]"@C@#@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#CBD )@@G@@@[@@@@C *[@@@@CTS@#M@[@@@@C *[@@@@CTS@#W@ @@@@ IF (LVLTIM.NBE )@@G@@E.0) GO TO 5*[@@@@CTS@#&@A@@@@ DELNEW=DMIN1(TSTEP,DELMAX) *[@@@@BF )@@G@@CTS@#0@]@@@@ RETURN*[@@@@CTS@#'@A@@@@ 5 IF (LVLTIM.NE.1) GO TO 1BG )@@G@@0 *[@@@@CTS@^^@#@@@@ DELNEW=DELTA*[@@@@CTS@^I@A@@@@ IF (ITBH )@@G@@ERNO.GT.ITL3) RETURN *[@@@@CTS@^S@C@@@@ DELNEW=DMIN1(2.D0*DELTA,BI )@@G@@TSTEP,DELMAX) *[@@@@CTS@^+@]@@@@ RETURN*[@@@@CTS@^?@[@@@@C BJ )@@G@@*[@@@@CTS@^6@#@@@@C CAPACITORS *[@@@@CTS@ @@[@@@@C *[@@@@CTS@ EBK )@@G@@@#@@@@ 10 DELNEW=1.D20*[@@@@CTS@ O@^@@@@ LOC=LOCATE(2) *[@@@@BL )@@G@@CTS@ Y@ @@@@ 20 IF (LOC.EQ.0) GO TO 30 *[@@@@CTS@ *@^@@@@ LOCT=NBM )@@G@@ODPLC(LOC+8)*[@@@@CTS@ 2@ @@@@ CALL TERR(LOCT,DELNEW) *[@@@@CTS@ /BN )@@G@@@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@AA@#@@@@ GO TO 20 *[@@@@BO )@@G@@CTS@AK@[@@@@C *[@@@@CTS@AU@]@@@@C INDUCTORS*[@@@@CTS@A=@[@@@@C BP )@@G@@*[@@@@CTS@A,@^@@@@ 30 LOC=LOCATE(3) *[@@@@CTS@A8@ @@@@ 40 IF (LOBQ )@@G@@C.EQ.0) GO TO 50 *[@@@@CTS@B]@ @]@@ LOCT=NODPLC(LOC+11) @ @@@]BR )@@G@@ LOCT=NODPLC(LOC+10) *[@@@@CTS@BG@ @@@@ CALL TERR(LOCT,DELBS )@@G@@NEW) *[@@@@CTS@BQ@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@B)@#@@@@ BT )@@G@@GO TO 40 *[@@@@CTS@B%@[@@@@C *[@@@@CTS@B4@]@@@@C DIODES *[@@@@BU )@@G@@CTS@B"@[@@@@C *[@@@@CTS@CC@^@@@@ 50 LOC=LOCATE(11) *[@@@@CTS@CMBV )@@G@@@ @@@@ 60 IF (LOC.EQ.0) GO TO 70 *[@@@@CTS@CW@ @@@@ LOCT=NODPLC(BW )@@G@@LOC+11) *[@@@@CTS@C&@ @@@@ CALL TERR(LOCT+3,DELNEW)*[@@@@CTS@C0BX )@@G@@@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@C'@#@@@@ GO TO 60 *[@@@@BY )@@G@@CTS@D^@[@@@@C *[@@@@CTS@DI@]@@@@C BJTS *[@@@@CTS@DS@[@@@@C BZ )@@G@@*[@@@@CTS@D+@^@@@@ 70 LOC=LOCATE(12) *[@@@@CTS@D?@ @@@@ 80 IF (LOCA )@@G@@C.EQ.0) GO TO 90 *[@@@@CTS@D6@ @@@@ LOCT=NODPLC(LOC+22) *[@@@@CB )@@G@@CTS@E@@ @@@@ CALL TERR(LOCT+8,DELNEW)*[@@@@CTS@EE@A@@@@ CALL TCC )@@G@@ERR(LOCT+10,DELNEW) *[@@@@CTS@EO@A@@@@ CALL TERR(LOCT+12,DELNEWCD )@@G@@) *[@@@@CTS@EY@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@E*@#@@@@ CE )@@G@@GO TO 80 *[@@@@CTS@E2@[@@@@C *[@@@@CTS@E/@]@@@@C JFETS *[@@@@CF )@@G@@CTS@FA@[@@@@C *[@@@@CTS@FK@^@@@@ 90 LOC=LOCATE(13) *[@@@@CTS@FUCG )@@G@@@ @@@@ 100 IF (LOC.EQ.0) GO TO 110 *[@@@@CTS@F=@ @@@@ LOCT=NODPLC(CH )@@G@@LOC+19) *[@@@@CTS@F,@ @@@@ CALL TERR(LOCT+9,DELNEW)*[@@@@CTS@F8CI )@@G@@@A@@@@ CALL TERR(LOCT+11,DELNEW) *[@@@@CTS@G]@^@@@@ LOC=NOCJ )@@G@@DPLC(LOC) *[@@@@CTS@GG@#@@@@ GO TO 100 *[@@@@CTS@GQ@[@@@@C CK )@@G@@*[@@@@CTS@G)@]@@@@C MOSFETS *[@@@@CTS@G%@[@@@@C *[@@@@CTS@G4@^@@@@CL )@@G@@ 110 LOC=LOCATE(14) *[@@@@CTS@G"@ @@@@ 120 IF (LOC.EQ.0) GO TO 200 CM )@@G@@*[@@@@CTS@HC@ @@@@ LOCT=NODPLC(LOC+26) *[@@@@CTS@HM@A@@@@ CN )@@G@@CALL TERR(LOCT+12,DELNEW) *[@@@@CTS@HW@A@@@@ CALL TERR(LOCT+14,CO )@@G@@DELNEW) *[@@@@CTS@H&@A@@@@ CALL TERR(LOCT+16,DELNEW) *[@@@@CP )@@G@@CTS@H0@A@@@@ CALL TERR(LOCT+18,DELNEW) *[@@@@CTS@H'@A@@@@ CQ )@@G@@CALL TERR(LOCT+20,DELNEW) *[@@@@CTS@I^@^@@@@ LOC=NODPLC(LOC) CR )@@G@@*[@@@@CTS@II@#@@@@ GO TO 120 *[@@@@CTS@IS@[@@@@C *[@@@@CTS@I+CS )@@G@@@D@@@@C DELTA IS ALLOWED ONLY TO DOUBLE AT EACH TIMEPOINT *[@@@@CTS@I?CT )@@G@@@[@@@@C *[@@@@CTS@I6@C@@@@ 200 DELNEW=DMIN1(2.D0*DELTA,DELNEW,DELMACU )@@G@@X) *[@@@@CTS@J@@]@@@@ RETURN*[@@@@CTS@JE@]@@@@ END ___D9[CV )@@G@@E)*DD#CDGCS( L^C(GE-[^@)*[@@@@CTS@-0@^@@@@^@)^@)*[S@@@*SDFF**[@@@@CTS@@ECW )@@G@@@B@@@@ SUBROUTINE TERR(/LOCT/,/DELNEW/) *[@@@@CTS@@O@[@@@@C CX )@@G@@*[@@@@CTS@@Y@G@@@@C THIS ROUTINE ESTIMATES THE LOCAL TRUNCATION ERROCY )@@G@@R FOR A PARTICULAR*[@@@@CTS@@*@G@@@@C CIRCUIT ELEMENT. IT THEN COMPUTESCZ )@@G@@ THE APPROPRIATE STEPSIZE WHICH *[@@@@CTS@@2@#@@@@C SHOULD BE USED. DA )@@G@@*[@@@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@ IMPLICIT REAL*8 (A-H,O-ZDB )@@G@@) @ @@@# INCLUDE F.TABINF,LIST @ @@@# INCLUDE F.STATUS,LDC )@@G@@IST @ @@@# INCLUDE F.KNSTNT,LIST @ @@@# INCLUDE F.BLANK,LIDD )@@G@@ST @^@#@]@ADD,P *SPICE.TERRD *[@@@@CTS@[K@G@]@@ COMMON /TABIDE )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[U@G@]@@DF )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, DG )@@G@@*[@@@@CTS@[=@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILDH )@@G@@C,ILR,NUMOFF,ISR, *[@@@@CTS@[,@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEDI )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[8@G@]@@ 4 LX0,LVN,LDJ )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@]]@#@]@@DK )@@G@@ 5 LOUTPT, *[@@@@CTS@]G@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIMDL )@@G@@,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]Q@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,DM )@@G@@LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@])@A@]@@ 8 LLDDN )@@G@@0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]%@G@]@@ COMMON /STATUS/ OMEGA,TIDO )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]4@F@]@@ 1 MODDP )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@]"@^@]@@DQ )@@G@@ 2 ITEMNO,NOSOLV *[@@@@CTS@#C@G@]@@ COMMON /KNSTNT/ TWOPI,XLDR )@@G@@OG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@#M@F@]@@ 1 GMIDS )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX *[@@@@CTS@#W@ @]@@DT )@@G@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#&@^@]@@ INTEGER NODPLC(64)DU )@@G@@*[@@@@CTS@#0@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@#'@C@]@@ DV )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^^@[@@@@C *[@@@@DW )@@G@@CTS@^I@[@@@@C *[@@@@CTS@^S@E@@@@ DIMENSION QCAP(1),CCAP(1),DIFFDX )@@G@@(8),DELTMP(7),COEF(6) *[@@@@CTS@^+@E@@@@ EQUIVALENCE (QCAP(1),VALDY )@@G@@UE(1)),(CCAP(1),VALUE(2)) *[@@@@CTS@^?@F@@@@ DATA COEF / 5.0000DZ )@@G@@00000D-1, 2.222222222D-1, 1.363636364D-1, *[@@@@CTS@^6@F@@@@ 1 EA )@@G@@ 9.600000000D-2, 7.299270073D-2, 5.830903790D-2 /*[@@@@CTS@ @@A@@@@EB )@@G@@ DATA XTWELV / 8.333333333D-2 /*[@@@@CTS@ E@[@@@@C *[@@@@CTS@ OEC )@@G@@@[@@@@C *[@@@@CTS@ Y@G@@@@ TOL=RELTOL*DMAX1(DABS(CCAP(LX0+LOCT)ED )@@G@@),DABS(CCAP(LX1+LOCT)))+ABSTOL*[@@@@CTS@ *@F@@@@ CTOL=RELTOL*DMAX1(EE )@@G@@DABS(QCAP(LX0+LOCT)),DABS(QCAP(LX1+LOCT)),*[@@@@CTS@ 2@^@@@@ 1 CHGEF )@@G@@TOL)/DELTA *[@@@@CTS@ /@ @@@@ TOL=DMAX1(TOL,CTOL) *[@@@@CTS@AAEG )@@G@@@[@@@@C *[@@@@CTS@AK@A@@@@C DETERMINE DIVIDED DIFFERENCES *[@@@@EH )@@G@@CTS@AU@[@@@@C *[@@@@CTS@A=@A@@@@ GO TO (6,5,4,3,2,1), IORD EI )@@G@@*[@@@@CTS@A,@ @@@@ 1 DIFF(8)=QCAP(LX7+LOCT) *[@@@@CTS@A8@ @@@@ 2 EJ )@@G@@DIFF(7)=QCAP(LX6+LOCT) *[@@@@CTS@B]@ @@@@ 3 DIFF(6)=QCAP(LX5+LOCT) EK )@@G@@*[@@@@CTS@BG@ @@@@ 4 DIFF(5)=QCAP(LX4+LOCT) *[@@@@CTS@BQ@ @@@@ 5 EL )@@G@@DIFF(4)=QCAP(LX3+LOCT) *[@@@@CTS@B)@ @@@@ 6 DIFF(3)=QCAP(LX2+LOCT) EM )@@G@@*[@@@@CTS@B%@ @@@@ DIFF(2)=QCAP(LX1+LOCT) *[@@@@CTS@B4@ @@@@ EN )@@G@@DIFF(1)=QCAP(LX0+LOCT) *[@@@@CTS@B"@#@@@@ ISTOP=IORD+1*[@@@@CTS@CCEO )@@G@@@^@@@@ DO 10 I=1,ISTOP *[@@@@CTS@CM@ @@@@ DELTMP(I)=DELOLD(IEP )@@G@@) *[@@@@CTS@CW@#@@@@ 10 CONTINUE *[@@@@CTS@C&@^@@@@ 20 DO 30 EQ )@@G@@I=1,ISTOP *[@@@@CTS@C0@C@@@@ DIFF(I)=(DIFF(I)-DIFF(I+1))/DELTMP(IER )@@G@@) *[@@@@CTS@C'@#@@@@ 30 CONTINUE *[@@@@CTS@D^@^@@@@ ISTOP=ES )@@G@@ISTOP-1 *[@@@@CTS@DI@A@@@@ IF (ISTOP.EQ.0) GO TO 100 *[@@@@ET )@@G@@CTS@DS@^@@@@ DO 40 I=1,ISTOP *[@@@@CTS@D+@B@@@@ DELTMP(I)=DEEU )@@G@@LTMP(I+1)+DELOLD(I) *[@@@@CTS@D?@#@@@@ 40 CONTINUE *[@@@@CTS@D6EV )@@G@@@#@@@@ GO TO 20 *[@@@@CTS@E@@[@@@@C *[@@@@CTS@EE@B@@@@C DIFEW )@@G@@F(1) CONTAINS DIVIDED DIFFERENCE *[@@@@CTS@EO@[@@@@C *[@@@@CTS@EYEX )@@G@@@^@@@@ 100 CONST=COEF(IORD) *[@@@@CTS@E*@D@@@@ IF ((METHOD.EQ.1).EY )@@G@@AND.(IORD.EQ.2)) CONST=XTWELV *[@@@@CTS@E2@D@@@@ DEL=TRTOL*TOL/DMAXEZ )@@G@@1(ABSTOL,CONST*DABS(DIFF(1))) *[@@@@CTS@E/@ @@@@ IF (IORD.EQ.1) GO FA )@@G@@TO 200*[@@@@CTS@FA@ @@@@ IF (IORD.GE.3) GO TO 150*[@@@@CTS@FK@^@@@@FB )@@G@@ DEL=DSQRT(DEL) *[@@@@CTS@FU@#@@@@ GO TO 200 *[@@@@CTS@F=FC )@@G@@@B@@@@ 150 DEL=DEXP(DLOG(DEL)/DFLOAT(IORD)) *[@@@@CTS@F,@ @@@@ 200 FD )@@G@@DELNEW=DMIN1(DELNEW,DEL)*[@@@@CTS@F8@]@@@@ RETURN*[@@@@CTS@G]@]@@@@FE )@@G@@ END ___^@)^@)CT[*[S@@@*SDFF**[@@@@CTS@@E@D@@@@ SUBROUTINE IFF )@@G@@NTGR8(/GEQ/,/CEQ/,/CAPVAL/,/LOCT/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@YFG )@@G@@@G@@@@C THIS ROUTINE PERFORMS THE ACTUAL NUMERICAL INTEGRATION FOR EFH )@@G@@ACH *[@@@@CTS@@*@#@@@@C CIRCUIT ELEMENT.*[@@@@CTS@@2@[@@@@C *[@@@@FI )@@G@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@] INCLUDE F.TAFJ )@@G@@BINF,LIST @ @@@] INCLUDE F.STATUS,LIST @ @@@] INCLUDE F.BLFK )@@G@@ANK,LIST @^@]@[@ADD,P *SPICE.INTGR8 *[@@@@CTS@[A@G@[@@ COMMONFL )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[KFM )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEFN )@@G@@, *[@@@@CTS@[U@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,FO )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQFP )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@[@@ 4 LX0FQ )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8FR )@@G@@@#@[@@ 5 LOUTPT, *[@@@@CTS@]]@E@[@@ 6 LUNSAT,LTEMPS,LFIELD,FS )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@[@@ 7 LLX0,LLVN,LLYNLFT )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@[@@ 8FU )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@[@@ COMMON /STATUS/ OMFV )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]%@F@[@@ 1FW )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@]4FX )@@G@@@^@[@@ 2 ITEMNO,NOSOLV *[@@@@CTS@]"@ @[@@ COMMON /BLANK/ VALFY )@@G@@UE(64)*[@@@@CTS@#C@^@[@@ INTEGER NODPLC(64)*[@@@@CTS@#M@ @[@@ FZ )@@G@@COMPLEX*16 CVALUE(32) *[@@@@CTS@#W@C@[@@ EQUIVALENCE (VALUE(1),NOGA )@@G@@DPLC(1),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@[@@@@C *[@@@@GB )@@G@@CTS@#'@A@@@@ DIMENSION QCAP(1),CCAP(1) *[@@@@CTS@^^@E@@@@ GC )@@G@@EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)) *[@@@@CTS@^I@[@@@@GD )@@G@@C *[@@@@CTS@^S@[@@@@C *[@@@@CTS@^+@A@@@@ IF (METHOD.EQ.2) GGE )@@G@@O TO 100 *[@@@@CTS@^?@[@@@@C *[@@@@CTS@^6@^@@@@C TRAPEZOIDAL ALGGF )@@G@@ORITHM*[@@@@CTS@ @@[@@@@C *[@@@@CTS@ E@ @@@@ IF (IORD.EQ.1) GO GG )@@G@@TO 100*[@@@@CTS@ O@A@@@@ CCAP(LX0+LOCT)=-CCAP(LX1+LOCT)*[@@@@CTS@ YGH )@@G@@@D@@@@ 1 +2.D0*(QCAP(LX0+LOCT)-QCAP(LX1+LOCT))/DELTA *[@@@@CTS@ *GI )@@G@@@D@@@@ CEQ=-CCAP(LX1+LOCT)-2.D0*QCAP(LX1+LOCT)/DELTA *[@@@@CTS@ 2GJ )@@G@@@#@@@@ GO TO 200 *[@@@@CTS@ /@[@@@@C *[@@@@CTS@AA@#@@@@C GEAGK )@@G@@RS ALGORITHM*[@@@@CTS@AK@[@@@@C *[@@@@CTS@AU@C@@@@ 100 GO TO (110,1GL )@@G@@20,130,140,150,160), IORD *[@@@@CTS@A=@F@@@@ 110 CCAP(LX0+LOCT)=AG(GM )@@G@@1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) *[@@@@CTS@A,@#@@@@ GO TO GN )@@G@@190 *[@@@@CTS@A8@F@@@@ 120 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*GO )@@G@@QCAP(LX1+LOCT) *[@@@@CTS@B]@B@@@@ 1 +AG(3)*QCAP(LX2+GP )@@G@@LOCT) *[@@@@CTS@BG@#@@@@ GO TO 190 *[@@@@CTS@BQ@F@@@@ 130 CCAP(LGQ )@@G@@X0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) *[@@@@CTS@B)@F@@@@GR )@@G@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) *[@@@@GS )@@G@@CTS@B%@#@@@@ GO TO 190 *[@@@@CTS@B4@F@@@@ 140 CCAP(LX0+LOCT)=AG(GT )@@G@@1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) *[@@@@CTS@B"@F@@@@ 1 GU )@@G@@ +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) *[@@@@CTS@CC@B@@@@GV )@@G@@ 2 +AG(5)*QCAP(LX4+LOCT) *[@@@@CTS@CM@#@@@@ GO TO GW )@@G@@190 *[@@@@CTS@CW@F@@@@ 150 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*GX )@@G@@QCAP(LX1+LOCT) *[@@@@CTS@C&@F@@@@ 1 +AG(3)*QCAP(LX2+GY )@@G@@LOCT)+AG(4)*QCAP(LX3+LOCT) *[@@@@CTS@C0@F@@@@ 2 +AG(GZ )@@G@@5)*QCAP(LX4+LOCT)+AG(6)*QCAP(LX5+LOCT) *[@@@@CTS@C'@#@@@@ GO TO HA )@@G@@190 *[@@@@CTS@D^@F@@@@ 160 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*HB )@@G@@QCAP(LX1+LOCT) *[@@@@CTS@DI@F@@@@ 1 +AG(3)*QCAP(LX2+HC )@@G@@LOCT)+AG(4)*QCAP(LX3+LOCT) *[@@@@CTS@DS@F@@@@ 2 +AG(HD )@@G@@5)*QCAP(LX4+LOCT)+AG(6)*QCAP(LX5+LOCT) *[@@@@CTS@D+@B@@@@ 3 HE )@@G@@ +AG(7)*QCAP(LX6+LOCT) *[@@@@CTS@D?@C@@@@ 190 CEQ=CCAP(LX0+LOCT)HF )@@G@@-AG(1)*QCAP(LX0+LOCT) *[@@@@CTS@D6@^@@@@ 200 GEQ=AG(1)*CAPVAL *[@@@@HG )@@G@@CTS@E@@]@@@@ RETURN*[@@@@CTS@EE@]@@@@ END ___^@)^@)^@)^@)^@)HH )@@G@@ T[C8*A*( LLCT[E@*D-SA):D-JCTO C)^@)*[@@@@CTS@CM@^@@@@^@)^@)^@)C9J^[OD8)HI )@@G@@AC9A@)*[@@@@CTS@CW@K@@@@*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE JHJ )@@G@@FET *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@F@@@@C THIS ROUTINE PROCEHK )@@G@@SSES JFETS FOR DC AND TRANSIENT ANALYSES. *[@@@@CTS@@*@[@@@@C *[@@@@HL )@@G@@CTS@@2@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.TAHM )@@G@@BINF,LIST @ @@@^ INCLUDE F.CIRDAT,LIST @ @@@^ INCLUDE F.STHN )@@G@@ATUS,LIST @ @@@^ INCLUDE F.KNSTNT,LIST @ @@@^ INCLUDE F.BLHO )@@G@@ANK,LIST @^@^@#@ADD,P *SPICE.JFETD *[@@@@CTS@@/@G@#@@ COMMONHP )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[AHQ )@@G@@@G@#@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEHR )@@G@@, *[@@@@CTS@[K@G@#@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,HS )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[U@G@#@@ 3 NMOFFC,ISEQ,ISEQ1,NEQHT )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@#@@ 4 LX0HU )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[,HV )@@G@@@#@#@@ 5 LOUTPT, *[@@@@CTS@[8@E@#@@ 6 LUNSAT,LTEMPS,LFIELD,HW )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]]@G@#@@ 7 LLX0,LLVN,LLYNLHX )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]G@A@#@@ 8HY )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]Q@G@#@@ COMMON /CIRDAT/ LOHZ )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@])@C@#@@ 1IA )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]%@G@#@@ COMMONIB )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]4IC )@@G@@@F@#@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,ID )@@G@@*[@@@@CTS@]"@^@#@@ 2 ITEMNO,NOSOLV *[@@@@CTS@#C@G@#@@ COMMONIE )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@#MIF )@@G@@@F@#@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX IG )@@G@@*[@@@@CTS@#W@ @#@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#&@^@#@@ IH )@@G@@INTEGER NODPLC(64)*[@@@@CTS@#0@ @#@@ COMPLEX*16 CVALUE(32) *[@@@@II )@@G@@CTS@#'@C@#@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^^IJ )@@G@@@[@@@@C *[@@@@CTS@^I@[@@@@C *[@@@@CTS@^S@G@@@@ DIMENSION VGIK )@@G@@SO(1),VGDO(1),CGO(1),CDO(1),CGDO(1),GMO(1),GDSO(1), *[@@@@CTS@^+@D@@@@IL )@@G@@ 1 GGSO(1),GGDO(1),QGS(1),CQGS(1),QGD(1),CQGD(1)*[@@@@CTS@^?@E@@@@IM )@@G@@ EQUIVALENCE (VGSO(1),VALUE( 1)),(VGDO(1),VALUE( 2)), *[@@@@CTS@^6IN )@@G@@@E@@@@ 1 (CGO (1),VALUE( 3)),(CDO (1),VALUE( 4)), *[@@@@IO )@@G@@CTS@ @@E@@@@ 2 (CGDO(1),VALUE( 5)),(GMO (1),VALUE( 6)), IP )@@G@@*[@@@@CTS@ E@E@@@@ 3 (GDSO(1),VALUE( 7)),(GGSO(1),VALUE( IQ )@@G@@8)), *[@@@@CTS@ O@E@@@@ 4 (GGDO(1),VALUE( 9)),(QGS (1),VIR )@@G@@ALUE(10)), *[@@@@CTS@ Y@E@@@@ 5 (CQGS(1),VALUE(11)),(QGDIS )@@G@@ (1),VALUE(12)), *[@@@@CTS@ *@B@@@@ 6 (CQGD(1),VALUE(13)IT )@@G@@) *[@@@@CTS@ 2@[@@@@C *[@@@@CTS@ /@[@@@@C *[@@@@CTS@AA@^@@@@IU )@@G@@ LOC=LOCATE(13) *[@@@@CTS@AK@ @@@@ 10 IF (LOC.EQ.0) RETURN IV )@@G@@*[@@@@CTS@AU@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@A=@ @@@@ NODE1=IW )@@G@@NODPLC(LOC+2) *[@@@@CTS@A,@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@IX )@@G@@CTS@A8@ @@@@ NODE3=NODPLC(LOC+4) *[@@@@CTS@B]@ @@@@ NODE4=IY )@@G@@NODPLC(LOC+5) *[@@@@CTS@BG@ @@@@ NODE5=NODPLC(LOC+6) *[@@@@IZ )@@G@@CTS@BQ@^@@@@ LOCM=NODPLC(LOC+7)*[@@@@CTS@B)@^@@@@ IOFF=NODPLC(JA )@@G@@LOC+8)*[@@@@CTS@B%@ @@@@ TYPE=NODPLC(LOCM+2) *[@@@@CTS@B4@ @@@@JB )@@G@@ LOCM=NODPLC(LOCM+1) *[@@@@CTS@B"@ @@@@ LOCT=NODPLC(LOC+19JC )@@G@@) *[@@@@CTS@CC@[@@@@C *[@@@@CTS@CM@^@@@@C DC MODEL PARAMETERS JD )@@G@@*[@@@@CTS@CW@[@@@@C *[@@@@CTS@C&@^@@@@ AREA=VALUE(LOCV+1)*[@@@@JE )@@G@@CTS@C0@^@@@@ VTO=VALUE(LOCM+1) *[@@@@CTS@C'@ @@@@ BETA=VALUE(LJF )@@G@@OCM+2)*AREA *[@@@@CTS@D^@ @@@@ XLAMB=VALUE(LOCM+3) *[@@@@CTS@DIJG )@@G@@@ @@@@ GDPR=VALUE(LOCM+4)*AREA *[@@@@CTS@DS@ @@@@ GSPR=VALUE(LJH )@@G@@OCM+5)*AREA *[@@@@CTS@D+@ @@@@ CSAT=VALUE(LOCM+9)*AREA *[@@@@CTS@D?JI )@@G@@@ @@@@ VCRIT=VALUE(LOCM+16) *[@@@@CTS@D6@[@@@@C *[@@@@CTS@E@JJ )@@G@@@#@@@@C INITIALIZATION *[@@@@CTS@EE@[@@@@C *[@@@@CTS@EO@#@@@@ JK )@@G@@ICHECK=0 *[@@@@CTS@EY@B@@@@ GO TO (100,20,30,50,60,70), INITF JL )@@G@@*[@@@@CTS@E*@ @@@@ 20 IF (IOFF.NE.0) GO TO 40 *[@@@@CTS@E2@ @@@@ JM )@@G@@VDS=TYPE*VALUE(LOCV+2) *[@@@@CTS@E/@ @@@@ VGS=TYPE*VALUE(LOCV+3) JN )@@G@@*[@@@@CTS@FA@#@@@@ VGD=VGS-VDS *[@@@@CTS@FK@A@@@@ IF (VDS.NE.0JO )@@G@@.0D0) GO TO 300 *[@@@@CTS@FU@A@@@@ IF (VGS.NE.0.0D0) GO TO 300 JP )@@G@@*[@@@@CTS@F=@G@@@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEJQ )@@G@@.0)) GO TO 300 *[@@@@CTS@F,@#@@@@ VGS=-1.D0 *[@@@@CTS@F8@#@@@@JR )@@G@@ VGD=-1.D0 *[@@@@CTS@G]@#@@@@ GO TO 300 *[@@@@CTS@GG@ @@@@JS )@@G@@ 30 IF (IOFF.EQ.0) GO TO 100*[@@@@CTS@GQ@#@@@@ 40 VGS=0.D0 *[@@@@JT )@@G@@CTS@G)@#@@@@ VGD=0.D0 *[@@@@CTS@G%@#@@@@ GO TO 300 *[@@@@JU )@@G@@CTS@G4@^@@@@ 50 VGS=VGSO(LX0+LOCT)*[@@@@CTS@G"@^@@@@ VGD=VGDO(LX0JV )@@G@@+LOCT)*[@@@@CTS@HC@#@@@@ GO TO 300 *[@@@@CTS@HM@^@@@@ 60 VGS=VGJW )@@G@@SO(LX1+LOCT)*[@@@@CTS@HW@^@@@@ VGD=VGDO(LX1+LOCT)*[@@@@CTS@H&@#@@@@JX )@@G@@ GO TO 300 *[@@@@CTS@H0@ @@@@ 70 XFACT=DELTA/DELOLD(2) *[@@@@JY )@@G@@CTS@H'@A@@@@ VGSO(LX0+LOCT)=VGSO(LX1+LOCT) *[@@@@CTS@I^@E@@@@ JZ )@@G@@VGS=(1.D0+XFACT)*VGSO(LX1+LOCT)-XFACT*VGSO(LX2+LOCT) *[@@@@CTS@II@A@@@@KA )@@G@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) *[@@@@CTS@IS@E@@@@ VGD=(1.D0+XFKB )@@G@@ACT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) *[@@@@CTS@I+@A@@@@ CGO(LXKC )@@G@@0+LOCT)=CGO(LX1+LOCT) *[@@@@CTS@I?@A@@@@ CDO(LX0+LOCT)=CDO(LX1+LOKD )@@G@@CT) *[@@@@CTS@I6@A@@@@ CGDO(LX0+LOCT)=CGDO(LX1+LOCT) *[@@@@CTS@J@KE )@@G@@@A@@@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) *[@@@@CTS@JE@A@@@@ GDSO(LKF )@@G@@X0+LOCT)=GDSO(LX1+LOCT) *[@@@@CTS@JO@A@@@@ GGSO(LX0+LOCT)=GGSO(LX1+KG )@@G@@LOCT) *[@@@@CTS@JY@A@@@@ GGDO(LX0+LOCT)=GGDO(LX1+LOCT) *[@@@@CTS@J*KH )@@G@@@#@@@@ GO TO 110 *[@@@@CTS@J2@[@@@@C *[@@@@CTS@J/@B@@@@C COMKI )@@G@@PUTE NEW NONLINEAR BRANCH VOLTAGES *[@@@@CTS@KA@[@@@@C *[@@@@CTS@KKKJ )@@G@@@E@@@@ 100 VGS=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE5)) *[@@@@KK )@@G@@CTS@KU@E@@@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE4)) KL )@@G@@*[@@@@CTS@K=@A@@@@ 110 DELVGS=VGS-VGSO(LX0+LOCT) *[@@@@CTS@K,@A@@@@KM )@@G@@ DELVGD=VGD-VGDO(LX0+LOCT) *[@@@@CTS@K8@ @@@@ DELVDS=DELVGKN )@@G@@S-DELVGD *[@@@@CTS@L]@G@@@@ CGHAT=CGO(LX0+LOCT)+GGDO(LX0+LOCT)*DKO )@@G@@ELVGD+GGSO(LX0+LOCT)*DELVGS *[@@@@CTS@LG@G@@@@ CDHAT=CDO(LX0+LOCTKP )@@G@@)+GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS *[@@@@CTS@LQ@A@@@@ 1KQ )@@G@@ -GGDO(LX0+LOCT)*DELVGD *[@@@@CTS@L)@[@@@@C *[@@@@CTS@L%@B@@@@KR )@@G@@C BYPASS IF SOLUTION HAS NOT CHANGED *[@@@@CTS@L4@[@@@@C *[@@@@KS )@@G@@CTS@L"@A@@@@ IF (INITF.EQ.6) GO TO 200 *[@@@@CTS@MC@E@@@@ KT )@@G@@TOL=RELTOL*DMAX1(DABS(VGS),DABS(VGSO(LX0+LOCT)))+VNTOL*[@@@@CTS@MM@B@@@@KU )@@G@@ IF (DABS(DELVGS).GE.TOL) GO TO 200 *[@@@@CTS@MW@E@@@@ TOL=REKV )@@G@@LTOL*DMAX1(DABS(VGD),DABS(VGDO(LX0+LOCT)))+VNTOL*[@@@@CTS@M&@B@@@@ KW )@@G@@IF (DABS(DELVGD).GE.TOL) GO TO 200 *[@@@@CTS@M0@F@@@@ TOL=RELTOL*DKX )@@G@@MAX1(DABS(CGHAT),DABS(CGO(LX0+LOCT)))+ABSTOL *[@@@@CTS@M'@D@@@@ KY )@@G@@IF (DABS(CGHAT-CGO(LX0+LOCT)).GE.TOL) GO TO 200 *[@@@@CTS@N^@F@@@@ KZ )@@G@@TOL=RELTOL*DMAX1(DABS(CDHAT),DABS(CDO(LX0+LOCT)))+ABSTOL *[@@@@CTS@NILA )@@G@@@D@@@@ IF (DABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TO 200 *[@@@@CTS@NSLB )@@G@@@^@@@@ VGS=VGSO(LX0+LOCT)*[@@@@CTS@N+@^@@@@ VGD=VGDO(LX0+LOCT)LC )@@G@@*[@@@@CTS@N?@#@@@@ VDS=VGS-VGD *[@@@@CTS@N6@^@@@@ CG=CGO(LX0+LLD )@@G@@OCT) *[@@@@CTS@O@@^@@@@ CD=CDO(LX0+LOCT) *[@@@@CTS@OE@^@@@@ LE )@@G@@CGD=CGDO(LX0+LOCT)*[@@@@CTS@OO@^@@@@ GM=GMO(LX0+LOCT) *[@@@@CTS@OYLF )@@G@@@^@@@@ GDS=GDSO(LX0+LOCT)*[@@@@CTS@O*@^@@@@ GGS=GGSO(LX0+LOCT)LG )@@G@@*[@@@@CTS@O2@^@@@@ GGD=GGDO(LX0+LOCT)*[@@@@CTS@O/@#@@@@ GO TO LH )@@G@@900 *[@@@@CTS@PA@[@@@@C *[@@@@CTS@PK@A@@@@C LIMIT NONLINEAR BRANCLI )@@G@@H VOLTAGES *[@@@@CTS@PU@[@@@@C *[@@@@CTS@P=@#@@@@ 200 ICHK1=0 LJ )@@G@@*[@@@@CTS@P,@D@@@@ CALL PNJLIM(VGS,VGSO(LX0+LOCT),VT,VCRIT,ICHECK) LK )@@G@@*[@@@@CTS@P8@D@@@@ CALL PNJLIM(VGD,VGDO(LX0+LOCT),VT,VCRIT,ICHK1) LL )@@G@@*[@@@@CTS@Q]@ @@@@ IF (ICHK1.EQ.0) ICHECK=0@B@@@] CALL FETLIM(LM )@@G@@VGS,VGSO(LX0+LOCT),VTO) *[@@@@CTS@QG@B@@@@ CALL FETLIM(VGD,VGDO(LX0LN )@@G@@+LOCT),VTO) *[@@@@CTS@QQ@[@@@@C *[@@@@CTS@Q)@B@@@@C DETERMINE DC CULO )@@G@@RRENT AND DERIVATIVES *[@@@@CTS@Q%@[@@@@C *[@@@@CTS@Q4@#@@@@ 300 LP )@@G@@VDS=VGS-VGD *[@@@@CTS@Q"@A@@@@ IF (VGS.GT.0.0D0) GO TO 310 *[@@@@LQ )@@G@@CTS@RC@#@@@@ GGS=CSAT/VT *[@@@@CTS@RM@#@@@@ CG=GGS*VGS *[@@@@LR )@@G@@CTS@RW@#@@@@ GO TO 320 *[@@@@CTS@R&@^@@@@ 310 EVGS=DEXP(VGS/VT) LS )@@G@@*[@@@@CTS@R0@^@@@@ GGS=CSAT*EVGS/VT *[@@@@CTS@R'@ @@@@ CG=CSALT )@@G@@T*(EVGS-1.0D0) *[@@@@CTS@S^@A@@@@ 320 IF (VGD.GT.0.0D0) GO TO 330 LU )@@G@@*[@@@@CTS@SI@#@@@@ GGD=CSAT/VT *[@@@@CTS@SS@#@@@@ CGD=GGD*VGD LV )@@G@@*[@@@@CTS@S+@#@@@@ GO TO 340 *[@@@@CTS@S?@^@@@@ 330 EVGD=DEXP(VGLW )@@G@@D/VT) *[@@@@CTS@S6@^@@@@ GGD=CSAT*EVGD/VT *[@@@@CTS@T@@ @@@@ LX )@@G@@CGD=CSAT*(EVGD-1.0D0) *[@@@@CTS@TE@#@@@@ 340 CG=CG+CGD *[@@@@CTS@TOLY )@@G@@@[@@@@C *[@@@@CTS@TY@E@@@@C COMPUTE DRAIN CURRENT AND DERIVITIVES FLZ )@@G@@OR NORMAL MODE *[@@@@CTS@T*@[@@@@C *[@@@@CTS@T2@A@@@@ 400 IF (VDMA )@@G@@S.LT.0.D0) GO TO 450 *[@@@@CTS@T/@#@@@@ VGST=VGS-VTO*[@@@@CTS@UAMB )@@G@@@[@@@@C *[@@@@CTS@UK@ @@@@C NORMAL MODE, CUTOFF REGION *[@@@@CTS@UUMC )@@G@@@[@@@@C *[@@@@CTS@U=@A@@@@ IF (VGST.GT.0.D0) GO TO 410 *[@@@@MD )@@G@@CTS@U,@#@@@@ CDRAIN=0.D0 *[@@@@CTS@U8@#@@@@ GM=0.D0 *[@@@@ME )@@G@@CTS@V]@#@@@@ GDS=0.D0 *[@@@@CTS@VG@#@@@@ GO TO 490 *[@@@@MF )@@G@@CTS@VQ@[@@@@C *[@@@@CTS@V)@A@@@@C NORMAL MODE, SATURATION REGION MG )@@G@@*[@@@@CTS@V%@[@@@@C *[@@@@CTS@V4@A@@@@ 410 BETAP=BETA*(1.D0+XLAMB*VMH )@@G@@DS) *[@@@@CTS@V"@^@@@@ TWOB=BETAP+BETAP *[@@@@CTS@WC@A@@@@ MI )@@G@@IF (VGST.GT.VDS) GO TO 420 *[@@@@CTS@WM@ @@@@ CDRAIN=BETAP*VGST*MJ )@@G@@VGST *[@@@@CTS@WW@#@@@@ GM=TWOB*VGST*[@@@@CTS@W&@ @@@@ GDS=XLMK )@@G@@AMB*BETA*VGST*VGST*[@@@@CTS@W0@#@@@@ GO TO 490 *[@@@@CTS@W'@[@@@@ML )@@G@@C *[@@@@CTS@X^@ @@@@C NORMAL MODE, LINEAR REGION *[@@@@CTS@XI@[@@@@MM )@@G@@C *[@@@@CTS@XS@B@@@@ 420 CDRAIN=BETAP*VDS*(VGST+VGST-VDS) *[@@@@MN )@@G@@CTS@X+@#@@@@ GM=TWOB*VDS *[@@@@CTS@X?@E@@@@ GDS=TWOB*(VGST-VDSMO )@@G@@)+XLAMB*BETA*VDS*(VGST+VGST-VDS) *[@@@@CTS@X6@#@@@@ GO TO 490 MP )@@G@@*[@@@@CTS@Y@@[@@@@C *[@@@@CTS@YE@E@@@@C COMPUTE DRAIN CURRENT AND DMQ )@@G@@ERIVITIVES FOR INVERSE MODE *[@@@@CTS@YO@[@@@@C *[@@@@CTS@YY@#@@@@MR )@@G@@ 450 VGDT=VGD-VTO*[@@@@CTS@Y*@[@@@@C *[@@@@CTS@Y2@ @@@@C INVERSE MMS )@@G@@ODE, CUTOFF REGION*[@@@@CTS@Y/@[@@@@C *[@@@@CTS@ZA@A@@@@ IF (VGMT )@@G@@DT.GT.0.D0) GO TO 460 *[@@@@CTS@ZK@#@@@@ CDRAIN=0.D0 *[@@@@CTS@ZUMU )@@G@@@#@@@@ GM=0.D0 *[@@@@CTS@Z=@#@@@@ GDS=0.D0 *[@@@@CTS@Z,MV )@@G@@@#@@@@ GO TO 490 *[@@@@CTS@Z8@[@@@@C *[@@@@CTS@)]@A@@@@C INVMW )@@G@@ERSE MODE, SATURATION REGION *[@@@@CTS@)G@[@@@@C *[@@@@CTS@)Q@A@@@@MX )@@G@@ 460 BETAP=BETA*(1.D0-XLAMB*VDS) *[@@@@CTS@))@^@@@@ TWOB=BETAP+BMY )@@G@@ETAP *[@@@@CTS@)%@A@@@@ IF (VGDT.GT.-VDS) GO TO 470 *[@@@@CTS@)4MZ )@@G@@@ @@@@ CDRAIN=-BETAP*VGDT*VGDT *[@@@@CTS@)"@^@@@@ GM=-TWOB*VGDNA )@@G@@T *[@@@@CTS@-C@A@@@@ GDS=XLAMB*BETA*VGDT*VGDT-GM *[@@@@CTS@-MNB )@@G@@@#@@@@ GO TO 490 *[@@@@CTS@-W@[@@@@C *[@@@@CTS@-&@ @@@@C INVNC )@@G@@ERSE MODE, LINEAR REGION*[@@@@CTS@-0@[@@@@C *[@@@@CTS@-'@B@@@@ 470 ND )@@G@@CDRAIN=BETAP*VDS*(VGDT+VGDT+VDS) *[@@@@CTS@+^@#@@@@ GM=TWOB*VDS NE )@@G@@*[@@@@CTS@+I@D@@@@ GDS=TWOB*VGDT-XLAMB*BETA*VDS*(VGDT+VGDT+VDS) NF )@@G@@*[@@@@CTS@+S@[@@@@C *[@@@@CTS@++@B@@@@C COMPUTE EQUIVALENT DRAIN CUNG )@@G@@RRENT SOURCE*[@@@@CTS@+?@[@@@@C *[@@@@CTS@+6@^@@@@ 490 CD=CDRAIN-CGNH )@@G@@D *[@@@@CTS@<@@ @@@@ IF (MODE.NE.1) GO TO 500*[@@@@CTS@]@^@@@@ F1=VALUE(LOCM+13) *[@@@@CTS@>G@^@@@@ F2=VALNQ )@@G@@UE(LOCM+14) *[@@@@CTS@>Q@^@@@@ F3=VALUE(LOCM+15) *[@@@@CTS@>)@^@@@@NR )@@G@@ CZGSF2=CZGS/F2 *[@@@@CTS@>%@^@@@@ CZGDF2=CZGD/F2 *[@@@@NS )@@G@@CTS@>4@A@@@@ IF (VGS.GE.FCPB) GO TO 510 *[@@@@CTS@>"@A@@@@ NT )@@G@@SARG=DSQRT(1.0D0-VGS/PHIB) *[@@@@CTS@&C@B@@@@ QGS(LX0+LOCT)=TWOPNU )@@G@@*CZGS*(1.0D0-SARG)*[@@@@CTS@&M@^@@@@ CAPGS=CZGS/SARG *[@@@@CTS@&WNV )@@G@@@#@@@@ GO TO 520 *[@@@@CTS@&&@D@@@@ 510 QGS(LX0+LOCT)=CZGS*F1+CZNW )@@G@@GSF2*(F3*(VGS-FCPB) *[@@@@CTS@&0@B@@@@ 1 +(VGS*VGS-FCPB2)/(TWONX )@@G@@P+TWOP)) *[@@@@CTS@&'@A@@@@ CAPGS=CZGSF2*(F3+VGS/TWOP) *[@@@@NY )@@G@@CTS@$^@A@@@@ 520 IF (VGD.GE.FCPB) GO TO 530 *[@@@@CTS@$I@A@@@@ NZ )@@G@@SARG=DSQRT(1.0D0-VGD/PHIB) *[@@@@CTS@$S@B@@@@ QGD(LX0+LOCT)=TWOPOA )@@G@@*CZGD*(1.0D0-SARG)*[@@@@CTS@$+@^@@@@ CAPGD=CZGD/SARG *[@@@@CTS@$?OB )@@G@@@#@@@@ GO TO 560 *[@@@@CTS@$6@D@@@@ 530 QGD(LX0+LOCT)=CZGD*F1+CZOC )@@G@@GDF2*(F3*(VGD-FCPB) *[@@@@CTS@*@@B@@@@ 1 +(VGD*VGD-FCPB2)/(TWOOD )@@G@@P+TWOP)) *[@@@@CTS@*E@A@@@@ CAPGD=CZGDF2*(F3+VGD/TWOP) *[@@@@OE )@@G@@CTS@*O@[@@@@C *[@@@@CTS@*Y@A@@@@C STORE SMALL-SIGNAL PARAMETERS OF )@@G@@*[@@@@CTS@**@[@@@@C *[@@@@CTS@*2@F@@@@ 560 IF(MODE.EQ.1.AND.MODEDC.OG )@@G@@EQ.2.AND.NOSOLV.NE.0) GO TO 700 *[@@@@CTS@*/@ @@@@ IF(INITF.NE.OH )@@G@@4) GO TO 600*[@@@@CTS@(A@ @@@@ VALUE(LX0+LOCT+9)=CAPGS *[@@@@CTS@(KOI )@@G@@@ @@@@ VALUE(LX0+LOCT+11)=CAPGD*[@@@@CTS@(U@#@@@@ GO TO 1000 OJ )@@G@@*[@@@@CTS@(=@[@@@@C *[@@@@CTS@(,@^@@@@C TRANSIENT ANALYSIS *[@@@@OK )@@G@@CTS@(8@[@@@@C *[@@@@CTS@%]@A@@@@ 600 IF (INITF.NE.5) GO TO 610 OL )@@G@@*[@@@@CTS@%G@A@@@@ QGS(LX1+LOCT)=QGS(LX0+LOCT) *[@@@@CTS@%Q@A@@@@OM )@@G@@ QGD(LX1+LOCT)=QGD(LX0+LOCT) *[@@@@CTS@%)@B@@@@ 610 CALL INTGR8(ON )@@G@@GEQ,CEQ,CAPGS,LOCT+9) *[@@@@CTS@%%@#@@@@ GGS=GGS+GEQ *[@@@@CTS@%4OO )@@G@@@ @@@@ CG=CG+CQGS(LX0+LOCT) *[@@@@CTS@%"@B@@@@ CALL INTGR8(OP )@@G@@GEQ,CEQ,CAPGD,LOCT+11) *[@@@@CTS@:C@#@@@@ GGD=GGD+GEQ *[@@@@CTS@:MOQ )@@G@@@ @@@@ CG=CG+CQGD(LX0+LOCT) *[@@@@CTS@:W@ @@@@ CD=CD-CQGD(LOR )@@G@@X0+LOCT) *[@@@@CTS@:&@ @@@@ CGD=CGD+CQGD(LX0+LOCT) *[@@@@CTS@:0OS )@@G@@@A@@@@ IF (INITF.NE.5) GO TO 700 *[@@@@CTS@:'@A@@@@ CQGS(LOT )@@G@@X1+LOCT)=CQGS(LX0+LOCT) *[@@@@CTS@?^@A@@@@ CQGD(LX1+LOCT)=CQGD(LX0+OU )@@G@@LOCT) *[@@@@CTS@?I@[@@@@C *[@@@@CTS@?S@^@@@@C CHECK CONVERGENCE OV )@@G@@*[@@@@CTS@?+@[@@@@C *[@@@@CTS@??@A@@@@ 700 IF (INITF.NE.3) GO TO 71OW )@@G@@0 *[@@@@CTS@?6@ @@@@ IF (IOFF.EQ.0) GO TO 710*[@@@@CTS@!@@#@@@@OX )@@G@@ GO TO 750 *[@@@@CTS@!E@A@@@@ 710 IF (ICHECK.EQ.0) GO TO 720 OY )@@G@@*[@@@@CTS@!O@D@@@@ TOL=RELTOL*DMAX1(DABS(CGHAT),DABS(CG))+ABSTOL OZ )@@G@@*[@@@@CTS@!Y@B@@@@ IF (DABS(CGHAT-CG).GE.TOL) GO TO 720*[@@@@CTS@!*PA )@@G@@@D@@@@ TOL=RELTOL*DMAX1(DABS(CDHAT),DABS(CD))+ABSTOL *[@@@@CTS@!2PB )@@G@@@B@@@@ IF (DABS(CDHAT-CD).LE.TOL) GO TO 750*[@@@@CTS@!/@^@@@@ 720 PC )@@G@@NONCON=NONCON+1 *[@@@@CTS@,A@^@@@@ 750 VGSO(LX0+LOCT)=VGS*[@@@@CTS@,KPD )@@G@@@^@@@@ VGDO(LX0+LOCT)=VGD*[@@@@CTS@,U@^@@@@ CGO(LX0+LOCT)=CG PE )@@G@@*[@@@@CTS@,=@^@@@@ CDO(LX0+LOCT)=CD *[@@@@CTS@,,@^@@@@ CGDO(LPF )@@G@@X0+LOCT)=CGD*[@@@@CTS@,8@^@@@@ GMO(LX0+LOCT)=GM *[@@@@CTS@\]@^@@@@PG )@@G@@ GDSO(LX0+LOCT)=GDS*[@@@@CTS@\G@^@@@@ GGSO(LX0+LOCT)=GGS*[@@@@PH )@@G@@CTS@\Q@^@@@@ GGDO(LX0+LOCT)=GGD*[@@@@CTS@\)@[@@@@C *[@@@@CTS@\%PI )@@G@@@^@@@@C LOAD CURRENT VECTOR *[@@@@CTS@\4@[@@@@C *[@@@@CTS@\"@ @@@@PJ )@@G@@ 900 CEQGD=TYPE*(CGD-GGD*VGD)*[@@@@CTS@0C@A@@@@ CEQGS=TYPE*((CG-CGPK )@@G@@D)-GGS*VGS) *[@@@@CTS@0M@B@@@@ CDREQ=TYPE*((CD+CGD)-GDS*VDS-GM*VGS)PL )@@G@@*[@@@@CTS@0W@D@@@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)-CEQGS-CEQGD PM )@@G@@*[@@@@CTS@0&@D@@@@ VALUE(LVN+NODE4)=VALUE(LVN+NODE4)-CDREQ+CEQGD PN )@@G@@*[@@@@CTS@00@D@@@@ VALUE(LVN+NODE5)=VALUE(LVN+NODE5)+CDREQ+CEQGS PO )@@G@@*[@@@@CTS@0'@[@@@@C *[@@@@CTS@1^@#@@@@C LOAD Y MATRIX *[@@@@CTS@1IPP )@@G@@@[@@@@C *[@@@@CTS@1S@ @@@@ LOCY=LYNL+NODPLC(LOC+20)*[@@@@CTS@1+PQ )@@G@@@A@@@@ VALUE(LOCY)=VALUE(LOCY)+GDPR *[@@@@CTS@1?@ @@@@ LOCY=LPR )@@G@@YNL+NODPLC(LOC+21)*[@@@@CTS@16@B@@@@ VALUE(LOCY)=VALUE(LOCY)+GGD+GGPS )@@G@@S *[@@@@CTS@2@@ @@@@ LOCY=LYNL+NODPLC(LOC+22)*[@@@@CTS@2E@A@@@@PT )@@G@@ VALUE(LOCY)=VALUE(LOCY)+GSPR *[@@@@CTS@2O@ @@@@ LOCY=LYNL+NOPU )@@G@@DPLC(LOC+23)*[@@@@CTS@2Y@B@@@@ VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GGDPV )@@G@@*[@@@@CTS@2*@ @@@@ LOCY=LYNL+NODPLC(LOC+24)*[@@@@CTS@22@C@@@@ PW )@@G@@VALUE(LOCY)=VALUE(LOCY)+GSPR+GDS+GM+GGS *[@@@@CTS@2/@ @@@@ LOCY=LPX )@@G@@YNL+NODPLC(LOC+9) *[@@@@CTS@3A@A@@@@ VALUE(LOCY)=VALUE(LOCY)-GDPR PY )@@G@@*[@@@@CTS@3K@ @@@@ LOCY=LYNL+NODPLC(LOC+10)*[@@@@CTS@3U@A@@@@ PZ )@@G@@VALUE(LOCY)=VALUE(LOCY)-GGD *[@@@@CTS@3=@ @@@@ LOCY=LYNL+NODPLC(LQA )@@G@@OC+11)*[@@@@CTS@3,@A@@@@ VALUE(LOCY)=VALUE(LOCY)-GGS *[@@@@CTS@38QB )@@G@@@ @@@@ LOCY=LYNL+NODPLC(LOC+12)*[@@@@CTS@4]@A@@@@ VALUE(LOCY)=QC )@@G@@VALUE(LOCY)-GSPR *[@@@@CTS@4G@ @@@@ LOCY=LYNL+NODPLC(LOC+13)*[@@@@QD )@@G@@CTS@4Q@A@@@@ VALUE(LOCY)=VALUE(LOCY)-GDPR *[@@@@CTS@4)@ @@@@ QE )@@G@@LOCY=LYNL+NODPLC(LOC+14)*[@@@@CTS@4%@A@@@@ VALUE(LOCY)=VALUE(LOCY)+QF )@@G@@GM-GGD*[@@@@CTS@44@ @@@@ LOCY=LYNL+NODPLC(LOC+15)*[@@@@CTS@4"@A@@@@QG )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GDS-GM*[@@@@CTS@5C@ @@@@ LOCY=LYNL+NOQH )@@G@@DPLC(LOC+16)*[@@@@CTS@5M@A@@@@ VALUE(LOCY)=VALUE(LOCY)-GGS-GM*[@@@@QI )@@G@@CTS@5W@ @@@@ LOCY=LYNL+NODPLC(LOC+17)*[@@@@CTS@5&@A@@@@ VALUE(QJ )@@G@@LOCY)=VALUE(LOCY)-GSPR *[@@@@CTS@50@ @@@@ LOCY=LYNL+NODPLC(LOC+18)QK )@@G@@*[@@@@CTS@5'@A@@@@ VALUE(LOCY)=VALUE(LOCY)-GDS *[@@@@CTS@6^@^@@@@QL )@@G@@ 1000 LOC=NODPLC(LOC) *[@@@@CTS@6I@#@@@@ GO TO 10 *[@@@@CTS@6SQM )@@G@@@]@@@@ END ___ *[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE AQN )@@G@@SOL *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE EVALUQO )@@G@@ATES THE ADJOINT CIRCUIT RESPONSE BY DOING A *[@@@@CTS@@*@G@@@@C FORWQP )@@G@@ARD/BACKWARD SUBSTITUTION ON THE TRANSPOSE OF THE COEFFICIENT *[@@@@QQ )@@G@@CTS@@2@]@@@@C MATRIX. *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@ QR )@@G@@IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.TABINF,LIST @ @@@^QS )@@G@@ INCLUDE F.CIRDAT,LIST @ @@@^ INCLUDE F.BLANK,LIST @^@^@#QT )@@G@@@ADD,P *SPICE.ASOLD *[@@@@CTS@[K@G@#@@ COMMON /TABINF/ IELMNT,IQU )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[U@G@#@@ 1 ISEQV )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[=QW )@@G@@@G@#@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFQX )@@G@@,ISR, *[@@@@CTS@[,@G@#@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWQY )@@G@@AP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[8@G@#@@ 4 LX0,LVN,LYNL,LYU,LYL,QZ )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@]]@#@#@@ 5 LOURA )@@G@@TPT, *[@@@@CTS@]G@E@#@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACIRB )@@G@@NS,LLVNIM, *[@@@@CTS@]Q@G@#@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLRC )@@G@@X2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@])@A@#@@ 8 LLD0,LLD1,LLTD,RD )@@G@@LLOUTP,LDIAG*[@@@@CTS@]%@G@#@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50RE )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]4@C@#@@ 1 NUT,NLT,NXTRM,NRF )@@G@@DIST,NTLIN,IBR,NUMVS *[@@@@CTS@]"@ @#@@ COMMON /BLANK/ VALUE(64)RG )@@G@@*[@@@@CTS@#C@^@#@@ INTEGER NODPLC(64)*[@@@@CTS@#M@ @#@@ COMPLERH )@@G@@X*16 CVALUE(32) *[@@@@CTS@#W@C@#@@ EQUIVALENCE (VALUE(1),NODPLC(1RI )@@G@@),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@^@@@@C FORWARD SUBSTITRJ )@@G@@UTION *[@@@@CTS@#'@[@@@@C *[@@@@CTS@^^@^@@@@ DO 20 I=2,NSTOP RK )@@G@@*[@@@@CTS@^I@ @@@@ IO=NODPLC(IORDER+I) *[@@@@CTS@^S@C@@@@ RL )@@G@@VALUE(LVN+IO)=VALUE(LVN+IO)/VALUE(LYNL+IO)*[@@@@CTS@^+@ @@@@ JSTARTRM )@@G@@=NODPLC(IUR+I) *[@@@@CTS@^?@ @@@@ JSTOP=NODPLC(IUR+I+1)-1 *[@@@@RN )@@G@@CTS@^6@A@@@@ IF (JSTART.GT.JSTOP) GO TO 20 *[@@@@CTS@ @@B@@@@ RO )@@G@@IF (VALUE(LVN+IO).EQ.0.D0) GO TO 20 *[@@@@CTS@ E@ @@@@ DO 10 J=JSTARP )@@G@@RT,JSTOP *[@@@@CTS@ O@^@@@@ JO=NODPLC(IUC+J) *[@@@@CTS@ Y@ @@@@RQ )@@G@@ JO=NODPLC(IORDER+JO) *[@@@@CTS@ *@E@@@@ VALUE(LVN+JO)=VALURR )@@G@@E(LVN+JO)-VALUE(LYU+J)*VALUE(LVN+IO)*[@@@@CTS@ 2@#@@@@ 10 CONTINUE RS )@@G@@*[@@@@CTS@ /@#@@@@ 20 CONTINUE *[@@@@CTS@AA@[@@@@C *[@@@@CTS@AKRT )@@G@@@^@@@@C BACKWARD SUBSTITUTION*[@@@@CTS@AU@[@@@@C *[@@@@CTS@A=@#@@@@RU )@@G@@ K=NSTOP+1 *[@@@@CTS@A,@^@@@@ DO 40 I=2,NSTOP *[@@@@CTS@A8RV )@@G@@@]@@@@ K=K-1 *[@@@@CTS@B]@ @@@@ IO=NODPLC(IORDER+K) *[@@@@RW )@@G@@CTS@BG@ @@@@ JSTART=NODPLC(ILC+K) *[@@@@CTS@BQ@ @@@@ JSTOP=RX )@@G@@NODPLC(ILC+K+1)-1 *[@@@@CTS@B)@A@@@@ IF (JSTART.GT.JSTOP) GO TO 40 RY )@@G@@*[@@@@CTS@B%@ @@@@ DO 30 J=JSTART,JSTOP *[@@@@CTS@B4@^@@@@ RZ )@@G@@JO=NODPLC(ILR+J) *[@@@@CTS@B"@ @@@@ JO=NODPLC(IORDER+JO) *[@@@@SA )@@G@@CTS@CC@E@@@@ VALUE(LVN+IO)=VALUE(LVN+IO)-VALUE(LYL+J)*VALUE(LVN+JO)SB )@@G@@*[@@@@CTS@CM@#@@@@ 30 CONTINUE *[@@@@CTS@CW@#@@@@ 40 CONTINUE SC )@@G@@*[@@@@CTS@C&@[@@@@C *[@@@@CTS@C0@ @@@@C REORDER RIGHT-HAND SIDE SD )@@G@@*[@@@@CTS@C'@[@@@@C *[@@@@CTS@D^@^@@@@ DO 50 I=2,NSTOP *[@@@@SE )@@G@@CTS@DI@^@@@@ J=NODPLC(ISWAP+I) *[@@@@CTS@DS@A@@@@ VALUE(LDIAG+SF )@@G@@I)=VALUE(LVN+J) *[@@@@CTS@D+@#@@@@ 50 CONTINUE *[@@@@CTS@D=@^@]@@SG )@@G@@ LDG1=LDIAG+1 *[@@@@CTS@D&@#@]@@ LVN1=LVN+1 *[@@@@CTS@D*SH )@@G@@@B@]@@ CALL COPY8(VALUE,LDG1,LVN1,NSTOP) *[@@@@CTS@D?@D@]@@C SI )@@G@@CALL COPY8(VALUE(LDIAG+1),VALUE(LVN+1),NSTOP) @D@@@] CALL COPY8(VSJ )@@G@@ALUE(LDIAG+1),VALUE(LVN+1),NSTOP) *[@@@@CTS@D6@[@@@@C *[@@@@CTS@E@SK )@@G@@@]@@@@C FINISHED *[@@@@CTS@EE@[@@@@C *[@@@@CTS@EO@]@@@@ RETURNSL )@@G@@*[@@@@CTS@EY@]@@@@ END ___ LQCDGE( [GE1I*[S@@@*SDFF**[@@@@CTS@@ESM )@@G@@@^@@@@ SUBROUTINE ACDCMP *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@SN )@@G@@C THIS ROUTINE PERFORMS AN LU FACTORIZATION OF THE CIRCUIT EQUATION SO )@@G@@*[@@@@CTS@@*@^@@@@C COEFFICIENT MATRIX. *[@@@@CTS@@2@[@@@@C *[@@@@SP )@@G@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TASQ )@@G@@BINF,LIST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.FLSR )@@G@@AGS,LIST @ @@@# INCLUDE F.KNSTNT,LIST @ @@@# INCLUDE F.BLSS )@@G@@ANK,LIST @^@#@]@ADD,P *SPICE.ACDCMPD *[@@@@CTS@[A@G@]@@ COMMONST )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[KSU )@@G@@@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZESV )@@G@@, *[@@@@CTS@[U@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,SW )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQSX )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@]@@ 4 LX0SY )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8SZ )@@G@@@#@]@@ 5 LOUTPT, *[@@@@CTS@]]@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,TA )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@]@@ 7 LLX0,LLVN,LLYNLTB )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@]@@ 8TC )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@]@@ COMMON /CIRDAT/ LOTD )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]%@C@]@@ 1TE )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]4@G@]@@ COMMONTF )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@]"TG )@@G@@@F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF TH )@@G@@*[@@@@CTS@#C@G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTI )@@G@@TZ,CHARGE,CTOK, *[@@@@CTS@#M@F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTJ )@@G@@TOL,CHGTOL,EPS0,EPSSIL,EPSOX *[@@@@CTS@#W@ @]@@ COMMON /BLANK/ VALTK )@@G@@UE(64)*[@@@@CTS@#&@^@]@@ INTEGER NODPLC(64)*[@@@@CTS@#?@A@]@@ TL )@@G@@COMPLEX*16 CVALUE(32),CVAL1 *[@@@@CTS@#0@ @]@@C COMPLEX*16 CVALUE(TM )@@G@@32) *[@@@@CTS@#'@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))TN )@@G@@*[@@@@CTS@^^@[@@@@C *[@@@@CTS@^I@[@@@@C *[@@@@CTS@^S@^@@@@ TO )@@G@@DO 100 I=2,NSTOP *[@@@@CTS@^+@ @@@@ IO=NODPLC(IORDER+I) *[@@@@TP )@@G@@CTS@^&@ @[@@ CVAL1=CVALUE(LYNL+IO) *[@@@@CTS@^*@D@[@@ GDIAG=TQ )@@G@@DABS(DREAL(CVAL1))+DABS(DIMAG(CVAL1)) *[@@@@CTS@^?@G@[@@C GDIAG=TR )@@G@@DABS(DREAL(CVALUE(LYNL+IO)))+DABS(DIMAG(CVALUE(LYNL+IO))) @G@@@[ TS )@@G@@GDIAG=DABS(DREAL(CVALUE(LYNL+IO)))+DABS(DIMAG(CVALUE(LYNL+IO))) *[@@@@TT )@@G@@CTS@^6@A@@@@ IF (GDIAG.GE.GMIN) GO TO 10 *[@@@@CTS@ @@B@@@@ TU )@@G@@CVALUE(LYNL+IO)=DCMPLX(GMIN,0.D0) *[@@@@CTS@ E@^@@@@ IGOOF=IGOOF+TV )@@G@@1 *[@@@@CTS@ O@ @@@@ 10 JSTART=NODPLC(ILC+I) *[@@@@CTS@ Y@ @@@@TW )@@G@@ JSTOP=NODPLC(ILC+I+1)-1 *[@@@@CTS@ *@A@@@@ IF (JSTART.GT.JSTOTX )@@G@@P) GO TO 100*[@@@@CTS@ 2@ @@@@ DO 90 J=JSTART,JSTOP *[@@@@CTS@ /TY )@@G@@@D@@@@ CVALUE(LYL+J)=CVALUE(LYL+J)/CVALUE(LYNL+IO) *[@@@@CTS@AATZ )@@G@@@^@@@@ ICOL=NODPLC(ILR+J)*[@@@@CTS@AK@ @@@@ KSTART=NODPLC(IUR+UA )@@G@@I) *[@@@@CTS@AU@ @@@@ KSTOP=NODPLC(IUR+I+1)-1 *[@@@@CTS@A=@A@@@@UB )@@G@@ IF (KSTART.GT.KSTOP) GO TO 90 *[@@@@CTS@A,@ @@@@ DO 80 K=KSTAUC )@@G@@RT,KSTOP *[@@@@CTS@A8@^@@@@ IROW=NODPLC(IUC+K)*[@@@@CTS@B]@ @@@@UD )@@G@@ IF (ICOL-IROW) 20,60,40 *[@@@@CTS@BG@[@@@@C *[@@@@CTS@BQ@C@@@@UE )@@G@@C FIND (ICOL,IROW) MATRIX TERM (UPPER TRIANGLE)*[@@@@CTS@B)@[@@@@C UF )@@G@@*[@@@@CTS@B%@ @@@@ 20 L=NODPLC(IUR+ICOL+1) *[@@@@CTS@B4@]@@@@ 30 UG )@@G@@L=L-1 *[@@@@CTS@B"@B@@@@ IF (NODPLC(IUC+L).NE.IROW) GO TO 30 *[@@@@UH )@@G@@CTS@CC@#@@@@ ISPOT=LYU+L *[@@@@CTS@CM@#@@@@ GO TO 70 *[@@@@UI )@@G@@CTS@CW@[@@@@C *[@@@@CTS@C&@C@@@@C FIND (ICOL,IROW) MATRIX TERM (LOWUJ )@@G@@ER TRIANGLE)*[@@@@CTS@C0@[@@@@C *[@@@@CTS@C'@ @@@@ 40 L=NODPLC(ILCUK )@@G@@+IROW+1) *[@@@@CTS@D^@]@@@@ 50 L=L-1 *[@@@@CTS@DI@B@@@@ IF (NOUL )@@G@@DPLC(ILR+L).NE.ICOL) GO TO 50 *[@@@@CTS@DS@#@@@@ ISPOT=LYL+L *[@@@@UM )@@G@@CTS@D+@#@@@@ GO TO 70 *[@@@@CTS@D?@[@@@@C *[@@@@CTS@D6@B@@@@UN )@@G@@C FIND (ICOL,IROW) MATRIX TERM (DIAGONAL)*[@@@@CTS@E@@[@@@@C *[@@@@UO )@@G@@CTS@EE@A@@@@ 60 ISPOT=LYNL+NODPLC(IORDER+IROW)*[@@@@CTS@EO@[@@@@C UP )@@G@@*[@@@@CTS@EY@F@@@@ 70 CVALUE(ISPOT)=CVALUE(ISPOT)-CVALUE(LYL+J)*CVALUEUQ )@@G@@(LYU+K) *[@@@@CTS@E*@#@@@@ 80 CONTINUE *[@@@@CTS@E2@#@@@@ 90 UR )@@G@@CONTINUE *[@@@@CTS@E/@#@@@@ 100 CONTINUE *[@@@@CTS@FA@]@@@@ US )@@G@@RETURN*[@@@@CTS@FK@]@@@@ END ___D1JC-KD-# [DE(# TG C,D1 1DELJE8(UT )@@G@@^[BD8)E-J^@3A@)^@)*[@@@@CTS@CC@ @@@@^@)^@)^@)DDNE[JE).D-TE*:D))^@)*[@@@@UU )@@G@@CTS@CM@^@@@@^@)^@)^@)C9J*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE AUV )@@G@@CSOL *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE SOLVEUW )@@G@@S THE CIRCUIT EQUATIONS BY PERFORMING A FORWARD *[@@@@CTS@@*@G@@@@C AND UX )@@G@@BACKWARD SUBSTITUTION USING THE PREVIOUSLY-COMPUTED LU FACTORS. *[@@@@UY )@@G@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) UZ )@@G@@@ @@@^ INCLUDE F.TABINF,LIST @ @@@^ INCLUDE F.CIRDAT,LIST VA )@@G@@@ @@@^ INCLUDE F.BLANK,LIST @^@^@#@ADD,P *SPICE.ACSOLD *[@@@@VB )@@G@@CTS@[A@G@#@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEVC )@@G@@MPS,NUMTEM, *[@@@@CTS@[K@G@#@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICVD )@@G@@ODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[U@G@#@@ 2 JUNODE,LSBKPT,NVE )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@#@@ 3VF )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@VG )@@G@@CTS@[,@G@#@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDVH )@@G@@0,LD1,LTD, *[@@@@CTS@[8@#@#@@ 5 LOUTPT, *[@@@@CTS@]]@E@#@@ 6VI )@@G@@ LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@#@@VJ )@@G@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, VK )@@G@@*[@@@@CTS@]Q@A@#@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@#@@VL )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, VM )@@G@@*[@@@@CTS@]%@C@#@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@VN )@@G@@CTS@]4@ @#@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@]"@^@#@@ INTEGEVO )@@G@@R NODPLC(64)*[@@@@CTS@#C@ @#@@C COMPLEX*16 CVALUE(32) *[@@@@CTS@#MVP )@@G@@@A@#@@ COMPLEX*16 CVALUE(32),CVAL1 *[@@@@CTS@#W@C@#@@ EQUIVAVQ )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0VR )@@G@@@^@@@@C FORWARD SUBSTITUTION *[@@@@CTS@#'@[@@@@C *[@@@@CTS@^^@^@@@@VS )@@G@@ DO 20 I=2,NSTOP *[@@@@CTS@^I@ @@@@ JSTART=NODPLC(ILC+I) VT )@@G@@*[@@@@CTS@^S@ @@@@ JSTOP=NODPLC(ILC+I+1)-1 *[@@@@CTS@^+@A@@@@ VU )@@G@@IF (JSTART.GT.JSTOP) GO TO 20 *[@@@@CTS@^?@ @@@@ IO=NODPLC(IORDER+IVV )@@G@@) *[@@@@CTS@^6@ @]@@ CVAL1=CVALUE(LVN+IO) *[@@@@CTS@ @@B@]@@VW )@@G@@ IF (DREAL(CVAL1).NE.0.0D0) GO TO 5 *[@@@@CTS@ E@B@]@@ IF (DIVX )@@G@@MAG(CVAL1).EQ.0.0D0) GO TO 20 *[@@@@CTS@ O@D@]@@C IF (DREAL(CVALUE(LVY )@@G@@VN+IO)).NE.0.0D0) GO TO 5 @D@@@] IF (DREAL(CVALUE(LVN+IO)).NE.0VZ )@@G@@.0D0) GO TO 5 *[@@@@CTS@ Y@D@]@@C IF (DIMAG(CVALUE(LVN+IO)).EQ.0WA )@@G@@.0D0) GO TO 20 @D@@@] IF (DIMAG(CVALUE(LVN+IO)).EQ.0.0D0) GO TO WB )@@G@@20 *[@@@@CTS@ *@ @@@@ 5 DO 10 J=JSTART,JSTOP *[@@@@CTS@ 2@^@@@@WC )@@G@@ JO=NODPLC(ILR+J) *[@@@@CTS@ /@ @@@@ JO=NODPLC(IORDER+JO) WD )@@G@@*[@@@@CTS@AA@F@@@@ CVALUE(LVN+JO)=CVALUE(LVN+JO)-CVALUE(LYL+J)*CVALWE )@@G@@UE(LVN+IO) *[@@@@CTS@AK@#@@@@ 10 CONTINUE *[@@@@CTS@AU@#@@@@ 20 WF )@@G@@CONTINUE *[@@@@CTS@A=@[@@@@C *[@@@@CTS@A,@^@@@@C BACK SUBSTITUTIWG )@@G@@ON *[@@@@CTS@A8@[@@@@C *[@@@@CTS@B]@#@@@@ K=NSTOP+1 *[@@@@WH )@@G@@CTS@BG@^@@@@ DO 50 I=2,NSTOP *[@@@@CTS@BQ@]@@@@ K=K-1 *[@@@@WI )@@G@@CTS@B)@ @@@@ IO=NODPLC(IORDER+K) *[@@@@CTS@B%@ @@@@ JSTARTWJ )@@G@@=NODPLC(IUR+K) *[@@@@CTS@B4@ @@@@ JSTOP=NODPLC(IUR+K+1)-1 *[@@@@WK )@@G@@CTS@B"@A@@@@ IF (JSTART.GT.JSTOP) GO TO 40 *[@@@@CTS@CC@ @@@@ WL )@@G@@DO 30 J=JSTART,JSTOP *[@@@@CTS@CM@^@@@@ JO=NODPLC(IUC+J) *[@@@@WM )@@G@@CTS@CW@ @@@@ JO=NODPLC(IORDER+JO) *[@@@@CTS@C&@F@@@@ CVALUEWN )@@G@@(LVN+IO)=CVALUE(LVN+IO)-CVALUE(LYU+J)*CVALUE(LVN+JO) *[@@@@CTS@C0@#@@@@WO )@@G@@ 30 CONTINUE *[@@@@CTS@C'@D@@@@ 40 CVALUE(LVN+IO)=CVALUE(LVN+IO)/WP )@@G@@CVALUE(LYNL+IO) *[@@@@CTS@D^@#@@@@ 50 CONTINUE *[@@@@CTS@DI@]@@@@WQ )@@G@@ RETURN*[@@@@CTS@DS@]@@@@ END ___^@)*[@@@@CTS@B]@^@@@@^@)^@)WR )@@G@@^@)DS.D1NE-JE@:AC)*[@@@@*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE AWS )@@G@@CASOL *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE EVALUWT )@@G@@ATES THE RESPONSE OF THE ADJOINT CIRCUIT BY *[@@@@CTS@@*@G@@@@C DOINWU )@@G@@G A FORWARD/BACKWARD SUBSTITUTION STEP USING THE TRANSPOSE OF THE *[@@@@WV )@@G@@CTS@@2@B@@@@C CIRCUIT EQUATION COEFFICIENT MATRIX. *[@@@@CTS@@/@[@@@@WW )@@G@@C *[@@@@CTS@[A@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# WX )@@G@@INCLUDE F.TABINF,LIST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@# WY )@@G@@INCLUDE F.BLANK,LIST @^@#@]@DD,P *SPICE.ACASOLD *[@@@@CTS@[K@G@]@@WZ )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, XA )@@G@@*[@@@@CTS@[U@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IXB )@@G@@COLUM,INSIZE, *[@@@@CTS@[=@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERXC )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[,@G@]@@ 3 NMOFFC,ISXD )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[8@G@]@@XE )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, XF )@@G@@*[@@@@CTS@]]@#@]@@ 5 LOUTPT, *[@@@@CTS@]G@E@]@@ 6 LUNSAT,LTXG )@@G@@EMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]Q@G@]@@ 7 LLXXH )@@G@@0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@])XI )@@G@@@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]%@G@]@@ COMMONXJ )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]4XK )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]"@ @]@@XL )@@G@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#C@^@]@@ INTEGER NODPLC(64)XM )@@G@@*[@@@@CTS@#K@A@]@@ COMPLEX*16 CVALUE(32),CVAL1 *[@@@@CTS@#M@ @]@@XN )@@G@@C COMPLEX*16 CVALUE(32) *[@@@@CTS@#W@C@]@@ EQUIVALENCE (VALUEXO )@@G@@(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#&@[@@@@C *[@@@@CTS@#0@G@@@@C EVAXP )@@G@@LUATES ADJOINT RESPONSE BY DOING FORWARD/BACKWARD SUBSTITUTION ON *[@@@@XQ )@@G@@CTS@#'@A@@@@C THE TRANSPOSE OF THE Y MATRIX *[@@@@CTS@^^@[@@@@C XR )@@G@@*[@@@@CTS@^I@[@@@@C *[@@@@CTS@^S@^@@@@C FORWARD SUBSTITUTION *[@@@@XS )@@G@@CTS@^+@[@@@@C *[@@@@CTS@^?@^@@@@ DO 20 I=2,NSTOP *[@@@@CTS@^6XT )@@G@@@ @@@@ IO=NODPLC(IORDER+I) *[@@@@CTS@ @@D@@@@ CVALUE(LVN+IXU )@@G@@O)=CVALUE(LVN+IO)/CVALUE(LYNL+IO) *[@@@@CTS@ E@ @@@@ JSTART=NODPLXV )@@G@@C(IUR+I) *[@@@@CTS@ O@ @@@@ JSTOP=NODPLC(IUR+I+1)-1 *[@@@@CTS@ YXW )@@G@@@A@@@@ IF (JSTART.GT.JSTOP) GO TO 20 *[@@@@CTS@ )@ @[@@ CVAL1=XX )@@G@@CVALUE(LVN+IO) *[@@@@CTS@ +@B@[@@ IF (DREAL(CVAL1).NE.0.0D0) GO XY )@@G@@TO 5 *[@@@@CTS@ =@B@[@@ IF (DIMAG(CVAL1).EQ.0.0D0) GO TO 20 *[@@@@XZ )@@G@@CTS@ *@D@[@@C IF (DREAL(CVALUE(LVN+IO)).NE.0.0D0) GO TO 5 @D@@@[YA )@@G@@ IF (DREAL(CVALUE(LVN+IO)).NE.0.0D0) GO TO 5 *[@@@@CTS@ 2@D@[@@YB )@@G@@C IF (DIMAG(CVALUE(LVN+IO)).EQ.0.0D0) GO TO 20 @D@@@[ IF (DIYC )@@G@@MAG(CVALUE(LVN+IO)).EQ.0.0D0) GO TO 20 *[@@@@CTS@ /@ @@@@ 5 DO 10 YD )@@G@@J=JSTART,JSTOP *[@@@@CTS@AA@^@@@@ JO=NODPLC(IUC+J) *[@@@@CTS@AKYE )@@G@@@ @@@@ JO=NODPLC(IORDER+JO) *[@@@@CTS@AU@F@@@@ CVALUE(LVN+JYF )@@G@@O)=CVALUE(LVN+JO)-CVALUE(LYU+J)*CVALUE(LVN+IO) *[@@@@CTS@A=@#@@@@ 10 YG )@@G@@CONTINUE *[@@@@CTS@A,@#@@@@ 20 CONTINUE *[@@@@CTS@A8@[@@@@C YH )@@G@@*[@@@@CTS@B]@^@@@@C BACKWARD SUBSTITUTION*[@@@@CTS@BG@[@@@@C *[@@@@YI )@@G@@CTS@BQ@#@@@@ K=NSTOP+1 *[@@@@CTS@B)@^@@@@ DO 40 I=2,NSTOP YJ )@@G@@*[@@@@CTS@B%@]@@@@ K=K-1 *[@@@@CTS@B4@ @@@@ IO=NODPLC(IORDER+KYK )@@G@@) *[@@@@CTS@B"@ @@@@ JSTART=NODPLC(ILC+K) *[@@@@CTS@CC@ @@@@YL )@@G@@ JSTOP=NODPLC(ILC+K+1)-1 *[@@@@CTS@CM@A@@@@ IF (JSTART.GT.JSTOYM )@@G@@P) GO TO 40 *[@@@@CTS@CW@ @@@@ DO 30 J=JSTART,JSTOP *[@@@@CTS@C&YN )@@G@@@^@@@@ JO=NODPLC(ILR+J) *[@@@@CTS@C0@ @@@@ JO=NODPLC(IORDER+JYO )@@G@@O) *[@@@@CTS@C'@F@@@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)-CVALUE(LYL+JYP )@@G@@)*CVALUE(LVN+JO) *[@@@@CTS@D^@#@@@@ 30 CONTINUE *[@@@@CTS@DI@#@@@@YQ )@@G@@ 40 CONTINUE *[@@@@CTS@DS@[@@@@C *[@@@@CTS@D+@ @@@@C REORDER RYR )@@G@@IGHT-HAND SIDE *[@@@@CTS@D?@[@@@@C *[@@@@CTS@D6@^@@@@ DO 50 YS )@@G@@I=2,NSTOP *[@@@@CTS@E@@^@@@@ J=NODPLC(ISWAP+I) *[@@@@CTS@EE@A@@@@YT )@@G@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) *[@@@@CTS@EO@#@@@@ 50 CONTINUE YU )@@G@@*[@@@@CTS@EQ@#@[@@ NDG1=NDIAG+1*[@@@@CTS@ES@#@[@@ LVN1=LVN+1 YV )@@G@@*[@@@@CTS@EU@B@[@@ CALL COPY16(CVALUE,NDG1,LVN1,NSTOP) *[@@@@CTS@EYYW )@@G@@@D@[@@C CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@D@@@[ YX )@@G@@CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)*[@@@@CTS@E*@[@@@@C YY )@@G@@*[@@@@CTS@E2@]@@@@C FINISHED *[@@@@CTS@E/@[@@@@C *[@@@@CTS@FA@]@@@@YZ )@@G@@ RETURN*[@@@@CTS@FK@]@@@@ END ___A@)*[@@@@CTS@)%@C@@@@^@)AS4ZA )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@C@@@@ SUBROUTINE NTRPL8(/LOCX/,/LOCY/,/NUMZB )@@G@@PNT/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE INTERZC )@@G@@POLATES THE ANALYSIS DATA TO OBTAIN THE VALUES *[@@@@CTS@@*@G@@@@C PRINZD )@@G@@TED AND/OR PLOTTED, USING LAGRANGIAN INTERPOLATION WITH A POLYNO- *[@@@@ZE )@@G@@CTS@@2@^@@@@C MIAL OF DEGREE 2. *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[AZF )@@G@@@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@] INCLUDE F.TABINF,LZG )@@G@@IST @ @@@] INCLUDE F.STATUS,LIST @ @@@] INCLUDE F.OUTINF,LZH )@@G@@IST @ @@@] INCLUDE F.BLANK,LIST @^@]@[@ADD,P *SPICE.NTRPL8D ZI )@@G@@*[@@@@CTS@[K@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSZJ )@@G@@AT,ITEMPS,NUMTEM, *[@@@@CTS@[U@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIZK )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[=@G@[@@ 2 JUNODE,LSZL )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[,@G@[@@ZM )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, ZN )@@G@@*[@@@@CTS@[8@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,ZO )@@G@@LX7,LD0,LD1,LTD, *[@@@@CTS@]]@#@[@@ 5 LOUTPT, *[@@@@CTS@]G@E@[@@ZP )@@G@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]QZQ )@@G@@@G@[@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LZR )@@G@@LX7, *[@@@@CTS@])@A@[@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]%ZS )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEZT )@@G@@T, *[@@@@CTS@]4@F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXZU )@@G@@ORD,NONCON,ITERNO,*[@@@@CTS@]"@^@[@@ 2 ITEMNO,NOSOLV *[@@@@CTS@#CZV )@@G@@@G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPZW )@@G@@E(8), *[@@@@CTS@#M@C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT ZX )@@G@@*[@@@@CTS@#W@ @[@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#&@^@[@@ ZY )@@G@@INTEGER NODPLC(64)*[@@@@CTS@#0@ @[@@ COMPLEX*16 CVALUE(32) *[@@@@ZZ )@@G@@CTS@#'@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^^AA )@@G@@@[@@@@C *[@@@@CTS@^I@#@@@@ XVAR=XSTART *[@@@@CTS@^S@^@@@@ AB )@@G@@XVTOL=XINCR*1.0D-5*[@@@@CTS@^+@#@@@@ IPPNT=0 *[@@@@CTS@^?@#@@@@AC )@@G@@ ICPNT=3 *[@@@@CTS@^6@#@@@@ LOCO1=LOUTPT*[@@@@CTS@ @@^@@@@AD )@@G@@ LOCO2=LOCO1+NUMOUT*[@@@@CTS@ E@^@@@@ LOCO3=LOCO2+NUMOUT*[@@@@AE )@@G@@CTS@ O@ @@@@ IF (ICALC.LE.2) GO TO 50*[@@@@CTS@ Y@^@@@@ 10 X1=VALAF )@@G@@UE(LOCO1+1) *[@@@@CTS@ *@^@@@@ X2=VALUE(LOCO2+1) *[@@@@CTS@ 2@^@@@@AG )@@G@@ X3=VALUE(LOCO3+1) *[@@@@CTS@ /@#@@@@ DX1X2=X1-X2 *[@@@@CTS@AAAH )@@G@@@#@@@@ DX1X3=X1-X3 *[@@@@CTS@AK@#@@@@ DX2X3=X2-X3 *[@@@@CTS@AUAI )@@G@@@A@@@@ XDNOM1=1.D0/(DX1X2*DX1X3) *[@@@@CTS@A=@A@@@@ XDNOM2AJ )@@G@@=-1.D0/(DX1X2*DX2X3) *[@@@@CTS@A,@A@@@@ XDNOM3=1.D0/(DX2X3*DX1X3AK )@@G@@) *[@@@@CTS@A8@A@@@@ 20 IF (XINCR.LT.0.D0) GO TO 24 *[@@@@CTS@B]AL )@@G@@@B@@@@ IF (XVAR.LE.(X3+XVTOL)) GO TO 30 *[@@@@CTS@BG@#@@@@ AM )@@G@@GO TO 28 *[@@@@CTS@BQ@B@@@@ 24 IF (XVAR.GE.(X3+XVTOL)) GO TO 30 AN )@@G@@*[@@@@CTS@B)@A@@@@ 28 IF (ICPNT.GE.ICALC) GO TO 100 *[@@@@CTS@B%@^@@@@AO )@@G@@ ICPNT=ICPNT+1 *[@@@@CTS@B4@#@@@@ LOCO1=LOCO2 *[@@@@CTS@B"AP )@@G@@@#@@@@ LOCO2=LOCO3 *[@@@@CTS@CC@^@@@@ LOCO3=LOCO2+NUMOUT*[@@@@AQ )@@G@@CTS@CM@#@@@@ GO TO 10 *[@@@@CTS@CW@^@@@@ 30 IPPNT=IPPNT+1 AR )@@G@@*[@@@@CTS@C&@ @@@@ VALUE(LOCX+IPPNT)=XVAR *[@@@@CTS@C0@#@@@@ AS )@@G@@DXX1=XVAR-X1*[@@@@CTS@C'@#@@@@ DXX2=XVAR-X2*[@@@@CTS@D^@#@@@@ AT )@@G@@DXX3=XVAR-X3*[@@@@CTS@DI@ @@@@ XFACT1=DXX2*DXX3*XDNOM1 *[@@@@CTS@DSAU )@@G@@@ @@@@ XFACT2=DXX1*DXX3*XDNOM2 *[@@@@CTS@D+@ @@@@ XFACT3=DXX1*AV )@@G@@DXX2*XDNOM3 *[@@@@CTS@D?@#@@@@ LOCYT=LOCY *[@@@@CTS@D6@^@@@@ AW )@@G@@DO 40 I=1,KNTR *[@@@@CTS@E@@#@@@@ ISEQ=ITAB(I)*[@@@@CTS@EE@ @@@@AX )@@G@@ ISEQ=NODPLC(ISEQ+4) *[@@@@CTS@EO@ @@@@ V1=VALUE(LOCO1+ISEAY )@@G@@Q) *[@@@@CTS@EY@ @@@@ V2=VALUE(LOCO2+ISEQ) *[@@@@CTS@E*@ @@@@AZ )@@G@@ V3=VALUE(LOCO3+ISEQ) *[@@@@CTS@E2@B@@@@ YVR=V1*XFACT1+V2*XBA )@@G@@FACT2+V3*XFACT3 *[@@@@CTS@E/@D@@@@ TOL=DMIN1(DABS(V1),DABS(V2),DABB )@@G@@BS(V3))*1.D-10 *[@@@@CTS@FA@A@@@@ IF (DABS(YVR).LE.TOL) YVR=0.D0BC )@@G@@*[@@@@CTS@FK@ @@@@ VALUE(LOCYT+IPPNT)=YVR *[@@@@CTS@FU@^@@@@ BD )@@G@@LOCYT=LOCYT+NPOINT*[@@@@CTS@F=@#@@@@ 40 CONTINUE *[@@@@CTS@F,@A@@@@BE )@@G@@ IF (IPPNT.GE.NPOINT) GO TO 100*[@@@@CTS@F8@B@@@@ XVAR=XSTART+BF )@@G@@DFLOAT(IPPNT)*XINCR *[@@@@CTS@G]@C@@@@ IF (DABS(XVAR).GE.DABS(XBG )@@G@@VTOL)) GO TO 20 *[@@@@CTS@GG@#@@@@ XVAR=0.0D0 *[@@@@CTS@GQ@#@@@@BH )@@G@@ GO TO 20 *[@@@@CTS@G)@[@@@@C *[@@@@CTS@G%@A@@@@C SPECIAL HBI )@@G@@ANDLING IF ICALC ' 2 *[@@@@CTS@G4@[@@@@C *[@@@@CTS@G"@ @@@@ 50 BJ )@@G@@IF (ICALC.EQ.2) GO TO 70*[@@@@CTS@HC@E@@@@C... ICALC=1; JUST COPY OVERBK )@@G@@ THE SINGLE POINT AND RETURN *[@@@@CTS@HM@#@@@@ IPPNT=1 *[@@@@BL )@@G@@CTS@HW@ @@@@ VALUE(LOCX+IPPNT)=XVAR *[@@@@CTS@H&@#@@@@ LOCYT=BM )@@G@@LOCY *[@@@@CTS@H0@^@@@@ DO 60 I=1,KNTR *[@@@@CTS@H'@#@@@@ BN )@@G@@ISEQ=ITAB(I)*[@@@@CTS@I^@ @@@@ ISEQ=NODPLC(ISEQ+4) *[@@@@CTS@IIBO )@@G@@@B@@@@ VALUE(LOCYT+IPPNT)=VALUE(LOCO1+ISEQ)*[@@@@CTS@IS@^@@@@ BP )@@G@@LOCYT=LOCYT+NPOINT*[@@@@CTS@I+@#@@@@ 60 CONTINUE *[@@@@CTS@I?@#@@@@BQ )@@G@@ GO TO 100 *[@@@@CTS@I6@B@@@@C... ICALC=2; LINEAR INTERPOLATIONBR )@@G@@ USED *[@@@@CTS@J@@^@@@@ 70 X1=VALUE(LOCO1+1) *[@@@@CTS@JE@^@@@@ BS )@@G@@X2=VALUE(LOCO2+1) *[@@@@CTS@JO@A@@@@ 80 IF (XINCR.LT.0.D0) GO TO 84 BT )@@G@@*[@@@@CTS@JY@A@@@@ IF (XVAR.GT.X2) GO TO 100 *[@@@@CTS@J*@#@@@@BU )@@G@@ GO TO 88 *[@@@@CTS@J2@A@@@@ 84 IF (XVAR.LT.X2) GO TO 100 BV )@@G@@*[@@@@CTS@J/@^@@@@ 88 IPPNT=IPPNT+1 *[@@@@CTS@KA@ @@@@ VALUE(BW )@@G@@LOCX+IPPNT)=XVAR *[@@@@CTS@KK@#@@@@ LOCYT=LOCY *[@@@@CTS@KU@^@@@@BX )@@G@@ DO 90 I=1,KNTR *[@@@@CTS@K=@#@@@@ ISEQ=ITAB(I)*[@@@@CTS@K,BY )@@G@@@ @@@@ ISEQ=NODPLC(ISEQ+4) *[@@@@CTS@K8@ @@@@ V1=VALUE(LOCBZ )@@G@@O1+ISEQ) *[@@@@CTS@L]@ @@@@ V2=VALUE(LOCO2+ISEQ) *[@@@@CTS@LGCA )@@G@@@B@@@@ YVR=V1+((XVAR-X1)/(X2-X1))*(V2-V1) *[@@@@CTS@LQ@B@@@@ CB )@@G@@TOL=DMIN1(DABS(V1),DABS(V2))*1.D-10 *[@@@@CTS@L)@A@@@@ IF (DABS(YVRCC )@@G@@).LE.TOL) YVR=0.D0*[@@@@CTS@L%@ @@@@ VALUE(LOCYT+IPPNT)=YVR *[@@@@CD )@@G@@CTS@L4@^@@@@ LOCYT=LOCYT+NPOINT*[@@@@CTS@L"@#@@@@ 90 CONTINUE CE )@@G@@*[@@@@CTS@MC@A@@@@ IF (IPPNT.GE.NPOINT) GO TO 100*[@@@@CTS@MM@B@@@@CF )@@G@@ XVAR=XSTART+DFLOAT(IPPNT)*XINCR *[@@@@CTS@MW@C@@@@ IF (DACG )@@G@@BS(XVAR).GE.DABS(XVTOL)) GO TO 80 *[@@@@CTS@M&@#@@@@ XVAR=0.0D0 CH )@@G@@*[@@@@CTS@M0@#@@@@ GO TO 80 *[@@@@CTS@M'@[@@@@C *[@@@@CTS@N^CI )@@G@@@]@@@@C RETURN *[@@@@CTS@NI@[@@@@C *[@@@@CTS@NS@#@@@@ 100 NUMPNTCJ )@@G@@=IPPNT*[@@@@CTS@N+@]@@@@ RETURN*[@@@@CTS@N?@]@@@@ END ___ 00CK )@@G@@ 1^A@(^[BD8)E-J^@8A))^@)*[@@@@CTS@JY@D@@@@^@)^@)*[S@@@*SDFF**[@@@@CTS@@ECL )@@G@@@ @@@@ SUBROUTINE SETPRN(/LOC/)*[@@@@CTS@@O@[@@@@C *[@@@@CTS@@YCM )@@G@@@G@@@@C THIS ROUTINE FORMATS THE COLUMN HEADERS FOR TABULAR LISTINGSCN )@@G@@ OF *[@@@@CTS@@*@^@@@@C OUTPUT VARIABLES. *[@@@@CTS@@2@[@@@@C CO )@@G@@*[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDCP )@@G@@E F.TABINF,LIST @ @@@# INCLUDE F.STATUS,LIST @ @@@# INCLUDCQ )@@G@@E F.MISCEL,LIST @^@@@# INCLUDE F.DC,LIST @^@@@# INCLUDE F.ACCR )@@G@@,LIST @ @@@# INCLUDE F.TRAN,LIST @ @@@# INCLUDE F.OUTINF,LCS )@@G@@IST @ @@@# INCLUDE F.BLANK,LIST @^@#@]@ADD,P *SPICE.SETPRND CT )@@G@@*[@@@@CTS@[A@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSCU )@@G@@AT,ITEMPS,NUMTEM, *[@@@@CTS@[K@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFICV )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[U@G@]@@ 2 JUNODE,LSCW )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@]@@CX )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, CY )@@G@@*[@@@@CTS@[,@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,CZ )@@G@@LX7,LD0,LD1,LTD, *[@@@@CTS@[8@#@]@@ 5 LOUTPT, *[@@@@CTS@]]@E@]@@DA )@@G@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]GDB )@@G@@@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LDC )@@G@@LX7, *[@@@@CTS@]Q@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])DD )@@G@@@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEDE )@@G@@T, *[@@@@CTS@]%@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXDF )@@G@@ORD,NONCON,ITERNO,*[@@@@CTS@]4@^@]@@ 2 ITEMNO,NOSOLV *[@@@@CTS@]"DG )@@G@@@G@]@@ COMMON /MISCEL/ APROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATSDH )@@G@@(50), *[@@@@CTS@#C@ @]@@ 1 IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@#M@ @]@@DI )@@G@@ INTEGER*4 ATIME,ADATE *[@@@@CTS@#W@G@]@@ COMMON /DC/ TCSTARDJ )@@G@@,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, *[@@@@CTS@#&@^@]@@ 1DK )@@G@@ KOVAR,KIDOUT *[@@@@CTS@#0@G@]@@ COMMON /AC/ FSTART,FSTOP,FINCRDL )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, *[@@@@CTS@#'@C@]@@ 1 INOISE,NODM )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT *[@@@@CTS@^^@F@]@@ COMMON /TRAN/ TSTEDN )@@G@@P,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG *[@@@@CTS@^I@G@]@@ COMMONDO )@@G@@ /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), *[@@@@CTS@^SDP )@@G@@@C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT *[@@@@CTS@^+@ @]@@DQ )@@G@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@^?@^@]@@ INTEGER NODPLC(64)DR )@@G@@*[@@@@CTS@^6@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@ @@C@]@@ DS )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@ E@[@@@@C *[@@@@DT )@@G@@CTS@ O@E@@@@ DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / DU )@@G@@*[@@@@CTS@ Y@[@@@@C *[@@@@CTS@ *@C@@@@C SET LIMITS DEPENDING UPON TDV )@@G@@HE ANALYSIS MODE *[@@@@CTS@ 2@[@@@@C *[@@@@CTS@ /@ @@@@ IF (MODW )@@G@@DE-2) 10,20,30 *[@@@@CTS@AA@^@@@@ 10 XSTART=TCSTAR *[@@@@CTS@AKDX )@@G@@@#@@@@ XINCR=TCINCR*[@@@@CTS@AU@^@@@@ NPOINT=ICVFLG *[@@@@DY )@@G@@CTS@A=@ @@@@ LOCE=NODPLC(ITCELM+1) *[@@@@CTS@A,@^@@@@ ASWEEPDZ )@@G@@=VALUE(LOCE)*[@@@@CTS@A8@#@@@@ GO TO 40 *[@@@@CTS@B]@^@@@@ 20 EA )@@G@@XSTART=TSTART *[@@@@CTS@BG@#@@@@ XINCR=TSTEP *[@@@@CTS@BQ@^@@@@EB )@@G@@ NPOINT=JTRFLG *[@@@@CTS@B)@^@@@@ ASWEEP=ATIMEX *[@@@@EC )@@G@@CTS@B%@#@@@@ GO TO 40 *[@@@@CTS@B4@^@@@@ 30 XSTART=FSTART ED )@@G@@*[@@@@CTS@B"@#@@@@ XINCR=FINCR *[@@@@CTS@CC@#@@@@ NPOINT=ICALCEE )@@G@@*[@@@@CTS@CM@#@@@@ ASWEEP=AFREQ*[@@@@CTS@CW@[@@@@C *[@@@@CTS@C&EF )@@G@@@C@@@@C CONSTRUCT AND PRINT THE OUTPUT VARIABLE NAMES*[@@@@CTS@C0@[@@@@EG )@@G@@C *[@@@@CTS@C'@#@@@@ 40 LOCT=LOC+2 *[@@@@CTS@D^@]@@@@ IPOS=1EH )@@G@@*[@@@@CTS@DI@^@@@@ NPOS=IPOS+NUMDGT+8*[@@@@CTS@DS@^@@@@ DO 90 EI )@@G@@I=1,KNTR *[@@@@CTS@D+@#@@@@ LOCT=LOCT+2 *[@@@@CTS@D?@ @@@@ EJ )@@G@@ITAB(I)=NODPLC(LOCT) *[@@@@CTS@D6@ @@@@ ITYPE(I)=NODPLC(LOCT+1) EK )@@G@@*[@@@@CTS@E@@C@@@@ CALL OUTNAM(ITAB(I),ITYPE(I),STRING,IPOS) *[@@@@EL )@@G@@CTS@EE@A@@@@ IF (IPOS.GE.NPOS) GO TO 70 *[@@@@CTS@EO@^@@@@ EM )@@G@@DO 60 J=IPOS,NPOS *[@@@@CTS@EY@A@@@@ CALL MOVE(STRING,J,ABLNK,1,1) EN )@@G@@*[@@@@CTS@E*@#@@@@ 60 CONTINUE *[@@@@CTS@E2@#@@@@ IPOS=NPOS EO )@@G@@*[@@@@CTS@E/@#@@@@ GO TO 80 *[@@@@CTS@FA@B@@@@ 70 CALL MOVE(STEP )@@G@@RING,IPOS,ABLNK,1,1) *[@@@@CTS@FK@#@@@@ IPOS=IPOS+1 *[@@@@CTS@FUEQ )@@G@@@^@@@@ 80 NPOS=NPOS+NUMDGT+8*[@@@@CTS@F=@#@@@@ 90 CONTINUE *[@@@@ER )@@G@@CTS@F,@B@@@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) *[@@@@CTS@F8@^@@@@ES )@@G@@ JSTOP=(IPOS+6)/8 *[@@@@CTS@G]@C@@@@ WRITE (6,91) ASWEEP,(STRET )@@G@@ING(J),J=1,JSTOP) *[@@@@CTS@GG@A@@@@ 91 FORMAT(/3X,A8,5X,14A8,A4) EU )@@G@@@#@@@[ WRITE(6,101)@^@@@[ 101 FORMAT(1HY/1H ) *[@@@@CTS@GQ@]@@@@EV )@@G@@ RETURN*[@@@@CTS@G)@]@@@@ END ___A07*[S@@@*SDFF**[@@@@CTS@@EEW )@@G@@@ @@@@ SUBROUTINE SETPLT(/LOC/)*[@@@@CTS@@O@[@@@@C *[@@@@CTS@@YEX )@@G@@@G@@@@C THIS ROUTINE GENERATES THE #LEGEND# SUBHEADING USED TO IDENTEY )@@G@@IFY *[@@@@CTS@@*@D@@@@C INDIVIDUAL TRACES ON MULTI-TRACE LINE-PRINTER EZ )@@G@@PLOTS.*[@@@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (AFA )@@G@@-H,O-Z) @ @@@] INCLUDE F.TABINF,LIST @ @@@] INCLUDE F.STFB )@@G@@ATUS,LIST @ @@@] INCLUDE F.MISCEL,LIST @^@@@] INCLUDE F.DCFC )@@G@@,LIST @^@@@] INCLUDE F.AC,LIST @ @@@] INCLUDE F.TRAN,LIST FD )@@G@@@ @@@] INCLUDE F.OUTINF,LIST @ @@@] INCLUDE F.BLANK,LIST FE )@@G@@@^@]@[@ADD,P *SPICE.SETPLTD *[@@@@CTS@[A@G@[@@ COMMON /TABINF/ IEFF )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[K@G@[@@ 1FG )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@FH )@@G@@CTS@[U@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,FI )@@G@@NUMOFF,ISR, *[@@@@CTS@[=@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIFJ )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@[@@ 4 LX0,LVN,LYNL,LYFK )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8@#@[@@ 5FL )@@G@@ LOUTPT, *[@@@@CTS@]]@E@[@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKFM )@@G@@P,LACINS,LLVNIM, *[@@@@CTS@]G@G@[@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LFN )@@G@@LX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@[@@ 8 LLD0,LLD1FO )@@G@@,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELFP )@@G@@TA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]%@F@[@@ 1 MODE,MODEFQ )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@]4@^@[@@ 2FR )@@G@@ ITEMNO,NOSOLV *[@@@@CTS@]"@G@[@@ COMMON /MISCEL/ APROG(3),ATIMEFS )@@G@@(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@#C@ @[@@ 1 IWIDTH,LWFT )@@G@@IDTH,NOPAGE *[@@@@CTS@#M@ @[@@ INTEGER*4 ATIME,ADATE *[@@@@CTS@#WFU )@@G@@@G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KFV )@@G@@IDIN, *[@@@@CTS@#&@^@[@@ 1 KOVAR,KIDOUT *[@@@@CTS@#0@G@[@@ FW )@@G@@COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, *[@@@@FX )@@G@@CTS@#'@C@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT *[@@@@CTS@^^FY )@@G@@@F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG FZ )@@G@@*[@@@@CTS@^I@G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,GA )@@G@@ITAB(8),ITYPE(8), *[@@@@CTS@^S@C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTRGB )@@G@@,NUMDGT *[@@@@CTS@^+@ @[@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@^?GC )@@G@@@^@[@@ INTEGER NODPLC(64)*[@@@@CTS@^6@ @[@@ COMPLEX*16 CVALUE(GD )@@G@@32) *[@@@@CTS@ @@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))GE )@@G@@*[@@@@CTS@ E@[@@@@C *[@@@@CTS@ O@ @@@@ DIMENSION LOGOPT(6) GF )@@G@@*[@@@@CTS@ Y@B@@@@ DATA LOGOPT / 2, 2, 1, 1, 1, 1 / *[@@@@CTS@ *GG )@@G@@@E@@@@ DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / *[@@@@GH )@@G@@CTS@ 2@A@@@@ DATA PLTSYM / 8H+*#@='<> / *[@@@@CTS@ /@[@@@@C GI )@@G@@*[@@@@CTS@AA@C@@@@C SET LIMITS DEPENDING UPON THE ANALYSIS MODE *[@@@@GJ )@@G@@CTS@AK@[@@@@C *[@@@@CTS@AU@ @@@@ IF (MODE-2) 10,20,30 *[@@@@GK )@@G@@CTS@A=@^@@@@ 10 XSTART=TCSTAR *[@@@@CTS@A,@#@@@@ XINCR=TCINCRGL )@@G@@*[@@@@CTS@A8@^@@@@ NPOINT=ICVFLG *[@@@@CTS@B]@ @@@@ LOCE=NGM )@@G@@ODPLC(ITCELM+1) *[@@@@CTS@BG@^@@@@ ASWEEP=VALUE(LOCE)*[@@@@CTS@BQGN )@@G@@@#@@@@ GO TO 40 *[@@@@CTS@B)@^@@@@ 20 XSTART=TSTART *[@@@@GO )@@G@@CTS@B%@#@@@@ XINCR=TSTEP *[@@@@CTS@B4@^@@@@ NPOINT=JTRFLG GP )@@G@@*[@@@@CTS@B"@^@@@@ ASWEEP=ATIMEX *[@@@@CTS@CC@#@@@@ GO TO GQ )@@G@@40 *[@@@@CTS@CM@^@@@@ 30 XSTART=FSTART *[@@@@CTS@CW@#@@@@ GR )@@G@@XINCR=FINCR *[@@@@CTS@C&@^@@@@ NPOINT=JACFLG *[@@@@CTS@C0@#@@@@GS )@@G@@ ASWEEP=AFREQ*[@@@@CTS@C'@[@@@@C *[@@@@CTS@D^@G@@@@C CONSTRUCTGT )@@G@@ AND PRINT THE OUTPUT VARIABLES WITH CORRESPONDING PLOT *[@@@@CTS@DIGU )@@G@@@]@@@@C SYMBOLS*[@@@@CTS@DS@[@@@@C *[@@@@CTS@D+@#@@@@ 40 LOCT=LGV )@@G@@OC+2 *[@@@@CTS@D?@ @@@@ IF (KNTR.EQ.1) GO TO 80 *[@@@@CTS@D6@#@@@@GW )@@G@@ WRITE (6,41)*[@@@@CTS@E@@ @@@@ 41 FORMAT('0LEGEND:'/) *[@@@@GX )@@G@@CTS@EE@^@@@@ DO 70 I=1,KNTR *[@@@@CTS@EO@#@@@@ LOCT=LOCT+2 GY )@@G@@*[@@@@CTS@EY@ @@@@ ITAB(I)=NODPLC(LOCT) *[@@@@CTS@E*@ @@@@ GZ )@@G@@IOUTYP=NODPLC(LOCT+1) *[@@@@CTS@E2@^@@@@ ITYPE(I)=IOUTYP *[@@@@HA )@@G@@CTS@E/@#@@@@ ILOGY(I)=1 *[@@@@CTS@FA@ @@@@ IF (MODE.LE.2) GO HB )@@G@@TO 50 *[@@@@CTS@FK@ @@@@ ILOGY(I)=LOGOPT(IOUTYP) *[@@@@CTS@FU@]@@@@HC )@@G@@ 50 IPOS=1*[@@@@CTS@F=@C@@@@ CALL OUTNAM(ITAB(I),ITYPE(I),STRING,HD )@@G@@IPOS) *[@@@@CTS@F,@B@@@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) *[@@@@HE )@@G@@CTS@F8@^@@@@ JSTOP=(IPOS+6)/8 *[@@@@CTS@G]@A@@@@ CALL MOVE(ACHF )@@G@@HAR,1,PLTSYM,I,1) *[@@@@CTS@GG@C@@@@ WRITE (6,61) ACHAR,(STRING(J),HG )@@G@@J=1,JSTOP) *[@@@@CTS@GQ@ @@@@ 61 FORMAT(1X,A1,2H: ,5A8) *[@@@@CTS@G)HH )@@G@@@#@@@@ 70 CONTINUE *[@@@@CTS@G%@ @@@@ 80 IF (KNTR.GE.2) GO TO 90 HI )@@G@@*[@@@@CTS@G4@ @@@@ ITAB(1)=NODPLC(LOC+4) *[@@@@CTS@G"@ @@@@ HJ )@@G@@IOUTYP=NODPLC(LOC+5) *[@@@@CTS@HC@^@@@@ ITYPE(1)=IOUTYP *[@@@@HK )@@G@@CTS@HM@#@@@@ ILOGY(1)=1 *[@@@@CTS@HW@ @@@@ IF (MODE.LE.2) GO HL )@@G@@TO 90 *[@@@@CTS@H&@ @@@@ ILOGY(1)=LOGOPT(IOUTYP) *[@@@@CTS@H0@]@@@@HM )@@G@@ 90 IPOS=1*[@@@@CTS@H'@C@@@@ CALL OUTNAM(ITAB(1),ITYPE(1),STRING,HN )@@G@@IPOS) *[@@@@CTS@I^@B@@@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) *[@@@@HO )@@G@@CTS@II@^@@@@ JSTOP=(IPOS+6)/8 *[@@@@CTS@IS@C@@@@ WRITE (6,101HP )@@G@@) ASWEEP,(STRING(J),J=1,JSTOP)*[@@@@CTS@I+@ @@@@ 101 FORMAT(3X,A8,4X,5AHQ )@@G@@8) *[@@@@CTS@I?@]@@@@ RETURN*[@@@@CTS@I6@]@@@@ END ___@GQHR )@@G@@@B@@@@^@)^@6AC)C1JELHCDO @1F@?CC1 )2D@'^@?A([B@(*[@@@@CTS@G)@^@@@@^@)^@7HS )@@G@@A@)CTJD1ODDIE( ^@)*[@@@@*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE FHT )@@G@@OURAN *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE DETERHU )@@G@@MINES THE FOURIER COEFFICIENTS OF A TRANSIENT *[@@@@CTS@@*@^@@@@C ANALHV )@@G@@YSIS WAVEFORM. *[@@@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ IMPLICHW )@@G@@IT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LIST @ @@@# HX )@@G@@INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.FLAGS,LIST @ @@@# HY )@@G@@INCLUDE F.MISCEL,LIST @ @@@# INCLUDE F.STATUS,LIST @ @@@# HZ )@@G@@INCLUDE F.KNSTNT,LIST @ @@@# INCLUDE F.TRAN,LIST @ @@@# IA )@@G@@INCLUDE F.OUTINF,LIST @ @@@# INCLUDE F.BLANK,LIST @^@#@]@ADD,PIB )@@G@@ *SPICE.FOURAND *[@@@@CTS@[A@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,IC )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[K@G@]@@ 1 ISENS,NSEID )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[U@G@]@@IE )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, IF )@@G@@*[@@@@CTS@[=@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQIG )@@G@@UA,MACINS,LVNIM1, *[@@@@CTS@[,@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXIH )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8@#@]@@ 5 LOUTPT, II )@@G@@*[@@@@CTS@]]@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVIJ )@@G@@NIM, *[@@@@CTS@]G@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLXIK )@@G@@3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTPIL )@@G@@,LDIAG*[@@@@CTS@])@G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOIM )@@G@@DS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]%@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NIN )@@G@@TLIN,IBR,NUMVS *[@@@@CTS@]4@G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IIO )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@]"@F@]@@ 1 LVLCOD,LVIP )@@G@@LTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@#C@G@]@@ IQ )@@G@@COMMON /MISCEL/ APROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@IR )@@G@@CTS@#M@ @]@@ 1 IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@#W@ @]@@ INTEGEIS )@@G@@R*4 ATIME,ADATE *[@@@@CTS@#&@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELIT )@@G@@TA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@#0@F@]@@ 1 MODE,MODEIU )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@#'@^@]@@ 2IV )@@G@@ ITEMNO,NOSOLV *[@@@@CTS@^^@G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLIW )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@^I@F@]@@ 1 GMIN,RELTIX )@@G@@OL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX *[@@@@CTS@^S@F@]@@ IY )@@G@@COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG *[@@@@CTS@^+IZ )@@G@@@G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPJA )@@G@@E(8), *[@@@@CTS@^?@C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT JB )@@G@@*[@@@@CTS@^6@ @]@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@ @@^@]@@ JC )@@G@@INTEGER NODPLC(64)*[@@@@CTS@ E@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@JD )@@G@@CTS@ O@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@ YJE )@@G@@@[@@@@C *[@@@@CTS@ *@[@@@@C *[@@@@CTS@ 2@A@@@@ DIMENSION SIJF )@@G@@NCO(9),COSCO(9) *[@@@@CTS@ /@ @@@@ DIMENSION FORTIT(4) *[@@@@JG )@@G@@CTS@AA@G@@@@ DATA FORTIT / 8HFOURIER , 8HANALYSIS, 8H , 8H JH )@@G@@ / *[@@@@CTS@AK@^@@@@ DATA ABLNK / 1H /*[@@@@CTS@AU@[@@@@JI )@@G@@C *[@@@@CTS@A=@[@@@@C *[@@@@CTS@A,@^@@@@ FORPRD=1.D0/FORFREJJ )@@G@@*[@@@@CTS@A8@ @@@@ XSTART=TSTOP-FORPRD *[@@@@CTS@B]@]@@@@ JK )@@G@@KNTR=1*[@@@@CTS@BG@#@@@@ XN=101.D0 *[@@@@CTS@BQ@^@@@@ XINCR=JL )@@G@@FORPRD/XN *[@@@@CTS@B)@#@@@@ NPOINT=XN *[@@@@CTS@B%@]@[@@ JM )@@G@@LOCX=0*[@@@@CTS@B2@A@[@@ CALL GETMEM(LLOCX,1,2*NPOINT) *[@@@@CTS@B4JN )@@G@@@A@[@@C CALL GETMEM(LLOCX,2*NPOINT) @A@@@[ CALL GETMEM(LLOCX,JO )@@G@@2*NPOINT) *[@@@@CTS@B"@^@@@@ LOCX=(LLOCX+1)/2 *[@@@@CTS@CC@#@[@@JP )@@G@@ LLOCY=0 *[@@@@CTS@CK@A@[@@ CALL GETMEM(LLOCY,1,2*NPOINT) JQ )@@G@@*[@@@@CTS@CM@A@[@@C CALL GETMEM(LLOCY,2*NPOINT) @A@@@[ CALL GJR )@@G@@ETMEM(LLOCY,2*NPOINT) *[@@@@CTS@CW@^@@@@ LOCY=(LLOCY+1)/2 *[@@@@JS )@@G@@CTS@C&@ @@@@ DO 105 NKNT=1,NFOUR *[@@@@CTS@C0@A@@@@ ITAB(1JT )@@G@@)=NODPLC(IFOUR+NKNT) *[@@@@CTS@C'@^@@@@ KFROUT=ITAB(1) *[@@@@JU )@@G@@CTS@D^@A@@@@ CALL NTRPL8(LOCX,LOCY,NUMPNT) *[@@@@CTS@DI@#@@@@ JV )@@G@@DCCO=0.D0 *[@@@@CTS@DQ@ @[@@ CALL ZERO8(SINCO,1,9) *[@@@@CTS@DSJW )@@G@@@ @[@@C CALL ZERO8(SINCO,9) @ @@@[ CALL ZERO8(SINCO,9) JX )@@G@@*[@@@@CTS@D)@ @[@@ CALL ZERO8(COSCO,1,9) *[@@@@CTS@D+@ @[@@C JY )@@G@@CALL ZERO8(COSCO,9) @ @@@[ CALL ZERO8(COSCO,9) *[@@@@CTS@D?JZ )@@G@@@#@@@@ LOCT=LOCY+1 *[@@@@CTS@D6@]@@@@ IPNT=0*[@@@@CTS@E@@ @@@@KA )@@G@@ 10 YVR=VALUE(LOCT+IPNT) *[@@@@CTS@EE@^@@@@ DCCO=DCCO+YVR KB )@@G@@*[@@@@CTS@EO@A@@@@ FORFAC=DFLOAT(IPNT)*TWOPI/XN *[@@@@CTS@EY@#@@@@KC )@@G@@ ARG=0.D0 *[@@@@CTS@E*@#@@@@ DO 20 K=1,9 *[@@@@CTS@E2@^@@@@KD )@@G@@ ARG=ARG+FORFAC *[@@@@CTS@E/@B@@@@ SINCO(K)=SINCO(K)+YVR*DSKE )@@G@@IN(ARG) *[@@@@CTS@FA@B@@@@ COSCO(K)=COSCO(K)+YVR*DCOS(ARG) KF )@@G@@*[@@@@CTS@FK@#@@@@ 20 CONTINUE *[@@@@CTS@FU@#@@@@ IPNT=IPNT+1 KG )@@G@@*[@@@@CTS@F=@A@@@@ IF (IPNT.NE.NPOINT) GO TO 10 *[@@@@CTS@F,@#@@@@KH )@@G@@ DCCO=DCCO/XN*[@@@@CTS@F8@^@@@@ FORFAC=2.D0/XN *[@@@@CTS@G]KI )@@G@@@#@@@@ DO 30 K=1,9 *[@@@@CTS@GG@ @@@@ SINCO(K)=SINCO(K)*FORFACKJ )@@G@@*[@@@@CTS@GQ@ @@@@ COSCO(K)=COSCO(K)*FORFAC*[@@@@CTS@G)@#@@@@ 30 KK )@@G@@CONTINUE *[@@@@CTS@G%@A@@@@ CALL TITLE(0,72,1,FORTIT) *[@@@@KL )@@G@@CTS@G4@]@@@@ IPOS=1*[@@@@CTS@G"@B@@@@ CALL OUTNAM(KFROUT,1,STRKM )@@G@@ING,IPOS) *[@@@@CTS@HC@B@@@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) KN )@@G@@*[@@@@CTS@HM@^@@@@ JSTOP=(IPOS+6)/8 *[@@@@CTS@HW@B@@@@ WRITE KO )@@G@@(6,61) (STRING(J),J=1,JSTOP) *[@@@@CTS@H&@F@@@@ 61 FORMAT(' FOURIER CKP )@@G@@OMPONENTS OF TRANSIENT RESPONSE ',5A8///) *[@@@@CTS@H0@^@@@@ WRITE KQ )@@G@@(6,71) DCCO *[@@@@CTS@H'@B@@@@ 71 FORMAT('0DC COMPONENT =',1PD12.3/, KR )@@G@@*[@@@@CTS@I^@G@@@@ 1 '0HARMONIC FREQUENCY FOURIER NORMALIZKS )@@G@@ED PHASE NO*[@@@@CTS@II@#@@@@ 2RMALIZED'/, *[@@@@CTS@IS@G@@@@KT )@@G@@ 3 ' NO (HZ) COMPONENT COMPONENT (DEG) PHAKU )@@G@@*[@@@@CTS@I+@#@@@@ 4SE (DEG)'//)*[@@@@CTS@I?@]@@@@ IKNT=1*[@@@@KV )@@G@@CTS@I6@#@@@@ FREQ1=FORFRE*[@@@@CTS@J@@#@@@@ XNHARM=1.D0 *[@@@@KW )@@G@@CTS@JE@E@@@@ CALL MAGPHS(DCMPLX(SINCO(1),COSCO(1)),XNORM,PNORM) KX )@@G@@*[@@@@CTS@JO@#@@@@ PHASEN=0.D0 *[@@@@CTS@JY@E@@@@ WRITE (6,81)KY )@@G@@ IKNT,FREQ1,XNORM,XNHARM,PNORM,PHASEN *[@@@@CTS@J*@D@@@@ 81 FORMATKZ )@@G@@(I6,1PD15.3,D12.3,0PF13.6,F10.3,F12.3/) *[@@@@CTS@J2@#@@@@ THD=0.LA )@@G@@D0 *[@@@@CTS@J/@^@@@@ DO 90 IKNT=2,9 *[@@@@CTS@KA@A@@@@ LB )@@G@@FREQ1=DFLOAT(IKNT)*FORFRE *[@@@@CTS@KK@F@@@@ CALL MAGPHS(DCMPLXLC )@@G@@(SINCO(IKNT),COSCO(IKNT)),HARM,PHASE) *[@@@@CTS@KU@^@@@@ XNHARMLD )@@G@@=HARM/XNORM *[@@@@CTS@K=@^@@@@ PHASEN=PHASE-PNORM*[@@@@CTS@K,@ @@@@LE )@@G@@ THD=THD+XNHARM*XNHARM *[@@@@CTS@K8@D@@@@ WRITE (6,81) IKNT,LF )@@G@@FREQ1,HARM,XNHARM,PHASE,PHASEN*[@@@@CTS@L]@#@@@@ 90 CONTINUE *[@@@@LG )@@G@@CTS@LG@ @@@@ THD=100.D0*DSQRT(THD) *[@@@@CTS@LQ@^@@@@ WRITE LH )@@G@@(6,101) THD *[@@@@CTS@L)@G@@@@ 101 FORMAT (//5X,'TOTAL HARMONIC DISTORTLI )@@G@@ION = ',F12.6,' PERCENT') *[@@@@CTS@L%@#@@@@ 105 CONTINUE *[@@@@LJ )@@G@@CTS@L4@^@@@@ CALL CLRMEM(LLOCX)*[@@@@CTS@L"@^@@@@ CALL CLRMEM(LK )@@G@@LLOCY)*[@@@@CTS@MC@]@@@@ 110 RETURN*[@@@@CTS@MM@]@@@@ END ___D1JLL )@@G@@*[@@@@CTS@II@ @@@@^@)^@)^@2ELHCDGDDUC(^^8\ ))^@)*[@@@@CTS@IS@M@@@@^@)^@)LM )@@G@@^@3^@)^@$^@)^@)D1J^@)^@)*[S@@@*SDFF*@]@]@@*DECK SPICE @^@]@@ OVERLALN )@@G@@Y(SPICE,0,0)@G@]@@ PROGRAM SPICE (INPUT=201,OUTPUT=201,TAPE5=INPUT,LO )@@G@@TAPE6=OUTPUT) @[@]@@C @[@]@@C @A@]@@C *** VERSION 2E.0 (LP )@@G@@18JAN78) ***@[@]@@C @[@]@@C @G@]@@C SPICE IS AN ELECTRONIC CLQ )@@G@@IRCUIT SIMULATION PROGRAM THAT WAS DEVE- @G@]@@C LOPED BY THE INTEGRATELR )@@G@@D CIRCUITS GROUP OF THE ELECTRONICS RESEARCH @G@]@@C LABORATORY AND TLS )@@G@@HE DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER @G@]@@C SCIENCES ALT )@@G@@T THE UNIVERSITY OF CALIFORNIA, BERKELEY, CALIFORNIA. THE @G@]@@C PROGLU )@@G@@RAM SPICE IS AVAILABLE FREE OF CHARGE TO ANY INTERESTED PARTY. @F@]@@LV )@@G@@C THE SALE, RESALE, OR USE OF THIS PROGRAM FOR PROFIT WITHOUT THE @G@]@@LW )@@G@@C EXPRESS WRITTEN CONSENT OF THE DEPARTMENT OF ELECTRICAL ENGINEERING LX )@@G@@@G@]@@C AND COMPUTER SCIENCES, UNIVERSITY OF CALIFORNIA, BERKELEY, CALIFLY )@@G@@ORNIA,@#@]@@C IS FORBIDDEN. @[@]@@C @[@]@@C @^@]@@C IMPLEMENTALZ )@@G@@TION NOTES: @[@]@@C @G@]@@C SUBROUTINES MCLOCK AND MDATE RETURN MA )@@G@@THE TIME (AS HH:MM:SS) AND @G@]@@C THE DATE (AS DD MMM YY), RESPECTIVMB )@@G@@ELY. SUBROUTINE GETCJE RETURNS IN @G@]@@C COMMON BLOCK /CJE/ VARIOUS AMC )@@G@@TTRIBUTES OF THE CURRENT JOB ENVIRONMENT. @G@]@@C SPICE EXPECTS GETCJE TMD )@@G@@O SET /CJE/ VARIABLES MAXMEM, MAXTIM, ITIME, @G@]@@C ICOST, AND ILINEME )@@G@@S TO THE MAXIMUM PERMITTED FIELD LENGTH (IN WORDS), @G@]@@C THE CPU TIMF )@@G@@ME LIMIT FOR THIS JOB (IN MILLISECONDS), THE ELAPSED CPU @G@]@@C TIMEMG )@@G@@ (IN MILLISECONDS), THE JOB COST (IN CENTS), AND THE NUMBER OF @G@]@@MH )@@G@@C LINES PRINTED. IF UNABLE TO OBTAIN THE INFORMATION MENTIONED, SET MI )@@G@@@F@]@@C MAXMEM AND MAXTIM TO 1E8 AND SET ITIME, ICOST, AND ILINES TO 0. MJ )@@G@@@F@]@@C SUBROUTINE MEMORY IS USED TO CHANGE THE NUMBER OF MEMORY WORDS MK )@@G@@@G@]@@C ALLOCATED TO SPICE. IF THE AMOUNT OF MEMORY ALLOCATED TO A JOBSML )@@G@@TEP @D@]@@C IS FIXED, SUBROUTINE MEMORY NEED NOT BE CHANGED. @F@]@@MM )@@G@@C IFAMWA (SET IN A DATA STATEMENT BELOW) SHOULD BE SET TO THE @G@]@@MN )@@G@@C ADDRESS OF THE FIRST AVAILABLE WORD OF MEMORY (FOLLOWING OVERLAYS, IF MO )@@G@@@G@]@@C ANY). THE PROPER VALUE SHOULD BE EASILY OBTAINABLE FROM ANY LOAMP )@@G@@D MAP.@G@]@@C FOR CDC INSTALLATIONS, DEFINE SYMBOLS *SYSTEM* AND *COMQ )@@G@@MPILER* @G@]@@C APPROPRIATELY IN COMDECK ASMARG (CALLED BY THE ROUTIMR )@@G@@NES WRITTEN IN @^@]@@C ASSEMBLY LANGUAGE). @G@]@@C WITH THE EXCMS )@@G@@EPTION OF MOST FLAGS, ALL DATA IN SPICE IS STORED IN @G@]@@C THE FORM OMT )@@G@@F MANAGED TABLES ALLOCATED IN THE /BLANK/ ARRAY VALUE(). @G@]@@C IN IMU )@@G@@TS PRESENT FORM, THE PROGRAM ASSUMES THAT BOTH INTEGER AND REAL @G@]@@MV )@@G@@C VALUES REQUIRE ONE WORD OF MEMORY. IF THIS ASSUMPTION DOES NOT HOLD, MW )@@G@@@G@]@@C THEN A CONSIDERABLE AMOUNT OF CONVERSION WORK IS NECESSARY. THIMX )@@G@@S WORK@B@]@@C HAS ALREADY BEEN DONE FOR THE IBM 360. @G@]@@C SPICE MY )@@G@@IS PARTICULARLY WELL-SUITED TO BEING RUN USING A ONE-LEVEL @G@]@@C OVERMZ )@@G@@LAY STRUCTURE BEGINNING WITH ROUTINES SPICE (THE OVERLAY ROOT), @G@]@@NA )@@G@@C READIN, ERRCHK, SETUP, DCTRAN, DCOP, ACAN, AND OVTPVT. THE ORDER OF NB )@@G@@@G@]@@C THE ROUTINES IN THIS LISTING CORRESPONDS TO THAT STRUCTURE. NOTNC )@@G@@E @G@]@@C THAT IF CDC-STYLE OVERLAY IS TO BE USED, AN OVERLAY DIRECTND )@@G@@IVE CARD @F@]@@C MUST BE INSERTED BEFORE THE FIRST LINE OF EACH OF THNE )@@G@@E JUST-NAMED@]@]@@C ROUTINES. @[@]@@C @[@]@@C @F@]@@ COMMONNF )@@G@@ /MEMRY/ LORG,ICORE,MAXCOR,MAXUSE,MEMAVL,LDVAL,NUMBLK,@^@]@@ 1 LOCNG )@@G@@TAB,LTAB @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSNH )@@G@@AT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDNI )@@G@@ELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODNJ )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODENK )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,NL )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZENM )@@G@@R @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSNN )@@G@@(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @E@]@@ COMMON /LINE/ ACHANO )@@G@@R,AFIELD(15),OLDLIN(15),KNTRC,KNTLIM@G@]@@ COMMON /CIRDAT/ LOCATE(5NP )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NNQ )@@G@@DIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,CNR )@@G@@OX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@]@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDNS )@@G@@SAT,GM,GMBS,GDS,CDRAIN, @G@]@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHANT )@@G@@,BETA0,BETA1,SCATT,VSCATT, @G@]@@ 2 XW,TOX,AION,BION,CDAVAL,UFBNU )@@G@@,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@]@@ COMMON /STATUS/ OMEGA,TINV )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICANW )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MNX )@@G@@ODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTNY )@@G@@IM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NZ )@@G@@NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLOA )@@G@@TZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EOB )@@G@@PS0,EPSSIL,EPSOX @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITOC )@@G@@CELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@ COMMONOD )@@G@@ /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1OE )@@G@@ INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2OF )@@G@@ IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3OG )@@G@@ IPIMAT(4)@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FOOH )@@G@@RFRE,JTRFLG @G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,OI )@@G@@ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT OJ )@@G@@@G@]@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MOK )@@G@@AXMEM,@G@]@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPOL )@@G@@U,IPPU, @C@]@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@]@@OM )@@G@@ COMMON /DEBUG/ IDEBUG(20) @ @]@@ COMMON /BLANK/ VALUE(64)ON )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ OO )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @ @]@@OP )@@G@@ DIMENSION ACCTIT(4) @E@]@@ INTEGER READIN,ERRCHK,SETUP,DCOQ )@@G@@TRAN,DCOP,ACAN,OVTPVT @G@]@@ DATA READIN,ERRCHK,SETUP,DCTRAN,DCOPOR )@@G@@,ACAN,OVTPVT / 1,2,3,4,5,6,7 /@ @]@@ DATA FILNAM / 5HSPICE / @^@]@@OS )@@G@@ DATA ABLNK / 1H /@G@]@@ DATA ACCTIT / 8HJOB STAT, 8HISTICS SOT )@@G@@, 8HUMMARY , 8H / @A@]@@ DATA AHDR1 / 8H SPICE / OU )@@G@@@A@]@@ DATA AHDR2 / 8H2E.0 (18 / @A@]@@ DATA AHDR3 / 8HJANOV )@@G@@78) / @[@]@@C @[@]@@C @ @]@@ DATA IFAMWA / 42000B / OW )@@G@@@[@]@@C @#@]@@C INITIALIZATION @[@]@@C @^@]@@ APROG(1)=AHDOX )@@G@@R1 @^@]@@ APROG(2)=AHDR2 @^@]@@ APROG(3)=AHDR3 @#@]@@OY )@@G@@ ACHAR=ABLNK @]@]@@ KEOF=0@^@]@@ CALL CLOCK(ATIME) @^@]@@OZ )@@G@@ CALL DATE(ADATE) @ @]@@ BOLTZ=1.3806226E-23 @ @]@@ PA )@@G@@CHARGE=1.6021918E-19 @#@]@@ CTOK=273.15 @ @]@@ EPS0=8.85421PB )@@G@@4871E-14 @^@]@@ EPSSIL=11.7*EPS0 @^@]@@ EPSOX=3.9*EPS0 PC )@@G@@@ @]@@ TWOPI=8.0*ATAN2(1.0,1.0)@^@]@@ RAD=360.0/TWOPI @^@]@@PD )@@G@@ XLOG2=ALOG(2.0) @^@]@@ XLOG10=ALOG(10.0) @^@]@@ ROOT2=PE )@@G@@SQRT(2.0) @[@]@@C @]@]@@C BEGIN JOB@[@]@@C @A@]@@ 10 IF (KEPF )@@G@@OF.EQ.1) GO TO 1000 @#@]@@ CALL GETCJE @#@]@@ ITIME1=ITIMEPG )@@G@@@#@]@@ ICOST1=ICOST@^@]@@ ILINE1=ILINES @#@]@@ IGOOF=PH )@@G@@0 @]@]@@ MODE=0@]@]@@ NOGO=0@ @]@@ CALL SETMEM(IFAMWAPI )@@G@@) @A@]@@ IF (NOGO.NE.0) GO TO 1000 @ @]@@ CALL ZERO8(RPJ )@@G@@STATS,50) @[@]@@C @E@]@@C READ REMAINDER OF DATA DECK AND CHECK FPK )@@G@@OR INPUT ERRORS @[@]@@C @B@]@@ CALL OVERLAY(FILNAM,READIN,0,0PL )@@G@@) @ @]@@ IF (NOGO.NE.0) GO TO 300@A@]@@ IF (KEOF.EQ.1) GO PM )@@G@@TO 1000 @B@]@@ CALL OVERLAY(FILNAM,ERRCHK,0,0) @ @]@@ PN )@@G@@IF (NOGO.NE.0) GO TO 300@A@]@@ CALL OVERLAY(FILNAM,SETUP,0,0)@ @]@@PO )@@G@@ IF (NOGO.NE.0) GO TO 300@[@]@@C @ @]@@C CYCLE THROUGH TEMPERAPP )@@G@@TURES @[@]@@C @#@]@@ ITEMNO=1 @A@]@@ IF (NUMTEM.EQ.1) GPQ )@@G@@O TO 110 @B@]@@ 100 IF (ITEMNO.EQ.NUMTEM) GO TO 310 @^@]@@ PR )@@G@@ITEMNO=ITEMNO+1 @#@]@@ CALL TMPUPD @[@]@@C @^@]@@C DC TRANSFPS )@@G@@ER CURVES @[@]@@C @A@]@@ 110 IF (ICVFLG.EQ.0) GO TO 150 @E@]@@PT )@@G@@C... SEE ROUTINE *DCTRAN* FOR EXPLANATION OF *MODE*, ETC. @]@]@@ PU )@@G@@MODE=1@#@]@@ MODEDC=3 @B@]@@ CALL OVERLAY(FILNAM,DCTRAN,0,0PV )@@G@@) @B@]@@ CALL OVERLAY(FILNAM,OVTPVT,0,0) @ @]@@ IF (NOPW )@@G@@GO.NE.0) GO TO 300@[@]@@C @A@]@@C SMALL SIGNAL OPERATING POINT PX )@@G@@@[@]@@C @A@]@@ 150 IF (KSSOP.GT.0) GO TO 170 @B@]@@ IF ((JPY )@@G@@ACFLG+JPZFLG).NE.0) GO TO 170 @B@]@@ IF ((ICVFLG+JTRFLG).GT.0) GO TPZ )@@G@@O 250 @]@]@@ 170 MODE=1@#@]@@ MODEDC=1 @B@]@@ CALL OVERLAYQA )@@G@@(FILNAM,DCTRAN,0,0) @ @]@@ IF (NOGO.NE.0) GO TO 300@A@]@@ QB )@@G@@CALL OVERLAY(FILNAM,DCOP,0,0) @ @]@@ IF (NOGO.NE.0) GO TO 300@[@]@@QC )@@G@@C @ @]@@C AC SMALL SIGNAL ANALYSIS @[@]@@C @A@]@@ 200 IF (JAQD )@@G@@CFLG.EQ.0) GO TO 210 @]@]@@ MODE=3@#@]@@ MODAC=1 @A@]@@QE )@@G@@ CALL OVERLAY(FILNAM,ACAN,0,0) @B@]@@ CALL OVERLAY(FILNAM,OVTPQF )@@G@@VT,0,0) @ @]@@ IF (NOGO.NE.0) GO TO 300@[@]@@C @^@]@@C POLQG )@@G@@E/ZERO ANALYSIS @[@]@@C @A@]@@ 210 IF (JPZFLG.EQ.0) GO TO 250 QH )@@G@@@]@]@@ MODE=3@#@]@@ MODAC=2 @A@]@@ CALL OVERLAY(FILNAQI )@@G@@M,ACAN,0,0) @ @]@@ IF (NOGO.NE.0) GO TO 300@#@]@@ MODAC=3 QJ )@@G@@@A@]@@ CALL OVERLAY(FILNAM,SETUP,0,0)@ @]@@ IF (NOGO.NE.0) GO QK )@@G@@TO 300@A@]@@ CALL OVERLAY(FILNAM,ACAN,0,0) @ @]@@ IF (NOGO.NE.QL )@@G@@0) GO TO 300@E@]@@ IF ((JTRFLG.EQ.0).AND.(ITEMNO.EQ.NUMTEM)) GO TO QM )@@G@@310 @]@]@@ MODE=0@A@]@@ CALL OVERLAY(FILNAM,SETUP,0,0)@[@]@@QN )@@G@@C @^@]@@C TRANSIENT ANALYSIS @[@]@@C @A@]@@ 250 IF (JTRFLG.EQO )@@G@@Q.0) GO TO 100 @]@]@@ MODE=1@#@]@@ MODEDC=2 @B@]@@ QP )@@G@@CALL OVERLAY(FILNAM,DCTRAN,0,0) @ @]@@ IF (NOGO.NE.0) GO TO 300QQ )@@G@@@A@]@@ CALL OVERLAY(FILNAM,DCOP,0,0) @ @]@@ IF (NOGO.NE.0) GO QR )@@G@@TO 300@]@]@@ MODE=2@B@]@@ CALL OVERLAY(FILNAM,DCTRAN,0,0) QS )@@G@@@B@]@@ CALL OVERLAY(FILNAM,OVTPVT,0,0) @ @]@@ IF (NOGO.NE.QT )@@G@@0) GO TO 300@#@]@@ GO TO 100 @[@]@@C @#@]@@C JOB CONCLUDED QU )@@G@@@[@]@@C @^@]@@ 300 WRITE (6,301) @B@]@@ 301 FORMAT(1H0,/,1H0,9QV )@@G@@X,^JOB ABORTED^) @#@]@@ GO TO 320 @^@]@@ 310 WRITE (6,311) QW )@@G@@@B@]@@ 311 FORMAT(1H0,/,1H0,9X,^JOB CONCLUDED^)@[@]@@C @#@]@@C JOBQX )@@G@@ ACCOUNTING @[@]@@C @A@]@@ 320 IF (IPRNTA.EQ.0) GO TO 800 @A@]@@QY )@@G@@ CALL TITLE(-1,LWIDTH,1,ACCTIT)@#@]@@ NUMEL=0 @^@]@@ QZ )@@G@@DO 360 I=1,18 @ @]@@ 360 NUMEL=NUMEL+JELCNT(I) @F@]@@ WRITE RA )@@G@@(6,361) NUNODS,NCNODS,NUMNOD,NUMEL,(JELCNT(I),I=11,14)@G@]@@ 361 FORMATRB )@@G@@(^ NUNODS NCNODS NUMNOD NUMEL DIODES BJTS JFETS MFETS^@A@]@@ 1RC )@@G@@ //,I9,2I7,I6,I8,I6,2I7) @ @]@@ NUMTEM=MAX0(NUMTEM-1,1) @ @]@@RD )@@G@@ IDIST=MIN0(IDIST,1) @F@]@@ WRITE (6,371) NUMTEM,ICVFLG,JTRE )@@G@@RFLG,JACFLG,INOISE,IDIST,NOGO @G@]@@ 371 FORMAT(/^0 NUMTEM ICVFLG JTRFRF )@@G@@LG JACFLG INOISE IDIST NOGO^/, @#@]@@ 1 2H0 ,7I7)@F@]@@ RG )@@G@@WRITE (6,381) RSTATS(20),RSTATS(21),RSTATS(22),RSTATS(23), @ @]@@ 1RH )@@G@@ RSTATS(26),RSTATS(27)@G@]@@ 381 FORMAT(/^0 NSTOP NTTBR NTTAR RI )@@G@@IFILL IOPS PERSPA^//, @^@]@@ 1 1X,5F8.0,F9.3) @G@]@@ RJ )@@G@@WRITE (6,391) RSTATS(30),RSTATS(31),RSTATS(32),MAXCOR,MAXUSE, @^@]@@RK )@@G@@ 1 RSTATS(33) @G@]@@ 391 FORMAT(/^0 NUMTTP NUMRTP NUMNIT^,RL )@@G@@19X,^MAXMEM MAXUSE CPYTIM^//,@B@]@@ 1 2X,3F8.0,17X,O6,1HB,I7,F8.3RM )@@G@@) @B@]@@ WRITE (6,401) (RSTATS(I),I=1,11) @#@]@@ 401 FORMATRN )@@G@@(/, @B@]@@ 1 1H0,9X,*READIN *,12X,F10.3/, @B@]@@ 2 1H0RO )@@G@@,9X,*SETUP *,12X,F10.3/, @C@]@@ 3 1H0,9X,*TRCURV *,12X,F10.3RP )@@G@@,10X,F6.0/, @C@]@@ 4 1H0,9X,*DCAN *,12X,F10.3,10X,F6.0/, @C@]@@RQ )@@G@@ 5 1H0,9X,*ACAN *,12X,F10.3,10X,F6.0/, @C@]@@ 6 1H0,9X,*TRR )@@G@@RANAN *,12X,F10.3,10X,F6.0/, @B@]@@ 7 1H0,9X,*OUTPUT *,12X,F10.3RS )@@G@@) @#@]@@ 800 CALL GETCJE @A@]@@ ET=FLOAT(ITIME-ITIME1)/1000.0 RT )@@G@@@B@]@@ CPCOST=FLOAT(ICOST-ICOST1)/100.0 @B@]@@ PRCOST=FLOATRU )@@G@@(ILINES-ILINE1)*0.00060 @ @]@@ TCOST=CPCOST+PRCOST @^@]@@ RV )@@G@@RSTATS(34)=CPCOST @B@]@@ RSTATS(35)=FLOAT(ILINES-ILINE1) @#@]@@RW )@@G@@ CALL AUDIT @A@]@@ IF (IPRNTA.EQ.0) GO TO 810 @F@]@@ RX )@@G@@OHEAD=ET-(RSTATS(1)+RSTATS(2)+RSTATS(3)+RSTATS(5)+RSTATS(7) @A@]@@ 1RY )@@G@@ +RSTATS(9)+RSTATS(11)) @ @]@@ WRITE (6,801) OHEAD @B@]@@RZ )@@G@@ 801 FORMAT(1H0,9X,*OVERHEAD*,12X,F10.3) @ @]@@ 810 WRITE (6,811) ET,TSA )@@G@@COST @D@]@@ 811 FORMAT(1H0,9X,^TOTAL JOB TIME ^,F8.3,/, @D@]@@SB )@@G@@ 1 1H0,9X,^TOTAL JOB COST $^,F8.3) @A@]@@ WRITE SC )@@G@@(6,816) CPCOST,PRCOST @D@]@@ 816 FORMAT(1H0,9X,^ COMPUTE COST SD )@@G@@$^,F8.3,/, @D@]@@ 1 1H0,9X,^ PRINTER COST $^,F8.3) SE )@@G@@@D@]@@ 900 IF ((MAXTIM-ITIME).GE.LIMTIM*1000) GO TO 10 @^@]@@ SF )@@G@@WRITE (6,901) @G@]@@ 901 FORMAT(^1WARNING: FURTHER ANALYSIS STOPPESG )@@G@@D DUE TO CPU TIME LIMIT^@]@]@@ 1/) @]@]@@ NOGO=0@ @]@@ SH )@@G@@CALL SETMEM(IFAMWA) @#@]@@ 1000 CALL EXIT @]@]@@ END @^@]@@SI )@@G@@ SUBROUTINE AUDIT @]@]@@ RETURN@]@]@@ END @C@]@@ SJ )@@G@@SUBROUTINE TITLE(IFOLD,LEN,ICOM,COMENT) @[@]@@C @G@]@@C THIS RSK )@@G@@OUTINE WRITES A TITLE ON THE OUTPUT FILE. IFOLD INDICATES @G@]@@C WHETSL )@@G@@HER THE PAGE EJECT SHOULD BE TO THE NEXT CONCAVE, CONVEX, OR ANY @G@]@@SM )@@G@@C PAGE FOLD DEPENDING ON WHETHER ITS VALUE IS <0, >0, OR =0. THE PAGE SN )@@G@@@G@]@@C EJECT IS SUPPRESSED (AS IS MUCH OF THE HEADING) IF THE VARIABLE SO )@@G@@NOPAGE@#@]@@C IS NONZERO. @[@]@@C @G@]@@ COMMON /TABINF/ IESP )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSESQ )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNSR )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3SS )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ST )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, SU )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @F@]@@ COMMON /MISCEL/ APROG(3)SV )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE SW )@@G@@@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFESX )@@G@@T, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ISY )@@G@@TERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @ @]@@ COMMON /BLANK/ VALSZ )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@TA )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C TB )@@G@@@ @]@@ DIMENSION COMENT(4) @[@]@@C @[@]@@C @A@]@@ TC )@@G@@IF (NOPAGE.EQ.1) GO TO 150 @ @]@@ IF (IFOLD) 10,30,20 @#@]@@TD )@@G@@ 10 WRITE (6,11)@#@]@@ 11 FORMAT(1H6) @#@]@@ GO TO 30 @#@]@@TE )@@G@@ 20 WRITE (6,21)@#@]@@ 21 FORMAT(1H7) @[@]@@C @[@]@@C @ @]@@TF )@@G@@ 30 IF (LEN.LE.72) GO TO 100@C@]@@ WRITE (6,31) ADATE,APROG,ATIMETG )@@G@@,ATITLE @G@]@@ 31 FORMAT(1H1,15(1H*),A10,1X,23(1H*),3A8,23(1H*),A1TH )@@G@@0,15(1H*)//1H0, @#@]@@ 1 15A8/) @ @]@@ IF (ICOM.EQ.0) GO TI )@@G@@TO 40 @C@]@@ WRITE (6,36) COMENT,VALUE(ITEMPS+ITEMNO) @E@]@@ 36 TJ )@@G@@FORMAT(1H0,21X,4A8,21X,*TEMPERATURE =*,F9.3,* DEG C*/)@#@]@@ 40 WRITE TK )@@G@@(6,41)@ @]@@ 41 FORMAT(1H0,121(1H*)//) @#@]@@ GO TO 200 @[@]@@TL )@@G@@C @[@]@@C @C@]@@ 100 WRITE (6,101) ADATE,APROG,ATIME,ATITLE TM )@@G@@@G@]@@ 101 FORMAT(1H1,5(1H*),A10,1X,8(1H*),3A8,8(1H*),A10,5(1H*)//1H0,1TN )@@G@@5A8/) @ @]@@ IF (ICOM.EQ.0) GO TO 110@C@]@@ WRITE (6,106) COMETO )@@G@@NT,VALUE(ITEMPS+ITEMNO) @E@]@@ 106 FORMAT(1H0,5X,4A8,* TEMPERATURE =*,FTP )@@G@@9.3,* DEG C*/) @^@]@@ 110 WRITE (6,111) @ @]@@ 111 FORMAT(1H0,7TQ )@@G@@1(1H*)//) @#@]@@ GO TO 200 @[@]@@C @[@]@@C @ @]@@ 150 TR )@@G@@IF (ICOM.EQ.0) GO TO 160@A@]@@ WRITE (6,151) APROG,COMENT @A@]@@TS )@@G@@ 151 FORMAT(1H0,3A8,^-- ^,4A8,/) @#@]@@ GO TO 200 @ @]@@ 160 TT )@@G@@WRITE (6,161) APROG @^@]@@ 161 FORMAT(1H0,3A8,/) @[@]@@C @]@]@@TU )@@G@@C FINISHED @[@]@@C @]@]@@ 200 RETURN@]@]@@ END @A@]@@ TV )@@G@@SUBROUTINE SETMEM(IPNTR,ISIZE)@[@]@@C @G@]@@C THIS ROUTINE PERFOTW )@@G@@RMS THE DYNAMIC MEMORY MANAGEMENT USED BY SPICE.@[@]@@C @[@]@@C TX )@@G@@@#@]@@C ENTRY POINTS: @A@]@@C SETMEM - SET INITIAL MEMORY @ @]@@TY )@@G@@C GETMEM - GET BLOCK @B@]@@C RELMEM - RELEASE PART OF BLOCTZ )@@G@@K @C@]@@C EXTMEM - EXTEND SIZE OF EXISTING BLOCK @C@]@@C UA )@@G@@ SIZMEM - DETERMINE SIZE OF EXISTING BLOCK@ @]@@C CLRMEM - RELEASE UB )@@G@@BLOCK @A@]@@C PTRMEM - RESET MEMORY POINTER@B@]@@C CRUNCH - FOUC )@@G@@RCE MEMORY COMPACTION @[@]@@C @^@]@@C CALLING SEQUENCES: @ @]@@UD )@@G@@C CALL SETMEM(IFAMWA) @A@]@@C CALL GETMEM(IPNTR,BLKSIZ) UE )@@G@@@A@]@@C CALL RELMEM(IPNTR,RELSIZ) @A@]@@C CALL EXTMEM(IPNTRUF )@@G@@,EXTSIZ) @A@]@@C CALL SIZMEM(IPNTR,BLKSIZ) @ @]@@C CALL UG )@@G@@CLRMEM(IPNTR) @A@]@@C CALL PTRMEM(IPNTR1,IPNTR2) @#@]@@C UH )@@G@@ CALL CRUNCH@[@]@@C @[@]@@C @^@]@@C GENERAL COMMENTS: @G@]@@UI )@@G@@C FOR EACH BLOCK WHICH IS ALLOCATED, A 4-WORD ENTRY IS MAINTAINED UJ )@@G@@@C@]@@C IN A TABLE KEPT IN HIGH MEMORY, OF THE FORM @[@]@@C @ @]@@UK )@@G@@C WORD CONTENTS @ @]@@C ---- -------- @[@]@@UL )@@G@@C @F@]@@C 1 ADDR(BLOCK ORIGIN)-1 (AS SUBSCRIPT TO NODUM )@@G@@PLC())@B@]@@C 2 BLOCK SIZE (IN WORDS) @B@]@@C 3UN )@@G@@ NUMBER OF WORDS IN USE @F@]@@C 4 ADDRESS OF VARIABUO )@@G@@LE CONTAINING BLOCK ORIGIN @[@]@@C @F@]@@C ALL ALLOCATED BLOUP )@@G@@CKS ARE AN EVEN NUMBER OF WORDS IN LENGTH.@G@]@@C SINCE BLOCK REPOSUQ )@@G@@ITIONING MAY BE NECESSARY, THE CONVENTION THAT @F@]@@C ONLY ONE VARIABLUR )@@G@@E CONTAIN A BLOCK ORIGIN SHOULD BE OBSERVED. @G@]@@C FOR *GETMEMUS )@@G@@*, *IPNTR* IS SET SUCH THAT *NODPLC(IPNTR+1)* IS THE @A@]@@C FIRST WORDUT )@@G@@ OF THE ALLOCATED BLOCK.@G@]@@C FOR *CLRMEM*, *IPNTR* IS SET TO 400UU )@@G@@000B TO ENABLE RAPID DETECTION@B@]@@C OF AN ATTEMPT TO USE A CLEARED BLOUV )@@G@@CK. @G@]@@C IF ANY FATAL ERRORS ARE FOUND, A MESSAGE IS PRINTED AUW )@@G@@ND A FLAG @G@]@@C SET INHIBITING FURTHER ACTION UNTIL *SETMEM* IS CALLUX )@@G@@ED. (IN THIS @E@]@@C CONTEXT, INSUFFICIENT MEMORY IS CONSIDERED A FUY )@@G@@ATAL ERROR.)@G@]@@C THROUGHOUT THIS ROUTINE, *LDVAL* ALWAYS CONTAINUZ )@@G@@S THE SUBSCRIPT OF@G@]@@C THE LAST ADDRESSABLE WORD OF MEMORY, *MEMAVL* VA )@@G@@ALWAYS CONTAINS THE @G@]@@C NUMBER OF AVAILABLE WORDS OF MEMORY, *NUVB )@@G@@MBLK* ALWAYS CONTAINS THE @G@]@@C NUMBER OF ALLOCATED BLOCKS, AND NOVC )@@G@@DPLC(*LOCTAB* +1) ALWAYS CONTAINS @A@]@@C THE FIRST WORD OF THE BLOCK VD )@@G@@TABLE.@[@]@@C @F@]@@ COMMON /MEMRY/ LORG,ICORE,MAXCOR,MAXUSE,MEVE )@@G@@MAVL,LDVAL,NUMBLK,@^@]@@ 1 LOCTAB,LTAB @F@]@@ COMMON /MISCVF )@@G@@EL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWVG )@@G@@IDTH,NOPAGE @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTVH )@@G@@O,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,VI )@@G@@IGOOF,NOGO,KEOF @G@]@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,IVJ )@@G@@TAPE,MAXECS,IECS,MAXMEM,@G@]@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,VK )@@G@@MAXTIM,ITIME,MAXPPU,IPPU, @C@]@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,VL )@@G@@XCJEX(11) @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPVM )@@G@@LC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NOVN )@@G@@DPLC(1),CVALUE(1))@^@]@@ LOGICAL MEMPTR @A@]@@ DATA ENDMEM VO )@@G@@/ 8HENDOFMEM / @B@]@@ DATA C1 / 2HC1 /@B@]@@VP )@@G@@ DATA E1, E2 / 2HE1, 2HE2 /@B@]@@ DATA G1, G2 / VQ )@@G@@2HG1, 2HG2 /@B@]@@ DATA P1 / 2HP1 /@B@]@@VR )@@G@@ DATA R1, R2, R3 / 2HR1, 2HR2, 2HR3 /@B@]@@ DATA S1 / VS )@@G@@2HS1 /@ @]@@ DATA CLRNAM / 6HCLRMEM /@ @]@@ DATA EVT )@@G@@XTNAM / 6HEXTMEM /@ @]@@ DATA GETNAM / 6HGETMEM /@ @]@@ DATA PVU )@@G@@TRNAM / 6HPTRMEM /@ @]@@ DATA RELNAM / 6HRELMEM /@ @]@@ DATA SVV )@@G@@ETNAM / 6HSETMEM /@ @]@@ DATA SIZNAM / 6HSIZMEM /@[@]@@C @F@]@@VW )@@G@@C... APPROXIMATE TIME REQUIRED TO COPY *NWORDS* INTEGER VALUES @C@]@@VX )@@G@@ CTIME4(NUMWRD)=3.4E-6*FLOAT(NUMWRD)+1.0E-5@B@]@@C... RETURNS NEXTVY )@@G@@ HIGHER EVEN INTEGER @A@]@@ NXTEVN(N)=AND(N+1,COMPL(1)) @B@]@@VZ )@@G@@C... RETURNS NEXT HIGHER MEMORY SIZE @D@]@@ NXTMEM(MEMWDS)=((MWA )@@G@@EMWDS+1777B)/2000B)*2000B @[@]@@C @[@]@@C @A@]@@C*** SETMEMWB )@@G@@ - SET INITIAL MEMORY @[@]@@C @#@]@@ IFAMWA=IPNTR@#@]@@ WC )@@G@@CALL GETCJE @ @]@@ LORG=1-LOCF(NODPLC(1)) @A@]@@ IFWA=NXTEVN(WD )@@G@@IFAMWA+LORG-1) @B@]@@ ICORE=NXTMEM(-LORG+1+IFWA+NXTMEM(1))@^@]@@WE )@@G@@ LDVAL=ICORE+LORG-1@ @]@@ LDVAL=(LDVAL/2)*2-4 @ @]@@ WF )@@G@@MEMAVL=LDVAL-4-IFWA @#@]@@ MAXCOR=0 @#@]@@ MAXUSE=0 WG )@@G@@@A@]@@ CALL MEMORY(2HCM,2,ICORE) @^@]@@ ERRNAM=SETNAM WH )@@G@@@ @]@@ IF (NOGO.LT.0) GO TO 300@#@]@@ NUMBLK=1 @^@]@@ WI )@@G@@LOCTAB=LDVAL-4 @ @]@@ NODPLC(LOCTAB+1)=IFWA @ @]@@ NODPLCWJ )@@G@@(LOCTAB+2)=MEMAVL @^@]@@ NODPLC(LOCTAB+3)=0@^@]@@ NODPLC(LOCTAWK )@@G@@B+4)=0@ @]@@ VALUE(LDVAL+1)=ENDMEM @#@]@@ GO TO 200 @[@]@@WL )@@G@@C @^@]@@C*** GETMEM - GET BLOCK@[@]@@C @#@]@@ ENTRY GETMEMWM )@@G@@@[@]@@C @A@]@@ IF (NOGO.LT.0) GO TO 1000 @ @]@@C... CHECK WN )@@G@@FOR VALID SIZE @A@]@@ IF (ISIZE.LT.0) GO TO 410 @D@]@@C... WO )@@G@@CHECK FOR ATTEMPT TO REALLOCATE EXISTING BLOCK @A@]@@ IF (MEMPTR(IWP )@@G@@PNTR)) GO TO 420 @ @]@@ JSIZE=NXTEVN(ISIZE) @ @]@@ CALL CWQ )@@G@@OMPRS(0,LDVAL) @B@]@@C... CHECK IF ENOUGH SPACE ALREADY THERE @ @]@@WR )@@G@@ NEED=JSIZE+4-MEMAVL @ @]@@ IF (NEED.LE.0) GO TO 10 @C@]@@WS )@@G@@C... INSUFFICIENT SPACE -- BUMP MEMORY SIZE @^@]@@ NEED=NXTMEM(WT )@@G@@NEED) @^@]@@ ICORE=ICORE+NEED @A@]@@ CALL MEMORY(2HCM,2,ICOREWU )@@G@@) @^@]@@ ERRNAM=GETNAM @ @]@@ IF (NOGO.LT.0) GO TO 300WV )@@G@@@^@]@@ LTAB1=LDVAL-4 @B@]@@ NODPLC(LTAB1+2)=NODPLC(LTAB1+2WW )@@G@@)+NEED@A@]@@C... RELOCATE BLOCK ENTRY TABLE @^@]@@ NWORDS=NUMBLWX )@@G@@K*4 @B@]@@ RSTATS(33)=RSTATS(33)+CTIME4(NWORDS)@F@]@@ CALL CWY )@@G@@OPY4(NODPLC(LOCTAB+1),NODPLC(LOCTAB+NEED+1),NWORDS) @^@]@@ LOCTABWZ )@@G@@=LOCTAB+NEED@^@]@@ LDVAL=LDVAL+NEED @^@]@@ MEMAVL=MEMAVL+NEEDXA )@@G@@@D@]@@C... A BLOCK LARGE ENOUGH NOW EXISTS -- ALLOCATE IT @^@]@@ 10 XB )@@G@@LTAB1=LDVAL-4 @ @]@@ MORG=NODPLC(LTAB1+1) @ @]@@ MSIZ=NXC )@@G@@ODPLC(LTAB1+2) @ @]@@ MUSE=NODPLC(LTAB1+3) @^@]@@ MUSE=NXD )@@G@@XTEVN(MUSE) @ @]@@ MADR=NODPLC(LTAB1+4) @ @]@@ IF (MADR.NE.XE )@@G@@0) GO TO 15 @ @]@@ IF (MUSE.EQ.0) GO TO 20 @A@]@@C... CONSTRUCT NEXF )@@G@@W TABLE ENTRY @ @]@@ 15 NODPLC(LTAB1+2)=MUSE @^@]@@ LOCTABXG )@@G@@=LOCTAB-4 @^@]@@ NWORDS=NUMBLK*4 @B@]@@ RSTATS(33)=RSTATS(XH )@@G@@33)+CTIME4(NWORDS)@E@]@@ CALL COPY4(NODPLC(LOCTAB+4+1),NODPLC(LOCTAXI )@@G@@B+1),NWORDS)@^@]@@ NUMBLK=NUMBLK+1 @^@]@@ MEMAVL=MEMAVL-4 XJ )@@G@@@A@]@@ NODPLC(LTAB1+1)=MORG+MUSE @A@]@@ NODPLC(LTAB1+2)=MSXK )@@G@@IZ-MUSE-4 @D@]@@C... SET USER SIZE INTO TABLE ENTRY FOR THIS BLOCK XL )@@G@@@ @]@@ 20 NODPLC(LTAB1+3)=ISIZE @A@]@@ NODPLC(LTAB1+4)=LOCF(IPNXM )@@G@@TR) @ @]@@ MEMAVL=MEMAVL-JSIZE @ @]@@ IPNTR=NODPLC(LTAB1XN )@@G@@+1) @#@]@@ GO TO 50 @[@]@@C @A@]@@C*** RELMEM - RELEASE PXO )@@G@@ART OF BLOCK@[@]@@C @#@]@@ ENTRY RELMEM@[@]@@C @A@]@@ XP )@@G@@IF (NOGO.LT.0) GO TO 1000 @ @]@@C... CHECK FOR VALID POINTER @B@]@@XQ )@@G@@ IF (.NOT.MEMPTR(IPNTR)) GO TO 510 @ @]@@C... CHECK FOR VALID SIXR )@@G@@ZE @A@]@@ IF (ISIZE.LT.0) GO TO 520 @ @]@@ JSIZE=NODPLCXS )@@G@@(LTAB+3) @A@]@@ IF (ISIZE.GT.JSIZE) GO TO 530 @B@]@@ NODPLCXT )@@G@@(LTAB+3)=NODPLC(LTAB+3)-ISIZE @E@]@@ MEMAVL=MEMAVL+(NXTEVN(JSIZE)-NXU )@@G@@XTEVN(NODPLC(LTAB+3))) @#@]@@ GO TO 50 @[@]@@C @C@]@@C*** XV )@@G@@EXTMEM - EXTEND SIZE OF EXISTING BLOCK @[@]@@C @#@]@@ ENTRY XW )@@G@@EXTMEM@[@]@@C @A@]@@ IF (NOGO.LT.0) GO TO 1000 @ @]@@C... XX )@@G@@CHECK FOR VALID SIZE @A@]@@ IF (ISIZE.LT.0) GO TO 620 @ @]@@XY )@@G@@C... CHECK FOR VALID POINTER @B@]@@ IF (.NOT.MEMPTR(IPNTR)) GO TO XZ )@@G@@610 @B@]@@C... CHECK IF ENOUGH SPACE ALREADY THERE @E@]@@ IF ((NYA )@@G@@ODPLC(LTAB+2)-NODPLC(LTAB+3)).GE.ISIZE) GO TO 40@A@]@@ NEED=NXTEVN(YB )@@G@@ISIZE)-MEMAVL @ @]@@ IF (NEED.LE.0) GO TO 30 @C@]@@C... INSUFFYC )@@G@@ICIENT SPACE -- BUMP MEMORY SIZE @^@]@@ NEED=NXTMEM(NEED) @^@]@@YD )@@G@@ ICORE=ICORE+NEED @A@]@@ CALL MEMORY(2HCM,2,ICORE) @^@]@@YE )@@G@@ ERRNAM=EXTNAM @ @]@@ IF (NOGO.LT.0) GO TO 300@^@]@@ YF )@@G@@LTAB1=LDVAL-4 @B@]@@ NODPLC(LTAB1+2)=NODPLC(LTAB1+2)+NEED@A@]@@YG )@@G@@C... RELOCATE BLOCK ENTRY TABLE @^@]@@ NWORDS=NUMBLK*4 @B@]@@YH )@@G@@ RSTATS(33)=RSTATS(33)+CTIME4(NWORDS)@F@]@@ CALL COPY4(NODPLC(YI )@@G@@LOCTAB+1),NODPLC(LOCTAB+NEED+1),NWORDS) @^@]@@ LOCTAB=LOCTAB+NEEDYJ )@@G@@@^@]@@ LDVAL=LDVAL+NEED @^@]@@ MEMAVL=MEMAVL+NEED@^@]@@ YK )@@G@@LTAB=LTAB+NEED @A@]@@C... MOVE BLOCKS TO MAKE SPACE @ @]@@ 30 YL )@@G@@CALL COMPRS(0,LTAB) @ @]@@ CALL COMPRS(1,LTAB) @ @]@@ 40 YM )@@G@@JSIZE=NODPLC(LTAB+3) @B@]@@ NODPLC(LTAB+3)=NODPLC(LTAB+3)+ISIZE YN )@@G@@@E@]@@ MEMAVL=MEMAVL-(NXTEVN(NODPLC(LTAB+3))-NXTEVN(JSIZE)) @#@]@@YO )@@G@@ GO TO 50 @[@]@@C @C@]@@C*** SIZMEM - DETERMINE SIZE OF EXIYP )@@G@@STING BLOCK @[@]@@C @#@]@@ ENTRY SIZMEM@[@]@@C @A@]@@ YQ )@@G@@IF (NOGO.LT.0) GO TO 1000 @ @]@@C... CHECK FOR VALID POINTER @B@]@@YR )@@G@@ IF (.NOT.MEMPTR(IPNTR)) GO TO 710 @ @]@@ ISIZE=NODPLC(LTAB+YS )@@G@@3) @#@]@@ GO TO 200 @[@]@@C @ @]@@C*** CLRMEM - RELEASE BYT )@@G@@LOCK @[@]@@C @#@]@@ ENTRY CLRMEM@[@]@@C @A@]@@ IF (NOYU )@@G@@GO.LT.0) GO TO 1000 @A@]@@C... CHECK THAT POINTER IS VALID @B@]@@YV )@@G@@ IF (.NOT.MEMPTR(IPNTR)) GO TO 810 @ @]@@ MSIZ=NODPLC(LTAB+2YW )@@G@@) @ @]@@ MUSE=NODPLC(LTAB+3) @A@]@@ MEMAVL=MEMAVL+NXTEYX )@@G@@VN(MUSE) @E@]@@C... ASSUMPTION: FIRST ALLOCATED BLOCK IS NEVER CLEAYY )@@G@@RED. @#@]@@ LTAB1=LTAB-4@B@]@@ NODPLC(LTAB1+2)=NODPLC(LTAB1+2YZ )@@G@@)+MSIZ@A@]@@C... REPOSITION THE BLOCK TABLE @^@]@@ NWORDS=LTAB-ZA )@@G@@LOCTAB@B@]@@ RSTATS(33)=RSTATS(33)+CTIME4(NWORDS)@E@]@@ CALL CZB )@@G@@OPY4(NODPLC(LOCTAB+1),NODPLC(LOCTAB+4+1),NWORDS)@^@]@@ NUMBLK=NUMBLZC )@@G@@K-1 @^@]@@ LOCTAB=LOCTAB+4 @^@]@@ MEMAVL=MEMAVL+4 @^@]@@ZD )@@G@@ LTAB1=LDVAL-4 @B@]@@ NODPLC(LTAB1+2)=NODPLC(LTAB1+2)+4 ZE )@@G@@@^@]@@ IPNTR=400000B @#@]@@ GO TO 50 @[@]@@C @A@]@@ZF )@@G@@C*** PTRMEM - RESET MEMORY POINTER @[@]@@C @#@]@@ ENTRY PTRMEMZG )@@G@@@[@]@@C @A@]@@ IF (NOGO.LT.0) GO TO 1000 @A@]@@C... VERIFYZH )@@G@@ THAT POINTER IS VALID @B@]@@ IF (.NOT.MEMPTR(IPNTR)) GO TO 860 ZI )@@G@@@B@]@@C... RESET BLOCK POINTER TO BE *ISIZE* @#@]@@ ISIZE=IPNTR ZJ )@@G@@@A@]@@ NODPLC(LTAB+4)=LOCF(ISIZE) @#@]@@ GO TO 50 @[@]@@ZK )@@G@@C @B@]@@C*** CRUNCH - FORCE MEMORY COMPACTION @[@]@@C @#@]@@ZL )@@G@@ ENTRY CRUNCH@[@]@@C @A@]@@ IF (NOGO.LT.0) GO TO 1000 ZM )@@G@@@ @]@@ CALL COMPRS(0,LDVAL) @[@]@@C @A@]@@C*** ADJUST MEMORYZN )@@G@@ DOWNWARD *** @[@]@@C @C@]@@ 50 MAXUSE=MAX0(MAXUSE,LDVAL-MEMAVZO )@@G@@L-IFWA) @^@]@@ MEMDEC=2*NXTMEM(1)@B@]@@ IF (MEMAVL.LT.MEMDZP )@@G@@EC) GO TO 200 @C@]@@C... COMPRESS CURRENT ALLOCATIONS OF MEMORY ZQ )@@G@@@ @]@@ CALL COMPRS(0,LDVAL) @^@]@@C... ADJUST MEMORY SIZE@#@]@@ZR )@@G@@ MEMDEL=0 @^@]@@ 60 ICORE=ICORE-MEMDEC@ @]@@ MEMDEL=MEMDEZS )@@G@@L+MEMDEC @ @]@@ MEMAVL=MEMAVL-MEMDEC @A@]@@ IF (MEMAVL.GZT )@@G@@E.MEMDEC) GO TO 60@^@]@@ LTAB1=LDVAL-4 @C@]@@ NODPLC(LTAB1ZU )@@G@@+2)=NODPLC(LTAB1+2)-MEMDEL @A@]@@C... RELOCATE BLOCK ENTRY TABLE ZV )@@G@@@^@]@@ NWORDS=NUMBLK*4 @B@]@@ RSTATS(33)=RSTATS(33)+CTIME4(NZW )@@G@@WORDS)@F@]@@ CALL COPY4(NODPLC(LOCTAB+1),NODPLC(LOCTAB-MEMDEL+1),NWZX )@@G@@ORDS) @ @]@@ LOCTAB=LOCTAB-MEMDEL @^@]@@ LDVAL=LDVAL-MEMDELZY )@@G@@@A@]@@ CALL MEMORY(2HCM,2,ICORE) @[@]@@C @^@]@@C*** NORMALZZ )@@G@@ RETURN *** @[@]@@C @]@]@@ 200 RETURN@[@]@@C @^@]@@C*** ERROR(SAA )@@G@@) FOUND *** @[@]@@C @D@]@@C... MEMORY NEEDS EXCEED MAXIMUM AVAILABLAB )@@G@@E SPACE @A@]@@ 300 WRITE (6,301) MAXMEM,MAXMEM @F@]@@ 301 FORMATAC )@@G@@(^0*ERROR*: MEMORY NEEDS EXCEED^,I6,^(^,O6,^B)^/) @#@]@@ GO TO AD )@@G@@950 @ @]@@C... GETMEM: *ISIZE* < 0 @#@]@@ 410 ERRCOD=G1 @^@]@@AE )@@G@@ ERRNAM=GETNAM @#@]@@ GO TO 900 @D@]@@C... GETMEM: ATTAF )@@G@@EMPT TO REALLOCATE EXISTING BLOCK @#@]@@ 420 ERRCOD=G2 @^@]@@ AG )@@G@@ERRNAM=GETNAM @#@]@@ GO TO 900 @ @]@@C... RELMEM: *IPNTR* IAH )@@G@@NVALID@#@]@@ 510 ERRCOD=R1 @^@]@@ ERRNAM=RELNAM @#@]@@ AI )@@G@@GO TO 900 @ @]@@C... RELMEM: *ISIZE* < 0 @#@]@@ 520 ERRCOD=R2 AJ )@@G@@@^@]@@ ERRNAM=RELNAM @#@]@@ GO TO 900 @D@]@@C... RELMEMAK )@@G@@: *ISIZE* LARGER THAN INDICATED BLOCK @#@]@@ 530 ERRCOD=R3 @^@]@@AL )@@G@@ ERRNAM=RELNAM @#@]@@ GO TO 900 @ @]@@C... EXTMEM: *IPAM )@@G@@NTR* INVALID@#@]@@ 610 ERRCOD=E1 @^@]@@ ERRNAM=EXTNAM @#@]@@AN )@@G@@ GO TO 900 @ @]@@C... EXTMEM: *ISIZE* < 0 @#@]@@ 620 ERRCODAO )@@G@@=E2 @^@]@@ ERRNAM=EXTNAM @#@]@@ GO TO 900 @ @]@@C... AP )@@G@@SIZMEM: *IPNTR* INVALID@#@]@@ 710 ERRCOD=S1 @^@]@@ ERRNAM=SIZNAAQ )@@G@@M @#@]@@ GO TO 900 @ @]@@C... CLRMEM: *IPNTR* INVALID@#@]@@AR )@@G@@ 810 ERRCOD=C1 @^@]@@ ERRNAM=CLRNAM @#@]@@ GO TO 900 AS )@@G@@@ @]@@C... PTRMEM: *IPNTR* INVALID@#@]@@ 860 ERRCOD=P1 @^@]@@ AT )@@G@@ERRNAM=PTRNAM @ @]@@C... ISSUE ERROR MESSAGE @^@]@@ 900 LARG1=AU )@@G@@LOCF(IPNTR) @^@]@@ LARG2=LOCF(ISIZE) @B@]@@ WRITE (6,901) ERRCAV )@@G@@OD,LARG1,LARG2 @F@]@@ 901 FORMAT(^0*ABORT*: INTERNAL SPICE ERROR --AW )@@G@@ CODE ^,A2,/, @E@]@@ 1 ^0 ARG INFO = (^,O6,^, ^AX )@@G@@,O6,^)^) @ @]@@ 950 CALL DMPMEM(ERRNAM) @#@]@@ 1000 CALL EXIT AY )@@G@@@]@]@@ END @A@]@@ SUBROUTINE COMPRS(ICODE,LIMIT)@[@]@@C AZ )@@G@@@G@]@@C THIS ROUTINE COMPRESSES ALL AVAILABLE MEMORY INTO A SINGLE BA )@@G@@BLOCK.@G@]@@C IF *ICODE* IS ZERO, COMPRESSION OF MEMORY FROM WORD 1 TO *BB )@@G@@LIMIT* IS @G@]@@C DONE; OTHERWISE, COMPRESSION FROM *LDVAL* DOWN TO *BC )@@G@@LIMIT* IS DONE. @[@]@@C @F@]@@ COMMON /MEMRY/ LORG,ICORE,MAXCBD )@@G@@OR,MAXUSE,MEMAVL,LDVAL,NUMBLK,@^@]@@ 1 LOCTAB,LTAB @F@]@@ BE )@@G@@COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1BF )@@G@@ IWIDTH,LWIDTH,NOPAGE @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ BG )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE BH )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @E@]@@C... APPROXIMATE TIME RBI )@@G@@EQUIRED TO COPY *NWORDS* REAL VALUES@C@]@@ CTIME8(NUMWRD)=3.4E-6*FLBJ )@@G@@OAT(NUMWRD)+1.0E-5@B@]@@C... RETURNS NEXT HIGHER EVEN INTEGER @A@]@@BK )@@G@@ NXTEVN(N)=AND(N+1,COMPL(1)) @[@]@@C @A@]@@ IF (ICODE.NEBL )@@G@@.0) GO TO 100 @#@]@@ NBLK=NUMBLK @#@]@@ LTAB2=LOCTAB@#@]@@BM )@@G@@ 10 LTAB1=LTAB2 @A@]@@ IF (LTAB1.GE.LIMIT) GO TO 200 @ @]@@ BN )@@G@@IF (NBLK.EQ.1) GO TO 200@#@]@@ NBLK=NBLK-1 @^@]@@ LTAB2=LTAB1+BO )@@G@@4 @ @]@@ MORG=NODPLC(LTAB1+1) @ @]@@ MSIZ=NODPLC(LTAB1+BP )@@G@@2) @ @]@@ MUSE=NODPLC(LTAB1+3) @^@]@@ MUSE=NXTEVN(MUSE) BQ )@@G@@@A@]@@ IF (MSIZ.EQ.MUSE) GO TO 10 @A@]@@C... MOVE SUCCEEDING BLBR )@@G@@OCK DOWN @ @]@@ MORG2=NODPLC(LTAB2+1) @ @]@@ MUSE2=NODPLCBS )@@G@@(LTAB2+3) @ @]@@ MADR2=NODPLC(LTAB2+4) @ @]@@ IF (MADR2.NEBT )@@G@@.0) GO TO 15@ @]@@ IF (MUSE2.EQ.0) GO TO 20@B@]@@ 15 RSTATS(33)=RBU )@@G@@STATS(33)+CTIME8(MUSE2) @E@]@@ CALL COPY8(VALUE(MORG2+1),VALUE(MORGBV )@@G@@+MUSE+1),MUSE2) @A@]@@ NODPLC(LORG+MADR2)=MORG+MUSE @ @]@@ 20 BW )@@G@@NODPLC(LTAB1+2)=MUSE @A@]@@ NODPLC(LTAB2+1)=MORG+MUSE @D@]@@BX )@@G@@ NODPLC(LTAB2+2)=NODPLC(LTAB2+2)+(MSIZ-MUSE) @#@]@@ GO TO BY )@@G@@10 @[@]@@C @[@]@@C @#@]@@ 100 NBLK=NUMBLK @^@]@@ LTAB2=BZ )@@G@@LDVAL-4 @#@]@@ 110 LTAB1=LTAB2 @A@]@@ IF (LTAB1.LE.LIMIT) GO TCA )@@G@@O 200 @ @]@@ IF (NBLK.EQ.1) GO TO 200@#@]@@ NBLK=NBLK-1 @^@]@@CB )@@G@@ LTAB2=LTAB1-4 @ @]@@ MORG=NODPLC(LTAB1+1) @ @]@@ CC )@@G@@MSIZ=NODPLC(LTAB1+2) @ @]@@ MUSE=NODPLC(LTAB1+3) @^@]@@ CD )@@G@@MUSE=NXTEVN(MUSE) @ @]@@ MADR=NODPLC(LTAB1+4) @^@]@@ MSPC=MCE )@@G@@SIZ-MUSE @ @]@@ IF (MSPC.EQ.0) GO TO 110@B@]@@ RSTATS(33)=RCF )@@G@@STATS(33)+CTIME8(MUSE) @E@]@@ CALL COPY8(VALUE(MORG+1),VALUE(MORG+CG )@@G@@MSPC+1),MUSE) @A@]@@ NODPLC(LTAB1+1)=MORG+MSPC @ @]@@ CH )@@G@@NODPLC(LTAB1+2)=MUSE @B@]@@ NODPLC(LTAB2+2)=NODPLC(LTAB2+2)+MSPCCI )@@G@@@ @]@@ IF (MADR.EQ.0) GO TO 110@A@]@@ NODPLC(LORG+MADR)=MORG+MCJ )@@G@@SPC @#@]@@ GO TO 110 @#@]@@C... ALL DONE @]@]@@ 200 RETURNCK )@@G@@@]@]@@ END @A@]@@ LOGICAL FUNCTION MEMPTR(IPNTR)@[@]@@C CL )@@G@@@G@]@@C THIS ROUTINE CHECKS WHETHER *IPNTR* IS A VALID BLOCK POINTECM )@@G@@R. @G@]@@C IF IT IS VALID, *LTAB* IS SET TO POINT TO THE CORRESPONDINCN )@@G@@G ENTRY IN @#@]@@C THE BLOCK TABLE.@[@]@@C @F@]@@ COMMON /MEMRCO )@@G@@Y/ LORG,ICORE,MAXCOR,MAXUSE,MEMAVL,LDVAL,NUMBLK,@^@]@@ 1 LOCTAB,LTCP )@@G@@AB @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)CQ )@@G@@@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1CR )@@G@@),CVALUE(1))@[@]@@C @^@]@@ MEMPTR=.FALSE. @#@]@@ LTAB=LCS )@@G@@OCTAB @^@]@@ LOCPNT=LOCF(IPNTR)@^@]@@ DO 20 I=1,NUMBLK @C@]@@CT )@@G@@ IF (IPNTR.NE.NODPLC(LTAB+1)) GO TO 10 @C@]@@ IF (LOCPNT.NCU )@@G@@E.NODPLC(LTAB+4)) GO TO 10 @^@]@@ MEMPTR=.TRUE. @#@]@@ CV )@@G@@GO TO 30 @#@]@@ 10 LTAB=LTAB+4 @#@]@@ 20 CONTINUE @]@]@@ 30 CW )@@G@@RETURN@]@]@@ END @ @]@@ SUBROUTINE DMPMEM(ANAM) @[@]@@C CX )@@G@@@F@]@@C THIS ROUTINE PRINTS OUT THE CURRENT MEMORY ALLOCATION MAP. CY )@@G@@@F@]@@C *ANAM* SHOULD BE THE (BCD) NAME OF THE ROUTINE CALLING DMPMEM. CZ )@@G@@@[@]@@C @F@]@@ COMMON /MEMRY/ LORG,ICORE,MAXCOR,MAXUSE,MEMAVL,LDA )@@G@@DVAL,NUMBLK,@^@]@@ 1 LOCTAB,LTAB @ @]@@ COMMON /BLANK/ VALDB )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@DC )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @B@]@@ DD )@@G@@WRITE (6,5) ANAM,ICORE,MEMAVL,LDVAL @G@]@@ 5 FORMAT(*0DMPMEM CALLED BDE )@@G@@Y *A7,*; CORSIZ=*,O6,*B; AVLSPC=*,I6,*; LD@G@]@@ 1VAL=*I6/1H0,24X,*MDF )@@G@@EMORY ALLOCATION MAP*/14X,*BLKNUM MEMORG MEMSIZ @ @]@@ 2MEMUSE USRPTDG )@@G@@R ADDR($)*) @#@]@@ LTAB1=LOCTAB@^@]@@ DO 20 I=1,NUMBLK @ @]@@DH )@@G@@ MORG=NODPLC(LTAB1+1) @ @]@@ MSIZ=NODPLC(LTAB1+2) @ @]@@DI )@@G@@ MUSE=NODPLC(LTAB1+3) @ @]@@ MADR=NODPLC(LTAB1+4) @]@]@@DJ )@@G@@ JPTR=0@C@]@@ IF (MADR.NE.0) JPTR=NODPLC(LORG+MADR) @C@]@@DK )@@G@@ WRITE (6,11) I,MORG,MSIZ,MUSE,JPTR,MADR @A@]@@ 11 FORMAT(13X,5DL )@@G@@I7,1X,O6,*B*) @^@]@@ LTAB1=LTAB1+4 @#@]@@ 20 CONTINUE DM )@@G@@@#@]@@ WRITE (6,21)@C@]@@ 21 FORMAT(1H0,24X,*END OF ALLOCATION MADN )@@G@@P*/) @[@]@@C @E@]@@C... IF WE*RE LUCKY, SOME SYSTEMS WILL GIVE FULDO )@@G@@L TRACEBACK @^@]@@ GARBAG=SQRT(-1.0) @]@]@@ RETURN@]@]@@ DP )@@G@@END @ @]@@ SUBROUTINE DMPMAT(ANAM) @[@]@@C @B@]@@C THIS DQ )@@G@@ROUTINE DUMPS OUT THE MATRIX. @[@]@@C @G@]@@ COMMON /TABINF/ IEDR )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSEDS )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNDT )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3DU )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@DV )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, DW )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(5DX )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDY )@@G@@DIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELDZ )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METEA )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@EB )@@G@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, EC )@@G@@@^@]@@ 1 KOVAR,KIDOUT @G@]@@ COMMON /AC/ FSTART,FSTOP,FINCRED )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOISE,NOSPRT,NOSOUT,EE )@@G@@NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZIN,IPZITP,IPZOUT,IEF )@@G@@PZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIMAT(4)@F@]@@ EG )@@G@@COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @ @]@@ EH )@@G@@COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEEI )@@G@@X CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@EJ )@@G@@C @[@]@@C @^@]@@ WRITE (6,11) ANAM @C@]@@ 11 FORMAT(^0*DEEK )@@G@@BUG*: DMPMAT CALLED BY ^,A8) @[@]@@C @[@]@@C @^@]@@ JSTOP=EL )@@G@@NSTOP+1 @ @]@@ IF (MODE.EQ.3) GO TO 100@A@]@@ CALL GETMEM(EM )@@G@@LINE,NSTOP+1) @^@]@@ DO 30 I=2,NSTOP @^@]@@ DO 20 J=2,JSEN )@@G@@TOP @^@]@@ CALL MATVAL(I,J) @ @]@@ VALUE(LINE+J)=VALUE(1) EO )@@G@@@#@]@@ 20 CONTINUE @C@]@@ WRITE (6,26) (VALUE(LINE+J),J=2,JSTOEP )@@G@@P) @B@]@@ 26 FORMAT(^ *DEBUG*: ^,1P12E10.3) @#@]@@ 30 CONTINEQ )@@G@@UE @#@]@@ GO TO 1000 @[@]@@C @[@]@@C @A@]@@ 100 CALL GER )@@G@@ETMEM(LINE,2*(NSTOP+1)) @^@]@@ LSPOT=(LINE+1)/2 @^@]@@ DO 130ES )@@G@@ I=2,NSTOP @^@]@@ DO 120 J=2,JSTOP @^@]@@ CALL MATVAL(I,J) ET )@@G@@@A@]@@ CVALUE(LSPOT+J)=CVALUE(1) @#@]@@ 120 CONTINUE @C@]@@EU )@@G@@ WRITE (6,126) (CVALUE(LSPOT+J),J=2,JSTOP) @B@]@@ 126 FORMAT(^ *DEEV )@@G@@BUG*: ^, 1P12E10.3) @#@]@@ 130 CONTINUE @[@]@@C @[@]@@C EW )@@G@@@^@]@@ 1000 CALL CLRMEM(LINE) @]@]@@ RETURN@]@]@@ END @ @@@@EX )@@G@@ SUBROUTINE MATVAL(I,J) @[@@@@C @F@@@@C THIS ROUTINE SETSEY )@@G@@ VALUE(1) OR CVALUE(1) TO THE VALUE OF THE@F@@@@C (I,J)TH MATRIX VALUE, EZ )@@G@@OR TO THE ITH RHS VALUE IF J=NSTOP+1. @[@@@@C @ @@@] IMPLICFA )@@G@@IT REAL*8(A-H,O-Z)@ @@@# INCLUDE F.TABINF,LIST @ @@@# INCLUDFB )@@G@@E F.CIRDAT,LIST @ @@@# INCLUDE F.STATUS,LIST @ @@@# INCLUDFC )@@G@@E F.BLANK,LIST @C@@@# EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))FD )@@G@@@^@#@]@ADD,P *SPICE.MATVALD @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,FE )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOFF )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NFG )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISFH )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0FI )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5FJ )@@G@@ LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50FK )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IFL )@@G@@BR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)FM )@@G@@,VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXFN )@@G@@ORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @ @]@@ COMMONFO )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALFP )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@@@@C FQ )@@G@@@[@@@@C @C@^@@ DATA UNINIT / 6000 2525 2525 2525 2525 B /@C@@@^FR )@@G@@C DATA UNINIT / 6000 2525 2525 2525 2525 B /@ @@@^ DATA UNINIT FS )@@G@@/ 0.0D0 / @[@@@@C @[@@@@C @A@@@@ IF (J.EQ.NSTOP+1) GO TO FT )@@G@@400 @ @@@@ IF (I.EQ.J) GO TO 300 @ @@@@ IF (I.GT.J) GO TO FU )@@G@@200 @[@@@@C @^@@@@C... UPPER TRIANGLE @ @@@@ ISTART=NODPLFV )@@G@@C(IUR+I) @ @@@@ ISTOP=NODPLC(IUR+I+1)-1 @A@@@@ IF (ISTART.GFW )@@G@@T.ISTOP) GO TO 600@A@@@@ DO 100 ISPOT=ISTART,ISTOP @C@@@@ FX )@@G@@IF (NODPLC(IUC+ISPOT).EQ.J) GO TO 110 @#@@@@ 100 CONTINUE @#@@@@FY )@@G@@ GO TO 600 @^@@@@ 110 ISPOT=LYU+ISPOT @#@@@@ GO TO 500 FZ )@@G@@@[@@@@C @^@@@@C... LOWER TRIANGLE @ @@@@ 200 JSTART=NODPLC(ILC+GA )@@G@@J) @ @@@@ JSTOP=NODPLC(ILC+J+1)-1 @A@@@@ IF (JSTART.GT.JSTOGB )@@G@@P) GO TO 600@A@@@@ DO 210 ISPOT=JSTART,JSTOP @C@@@@ IF (NOGC )@@G@@DPLC(ILR+ISPOT).EQ.I) GO TO 220 @#@@@@ 210 CONTINUE @#@@@@ GD )@@G@@GO TO 600 @^@@@@ 220 ISPOT=LYL+ISPOT @#@@@@ GO TO 500 @[@@@@GE )@@G@@C @#@@@@C... DIAGONAL @ @@@@ 300 IO=NODPLC(IORDER+I) @^@@@@GF )@@G@@ ISPOT=LYNL+IO @#@@@@ GO TO 500 @[@@@@C @]@@@@C... GG )@@G@@RHS @#@@@@ 400 ISPOT=LVN+I @[@@@@C @^@@@@C... SET NONZERO TERM GH )@@G@@@ @@@@ 500 IF (MODE.EQ.3) GO TO 510@ @@@@ VALUE(1)=VALUE(ISPOT) GI )@@G@@@#@@@@ GO TO 1000 @ @@@@ 510 CVALUE(1)=CVALUE(ISPOT) @#@@@@ GJ )@@G@@GO TO 1000 @[@@@@C @A@@@@C... SET (IDENTICALLY) ZERO TERM @ @@@@GK )@@G@@ 600 IF (MODE.EQ.3) GO TO 610@^@@@@ VALUE(1)=UNINIT @#@@@@ GL )@@G@@GO TO 1000 @A@@@@ 610 CVALUE(1)=CMPLX(UNINIT,UNINIT)@#@@@@ GO TO GM )@@G@@1000 @[@@@@C @#@@@@C... FINISHED @]@@@@ 1000 RETURN@]@@@] GN )@@G@@END @]@]@@ END @^@]@@ SUBROUTINE TMPUPD @[@]@@C @G@]@@GO )@@G@@C THIS ROUTINE UPDATES THE TEMPERATURE-DEPENDENT PARAMETERS IN THE GP )@@G@@@G@]@@C DEVICE MODELS. IT ALSO UPDATES THE VALUES OF TEMPERATURE-DEPENDGQ )@@G@@ENT @C@]@@C RESISTORS. THE UPDATED VALUES ARE PRINTED. @[@]@@C GR )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUGS )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,GT )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILGU )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWGV )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,GW )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @F@]@@GX )@@G@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@GY )@@G@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELGZ )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NHA )@@G@@TLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)HB )@@G@@,AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOHC )@@G@@RD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ HD )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@HE )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@HF )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ HG )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))HH )@@G@@@[@]@@C @[@]@@C @ @]@@ DIMENSION TMPTIT(4) @G@]@@ HI )@@G@@DATA TMPTIT / 8HTEMPERAT, 8HURE-ADJU, 8HSTED VAL, 8HUES / @[@]@@HJ )@@G@@C @[@]@@C @B@]@@ TEMPD=VALUE(ITEMPS+ITEMNO)+CTOK @^@]@@HK )@@G@@ XKT=BOLTZ*TEMPD @#@]@@ OLDVT=VT @^@]@@ VT=XKT/CHARGHL )@@G@@E @E@]@@ DTEMP=VALUE(ITEMPS+ITEMNO)-VALUE(ITEMPS+ITEMNO-1) HM )@@G@@@C@]@@ RATIO=TEMPD/(VALUE(ITEMPS+ITEMNO-1)+CTOK) @^@]@@ RATLOGHN )@@G@@=ALOG(RATIO)@^@]@@ RATIO1=RATIO-1.0 @C@]@@ DELT=VALUE(ITEMPS+HO )@@G@@ITEMNO)-VALUE(ITEMPS+1) @^@]@@ DELTSQ=DELT*DELT @^@]@@ REFTMPHP )@@G@@=27.0+CTOK @#@]@@ OLDEG=EGFET @D@]@@ EGFET=1.16-(7.02E-4*TEMPHQ )@@G@@D*TEMPD)/(TEMPD+1108.0) @#@]@@ OLDXNI=XNI @E@]@@ ARG=-EGFET/(HR )@@G@@XKT+XKT)+1.12/(BOLTZ*(REFTMP+REFTMP)) @ @]@@ FACTOR=TEMPD/REFTMHS )@@G@@P @A@]@@ FACTOR=FACTOR*SQRT(FACTOR) @B@]@@ XNI=1.45E10*HT )@@G@@FACTOR*EXP(CHARGE*ARG) @B@]@@ PBFACT=(VT+VT)*ALOG(OLDXNI/XNI) HU )@@G@@@A@]@@ CALL TITLE(0,LWIDTH,1,TMPTIT) @[@]@@C @]@]@@C RESISTORSHV )@@G@@@[@]@@C @^@]@@ LOC=LOCATE(1) @#@]@@ ITITLE=0 @ @]@@HW )@@G@@ 10 IF (LOC.EQ.0) GO TO 100 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ HX )@@G@@TC1=VALUE(LOCV+3) @^@]@@ TC2=VALUE(LOCV+4) @ @]@@ IF (TC1.NE.0HY )@@G@@.0) GO TO 20@ @]@@ IF (TC2.EQ.0.0) GO TO 40@A@]@@ 20 IF (ITITLE.NHZ )@@G@@E.0) GO TO 30 @#@]@@ WRITE (6,21)@E@]@@ 21 FORMAT(//^0**** REIA )@@G@@SISTORS^,/,^0NAME^,8X,^VALUE^,//) @#@]@@ ITITLE=1 @D@]@@ 30 IB )@@G@@RNEW=VALUE(LOCV+2)*(1.0+TC1*DELT+TC2*DELTSQ) @ @]@@ VALUE(LOCV+1IC )@@G@@)=1.0/RNEW @A@]@@ WRITE (6,31) VALUE(LOCV),RNEW @ @]@@ 31 FORMATID )@@G@@(1X,A8,1P6E11.2) @^@]@@ 40 LOC=NODPLC(LOC) @#@]@@ GO TO 10 IE )@@G@@@[@]@@C @#@]@@C DIODE MODEL @[@]@@C @^@]@@ 100 LOC=LOCATE(2IF )@@G@@1) @ @]@@ IF (LOC.EQ.0) GO TO 200 @^@]@@ WRITE (6,101) IG )@@G@@@G@]@@ 101 FORMAT(//^0**** DIODE MODEL PARAMETERS^,/,^0NAME^,9X,^IS^,9XIH )@@G@@,^PB^,@^@]@@ 1 8X,^CJO^,//) @ @]@@ 110 IF (LOC.EQ.0) GO TO 200 II )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@E@]@@C... IS(T2)=IS(T1)*EXP(EG/(N*VT)*(TIJ )@@G@@2/T1-1))*(T2/T1)'(PT/N) @^@]@@ XN=VALUE(LOCV+3) @F@]@@ FACTORIK )@@G@@=RATIO1*VALUE(LOCV+8)/(XN*VT)+VALUE(LOCV+9)/XN*RATLOG @^@]@@ FACTORIL )@@G@@=EXP(FACTOR)@B@]@@ VALUE(LOCV+1)=VALUE(LOCV+1)*FACTOR @ @]@@ IM )@@G@@OLDPB=VALUE(LOCV+6) @B@]@@ VALUE(LOCV+6)=RATIO*OLDPB+PBFACT IN )@@G@@@A@]@@ PBDIFF=VALUE(LOCV+6)-OLDPB @A@]@@ VALUE(LOCV+5)=VALUIO )@@G@@E(LOCV+5) @D@]@@ 1 *(1.0+VALUE(LOCV+7)*(400.0E-6*DTEMP-PBDIFF)) IP )@@G@@@A@]@@ PBRAT=VALUE(LOCV+6)/OLDPB @B@]@@ VALUE(LOCV+12)=VALIQ )@@G@@UE(LOCV+12)*PBRAT @B@]@@ VALUE(LOCV+15)=VALUE(LOCV+15)*PBRAT @ @]@@IR )@@G@@ VTE=VALUE(LOCV+3)*VT @E@]@@ VALUE(LOCV+18)=VTE*ALOG(VTE/(RIS )@@G@@OOT2*VALUE(LOCV+1))) @G@]@@ WRITE (6,31) VALUE(LOCV),VALUE(LOCV+IT )@@G@@1),VALUE(LOCV+6),VALUE(LOCV+5)@^@]@@ LOC=NODPLC(LOC) @#@]@@ IU )@@G@@GO TO 110 @[@]@@C @ @]@@C BIPOLAR TRANSISTOR MODEL @[@]@@C IV )@@G@@@^@]@@ 200 LOC=LOCATE(22) @ @]@@ IF (LOC.EQ.0) GO TO 300 @^@]@@IW )@@G@@ WRITE (6,201) @F@]@@ 201 FORMAT(//^0**** BJT MODEL PARAMETERSIX )@@G@@^,/,^0NAME^,9X,^IS^,8X, @C@]@@ 1 ^CJE^,9X,^PE^,8X,^CJC^,9X,^PC^,//IY )@@G@@) @ @]@@ 210 IF (LOC.EQ.0) GO TO 300 @^@]@@ LOCV=NODPLC(LOC+1)IZ )@@G@@@D@]@@C... IS(T2)=IS(T1)*EXP(EG/VT*(T2/T1-1))*(T2/T1)'PT @E@]@@ JA )@@G@@FACTOR=RATIO1*VALUE(LOCV+24)/VT+VALUE(LOCV+25)*RATLOG @^@]@@ FACTORJB )@@G@@=EXP(FACTOR)@ @]@@ CSATO=VALUE(LOCV+3) @B@]@@ VALUE(LOCV+3JC )@@G@@)=VALUE(LOCV+3)*FACTOR @ @]@@ CSATN=VALUE(LOCV+3) @ @]@@ JD )@@G@@CFACTR=ALOG(CSATO/CSATN)@^@]@@ C2=VALUE(LOCV+10) @ @]@@ ONE=1.JE )@@G@@0/VALUE(LOCV+11) @C@]@@ VALUE(LOCV+10)=C2*EXP((1.0-ONE)*CFACTR) JF )@@G@@@^@]@@ C4=VALUE(LOCV+13) @ @]@@ ONC=1.0/VALUE(LOCV+14) @C@]@@JG )@@G@@ VALUE(LOCV+13)=C4*EXP((1.0-ONC)*CFACTR) @ @]@@ OLDPB=VALUE(JH )@@G@@LOCV+19) @B@]@@ VALUE(LOCV+19)=RATIO*OLDPB+PBFACT @A@]@@ JI )@@G@@PBDIFF=VALUE(LOCV+19)-OLDPB @A@]@@ VALUE(LOCV+18)=VALUE(LOCV+18) JJ )@@G@@@D@]@@ 1 *(1.0+VALUE(LOCV+20)*(400.0E-6*DTEMP-PBDIFF))@A@]@@ JK )@@G@@PBRAT=VALUE(LOCV+19)/OLDPB @B@]@@ VALUE(LOCV+28)=VALUE(LOCV+28)*JL )@@G@@PBRAT @B@]@@ VALUE(LOCV+30)=VALUE(LOCV+30)*PBRAT @ @]@@ OLDPB=JM )@@G@@VALUE(LOCV+22) @B@]@@ VALUE(LOCV+22)=RATIO*OLDPB+PBFACT @A@]@@JN )@@G@@ PBDIFF=VALUE(LOCV+22)-OLDPB @A@]@@ VALUE(LOCV+21)=VALUE(LOCJO )@@G@@V+21) @D@]@@ 1 *(1.0+VALUE(LOCV+23)*(400.0E-6*DTEMP-PBDIFF))@A@]@@JP )@@G@@ PBRAT=VALUE(LOCV+22)/OLDPB @B@]@@ VALUE(LOCV+33)=VALUE(LOCJQ )@@G@@V+33)*PBRAT @B@]@@ VALUE(LOCV+34)=VALUE(LOCV+34)*PBRAT @D@]@@ JR )@@G@@VALUE(LOCV+37)=VT*ALOG(VT/(ROOT2*VALUE(LOCV+3)))@E@]@@ WRITE (6,31)JS )@@G@@ VALUE(LOCV),VALUE(LOCV+3),VALUE(LOCV+18),@D@]@@ 1 VALUE(LOCV+19),JT )@@G@@VALUE(LOCV+21),VALUE(LOCV+22) @^@]@@ LOC=NODPLC(LOC) @#@]@@ JU )@@G@@GO TO 210 @[@]@@C @#@]@@C JFET MODEL @[@]@@C @^@]@@ 300 JV )@@G@@LOC=LOCATE(23) @ @]@@ IF (LOC.EQ.0) GO TO 400 @^@]@@ WRITE JW )@@G@@(6,301) @G@]@@ 301 FORMAT(//^0**** JFET MODEL PARAMETERS^,/,^0NAME^JX )@@G@@,9X,^IS^,9X,^PB^, @ @]@@ 1 8X,^CGS^,8X,^CGD^,//)@ @]@@ 310 IF (LOJY )@@G@@C.EQ.0) GO TO 400 @^@]@@ LOCV=NODPLC(LOC+1)@D@]@@ VALUE(LOCV+9JZ )@@G@@)=VALUE(LOCV+9)*EXP(RATIO1*1.11/VT) @ @]@@ OLDPB=VALUE(LOCV+8) KA )@@G@@@B@]@@ VALUE(LOCV+8)=RATIO*OLDPB+PBFACT @A@]@@ PBDIFF=VALUEKB )@@G@@(LOCV+8)-OLDPB @C@]@@ CJFACT=1.0+0.5*(400.0E-6*DTEMP-PBDIFF) KC )@@G@@@B@]@@ VALUE(LOCV+6)=VALUE(LOCV+6)*CJFACT @B@]@@ VALUE(LOCV+7KD )@@G@@)=VALUE(LOCV+7)*CJFACT @A@]@@ PBRAT=VALUE(LOCV+8)/OLDPB @B@]@@KE )@@G@@ VALUE(LOCV+12)=VALUE(LOCV+12)*PBRAT @B@]@@ VALUE(LOCV+13)=VALKF )@@G@@UE(LOCV+13)*PBRAT @D@]@@ VALUE(LOCV+16)=VT*ALOG(VT/(ROOT2*VALUE(LOCKG )@@G@@V+9)))@E@]@@ WRITE (6,31) VALUE(LOCV),VALUE(LOCV+9),VALUE(LOCV+8), KH )@@G@@@A@]@@ 1 VALUE(LOCV+6),VALUE(LOCV+7)@^@]@@ LOC=NODPLC(LOC) KI )@@G@@@#@]@@ GO TO 310 @[@]@@C @#@]@@C MOSFET MODEL @[@]@@C KJ )@@G@@@^@]@@ 400 LOC=LOCATE(24) @ @]@@ IF (LOC.EQ.0) GO TO 1000@^@]@@KK )@@G@@ WRITE (6,401) @G@]@@ 401 FORMAT(//^0**** MOSFET MODEL PARAMETKL )@@G@@ERS^,/,^0NAME^,8X,^VTO^,8X, @C@]@@ 1 ^PHI^,9X,^PB^,9X,^JS^,7X,^BKM )@@G@@ETA^,//) @ @]@@ 410 IF (LOC.EQ.0) GO TO 1000@^@]@@ LOCV=NODPLC(KN )@@G@@LOC+1)@ @]@@ RATIO4=RATIO*SQRT(RATIO)@B@]@@ VALUE(LOCV+2)=VALUKO )@@G@@E(LOCV+2)/RATIO4 @B@]@@ VALUE(LOCV+23)=VALUE(LOCV+23)/RATIO4@ @]@@KP )@@G@@ OLDPHI=VALUE(LOCV+4) @B@]@@ VALUE(LOCV+4)=RATIO*OLDPHI+PBFKQ )@@G@@ACT @^@]@@ PHI=VALUE(LOCV+4) @[@]@@C @C@]@@C PROCESS EL-MANSKR )@@G@@Y^S MOSFET MODEL PARAMETERS @[@]@@C @B@]@@ IF (VALUE(LOCV+36)KS )@@G@@.EQ.0.0) GO TO 420@C@]@@ VALUE(LOCV+37)=SQRT(VT)/VALUE(LOCV+3) KT )@@G@@@ @]@@ ALPHA=VALUE(LOCV+37) @ @]@@ VALUE(LOCV+38)=VT/ALPHA KU )@@G@@@^@]@@ AHPLA=1.0/ALPHA @B@]@@ VALUE(LOCV+39)=(ALPHA+ALPHA)+AKV )@@G@@HPLA @^@]@@ TAHPLA=AHPLA+AHPLA@ @]@@ VALUE(LOCV+40)=TAHPLA KW )@@G@@@A@]@@ VALUE(LOCV+41)=TAHPLA*TAHPLA @C@]@@ VALUE(LOCV+42)=VALKX )@@G@@UE(LOCV+4)/(2.0*VT) @#@]@@ VLIM=1.0E7 @B@]@@ IF (NODPLC(LKY )@@G@@OC+2).LT.0) VLIM=6.0E6 @B@]@@ VALUE(LOCV+43)=VALUE(LOCV+23)/VLIM KZ )@@G@@@#@]@@ GO TO 430 @[@]@@C @A@]@@ 420 VFB=VALUE(LOCV+34)-OLDPHLA )@@G@@I @ @]@@ VALUE(LOCV+34)=VFB+PHI @#@]@@ 430 CONTINUE @E@]@@LB )@@G@@ VALUE(LOCV+1)=VALUE(LOCV+34)+VALUE(LOCV+3)*SQRT(PHI) @F@]@@ LC )@@G@@VALUE(LOCV+15)=VALUE(LOCV+15)*EXP(-EGFET/VT+OLDEG/OLDVT) @ @]@@ LD )@@G@@OLDPB=VALUE(LOCV+14) @B@]@@ VALUE(LOCV+14)=RATIO*OLDPB+PBFACT LE )@@G@@@^@]@@ PB=VALUE(LOCV+14) @^@]@@ RATIO2=OLDPB/PB @ @]@@ LF )@@G@@RATIO3=SQRT(RATIO2) @B@]@@ VALUE(LOCV+11)=VALUE(LOCV+11)*RATIO3LG )@@G@@@B@]@@ VALUE(LOCV+12)=VALUE(LOCV+12)*RATIO3@^@]@@ PBRAT=PB/OLDLH )@@G@@PB @B@]@@ VALUE(LOCV+29)=VALUE(LOCV+29)*PBRAT @B@]@@ VALUE(LI )@@G@@LOCV+30)=VALUE(LOCV+30)*PBRAT @E@]@@ WRITE (6,31) VALUE(LOCV),VALUELJ )@@G@@(LOCV+1),VALUE(LOCV+4), @D@]@@ 1 VALUE(LOCV+14),VALUE(LOCV+15),VALLK )@@G@@UE(LOCV+2) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 410 @[@]@@LL )@@G@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 1000 RETURN@]@]@@ END LM )@@G@@@B@]@@ SUBROUTINE MAGPHS(CVAR,XMAG,XPHS) @[@]@@C @G@]@@C LN )@@G@@THIS ROUTINE COMPUTES THE MAGNITUDE AND PHASE OF ITS COMPLEX ARG- @D@]@@LO )@@G@@C UMENT CVAR, STORING THE RESULTS IN XMAG AND XPHS. @[@]@@C @G@]@@LP )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, LQ )@@G@@@F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX LR )@@G@@@#@]@@ COMPLEX CVAR@[@]@@C @[@]@@C @^@]@@ XREAL=REAL(CLS )@@G@@VAR) @^@]@@ XIMAG=AIMAG(CVAR) @B@]@@ XMAG=SQRT(XREAL*XREAL+XILT )@@G@@MAG*XIMAG) @A@]@@ IF (XMAG.GE.1.0E-20) GO TO 10 @#@]@@ XMAG=1LU )@@G@@.0E-20@#@]@@ XPHS=0.0 @]@]@@ RETURN@A@]@@ 10 XPHS=RAD*ATALV )@@G@@N2(XIMAG,XREAL) @]@]@@ RETURN@]@]@@ END @A@]@@ INTEGELW )@@G@@R FUNCTION XOR(A,B) @[@]@@C @G@]@@C THIS ROUTINE COMPUTES A LX )@@G@@SINGLE-PRECISION INTEGER RESULT WHICH IS @G@]@@C THE RESULT OF EXCLUSIVLY )@@G@@E-OR*ING THE TWO REAL-VALUED ARGUMENTS A AND B @]@]@@C TOGETHER. @[@]@@LZ )@@G@@C @C@]@@ XOR=OR(AND(A,COMPL(B)),AND(B,COMPL(A))) @]@]@@ MA )@@G@@RETURN@]@]@@ END @C@]@@ SUBROUTINE OUTNAM(LOC,KTYPE,STRING,IMB )@@G@@POS) @[@]@@C @G@]@@C THIS ROUTINE CONSTRUCTS THE ^NAME^ FOR THEMC )@@G@@ OUTPUT VARIABLE INDI- @G@]@@C CATED BY LOC, ADDING THE CHARACTERS TO TMD )@@G@@HE CHARACTER ARRAY ^STRING^, @C@]@@C BEGINNING WITH THE POSITION MARKEDME )@@G@@ BY IPOS. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTMF )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIMG )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,MH )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEMI )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LMJ )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUMK )@@G@@TPT,LPOL,LZER @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGEML )@@G@@R NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUEMM )@@G@@(1),NODPLC(1),CVALUE(1))@[@]@@C @ @]@@ DIMENSION STRING(1) MN )@@G@@@D@]@@ DIMENSION AOUT(19),LENOUT(19),AOPT(5),LENOPT(5) @G@]@@ MO )@@G@@DATA AOUT / 6HV , 6HVM , 6HVR , 6HVI , 6HVP , @G@]@@MP )@@G@@ 1 6HVDB , 6HI , 6HIM , 6HIR , 6HII , MQ )@@G@@@G@]@@ 2 6HIP , 6HIDB , 6HONOISE, 6HINOISE, 6HHD2 MR )@@G@@, @E@]@@ 1 6HHD3 , 6HDIM2 , 6HSIM2 , 6HDIM3 / MS )@@G@@@E@]@@ DATA LENOUT / 1,2,2,2,2,3,1,2,2,2,2,3,6,6,3,3,4,4,4 / @F@]@@MT )@@G@@ DATA AOPT / 5HMAG , 5HREAL , 5HIMAG , 5HPHASE, 5HDB / @A@]@@MU )@@G@@ DATA LENOPT / 3,4,4,5,2 / @F@]@@ DATA ALPRN, ACOMMA, ARPRMV )@@G@@N, ABLNK / 1H(, 1H,, 1H), 1H / @[@]@@C @[@]@@C @ @]@@ MW )@@G@@IOUTYP=NODPLC(LOC+5) @A@]@@ IF (IOUTYP.GE.2) GO TO 10 @ @]@@MX )@@G@@ LOUT=KTYPE+IOUTYP*6 @#@]@@ GO TO 20 @^@]@@ 10 LOUT=IMY )@@G@@OUTYP+11 @D@]@@ 20 CALL MOVE(STRING,IPOS,AOUT(LOUT),1,LENOUT(LOUT))MZ )@@G@@@ @]@@ IPOS=IPOS+LENOUT(LOUT) @A@]@@ IF (IOUTYP.GE.2) GO TO 2NA )@@G@@00 @B@]@@ CALL MOVE(STRING,IPOS,ALPRN,1,1) @#@]@@ IPOS=INB )@@G@@POS+1 @A@]@@ IF (IOUTYP.NE.0) GO TO 100 @ @]@@ NODE1=NODPLCNC )@@G@@(LOC+2) @D@]@@ CALL ALFNUM(NODPLC(JUNODE+NODE1),STRING,IPOS) ND )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ IF (NODE2.EQ.1) GO TO 30NE )@@G@@@B@]@@ CALL MOVE(STRING,IPOS,ACOMMA,1,1) @#@]@@ IPOS=IPOS+1 NF )@@G@@@D@]@@ CALL ALFNUM(NODPLC(JUNODE+NODE2),STRING,IPOS) @B@]@@ 30 NG )@@G@@CALL MOVE(STRING,IPOS,ARPRN,1,1) @#@]@@ IPOS=IPOS+1 @#@]@@ NH )@@G@@GO TO 1000 @[@]@@C @^@]@@ 100 LOCV=NODPLC(LOC+1)@^@]@@ ANAM=VNI )@@G@@ALUE(LOCV) @#@]@@ ACHAR=ABLNK @#@]@@ DO 110 I=1,8@A@]@@ NJ )@@G@@CALL MOVE(ACHAR,1,ANAM,I,1) @A@]@@ IF (ACHAR.EQ.ABLNK) GO TO 120 NK )@@G@@@B@]@@ CALL MOVE(STRING,IPOS,ACHAR,1,1) @#@]@@ IPOS=IPOS+1 NL )@@G@@@#@]@@ 110 CONTINUE @B@]@@ 120 CALL MOVE(STRING,IPOS,ARPRN,1,1) NM )@@G@@@#@]@@ IPOS=IPOS+1 @#@]@@ GO TO 1000 @[@]@@C @A@]@@ 200 NN )@@G@@IF (KTYPE.EQ.1) GO TO 1000 @B@]@@ CALL MOVE(STRING,IPOS,ALPRN,1,NO )@@G@@1) @#@]@@ IPOS=IPOS+1 @E@]@@ CALL MOVE(STRING,IPOS,AOPT(KTYNP )@@G@@PE-1),1,LENOPT(KTYPE-1))@A@]@@ IPOS=IPOS+LENOPT(KTYPE-1) @B@]@@NQ )@@G@@ CALL MOVE(STRING,IPOS,ARPRN,1,1) @#@]@@ IPOS=IPOS+1 @[@]@@NR )@@G@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 1000 RETURN@]@]@@ END NS )@@G@@@C@]@@ SUBROUTINE ALFNUM(NUMBER,STRING,IPOS) @[@]@@C @G@]@@NT )@@G@@C THIS ROUTINE CONVERTS NUMBER INTO CHARACTER FORM, STORING THE NU )@@G@@@G@]@@C CHARACTERS IN THE CHARACTER ARRAY STRING, BEGINNING WITH THE POSNV )@@G@@ITION @^@]@@C INDICATED BY IPOS. @[@]@@C @[@]@@C @ @]@@ NW )@@G@@DIMENSION STRING(1) @ @]@@ DIMENSION ADIGIT(10) @F@]@@ NX )@@G@@DATA ADIGIT / 1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9 / @ @]@@ NY )@@G@@DATA AMINUS / 1H- / @[@]@@C @[@]@@C @#@]@@ NUM=NUMBER NZ )@@G@@@[@]@@C @^@]@@C CHECK FOR NUMBER < 0 @[@]@@C @ @]@@ IF (NUOA )@@G@@M.GE.0) GO TO 10 @#@]@@ NUM=-NUM @B@]@@C... NEGATIVE NUMBER: OB )@@G@@INSERT MINUS SIGN @B@]@@ CALL MOVE(STRING,IPOS,AMINUS,1,1) @#@]@@OC )@@G@@ IPOS=IPOS+1 @[@]@@C @E@]@@C CONVERT NUMBER ONE DIGIT AT A TIMOD )@@G@@E, IN REVERSE ORDER @[@]@@C @#@]@@ 10 ISTART=IPOS @^@]@@ 20 OE )@@G@@NUMTMP=NUM/10 @ @]@@ IDIGIT=NUM-NUMTMP*10 @D@]@@ CALL MOF )@@G@@OVE(STRING,IPOS,ADIGIT(IDIGIT+1),1,1) @#@]@@ IPOS=IPOS+1 @#@]@@OG )@@G@@ NUM=NUMTMP @ @]@@ IF (NUM.NE.0) GO TO 20 @#@]@@ ISTOP=OH )@@G@@IPOS-1@[@]@@C @B@]@@C NOW REVERSE THE ORDER OF THE DIGITS @[@]@@OI )@@G@@C @A@]@@ 30 IF (ISTOP.LE.ISTART) GO TO 40 @B@]@@ CALL MOVE(TMOJ )@@G@@PDGT,1,STRING,ISTART,1) @C@]@@ CALL MOVE(STRING,ISTART,STRING,ISTOPOK )@@G@@,1) @B@]@@ CALL MOVE(STRING,ISTOP,TMPDGT,1,1) @^@]@@ ISTARTOL )@@G@@=ISTART+1 @^@]@@ ISTOP=ISTOP-1 @#@]@@ GO TO 30 @[@]@@OM )@@G@@C @^@]@@C CONVERSION COMPLETE @[@]@@C @]@]@@ 40 RETURN@]@]@@ON )@@G@@ END @B@]@@ SUBROUTINE FIND(ANAME,ID,LOC,IFORCE)@[@]@@C OO )@@G@@@G@]@@C THIS ROUTINE SEARCHES THE LIST WITH NUMBER ^ID^ FOR AN ELEMEOP )@@G@@NT @G@]@@C WITH NAME ^ANAME^. LOC IS SET TO POINT TO THE ELEMENT. IOQ )@@G@@F IFORCE IS @G@]@@C NONZERO, THEN FIND EXPECTS TO HAVE TO ADD THE ELEMENOR )@@G@@T TO THE LIST, AND@G@]@@C REPORTS A FATAL ERROR IF THE ELEMENT IS FOUND.OS )@@G@@ IF SUBCIRCUIT DEFINI- @G@]@@C TION IS IN PROGRESS (NONZERO VALUE FOR NOT )@@G@@SBCKT), THEN FIND SEARCHES THE@G@]@@C CURRENT SUBCIRCUIT DEFINITION LISTOU )@@G@@ RATHER THAN THE NOMINAL ELEMENT @]@]@@C LIST. @[@]@@C @G@]@@OV )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, OW )@@G@@@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEOX )@@G@@, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,OY )@@G@@NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQOZ )@@G@@UA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXPA )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ PB )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@PC )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGPD )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLPE )@@G@@COD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMONPF )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALPG )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C PH )@@G@@@C@]@@C INDEX TO THE CONTENTS OF THE VARIOUS LISTS: @[@]@@C @ @]@@PI )@@G@@C LIST CONTENTS @ @]@@C ---- -------- @[@]@@PJ )@@G@@C @ @]@@C 1 RESISTORS @ @]@@C 2 CAPACPK )@@G@@ITORS @ @]@@C 3 INDUCTORS @A@]@@C 4 MUTUAPL )@@G@@L INDUCTORS @F@]@@C 5 NONLINEAR VOLTAGE CONTROLLED CURRENPM )@@G@@T SOURCES @F@]@@C 6 NONLINEAR VOLTAGE CONTROLLED VOLTAGPN )@@G@@E SOURCES @F@]@@C 7 NONLINEAR CURRENT CONTROLLED CURRENPO )@@G@@T SOURCES @F@]@@C 8 NONLINEAR CURRENT CONTROLLED VOLTAGPP )@@G@@E SOURCES @C@]@@C 9 INDEPENDENT VOLTAGE SOURCES @C@]@@PQ )@@G@@C 10 INDEPENDENT CURRENT SOURCES @ @]@@C 11 PR )@@G@@ DIODES @C@]@@C 12 BIPOLAR JUNCTION TRANSISTORS @E@]@@PS )@@G@@C 13 JUNCTION FIELD-EFFECT TRANSISTORS (JFETS)@G@]@@C PT )@@G@@ 14 METAL-OXIDE-SEMICONDUCTOR JUNCTION FETS (MOSFETS) @C@]@@PU )@@G@@C 15 S-PARAMETER 2-PORT NETWORK @C@]@@C 16 PV )@@G@@ Y-PARAMETER 2-PORT NETWORK @B@]@@C 17 TRANSMISSION LINEPW )@@G@@S @ @]@@C 18 @A@]@@C 19 SUBCIPX )@@G@@RCUIT CALLS @B@]@@C 20 SUBCIRCUIT DEFINITIONS @ @]@@C PY )@@G@@ 21 DIODE MODEL@ @]@@C 22 BJT MODEL @ @]@@C PZ )@@G@@ 23 JFET MODEL @A@]@@C 24 MOSFET MODEL @ @]@@QA )@@G@@C 25-30 @ @]@@C 31 .PRINT DC @ @]@@QB )@@G@@C 32 .PRINT TRAN@ @]@@C 33 .PRINT AC @A@]@@QC )@@G@@C 34 .PRINT NOISE @A@]@@C 35 .PRINT DISTQD )@@G@@ORTION@ @]@@C 36 .PLOT DC @ @]@@C 37 .PLOTQE )@@G@@ TR @ @]@@C 38 .PLOT AC @ @]@@C 39 .PLOTQF )@@G@@ NOISE@A@]@@C 40 .PLOT DISTORTION @A@]@@C 41 QG )@@G@@ OUTPUTS FOR DC @B@]@@C 42 OUTPUTS FOR TRANSIENT @A@]@@QH )@@G@@C 43 OUTPUTS FOR AC @A@]@@C 44 OUTPUTS FORQI )@@G@@ NOISE@B@]@@C 45 OUTPUTS FOR DISTORTION @ @]@@C 46-50QJ )@@G@@ @[@]@@C @#@]@@ INTEGER XOR @A@]@@ DIMENSQK )@@G@@ION LNOD(50),LVAL(50) @C@]@@ DATA LNOD / 9,10,12, 7,14,15,14,15,1QL )@@G@@2, 7, @C@]@@ 1 17,31,26,34, 7, 7,34, 0, 5, 5, @C@]@@ 2QM )@@G@@ 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, @C@]@@ 3 21,21,2QN )@@G@@1,21,21,21,21,21,21,21, @C@]@@ 4 8, 8, 8, 8, 8, 0, 0, 0, QO )@@G@@0, 0 /@C@]@@ DATA LVAL / 5, 3, 3, 2, 1, 1, 1, 1, 4, 4, @C@]@@ 1QP )@@G@@ 3, 4, 4,11, 1, 1, 9, 0, 1, 1, @C@]@@ 2 19,38,1QQ )@@G@@7,44, 0, 0, 0, 0, 0, 0, @C@]@@ 3 1, 1, 1, 1, 1,17,17,17,1QR )@@G@@7,17, @C@]@@ 4 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 /@^@]@@ QS )@@G@@DATA NDEFIN /2H.U/@[@]@@C @[@]@@C @#@]@@ ANAM=ANAME @A@]@@QT )@@G@@ CALL SIZMEM(IELMNT,ISIZE) @ @]@@ LOCN=IELMNT+ISIZE+2 QU )@@G@@@A@]@@ IF (NSBCKT.EQ.0) GO TO 10 @A@]@@ LOCT=NODPLC(ISBCKTQV )@@G@@+NSBCKT) @^@]@@ LOC=NODPLC(LOCT+3)@ @]@@ IF (LOC.NE.0) GO TQW )@@G@@O 20 @ @]@@ NODPLC(LOCT+3)=LOCN @#@]@@ GO TO 60 @^@]@@QX )@@G@@ 10 LOC=LOCATE(ID) @ @]@@ IF (LOC.NE.0) GO TO 20 @^@]@@ QY )@@G@@LOCATE(ID)=LOCN @#@]@@ GO TO 50 @[@]@@C @A@]@@C SEARCH LIQZ )@@G@@ST FOR A NAME MATCH @[@]@@C @^@]@@ 20 LOCV=NODPLC(LOC+1)@C@]@@RA )@@G@@ IF (XOR(ANAM,VALUE(LOCV)).NE.0) GO TO 30 @A@]@@ IF (NSBCKT.ERB )@@G@@Q.0) GO TO 25 @B@]@@ IF (NODPLC(LOC-1).NE.ID) GO TO 30 @C@]@@RC )@@G@@ 25 IF (NODPLC(LOC+2).EQ.NDEFIN) GO TO 200 @A@]@@ IF (IFORCE.ERD )@@G@@Q.0) GO TO 200 @^@]@@ WRITE (6,26) ANAM @F@]@@ 26 FORMAT(^0*ERRE )@@G@@ROR*: ABOVE LINE ATTEMPTS TO REDEFINE ^,A8/) @]@]@@ NOGO=1@A@]@@RF )@@G@@ 30 IF (NODPLC(LOC).EQ.0) GO TO 40@^@]@@ LOC=NODPLC(LOC) @#@]@@RG )@@G@@ GO TO 20 @[@]@@C @A@]@@C RESERVE SPACE FOR THIS ELEMENT RH )@@G@@@[@]@@C @^@]@@ 40 NODPLC(LOC)=LOCN @A@]@@ IF (NSBCKT.NE.0) GRI )@@G@@O TO 60 @ @]@@ 50 JELCNT(ID)=JELCNT(ID)+1 @#@]@@ 60 LOC=LOCN RJ )@@G@@@ @]@@ LOCV=LOC+LNOD(ID)-1 @ @]@@ KTMP=LNOD(ID)+LVAL(ID) RK )@@G@@@ @]@@ CALL EXTMEM(IELMNT,KTMP)@]@]@@ IPTR=0@A@]@@ IF (NSRL )@@G@@BCKT.EQ.0) GO TO 80 @#@]@@ IPTR=ID @^@]@@ 80 NODPLC(LOC-1RM )@@G@@)=IPTR@^@]@@ NODPLC(LOC)=0 @^@]@@ NODPLC(LOC+1)=LOCV@^@]@@RN )@@G@@ VALUE(LOCV)=ANAM @[@]@@C @^@]@@C BACKGROUND STORAGE @[@]@@RO )@@G@@C @ @]@@ 100 NODPLC(LOC+2)=NDEFIN @^@]@@ NWORD=LNOD(ID)-4 RP )@@G@@@A@]@@ IF (NWORD.LT.1) GO TO 120 @B@]@@ CALL ZERO4(NODPLC(RQ )@@G@@LOC+3),NWORD) @^@]@@ 120 NWORD=LVAL(ID)-1 @A@]@@ IF (NWORD.LTRR )@@G@@.1) GO TO 200 @B@]@@ CALL ZERO8(VALUE(LOCV+1),NWORD) @[@]@@RS )@@G@@C @]@]@@C EXIT @[@]@@C @]@]@@ 200 RETURN@]@]@@ END RT )@@G@@@^@]@@ IDENT MEMORY @^@]@@ ENTRY MEMORY @D@]@@ RU )@@G@@ TITLE MEMORY ALLOCATION SYSTEM INTERFACE @C@]@@FORTRAN TITLE ERV )@@G@@QUIVALENT FORTRAN DECK LISTING@#@]@@ LIST F@B@]@@FORTRAN IFRW )@@G@@C NE,*FORTRAN*FORTRAN* @@@]@@@B@]@@ SUBROUTINE MEMORY(ATYPE,RX )@@G@@KEY,MFL) @[@]@@C @G@]@@C THIS ROUTINE ADJUSTS THE AMOUNT OF CRY )@@G@@ENTRAL MEMORY USED BY SPICE. @[@]@@C @F@]@@ COMMON /MEMRY/ LORRZ )@@G@@G,ICORE,MAXCOR,MAXUSE,MEMAVL,LDVAL,NUMBLK,@^@]@@ 1 LOCTAB,LTAB SA )@@G@@@G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMSB )@@G@@PTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KSC )@@G@@EOF @G@]@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,SD )@@G@@IECS,MAXMEM,@G@]@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIMESE )@@G@@,MAXPPU,IPPU, @C@]@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) SF )@@G@@@ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@SG )@@G@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALSH )@@G@@UE(1))@[@]@@C @[@]@@C @A@]@@ IF (MFL.GT.MAXMEM) GO TO 30 SI )@@G@@@ @]@@ MAXCOR=MAX0(MAXCOR,MFL) @[@]@@C @C@]@@C CHANGE MEMORY ASJ )@@G@@LLOCATION TO BE MFL WORDS @[@]@@C @#@]@@ GO TO 40 @#@]@@SK )@@G@@ 30 NOGO=-1 @]@]@@ 40 RETURN@]@]@@* END @@@]@@@#@]@@FORTRASL )@@G@@N ENDIF @^@]@@ LIST -F @D@]@@ TITLE ASSEMBLSM )@@G@@E ARGUMENTS INTO B REGISTERS @D@]@@COMPILER MICRO 1,,*FTN* DELETE SN )@@G@@IF COMPILER IS RUN@#@]@@SYSTEM SPACE 4@G@]@@SYSTEM MICRO 1,,*SCOSO )@@G@@PE* DELETE IF OPERATING SYSTEM IS NOT SCOPE @E@]@@SYSTEM MICRO 1SP )@@G@@,,*CALIDOSCOPE* DITTO FOR CALIDOSCOPE @#@]@@RUN SPACE 4@A@]@@SQ )@@G@@RUN IFC EQ,*^COMPILER^*RUN*@^@]@@ASMARG OPSYN NIL @#@]@@SR )@@G@@RUN ENDIF @#@]@@FTN SPACE 4@A@]@@FTN IFC EQ,*^COSS )@@G@@MPILER^*FTN*@#@]@@ASMARG MACRO N@^@]@@ LOCAL CNT @^@]@@ST )@@G@@ SB1 X1 @^@]@@ASMARG IFGT N,1 @#@]@@CNT SESU )@@G@@T 1@#@]@@ SB7 1@^@]@@ASMARG DUP N-1 @^@]@@CNT SV )@@G@@ SET CNT+1 @^@]@@ SA1 A1+B7 @^@]@@ SB.CNT XSW )@@G@@1 @#@]@@ASMARG ENDD @#@]@@ASMARG ENDIF @#@]@@ASMARG ENSX )@@G@@DM @#@]@@FTN ENDIF @G@]@@ASMCOM TITLE ASSEMBLY-LANGUAGE CSY )@@G@@OMMON-BLOCK VARIABLE DEFINITIONS @^@]@@ USE /MEMRY/@^@]@@SZ )@@G@@MAXCOR EQU *+2 @#@]@@ BSS 9@#@]@@TABINF SPACE 2TA )@@G@@@ @]@@ USE /TABINF/ @^@]@@IORDER EQU *+19 @ @]@@TB )@@G@@IUR EQU IORDER+2 @^@]@@IUC EQU IUR+1 @^@]@@ILC TC )@@G@@ EQU IUC+1 @^@]@@ILR EQU ILC+1 @^@]@@ISWAP EQU ITD )@@G@@LR+9 @^@]@@LVN EQU ISWAP+5@^@]@@LYNL EQU LVN+1 @^@]@@TE )@@G@@LYU EQU LYNL+1 @^@]@@LYL EQU LYU+1 @^@]@@ BSTF )@@G@@S 55 @#@]@@CIRDAT SPACE 2@ @]@@ USE /CIRDAT/ TG )@@G@@@^@]@@NSTOP EQU *+103 @^@]@@ BSS 111 @#@]@@FLAGS TH )@@G@@ SPACE 2@^@]@@ USE /FLAGS/@^@]@@IGOOF EQU *+14 TI )@@G@@@^@]@@NOGO EQU IGOOF+1@^@]@@ BSS 17 @#@]@@KNSTNTTJ )@@G@@ SPACE 2@ @]@@ USE /KNSTNT/ @^@]@@GMIN EQU *TK )@@G@@+8 @^@]@@ BSS 17 @#@]@@BLANK SPACE 2@^@]@@ TL )@@G@@ USE /CJE/ @^@]@@MAXMEM EQU *+7 @^@]@@ BSS 3TM )@@G@@2 @#@]@@ SPACE 2@^@]@@ USE /BLANK/@^@]@@VALUE TN )@@G@@ EQU *-1 @^@]@@NODPLC EQU VALUE @^@]@@CVALUE EQU VTO )@@G@@ALUE @^@]@@ BSS 64 @#@]@@ENDCOM SPACE 2@#@]@@ TP )@@G@@ USE 0@A@]@@ TITLE THE REAL THING @C@]@@MERR SXTQ )@@G@@6 -1 SET ERROR FLAG @ @]@@ SA6 NOGO .TR )@@G@@@#@]@@ SPACE 1@B@]@@MEMORY BSS 1 ENTRY/EXIT TS )@@G@@@#@]@@ SPACE 1@#@]@@ ASMARG 3@#@]@@ SPACE 1TT )@@G@@@B@]@@ SA1 B3 FETCH MFL @C@]@@ SA2 MTU )@@G@@AXMEM COMPARE TO LIMIT @ @]@@ IX3 X1-X2 .@B@]@@TV )@@G@@+ ZR X3,*+1 . EQUAL @B@]@@ PL X3,MERRTW )@@G@@ . GREATER @#@]@@ SPACE 1@D@]@@ SA2 MAXCOR TX )@@G@@ MAXCOR=MAX0(MAXCOR,MFL) @ @]@@ IX3 X1-X2 .@ @]@@TY )@@G@@ AX3 59 .@ @]@@ BX4 -X3*X1 .@ @]@@TZ )@@G@@ BX5 X3*X2 .@ @]@@ BX6 X4+X5 .@ @]@@UA )@@G@@ SA6 A2 .@#@]@@ SPACE 1@D@]@@ LXUB )@@G@@1 30 FORMAT SYSTEM REQUEST @ @]@@ BX7 X1 UC )@@G@@ .@ @]@@ SA7 MEMCALL+1 .@E@]@@L10 SA1 1 UD )@@G@@ WAIT FOR ALL QUIET IN RA+1 @ @]@@ NZ X1,L10 .UE )@@G@@@C@]@@ SA2 MEMCALL POST SYSTEM REQUEST@ @]@@ BXUF )@@G@@6 X2 .@ @]@@ SA6 A1 .@F@]@@L20 SAUG )@@G@@1 1 WAIT TILL SYSTEM SWALLOWS THE REQUEST@ @]@@ NZUH )@@G@@ X1,L20 .@#@]@@ SPACE 1@G@]@@ SA1 MEMCALLUI )@@G@@+1 VERIFY THAT ENTIRE REQUEST WAS GRANTED @ @]@@ AX1 3UJ )@@G@@0 .@ @]@@ SA2 B3 .@ @]@@ IX3 XUK )@@G@@1-X2 .@E@]@@ NZ X3,MERR . ERROR -- INSUFFICIENT UL )@@G@@MEMORY@#@]@@ SPACE 1@B@]@@IFCAL IFC EQ,*^SYSTEM^*CALIDOUM )@@G@@SCOPE*@A@]@@IFRUN IFC EQ,*^COMPILER^*RUN*@#@]@@ SPACE 1UN )@@G@@@E@]@@ USE /SYS.MEM/ DECLARE SYSTEM MEMORY BLOCK @D@]@@UO )@@G@@SYS.MEM BSS 5 (WORD 1) = CURRENT CMFL @#@]@@ USUP )@@G@@E *@#@]@@ SPACE 1@E@]@@ LX7 30 UPDATE UQ )@@G@@CMFL IN SYSTEM BLOCK @ @]@@ SA7 SYS.MEM .@#@]@@ UR )@@G@@ SPACE 1@#@]@@IFRUN ENDIF @#@]@@IFCAL ENDIF @#@]@@ US )@@G@@ SPACE 1@A@]@@ EQ MEMORY EXIT @#@]@@MEMCALL SPUT )@@G@@ACE 2@A@]@@MEMCALL VFD 24/4LMEMP,36/*+1 @ @]@@ VFD 3UU )@@G@@0/0,30/0 @#@]@@ END @^@]@@ SUBROUTINE DCDCMP @[@]@@UV )@@G@@C @G@]@@C THIS ROUTINE PERFORMS AN IN-PLACE LU FACTORIZATION OF UW )@@G@@THE COEF- @#@]@@C FICIENT MATRIX. @[@]@@C @G@]@@ COMMON /TABIUX )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISEUY )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2UZ )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@VA )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, VB )@@G@@@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,VC )@@G@@LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOVD )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NVE )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IVF )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITVG )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLVH )@@G@@OG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSVI )@@G@@TOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@ COMMON /BLANK/ VALVJ )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@VK )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C VL )@@G@@@^@]@@ DO 100 I=2,NSTOP @ @]@@ IO=NODPLC(IORDER+I) @C@]@@VM )@@G@@ IF (ABS(VALUE(LYNL+IO)).GE.GMIN) GO TO 10 @ @]@@ VALUE(LYNL+IVN )@@G@@O)=GMIN @^@]@@ IGOOF=IGOOF+1 @ @]@@ 10 JSTART=NODPLC(ILC+VO )@@G@@I) @ @]@@ JSTOP=NODPLC(ILC+I+1)-1 @A@]@@ IF (JSTART.GT.JSTOVP )@@G@@P) GO TO 100@ @]@@ DO 90 J=JSTART,JSTOP @C@]@@ VALUE(LYL+J)VQ )@@G@@=VALUE(LYL+J)/VALUE(LYNL+IO) @^@]@@ ICOL=NODPLC(ILR+J)@ @]@@ VR )@@G@@KSTART=NODPLC(IUR+I) @ @]@@ KSTOP=NODPLC(IUR+I+1)-1 @A@]@@ VS )@@G@@IF (KSTART.GT.KSTOP) GO TO 90 @ @]@@ DO 80 K=KSTART,KSTOP @^@]@@VT )@@G@@ IROW=NODPLC(IUC+K)@ @]@@ IF (ICOL-IROW) 20,60,40 @[@]@@C VU )@@G@@@C@]@@C FIND (ICOL,IROW) MATRIX TERM (UPPER TRIANGLE)@[@]@@C @ @]@@VV )@@G@@ 20 L=NODPLC(IUR+ICOL+1) @]@]@@ 30 L=L-1 @B@]@@ IF (NODPLC(IVW )@@G@@UC+L).NE.IROW) GO TO 30 @#@]@@ ISPOT=LYU+L @#@]@@ GO TO 70 VX )@@G@@@[@]@@C @C@]@@C FIND (ICOL,IROW) MATRIX TERM (LOWER TRIANGLE)@[@]@@VY )@@G@@C @ @]@@ 40 L=NODPLC(ILC+IROW+1) @]@]@@ 50 L=L-1 @B@]@@ VZ )@@G@@IF (NODPLC(ILR+L).NE.ICOL) GO TO 50 @#@]@@ ISPOT=LYL+L @#@]@@ WA )@@G@@GO TO 70 @[@]@@C @B@]@@C FIND (ICOL,IROW) MATRIX TERM (DIAGONAL)WB )@@G@@@[@]@@C @A@]@@ 60 ISPOT=LYNL+NODPLC(IORDER+IROW)@[@]@@C @E@]@@WC )@@G@@ 70 VALUE(ISPOT)=VALUE(ISPOT)-VALUE(LYL+J)*VALUE(LYU+K) @#@]@@ 80 WD )@@G@@CONTINUE @#@]@@ 90 CONTINUE @#@]@@ 100 CONTINUE @]@]@@ WE )@@G@@RETURN@]@]@@ END @^@]@@ SUBROUTINE DCSOL @[@]@@C @G@]@@WF )@@G@@C THIS ROUTINE SOLVES THE SYSTEM OF CIRCUIT EQUATIONS BY PERFORMING WG )@@G@@@G@]@@C A FORWARD AND BACKWARD SUBSTITUTION STEP USING THE PREVIOUSLY-COWH )@@G@@MPUTED@#@]@@C LU FACTORS. @[@]@@C @G@]@@ COMMON /TABINF/ IEWI )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSEWJ )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNWK )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3WL )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@WM )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, WN )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(5WO )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NWP )@@G@@DIST,NTLIN,IBR,NUMVS @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ WQ )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE WR )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @^@]@@C FORWARD SUBSTITUTION WS )@@G@@@[@]@@C @^@]@@ DO 20 I=2,NSTOP @ @]@@ JSTART=NODPLC(ILC+WT )@@G@@I) @ @]@@ JSTOP=NODPLC(ILC+I+1)-1 @A@]@@ IF (JSTART.GT.JSTOWU )@@G@@P) GO TO 20 @ @]@@ IO=NODPLC(IORDER+I) @B@]@@ IF (VALUE(LVWV )@@G@@N+IO).EQ.0.0) GO TO 20 @ @]@@ DO 10 J=JSTART,JSTOP @^@]@@ WW )@@G@@JO=NODPLC(ILR+J) @ @]@@ JO=NODPLC(IORDER+JO) @E@]@@ VALUE(WX )@@G@@LVN+JO)=VALUE(LVN+JO)-VALUE(LYL+J)*VALUE(LVN+IO)@#@]@@ 10 CONTINUE WY )@@G@@@#@]@@ 20 CONTINUE @[@]@@C @^@]@@C BACK SUBSTITUTION @[@]@@WZ )@@G@@C @#@]@@ K=NSTOP+1 @^@]@@ DO 50 I=2,NSTOP @]@]@@ XA )@@G@@K=K-1 @ @]@@ IO=NODPLC(IORDER+K) @ @]@@ JSTART=NODPLC(IUR+XB )@@G@@K) @ @]@@ JSTOP=NODPLC(IUR+K+1)-1 @A@]@@ IF (JSTART.GT.JSTOXC )@@G@@P) GO TO 40 @ @]@@ DO 30 J=JSTART,JSTOP @^@]@@ JO=NODPLC(IUXD )@@G@@C+J) @ @]@@ JO=NODPLC(IORDER+JO) @E@]@@ VALUE(LVN+IO)=VALUXE )@@G@@E(LVN+IO)-VALUE(LYU+J)*VALUE(LVN+JO)@#@]@@ 30 CONTINUE @C@]@@ 40 XF )@@G@@VALUE(LVN+IO)=VALUE(LVN+IO)/VALUE(LYNL+IO)@#@]@@ 50 CONTINUE @]@]@@XG )@@G@@ RETURN@]@]@@ END @^@]@@ IDENT MOVE @^@]@@ XH )@@G@@ ENTRY MOVE @B@]@@MOVE TITLE *** MOVE CHARACTERS *** @#@]@@XI )@@G@@ SPACE 5@G@]@@* NOTE: FOR COMPATIBILITY WITH IBM, THIS RXJ )@@G@@OUTINE ASSUMES EIGHT @F@]@@* CHARACTERS PER WORD, USING THE UPPER 48 XK )@@G@@BITS FOR THAT PURPOSE. @C@]@@FORTRAN TITLE FORTRAN EQUIVALENT DECK LXL )@@G@@ISTING@#@]@@ LIST F@B@]@@FORTRAN IFC NE,*FORTRAN*FORTRANXM )@@G@@* @@@]@@@A@]@@ SUBROUTINE MOVE(A,I,B,J,N) @ @]@@ LOGICAXN )@@G@@L*1 A(1),B(1) @[@]@@C @G@]@@C THIS ROUTINE MOVES N CHARACTERXO )@@G@@S FROM CHARACTER ARRAY B TO CHARAC- @G@]@@C TER ARRAY A, BEGINNING WITH XP )@@G@@THE J*TH AND I*TH CHARACTER POSITIONS, @#@]@@C RESPECTIVELY. @[@]@@XQ )@@G@@C @^@]@@ IF (N.EQ.0) RETURN@#@]@@ DO 10 K=1,N @^@]@@ XR )@@G@@A(I+K-1)=B(J+K-1) @#@]@@ 10 CONTINUE @]@]@@ RETURN@]@]@@* XS )@@G@@END @@@]@@@#@]@@FORTRAN ENDIF @^@]@@ LIST -F @D@]@@XT )@@G@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISTERS @D@]@@COMPILER MIXU )@@G@@CRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@]@@SYSTEM SPACE 4@G@]@@XV )@@G@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATING SYSTEM IS NOT SCOPE XW )@@G@@@E@]@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTO FOR CALIDOSCOPE @#@]@@XX )@@G@@RUN SPACE 4@A@]@@RUN IFC EQ,*^COMPILER^*RUN*@^@]@@ASMARGXY )@@G@@ OPSYN NIL @#@]@@RUN ENDIF @#@]@@FTN SPACE 4@A@]@@XZ )@@G@@FTN IFC EQ,*^COMPILER^*FTN*@#@]@@ASMARG MACRO N@^@]@@ YA )@@G@@ LOCAL CNT @^@]@@ SB1 X1 @^@]@@ASMARG IFGT NYB )@@G@@,1 @#@]@@CNT SET 1@#@]@@ SB7 1@^@]@@ASMARG DUYC )@@G@@P N-1 @^@]@@CNT SET CNT+1 @^@]@@ SA1 A1+B7 YD )@@G@@@^@]@@ SB.CNT X1 @#@]@@ASMARG ENDD @#@]@@ASMARG ENYE )@@G@@DIF @#@]@@ASMARG ENDM @#@]@@FTN ENDIF @A@]@@COMPASS TIYF )@@G@@TLE COMPASS PROGRAM @B@]@@MOVE BSS 1 ENTRY/EXIT YG )@@G@@@#@]@@ SPACE 1@#@]@@ ASMARG 5@#@]@@ SPACE 1YH )@@G@@@A@]@@ SA5 B5 FETCH N@E@]@@ ZR X5,MOVEYI )@@G@@ EXIT IF NULL MOVE REQUESTED @#@]@@ SPACE 1@B@]@@ YJ )@@G@@ MX0 57 USEFUL MASK @A@]@@ MX7 59 =YK )@@G@@-1 @C@]@@ SB7 1 INVIOLATE CONSTANT @#@]@@ YL )@@G@@ SPACE 1@B@]@@ SA2 B2 SETUP *A* @A@]@@ YM )@@G@@ IX3 X2+X7 (I-1) @C@]@@ BX4 X3 SAVE FOYN )@@G@@R A FEW USEC@A@]@@ AX3 3 (I-1)/8@E@]@@ SAYO )@@G@@1 B1+X3 FETCH APPROPRIATE WORD OF *A* @D@]@@ BX4 -YP )@@G@@X0*X4 CHARACTER POSITION (0-7) @C@]@@ SB1 X4 HYQ )@@G@@OLD POSITION IN B1@C@]@@ SB5 B1+B1 ORIENT *A* PROPERLYYR )@@G@@@ @]@@ SB6 B5+B5 .@ @]@@ SB5 B5+B6 .YS )@@G@@@A@]@@ LX1 B5,X1 . DONE@#@]@@ SPACE 1@B@]@@YT )@@G@@ SA2 B4 SETUP *B* @A@]@@ IX3 X2+X7 YU )@@G@@ (J-1) @C@]@@ BX4 X3 SAVE FOR A FEW USEC@A@]@@YV )@@G@@ AX3 3 (J-1)/8@E@]@@ SA2 B3+X3 FYW )@@G@@ETCH APPROPRIATE WORD OF *B* @D@]@@ BX4 -X0*X4 CHARACTYX )@@G@@ER POSITION (0-7) @C@]@@ SB2 X4 HOLD POSITION IN B2YY )@@G@@@C@]@@ SB3 B2+B2 ORIENT *B* PROPERLY@ @]@@ SBYZ )@@G@@4 B3+B3 .@ @]@@ SB3 B3+B4 .@A@]@@ LXZA )@@G@@2 B3,X2 . DONE@#@]@@ SPACE 1@C@]@@ SB3 7ZB )@@G@@ USEFUL CONSTANT @C@]@@ MX0 6 ONE CHAZC )@@G@@RACTER MASK @#@]@@ SPACE 1@E@]@@MOVE1 BX3 X0*X2 EZD )@@G@@XTRACT CHARACTER FROM *B* @D@]@@ BX1 -X0*X1 CLEAR TZE )@@G@@HE POSITION IN *A*@F@]@@ BX1 X1+X3 MERGE THE NEW CHARAZF )@@G@@CTER INTO *A* @D@]@@ IX5 X5+X7 DECREMENT MOVE COUNZG )@@G@@T @B@]@@ ZR X5,MOVE4 UNTIL ZERO @F@]@@ LXZH )@@G@@1 6 SHIFT *A* ONE CHARACTER POSITION @F@]@@ LXZI )@@G@@2 6 SHIFT *B* ONE CHARACTER POSITION @G@]@@ SBZJ )@@G@@2 B2+1 CHECK FOR EXHAUSTION OF CURRENT WORD OF *B*@D@]@@ ZK )@@G@@ LE B2,B3,MOVE2 JUMP IF NOT EXHAUSTED @D@]@@ SB2 0ZL )@@G@@ RESET CHARACTER COUNTER @E@]@@ SA2 A2+1 ZM )@@G@@ AND FETCH NEXT WORD OF *B* @G@]@@MOVE2 NE B1,B3,MOVE3 JUMP IFZN )@@G@@ CURRENT WORD OF *A* IS NOT FULL @F@]@@ SB1 B0-B7 CZO )@@G@@URRENT WORD IS FULL: RESET ASSEMBLY@F@]@@ LX1 12 CZP )@@G@@OMPENSATE FOR 8 CHARS OUT OF 10 @D@]@@ BX6 X1 CZQ )@@G@@OPY TO SUITABLE REGISTER@E@]@@ SA6 A1 AND STORE AZR )@@G@@WAY IN MEMORY @G@]@@ SA1 A1+1 FETCH NEXT WORD OF ZS )@@G@@*A* FOR MODIFICATION @E@]@@MOVE3 SB1 B1+1 UPDATE CHARACZT )@@G@@TER COUNT FOR *A* @F@]@@ EQ MOVE1 AND GO MOVE THE NZU )@@G@@EXT CHARACTER @G@]@@MOVE4 SB2 10 FINAL SHIFT OF CURRZV )@@G@@ENT WORD OF *A* ... @C@]@@ SB1 B2-B1 . = 6 * (10 -ZW )@@G@@ B1) @ @]@@ SB2 B1+B1 .@ @]@@ SB3 B2+B2 ZX )@@G@@ .@ @]@@ SB1 B2+B3 .@A@]@@ LX6 B1,X1 ZY )@@G@@ . DONE@D@]@@ SA6 A1 STORE AWAY IN MEMORY ZZ )@@G@@@A@]@@ EQ MOVE EXIT @#@]@@ END @^@]@@AA )@@G@@ IDENT COPY @A@]@@ ENTRY COPY4,COPY8,COPY16 @B@]@@AB )@@G@@ TITLE BLOCK CM COPY ROUTINE @C@]@@ TITLE FORTRANAC )@@G@@ EQUIVALENT DECK LISTING@#@]@@ LIST F@B@]@@FORTRAN IFC NAD )@@G@@E,*FORTRAN*FORTRAN* @@@]@@@B@]@@ SUBROUTINE COPY4(FROM,TO,NWORDAE )@@G@@S) @A@]@@ INTEGER*4 FROM(1),TO(1),NWORDS@ @]@@ REAL*8 RFROMAF )@@G@@(1),RTO(1) @A@]@@ COMPLEX*16 CFROM(1),CTO(1) @[@]@@C @G@]@@AG )@@G@@C THIS ROUTINE COPIES A BLOCK OF ^NWORDS^ WORDS (OF THE APPROPRIATE AH )@@G@@@G@]@@C TYPE) FROM THE ARRAY ^FROM^ TO THE ARRAY ^TO^. IT DETERMINES FRAI )@@G@@OM @G@]@@C WHICH END OF THE BLOCK TO TRANSFER FIRST, TO PREVENT OVER-AJ )@@G@@STORES WHICH@ @]@@C MIGHT OVER-WRITE THE DATA. @[@]@@C @ @]@@ AK )@@G@@IF (NWORDS.EQ.0) RETURN @C@]@@ IF (LOCF(FROM(1)).LT.LOCF(TO(1))) GOAL )@@G@@ TO 20@F@]@@C... LOCF() RETURNS AS ITS VALUE THE ADDRESS OF ITS ARGUMENAM )@@G@@T @^@]@@ DO 10 I=1,NWORDS @^@]@@ TO(I)=FROM(I) @#@]@@AN )@@G@@ 10 CONTINUE @]@]@@ RETURN@[@]@@C @#@]@@ 20 I=NWORDS AO )@@G@@@^@]@@ 30 TO(I)=FROM(I) @]@]@@ I=I-1 @ @]@@ IF (I.NE.0) AP )@@G@@GO TO 30 @]@]@@ RETURN@[@]@@C @[@]@@C @[@]@@C @A@]@@AQ )@@G@@ ENTRY COPY8(RFROM,RTO,NWORDS) @[@]@@C @ @]@@ IF (NWORDS.EAR )@@G@@Q.0) RETURN @D@]@@ IF (LOCF(RFROM(1)).LT.LOCF(RTO(1))) GO TO 120 AS )@@G@@@^@]@@ DO 110 I=1,NWORDS @^@]@@ RTO(I)=RFROM(I) @#@]@@ 110 AT )@@G@@CONTINUE @]@]@@ RETURN@[@]@@C @#@]@@ 120 I=NWORDS @^@]@@AU )@@G@@ 130 RTO(I)=RFROM(I) @]@]@@ I=I-1 @ @]@@ IF (I.NE.0) GO TO AV )@@G@@130 @]@]@@ RETURN@[@]@@C @[@]@@C @[@]@@C @A@]@@ AW )@@G@@ENTRY COPY16(CFROM,CTO,NWORDS)@[@]@@C @ @]@@ IF (NWORDS.EQ.0) RAX )@@G@@ETURN @D@]@@ IF (LOCF(CFROM(1)).LT.LOCF(CTO(1))) GO TO 220 @^@]@@AY )@@G@@ DO 210 I=1,NWORDS @^@]@@ CTO(I)=CFROM(I) @#@]@@ 210 CONTINAZ )@@G@@UE @]@]@@ RETURN@[@]@@C @#@]@@ 220 I=NWORDS @^@]@@ 230 BA )@@G@@CTO(I)=CFROM(I) @]@]@@ I=I-1 @ @]@@ IF (I.NE.0) GO TO 230 BB )@@G@@@]@]@@ RETURN@]@]@@* END @@@]@@@#@]@@FORTRAN ENDIF @^@]@@BC )@@G@@ LIST -F @D@]@@ TITLE ASSEMBLE ARGUMENTS INTO BBD )@@G@@ REGISTERS @D@]@@COMPILER MICRO 1,,*FTN* DELETE IF COMPILER IS RUNBE )@@G@@@#@]@@SYSTEM SPACE 4@G@]@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPEBF )@@G@@RATING SYSTEM IS NOT SCOPE @E@]@@SYSTEM MICRO 1,,*CALIDOSCOPE* BG )@@G@@ DITTO FOR CALIDOSCOPE @#@]@@RUN SPACE 4@A@]@@RUN IFC EBH )@@G@@Q,*^COMPILER^*RUN*@^@]@@ASMARG OPSYN NIL @#@]@@RUN ENDIF BI )@@G@@@#@]@@FTN SPACE 4@A@]@@FTN IFC EQ,*^COMPILER^*FTN*@#@]@@BJ )@@G@@ASMARG MACRO N@^@]@@ LOCAL CNT @^@]@@ SB1 XBK )@@G@@1 @^@]@@ASMARG IFGT N,1 @#@]@@CNT SET 1@#@]@@ BL )@@G@@ SB7 1@^@]@@ASMARG DUP N-1 @^@]@@CNT SET CNT+1 BM )@@G@@@^@]@@ SA1 A1+B7 @^@]@@ SB.CNT X1 @#@]@@ASMARGBN )@@G@@ ENDD @#@]@@ASMARG ENDIF @#@]@@ASMARG ENDM @#@]@@FTN BO )@@G@@ ENDIF @A@]@@ TITLE COMPASS PROGRAM @B@]@@COPY BSBP )@@G@@S 1 ENTRY/EXIT @#@]@@ SPACE 1@#@]@@ ASBQ )@@G@@MARG 3@#@]@@ SPACE 1@^@]@@COPY4 EQU COPY @^@]@@COPY8 BR )@@G@@ EQU COPY @#@]@@ SPACE 1@C@]@@ SA1 B3 BS )@@G@@ FETCH *NWORDS* @B@]@@ SB3 X1 INTO B3 BT )@@G@@@E@]@@ ZR B3,COPY EXIT IF NULL COPY REQUESTED @#@]@@BU )@@G@@ SPACE 1@B@]@@COPYCON SB7 1 SET CONSTANT @#@]@@BV )@@G@@ SPACE 1@E@]@@ GT B1,B2,COPY1 JUMP IF ADDR(FROM) BW )@@G@@> ADDR(TO) @C@]@@ SB4 B3-B7 INITIALIZATION @C@]@@BX )@@G@@ SA1 B1+B4 MOVE THE FIRST WORD@ @]@@ BX6 XBY )@@G@@1 .@A@]@@ SA6 B2+B4 . DONE@D@]@@ SBBZ )@@G@@6 -1 SET REGISTER TO DECREMENT@B@]@@ EQ COPY2 CA )@@G@@ GO DO IT @#@]@@ SPACE 1@C@]@@COPY1 SA1 B1 CB )@@G@@ MOVE THE FIRST WORD@ @]@@ BX6 X1 .@A@]@@ CC )@@G@@ SA6 B2 . DONE@D@]@@ SB6 B7 SET REGCD )@@G@@ISTER TO INCREMENT@#@]@@ SPACE 1@D@]@@COPY2 SB3 B3-1 CE )@@G@@ CHECK FOR ONE-WORD COPY @C@]@@ ZR B3,COPY AND ECF )@@G@@XIT IF SO @#@]@@ SPACE 1@D@]@@ SB4 4 ACG )@@G@@NOTHER USEFUL CONSTANT @G@]@@ LT B3,B4,COPY.CRW JUMP IF FCH )@@G@@EWER THAN 4 WORDS TO COPY @#@]@@ SPACE 1@D@]@@COPY3 SACI )@@G@@1 A1+B6 MOVE WORDS IN BLOCKS OF 4@D@]@@ BX6 X1 CJ )@@G@@ . AS MUCH AS POSSIBLE @ @]@@ SA2 A1+B6 .@ @]@@CK )@@G@@ SA6 A6+B6 .@B@]@@ SA3 A2+B6 . TIMICL )@@G@@NG: @D@]@@ BX7 X2 . 3.4 USEC PER WORD @E@]@@CM )@@G@@ SA7 A6+B6 . (ON THE CDC 6400) @ @]@@ CN )@@G@@ BX7 X3 .@ @]@@ SA1 A3+B6 .@ @]@@ CO )@@G@@ BX6 X1 .@ @]@@ SA7 A7+B6 .@ @]@@ CP )@@G@@ SA6 A7+B6 .@ @]@@ SB3 B3-4 .@E@]@@ CQ )@@G@@ GE B3,B4,COPY3 . LOOP UNTIL *NWORDS* @ 3 @#@]@@ SPCR )@@G@@ACE 1@E@]@@ ZR B3,COPY EXIT IF MOD(*NWORDS*,4) = 0 CS )@@G@@@#@]@@ SPACE 1@E@]@@COPY.CRW SA1 A1+B6 COPY REMAININCT )@@G@@G WORDS (@ 3) @ @]@@ BX6 X1 .@ @]@@ SACU )@@G@@6 A6+B6 .@C@]@@ SB3 B3-B7 DECREMENT *NWORDS* CV )@@G@@@B@]@@ NZ B3,COPY.CRW UNTIL ZERO @#@]@@ SPACE 1CW )@@G@@@A@]@@ EQ COPY EXIT @#@]@@ SPACE 5@D@]@@CX )@@G@@COPY16 BSS 1 ENTRY TO COPY COMPLEX @#@]@@ SPCY )@@G@@ACE 1@#@]@@ ASMARG 3@#@]@@ SPACE 1@C@]@@ SACZ )@@G@@1 B3 FETCH *NWORDS* @B@]@@ SB3 X1 DA )@@G@@ INTO B3 @E@]@@ ZR B3,COPY16 EXIT IF NULL COPY REQUESTDB )@@G@@ED @F@]@@ SB3 B3+B3 OTHERWISE, DOUBLE THE WORD COUNDC )@@G@@T @#@]@@ SPACE 1@C@]@@ SA1 COPY16 MOVE REDD )@@G@@TURN ADDRESS@ @]@@ BX6 X1 .@A@]@@ SA6 CDE )@@G@@OPY . DONE@#@]@@ SPACE 1@B@]@@ EQ COPYCONDF )@@G@@ CONTINUE @#@]@@ SPACE 1@#@]@@ END @^@]@@DG )@@G@@ IDENT ZERO @A@]@@ ENTRY ZERO4,ZERO8,ZERO16 @C@]@@DH )@@G@@ TITLE SUPER-FAST MEMORY CLEAR ROUTINE@C@]@@FORTRAN TITLE EDI )@@G@@QUIVALENT FORTRAN DECK LISTING@#@]@@ LIST F@B@]@@FORTRAN IFDJ )@@G@@C NE,*FORTRAN*FORTRAN* @@@]@@@A@]@@ SUBROUTINE ZERO4(ARRAY,LDK )@@G@@ENGTH)@A@]@@ INTEGER*4 ARRAY(1),LENGTH @^@]@@ REAL*8 RARRADL )@@G@@Y(1) @ @]@@ COMPLEX*16 CARRAY(1) @[@]@@C @G@]@@C THIS RDM )@@G@@OUTINE ZEROES THE MEMORY LOCATIONS INDICATED BY ARRAY(1) @^@]@@C THRODN )@@G@@UGH ARRAY(LENGTH).@[@]@@C @ @]@@ IF (LENGTH.EQ.0) RETURN @^@]@@DO )@@G@@ DO 10 I=1,LENGTH @#@]@@ ARRAY(I)=0.0@#@]@@ 10 CONTINUE DP )@@G@@@]@]@@ RETURN@[@]@@C @[@]@@C @[@]@@C @A@]@@ ENTRY DQ )@@G@@ZERO8(RARRAY,LENGTH) @[@]@@C @ @]@@ IF (LENGTH.EQ.0) RETURN DR )@@G@@@^@]@@ DO 110 I=1,LENGTH @^@]@@ RARRAY(I)=0.0D0 @#@]@@ 110 DS )@@G@@CONTINUE @]@]@@ RETURN@[@]@@C @[@]@@C @[@]@@C @A@]@@DT )@@G@@ ENTRY ZERO16(CARRAY,LENGTH) @[@]@@C @ @]@@ IF (LENGTH.EDU )@@G@@Q.0) RETURN @^@]@@ DO 210 I=1,LENGTH @ @]@@ CARRAY(I)=(0.0D0,0DV )@@G@@.0D0) @#@]@@ 210 CONTINUE @]@]@@ RETURN@]@]@@* END @@@]@@DW )@@G@@@#@]@@FORTRAN ENDIF @^@]@@ LIST -F @D@]@@ TIDX )@@G@@TLE ASSEMBLE ARGUMENTS INTO B REGISTERS @D@]@@COMPILER MICRO 1,,*FTNDY )@@G@@* DELETE IF COMPILER IS RUN@#@]@@SYSTEM SPACE 4@G@]@@SYSTEM MIDZ )@@G@@CRO 1,,*SCOPE* DELETE IF OPERATING SYSTEM IS NOT SCOPE @E@]@@SYSTEMEA )@@G@@ MICRO 1,,*CALIDOSCOPE* DITTO FOR CALIDOSCOPE @#@]@@RUN SPEB )@@G@@ACE 4@A@]@@RUN IFC EQ,*^COMPILER^*RUN*@^@]@@ASMARG OPSYN NEC )@@G@@IL @#@]@@RUN ENDIF @#@]@@FTN SPACE 4@A@]@@FTN IFED )@@G@@C EQ,*^COMPILER^*FTN*@#@]@@ASMARG MACRO N@^@]@@ LOCAL CEE )@@G@@NT @^@]@@ SB1 X1 @^@]@@ASMARG IFGT N,1 @#@]@@EF )@@G@@CNT SET 1@#@]@@ SB7 1@^@]@@ASMARG DUP N-1 EG )@@G@@@^@]@@CNT SET CNT+1 @^@]@@ SA1 A1+B7 @^@]@@ EH )@@G@@ SB.CNT X1 @#@]@@ASMARG ENDD @#@]@@ASMARG ENDIF @#@]@@EI )@@G@@ASMARG ENDM @#@]@@FTN ENDIF @A@]@@ TITLE THE REAEJ )@@G@@L THING @B@]@@ZERO BSS 1 ENTRY/EXIT @#@]@@ EK )@@G@@ SPACE 1@#@]@@ ASMARG 2@#@]@@ SPACE 1@^@]@@ZERO4 EL )@@G@@ EQU ZERO @^@]@@ZERO8 EQU ZERO @#@]@@ SPACE 1EM )@@G@@@C@]@@ SA2 B2 FETCH *LENGTH* @B@]@@ ZREN )@@G@@ X2,ZERO EXIT IF ZERO @F@]@@ SB2 X2 OTHERWIEO )@@G@@SE, LOAD *LENGTH* INTO B2 @#@]@@ SPACE 1@C@]@@ZEROTFW SXEP )@@G@@6 0 ZERO THE FIRST WORD@C@]@@ SA6 B1+0 EQ )@@G@@ OF THE BLOCK @#@]@@ SPACE 1@G@]@@ SB2 B2-1 ER )@@G@@ CHECK WHETHER ONLY ONE-WORD ZERO REQUESTED @C@]@@ ZR BES )@@G@@2,ZERO AND EXIT IF SO @#@]@@ SPACE 1@C@]@@ SBET )@@G@@6 7 USEFUL CONSTANT @A@]@@ SB7 1 DEU )@@G@@ITTO @#@]@@ SPACE 1@G@]@@ LT B2,B6,ZERO2 JUMP IFEV )@@G@@ FEWER THAN 7 WORDS IN THE BLOCK @#@]@@ SPACE 1@F@]@@ZERO1 EW )@@G@@ SA6 A6+B7 ZERO-OUT THE BLOCK IN 7-WORD CHUNKS @ @]@@ EX )@@G@@ SA6 A6+B7 .@ @]@@ SA6 A6+B7 .@ @]@@ EY )@@G@@ SA6 A6+B7 .@ @]@@ SA6 A6+B7 .@ @]@@ EZ )@@G@@ SA6 A6+B7 .@A@]@@ SA6 A6+B7 . DONE@#@]@@FA )@@G@@ SPACE 1@C@]@@ SB2 B2-B6 DECREMENT *LENGTH* FB )@@G@@@D@]@@ GE B2,B6,ZERO1 LOOP UNTIL *LENGTH* < 7 @#@]@@ FC )@@G@@ SPACE 1@E@]@@ ZR B2,ZERO EXIT IF MOD(*LENGTH*,7) =FD )@@G@@ 0 @#@]@@ SPACE 1@E@]@@ZERO2 SA6 A6+B7 ZERO-OUFE )@@G@@T THE REMAINING WORDS @ @]@@ SB2 B2-B7 .@D@]@@ FF )@@G@@ NZ B2,ZERO2 . LOOP UNTIL FINISHED @#@]@@ SPACE 1FG )@@G@@@A@]@@ EQ ZERO EXIT @#@]@@ SPACE 5@F@]@@FH )@@G@@ZERO16 BSS 1 ENTRY TO CLEAR COMPLEX-VALUED ARRAY @#@]@@FI )@@G@@ SPACE 1@#@]@@ ASMARG 2@#@]@@ SPACE 1@C@]@@FJ )@@G@@ SA2 B2 FETCH *LENGTH* @C@]@@ ZR XFK )@@G@@2,ZERO16 AND EXIT IF ZERO @E@]@@ LX2 1 DOUBLE FL )@@G@@THE VALUE OF *LENGTH* @C@]@@ SB2 X2 AND SAVE INFM )@@G@@ B2 @#@]@@ SPACE 1@D@]@@ SA1 ZERO16 MOVE THFN )@@G@@E RETURN ADDRESS @E@]@@ BX6 X1 TO THE NORMAL EXIFO )@@G@@T LOCATION @B@]@@ SA6 ZERO . DONE @D@]@@ FP )@@G@@ EQ ZEROTFW GO ZERO THE FIRST WORD @#@]@@ END FQ )@@G@@@^@]@@ SUBROUTINE GETCJE @G@]@@ COMMON /CJE/ JOBNAM,USRID1,USRFR )@@G@@ID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,@G@]@@ 1IMEM,MAXLIN,ILINES,MAXPCFS )@@G@@H,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPU,IEFTIM, @A@]@@ 2ISPTIM,MAXDLR,ICOSFT )@@G@@T,XCJEX(11) @ @]@@ MAXTIM=MAXMEM=100000000 @ @]@@ ITIME=ICOST=FU )@@G@@ILINES=0 @]@]@@ RETURN@]@]@@ END @#@]@@ OVERLAY(1,0)FV )@@G@@@^@]@@ PROGRAM READIN @[@]@@C @G@]@@C THIS ROUTINE DRIVEFW )@@G@@S THE INPUT PROCESSING OF SPICE. ELEMENT CARDS @C@]@@C AND DEVICE MODELFX )@@G@@S ARE HANDLED BY THIS ROUTINE.@[@]@@C @G@]@@ COMMON /TABINF/ IEFY )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSEFZ )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNGA )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3GB )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@GC )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, GD )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @F@]@@ COMMON /MISCEL/ APROG(3)GE )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE GF )@@G@@@E@]@@ COMMON /LINE/ ACHAR,AFIELD(15),OLDLIN(15),KNTRC,KNTLIM@G@]@@GG )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, GH )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMONGI )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1GJ )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2GK )@@G@@ ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,GL )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLGM )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLGN )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSTOL,VNGO )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@]@@ COMMON /DC/ TCSTAR,TCSTOGP )@@G@@P,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT GQ )@@G@@@G@]@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREGR )@@G@@Q, @F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYGS )@@G@@P, @F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(GT )@@G@@3), @#@]@@ 3 IPIMAT(4)@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTAGU )@@G@@RT,DELMAX,TDMAX,FORFRE,JTRFLG @G@]@@ COMMON /OUTINF/ STRING(15),YVAGV )@@G@@R(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUGW )@@G@@T,KNTR,NUMDGT @G@]@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,IGX )@@G@@TAPE,MAXECS,IECS,MAXMEM,@G@]@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,GY )@@G@@MAXTIM,ITIME,MAXPPU,IPPU, @C@]@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,GZ )@@G@@XCJEX(11) @A@]@@ COMMON /DEBUG/ IDEBUG(20) @ @]@@ COMMONHA )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALHB )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C HC )@@G@@@ @]@@C CONTROL CARD IDENTIFIERS @[@]@@C @C@]@@ DIMENSION AIHD )@@G@@DE(20),NNODS(20),NTNODS(20) @^@]@@ DIMENSION NUMIC(4)@E@]@@ HE )@@G@@DIMENSION AIDM(7),IPOLAR(7),MODID(7),IPAR(5),AMPAR(90)@ @]@@ DIMENSHF )@@G@@ION TITINP(4) @A@]@@ DIMENSION AIDC(31),JAIDC(31) @G@]@@ HG )@@G@@DATA TITINP / 8HINPUT LI, 8HSTING , 8H , 8H / @^@]@@HH )@@G@@ DATA NAIDC / 31 / @#@]@@ DATA AIDC / @F@]@@ 1 8HAC HI )@@G@@ ,8HDC ,8HDISTORT ,8HDISTO ,8HEND , @F@]@@ 2 8HENDS HJ )@@G@@ ,8HFOURIER ,8HFOUR ,8HMODEL ,8HMOD , @F@]@@ 3 8HNOISE HK )@@G@@ ,8HOP ,8HOPTIONS ,8HOPTION ,8HOPT , @F@]@@ 4 8HPLOT HL )@@G@@ ,8HPL ,8HPRINT ,8HPR ,8HPZ , @F@]@@ 5 8HSUBCKT HM )@@G@@ ,8HSENSITI ,8HSENS ,8HTRANSIE ,8HTRAN , @F@]@@ 6 8HTR HN )@@G@@ ,8HTF ,8HTEMPERA ,8HTEMP ,8HWIDTH , @^@]@@ 7 8H:DEBUG:HO )@@G@@ / @#@]@@ DATA JAIDC /@F@]@@ 1 1, 2, HP )@@G@@ 3, 3, 4, @F@]@@ 2 5, 6, HQ )@@G@@ 6, 7, 7, @F@]@@ 3 8, 9, HR )@@G@@ 10, 10, 10, @F@]@@ 4 11, 11, HS )@@G@@ 12, 12, 13, @F@]@@ 5 14, 15, HT )@@G@@ 15, 16, 16, @F@]@@ 6 16, 17, HU )@@G@@ 18, 18, 19, @^@]@@ 7 20/ @[@]@@C HV )@@G@@@D@]@@C ELEMENT CARD IDENTIFIERS, KEYWORDS, AND INFORMATION@[@]@@C HW )@@G@@@G@]@@ DATA AIDE / 1HR,1HC,1HL,1HK,1HG,1HE,1HF,1HH,1HV,1HI,1HD,1HQ,HX )@@G@@1HJ, @B@]@@ 1 1HM,1HS,1HY,1HT,0.0,1HX,0.0 / @F@]@@ DATA AHY )@@G@@LSAC,ALSPU,ALSEX,ALSSI /2HAC,5HPULSE,3HEXP,3HSIN/ @D@]@@ DATA AHZ )@@G@@LSOFF,ALSDC,ALSPW / 3HOFF,2HDC,3HPWL / @G@]@@ DATA ALSZ0,ALSZO,AIA )@@G@@LSNL,ALSF,ALSTD / 2HZ0,2HZO,2HNL,1HF,2HTD / @D@]@@ DATA ALSL,ALIB )@@G@@SW,ALSAS,ALSAD / 1HL,1HW,2HAS,2HAD /@ @]@@ DATA ALSSF / 4HSFFM / IC )@@G@@@D@]@@ DATA APOLY, AIC, AREA / 4HPOLY, 2HIC, 4HAREA / @ @]@@ ID )@@G@@DATA ALSTC / 2HTC / @A@]@@ DATA NUMIC / 1, 2, 2, 3 / @A@]@@IE )@@G@@ DATA ABLNK, APER / 1H , 1H. / @E@]@@ DATA NNODS / 2,2,2,0,2,2IF )@@G@@,2,2,2,2,2,3,3,4,4,4,4,0,0,0 /@F@]@@ DATA NTNODS / 2,2,2,0,2,2,2,2,IG )@@G@@2,2,3,6,5,6,4,4,4,0,0,0 / @[@]@@C @^@]@@C MODEL CARD KEYWORDS IH )@@G@@@[@]@@C @E@]@@ DATA AIDM /1HD,3HNPN,3HPNP,3HNJF,3HPJF,4HNMOS,4HII )@@G@@PMOS/ @A@]@@ DATA IPOLAR /0,1,-1,1,-1,1,-1/@A@]@@ DATA MODID /IJ )@@G@@1,2,2,3,3,4,4/ @A@]@@ DATA IPAR /0, 14, 43, 55, 85/ @#@]@@ IK )@@G@@DATA AMPAR /@G@]@@ 1 6HIS ,6HRS ,6HN ,6HTT ,6HCJO ,IL )@@G@@6HPB ,6HM ,@G@]@@ 2 6HEG ,6HPT ,6HKF ,6HAF ,6HFIM )@@G@@C ,6HBV ,6HIBV ,@G@]@@ 1 6HBF ,6HBR ,6HIS ,6HRB IN )@@G@@ ,6HRC ,6HRE ,6HVA ,@G@]@@ 2 6HVB ,6HIK ,6HC2 ,IO )@@G@@6HNE ,6HIKR ,6HC4 ,6HNC ,@G@]@@ 3 6HTF ,6HTR ,6HCIP )@@G@@CS ,6HCJE ,6HPE ,6HME ,6HCJC ,@G@]@@ 4 6HPC ,6HMC IQ )@@G@@ ,6HEG ,6HPT ,6HKF ,6HAF ,6HFC ,@#@]@@ 5 6HDELAY ,IR )@@G@@@G@]@@ 1 6HVTO ,6HBETA ,6HLAMBDA,6HRD ,6HRS ,6HCGS ,6HCIS )@@G@@GD ,@D@]@@ 2 6HPB ,6HIS ,6HKF ,6HAF ,6HFC ,@G@]@@IT )@@G@@ 1 6HVTO ,6HKP ,6HGAMMA ,6HPHI ,6HLAMBDA,6HRD ,6HRS ,IU )@@G@@@G@]@@ 2 6HCGD ,6HCGS ,6HCGB ,6HCBD ,6HCBS ,6HTOX ,6HPIV )@@G@@B ,@G@]@@ 3 6HJS ,6HNSUB ,6HNSS ,6HNFS ,6HXJ ,6HLD IW )@@G@@ ,6HNGATE ,@G@]@@ 4 6HTPS ,6HUO ,6HUCRIT ,6HUEXP ,6HUTRA ,IX )@@G@@6HKF ,6HAF ,@ @]@@ 5 6HFC ,6HLEVEL ,@#@]@@ 1 5*IY )@@G@@0.0 / @[@]@@C @^@]@@C INITIALIZE VARIABLES @[@]@@C @^@]@@ IZ )@@G@@CALL SECOND(T1) @ @]@@ CALL ZERO4(IDEBUG,20) @#@]@@ CALL GJA )@@G@@ETLIN @A@]@@ IF (KEOF.NE.0) GO TO 6000 @A@]@@ CALL COPY8(AJB )@@G@@FIELD,ATITLE,15) @ @]@@ CALL GETMEM(IELMNT,0) @ @]@@ CALL GJC )@@G@@ETMEM(ITEMPS,1) @ @]@@ VALUE(ITEMPS+1)=27.0 @#@]@@ ITEMNOJD )@@G@@=1 @#@]@@ NOPAGE=0 @A@]@@ CALL TITLE(-1,72,1,TITINP) JE )@@G@@@#@]@@ DO 10 I=1,15@^@]@@ AFIELD(I)=ABLNK @#@]@@ 10 CONTINJF )@@G@@UE @A@]@@ CALL COPY8(AFIELD,OLDLIN,15) @ @]@@ CALL GETMEM(JG )@@G@@ISBCKT,0) @#@]@@ NSBCKT=0 @ @]@@ CALL GETMEM(IUNSAT,0) JH )@@G@@@#@]@@ NUNSAT=0 @#@]@@ IWIDTH=80 @#@]@@ LWIDTH=132 JI )@@G@@@#@]@@ IPRNTA=0 @#@]@@ IPRNTL=0 @#@]@@ IPRNTM=1 JJ )@@G@@@#@]@@ IPRNTN=0 @#@]@@ IPRNTO=0 @#@]@@ GMIN=1.0E-12JK )@@G@@@#@]@@ RELTOL=0.001@^@]@@ ABSTOL=1.0E-12 @#@]@@ VNTOL=JL )@@G@@1.0E-6@#@]@@ TRTOL=7.0 @^@]@@ CHGTOL=1.0E-14 @#@]@@ JM )@@G@@NUMDGT=4 @#@]@@ NUMTEM=1 @#@]@@ ITL1=100 @#@]@@ JN )@@G@@ITL2=20 @]@]@@ ITL3=4@#@]@@ ITL4=10 @#@]@@ ITL5=5JO )@@G@@000 @#@]@@ LIMTIM=2 @#@]@@ LIMPTS=201 @#@]@@ LVLCODJP )@@G@@=2 @#@]@@ LVLTIM=2 @#@]@@ METHOD=1 @#@]@@ MAXORDJQ )@@G@@=2 @#@]@@ NOSOLV=0 @#@]@@ ICVFLG=0 @#@]@@ IDIST=JR )@@G@@0 @#@]@@ IDPRT=0 @#@]@@ INOISE=0 @#@]@@ JACFLGJS )@@G@@=0 @#@]@@ JPZFLG=0 @#@]@@ JTRFLG=0 @ @]@@ CALL GJT )@@G@@ETMEM(IFOUR,0) @#@]@@ NFOUR=0 @#@]@@ KINEL=0 @#@]@@JU )@@G@@ KOVAR=0 @#@]@@ KSSOP=0 @#@]@@ NOSPRT=0 @#@]@@JV )@@G@@ NSENS=0 @ @]@@ CALL GETMEM(ISENS,0) @#@]@@ NUMNODJW )@@G@@=0 @#@]@@ NCNODS=0 @#@]@@ NUNODS=0 @ @]@@ CALL ZJX )@@G@@ERO4(LOCATE,50) @ @]@@ CALL ZERO4(JELCNT,50) @#@]@@ INSIZEJY )@@G@@=50 @A@]@@ CALL GETMEM(IFIELD,INSIZE) @A@]@@ CALL GETMEM(JZ )@@G@@ICODE,INSIZE) @A@]@@ CALL GETMEM(IDELIM,INSIZE) @A@]@@ KA )@@G@@CALL GETMEM(ICOLUM,INSIZE) @#@]@@ GO TO 50 @[@]@@C @#@]@@KB )@@G@@C ERROR ENTRY @[@]@@C @]@]@@ 40 NOGO=1@[@]@@C @B@]@@C REAKC )@@G@@D AND DECODE NEXT CARD IN INPUT DECK@[@]@@C @#@]@@ 50 IGOOF=0 KD )@@G@@@#@]@@ CALL CARD @A@]@@ IF (KEOF.NE.0) GO TO 5000 @ @]@@KE )@@G@@ IF (IGOOF.NE.0) GO TO 40@B@]@@ IF (NODPLC(ICODE+1).EQ.0) GO TKF )@@G@@O 95 @ @]@@ ANAM=VALUE(IFIELD+1) @A@]@@ CALL MOVE(ANAM,2,AKG )@@G@@BLNK,1,7) @A@]@@ IF (ANAM.NE.APER) GO TO 70 @C@]@@ CALL MKH )@@G@@OVE(ANAM,1,VALUE(IFIELD+1),2,7) @C@]@@ CALL KEYSRC(AIDC,JAIDC,NKI )@@G@@AIDC,ANAM,ID) @ @]@@ IF (ID.LE.0) GO TO 90 @ @]@@ IF (IDKJ )@@G@@.EQ.4) GO TO 5000 @ @]@@ IF (ID.EQ.5) GO TO 800 @ @]@@ IF (IDKK )@@G@@.EQ.7) GO TO 500 @ @]@@ IF (ID.EQ.14) GO TO 700 @A@]@@ IF (NSKL )@@G@@BCKT.GE.1) GO TO 85 @^@]@@ CALL RUNCON(ID) @ @]@@ IF (IGKM )@@G@@OOF.NE.0) GO TO 40@#@]@@ GO TO 50 @]@]@@ 70 ID=0 @#@]@@ 80 KN )@@G@@ID=ID+1 @ @]@@ IF (ID.GT.20) GO TO 90 @B@]@@ IF (ANAM.EQ.KO )@@G@@AIDE(ID)) GO TO 100 @#@]@@ GO TO 80 @#@]@@ 85 WRITE (6,86)KP )@@G@@@G@]@@ 86 FORMAT(^0WARNING: ABOVE LINE NOT ALLOWED WITHIN SUBCIRCUIT KQ )@@G@@-- ^, @^@]@@ 1 ^IGNORED^/) @#@]@@ GO TO 50 @A@]@@ 90 KR )@@G@@WRITE (6,91) VALUE(IFIELD+1) @D@]@@ 91 FORMAT(^0*ERROR*: UNKNOWN DATKS )@@G@@A CARD: ^,A8/) @#@]@@ GO TO 40 @#@]@@ 95 WRITE (6,96)@D@]@@KT )@@G@@ 96 FORMAT(^0*ERROR*: UNRECOGNIZABLE DATA CARD^/) @#@]@@ GO TO KU )@@G@@40 @[@]@@C @ @]@@C ELEMENT AND DEVICE CARDS @[@]@@C @B@]@@KV )@@G@@ 100 CALL FIND(VALUE(IFIELD+1),ID,LOC,1) @^@]@@ LOCV=NODPLC(LOC+1)KW )@@G@@@ @]@@ IF (ID.EQ.4) GO TO 140 @ @]@@ IF (ID.EQ.19) GO TO 900 KX )@@G@@@^@]@@ ISTOP=NNODS(ID)+1 @^@]@@ DO 110 I=2,ISTOP @B@]@@ KY )@@G@@IF (NODPLC(ICODE+I).NE.0) GO TO 410 @C@]@@ IF (VALUE(IFIELD+I).LT.0KZ )@@G@@.0) GO TO 400 @A@]@@ 110 NODPLC(LOC+I)=VALUE(IFIELD+I) @G@]@@ LA )@@G@@GO TO (120,130,130,140,150,150,180,180,200,200,300,300,300,300, @B@]@@LB )@@G@@ 1 390,390,350,390,390,390), ID @[@]@@C @]@]@@C RESISTOR LC )@@G@@@[@]@@C @B@]@@ 120 IF (NODPLC(ICODE+4).NE.0) GO TO 420 @C@]@@ LD )@@G@@IF (VALUE(IFIELD+4).EQ.0.0) GO TO 480 @A@]@@ VALUE(LOCV+2)=VALULE )@@G@@E(IFIELD+4) @]@]@@ IFLD=4@#@]@@ 122 IFLD=IFLD+1 @B@]@@ IF (NOLF )@@G@@DPLC(ICODE+IFLD)) 50,122,124 @ @]@@ 124 ANAM=VALUE(IFIELD+IFLD) @A@]@@LG )@@G@@ IF (ANAM.NE.ALSTC) GO TO 460 @#@]@@ IFLD=IFLD+1 @B@]@@ LH )@@G@@IF (NODPLC(ICODE+IFLD)) 50,126,124 @B@]@@ 126 VALUE(LOCV+3)=VALUE(IFIELI )@@G@@LD+IFLD) @#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) LJ )@@G@@50,128,124 @B@]@@ 128 VALUE(LOCV+4)=VALUE(IFIELD+IFLD) @#@]@@ LK )@@G@@GO TO 50 @[@]@@C @^@]@@C CAPACITOR OR INDUCTOR@[@]@@C @B@]@@LL )@@G@@ 130 IF (NODPLC(ICODE+4).NE.0) GO TO 420 @C@]@@ IF (VALUE(IFIELD+4LM )@@G@@).LE.0.0) GO TO 420 @A@]@@ VALUE(LOCV+1)=VALUE(IFIELD+4) @B@]@@LN )@@G@@ IF (NODPLC(ICODE+5).NE.1) GO TO 50 @ @]@@ 134 ANAM=VALUE(IFIELD+LO )@@G@@5) @A@]@@ IF (ANAM.NE.AIC) GO TO 460 @B@]@@ IF (NODPLC(ILP )@@G@@CODE+6).NE.0) GO TO 50 @A@]@@ VALUE(LOCV+2)=VALUE(IFIELD+6) @#@]@@LQ )@@G@@ GO TO 50 @[@]@@C @^@]@@C MUTUAL INDUCTANCE @[@]@@C LR )@@G@@@B@]@@ 140 IF (NODPLC(ICODE+2).NE.1) GO TO 430 @ @]@@ ANAM=VALUE(ILS )@@G@@FIELD+2) @A@]@@ CALL MOVE(ANAM,2,ABLNK,1,7) @A@]@@ IF (ANLT )@@G@@AM.NE.AIDE(3)) GO TO 430@C@]@@ CALL EXTNAM(VALUE(IFIELD+2),NODPLC(LLU )@@G@@OC+2))@B@]@@ IF (NODPLC(ICODE+3).NE.1) GO TO 430 @ @]@@ ANAM=VLV )@@G@@ALUE(IFIELD+3) @A@]@@ CALL MOVE(ANAM,2,ABLNK,1,7) @A@]@@ LW )@@G@@IF (ANAM.NE.AIDE(3)) GO TO 430@C@]@@ CALL EXTNAM(VALUE(IFIELD+3),NOLX )@@G@@DPLC(LOC+3))@B@]@@ IF (NODPLC(ICODE+4).NE.0) GO TO 420 @^@]@@ LY )@@G@@XK=VALUE(IFIELD+4)@ @]@@ IF (XK.LE.0.0) GO TO 420@ @]@@ IF (XKLZ )@@G@@.LE.1.0) GO TO 145@]@]@@ XK=1.0@^@]@@ WRITE (6,141) @F@]@@MA )@@G@@ 141 FORMAT(^0WARNING: COEFFICIENT OF COUPLING RESET TO 1.0^/) @^@]@@MB )@@G@@ 145 VALUE(LOCV+1)=XK @#@]@@ GO TO 50 @[@]@@C @B@]@@C VOLMC )@@G@@TAGE CONTROLLED (NONLINEAR) SOURCES @[@]@@C @]@]@@ 150 NDIM=1@]@]@@MD )@@G@@ IFLD=3@B@]@@ IF (NODPLC(ICODE+4)) 410,156,152 @ @]@@ 152 ME )@@G@@ANAM=VALUE(IFIELD+4) @A@]@@ IF (ANAM.NE.APOLY) GO TO 450 @B@]@@MF )@@G@@ IF (NODPLC(ICODE+5).NE.0) GO TO 420 @ @]@@ NDIM=VALUE(IFIELD+MG )@@G@@5) @ @]@@ IF (NDIM.LE.0) GO TO 420@]@]@@ IFLD=5@^@]@@ 156 MH )@@G@@NODPLC(LOC+4)=NDIM@#@]@@ LTAB=ID+1 @#@]@@ NSNOD=2*NDIM@#@]@@MI )@@G@@ NMAT=4*NDIM @A@]@@ IF (ID.EQ.6) NMAT=4+2*NDIM @B@]@@ MJ )@@G@@CALL GETMEM(NODPLC(LOC+LTAB),NSNOD) @B@]@@ CALL GETMEM(NODPLC(LOC+LMK )@@G@@TAB+1),NMAT)@B@]@@ CALL GETMEM(NODPLC(LOC+LTAB+2),0) @B@]@@ ML )@@G@@CALL GETMEM(NODPLC(LOC+LTAB+3),NDIM)@B@]@@ CALL GETMEM(NODPLC(LOC+LMM )@@G@@TAB+4),NDIM)@B@]@@ CALL GETMEM(NODPLC(LOC+LTAB+5),NDIM)@ @]@@ MN )@@G@@ISPOT=NODPLC(LOC+LTAB+5)@B@]@@ CALL ZERO8(VALUE(ISPOT+1),NDIM) MO )@@G@@@ @]@@ LNOD=NODPLC(LOC+LTAB) @^@]@@ DO 158 I=1,NSNOD @#@]@@MP )@@G@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 410 MQ )@@G@@@C@]@@ IF (VALUE(IFIELD+IFLD).LT.0.0) GO TO 400 @B@]@@ NODPLCMR )@@G@@(LNOD+I)=VALUE(IFIELD+IFLD) @#@]@@ 158 CONTINUE @]@]@@ 160 IKNT=0MS )@@G@@@#@]@@ 162 IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1MT )@@G@@64 @B@]@@ CALL EXTMEM(NODPLC(LOC+LTAB+2),1) @#@]@@ IKNT=IMU )@@G@@KNT+1 @A@]@@ ISPOT=NODPLC(LOC+LTAB+2)+IKNT @B@]@@ VALUE(ISPOT)MV )@@G@@=VALUE(IFIELD+IFLD) @#@]@@ GO TO 162 @ @]@@ 164 IF (IKNT.EQ.MW )@@G@@0) GO TO 420@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 170 @ @]@@MX )@@G@@ ANAM=VALUE(IFIELD+IFLD) @A@]@@ IF (ANAM.NE.AIC) GO TO 460 MY )@@G@@@^@]@@ DO 168 I=1,NDIM @#@]@@ IFLD=IFLD+1 @B@]@@ IF (NOMZ )@@G@@DPLC(ICODE+IFLD)) 170,166,420 @A@]@@ 166 ISPOT=NODPLC(LOC+LTAB+5)+I NA )@@G@@@B@]@@ VALUE(ISPOT)=VALUE(IFIELD+IFLD) @#@]@@ 168 CONTINUE NB )@@G@@@ @]@@ 170 IF (NDIM.NE.1) GO TO 50 @ @]@@ IF (IKNT.NE.1) GO TO 50 NC )@@G@@@B@]@@ CALL EXTMEM(NODPLC(LOC+LTAB+2),1) @ @]@@ ISPOT=NODPLCND )@@G@@(LOC+LTAB+2)@A@]@@ VALUE(ISPOT+2)=VALUE(ISPOT+1) @^@]@@ VALUE(NE )@@G@@ISPOT+1)=0.0@#@]@@ GO TO 50 @[@]@@C @B@]@@C CURRENT CONTROLNF )@@G@@LED (NONLINEAR) SOURCES @[@]@@C @]@]@@ 180 NDIM=1@]@]@@ IFLD=3NG )@@G@@@B@]@@ IF (NODPLC(ICODE+4).NE.1) GO TO 470 @ @]@@ ANAM=VALUE(INH )@@G@@FIELD+4) @A@]@@ IF (ANAM.NE.APOLY) GO TO 182 @]@]@@ IFLD=5NI )@@G@@@B@]@@ IF (NODPLC(ICODE+5).NE.0) GO TO 420 @ @]@@ NDIM=VALUE(INJ )@@G@@FIELD+5) @ @]@@ IF (NDIM.LE.0) GO TO 420@^@]@@ 182 NODPLC(LOC+4NK )@@G@@)=NDIM@#@]@@ LTAB=ID-1 @#@]@@ NMAT=2*NDIM @ @]@@ IF (IDNL )@@G@@.EQ.8) NMAT=4+NDIM@B@]@@ CALL GETMEM(NODPLC(LOC+LTAB),NDIM) @B@]@@NM )@@G@@ CALL GETMEM(NODPLC(LOC+LTAB+1),NMAT)@B@]@@ CALL GETMEM(NODPLCNN )@@G@@(LOC+LTAB+2),0) @B@]@@ CALL GETMEM(NODPLC(LOC+LTAB+3),NDIM)@B@]@@NO )@@G@@ CALL GETMEM(NODPLC(LOC+LTAB+4),NDIM)@B@]@@ CALL GETMEM(NODPLCNP )@@G@@(LOC+LTAB+5),NDIM)@ @]@@ ISPOT=NODPLC(LOC+LTAB+5)@B@]@@ CALL ZNQ )@@G@@ERO8(VALUE(ISPOT+1),NDIM) @^@]@@ DO 184 I=1,NDIM @#@]@@ NR )@@G@@IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 470 @ @]@@NS )@@G@@ ANAM=VALUE(IFIELD+IFLD) @A@]@@ CALL MOVE(ANAM,2,ABLNK,1,7) NT )@@G@@@A@]@@ IF (ANAM.NE.AIDE(9)) GO TO 470@B@]@@ CALL EXTNAM(VALUE(NU )@@G@@IFIELD+IFLD),LOCT)@ @]@@ ISPOT=NODPLC(LOC+LTAB)+I@^@]@@ NODPLCNV )@@G@@(ISPOT)=LOCT@#@]@@ 184 CONTINUE @#@]@@ GO TO 160 @[@]@@C NW )@@G@@@^@]@@C INDEPENDENT SOURCES @[@]@@C @]@]@@ 200 IFLD=3@A@]@@ NX )@@G@@CALL GETMEM(NODPLC(LOC+5),0) @#@]@@ 210 IFLD=IFLD+1 @B@]@@ 215 IF (NONY )@@G@@DPLC(ICODE+IFLD)) 50,220,230 @ @]@@ 220 IF (IFLD.GT.4) GO TO 210@B@]@@NZ )@@G@@ 225 VALUE(LOCV+1)=VALUE(IFIELD+IFLD) @#@]@@ GO TO 210 @ @]@@OA )@@G@@ 230 ANAM=VALUE(IFIELD+IFLD) @A@]@@ IF (ANAM.NE.ALSDC) GO TO 235 OB )@@G@@@#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 50,225,230 OC )@@G@@@A@]@@ 235 IF (ANAM.NE.ALSAC) GO TO 260 @^@]@@ VALUE(LOCV+2)=1.0 OD )@@G@@@#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 50,240,230 OE )@@G@@@B@]@@ 240 VALUE(LOCV+2)=VALUE(IFIELD+IFLD) @#@]@@ IFLD=IFLD+1 OF )@@G@@@B@]@@ IF (NODPLC(ICODE+IFLD)) 50,250,230 @B@]@@ 250 VALUE(LOCV+3OG )@@G@@)=VALUE(IFIELD+IFLD) @#@]@@ GO TO 210 @]@]@@ 260 ID=0 @ @]@@OH )@@G@@ IF (ANAM.EQ.ALSPU) ID=1 @ @]@@ IF (ANAM.EQ.ALSSI) ID=2 @ @]@@OI )@@G@@ IF (ANAM.EQ.ALSEX) ID=3 @ @]@@ IF (ANAM.EQ.ALSPW) ID=4 @ @]@@OJ )@@G@@ IF (ANAM.EQ.ALSSF) ID=5 @ @]@@ IF (ID.EQ.0) GO TO 450 @^@]@@OK )@@G@@ NODPLC(LOC+4)=ID @]@]@@ IKNT=0@#@]@@ 270 IFLD=IFLD+1 @C@]@@OL )@@G@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 280 @A@]@@ CALL EXTMEM(OM )@@G@@NODPLC(LOC+5),1) @#@]@@ IKNT=IKNT+1 @ @]@@ ISPOT=NODPLC(LOC+5ON )@@G@@)+IKNT@B@]@@ VALUE(ISPOT)=VALUE(IFIELD+IFLD) @#@]@@ GO TO OO )@@G@@270 @#@]@@ 280 AVAL=0.0 @ @]@@ IF (ID.NE.4) GO TO 285 @F@]@@OP )@@G@@C... FOR PWL SOURCE FUNCTION, FORCE EVEN NUMBER OF INPUT VALUES @^@]@@OQ )@@G@@ IBIT=AND(IKNT,1) @^@]@@ AVAL=VALUE(ISPOT) @ @]@@ IF (IBOR )@@G@@IT.EQ.0) GO TO 290@A@]@@ CALL EXTMEM(NODPLC(LOC+5),1) @ @]@@ OS )@@G@@AVAL=VALUE(ISPOT-1) @#@]@@ IKNT=IKNT+1 @ @]@@ ISPOT=NODPLCOT )@@G@@(LOC+5)+IKNT@^@]@@ VALUE(ISPOT)=AVAL @#@]@@ GO TO 290 @ @]@@OU )@@G@@ 285 IF (IKNT.GE.7) GO TO 215@A@]@@ 290 CALL EXTMEM(NODPLC(LOC+5),2) OV )@@G@@@ @]@@ ISPOT=NODPLC(LOC+5)+IKNT@^@]@@ VALUE(ISPOT+1)=0.0@ @]@@OW )@@G@@ VALUE(ISPOT+2)=AVAL @#@]@@ IKNT=IKNT+2 @#@]@@ GO TO OX )@@G@@285 @[@]@@C @#@]@@C DEVICE CARDS @[@]@@C @^@]@@ 300 VALUE(OY )@@G@@LOCV+1)=1.0 @ @]@@ IF (ID.NE.14) GO TO 305 @^@]@@ VALUE(LOCV+2OZ )@@G@@)=1.0 @ @]@@ VALUE(LOCV+3)=1.0E-6 @ @]@@ VALUE(LOCV+4)=1.0EPA )@@G@@-6 @ @]@@ 305 LOCM=LOC+NTNODS(ID)+2 @^@]@@ IFLD=NNODS(ID)+2 PB )@@G@@@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 440 @D@]@@ CALL EPC )@@G@@XTNAM(VALUE(IFIELD+IFLD),NODPLC(LOCM)) @#@]@@ 310 IFLD=IFLD+1 @B@]@@PD )@@G@@ IF (NODPLC(ICODE+IFLD)) 50,325,315 @ @]@@ 315 ANAM=VALUE(IFIELD+PE )@@G@@IFLD) @A@]@@ IF (ANAM.NE.ALSOFF) GO TO 320 @^@]@@ NODPLC(LOCM+PF )@@G@@1)=1 @#@]@@ GO TO 310 @A@]@@ 320 IF (ANAM.NE.AREA) GO TO 330 PG )@@G@@@#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 50,325,315 PH )@@G@@@C@]@@ 325 IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 420 @ @]@@ IF (IDPI )@@G@@.EQ.14) GO TO 490 @B@]@@ VALUE(LOCV+1)=VALUE(IFIELD+IFLD) @#@]@@PJ )@@G@@ GO TO 310 @A@]@@ 330 IF (ANAM.NE.AIC) GO TO 345 @]@]@@ PK )@@G@@IKNT=0@#@]@@ ICLOC=0 @ @]@@ IF (ID.EQ.14) ICLOC=3 @ @]@@PL )@@G@@ MAXKNT=NUMIC(ID-10) @#@]@@ 335 IFLD=IFLD+1 @B@]@@ IF (NOPM )@@G@@DPLC(ICODE+IFLD)) 50,340,315 @#@]@@ 340 IKNT=IKNT+1 @A@]@@ IF (IKPN )@@G@@NT.GT.MAXKNT) GO TO 335 @D@]@@ VALUE(LOCV+ICLOC+IKNT+1)=VALUE(IFIELPO )@@G@@D+IFLD) @#@]@@ GO TO 335 @ @]@@ 345 IF (ID.NE.14) GO TO 460 PP )@@G@@@#@]@@ ISPOT=0 @A@]@@ IF (ANAM.EQ.ALSL) ISPOT=1 @A@]@@PQ )@@G@@ IF (ANAM.EQ.ALSW) ISPOT=2 @A@]@@ IF (ANAM.EQ.ALSAD) ISPOTPR )@@G@@=3 @A@]@@ IF (ANAM.EQ.ALSAS) ISPOT=4 @A@]@@ IF (ISPOT.EQPS )@@G@@.0) GO TO 460 @#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IPT )@@G@@FLD)) 50,347,315 @C@]@@ 347 IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 420 PU )@@G@@@B@]@@ VALUE(LOCV+ISPOT)=VALUE(IFIELD+IFLD)@#@]@@ GO TO 310 PV )@@G@@@[@]@@C @^@]@@C TRANSMISSION LINES @[@]@@C @]@]@@ 350 IFLD=5PW )@@G@@@#@]@@ XNL=0.25 @#@]@@ TFREQ=0.0 @#@]@@ 355 IFLD=IFLD+1 PX )@@G@@@B@]@@ IF (NODPLC(ICODE+IFLD)) 378,355,360 @ @]@@ 360 ANAM=VALUE(IPY )@@G@@FIELD+IFLD) @A@]@@ IF (ANAM.EQ.AIC) GO TO 364 @A@]@@ IF (ANPZ )@@G@@AM.EQ.ALSNL) GO TO 370 @A@]@@ IF (ANAM.EQ.ALSF) GO TO 374 @]@]@@QA )@@G@@ ID=0 @ @]@@ IF (ANAM.EQ.ALSZ0) ID=1 @ @]@@ IF (ANAM.EQ.QB )@@G@@ALSZO) ID=1 @ @]@@ IF (ANAM.EQ.ALSTD) ID=2 @ @]@@ IF (ID.EQ.0)QC )@@G@@ GO TO 460 @#@]@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) QD )@@G@@378,362,360 @C@]@@ 362 IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 420 @B@]@@QE )@@G@@ VALUE(LOCV+ID)=VALUE(IFIELD+IFLD) @#@]@@ GO TO 355 @]@]@@QF )@@G@@ 364 IKNT=0@#@]@@ 366 IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) QG )@@G@@378,368,360 @#@]@@ 368 IKNT=IKNT+1 @ @]@@ IF (IKNT.GT.4) GO TO 366QH )@@G@@@C@]@@ VALUE(LOCV+IKNT+4)=VALUE(IFIELD+IFLD) @#@]@@ GO TO QI )@@G@@366 @#@]@@ 370 IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 378,37QJ )@@G@@2,360 @C@]@@ 372 IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 420 @ @]@@ QK )@@G@@XNL=VALUE(IFIELD+IFLD) @#@]@@ GO TO 355 @#@]@@ 374 IFLD=IFLD+1 QL )@@G@@@B@]@@ IF (NODPLC(ICODE+IFLD)) 378,376,360 @C@]@@ 376 IF (VALUE(IFQM )@@G@@IELD+IFLD).LE.0.0) GO TO 420 @ @]@@ TFREQ=VALUE(IFIELD+IFLD)@#@]@@QN )@@G@@ GO TO 355 @B@]@@ 378 IF (VALUE(LOCV+1).NE.0.0) GO TO 380 @^@]@@QO )@@G@@ WRITE (6,379) @C@]@@ 379 FORMAT(^0*ERROR*: Z0 MUST BE SPECIFQP )@@G@@IED^/)@#@]@@ GO TO 40 @B@]@@ 380 IF (VALUE(LOCV+2).NE.0.0) GO TQQ )@@G@@O 50 @A@]@@ IF (TFREQ.NE.0.0) GO TO 382 @^@]@@ WRITE (6,381QR )@@G@@) @E@]@@ 381 FORMAT(^0*ERROR*: EITHER TD OR F MUST BE SPECIFIED^/)QS )@@G@@@#@]@@ GO TO 40 @ @]@@ 382 VALUE(LOCV+2)=XNL/TFREQ @#@]@@ QT )@@G@@GO TO 50 @[@]@@C @A@]@@C ELEMENTS NOT YET IMPLEMENTED @[@]@@QU )@@G@@C @^@]@@ 390 WRITE (6,391) @E@]@@ 391 FORMAT(^0*ERROR*: ELEMEQV )@@G@@NT TYPE NOT YET IMPLEMENTED^/)@#@]@@ GO TO 40 @[@]@@C @^@]@@QW )@@G@@C ELEMENT CARD ERRORS @[@]@@C @^@]@@ 400 WRITE (6,401) @D@]@@QX )@@G@@ 401 FORMAT(^0*ERROR*: NEGATIVE NODE NUMBER FOUND^/)@#@]@@ GO TO QY )@@G@@40 @^@]@@ 410 WRITE (6,411) @D@]@@ 411 FORMAT(^0*ERROR*: NODE QZ )@@G@@NUMBERS ARE MISSING^/) @#@]@@ GO TO 40 @^@]@@ 420 WRITE (6,421RA )@@G@@) @F@]@@ 421 FORMAT(^0*ERROR*: VALUE IS MISSING OR IS NONPOSITIVE^RB )@@G@@/) @#@]@@ GO TO 40 @^@]@@ 430 WRITE (6,431) @G@]@@ 431 RC )@@G@@FORMAT(^0*ERROR*: MUTUAL INDUCTANCE REFERENCES ARE MISSING^/) @#@]@@RD )@@G@@ GO TO 40 @^@]@@ 440 WRITE (6,441) @D@]@@ 441 FORMAT(^0*ERRE )@@G@@ROR*: MODEL NAME IS MISSING^/) @#@]@@ GO TO 40 @^@]@@ 450 RF )@@G@@WRITE (6,451) ANAM@E@]@@ 451 FORMAT(^0*ERROR*: UNKNOWN SOURCE FUNCTIONRG )@@G@@: ^,A8/) @#@]@@ GO TO 40 @^@]@@ 460 WRITE (6,461) ANAM@D@]@@RH )@@G@@ 461 FORMAT(^0*ERROR*: UNKNOWN PARAMETER: ^,A8/) @#@]@@ GO TO RI )@@G@@40 @^@]@@ 470 WRITE (6,471) @F@]@@ 471 FORMAT(^0*ERROR*: VOLTARJ )@@G@@GE SOURCE NOT FOUND ON ABOVE LINE^/)@#@]@@ GO TO 40 @^@]@@ 480 RK )@@G@@WRITE (6,481) @B@]@@ 481 FORMAT(^0*ERROR*: VALUE IS ZERO^/) @#@]@@RL )@@G@@ GO TO 40 @#@]@@ 490 WRITE(6,491)@E@]@@ 491 FORMAT(^0*ERROR*: RM )@@G@@ AREA FACTOR UNDEFINED FOR MOSFET^/)@#@]@@ GO TO 40 @[@]@@C RN )@@G@@@#@]@@C MODEL CARD @[@]@@C @B@]@@ 500 IF (NODPLC(ICODE+2).NE.1RO )@@G@@) GO TO 650 @B@]@@ IF (NODPLC(ICODE+3).NE.1) GO TO 650 @]@]@@ RP )@@G@@ID=0 @#@]@@ 510 ID=ID+1 @ @]@@ IF (ID.GT.7) GO TO 660 @C@]@@RQ )@@G@@ IF (VALUE(IFIELD+3).NE.AIDM(ID)) GO TO 510@^@]@@ IPOL=IPOLAR(RR )@@G@@ID) @^@]@@ JTYPE=MODID(ID) @#@]@@ ID=JTYPE+20 @B@]@@ RS )@@G@@CALL FIND(VALUE(IFIELD+2),ID,LOC,1) @^@]@@ NODPLC(LOC+2)=IPOL@^@]@@RT )@@G@@ LOCV=NODPLC(LOC+1)@^@]@@ LOCM=IPAR(JTYPE) @ @]@@ NOPAR=RU )@@G@@IPAR(JTYPE+1)-LOCM@]@]@@ IFLD=3@#@]@@ 530 IFLD=IFLD+1 @B@]@@ RV )@@G@@IF (NODPLC(ICODE+IFLD)) 50,530,560 @ @]@@ 560 ANAM=VALUE(IFIELD+IFLD) RW )@@G@@@]@]@@ IKNT=0@#@]@@ 570 IKNT=IKNT+1 @A@]@@ IF (IKNT.GT.NOPAR)RX )@@G@@ GO TO 670 @C@]@@ IF (ANAM.NE.AMPAR(LOCM+IKNT)) GO TO 570 @#@]@@RY )@@G@@ IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 50,580,560 @B@]@@RZ )@@G@@ 580 VALUE(LOCV+IKNT)=VALUE(IFIELD+IFLD) @#@]@@ IFLD=IFLD+1 @B@]@@SA )@@G@@ IF (NODPLC(ICODE+IFLD)) 50,590,560 @#@]@@ 590 IKNT=IKNT+1 @A@]@@SB )@@G@@ IF (IKNT.GT.NOPAR) GO TO 530 @C@]@@ IF (ABLNK.NE.AMPAR(LOCM+SC )@@G@@IKNT)) GO TO 530 @#@]@@ GO TO 580 @[@]@@C @^@]@@C MODEL CARSD )@@G@@D ERRORS @[@]@@C @^@]@@ 650 WRITE (6,651) @D@]@@ 651 FORMATSE )@@G@@(^0*ERROR*: MODEL TYPE IS MISSING^/) @#@]@@ GO TO 40 @A@]@@SF )@@G@@ 660 WRITE (6,661) VALUE(IFIELD+3) @D@]@@ 661 FORMAT(^0*ERROR*: UNKNOSG )@@G@@WN MODEL TYPE: ^,A8/) @#@]@@ GO TO 40 @^@]@@ 670 WRITE (6,671SH )@@G@@) ANAM@E@]@@ 671 FORMAT(^0*ERROR*: UNKNOWN MODEL PARAMETER: ^,A8,/) SI )@@G@@@]@]@@ NOGO=1@#@]@@ GO TO 530 @[@]@@C @^@]@@C SUBCIRCUISJ )@@G@@T DEFINITION@[@]@@C @B@]@@ 700 IF (NODPLC(ICODE+2).NE.1) GO TO 780 SK )@@G@@@B@]@@ CALL FIND(VALUE(IFIELD+2),20,LOC,1) @ @]@@ CALL EXTMEM(SL )@@G@@ISBCKT,1) @^@]@@ NSBCKT=NSBCKT+1 @A@]@@ NODPLC(ISBCKT+NSBCSM )@@G@@KT)=LOC @]@]@@ IFLD=2@B@]@@ IF (NODPLC(ICODE+3).NE.0) GO TSN )@@G@@O 790 @A@]@@ CALL GETMEM(NODPLC(LOC+2),0) @]@]@@ IKNT=0@#@]@@SO )@@G@@ 710 IFLD=IFLD+1 @B@]@@ IF (NODPLC(ICODE+IFLD)) 50,720,710 @A@]@@SP )@@G@@ 720 CALL EXTMEM(NODPLC(LOC+2),1) @#@]@@ IKNT=IKNT+1 @ @]@@ SQ )@@G@@ISPOT=NODPLC(LOC+2)+IKNT@C@]@@ IF (VALUE(IFIELD+IFLD).LE.0.0) GO TOSR )@@G@@ 770 @B@]@@ NODPLC(ISPOT)=VALUE(IFIELD+IFLD) @^@]@@ NODE=NSS )@@G@@ODPLC(ISPOT)@#@]@@ I=IKNT-1 @ @]@@ 730 IF (I.EQ.0) GO TO 710 ST )@@G@@@^@]@@ ISPOT=ISPOT-1 @B@]@@ IF (NODPLC(ISPOT).EQ.NODE) GO SU )@@G@@TO 760@]@]@@ I=I-1 @#@]@@ GO TO 730 @^@]@@ 760 WRITE (6,761SV )@@G@@) NODE@G@]@@ 761 FORMAT(^0*ERROR*: SUBCIRCUIT DEFINITION DUPLICATES NOSW )@@G@@DE ^,I5,/) @#@]@@ GO TO 40 @^@]@@ 770 WRITE (6,771) @G@]@@SX )@@G@@ 771 FORMAT(^0*ERROR*: NONPOSITIVE NODE NUMBER FOUND IN SUBCIRCUIT ^, SY )@@G@@@^@]@@ 1 ^DEFINITION^/) @#@]@@ GO TO 40 @^@]@@ 780 WRITE SZ )@@G@@(6,781) @D@]@@ 781 FORMAT(^0*ERROR*: SUBCIRCUIT NAME MISSING^/) TA )@@G@@@#@]@@ GO TO 40 @^@]@@ 790 WRITE (6,791) @D@]@@ 791 FORMATTB )@@G@@(^0*ERROR*: SUBCIRCUIT NODES MISSING^/) @#@]@@ GO TO 40 @[@]@@TC )@@G@@C @^@]@@C .ENDS PROCESSING @[@]@@C @A@]@@ 800 IF (NSBCKT.ETD )@@G@@Q.0) GO TO 890 @]@]@@ IKNT=1@B@]@@ IF (NODPLC(ICODE+2).LE.0TE )@@G@@) GO TO 820 @ @]@@ ANAM=VALUE(IFIELD+2) @#@]@@ IKNT=NSBCKT TF )@@G@@@ @]@@ 810 LOC=NODPLC(ISBCKT+IKNT) @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@TG )@@G@@ ANAMS=VALUE(LOCV) @A@]@@ IF (ANAM.EQ.ANAMS) GO TO 820 @#@]@@TH )@@G@@ IKNT=IKNT-1 @ @]@@ IF (IKNT.NE.0) GO TO 810@#@]@@ GO TO TI )@@G@@880 @^@]@@ 820 IREL=NSBCKT-IKNT+1@ @]@@ CALL RELMEM(ISBCKT,IREL)TJ )@@G@@@^@]@@ NSBCKT=NSBCKT-IREL@#@]@@ GO TO 50 @^@]@@ 880 WRITE TK )@@G@@(6,881) ANAM@E@]@@ 881 FORMAT(^0*ERROR*: UNKNOWN SUBCIRCUIT NAME: ^,ATL )@@G@@8/) @#@]@@ GO TO 40 @^@]@@ 890 WRITE (6,891) @G@]@@ 891 TM )@@G@@FORMAT(^0WARNING: NO SUBCIRCUIT DEFINITION KNOWN -- LINE IGNORED^@]@]@@TN )@@G@@ 1/) @#@]@@ GO TO 50 @[@]@@C @#@]@@C SUBCIRCUIT CALLTO )@@G@@@[@]@@C @A@]@@ 900 CALL GETMEM(NODPLC(LOC+2),0) @]@]@@ IFLD=1TP )@@G@@@]@]@@ IKNT=0@#@]@@ 910 IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+ITQ )@@G@@FLD).NE.0) GO TO 920 @A@]@@ CALL EXTMEM(NODPLC(LOC+2),1) @#@]@@TR )@@G@@ IKNT=IKNT+1 @ @]@@ ISPOT=NODPLC(LOC+2)+IKNT@C@]@@ IF (VATS )@@G@@LUE(IFIELD+IFLD).LT.0.0) GO TO 400 @B@]@@ NODPLC(ISPOT)=VALUE(IFIETT )@@G@@LD+IFLD) @#@]@@ GO TO 910 @ @]@@ 920 IF (IKNT.EQ.0) GO TO 410TU )@@G@@@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 990 @D@]@@ CALL ETV )@@G@@XTNAM(VALUE(IFIELD+IFLD),NODPLC(LOC+3)) @#@]@@ GO TO 50 @^@]@@TW )@@G@@ 990 WRITE (6,991) @D@]@@ 991 FORMAT(^0*ERROR*: SUBCIRCUIT NAME MTX )@@G@@ISSING^/) @#@]@@ GO TO 40 @[@]@@C @[@]@@C END@[@]@@C TY )@@G@@@A@]@@ 5000 IF (NSBCKT.EQ.0) GO TO 5010 @#@]@@ NSBCKT=0 @^@]@@TZ )@@G@@ WRITE (6,5001) @C@]@@ 5001 FORMAT(^0*ERROR*: .ENDS CARD MISSIUA )@@G@@NG^/) @]@]@@ NOGO=1@ @]@@ 5010 CALL CLRMEM(IFIELD) @^@]@@ UB )@@G@@CALL CLRMEM(ICODE)@ @]@@ CALL CLRMEM(IDELIM) @ @]@@ CALL CUC )@@G@@LRMEM(ICOLUM) @ @]@@ CALL CLRMEM(ISBCKT) @B@]@@ IF (NFUD )@@G@@OUR.EQ.0) CALL CLRMEM(IFOUR) @B@]@@ IF (NSENS.EQ.0) CALL CLRMEM(ISUE )@@G@@ENS) @^@]@@ 6000 CALL SECOND(T2) @^@]@@ RSTATS(1)=T2-T1 @]@]@@UF )@@G@@ RETURN@]@]@@ END @D@]@@ SUBROUTINE KEYSRC(AIDC,JAIDC,NUG )@@G@@AIDC,ANAM,ID) @[@]@@C @F@]@@C THIS ROUTINE SEARCHES THE KEYUH )@@G@@WORD TABLE -AIDC- FOR AN EXACT@F@]@@C MATCH WITH -ANAM-. IF A MATCH IS UI )@@G@@FOUND, THE CORRESPONDING ENTRY@F@]@@C IN -JAIDC- IS RETURNED IN -ID-. IUJ )@@G@@F NO MATCH IS FOUND, ID = -1. @[@]@@C @B@]@@ DIMENSION AIDC(NAIUK )@@G@@DC),JAIDC(NAIDC) @#@]@@ INTEGER XOR @[@]@@C @[@]@@C @^@]@@UL )@@G@@ DO 10 I=1,NAIDC @B@]@@ IF (XOR(AIDC(I),ANAM).EQ.0) GO TO 20UM )@@G@@@#@]@@ 10 CONTINUE @]@]@@ ID=-1 @#@]@@ GO TO 30 @[@]@@UN )@@G@@C @#@]@@ 20 ID=JAIDC(I) @]@]@@ 30 RETURN@]@]@@ END @A@]@@UO )@@G@@ SUBROUTINE EXTNAM(ANAME,INDEX)@[@]@@C @G@]@@C THIS ROUTINEUP )@@G@@ ADDS ^ANAME^ TO THE LIST OF ^UNSATISFIED^ NAMES (THAT@G@]@@C IS, NAMES UQ )@@G@@WHICH CAN ONLY BE RESOLVED AFTER SUBCIRCUIT EXPANSION). @[@]@@C UR )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUUS )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,UT )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILUU )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWUV )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,UW )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @ @]@@UX )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ UY )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))UZ )@@G@@@#@]@@ INTEGER XOR @[@]@@C @[@]@@C @#@]@@ ANAM=ANAME VA )@@G@@@A@]@@ IF (NUNSAT.EQ.0) GO TO 20 @ @]@@ DO 10 INDEX=1,NUNSVB )@@G@@AT @D@]@@ IF (XOR(ANAM,VALUE(IUNSAT+INDEX)).EQ.0) GO TO 30@#@]@@VC )@@G@@ 10 CONTINUE @[@]@@C @ @]@@ 20 CALL EXTMEM(IUNSAT,1) @^@]@@VD )@@G@@ NUNSAT=NUNSAT+1 @#@]@@ INDEX=NUNSAT@ @]@@ VALUE(IUNSATVE )@@G@@+INDEX)=ANAM@]@]@@ 30 RETURN@]@]@@ END @ @]@@ SUBROUTINE RVF )@@G@@UNCON(ID) @[@]@@C @C@]@@C THIS ROUTINE PROCESSES RUN CONTROL CVG )@@G@@ARDS. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAVH )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICVI )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERVJ )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQVK )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYVL )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPVM )@@G@@OL,LZER @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),VN )@@G@@RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /CIRDVO )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUTVP )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIVQ )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICAVR )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MVS )@@G@@ODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTVT )@@G@@IM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,VU )@@G@@NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLVV )@@G@@TZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EVW )@@G@@PS0,EPSSIL,EPSOX @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITVX )@@G@@CELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@ COMMONVY )@@G@@ /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1VZ )@@G@@ INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2WA )@@G@@ IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3WB )@@G@@ IPIMAT(4)@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FOWC )@@G@@RFRE,JTRFLG @G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,WD )@@G@@ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT WE )@@G@@@A@]@@ COMMON /DEBUG/ IDEBUG(20) @ @]@@ COMMON /BLANK/ VALWF )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@WG )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@D@]@@ DIMENSION IPWH )@@G@@RNT(5),LIMITS(4),ITRLIM(5),CONTOL(6)@G@]@@ EQUIVALENCE (IPRNT(1),IPWI )@@G@@RNTA),(LIMITS(1),LIMTIM),(ITRLIM(1),ITL1),@ @]@@ 1 (CONTOL(1),GMINWJ )@@G@@) @[@]@@C @[@]@@C @#@]@@ INTEGER XOR @[@]@@C @^@]@@WK )@@G@@C PRINT/PLOT KEYWORDS @[@]@@C @^@]@@ DIMENSION AOPT(5) @A@]@@WL )@@G@@ DIMENSION AOPTS(25),LSETOP(5) @^@]@@ DIMENSION AIDE(20)@C@]@@WM )@@G@@ DATA AOPT / 2HDC, 2HTR, 2HAC, 2HNO, 2HDI /@[@]@@C @^@]@@C OPTWN )@@G@@IONS CARD KEYWORDS@[@]@@C @G@]@@ DATA AOPTS / 6HACCT , 6HLIST WO )@@G@@ , 6HNOMOD , 6HNODE , 6HOPTS , @G@]@@ 1 6HITL1 , 6WP )@@G@@HITL2 , 6HITL3 , 6HITL4 , 6HITL5 , @G@]@@ 2 6HLIMWQ )@@G@@TIM, 6HLIMPTS, 6HLVLCOD, 6HLVLTIM, 6HGMIN , @G@]@@ 3 WR )@@G@@ 6HRELTOL, 6HABSTOL, 6HVNTOL , 6HTRTOL , 6HCHGTOL, @G@]@@ 4 WS )@@G@@ 6HTNOM , 6HNUMDGT, 6HMAXORD, 6HMETHOD, 6HNOPAGE / @A@]@@ WT )@@G@@DATA LSETOP / 1, 1, 0, 1, 1 / @[@]@@C @[@]@@C @G@]@@ DATA AWU )@@G@@IDE / 1HR,1HC,1HL,1HK,1HG,1HE,1HF,1HH,1HV,1HI,1HD,1HQ,1HJ, @B@]@@ 1WV )@@G@@ 1HM,1HS,1HY,1HT,0.0,1HX,0.0 / @D@]@@ DATA ALSDE,ALSOC,ALSLI /WW )@@G@@ 3HDEC, 3HOCT, 3HLIN / @E@]@@ DATA ATRAP, AGEAR, AUIC / 4HTRAP, 4HWX )@@G@@GEAR, 3HUIC / @B@]@@ DATA AMUL, AADJ / 3HMUL, 3HADJ / @A@]@@WY )@@G@@ DATA ALETI, ALETV / 1HI, 1HV /@^@]@@ DATA ALPRN / 1H( /@C@]@@WZ )@@G@@ DATA ABLNK, AIN, AOUT / 1H , 2HIN, 3HOUT /@A@]@@ DATA AMISS /XA )@@G@@ 8H*MISSING / @^@]@@ DATA AMS / 2HMS / @^@]@@ DATA MINPTS XB )@@G@@/ 1 / @[@]@@C @[@]@@C @ @]@@ IF (ID.EQ.20) GO TO 5900@G@]@@XC )@@G@@ GO TO (1200,1100,1650,6000,6000,1700,6000,1600,1550,2000,3600, XD )@@G@@@D@]@@ 1 3500,2600,6000,1750,1300,1500,1800,4000), ID @[@]@@C XE )@@G@@@^@]@@C DC TRANSFER CURVES @[@]@@C @]@]@@ 1100 IFLD=2@ @]@@ XF )@@G@@ANAM=VALUE(IFIELD+2) @]@]@@ ID=0 @A@]@@ CALL MOVE(ANAM,2,AXG )@@G@@BLNK,1,7) @A@]@@ IF (ANAM.EQ.AIDE(9)) ID=9 @A@]@@ IF (ANXH )@@G@@AM.EQ.AIDE(10)) ID=10 @ @]@@ IF (ID.EQ.0) GO TO 1130 @C@]@@ XI )@@G@@CALL FIND(VALUE(IFIELD+IFLD),ID,ITCELM,0) @#@]@@ IFLD=IFLD+1 @C@]@@XJ )@@G@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1130 @A@]@@ TCSTAR=VALUEXK )@@G@@(IFIELD+IFLD) @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IXL )@@G@@FLD).NE.0) GO TO 1130 @A@]@@ TCSTOP=VALUE(IFIELD+IFLD) @#@]@@XM )@@G@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1130 XN )@@G@@@A@]@@ TCINCR=VALUE(IFIELD+IFLD) @A@]@@ IF (TCINCR.EQ.0.0)XO )@@G@@ GO TO 1130 @A@]@@ TEMP=(TCSTOP-TCSTAR)/TCINCR @A@]@@ IF (TEXP )@@G@@MP.GT.0.0) GO TO 1110 @^@]@@ TCINCR=-TCINCR @#@]@@ TEMP=-XQ )@@G@@TEMP @ @]@@ 1110 ICVFLG=IFIX(TEMP+0.5)+1 @A@]@@ ICVFLG=MAX0(ICVFLGXR )@@G@@,MINPTS) @#@]@@ GO TO 6000 @^@]@@ 1130 WRITE (6,1131) @G@]@@XS )@@G@@ 1131 FORMAT(^0WARNING: MISSING PARAMETER(S) ... ANALYSIS OMITTED^/) XT )@@G@@@#@]@@ GO TO 6000 @[@]@@C @ @]@@C FREQUENCY SPECIFICATION XU )@@G@@@[@]@@C @]@]@@ 1200 IFLD=2@B@]@@ IF (NODPLC(ICODE+2)) 1250,1250XV )@@G@@,1210 @]@]@@ 1210 ID=0 @C@]@@ IF (VALUE(IFIELD+IFLD).EQ.ALSDE) ID=XW )@@G@@1 @C@]@@ IF (VALUE(IFIELD+IFLD).EQ.ALSOC) ID=2 @C@]@@ XX )@@G@@IF (VALUE(IFIELD+IFLD).EQ.ALSLI) ID=3 @ @]@@ IF (ID.EQ.0) GO TOXY )@@G@@ 1240 @#@]@@ IDFREQ=ID @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NOXZ )@@G@@DPLC(ICODE+IFLD).NE.0) GO TO 1250 @C@]@@ IF (VALUE(IFIELD+IFLD).LYA )@@G@@E.0.0) GO TO 1250 @ @]@@ FINCR=VALUE(IFIELD+IFLD)@#@]@@ IFLD=IYB )@@G@@FLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1250 @C@]@@ YC )@@G@@IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 1250 @A@]@@ FSTART=VALUE(IFIELYD )@@G@@D+IFLD) @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NYE )@@G@@E.0) GO TO 1250 @C@]@@ IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 1250 YF )@@G@@@ @]@@ FSTOP=VALUE(IFIELD+IFLD)@B@]@@ IF (FSTART.GT.FSTOP) GO YG )@@G@@TO 1260 @#@]@@ JACFLG=FINCR@A@]@@ IF (IDFREQ-2) 1215,1220,YH )@@G@@1235 @ @]@@ 1215 FINCR=EXP(XLOG10/FINCR) @#@]@@ GO TO 1230 @ @]@@YI )@@G@@ 1220 FINCR=EXP(XLOG2/FINCR) @B@]@@ 1230 TEMP=ALOG(FSTOP/FSTART)/ALOG(FYJ )@@G@@INCR) @A@]@@ JACFLG=IFIX(TEMP+0.999)+1 @A@]@@ 1235 JACFLG=MAX0(YK )@@G@@JACFLG,MINPTS) @A@]@@ IF (IDFREQ.NE.3) GO TO 6000 @D@]@@ YL )@@G@@FINCR=(FSTOP-FSTART)/FLOAT(MAX0(JACFLG-1,1)) @#@]@@ GO TO 6000 YM )@@G@@@B@]@@ 1240 WRITE (6,1241) VALUE(IFIELD+IFLD) @G@]@@ 1241 FORMAT(^0WARYN )@@G@@NING: UNKNOWN FREQUENCY FUNCTION: ^,A8,^ ... ANALYS^@^@]@@ 1 ^ISYO )@@G@@ OMITTED^/) @#@]@@ GO TO 6000 @^@]@@ 1250 WRITE (6,1251) @G@]@@YP )@@G@@ 1251 FORMAT(^0WARNING: FREQUENCY PARAMETERS INCORRECT ... ANALYSIS OM^YQ )@@G@@@#@]@@ 1 ^ITTED^/)@#@]@@ GO TO 6000 @^@]@@ 1260 WRITE (6,126YR )@@G@@1) @G@]@@ 1261 FORMAT(^0WARNING: START FREQ > STOP FREQ ... ANALYSISYS )@@G@@ OMITTED^/) @#@]@@ GO TO 6000 @[@]@@C @^@]@@C TIME SPECIFICATYT )@@G@@ION @[@]@@C @]@]@@ 1300 IFLD=2@C@]@@ IF (NODPLC(ICODE+IFLD).NYU )@@G@@E.0) GO TO 1430 @C@]@@ IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 1430 YV )@@G@@@ @]@@ TSTEP=VALUE(IFIELD+IFLD)@#@]@@ DELMAX=TSTEP@#@]@@ YW )@@G@@IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1430 @C@]@@YX )@@G@@ IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 1430 @ @]@@ TSTOP=VALUE(YY )@@G@@IFIELD+IFLD)@#@]@@ TSTART=0.0 @#@]@@ IFLD=IFLD+1 @C@]@@ YZ )@@G@@IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1310 @C@]@@ IF (VALUE(IFIELD+IZA )@@G@@FLD).LT.0.0) GO TO 1430 @A@]@@ TSTART=VALUE(IFIELD+IFLD) @#@]@@ZB )@@G@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1310 ZC )@@G@@@C@]@@ IF (VALUE(IFIELD+IFLD).LE.0.0) GO TO 1430 @A@]@@ DELMAXZD )@@G@@=VALUE(IFIELD+IFLD) @A@]@@ DELMAX=AMIN1(DELMAX,TSTEP) @#@]@@ZE )@@G@@ IFLD=IFLD+1 @C@]@@ 1310 IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1320 ZF )@@G@@@C@]@@ IF (VALUE(IFIELD+IFLD).NE.AUIC) GO TO 1320@#@]@@ NOSOLVZG )@@G@@=1 @B@]@@ 1320 IF (TSTART.GT.TSTOP) GO TO 1440 @A@]@@ IF (TSZH )@@G@@TEP.GT.TSTOP) GO TO 1430@C@]@@ JTRFLG=IFIX((TSTOP-TSTART)/TSTEP+0.5ZI )@@G@@)+1 @A@]@@ JTRFLG=MAX0(JTRFLG,MINPTS) @#@]@@ GO TO 6000 ZJ )@@G@@@^@]@@ 1430 WRITE (6,1431) @G@]@@ 1431 FORMAT(^0WARNING: TIME PARAMEZK )@@G@@TERS INCORRECT ... ANALYSIS OMITTED^@]@]@@ 1 /) @#@]@@ GO TO ZL )@@G@@6000 @^@]@@ 1440 WRITE (6,1441) @G@]@@ 1441 FORMAT(^0WARNING: STARTZM )@@G@@ TIME > STOP TIME ... ANALYSIS OMITTED^/) @#@]@@ GO TO 6000 @[@]@@ZN )@@G@@C @^@]@@C TRANSFER FUNCTION @[@]@@C @#@]@@ 1500 KSSOP=1 ZO )@@G@@@]@]@@ IFLD=2@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1530 ZP )@@G@@@B@]@@ CALL OUTDEF(IFLD,1,KOVAR,KTYPE) @A@]@@ IF (IGOOF.NEZQ )@@G@@.0) GO TO 1530 @A@]@@ IF (KTYPE.NE.1) GO TO 1540 @#@]@@ ZR )@@G@@IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1530 @ @]@@ZS )@@G@@ ANAM=VALUE(IFIELD+IFLD) @A@]@@ CALL MOVE(ANAM,2,ABLNK,1,7) ZT )@@G@@@]@]@@ ID=0 @A@]@@ IF (ANAM.EQ.AIDE(9)) ID=9 @A@]@@ ZU )@@G@@IF (ANAM.EQ.AIDE(10)) ID=10 @ @]@@ IF (ID.EQ.0) GO TO 1530 @C@]@@ZV )@@G@@ CALL FIND(VALUE(IFIELD+IFLD),ID,KINEL,0) @#@]@@ KIDIN=ID ZW )@@G@@@#@]@@ GO TO 6000 @#@]@@ 1530 KOVAR=0 @#@]@@ KINEL=0 ZX )@@G@@@^@]@@ WRITE (6,1131) @#@]@@ IGOOF=0 @#@]@@ GO TO ZY )@@G@@6000 @#@]@@ 1540 KOVAR=0 @#@]@@ KINEL=0 @^@]@@ WRITE ZZ )@@G@@(6,1541) @G@]@@ 1541 FORMAT(^0WARNING: ILLEGAL OUTPUT VARIABLE ... AAA )@@G@@NALYSIS OMITTED^/)@#@]@@ IGOOF=0 @#@]@@ GO TO 6000 @[@]@@AB )@@G@@C @#@]@@C OPERATING POINT@[@]@@C @#@]@@ 1550 KSSOP=1 @#@]@@AC )@@G@@ GO TO 6000 @[@]@@C @#@]@@C NOISE ANALYSIS @[@]@@C @]@]@@AD )@@G@@ 1600 IFLD=2@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1610 @B@]@@AE )@@G@@ CALL OUTDEF(IFLD,2,NOSOUT,NTYPE) @A@]@@ IF (IGOOF.NE.0) GOAF )@@G@@ TO 1610 @A@]@@ IF (NTYPE.NE.1) GO TO 1610 @C@]@@ IF (NOAG )@@G@@DPLC(NOSOUT+5).NE.0) GO TO 1610 @#@]@@ IFLD=IFLD+1 @C@]@@ AH )@@G@@IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1620 @ @]@@ ANAM=VALUE(IFIELD+AI )@@G@@IFLD) @A@]@@ CALL MOVE(ANAM,2,ABLNK,1,7) @]@]@@ ID=0 @A@]@@AJ )@@G@@ IF (ANAM.EQ.AIDE(9)) ID=9 @A@]@@ IF (ANAM.EQ.AIDE(10)) IDAK )@@G@@=10 @ @]@@ IF (ID.EQ.0) GO TO 1620 @C@]@@ CALL FIND(VALUE(IFAL )@@G@@IELD+IFLD),ID,NOSIN,0) @#@]@@ NOSPRT=0 @#@]@@ IFLD=IFLD+1 AM )@@G@@@C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 1605 @B@]@@ NOSPRTAN )@@G@@=AMAX1(0.0,VALUE(IFIELD+IFLD))@#@]@@ 1605 INOISE=1 @#@]@@ GO TO AO )@@G@@6000 @^@]@@ 1610 WRITE (6,1611) @G@]@@ 1611 FORMAT(^0WARNING: VOLTAAP )@@G@@GE OUTPUT UNRECOGNIZABLE ... ANALYSIS OMIT@]@]@@ 1TED^/)@#@]@@ AQ )@@G@@IGOOF=0 @#@]@@ GO TO 6000 @^@]@@ 1620 WRITE (6,1621) @G@]@@AR )@@G@@ 1621 FORMAT(^0WARNING: INVALID INPUT SOURCE ... ANALYSIS OMITTED^/) AS )@@G@@@#@]@@ IGOOF=0 @#@]@@ GO TO 6000 @[@]@@C @^@]@@C DISAT )@@G@@TORTION ANALYSIS @[@]@@C @]@]@@ 1650 IFLD=2@C@]@@ IF (NODPLC(IAU )@@G@@CODE+IFLD).NE.1) GO TO 1660 @ @]@@ ANAM=VALUE(IFIELD+IFLD) @A@]@@AV )@@G@@ CALL MOVE(ANAM,2,ABLNK,1,7) @B@]@@ IF (ANAM.NE.AIDE(1)) GO AW )@@G@@TO 1660 @C@]@@ CALL FIND(VALUE(IFIELD+IFLD),1,IDIST,0) @#@]@@AX )@@G@@ IDPRT=0 @#@]@@ SKW2=0.9 @^@]@@ REFPRL=1.0E-3 AY )@@G@@@#@]@@ SPW2=1.0 @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(IAZ )@@G@@CODE+IFLD).NE.0) GO TO 6000 @ @]@@ IDPRT=VALUE(IFIELD+IFLD)@ @]@@BA )@@G@@ IDPRT=MAX0(IDPRT,0) @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NOBB )@@G@@DPLC(ICODE+IFLD).NE.0) GO TO 6000 @D@]@@ IF (VALUE(IFIELD+IFLD).LBC )@@G@@E.0.001) GO TO 1670 @D@]@@ IF (VALUE(IFIELD+IFLD).GT.0.999) GO BD )@@G@@TO 1670 @ @]@@ SKW2=VALUE(IFIELD+IFLD) @#@]@@ IFLD=IFLD+1 BE )@@G@@@C@]@@ IF (NODPLC(ICODE+IFLD).NE.0) GO TO 6000 @D@]@@ IF (VABF )@@G@@LUE(IFIELD+IFLD).LT.1.0E-10) GO TO 1670 @A@]@@ REFPRL=VALUE(IFIELBG )@@G@@D+IFLD) @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NBH )@@G@@E.0) GO TO 6000 @D@]@@ IF (VALUE(IFIELD+IFLD).LT.0.001) GO TO 167BI )@@G@@0 @ @]@@ SPW2=VALUE(IFIELD+IFLD) @#@]@@ GO TO 6000 @^@]@@BJ )@@G@@ 1660 WRITE (6,1661) @G@]@@ 1661 FORMAT(^0WARNING: DISTORTION LOAD RBK )@@G@@ESISTOR MISSING ... ANALYSIS ^@^@]@@ 1 ^OMITTED^/) @#@]@@ BL )@@G@@GO TO 6000 @#@]@@ 1670 IDIST=0 @^@]@@ WRITE (6,1671) @G@]@@BM )@@G@@ 1671 FORMAT(^0WARNING: DISTORTION PARAMETERS INCORRECT ... ANALYSIS O^BN )@@G@@@^@]@@ 1 ^MITTED^/) @#@]@@ GO TO 6000 @[@]@@C @^@]@@BO )@@G@@C FOURIER ANALYSIS @[@]@@C @]@]@@ 1700 IFLD=2@C@]@@ IF (NOBP )@@G@@DPLC(ICODE+IFLD).NE.0) GO TO 1720 @C@]@@ IF (VALUE(IFIELD+IFLD).LBQ )@@G@@E.0.0) GO TO 1720 @A@]@@ FORFRE=VALUE(IFIELD+IFLD) @#@]@@ 1705 BR )@@G@@IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 1710 @A@]@@BS )@@G@@ CALL OUTDEF(IFLD,2,LOCT,LTYPE)@A@]@@ IF (IGOOF.NE.0) GO TO 17BT )@@G@@20 @A@]@@ IF (LTYPE.NE.1) GO TO 1720 @ @]@@ CALL EXTMEM(BU )@@G@@IFOUR,1) @^@]@@ NFOUR=NFOUR+1 @ @]@@ NODPLC(IFOUR+NFOURBV )@@G@@)=LOCT@#@]@@ GO TO 1705 @A@]@@ 1710 IF (NFOUR.GE.1) GO TO 6000 BW )@@G@@@^@]@@ 1720 WRITE (6,1721) @G@]@@ 1721 FORMAT(^0WARNING: FOURIER PARBX )@@G@@AMETERS INCORRECT ... ANALYSIS OMIT^@#@]@@ 1 ^TED^/) @#@]@@ BY )@@G@@IGOOF=0 @#@]@@ NFOUR=0 @^@]@@ CALL CLRMEM(IFOUR)@ @]@@BZ )@@G@@ CALL GETMEM(IFOUR,0) @#@]@@ GO TO 6000 @[@]@@C @^@]@@CA )@@G@@C SENSITIVITY ANALYSIS @[@]@@C @#@]@@ 1750 KSSOP=1 @]@]@@ CB )@@G@@IFLD=1@#@]@@ 1760 IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GCC )@@G@@O TO 6000 @A@]@@ CALL OUTDEF(IFLD,1,LOCT,LTYPE)@A@]@@ IF (IGCD )@@G@@OOF.NE.0) GO TO 1780 @A@]@@ IF (LTYPE.NE.1) GO TO 1780 @ @]@@CE )@@G@@ CALL EXTMEM(ISENS,1) @^@]@@ NSENS=NSENS+1 @ @]@@ CF )@@G@@NODPLC(ISENS+NSENS)=LOCT@#@]@@ GO TO 1760 @^@]@@ 1780 WRITE (6,178CG )@@G@@1) @G@]@@ 1781 FORMAT(^0WARNING: OUTPUT VARIABLE UNRECOGNIZABLE ... CH )@@G@@ANALYSIS OM^@^@]@@ 1 ^MITTED^/) @#@]@@ IGOOF=0 @#@]@@CI )@@G@@ NSENS=0 @^@]@@ CALL CLRMEM(ISENS)@ @]@@ CALL GETMEM(CJ )@@G@@ISENS,0) @#@]@@ GO TO 6000 @[@]@@C @^@]@@C TEMPERATURE VARCK )@@G@@IATION@[@]@@C @]@]@@ 1800 IFLD=1@#@]@@ 1810 IFLD=IFLD+1 @C@]@@ CL )@@G@@IF (NODPLC(ICODE+IFLD).NE.0) GO TO 6000 @D@]@@ IF (VALUE(IFIELD+ICM )@@G@@FLD).LE.-223.0) GO TO 1810 @ @]@@ CALL EXTMEM(ITEMPS,1) @^@]@@CN )@@G@@ NUMTEM=NUMTEM+1 @C@]@@ VALUE(ITEMPS+NUMTEM)=VALUE(IFIELD+IFCO )@@G@@LD) @#@]@@ GO TO 1810 @[@]@@C @#@]@@C OPTIONS CARD @[@]@@CP )@@G@@C @]@]@@ 2000 IFLD=1@#@]@@ 2010 IFLD=IFLD+1 @C@]@@ 2020 IF (NODPLC(ICQ )@@G@@CODE+IFLD)) 6000,2010,2030 @ @]@@ 2030 ANAM=VALUE(IFIELD+IFLD) @^@]@@CR )@@G@@ DO 2040 I=1,5 @B@]@@ IF (ANAM.NE.AOPTS(I)) GO TO 2040 CS )@@G@@@^@]@@ IPRNT(I)=LSETOP(I)@#@]@@ GO TO 2010 @#@]@@ 2040 CONTINCT )@@G@@UE @B@]@@ IF (ANAM.EQ.AOPTS(24)) GO TO 2110 @B@]@@ IF (ANCU )@@G@@AM.EQ.AOPTS(25)) GO TO 2120 @C@]@@ IF (NODPLC(ICODE+IFLD+1).NE.0)CV )@@G@@ GO TO 2500 @#@]@@ IFLD=IFLD+1 @ @]@@ AVAL=VALUE(IFIELD+IFLD) CW )@@G@@@A@]@@ IF (AVAL.LE.0.0) GO TO 2510 @^@]@@ DO 2050 I=6,10 CX )@@G@@@B@]@@ IF (ANAM.NE.AOPTS(I)) GO TO 2050 @^@]@@ ITRLIM(I-5)=CY )@@G@@AVAL @#@]@@ GO TO 2010 @#@]@@ 2050 CONTINUE @^@]@@ DO 206CZ )@@G@@0 I=11,14 @B@]@@ IF (ANAM.NE.AOPTS(I)) GO TO 2060 @^@]@@ DA )@@G@@LIMITS(I-10)=AVAL @#@]@@ GO TO 2010 @#@]@@ 2060 CONTINUE @^@]@@DB )@@G@@ DO 2070 I=15,20 @B@]@@ IF (ANAM.NE.AOPTS(I)) GO TO 2070 DC )@@G@@@^@]@@ CONTOL(I-14)=AVAL @#@]@@ GO TO 2010 @#@]@@ 2070 CONTINDD )@@G@@UE @B@]@@ IF (ANAM.NE.AOPTS(21)) GO TO 2080 @A@]@@ IF (AVDE )@@G@@AL.LT.-223.0) GO TO 2510@ @]@@ VALUE(ITEMPS+1)=AVAL @#@]@@ DF )@@G@@GO TO 2010 @B@]@@ 2080 IF (ANAM.NE.AOPTS(22)) GO TO 2100 @#@]@@ DG )@@G@@NDIGIT=AVAL @A@]@@ IF (NDIGIT.LE.7) GO TO 2090 @#@]@@ NDIGITDH )@@G@@=7 @ @]@@ WRITE (6,2081) NDIGIT @G@]@@ 2081 FORMAT(^0WARNING: DI )@@G@@ NUMDGT MAY NOT EXCEED^I2^; MAXIMUM VALUE ASSUM@]@]@@ 1ED^/) @^@]@@DJ )@@G@@ 2090 NUMDGT=NDIGIT @#@]@@ GO TO 2010 @B@]@@ 2100 IF (ANAM.NE.DK )@@G@@AOPTS(23)) GO TO 2500 @]@]@@ N=AVAL@B@]@@ IF ((N.LE.1).OR.(NDL )@@G@@.GE.7)) GO TO 2510@#@]@@ MAXORD=N @#@]@@ GO TO 2010 @C@]@@DM )@@G@@ 2110 IF (NODPLC(ICODE+IFLD+1).NE.1) GO TO 2510 @#@]@@ IFLD=IFLD+1 DN )@@G@@@ @]@@ ANAM=VALUE(IFIELD+IFLD) @A@]@@ CALL MOVE(ANAM,5,ABLNK,1DO )@@G@@,4) @#@]@@ JTYPE=0 @A@]@@ IF (ANAM.EQ.ATRAP) JTYPE=1 DP )@@G@@@A@]@@ IF (ANAM.EQ.AGEAR) JTYPE=2 @A@]@@ IF (JTYPE.EQ.0) GODQ )@@G@@ TO 2510 @#@]@@ METHOD=JTYPE@#@]@@ GO TO 2010 @#@]@@ 2120 DR )@@G@@NOPAGE=1 @#@]@@ GO TO 2010 @ @]@@ 2500 WRITE (6,2501) ANAM DS )@@G@@@F@]@@ 2501 FORMAT(^0WARNING: UNKNOWN OPTION: ^,A8,^ ... IGNORED^/) DT )@@G@@@#@]@@ GO TO 2010 @ @]@@ 2510 WRITE (6,2511) ANAM @G@]@@ 2511 DU )@@G@@FORMAT(^0WARNING: ILLEGAL VALUE SPECIFIED FOR OPTION: ^,A8,^ ...@#@]@@DV )@@G@@ 1 IGNORED^/) @#@]@@ GO TO 2010 @[@]@@C @]@]@@C .PZ CARD DW )@@G@@@[@]@@C @]@]@@ 2600 IFLD=2@C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GDX )@@G@@O TO 2650 @B@]@@ CALL OUTDEF(IFLD,1,IPZOUT,KTYPE) @A@]@@ DY )@@G@@IF (IGOOF.NE.0) GO TO 2650 @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODZ )@@G@@DPLC(ICODE+IFLD).NE.1) GO TO 2650 @ @]@@ ACHAR=VALUE(IFIELD+IFLD)EA )@@G@@@A@]@@ CALL MOVE(ACHAR,2,ABLNK,1,7) @#@]@@ IPZITP=0 @A@]@@EB )@@G@@ IF (ACHAR.EQ.ALETV) IPZITP=9 @A@]@@ IF (ACHAR.EQ.ALETI) IPZIEC )@@G@@TP=10 @A@]@@ IF (IPZITP.EQ.0) GO TO 2650 @D@]@@ IF (VALUE(IDED )@@G@@ELIM+IFLD).NE.ALPRN) GO TO 2610 @A@]@@ IF (IPZITP.EQ.9) GO TO 2EE )@@G@@620 @A@]@@ IF (IPZITP.EQ.10) GO TO 2650 @D@]@@ 2610 CALL FIND(VAEF )@@G@@LUE(IFIELD+IFLD),IPZITP,IPZIN,0) @#@]@@ GO TO 2630 @B@]@@ 2620 EG )@@G@@CALL OUTDEF(IFLD,1,IPZIN,KTYPE) @A@]@@ IF (IGOOF.NE.0) GO TO 26EH )@@G@@50 @#@]@@ IPZITP=41 @#@]@@ 2630 JPZFLG=1 @#@]@@ JPZTYPEI )@@G@@=1 @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GEJ )@@G@@O TO 6000 @ @]@@ AWRD=VALUE(IFIELD+IFLD) @A@]@@ CALL MOVE(AWEK )@@G@@RD,4,ABLNK,1,5) @]@]@@ ID=0 @ @]@@ IF (AWRD.EQ.AMUL) ID=1 EL )@@G@@@ @]@@ IF (AWRD.EQ.AADJ) ID=2 @ @]@@ IF (ID.EQ.0) GO TO 2650 EM )@@G@@@#@]@@ JPZTYP=ID @#@]@@ GO TO 6000 @[@]@@C @#@]@@C ERREN )@@G@@ORS ... @[@]@@C @^@]@@ 2650 WRITE (6,2651) @F@]@@ 2651 FORMATEO )@@G@@(^0WARNING: ERROR(S) IN INPUT/OUTPUT SPEC ... LINE ^,@^@]@@ 1 ^IGEP )@@G@@NORED^,/) @#@]@@ IGOOF=0 @#@]@@ JPZFLG=0 @#@]@@ EQ )@@G@@GO TO 6000 @[@]@@C @#@]@@C PRINT CARD @[@]@@C @#@]@@ 3500 ER )@@G@@IPRPL=0 @#@]@@ GO TO 3610 @[@]@@C @^@]@@C PLOT (AND PRINTES )@@G@@) CARD@[@]@@C @#@]@@ 3600 IPRPL=1 @]@]@@ 3610 IFLD=2@#@]@@ 3613 ET )@@G@@ANAM=AMISS @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 3950 @ @]@@EU )@@G@@ ANAM=VALUE(IFIELD+IFLD) @]@]@@ MS=0 @B@]@@ IF (XOR(ANAMEV )@@G@@,AMS).NE.0) GO TO 3615 @]@]@@ MS=1 @]@]@@ IFLD=3@C@]@@ EW )@@G@@IF (NODPLC(ICODE+IFLD).NE.1) GO TO 3970 @ @]@@ ANAM=VALUE(IFIELD+EX )@@G@@IFLD) @A@]@@ 3615 CALL MOVE(ANAM,3,ABLNK,1,6) @^@]@@ DO 3620 I=1,EY )@@G@@5 @B@]@@ IF (ANAM.NE.AOPT(I)) GO TO 3620 @#@]@@ KTYPE=EZ )@@G@@I @#@]@@ GO TO 3630 @#@]@@ 3620 CONTINUE @#@]@@ GO TO FA )@@G@@3950 @ @]@@ 3630 ID=30+5*IPRPL+KTYPE @C@]@@ CALL FIND(FLOAT(JEFB )@@G@@LCNT(ID)),ID,LOC,1) @ @]@@ NODPLC(LOC+2)=KTYPE @ @]@@ FC )@@G@@IF (MS.EQ.0) GO TO 3635 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ VALUE(FD )@@G@@LOCV)=0.0 @#@]@@ 3635 NUMOUT=0 @#@]@@ 3640 IFLD=IFLD+1 @C@]@@ FE )@@G@@IF (NODPLC(ICODE+IFLD)) 3900,3640,3650 @B@]@@ 3650 CALL OUTDEF(IFLD,KFF )@@G@@TYPE,LOCT,LTYPE) @A@]@@ IF (IGOOF.NE.0) GO TO 3970 @A@]@@ FG )@@G@@IF (IPRPL.EQ.0) GO TO 3660 @#@]@@ PLIMLO=0.0 @#@]@@ PLIMHIFH )@@G@@=0.0 @C@]@@ IF (NODPLC(ICODE+IFLD+1).NE.0) GO TO 3660 @C@]@@ FI )@@G@@IF (NODPLC(ICODE+IFLD+2).NE.0) GO TO 3660 @A@]@@ PLIMLO=VALUE(IFIELFJ )@@G@@D+IFLD+1) @A@]@@ PLIMHI=VALUE(IFIELD+IFLD+2) @#@]@@ IFLD=IFK )@@G@@FLD+2 @A@]@@ 3660 IF (NUMOUT.EQ.8) GO TO 3980 @^@]@@ NUMOUT=NUMOUFL )@@G@@T+1 @ @]@@ LSPOT=LOC+2*NUMOUT+2 @^@]@@ NODPLC(LSPOT)=LOCTFM )@@G@@@ @]@@ NODPLC(LSPOT+1)=LTYPE @A@]@@ IF (IPRPL.EQ.0) GO TO 36FN )@@G@@70 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ LSPOT=LOCV+2*NUMOUT-1 FO )@@G@@@ @]@@ VALUE(LSPOT)=PLIMLO @ @]@@ VALUE(LSPOT+1)=PLIMHI FP )@@G@@@#@]@@ 3670 GO TO 3640 @ @]@@ 3900 NODPLC(LOC+3)=NUMOUT @A@]@@ FQ )@@G@@IF (IPRPL.EQ.0) GO TO 6000 @A@]@@C... PROPOGATE PLOT LIMITS DOWNWARDFR )@@G@@@A@]@@ IF (NUMOUT.LE.1) GO TO 6000 @^@]@@ LOCV=NODPLC(LOC+1)FS )@@G@@@ @]@@ LSPOT=LOCV+2*NUMOUT-1 @ @]@@ PLIMLO=VALUE(LSPOT) FT )@@G@@@ @]@@ PLIMHI=VALUE(LSPOT+1) @#@]@@ I=NUMOUT-1 @^@]@@ 3905 FU )@@G@@LSPOT=LSPOT-2 @B@]@@ IF (VALUE(LSPOT).NE.0.0) GO TO 3910 @C@]@@FV )@@G@@ IF (VALUE(LSPOT+1).NE.0.0) GO TO 3910 @ @]@@ VALUE(LSPOT)FW )@@G@@=PLIMLO @ @]@@ VALUE(LSPOT+1)=PLIMHI @#@]@@ GO TO 3920 FX )@@G@@@ @]@@ 3910 PLIMLO=VALUE(LSPOT) @ @]@@ PLIMHI=VALUE(LSPOT+1) FY )@@G@@@]@]@@ 3920 I=I-1 @ @]@@ IF (I.GE.1) GO TO 3905 @#@]@@ GO TO FZ )@@G@@6000 @[@]@@C @]@]@@C ERRORS@[@]@@C @ @]@@ 3950 WRITE (6,395GA )@@G@@1) ANAM @G@]@@ 3951 FORMAT(^0WARNING: UNKNOWN ANALYSIS MODE: ^A8^ GB )@@G@@... LINE IGNORED^/@]@]@@ 1) @#@]@@ GO TO 6000 @^@]@@ 3970 GC )@@G@@WRITE (6,3971) @G@]@@ 3971 FORMAT(^0WARNING: UNRECOGNIZABLE OUTPUT VGD )@@G@@ARIABLE ON ABOVE LINE^/)@#@]@@ IGOOF=0 @#@]@@ GO TO 3640 GE )@@G@@@^@]@@ 3980 WRITE (6,3981) @G@]@@ 3981 FORMAT(^0WARNING: ONLY FIRST GF )@@G@@8 OUTPUT VARIABLES USED ON ABOVE ^, @#@]@@ 1 ^LINE^/) @#@]@@ GG )@@G@@GO TO 3900 @[@]@@C @#@]@@C WIDTH CARD @[@]@@C @]@]@@ 4000 GH )@@G@@IFLD=1@#@]@@ 4010 IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD).NE.1) GGI )@@G@@O TO 6000 @ @]@@ 4020 ANAM=VALUE(IFIELD+IFLD) @A@]@@ IF (ANAM.NE.GJ )@@G@@AIN) GO TO 4040 @#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(ICODE+IGK )@@G@@FLD)) 6000,4030,4020 @A@]@@ 4030 IWIDTH=VALUE(IFIELD+IFLD) @B@]@@GL )@@G@@ IWIDTH=MIN0(MAX0(IWIDTH,10),120) @#@]@@ GO TO 4010 @A@]@@GM )@@G@@ 4040 IF (ANAM.NE.AOUT) GO TO 6000 @#@]@@ IFLD=IFLD+1 @C@]@@ GN )@@G@@IF (NODPLC(ICODE+IFLD)) 6000,4050,4020 @E@]@@ 4050 LWIDTH=AMIN1(AMAX1GO )@@G@@(VALUE(IFIELD+IFLD),72.0),132.0) @#@]@@ GO TO 4010 @[@]@@C GP )@@G@@@#@]@@C DEBUG STATEMENT@[@]@@C @]@]@@ 5900 IFLD=1@#@]@@ 5910 IFLD=IGQ )@@G@@FLD+1 @C@]@@ IF (NODPLC(ICODE+IFLD)) 6000,5920,5910 @ @]@@ 5920 GR )@@G@@INDEX=VALUE(IFIELD+IFLD)@#@]@@ IFLD=IFLD+1 @C@]@@ IF (NODPLC(IGS )@@G@@CODE+IFLD)) 6000,5930,5910 @ @]@@ 5930 IVAL=VALUE(IFIELD+IFLD) @A@]@@GT )@@G@@ IF (INDEX.LT.1) GO TO 5910 @A@]@@ IF (INDEX.GT.20) GO TO 5GU )@@G@@910 @A@]@@ WRITE (6,5931) INDEX,IVAL @F@]@@ 5931 FORMAT(^ *DEGV )@@G@@BUG*: RUNCON - IDEBUG(^,I2,^) SET TO ^,I10) @^@]@@ IDEBUG(INDEXGW )@@G@@)=IVAL@#@]@@ GO TO 5910 @[@]@@C @]@]@@C FINISHED @[@]@@C GX )@@G@@@]@]@@ 6000 RETURN@]@]@@ END @C@]@@ SUBROUTINE OUTDEF(IFLD,MGY )@@G@@ODE,LOCT,LTYPE) @[@]@@C @G@]@@C THIS ROUTINE CONSTRUCTS THE INGZ )@@G@@TERNAL LIST ELEMENT FOR AN OUTPUT @B@]@@C VARIABLE DEFINED ON SOME INPHA )@@G@@UT CARD. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTHB )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIHC )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,HD )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEHE )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LHF )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUHG )@@G@@TPT,LPOL,LZER @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTNHH )@@G@@,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4HI )@@G@@,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ HJ )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE HK )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @#@]@@ INTEGER XOR @A@]@@HL )@@G@@ DIMENSION AOUT(19),AOPTS(5) @F@]@@ DATA AOUT / 4HV , 4HVMHM )@@G@@ , 4HVR , 4HVI , 4HVP , 4HVDB , @F@]@@ 1 4HI , 4HIMHN )@@G@@ , 4HIR , 4HII , 4HIP , 4HIDB , @F@]@@ 2 4HONOI, 4HINHO )@@G@@OI, 4HHD2 , 4HHD3 , 4HDIM2, 4HSIM2, @ @]@@ 3 4HDIM3 / HP )@@G@@@C@]@@ DATA AOPTS / 1HM, 1HR, 1HI, 1HP, 1HD / @F@]@@ DATA AHQ )@@G@@LPRN, ACOMMA, ABLNK, ALETV / 1H(, 1H,, 1H , 1HV / @[@]@@C @C@]@@HR )@@G@@ IF (NODPLC(ICODE+IFLD).NE.1) GO TO 300 @ @]@@ ANAM=VALUE(IHS )@@G@@FIELD+IFLD) @A@]@@ CALL MOVE(ANAM,5,ABLNK,1,4) @#@]@@ DO 10 HT )@@G@@I=1,19@B@]@@ IF (XOR(ANAM,AOUT(I)).NE.0) GO TO 10@#@]@@ IDOUT=HU )@@G@@I @#@]@@ GO TO 20 @#@]@@ 10 CONTINUE @#@]@@ GO TO HV )@@G@@300 @[@]@@C @ @]@@C FURTHER ERROR CHECKING @[@]@@C @ @]@@HW )@@G@@ 20 IF (MODE.GE.3) GO TO 25 @#@]@@C... DC OR TRAN @D@]@@ IF ((IHX )@@G@@DOUT.NE.1).AND.(IDOUT.NE.7)) GO TO 300 @#@]@@ GO TO 38 @ @]@@HY )@@G@@ 25 IF (MODE.GE.4) GO TO 30 @]@]@@C... AC @A@]@@ IF (IDOUT.GEHZ )@@G@@.13) GO TO 300 @#@]@@ GO TO 38 @ @]@@ 30 IF (MODE.EQ.5) GO IA )@@G@@TO 35 @]@]@@C... NOISE @D@]@@ IF ((IDOUT.NE.13).AND.(IDOUT.NE.14))IB )@@G@@ GO TO 300 @#@]@@ GO TO 38 @#@]@@C... DISTORTION @A@]@@ 35 IC )@@G@@IF (IDOUT.LT.15) GO TO 300 @#@]@@ 38 KTYPE=0 @#@]@@ LTYPE=ID )@@G@@IDOUT @ @]@@ IF (IDOUT.LT.7) GO TO 40@#@]@@ KTYPE=1 @^@]@@IE )@@G@@ LTYPE=LTYPE-6 @A@]@@ IF (IDOUT.LT.13) GO TO 40 @^@]@@IF )@@G@@ KTYPE=IDOUT-11 @#@]@@ LTYPE=1 @[@]@@C @#@]@@C VOLIG )@@G@@TAGE OUTPUT @[@]@@C @#@]@@ 40 ID=40+MODE @A@]@@ IF (KTYPE.NEIH )@@G@@.0) GO TO 100 @C@]@@ IF (NODPLC(ICODE+IFLD+1).NE.0) GO TO 300 II )@@G@@@#@]@@ IFLD=IFLD+1 @ @]@@ N1=VALUE(IFIELD+IFLD) @ @]@@ IJ )@@G@@IF (N1.LT.0) GO TO 300 @]@]@@ N2=0 @A@]@@ ADELIM=VALUE(IDELIIK )@@G@@M+IFLD) @A@]@@ IF (ADELIM.EQ.ACOMMA) GO TO 45@A@]@@ IF (ADIL )@@G@@ELIM.NE.ABLNK) GO TO 50 @C@]@@ 45 IF (NODPLC(ICODE+IFLD+1).NE.0) GO TOIM )@@G@@ 300 @#@]@@ IFLD=IFLD+1 @ @]@@ N2=VALUE(IFIELD+IFLD) @ @]@@IN )@@G@@ IF (N2.LT.0) GO TO 300 @#@]@@ 50 OUTNAM=0.0 @B@]@@ CALL MIO )@@G@@OVE(OUTNAM,1,N1*10000B,5,4) @B@]@@ CALL MOVE(OUTNAM,5,N2*10000B,5IP )@@G@@,4) @A@]@@ CALL FIND(OUTNAM,ID,LOCT,0) @^@]@@ NODPLC(LOCT+IQ )@@G@@2)=N1 @^@]@@ NODPLC(LOCT+3)=N2 @#@]@@ GO TO 400 @[@]@@C IR )@@G@@@#@]@@C CURRENT OUTPUT @[@]@@C @A@]@@ 100 IF (KTYPE.NE.1) GO TO 20IS )@@G@@0 @C@]@@ IF (NODPLC(ICODE+IFLD+1).NE.1) GO TO 300 @#@]@@ IT )@@G@@IFLD=IFLD+1 @ @]@@ AVSRC=VALUE(IFIELD+IFLD)@#@]@@ ACHEK=AVSRC IU )@@G@@@A@]@@ CALL MOVE(ACHEK,2,ABLNK,1,7) @A@]@@ IF (ACHEK.NE.ALETVIV )@@G@@) GO TO 300 @A@]@@ CALL FIND(AVSRC,ID,LOCT,0) @B@]@@ CALL FIW )@@G@@IND(AVSRC,9,NODPLC(LOCT+2),0) @^@]@@ NODPLC(LOCT+5)=1 @#@]@@ IX )@@G@@GO TO 400 @[@]@@C @ @]@@C NOISE OR DISTORTION OUTPUTS@[@]@@C IY )@@G@@@]@]@@ 200 ID=44 @ @]@@ IF (KTYPE.GE.4) ID=ID+1 @C@]@@ IF (VAIZ )@@G@@LUE(IDELIM+IFLD).NE.ALPRN) GO TO 220@C@]@@ IF (NODPLC(ICODE+IFLD+1)JA )@@G@@.NE.1) GO TO 300 @#@]@@ IFLD=IFLD+1 @ @]@@ ATYPE=VALUE(IFIELDJB )@@G@@+IFLD)@A@]@@ CALL MOVE(ATYPE,2,ABLNK,1,7) @#@]@@ DO 210 I=1,5JC )@@G@@@B@]@@ IF (ATYPE.NE.AOPTS(I)) GO TO 210 @#@]@@ LTYPE=I+1 JD )@@G@@@#@]@@ GO TO 220 @#@]@@ 210 CONTINUE @#@]@@ GO TO 300 JE )@@G@@@A@]@@ 220 CALL FIND(ANAM,ID,LOCT,0) @^@]@@ NODPLC(LOCT+2)=0 JF )@@G@@@ @]@@ NODPLC(LOCT+5)=KTYPE @#@]@@ GO TO 400 @[@]@@C JG )@@G@@@]@]@@C ERRORS @[@]@@C @#@]@@ 300 IGOOF=1 @[@]@@C @]@]@@JH )@@G@@C FINISHED @[@]@@C @]@]@@ 400 RETURN@]@]@@ END @^@]@@ JI )@@G@@SUBROUTINE CARD @[@]@@C @G@]@@C THIS ROUTINE SCANS THE INPUT LJJ )@@G@@INES, STORING EACH FIELD INTO THE @G@]@@C TABLES IFIELD, IDELIM, ICOLUJK )@@G@@M, AND ICODE. WITH THE EXCEPTION OF THE @G@]@@C ^.END^ LINE, CARD ALWAJL )@@G@@YS READS THE NEXT LINE TO CHECK FOR A POSSIBLE @A@]@@C CONTINUATION BEFJM )@@G@@ORE IT EXITS. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,JN )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOJO )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NJP )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISJQ )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0JR )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5JS )@@G@@ LOUTPT,LPOL,LZER @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATEJT )@@G@@,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @E@]@@ JU )@@G@@COMMON /LINE/ ACHAR,AFIELD(15),OLDLIN(15),KNTRC,KNTLIM@G@]@@ COMMONJV )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1JW )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ JX )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@JY )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@JZ )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ KA )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))KB )@@G@@@[@]@@C @ @]@@ DIMENSION ADIGIT(10) @F@]@@ DATA ADIGIT KC )@@G@@/ 1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9 / @G@]@@ DATA ABLNK,AKD )@@G@@PER,APLUS,AMINUS,ASTK / 1H , 1H., 1H+, 1H-, 1H* / @F@]@@ DATA AKE )@@G@@G,AK,AU,AN,AP,AE,AM / 1HG,1HK,1HU,1HN,1HP,1HE,1HM / @ @]@@ DATA AKF )@@G@@F, AI / 1HF, 1HI /@A@]@@ DATA ALPRN, ARPRN / 1H(, 1H) /@ @]@@ KG )@@G@@DATA AEND / 4H.END / @[@]@@C @G@]@@C NOTE: THE VALUE OF THEKH )@@G@@ FUNCTION *NXTCHR* (USED EXTENSIVELY IN @ @]@@C THIS ROUTINE) IS AS FOKI )@@G@@LLOWS:@[@]@@C @B@]@@C <0: END-OF-LINE @B@]@@KJ )@@G@@C =0: DELIMITER FOUND @C@]@@C >0:KK )@@G@@ NON-DELIMITER FOUND @[@]@@C @#@]@@ NUMFLD=0 @#@]@@ KL )@@G@@NOFLD=15 @#@]@@ GO TO 20 @[@]@@C @#@]@@C READ NEXT CARD KM )@@G@@@[@]@@C @#@]@@ 10 NOFLD=15 @#@]@@ CALL GETLIN @ @]@@ KN )@@G@@IF (KEOF.EQ.0) GO TO 20 @E@]@@C... ERROR: UNEXPECTED END-OF-FILE CONDIKO )@@G@@TION ON INPUT @]@]@@ 15 KEOF=1@#@]@@ NOFLD=1 @#@]@@ KP )@@G@@NUMFLD=0 @#@]@@ IGOOF=1 @#@]@@ WRITE (6,16)@C@]@@ 16 KQ )@@G@@FORMAT(^0*ERROR*: .END CARD MISSING^/) @#@]@@ GO TO 1000 @[@]@@KR )@@G@@C @A@]@@C ELIMINATE TRAILING BLANKS RAPIDLY@[@]@@C @B@]@@ 20 KS )@@G@@IF (AFIELD(NOFLD).NE.ABLNK) GO TO 40@ @]@@ IF (NOFLD.EQ.1) GO TO 30KT )@@G@@@^@]@@ NOFLD=NOFLD-1 @#@]@@ GO TO 20 @^@]@@C... WRITE KU )@@G@@BLANK CARD @#@]@@ 30 WRITE (6,31)@#@]@@ 31 FORMAT(1X) @#@]@@ KV )@@G@@GO TO 10 @B@]@@C... COPY THE CARD TO OUTPUT LISTING @B@]@@ 40 KW )@@G@@WRITE (6,41) (AFIELD(I),I=1,NOFLD) @^@]@@ 41 FORMAT(1X,15A8) @[@]@@KX )@@G@@C @ @]@@C INITIALIZATION FOR NEW CARD@[@]@@C @#@]@@ 45 KNTRC=KY )@@G@@0 @A@]@@ KNTLIM=MIN0(8*NOFLD,IWIDTH) @[@]@@C @E@]@@C FETKZ )@@G@@CH FIRST NON-DELIMITER (SEE ROUTINE *NXTCHR* FOR LIST)@[@]@@C @ @]@@LA )@@G@@ 50 IF (NXTCHR(0)) 600,50,60@B@]@@C... CHECK FOR COMMENT (LEADING ASTLB )@@G@@ERISK)@A@]@@ 60 IF (ACHAR.EQ.ASTK) GO TO 10 @#@]@@ GO TO 100 LC )@@G@@@[@]@@C @^@]@@C FETCH NEXT CHARACTER @[@]@@C @A@]@@ 70 IF (NXLD )@@G@@TCHR(0)) 600,80,100 @[@]@@C @G@]@@C TWO CONSECUTIVE DELIMITERS LE )@@G@@IMPLY NUMERIC ZERO UNLESS THE DELIMITER @ @]@@C IS A BLANK OR PARENTHLF )@@G@@ESIS. @[@]@@C @A@]@@ 80 IF (ACHAR.EQ.ABLNK) GO TO 70 @A@]@@ LG )@@G@@IF (ACHAR.EQ.ALPRN) GO TO 70 @A@]@@ IF (ACHAR.EQ.ARPRN) GO TO 70 LH )@@G@@@D@]@@C... CHECK FOR SUFFICIENT SPACE IN STORAGE ARRAYS @B@]@@ LI )@@G@@IF (NUMFLD.LT.INSIZE-1) GO TO 90 @ @]@@ CALL EXTMEM(IFIELD,50) LJ )@@G@@@ @]@@ CALL EXTMEM(ICODE,50) @ @]@@ CALL EXTMEM(IDELIM,50) LK )@@G@@@ @]@@ CALL EXTMEM(ICOLUM,50) @^@]@@ INSIZE=INSIZE+50 @^@]@@LL )@@G@@ 90 NUMFLD=NUMFLD+1 @ @]@@ VALUE(IFIELD+NUMFLD)=0.0@ @]@@ LM )@@G@@NODPLC(ICODE+NUMFLD)=0 @A@]@@ VALUE(IDELIM+NUMFLD)=ACHAR @A@]@@LN )@@G@@ NODPLC(ICOLUM+NUMFLD)=KNTRC @#@]@@ GO TO 70 @[@]@@C LO )@@G@@@C@]@@C CHECK FOR SUFFICIENT SPACE IN STORAGE ARRAYS @[@]@@C @B@]@@LP )@@G@@ 100 IF (NUMFLD.LT.INSIZE-1) GO TO 110 @ @]@@ CALL EXTMEM(IFIELDLQ )@@G@@,50) @ @]@@ CALL EXTMEM(ICODE,50) @ @]@@ CALL EXTMEM(IDELIMLR )@@G@@,50) @ @]@@ CALL EXTMEM(ICOLUM,50) @^@]@@ INSIZE=INSIZE+50 LS )@@G@@@[@]@@C @ @]@@C BEGIN SCAN OF NEXT FIELD @[@]@@C @^@]@@C... LT )@@G@@INITIALIZATION @#@]@@ 110 JDELIM=0 @#@]@@ XSIGN=1.0 @#@]@@LU )@@G@@ XMANT=0.0 @]@]@@ IDEC=0@]@]@@ IEXP=0@B@]@@C... CHECK LV )@@G@@FOR LEADING PLUS OR MINUS SIGN@A@]@@ IF (ACHAR.EQ.APLUS) GO TO 210 LW )@@G@@@A@]@@ IF (ACHAR.EQ.AMINUS) GO TO 200@ @]@@C... FINISH INITIALIZATLX )@@G@@ION @#@]@@ ANAM=ABLNK @]@]@@ KCHR=1@G@]@@C... AN ISOLATED LY )@@G@@PERIOD INDICATES THAT A CONTINUATION CARD FOLLOWS @A@]@@ IF (ACLZ )@@G@@HAR.NE.APER) GO TO 120 @E@]@@C... ALTER INITIALIZATION SLIGHTLY IF LEAMA )@@G@@DING PERIOD FOUND @]@]@@ IDEC=1@#@]@@ IEXP=-1 @#@]@@ MB )@@G@@ANAM=APER @]@]@@ KCHR=2@C@]@@C... NOW TAKE A LOOK AT THE NEXT CHMC )@@G@@ARACTER @ @]@@ IF (NXTCHR(0)) 10,10,120@[@]@@C @ @]@@C TESMD )@@G@@T FOR NUMBER (ANY DIGIT)@[@]@@C @^@]@@ 120 DO 130 I=1,10 @B@]@@ME )@@G@@ IF (ACHAR.NE.ADIGIT(I)) GO TO 130 @^@]@@ XMANT=FLOAT(I-1) MF )@@G@@@#@]@@ GO TO 210 @#@]@@ 130 CONTINUE @[@]@@C @#@]@@C ASSMG )@@G@@EMBLE NAME @[@]@@C @^@]@@ NUMFLD=NUMFLD+1 @A@]@@ CALL MMH )@@G@@OVE(ANAM,KCHR,ACHAR,1,1)@#@]@@ KCHR=KCHR+1 @^@]@@ DO 150 I=KCHMI )@@G@@R,8 @A@]@@ IF (NXTCHR(0)) 160,160,140 @A@]@@ 140 CALL MOVE(ANMJ )@@G@@AM,I,ACHAR,1,1) @#@]@@ 150 CONTINUE @#@]@@ GO TO 170 @#@]@@MK )@@G@@ 160 JDELIM=1 @A@]@@ 170 VALUE(IFIELD+NUMFLD)=ANAM @ @]@@ ML )@@G@@NODPLC(ICODE+NUMFLD)=1 @A@]@@ NODPLC(ICOLUM+NUMFLD)=KNTRC @E@]@@MM )@@G@@C... NO ^+^ FORMAT CONTINUATION POSSIBLE FOR .END CARD @A@]@@ MN )@@G@@IF (NUMFLD.GE.2) GO TO 400 @A@]@@ IF (ANAM.NE.AEND) GO TO 400 MO )@@G@@@A@]@@ NODPLC(ICODE+NUMFLD+1)=-1 @#@]@@ GO TO 1000 @[@]@@MP )@@G@@C @#@]@@C PROCESS NUMBER @[@]@@C @B@]@@C... TAKE NOTE OF LEADIMQ )@@G@@NG MINUS SIGN @#@]@@ 200 XSIGN=-1.0 @B@]@@C... TAKE A LOOK AT THEMR )@@G@@ NEXT CHARACTER @A@]@@ 210 IF (NXTCHR(0)) 335,335,220 @^@]@@C... MS )@@G@@TEST FOR DIGIT @^@]@@ 220 DO 230 I=1,10 @B@]@@ IF (ACHAR.NEMT )@@G@@.ADIGIT(I)) GO TO 230 @A@]@@ XMANT=XMANT*10.0+FLOAT(I-1) @ @]@@MU )@@G@@ IF (IDEC.EQ.0) GO TO 210@#@]@@ IEXP=IEXP-1 @#@]@@ GO TO MV )@@G@@210 @#@]@@ 230 CONTINUE @[@]@@C @ @]@@C CHECK FOR DECIMAL POIMW )@@G@@NT @[@]@@C @A@]@@ IF (ACHAR.NE.APER) GO TO 240 @D@]@@C... MX )@@G@@MAKE CERTAIN THAT THIS IS THE FIRST ONE FOUND @ @]@@ IF (IDEC.NE.MY )@@G@@0) GO TO 500@]@]@@ IDEC=1@#@]@@ GO TO 210 @[@]@@C @^@]@@MZ )@@G@@C TEST FOR EXPONENT @[@]@@C @A@]@@ 240 IF (ACHAR.NE.AE) GO TO 3NA )@@G@@00 @A@]@@ IF (NXTCHR(0)) 335,335,250 @#@]@@ 250 ITEMP=0 NB )@@G@@@#@]@@ ISIGN=1 @D@]@@C... CHECK FOR POSSIBLE LEADING SIGN ON ENC )@@G@@XPONENT @A@]@@ IF (ACHAR.EQ.APLUS) GO TO 260 @A@]@@ IF (ACND )@@G@@HAR.NE.AMINUS) GO TO 270@#@]@@ ISIGN=-1 @A@]@@ 260 IF (NXTCHR(0NE )@@G@@)) 285,285,270 @^@]@@C... TEST FOR DIGIT @^@]@@ 270 DO 280 I=1,1NF )@@G@@0 @B@]@@ IF (ACHAR.NE.ADIGIT(I)) GO TO 280 @^@]@@ ITEMP=NG )@@G@@ITEMP*10+I-1@#@]@@ GO TO 260 @#@]@@ 280 CONTINUE @#@]@@ NH )@@G@@GO TO 290 @#@]@@ 285 JDELIM=1 @A@]@@C... CORRECT INTERNAL EXPONENNI )@@G@@T @ @]@@ 290 IEXP=IEXP+ISIGN*ITEMP @#@]@@ GO TO 340 @[@]@@NJ )@@G@@C @^@]@@C TEST FOR SCALE FACTOR@[@]@@C @A@]@@ 300 IF (ACHAR.NENK )@@G@@.AM) GO TO 330 @E@]@@C... SPECIAL CHECK FOR *ME* (AS DISTINGUISHED FNL )@@G@@ROM *M*) @A@]@@ IF (NXTCHR(0)) 320,320,310 @A@]@@ 310 IF (ACNM )@@G@@HAR.NE.AE) GO TO 315 @#@]@@ IEXP=IEXP+6 @#@]@@ GO TO 340 NN )@@G@@@A@]@@ 315 IF (ACHAR.NE.AI) GO TO 325 @ @]@@ XMANT=XMANT*25.4E-NO )@@G@@4 @#@]@@ GO TO 340 @#@]@@ 320 JDELIM=1 @#@]@@ 325 IEXP=INP )@@G@@EXP-3 @#@]@@ GO TO 340 @A@]@@ 330 IF (ACHAR.EQ.AG) IEXP=IEXP+9 NQ )@@G@@@A@]@@ IF (ACHAR.EQ.AK) IEXP=IEXP+3 @A@]@@ IF (ACHAR.EQ.AU) INR )@@G@@EXP=IEXP-6 @A@]@@ IF (ACHAR.EQ.AN) IEXP=IEXP-9 @A@]@@ IF (ACNS )@@G@@HAR.EQ.AP) IEXP=IEXP-12 @A@]@@ IF (ACHAR.EQ.AF) IEXP=IEXP-15 @#@]@@NT )@@G@@ GO TO 340 @#@]@@ 335 JDELIM=1 @[@]@@C @ @]@@C ASSEMBLE NU )@@G@@THE FINAL NUMBER @[@]@@C @A@]@@ 340 IF (XMANT.EQ.0.0) GO TO 350 NV )@@G@@@ @]@@ IF (IEXP.EQ.0) GO TO 350@B@]@@ IF (IABS(IEXP).GE.201) GNW )@@G@@O TO 500 @B@]@@ XMANT=XMANT*EXP(FLOAT(IEXP)*XLOG10) @B@]@@ NX )@@G@@IF (XMANT.GT.1.0E+200) GO TO 500 @B@]@@ IF (XMANT.LT.1.0E-200) GNY )@@G@@O TO 500 @^@]@@ 350 NUMFLD=NUMFLD+1 @C@]@@ VALUE(IFIELD+NUMFLNZ )@@G@@D)=SIGN(XMANT,XSIGN) @ @]@@ NODPLC(ICODE+NUMFLD)=0 @A@]@@ OA )@@G@@NODPLC(ICOLUM+NUMFLD)=KNTRC @[@]@@C @C@]@@C SKIP TO NON-BLANK DELOB )@@G@@IMITER (IF NECESSARY) @[@]@@C @A@]@@ 400 IF (JDELIM.EQ.0) GO TO 4OC )@@G@@40 @A@]@@ 410 VALUE(IDELIM+NUMFLD)=ACHAR @A@]@@ IF (ACHAR.NEOD )@@G@@.ABLNK) GO TO 70 @A@]@@ IF (NXTCHR(0)) 450,410,420 @^@]@@ 420 OE )@@G@@KNTRC=KNTRC-1 @#@]@@ GO TO 70 @A@]@@ 440 IF (NXTCHR(0)) 450OF )@@G@@,410,440 @A@]@@ 450 VALUE(IDELIM+NUMFLD)=ACHAR @#@]@@ GO TO OG )@@G@@600 @[@]@@C @]@]@@C ERRORS @[@]@@C @ @]@@ 500 WRITE (6,501OH )@@G@@) KNTRC @G@]@@ 501 FORMAT(^0*ERROR*: ILLEGAL NUMBER -- SCAN STOPPEOI )@@G@@D AT COLUMN ^,I3/)@#@]@@ IGOOF=1 @^@]@@ NUMFLD=NUMFLD+1 OJ )@@G@@@ @]@@ VALUE(IFIELD+NUMFLD)=0.0@ @]@@ NODPLC(ICODE+NUMFLD)=0 OK )@@G@@@A@]@@ VALUE(IDELIM+NUMFLD)=ACHAR @A@]@@ NODPLC(ICOLUM+NUMFOL )@@G@@LD)=KNTRC @[@]@@C @]@]@@C FINISHED @[@]@@C @A@]@@ 600 NODPLCOM )@@G@@(ICODE+NUMFLD+1)=-1 @[@]@@C @C@]@@C CHECK NEXT LINE FOR POSSIBLON )@@G@@E CONTINUATION @[@]@@C @#@]@@ 610 CALL GETLIN @ @]@@ IF (KEOO )@@G@@OF.EQ.1) GO TO 15 @F@]@@C... CONTINUATION DENOTED BY ^+^ IN COLUMN 1 OFOP )@@G@@ FOLLOWING CARD @A@]@@ CALL MOVE(ACHAR,1,AFIELD,1,1) @#@]@@ OQ )@@G@@NOFLD=15 @C@]@@ 620 IF (AFIELD(NOFLD).NE.ABLNK) GO TO 630 @A@]@@OR )@@G@@ IF (NOFLD.EQ.1) GO TO 650 @^@]@@ NOFLD=NOFLD-1 @#@]@@OS )@@G@@ GO TO 620 @A@]@@ 630 IF (ACHAR.NE.APLUS) GO TO 640 @B@]@@ OT )@@G@@WRITE (6,41) (AFIELD(I),I=1,NOFLD) @#@]@@ KNTRC=1 @A@]@@ OU )@@G@@KNTLIM=MIN0(8*NOFLD,IWIDTH) @#@]@@ GO TO 70 @A@]@@ 640 IF (ACOV )@@G@@HAR.NE.ASTK) GO TO 1000 @B@]@@ 650 WRITE (6,41) (AFIELD(I),I=1,NOFLD) OW )@@G@@@#@]@@ GO TO 610 @]@]@@ 1000 RETURN@]@]@@ END @^@]@@ OX )@@G@@SUBROUTINE GETLIN @[@]@@C @G@]@@C THIS ROUTINE READS THE NEXT LIOY )@@G@@NE OF INPUT INTO THE ARRAY AFIELD. @E@]@@C IF END-OF-FILE IS FOUND, THEOZ )@@G@@ VARIABLE KEOF IS SET TO 1. @[@]@@C @E@]@@ COMMON /LINE/ ACHAPA )@@G@@R,AFIELD(15),OLDLIN(15),KNTRC,KNTLIM@G@]@@ COMMON /FLAGS/ IPRNTA,IPPB )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,IPC )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @[@]@@C @[@]@@C @A@]@@PD )@@G@@ CALL COPY8(AFIELD,OLDLIN,15) @^@]@@ READ (5,6) AFIELD @#@]@@PE )@@G@@ 6 FORMAT(15A8)@ @]@@ IF (EOF(5)) 10,100,10 @]@]@@ 10 KEOF=1PF )@@G@@@]@]@@ 100 RETURN@]@]@@ END @^@]@@ IDENT NXTCHR @^@]@@PG )@@G@@ ENTRY NXTCHR @G@]@@ TITLE DETERMINE TYPE OF NEXT CHPH )@@G@@ARACTER IN CURRENT INPUT LINE @C@]@@ TITLE EQUIVALENT FORTRAN PI )@@G@@DECK LISTING@#@]@@ LIST F@B@]@@FORTRAN IFC NE,*FORTRAN*FPJ )@@G@@ORTRAN* @@@]@@@ @]@@ FUNCTION NXTCHR(INT) @[@]@@C @G@]@@PK )@@G@@C THIS ROUTINE ADVANCES THE CURRENT LINE SCAN POSITION BY ONE COLUMNPL )@@G@@@F@]@@C AND CHECKS WHETHER OR NOT THE NEXT CHARACTER IS A DELIMITER. PM )@@G@@@[@]@@C @E@]@@ COMMON /LINE/ ACHAR,AFIELD(15),OLDLIN(15),KNTRC,PN )@@G@@KNTLIM@[@]@@C @ @]@@ DIMENSION ADELIM(5) @C@]@@ DATA APO )@@G@@DELIM / 1H , 1H,, 1H=, 1H(, 1H) / @^@]@@ DATA ABLNK / 1H /@[@]@@PP )@@G@@C @^@]@@ KNTRC=KNTRC+1 @A@]@@ IF (KNTRC.GT.KNTLIM) GO PQ )@@G@@TO 30 @B@]@@ CALL MOVE(ACHAR,1,AFIELD,KNTRC,1) @#@]@@ DO 10 PR )@@G@@I=1,5 @B@]@@ IF (ACHAR.EQ.ADELIM(I)) GO TO 20 @#@]@@ 10 CONTINPS )@@G@@UE @[@]@@C @#@]@@C NON-DELIMITER @[@]@@C @#@]@@ NXTCHRPT )@@G@@=1 @]@]@@ RETURN@[@]@@C @]@]@@C DELIMITER@[@]@@C @#@]@@PU )@@G@@ 20 NXTCHR=0 @]@]@@ RETURN@[@]@@C @#@]@@C END-OF-LINE PV )@@G@@@[@]@@C @#@]@@ 30 NXTCHR=-1 @#@]@@ ACHAR=ABLNK @]@]@@ PW )@@G@@RETURN@]@]@@* END @@@]@@@#@]@@FORTRAN ENDIF @^@]@@ LIPX )@@G@@ST -F @D@]@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISTERS PY )@@G@@@D@]@@COMPILER MICRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@]@@SYSTEMPZ )@@G@@ SPACE 4@G@]@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATING SYSTEQA )@@G@@M IS NOT SCOPE @E@]@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTO FOR QB )@@G@@CALIDOSCOPE @#@]@@RUN SPACE 4@A@]@@RUN IFC EQ,*^COMPILERQC )@@G@@^*RUN*@^@]@@ASMARG OPSYN NIL @#@]@@RUN ENDIF @#@]@@FTN QD )@@G@@ SPACE 4@A@]@@FTN IFC EQ,*^COMPILER^*FTN*@#@]@@ASMARG MAQE )@@G@@CRO N@^@]@@ LOCAL CNT @^@]@@ SB1 X1 @^@]@@QF )@@G@@ASMARG IFGT N,1 @#@]@@CNT SET 1@#@]@@ SB7 1QG )@@G@@@^@]@@ASMARG DUP N-1 @^@]@@CNT SET CNT+1 @^@]@@ QH )@@G@@ SA1 A1+B7 @^@]@@ SB.CNT X1 @#@]@@ASMARG ENDD QI )@@G@@@#@]@@ASMARG ENDIF @#@]@@ASMARG ENDM @#@]@@FTN ENDIF QJ )@@G@@@D@]@@ TITLE DECLARATIONS AND LOCAL VARIABLES @^@]@@ QK )@@G@@ USE /LINE/ @#@]@@ SPACE 1@E@]@@ACHAR BSS 1 QL )@@G@@ NEXT CHARACTER, IN 1H FORMAT @F@]@@AFIELD BSS 15 CQM )@@G@@URRENT INPUT LINE, IN A8 FORMAT @C@]@@OLDLIN BSS 15 PQN )@@G@@REVIOUS INPUT LINE@C@]@@KNTRC BSS 1 CARD COLUMN COUNTERQO )@@G@@@G@]@@KNTLIM BSS 1 LAST CHARACTER POSITION WORTH LOOKINGQP )@@G@@ AT @#@]@@ SPACE 1@#@]@@ USE 0@#@]@@ SPQQ )@@G@@ACE 5@C@]@@BITFLG VFD 60/1S41+1S42+1S44+1S45+1S46 @E@]@@* QR )@@G@@ BIT FLAG FOR CHARACTERS ()= , @A@]@@ TIQS )@@G@@TLE THE REAL THING @E@]@@EOL SA1 =1H SET ACHAR TO QT )@@G@@* * ON END-OF-LINE@ @]@@ BX7 X1 .@ @]@@ SAQU )@@G@@7 ACHAR .@#@]@@ SPACE 1@B@]@@NXTCHR BSS 1 QV )@@G@@ ENTRY/EXIT @#@]@@ SPACE 1@C@]@@ SB7 1 QW )@@G@@ USEFUL CONSTANT @#@]@@ SPACE 1@C@]@@ SA1 KQX )@@G@@NTRC INCREMENT KNTRC @ @]@@ SX7 X1+B7 .@A@]@@QY )@@G@@ SA7 A1 . DONE@#@]@@ SPACE 1@B@]@@ QZ )@@G@@ SA2 A1+B7 FETCH KNTLIM @D@]@@ IX6 X2-X7 CRA )@@G@@OMPUTE KNTLIM-KNTRC @F@]@@ NG X6,EOL EXIT IF RESULRB )@@G@@T<0 (END-OF-LINE FOUND) @#@]@@ SPACE 1@A@]@@RUN IFC ERC )@@G@@Q,*^COMPILER^*RUN*@F@]@@ SB1 ACHAR CALL MOVE(ACHAR,1,ARD )@@G@@FIELD,KNTRC,1) @ @]@@ SB2 =1 .@ @]@@ SBRE )@@G@@3 AFIELD .@ @]@@ SB4 A1+0 .@ @]@@ SBRF )@@G@@5 B2+0 .@A@]@@ RJ =XMOVE . DONE@#@]@@RUN RG )@@G@@ ENDIF @#@]@@ SPACE 1@A@]@@FTN IFC EQ,*^COMPILERRH )@@G@@^*FTN*@F@]@@ SA1 ARGLST CALL MOVE(ACHAR,1,AFIELD,KNTRC,RI )@@G@@1) @ @]@@ RJ =XMOVE .@#@]@@ SPACE 4@^@]@@RJ )@@G@@ USE ARGLST @B@]@@ARGLST VFD 60/ACHAR ARGUMENT LISTRK )@@G@@@ @]@@ VFD 60/=1 .@ @]@@ VFD 60/AFIELD .RL )@@G@@@ @]@@ VFD 60/KNTRC .@ @]@@ VFD 60/=1 .RM )@@G@@@ @]@@ VFD 60/0 .@#@]@@ USE *@#@]@@ RN )@@G@@ SPACE 4@#@]@@FTN ENDIF @#@]@@ SPACE 1@E@]@@ RO )@@G@@ SA1 ACHAR GET THE NEXT CHARACTER INTO B1 @D@]@@ MXRP )@@G@@0 6 . ONE-CHARACTER MASK @D@]@@ BX1 X0*X1 RQ )@@G@@ . ISOLATE THE CHARACTER @E@]@@ LX1 6 . MOVERR )@@G@@ TO WORKABLE POSITION @C@]@@ SB1 X1 . DO THE LOARS )@@G@@D @#@]@@ SPACE 1@D@]@@ SA1 BITFLG FETCH TRT )@@G@@HE BIT-FLAG WORD @F@]@@ SX6 1 ASSUME CHARACTER ISRU )@@G@@ NON-DELIMITER @D@]@@ AX1 B1,X1 OH, SWING TO THE RIRV )@@G@@GHT @D@]@@ LX1 59 AND SWING TO THE LEFT @D@]@@RW )@@G@@ PL X1,NXTCHR EXIT -- BIT NOT PRESENT @G@]@@ SXRX )@@G@@6 0 CHARACTER IS A DELIMITER -- RETURN WITH 0 @A@]@@ RY )@@G@@ EQ NXTCHR EXIT @#@]@@ END @#@]@@ OVERLARZ )@@G@@Y(2,0)@^@]@@ PROGRAM ERRCHK @[@]@@C @G@]@@C THIS ROUTINESA )@@G@@ DRIVES THE PRE-PROCESSING AND GENERAL ERROR-CHECKING @ @]@@C OF INPUT PSB )@@G@@ERFORMED BY SPICE.@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,SC )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOSD )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NSE )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISSF )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0SG )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5SH )@@G@@ LOUTPT,LPOL,LZER @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATESI )@@G@@,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ SJ )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@SK )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATSL )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODSM )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITESN )@@G@@MNO,NOSOLV,MODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTNSO )@@G@@,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4SP )@@G@@,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,RSQ )@@G@@OOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRSR )@@G@@TOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINSS )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@ST )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, SU )@@G@@@F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, SV )@@G@@@F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), SW )@@G@@@#@]@@ 3 IPIMAT(4)@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELSX )@@G@@MAX,TDMAX,FORFRE,JTRFLG @G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSY )@@G@@START,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTRSZ )@@G@@,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPTA )@@G@@LC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NOTB )@@G@@DPLC(1),CVALUE(1))@[@]@@C @[@]@@C @ @]@@ DIMENSION TITLOP(4TC )@@G@@) @A@]@@ DIMENSION NNODS(50),ANAME(2) @A@]@@ DATA ANAME /TD )@@G@@ 4HTRAP, 4HGEAR / @G@]@@ DATA TITLOP / 8HOPTION S, 8HUMMARY , 8H TE )@@G@@ , 8H / @ @]@@ DATA NDEFIN / 2H.U / @C@]@@ TF )@@G@@DATA NNODS / 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,@C@]@@ 1 2, 3,TG )@@G@@ 3, 4, 0, 0, 4, 0, 1, 0,@C@]@@ 2 0, 0, 0, 0, 0, 0, 0, 0,TH )@@G@@ 0, 0,@C@]@@ 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,@D@]@@ 4TI )@@G@@ 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 / @E@]@@ DATA AELMT,ATJ )@@G@@MODEL,AOUTPT /7HELEMENT,5HMODEL,6HOUTPUT/ @D@]@@ DATA ALSDC,ALSTR,ATK )@@G@@LSAC / 2HDC, 4HTRAN, 2HAC / @[@]@@C @[@]@@C @^@]@@ CALL STL )@@G@@ECOND(T1) @^@]@@ DO 60 ID=1,50 @^@]@@ LOC=LOCATE(ID) TM )@@G@@@ @]@@ 10 IF (LOC.EQ.0) GO TO 60 @C@]@@ IF (NODPLC(LOC+2).NE.NDETN )@@G@@FIN) GO TO 50 @]@]@@ NOGO=1@^@]@@ LOCV=NODPLC(LOC+1)@ @]@@TO )@@G@@ IF (ID.GE.21) GO TO 20 @#@]@@ ANAM=AELMT @#@]@@ GO TO TP )@@G@@40 @ @]@@ 20 IF (ID.GE.31) GO TO 30 @#@]@@ ANAM=AMODEL @#@]@@TQ )@@G@@ GO TO 40 @#@]@@ 30 ANAM=AOUTPT @A@]@@ 40 WRITE (6,41) ANAM,TR )@@G@@VALUE(LOCV) @G@]@@ 41 FORMAT(^0*ERROR*: ^,2A8,^ HAS BEEN REFERENCED BTS )@@G@@UT NOT DEFINED^/) @^@]@@ 50 LOC=NODPLC(LOC) @#@]@@ GO TO 10 TT )@@G@@@#@]@@ 60 CONTINUE @A@]@@ IF (NOGO.NE.0) GO TO 2000 @[@]@@TU )@@G@@C @D@]@@C CONSTRUCT ORDERED LIST OF USER SPECIFIED NODES @[@]@@TV )@@G@@C @ @]@@ CALL GETMEM(JUNODE,1) @^@]@@ NODPLC(JUNODE+1)=0TW )@@G@@@#@]@@ NUNODS=1 @^@]@@ DO 180 ID=1,50 @A@]@@ IF (NNTX )@@G@@ODS(ID).EQ.0) GO TO 180 @^@]@@ LOC=LOCATE(ID) @ @]@@ 110 IF (LOTY )@@G@@C.EQ.0) GO TO 180 @ @]@@ IF (ID.LE.4) GO TO 120 @ @]@@ IF (IDTZ )@@G@@.LE.8) GO TO 150 @ @]@@ IF (ID.EQ.19) GO TO 165 @ @]@@ IF (IDUA )@@G@@.LE.40) GO TO 120 @ @]@@ IF (ID.LE.43) GO TO 170 @ @]@@ 120 JSTOP=UB )@@G@@LOC+NNODS(ID)-1 @^@]@@ DO 130 J=LOC,JSTOP@ @]@@ CALL PUTNOD(UC )@@G@@NODPLC(J+2))@#@]@@ 130 CONTINUE @#@]@@ GO TO 170 @A@]@@ 150 UD )@@G@@CALL PUTNOD(NODPLC(LOC+2)) @A@]@@ CALL PUTNOD(NODPLC(LOC+3)) UE )@@G@@@ @]@@ IF (ID.GE.7) GO TO 170 @ @]@@ LOCP=NODPLC(LOC+ID+1) UF )@@G@@@ @]@@ NSNOD=2*NODPLC(LOC+4) @^@]@@ 155 DO 160 J=1,NSNOD @A@]@@UG )@@G@@ CALL PUTNOD(NODPLC(LOCP+J)) @#@]@@ 160 CONTINUE @#@]@@ UH )@@G@@GO TO 170 @^@]@@ 165 LOCP=NODPLC(LOC+2)@B@]@@ CALL SIZMEM(NODPLCUI )@@G@@(LOC+2),NSNOD) @#@]@@ GO TO 155 @^@]@@ 170 LOC=NODPLC(LOC) UJ )@@G@@@#@]@@ GO TO 110 @#@]@@ 180 CONTINUE @A@]@@ IF (NOGO.NE.UK )@@G@@0) GO TO 2000 @^@]@@ NCNODS=NUNODS @[@]@@C @^@]@@C ASSUL )@@G@@IGN PROGRAM NODES @[@]@@C @^@]@@ 200 DO 280 ID=1,50 @A@]@@ UM )@@G@@IF (NNODS(ID).EQ.0) GO TO 280 @^@]@@ LOC=LOCATE(ID) @ @]@@ 210 UN )@@G@@IF (LOC.EQ.0) GO TO 280 @ @]@@ IF (ID.LE.4) GO TO 220 @ @]@@ UO )@@G@@IF (ID.LE.8) GO TO 250 @ @]@@ IF (ID.EQ.19) GO TO 265 @ @]@@ UP )@@G@@IF (ID.LE.40) GO TO 220 @ @]@@ IF (ID.LE.43) GO TO 240 @ @]@@ 220 UQ )@@G@@JSTOP=LOC+NNODS(ID)-1 @^@]@@ DO 230 J=LOC,JSTOP@ @]@@ CALL GUR )@@G@@ETNOD(NODPLC(J+2))@#@]@@ 230 CONTINUE @#@]@@ GO TO 270 @B@]@@US )@@G@@ 240 IF (NODPLC(LOC+5).EQ.0) GO TO 220 @#@]@@ GO TO 270 @A@]@@UT )@@G@@ 250 CALL GETNOD(NODPLC(LOC+2)) @A@]@@ CALL GETNOD(NODPLC(LOC+3UU )@@G@@)) @ @]@@ IF (ID.GE.7) GO TO 270 @ @]@@ LOCP=NODPLC(LOC+IDUV )@@G@@+1) @ @]@@ NSNOD=2*NODPLC(LOC+4) @^@]@@ 255 DO 260 J=1,NSNOD UW )@@G@@@A@]@@ CALL GETNOD(NODPLC(LOCP+J)) @#@]@@ 260 CONTINUE @#@]@@UX )@@G@@ GO TO 270 @^@]@@ 265 LOCP=NODPLC(LOC+2)@B@]@@ CALL SIZMEM(UY )@@G@@NODPLC(LOC+2),NSNOD) @#@]@@ GO TO 255 @^@]@@ 270 LOC=NODPLC(LUZ )@@G@@OC) @#@]@@ GO TO 210 @#@]@@ 280 CONTINUE @A@]@@ IF (NOVA )@@G@@GO.NE.0) GO TO 2000 @[@]@@C @ @]@@C EXPAND SUBCIRCUIT CALLS VB )@@G@@@[@]@@C @#@]@@ CALL SUBCKT @A@]@@ IF (NOGO.NE.0) GO TO 200VC )@@G@@0 @A@]@@ IF (NCNODS.GE.2) GO TO 400 @^@]@@ WRITE (6,321VD )@@G@@) @C@]@@ 321 FORMAT(^0*ERROR*: CIRCUIT HAS NO NODES^/)@]@]@@ VE )@@G@@NOGO=1@#@]@@ GO TO 2000 @^@]@@ 400 NUMNOD=NCNODS @[@]@@C VF )@@G@@@ @]@@C LINK UNSATISFIED REFERENCES@[@]@@C @#@]@@ CALL LNKREF VG )@@G@@@A@]@@ IF (NOGO.NE.0) GO TO 2000 @[@]@@C @A@]@@C GENERATE VH )@@G@@SUBCIRCUIT ELEMENT NAMES@[@]@@C @A@]@@ IF (JELCNT(19).EQ.0) GO VI )@@G@@TO 600@^@]@@ DO 520 ID=1,24 @^@]@@ LOC=LOCATE(ID) @ @]@@VJ )@@G@@ 510 IF (LOC.EQ.0) GO TO 520 @^@]@@ CALL SUBNAM(LOC) @^@]@@ VK )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 510 @#@]@@ 520 CONTINUE @[@]@@VL )@@G@@C @#@]@@C PROCESS SOURCES@[@]@@C @A@]@@ 600 IF (JTRFLG.EQ.0) GVM )@@G@@O TO 700 @^@]@@ DO 690 ID=9,10 @^@]@@ LOC=LOCATE(ID) VN )@@G@@@ @]@@ 610 IF (LOC.EQ.0) GO TO 690 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@VO )@@G@@ LOCP=NODPLC(LOC+5)@ @]@@ JTYPE=NODPLC(LOC+4)+1 @C@]@@ VP )@@G@@GO TO (680,620,630,640,650,675), JTYPE @C@]@@ 620 VALUE(LOCP+3)=AMAXVQ )@@G@@1(VALUE(LOCP+3),0.0) @D@]@@ IF (VALUE(LOCP+4).LE.0.0) VALUE(LOCPVR )@@G@@+4)=TSTEP @D@]@@ IF (VALUE(LOCP+5).LE.0.0) VALUE(LOCP+5)=TSTEP VS )@@G@@@D@]@@ IF (VALUE(LOCP+6).LE.0.0) VALUE(LOCP+6)=TSTOP @D@]@@ VT )@@G@@IF (VALUE(LOCP+7).LE.0.0) VALUE(LOCP+7)=TSTOP @D@]@@ TEMP=VALUE(LVU )@@G@@OCP+4)+VALUE(LOCP+5)+VALUE(LOCP+6) @C@]@@ VALUE(LOCP+7)=AMAX1(VALUVV )@@G@@E(LOCP+7),TEMP) @A@]@@ VALUE(LOCV+1)=VALUE(LOCP+1) @#@]@@ VW )@@G@@GO TO 680 @E@]@@ 630 IF (VALUE(LOCP+3).LE.0.0) VALUE(LOCP+3)=1.0/TSTOVX )@@G@@P @C@]@@ DELMAX=AMIN1(DELMAX,0.04/VALUE(LOCP+3)) @C@]@@ VY )@@G@@VALUE(LOCP+4)=AMAX1(VALUE(LOCP+4),0.0) @A@]@@ VALUE(LOCV+1)=VALUVZ )@@G@@E(LOCP+1) @#@]@@ GO TO 680 @C@]@@ 640 VALUE(LOCP+3)=AMAX1(VALUWA )@@G@@E(LOCP+3),0.0) @D@]@@ IF (VALUE(LOCP+4).LE.0.0) VALUE(LOCP+4)=TSWB )@@G@@TEP @C@]@@ DELMAX=AMIN1(DELMAX,0.20/VALUE(LOCP+4)) @B@]@@ WC )@@G@@IF (VALUE(LOCP+5).LE.VALUE(LOCP+3)) @B@]@@ 1 VALUE(LOCP+5)=VALUE(LWD )@@G@@OCP+3)+TSTEP@D@]@@ IF (VALUE(LOCP+6).LE.0.0) VALUE(LOCP+6)=TSTEP WE )@@G@@@C@]@@ DELMAX=AMIN1(DELMAX,0.20/VALUE(LOCP+6)) @A@]@@ VALUE(WF )@@G@@LOCV+1)=VALUE(LOCP+1) @#@]@@ GO TO 680 @E@]@@ 650 VALUE(LOCP+1WG )@@G@@)=AMIN1(AMAX1(VALUE(LOCP+1),0.0),TSTOP) @]@]@@ IKNT=1@B@]@@ WH )@@G@@CALL SIZMEM(NODPLC(LOC+5),NUMP) @ @]@@ 660 TEMP=VALUE(LOCP+IKNT) WI )@@G@@@C@]@@ IF (VALUE(LOCP+IKNT+2).EQ.0.0) GO TO 670 @C@]@@ IF (VAWJ )@@G@@LUE(LOCP+IKNT+2).GE.TSTOP) GO TO 670@C@]@@ IF (VALUE(LOCP+IKNT+2).GWK )@@G@@T.TEMP) GO TO 665 @]@]@@ NOGO=1@A@]@@ WRITE (6,661) VALUE(LOCVWL )@@G@@) @G@]@@ 661 FORMAT(^0*ERROR*: PWL SPECIFICATION FOR INDEPENDENT SWM )@@G@@OURCE ^,A8, @E@]@@ 1 /,11X,^INDICATES A TRANSITION IN <= 0 TIME^,/WN )@@G@@) @#@]@@ GO TO 680 @#@]@@ 665 IKNT=IKNT+2 @A@]@@ IF (IKWO )@@G@@NT.LT.NUMP) GO TO 660 @ @]@@ 670 VALUE(LOCP+IKNT+2)=TSTOP@A@]@@ WP )@@G@@VALUE(LOCV+1)=VALUE(LOCP+2) @C@]@@ CALL RELMEM(NODPLC(LOC+5),NUMPWQ )@@G@@-IKNT-3) @#@]@@ GO TO 680 @E@]@@ 675 IF (VALUE(LOCP+3).LE.0.0WR )@@G@@) VALUE(LOCP+3)=1.0/TSTOP @C@]@@ DELMAX=AMIN1(DELMAX,0.04/VALUEWS )@@G@@(LOCP+3)) @E@]@@ IF (VALUE(LOCP+5).LE.0.0) VALUE(LOCP+5)=1.0/TSTOWT )@@G@@P @C@]@@ DELMAX=AMIN1(DELMAX,0.20/VALUE(LOCP+5)) @A@]@@ WU )@@G@@VALUE(LOCV+1)=VALUE(LOCP+1) @^@]@@ 680 LOC=NODPLC(LOC) @#@]@@ WV )@@G@@GO TO 610 @#@]@@ 690 CONTINUE @[@]@@C @D@]@@C PRINT LISTING OWW )@@G@@F ELEMENTS, PROCESS DEVICE MODELS, @^@]@@C AND CHECK TOPOLOGY @[@]@@WX )@@G@@C @A@]@@ 700 IF (IPRNTL.EQ.0) GO TO 710 @#@]@@ CALL ELPRNT WY )@@G@@@#@]@@ 710 CALL MODCHK @#@]@@ CALL TOPCHK @A@]@@ IF (NOGO.NE.WZ )@@G@@0) GO TO 2000 @[@]@@C @ @]@@C INVERT RESISTANCE VALUES @[@]@@XA )@@G@@C @^@]@@ 800 LOC=LOCATE(1) @ @]@@ 810 IF (LOC.EQ.0) GO TO 900 XB )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@B@]@@ VALUE(LOCV+1)=1.0/VALUE(LOCV+2XC )@@G@@) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 810 @[@]@@C XD )@@G@@@ @]@@C PROCESS MUTUAL INDUCTORS @[@]@@C @^@]@@ 900 LOC=LOCATE(4XE )@@G@@) @ @]@@ 910 IF (LOC.EQ.0) GO TO 1000@^@]@@ LOCV=NODPLC(LOC+1)XF )@@G@@@ @]@@ LPTR1=NODPLC(LOC+2) @ @]@@ LPTR1=NODPLC(LPTR1+1) XG )@@G@@@ @]@@ LPTR2=NODPLC(LOC+3) @ @]@@ LPTR2=NODPLC(LPTR2+1) XH )@@G@@@G@]@@ VALUE(LOCV+1)=VALUE(LOCV+1)*SQRT(VALUE(LPTR1+1)*VALUE(LPTR2+XI )@@G@@1)) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 910 @[@]@@C XJ )@@G@@@C@]@@C LIMIT DELMAX IF TRANSMISSION LINES IN CIRCUIT@[@]@@C @A@]@@XK )@@G@@ 1000 IF (JTRFLG.EQ.0) GO TO 1200 @#@]@@ TDMAX=0.0 @^@]@@ XL )@@G@@LOC=LOCATE(17) @ @]@@ 1010 IF (LOC.EQ.0) GO TO 1200@^@]@@ LOCV=NXM )@@G@@ODPLC(LOC+1)@B@]@@ DELMAX=AMIN1(DELMAX,VALUE(LOCV+2)) @B@]@@ XN )@@G@@TDMAX=AMAX1(TDMAX,VALUE(LOCV+2)) @^@]@@ LOC=NODPLC(LOC) @#@]@@XO )@@G@@ GO TO 1010 @[@]@@C @ @]@@C PROCESS SOURCE PARAMETERS @[@]@@XP )@@G@@C @#@]@@ 1200 NUMBKP=0 @A@]@@ IF (JTRFLG.EQ.0) GO TO 1205 XQ )@@G@@@^@]@@ TOL=0.1*TSTEP @#@]@@ NUMBKP=2 @A@]@@ CALL GXR )@@G@@ETMEM(LSBKPT,NUMBKP) @ @]@@ VALUE(LSBKPT+1)=0.0 @ @]@@ XS )@@G@@VALUE(LSBKPT+2)=TSTOP @^@]@@ 1205 DO 1290 ID=9,10 @^@]@@ LOC=LOXT )@@G@@CATE(ID) @ @]@@ 1210 IF (LOC.EQ.0) GO TO 1290@^@]@@ LOCV=NODPLC(XU )@@G@@LOC+1)@^@]@@ LOCP=NODPLC(LOC+5)@ @]@@ TEMP=VALUE(LOCV+3)/RAD XV )@@G@@@C@]@@ VALUE(LOCV+3)=VALUE(LOCV+2)*SIN(TEMP) @C@]@@ VALUE(XW )@@G@@LOCV+2)=VALUE(LOCV+2)*COS(TEMP) @A@]@@ IF (JTRFLG.EQ.0) GO TO 1XX )@@G@@280 @ @]@@ JTYPE=NODPLC(LOC+4)+1 @D@]@@ GO TO (1280,1220,1XY )@@G@@230,1235,1240,1260), JTYPE @C@]@@ 1220 VALUE(LOCP+4)=VALUE(LOCP+4)+VAXZ )@@G@@LUE(LOCP+3) @^@]@@ TEMP=VALUE(LOCP+5)@C@]@@ VALUE(LOCP+5)=VALUYA )@@G@@E(LOCP+4)+VALUE(LOCP+6) @B@]@@ VALUE(LOCP+6)=VALUE(LOCP+5)+TEMP YB )@@G@@@#@]@@ TIME=0.0 @ @]@@ 1225 CALL EXTMEM(LSBKPT,4) @C@]@@ YC )@@G@@VALUE(LSBKPT+NUMBKP+1)=VALUE(LOCP+3)+TIME @C@]@@ VALUE(LSBKPT+NUMBKYD )@@G@@P+2)=VALUE(LOCP+4)+TIME @C@]@@ VALUE(LSBKPT+NUMBKP+3)=VALUE(LOCP+5)YE )@@G@@+TIME @C@]@@ VALUE(LSBKPT+NUMBKP+4)=VALUE(LOCP+6)+TIME @^@]@@ YF )@@G@@NUMBKP=NUMBKP+4 @ @]@@ TIME=TIME+VALUE(LOCP+7) @A@]@@ IF (TIYG )@@G@@ME.GE.TSTOP) GO TO 1280 @#@]@@ GO TO 1225 @B@]@@ 1230 VALUE(LOCP+3YH )@@G@@)=VALUE(LOCP+3)*TWOPI @ @]@@ CALL EXTMEM(LSBKPT,1) @B@]@@ 1231 YI )@@G@@VALUE(LSBKPT+NUMBKP+1)=VALUE(LOCP+4)@^@]@@ NUMBKP=NUMBKP+1 @#@]@@YJ )@@G@@ GO TO 1280 @ @]@@ 1235 CALL EXTMEM(LSBKPT,2) @B@]@@ VALUE(YK )@@G@@LSBKPT+NUMBKP+1)=VALUE(LOCP+3)@B@]@@ VALUE(LSBKPT+NUMBKP+2)=VALUE(LYL )@@G@@OCP+5)@^@]@@ NUMBKP=NUMBKP+2 @#@]@@ GO TO 1280 @]@]@@ 1240 YM )@@G@@IKNT=1@B@]@@ CALL SIZMEM(NODPLC(LOC+5),NUMP) @ @]@@ 1250 CALL EYN )@@G@@XTMEM(LSBKPT,1) @C@]@@ VALUE(LSBKPT+NUMBKP+1)=VALUE(LOCP+IKNT) YO )@@G@@@^@]@@ NUMBKP=NUMBKP+1 @#@]@@ IKNT=IKNT+2 @A@]@@ IF (IKYP )@@G@@NT.LE.NUMP) GO TO 1250 @#@]@@ GO TO 1280 @B@]@@ 1260 VALUE(LOCP+3YQ )@@G@@)=VALUE(LOCP+3)*TWOPI @B@]@@ VALUE(LOCP+5)=VALUE(LOCP+5)*TWOPI YR )@@G@@@^@]@@ 1280 LOC=NODPLC(LOC) @#@]@@ GO TO 1210 @#@]@@ 1290 CONTINYS )@@G@@UE @[@]@@C @E@]@@C AUGMENT BREAKPOINT TABLE FOR TRANSMISSION LINYT )@@G@@E DELAYS @[@]@@C @A@]@@ IF (JTRFLG.EQ.0) GO TO 1300 @^@]@@YU )@@G@@ LOC=LOCATE(17) @ @]@@ 1292 IF (LOC.EQ.0) GO TO 1300@^@]@@ YV )@@G@@LOCV=NODPLC(LOC+1)@^@]@@ TD=VALUE(LOCV+2) @#@]@@ NTEMP=NUMBKPYW )@@G@@@ @]@@ DO 1296 IBKP=1,NTEMP @ @]@@ TIME=VALUE(LSBKPT+IBKP) YX )@@G@@@#@]@@ 1294 TIME=TIME+TD@A@]@@ IF (TIME.GE.TSTOP) GO TO 1296 @ @]@@YY )@@G@@ CALL EXTMEM(LSBKPT,1) @A@]@@ VALUE(LSBKPT+NUMBKP+1)=TIME YZ )@@G@@@^@]@@ NUMBKP=NUMBKP+1 @#@]@@ GO TO 1294 @#@]@@ 1296 CONTINZA )@@G@@UE @B@]@@ CALL SHLSRT(VALUE(LSBKPT+1),NUMBKP) @#@]@@ NBKPT=ZB )@@G@@1 @^@]@@ DO 1298 I=2,NUMBKP@F@]@@ IF ((VALUE(LSBKPT+I)-VALZC )@@G@@UE(LSBKPT+NBKPT)).LT.TOL) GO TO 1298@^@]@@ NBKPT=NBKPT+1 @B@]@@ZD )@@G@@ VALUE(LSBKPT+NBKPT)=VALUE(LSBKPT+I) @D@]@@ IF (VALUE(LSBKPT+NZE )@@G@@BKPT).GE.TSTOP) GO TO 1299 @#@]@@ 1298 CONTINUE @B@]@@ 1299 CALL RZF )@@G@@ELMEM(LSBKPT,NUMBKP-NBKPT) @#@]@@ NUMBKP=NBKPT@E@]@@ VALUE(ZG )@@G@@LSBKPT+NUMBKP)=AMAX1(VALUE(LSBKPT+NUMBKP),TSTOP)@^@]@@ LOC=NODPLC(LZH )@@G@@OC) @#@]@@ GO TO 1292 @[@]@@C @ @]@@C FINISH BREAKPOINT TABZI )@@G@@LE @[@]@@C @A@]@@ 1300 IF (JTRFLG.EQ.0) GO TO 1600 @ @]@@ ZJ )@@G@@CALL EXTMEM(LSBKPT,1) @A@]@@ VALUE(LSBKPT+NUMBKP+1)=TSTOP @^@]@@ZK )@@G@@ NUMBKP=NUMBKP+1 @B@]@@ CALL SHLSRT(VALUE(LSBKPT+1),NUMBKP) ZL )@@G@@@#@]@@ NBKPT=1 @^@]@@ DO 1310 I=2,NUMBKP@F@]@@ IF ((VZM )@@G@@ALUE(LSBKPT+I)-VALUE(LSBKPT+NBKPT)).LT.TOL) GO TO 1310@^@]@@ NBKPT=ZN )@@G@@NBKPT+1 @B@]@@ VALUE(LSBKPT+NBKPT)=VALUE(LSBKPT+I) @E@]@@ ZO )@@G@@IF (ABS(VALUE(LSBKPT+NBKPT)-TSTOP).LE.TOL) GO TO 1320 @#@]@@ 1310 CONTINZP )@@G@@UE @^@]@@ WRITE (6,1311) @F@]@@ 1311 FORMAT(^0*ABORT*: INTERZQ )@@G@@NAL SPICE ERROR -- ERRCHK/BKPTAB^,/)@]@]@@ NOGO=1@#@]@@ GO TO ZR )@@G@@2000 @B@]@@ 1320 CALL RELMEM(LSBKPT,NUMBKP-NBKPT) @#@]@@ NUMBKPZS )@@G@@=NBKPT@A@]@@ VALUE(LSBKPT+NUMBKP)=TSTOP @[@]@@C @^@]@@C PRIZT )@@G@@NT OPTION SUMMARY @[@]@@C @A@]@@ 1600 IF (IPRNTO.EQ.0) GO TO 1700 ZU )@@G@@@A@]@@ CALL TITLE(0,LWIDTH,1,TITLOP) @F@]@@ WRITE (6,1601) GMIZV )@@G@@N,RELTOL,ABSTOL,VNTOL,LVLCOD,ITL1,ITL2 @A@]@@ 1601 FORMAT(^0DC ANALYSZW )@@G@@IS -^,/, @A@]@@ 1 ^0 GMIN = ^,1PE10.3,/,@A@]@@ 2 ^ ZX )@@G@@ RELTOL = ^, E10.3,/,@A@]@@ 3 ^ ABSTOL = ^, E10.3,/,@A@]@@ZY )@@G@@ 4 ^ VNTOL = ^, E10.3,/,@A@]@@ 5 ^ LVLCOD = ^, ZZ )@@G@@ I6,/,@A@]@@ 6 ^ ITL1 = ^, I6,/,@A@]@@ 7 ^ ITLAA )@@G@@2 = ^, I6,/)@G@]@@ WRITE (6,1611) ANAME(METHOD),MAXORD,CHGTOLAB )@@G@@,TRTOL,LVLTIM,ITL3, @#@]@@ 1 ITL4,ITL5@B@]@@ 1611 FORMAT(^0TRAAC )@@G@@NSIENT ANALYSIS -^,/, @A@]@@ 1 ^0 METHOD = ^,A8,/, @A@]@@AD )@@G@@ 2 ^ MAXORD = ^, I6,/,@A@]@@ 3 ^ CHGTOL = ^,1PE1AE )@@G@@0.3,/,@A@]@@ 4 ^ TRTOL = ^, E10.3,/,@A@]@@ 5 ^ LVLAF )@@G@@TIM = ^, I6,/,@A@]@@ 6 ^ ITL3 = ^, I6,/,@A@]@@ 7AG )@@G@@ ^ ITL4 = ^, I6,/,@A@]@@ 8 ^ ITL5 = ^, I6,/)AH )@@G@@@E@]@@ WRITE (6,1621) LIMPTS,LIMTIM,NUMDGT,VALUE(ITEMPS+1) @A@]@@AI )@@G@@ 1621 FORMAT(^0MISCELLANEOUS -^,/, @A@]@@ 1 ^0 LIMPTS = ^, AJ )@@G@@ I6,/,@A@]@@ 2 ^ LIMTIM = ^, I6,/,@A@]@@ 3 ^ NUMAK )@@G@@DGT = ^, I6,/,@A@]@@ 4 ^ TNOM = ^,0PF10.3) @[@]@@C AL )@@G@@@A@]@@C MISCELLANEOUS ERROR CHECKING @[@]@@C @A@]@@ 1700 IF (ICAM )@@G@@VFLG.EQ.0) GO TO 1720 @B@]@@ IF (ICVFLG.LE.LIMPTS) GO TO 1710 AN )@@G@@@#@]@@ ICVFLG=0 @A@]@@ WRITE (6,1701) LIMPTS,ALSDC @G@]@@AO )@@G@@ 1701 FORMAT(^0WARNING: MORE THAN ^I5^ POINTS FOR ^A4^ ANALYSIS ... ANAAP )@@G@@@^@]@@ 1LYSIS OMITTED^/) @#@]@@ GO TO 1720 @D@]@@ 1710 IF ((JAQ )@@G@@ELCNT(31)+JELCNT(36)).GT.0) GO TO 1720 @#@]@@ ICVFLG=0 @ @]@@AR )@@G@@ WRITE (6,1711) ALSDC @G@]@@ 1711 FORMAT(^0WARNING: NO ^A4^ OUTAS )@@G@@PUTS SPECIFIED ... ANALYSIS OMITTED^@]@]@@ 1/) @A@]@@ 1720 IF (JTAT )@@G@@RFLG.EQ.0) GO TO 1740 @A@]@@ IF (METHOD.EQ.1) MAXORD=2 @D@]@@AU )@@G@@ IF ((METHOD.EQ.2).AND.(MAXORD.GE.3)) LVLTIM=2 @B@]@@ IF (JTAV )@@G@@RFLG.LE.LIMPTS) GO TO 1730 @#@]@@ JTRFLG=0 @A@]@@ WRITE AW )@@G@@(6,1701) LIMPTS,ALSTR @#@]@@ GO TO 1740 @E@]@@ 1730 IF ((JELCNT(AX )@@G@@32)+JELCNT(37)+NFOUR).GT.0) GO TO 1735 @#@]@@ JTRFLG=0 @ @]@@AY )@@G@@ WRITE (6,1711) ALSTR @#@]@@ GO TO 1740 @A@]@@ 1735 IF (NFAZ )@@G@@OUR.EQ.0) GO TO 1740 @^@]@@ FORPRD=1.0/FORFRE @E@]@@ IF ((TBA )@@G@@STOP-FORPRD).GE.(TSTART-1.0E-12)) GO TO 1740 @#@]@@ NFOUR=0 BB )@@G@@@^@]@@ CALL CLRMEM(IFOUR)@^@]@@ WRITE (6,1736) @G@]@@ 1736 BC )@@G@@FORMAT(^0WARNING: FOURIER ANALYSIS FUNDAMENTAL FREQUENCY IS INCOM@G@]@@BD )@@G@@ 1PATIBLE WITH^/11X^TRANSIENT ANALYSIS PRINT INTERVAL ... FOURIER ANBE )@@G@@@^@]@@ 2ALYSIS OMITTED^/) @A@]@@ 1740 IF (JACFLG.EQ.0) GO TO 1760 BF )@@G@@@B@]@@ IF (JACFLG.LE.LIMPTS) GO TO 1750 @#@]@@ JACFLG=0 BG )@@G@@@A@]@@ WRITE (6,1701) LIMPTS,ALSAC @#@]@@ GO TO 1760 @F@]@@BH )@@G@@ 1750 IF ((JELCNT(33)+JELCNT(34)+JELCNT(35)+JELCNT(38)+JELCNT(39) @D@]@@BI )@@G@@ 1 +JELCNT(40)+IDIST+INOISE).GT.0) GO TO 1760 @#@]@@ JACFLGBJ )@@G@@=0 @ @]@@ WRITE (6,1711) ALSAC @A@]@@ 1760 IF (JPZFLG.EQ.0) GBK )@@G@@O TO 1800 @B@]@@ IF (JELCNT(17).EQ.0) GO TO 1800 @#@]@@ BL )@@G@@JPZFLG=0 @^@]@@ WRITE (6,1761) @F@]@@ 1761 FORMAT(^0WARNING: BM )@@G@@ POLE/ZERO ANALYSIS NOT POSSIBLE WITH ^, @B@]@@ 1 ^TRANSMISSION LBN )@@G@@INE ELEMENTS^,/) @[@]@@C @A@]@@C SEQUENCE THROUGH THE OUTPUT LISTSBO )@@G@@@[@]@@C @^@]@@ 1800 DO 1820 ID=41,45 @ @]@@ IF (ID.LE.43) NUMOBP )@@G@@UT=1 @^@]@@ LOC=LOCATE(ID) @ @]@@ 1810 IF (LOC.EQ.0) GO TO 1820BQ )@@G@@@^@]@@ NUMOUT=NUMOUT+1 @ @]@@ NODPLC(LOC+4)=NUMOUT @^@]@@BR )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 1810 @#@]@@ 1820 CONTINUE BS )@@G@@@[@]@@C @]@]@@C EXIT @[@]@@C @^@]@@ 2000 CALL SECOND(T2) BT )@@G@@@A@]@@ RSTATS(1)=RSTATS(1)+T2-T1 @]@]@@ RETURN@]@]@@ BU )@@G@@END @ @]@@ SUBROUTINE SHLSRT(A,N) @[@]@@C @F@]@@C THIS RBV )@@G@@OUTINE SORTS THE ARRAY A USING A SHELL SORT ALGORITHM.@[@]@@C @^@]@@BW )@@G@@ DIMENSION A(N) @#@]@@ INTEGER H @[@]@@C @[@]@@C BX )@@G@@@B@]@@C... COMPUTE BEST STARTING STEP SIZE @]@]@@ H=1 @#@]@@BY )@@G@@ 10 H=3*H+1 @ @]@@ IF (H.LT.N) GO TO 10 @^@]@@C... BACK OBZ )@@G@@FF TWO TIMES@#@]@@ H=(H-1)/3 @#@]@@ H=(H-1)/3 @#@]@@ CA )@@G@@H=MAX0(H,1) @[@]@@C @#@]@@C SHELL SORT @[@]@@C @]@]@@ 20 CB )@@G@@J=H+1 @#@]@@ GO TO 60 @]@]@@ 30 I=J-H @A@]@@C... AK = RECORD CC )@@G@@KEY; AR = RECORD @#@]@@ AK=A(J) @]@]@@ AR=AK @ @]@@ 40 CD )@@G@@IF (AK.GE.A(I)) GO TO 50@#@]@@ A(I+H)=A(I) @]@]@@ I=I-H @ @]@@CE )@@G@@ IF (I.GE.1) GO TO 40 @#@]@@ 50 A(I+H)=AR @]@]@@ J=J+1 CF )@@G@@@ @]@@ 60 IF (J.LE.N) GO TO 30 @#@]@@ H=(H-1)/3 @ @]@@ CG )@@G@@IF (H.NE.0) GO TO 20 @]@]@@ RETURN@]@]@@ END @ @]@@ CH )@@G@@SUBROUTINE PUTNOD(NODE) @[@]@@C @G@]@@C THIS ROUTINE ADDS ^NODE^CI )@@G@@ TO THE LIST OF USER INPUT NODES IN TABLE @]@]@@C JUNODE. @[@]@@C CJ )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUCK )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,CL )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILCM )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWCN )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,CO )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@CP )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, CQ )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @]@@ COMMONCR )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALCS )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C CT )@@G@@@[@]@@C @]@]@@ JKNT=0@#@]@@ 10 JKNT=JKNT+1 @A@]@@ IF (JKCU )@@G@@NT.GT.NUNODS) GO TO 20 @C@]@@ IF (NODE-NODPLC(JUNODE+JKNT)) 20,100CV )@@G@@,10 @#@]@@ 20 K=NUNODS+1 @ @]@@ CALL EXTMEM(JUNODE,1) @ @]@@CW )@@G@@ IF (K.LE.JKNT) GO TO 30 @F@]@@ CALL COPY4(NODPLC(JUNODE+JKNT)CX )@@G@@,NODPLC(JUNODE+JKNT+1),K-JKNT)@]@]@@ K=JKNT@ @]@@ 30 NODPLC(JUNODCY )@@G@@E+K)=NODE @^@]@@ NUNODS=NUNODS+1 @[@]@@C @]@]@@C FINISHED CZ )@@G@@@[@]@@C @]@]@@ 100 RETURN@]@]@@ END @ @]@@ SUBROUTINE GDA )@@G@@ETNOD(NODE) @[@]@@C @G@]@@C THIS ROUTINE CONVERTS FROM THE USER DB )@@G@@NODE NUMBER TO THE INTERNAL @^@]@@C (COMPACT) NODE NUMBER.@[@]@@C DC )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUDD )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,DE )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILDF )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWDG )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,DH )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@DI )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, DJ )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMONDK )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1DL )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ DM )@@G@@COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEDN )@@G@@X CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@DO )@@G@@C @[@]@@C @ @]@@ IF (NOGO.NE.0) GO TO 100@]@]@@ JKNT=0DP )@@G@@@#@]@@ 10 JKNT=JKNT+1 @A@]@@ IF (JKNT.GT.NUNODS) GO TO 20 @C@]@@DQ )@@G@@ IF (NODPLC(JUNODE+JKNT).NE.NODE) GO TO 10 @#@]@@ NODE=JKNT DR )@@G@@@#@]@@ GO TO 100 @[@]@@C @E@]@@C UNKNOWN NODE -- MUST BE IMPDS )@@G@@LIED BY .PRINT AND/OR .PLOT @[@]@@C @ @]@@ 20 IF (NODE.EQ.0) GO DT )@@G@@TO 30 @^@]@@ WRITE (6,21) NODE @F@]@@ 21 FORMAT(^0WARNING: ATTEMDU )@@G@@PT TO OUTPUT UNDEFINED NODE ^,I5, @A@]@@ 1 ^ -- NODE RESET TO 0^DV )@@G@@/) @]@]@@ 30 NODE=1@[@]@@C @]@]@@C FINISHED @[@]@@C @]@]@@DW )@@G@@ 100 RETURN@]@]@@ END @^@]@@ SUBROUTINE SUBCKT @[@]@@C DX )@@G@@@E@]@@C THIS ROUTINE DRIVES THE EXPANSION OF SUBCIRCUIT CALLS.@[@]@@DY )@@G@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEDZ )@@G@@MPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IEA )@@G@@COLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,EB )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIEC )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXED )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER EE )@@G@@@G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NEF )@@G@@STOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ EG )@@G@@COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@EH )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@EI )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ EJ )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))EK )@@G@@@[@]@@C @[@]@@C @^@]@@ LOCX=LOCATE(19) @ @]@@ 10 IF (LOEL )@@G@@CX.EQ.0) GO TO 300@ @]@@ LOCS=NODPLC(LOCX+3) @ @]@@ ASNAM=EM )@@G@@VALUE(IUNSAT+LOCS)@B@]@@ CALL FNDNAM(ASNAM,LOCX-1,LOCX+3,20) @ @]@@EN )@@G@@ IF (NOGO.NE.0) GO TO 300@ @]@@ LOCS=NODPLC(LOCX+3) @[@]@@EO )@@G@@C @^@]@@C CHECK FOR RECURSION @[@]@@C @ @]@@ ISBPTR=NODPLEP )@@G@@C(LOCX-1) @A@]@@ 20 IF (ISBPTR.EQ.0) GO TO 30 @C@]@@ IF (LOEQ )@@G@@CS.EQ.NODPLC(ISBPTR+3)) GO TO 260 @ @]@@ ISBPTR=NODPLC(ISBPTR-1) ER )@@G@@@#@]@@ GO TO 20 @[@]@@C @[@]@@C @B@]@@ 30 CALL SIZMEM(ES )@@G@@NODPLC(LOCX+2),NXNOD) @B@]@@ CALL SIZMEM(NODPLC(LOCS+2),NSNOD) ET )@@G@@@A@]@@ IF (NXNOD.NE.NSNOD) GO TO 250 @ @]@@ CALL GETMEM(INODX,EU )@@G@@NSNOD)@ @]@@ CALL GETMEM(INODI,NSNOD)@ @]@@ ITEMP=NODPLC(LOCS+EV )@@G@@2) @E@]@@ CALL COPY4(NODPLC(ITEMP+1),NODPLC(INODX+1),NSNOD) EW )@@G@@@ @]@@ ITEMP=NODPLC(LOCX+2) @E@]@@ CALL COPY4(NODPLC(ITEMP+EX )@@G@@1),NODPLC(INODI+1),NXNOD) @[@]@@C @C@]@@C ADD ELEMENTS OF SUBCIEY )@@G@@RCUIT TO NOMINAL CIRCUIT@[@]@@C @^@]@@ LOC=NODPLC(LOCS+3)@ @]@@EZ )@@G@@ 100 IF (LOC.EQ.0) GO TO 200 @^@]@@ ID=NODPLC(LOC-1) @ @]@@ FA )@@G@@IF (ID.EQ.20) GO TO 110 @C@]@@ CALL FIND(FLOAT(JELCNT(ID)),ID,LOCE,FB )@@G@@1) @ @]@@ NODPLC(LOCE-1)=LOCX @C@]@@ CALL ADDELT(LOCE,LFC )@@G@@OC,ID,INODX,INODI,NXNOD)@^@]@@ 110 LOC=NODPLC(LOC) @#@]@@ GO TO FD )@@G@@100 @[@]@@C @[@]@@C @^@]@@ 200 CALL CLRMEM(INODX)@^@]@@ FE )@@G@@CALL CLRMEM(INODI)@^@]@@ LOCX=NODPLC(LOCX) @#@]@@ GO TO 10 FF )@@G@@@[@]@@C @]@]@@C ERRORS @[@]@@C @ @]@@ 250 LOCV=NODPLC(LOCX+1FG )@@G@@) @^@]@@ AXNAM=VALUE(LOCV) @ @]@@ LOCV=NODPLC(LOCS+1) FH )@@G@@@^@]@@ ASNAM=VALUE(LOCV) @A@]@@ WRITE (6,251) AXNAM,ASNAM FI )@@G@@@G@]@@ 251 FORMAT(^0*ERROR*: ^,A8,^ HAS DIFFERENT NUMBER OF NODES THANFJ )@@G@@ ^,A8/@]@]@@ 1) @]@]@@ NOGO=1@#@]@@ GO TO 300 @ @]@@FK )@@G@@ 260 LOCSV=NODPLC(LOCS+1) @^@]@@ ASNAM=VALUE(LOCSV)@ @]@@ FL )@@G@@WRITE (6,261) ASNAM @G@]@@ 261 FORMAT(^0*ERROR*: SUBCIRCUIT ^,A8,^FM )@@G@@ IS DEFINED RECURSIVELY^/) @]@]@@ NOGO=1@[@]@@C @]@]@@C FINFN )@@G@@ISHED @[@]@@C @]@]@@ 300 RETURN@]@]@@ END @C@]@@ SUBROUFO )@@G@@TINE FNDNAM(ANAM,JSBPTR,ISPOT,ID) @[@]@@C @G@]@@C THIS ROUTINEFP )@@G@@ SEARCHES FOR AN ELEMENT WITH ID ^ID^ BY TRACING BACK @G@]@@C UP THE SUBFQ )@@G@@CIRCUIT DEFINITION LIST. IF THE ELEMENT IS NOT FOUND, THE @A@]@@C NOMIFR )@@G@@NAL ELEMENT LIST IS SEARCHED. @[@]@@C @G@]@@ COMMON /TABINF/ IEFS )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSEFT )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNFU )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3FV )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@FW )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, FX )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(5FY )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NFZ )@@G@@DIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,GA )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLGB )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@GC )@@G@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVAGD )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@#@]@@ INTEGER XOR @[@]@@C GE )@@G@@@[@]@@C @ @]@@ ISBPTR=NODPLC(JSBPTR) @A@]@@ 10 IF (ISBPTR.EGF )@@G@@Q.0) GO TO 50 @ @]@@ ISUB=NODPLC(ISBPTR+3) @^@]@@ LOC=NOGG )@@G@@DPLC(ISUB+3)@ @]@@ 20 IF (LOC.EQ.0) GO TO 40 @B@]@@ IF (ID.NE.NOGH )@@G@@DPLC(LOC-1)) GO TO 30 @^@]@@ LOCV=NODPLC(LOC+1)@C@]@@ IF (XOGI )@@G@@R(ANAM,VALUE(LOCV)).NE.0) GO TO 30 @ @]@@ IF (ID.NE.20) GO TO 50 GJ )@@G@@@#@]@@ GO TO 65 @^@]@@ 30 LOC=NODPLC(LOC) @#@]@@ GO TO GK )@@G@@20 @ @]@@ 40 ISBPTR=NODPLC(ISBPTR-1) @#@]@@ GO TO 10 @[@]@@GL )@@G@@C @^@]@@ 50 LOC=LOCATE(ID) @ @]@@ 60 IF (LOC.EQ.0) GO TO 90 GM )@@G@@@C@]@@ IF (NODPLC(LOC-1).NE.ISBPTR) GO TO 70 @^@]@@ LOCV=NGN )@@G@@ODPLC(LOC+1)@C@]@@ IF (XOR(ANAM,VALUE(LOCV)).NE.0) GO TO 70 @^@]@@GO )@@G@@ 65 NODPLC(ISPOT)=LOC @#@]@@ GO TO 100 @^@]@@ 70 LOC=NODPLC(LGP )@@G@@OC) @#@]@@ GO TO 60 @^@]@@ 90 WRITE (6,91) ANAM @C@]@@ 91 GQ )@@G@@FORMAT(^0*ERROR*: UNABLE TO FIND ^,A8/) @]@]@@ NOGO=1@]@]@@ 100 GR )@@G@@RETURN@]@]@@ END @E@]@@ SUBROUTINE NEWNOD(NODOLD,NODNEW,INODGS )@@G@@X,INODI,NNODI) @[@]@@C @G@]@@C THIS ROUTINE MAKES A NEW NODE GT )@@G@@NUMBER FOR AN ELEMENT WHICH IS ABOUT@F@]@@C TO BE ADDED TO THE CIRCUIT AGU )@@G@@S A RESULT OF A SUBCIRCUIT CALL. @[@]@@C @G@]@@ COMMON /TABIGV )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISEGW )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2GX )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@GY )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, GZ )@@G@@@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,HA )@@G@@LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOHB )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NHC )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@HD )@@G@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVAHE )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @ @]@@ HF )@@G@@IF (NODOLD.NE.0) GO TO 5@#@]@@ NODNEW=1 @#@]@@ GO TO 20 HG )@@G@@@^@]@@ 5 DO 10 I=1,NNODI @C@]@@ IF (NODOLD.NE.NODPLC(INODX+I))HH )@@G@@ GO TO 10 @ @]@@ NODNEW=NODPLC(INODI+I) @#@]@@ GO TO 20 HI )@@G@@@#@]@@ 10 CONTINUE @[@]@@C @ @]@@ CALL EXTMEM(INODX,1) HJ )@@G@@@ @]@@ CALL EXTMEM(INODI,1) @ @]@@ CALL EXTMEM(JUNODE,1) HK )@@G@@@^@]@@ NNODI=NNODI+1 @^@]@@ NCNODS=NCNODS+1 @A@]@@ HL )@@G@@NODPLC(INODX+NNODI)=NODOLD @A@]@@ NODPLC(INODI+NNODI)=NCNODS HM )@@G@@@D@]@@ NODPLC(JUNODE+NCNODS)=NODPLC(JUNODE+NCNODS-1)+1 @^@]@@ HN )@@G@@NODNEW=NCNODS @]@]@@ 20 RETURN@]@]@@ END @D@]@@ SUBROUHO )@@G@@TINE ADDELT(LOCE,LOC,ID,INODX,INODI,NNODI)@[@]@@C @G@]@@C THIS RHP )@@G@@OUTINE ADDS AN ELEMENT TO THE NOMINAL CIRCUIT DEFINITION @]@]@@C LISTHQ )@@G@@S. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAHR )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICHS )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERHT )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQHU )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYHV )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPHW )@@G@@OL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNHX )@@G@@ODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS HY )@@G@@@G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMHZ )@@G@@PTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KIA )@@G@@EOF @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)IB )@@G@@@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1IC )@@G@@),CVALUE(1))@[@]@@C @[@]@@C @C@]@@ DIMENSION LNOD(50),LVAL(ID )@@G@@50),NNODS(50) @C@]@@ DATA LNOD / 9,10,12, 7,14,15,14,15,12, 7, IE )@@G@@@C@]@@ 1 17,31,26,34, 7, 7,34, 0, 5, 5, @C@]@@ 2 IF )@@G@@ 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, @C@]@@ 3 21,21,21,21,2IG )@@G@@1,21,21,21,21,21, @C@]@@ 4 8, 8, 8, 8, 8, 0, 0, 0, 0, 0 /IH )@@G@@@C@]@@ DATA LVAL / 5, 3, 3, 2, 1, 1, 1, 1, 4, 4, @C@]@@ 1 II )@@G@@ 3, 4, 4,11, 1, 1, 9, 0, 1, 1, @C@]@@ 2 19,38,17,44, IJ )@@G@@0, 0, 0, 0, 0, 0, @C@]@@ 3 1, 1, 1, 1, 1,17,17,17,17,17, IK )@@G@@@C@]@@ 4 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 /@C@]@@ DATA NIL )@@G@@NODS / 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,@C@]@@ 1 2, 3, 3, 4,IM )@@G@@ 4, 4, 4, 0, 1, 0,@C@]@@ 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,IN )@@G@@@C@]@@ 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,@D@]@@ 4 IO )@@G@@ 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 / @[@]@@C @^@]@@C COPY INTEIP )@@G@@GER PART @[@]@@C @^@]@@ NWORD=LNOD(ID)-3 @ @]@@ IF (NWIQ )@@G@@ORD.LE.0) GO TO 10@D@]@@ CALL COPY4(NODPLC(LOC+2),NODPLC(LOCE+2),NWIR )@@G@@ORD) @[@]@@C @]@]@@C SET NODES@[@]@@C @ @]@@ 10 IF (ID.GE.21IS )@@G@@) GO TO 100 @A@]@@ IF (NNODS(ID).EQ.0) GO TO 100 @ @]@@ IF (IDIT )@@G@@.LE.4) GO TO 20 @ @]@@ IF (ID.LE.8) GO TO 40 @ @]@@ IF (IDIU )@@G@@.EQ.19) GO TO 70 @^@]@@ 20 JSTOP=NNODS(ID) @^@]@@ DO 30 J=1,JSIV )@@G@@TOP @G@]@@ CALL NEWNOD(NODPLC(LOC+J+1),NODPLC(LOCE+J+1),INODX,INOIW )@@G@@DI,NNODI) @#@]@@ 30 CONTINUE @#@]@@ GO TO 100 @F@]@@ 40 IX )@@G@@CALL NEWNOD(NODPLC(LOC+2),NODPLC(LOCE+2),INODX,INODI,NNODI) @F@]@@ IY )@@G@@CALL NEWNOD(NODPLC(LOC+3),NODPLC(LOCE+3),INODX,INODI,NNODI) @ @]@@ IZ )@@G@@IF (ID.GE.7) GO TO 100 @^@]@@ NLOCP=LOC+ID+1 @ @]@@ NSNOD=JA )@@G@@2*NODPLC(LOC+4) @B@]@@ CALL GETMEM(NODPLC(LOCE+ID+1),NSNOD)@^@]@@JB )@@G@@ NLOCPE=LOCE+ID+1 @^@]@@ 50 DO 60 J=1,NSNOD @^@]@@ LOCP=NJC )@@G@@ODPLC(NLOCP)@ @]@@ NODOLD=NODPLC(LOCP+J) @D@]@@ CALL NEWNOD(JD )@@G@@NODOLD,NODNEW,INODX,INODI,NNODI) @ @]@@ LOCPE=NODPLC(NLOCPE) JE )@@G@@@ @]@@ NODPLC(LOCPE+J)=NODNEW @#@]@@ 60 CONTINUE @#@]@@ JF )@@G@@GO TO 100 @#@]@@ 70 NLOCP=LOC+2 @B@]@@ CALL SIZMEM(NODPLC(LOC+2JG )@@G@@),NSNOD) @B@]@@ CALL GETMEM(NODPLC(LOCE+2),NSNOD) @^@]@@ JH )@@G@@NLOCPE=LOCE+2 @#@]@@ GO TO 50 @[@]@@C @#@]@@C COPY REALJI )@@G@@ PART @[@]@@C @ @]@@ 100 IF (NOGO.NE.0) GO TO 300@^@]@@ LOCV=NJJ )@@G@@ODPLC(LOC+1)@ @]@@ LOCVE=NODPLC(LOCE+1) @D@]@@ CALL COPY8(VJK )@@G@@ALUE(LOCV),VALUE(LOCVE),LVAL(ID)) @[@]@@C @A@]@@C TREAT NON-NODE JL )@@G@@TABLES SPECIALLY @[@]@@C @ @]@@ 200 IF (ID.GE.11) GO TO 300 @ @]@@JM )@@G@@ IF (ID.LE.4) GO TO 300 @#@]@@ IJMP=ID-4 @C@]@@ GO TO JN )@@G@@(230,240,230,240,260,260), IJMP @]@]@@ 230 ITAB=5@#@]@@ GO TO JO )@@G@@250 @]@]@@ 240 ITAB=6@ @]@@ 250 IF (ID.LE.6) GO TO 255 @B@]@@ JP )@@G@@CALL CPYTAB(LOC+ITAB+1,LOCE+ITAB+1) @B@]@@ 255 CALL CPYTAB(LOC+ITAB+2,LJQ )@@G@@OCE+ITAB+2) @B@]@@ CALL CPYTAB(LOC+ITAB+3,LOCE+ITAB+3) @B@]@@ JR )@@G@@CALL CPYTAB(LOC+ITAB+4,LOCE+ITAB+4) @B@]@@ CALL CPYTAB(LOC+ITAB+5,LJS )@@G@@OCE+ITAB+5) @B@]@@ CALL CPYTAB(LOC+ITAB+6,LOCE+ITAB+6) @#@]@@ JT )@@G@@GO TO 300 @A@]@@ 260 CALL CPYTAB(LOC+5,LOCE+5) @[@]@@C @[@]@@JU )@@G@@C @]@]@@ 300 RETURN@]@]@@ END @A@]@@ SUBROUTINE CPYTAB(JV )@@G@@ITABO,ITABN)@[@]@@C @G@]@@C THIS ROUTINE COPIES A TABLE. ITS USJW )@@G@@E IS MADE NECESSARY BY THE @D@]@@C FACT THAT ONLY ONE POINTER IS ALLOJX )@@G@@WED PER TABLE. @[@]@@C @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@JY )@@G@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVAJZ )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @B@]@@ KA )@@G@@CALL SIZMEM(NODPLC(ITABO),ISIZE) @B@]@@ CALL GETMEM(NODPLC(ITABNKB )@@G@@),ISIZE) @^@]@@ LOCO=NODPLC(ITABO)@^@]@@ LOCN=NODPLC(ITABN)KC )@@G@@@D@]@@ CALL COPY4(NODPLC(LOCO+1),NODPLC(LOCN+1),ISIZE) @]@]@@ KD )@@G@@RETURN@]@]@@ END @^@]@@ SUBROUTINE LNKREF @[@]@@C @E@]@@KE )@@G@@C THIS ROUTINE RESOLVES ALL UNSATISFIED NAME REFERENCES.@[@]@@C KF )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUKG )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,KH )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILKI )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWKJ )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,KK )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@KL )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, KM )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMONKN )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1KO )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ KP )@@G@@COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEKQ )@@G@@X CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@KR )@@G@@C @^@]@@C MUTUAL INDUCTORS @[@]@@C @^@]@@ LOC=LOCATE(4KS )@@G@@) @ @]@@ 100 IF (LOC.EQ.0) GO TO 200 @^@]@@ IREF=NODPLC(LOC+2)KT )@@G@@@D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+2,3) @^@]@@ KU )@@G@@IREF=NODPLC(LOC+3)@D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+3KV )@@G@@,3) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 100 @[@]@@C KW )@@G@@@A@]@@C CURRENT-CONTROLLED CURRENT SOURCE@[@]@@C @^@]@@ 200 LOC=LOKX )@@G@@CATE(7) @ @]@@ 210 IF (LOC.EQ.0) GO TO 300 @^@]@@ NUMP=NODPLC(KY )@@G@@LOC+4)@^@]@@ LOCP=NODPLC(LOC+6)@^@]@@ DO 220 I=1,NUMP @ @]@@KZ )@@G@@ IREF=NODPLC(LOCP+I) @D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF)LA )@@G@@,LOC-1,LOCP+I,9) @#@]@@ 220 CONTINUE @^@]@@ LOC=NODPLC(LOC) LB )@@G@@@#@]@@ GO TO 210 @[@]@@C @B@]@@C CURRENT-CONTROLLED VOLTAGE LC )@@G@@SOURCES @[@]@@C @^@]@@ 300 LOC=LOCATE(8) @ @]@@ 310 IF (LOLD )@@G@@C.EQ.0) GO TO 400 @^@]@@ NUMP=NODPLC(LOC+4)@^@]@@ LOCP=NODPLC(LE )@@G@@LOC+7)@^@]@@ DO 320 I=1,NUMP @ @]@@ IREF=NODPLC(LOCP+I) LF )@@G@@@D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOCP+I,9) @#@]@@ 320 LG )@@G@@CONTINUE @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 310 @[@]@@LH )@@G@@C @]@]@@C DIODES @[@]@@C @^@]@@ 400 LOC=LOCATE(11) @ @]@@LI )@@G@@ 410 IF (LOC.EQ.0) GO TO 500 @^@]@@ IREF=NODPLC(LOC+5)@D@]@@ LJ )@@G@@CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+5,21) @^@]@@ LOC=NODPLC(LLK )@@G@@OC) @#@]@@ GO TO 410 @[@]@@C @]@]@@C BJTS @[@]@@C LL )@@G@@@^@]@@ 500 LOC=LOCATE(12) @ @]@@ 510 IF (LOC.EQ.0) GO TO 600 @^@]@@LM )@@G@@ IREF=NODPLC(LOC+8)@D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1LN )@@G@@,LOC+8,22) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 510 @[@]@@LO )@@G@@C @]@]@@C JFETS @[@]@@C @^@]@@ 600 LOC=LOCATE(13) @ @]@@LP )@@G@@ 610 IF (LOC.EQ.0) GO TO 700 @^@]@@ IREF=NODPLC(LOC+7)@D@]@@ LQ )@@G@@CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1,LOC+7,23) @^@]@@ LOC=NODPLC(LLR )@@G@@OC) @#@]@@ GO TO 610 @[@]@@C @]@]@@C MOSFETS @[@]@@C LS )@@G@@@^@]@@ 700 LOC=LOCATE(14) @ @]@@ 710 IF (LOC.EQ.0) GO TO 1000@^@]@@LT )@@G@@ IREF=NODPLC(LOC+8)@D@]@@ CALL FNDNAM(VALUE(IUNSAT+IREF),LOC-1LU )@@G@@,LOC+8,24) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 710 @[@]@@LV )@@G@@C @]@]@@C FINISHED @[@]@@C @ @]@@ 1000 CALL CLRMEM(IUNSAT) LW )@@G@@@]@]@@ RETURN@]@]@@ END @ @]@@ SUBROUTINE SUBNAM(LOCE) LX )@@G@@@[@]@@C @G@]@@C THIS ROUTINE CONSTRUCTS THE NAMES OF ELEMENTS ADLY )@@G@@DED AS A RESULT OF@F@]@@C SUBCIRCUIT EXPANSION. THE FULL ELEMENT NAMES LZ )@@G@@ARE OF THE FORM @C@]@@C XA.XB.XC.XD. --- .XN.NAME MA )@@G@@@G@]@@C WHERE ^NAME^ IS THE NOMINAL ELEMENT NAME, AND THE ^X^*S DENOTE TMB )@@G@@HE @G@]@@C SEQUENCE OF SUBCIRCUIT CALLS (FROM TOP OR CIRCUIT LEVEL DOMC )@@G@@WN THROUGH @G@]@@C NESTED SUBCIRCUIT CALLS) WHICH CAUSED THE PARTICULARMD )@@G@@ ELEMENT TO BE @G@]@@C ADDED. AT PRESENT, SPICE RESTRICTS ALL ELEMENME )@@G@@T NAMES TO BE 8 CHARAC- @G@]@@C TERS OR LESS. THEREFORE, THE NAME USED MF )@@G@@CONSISTS OF THE RIGHTMOST 8 @F@]@@C CHARACTERS OF THE FULL ELEMENT NAMMG )@@G@@E, WITH THE LEFTMOST CHARACTER@G@]@@C REPLACED BY AN ASTERISK (^*^) IF TMH )@@G@@HE FULL ELEMENT NAME IS LONGER THAN @#@]@@C 8 CHARACTERS. @[@]@@C MI )@@G@@@ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@MJ )@@G@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALMK )@@G@@UE(1))@[@]@@C @[@]@@C @C@]@@ DATA ABLANK, APER, ASTK / 1H ,ML )@@G@@ 1H., 1H* / @[@]@@C @A@]@@C CONSTRUCT SUBCIRCUIT ELEMENT NAME@[@]@@MM )@@G@@C @B@]@@ IF (NODPLC(LOCE-1).EQ.0) GO TO 100 @ @]@@ LOCVE=MN )@@G@@NODPLC(LOCE+1) @#@]@@ LOC=LOCE @#@]@@ NCHAR=9 @#@]@@MO )@@G@@ SNAME=ABLANK@#@]@@ ACHAR=ABLANK@^@]@@ 10 LOCV=NODPLC(LOC+1)MP )@@G@@@^@]@@ ELNAME=VALUE(LOCV)@^@]@@ DO 20 ICHAR=1,8 @B@]@@ MQ )@@G@@CALL MOVE(ACHAR,1,ELNAME,9-ICHAR,1) @A@]@@ IF (ACHAR.EQ.ABLANK) GO MR )@@G@@TO 20 @ @]@@ IF (NCHAR.EQ.1) GO TO 40@^@]@@ NCHAR=NCHAR-1 MS )@@G@@@B@]@@ CALL MOVE(SNAME,NCHAR,ACHAR,1,1) @#@]@@ 20 CONTINUE MT )@@G@@@^@]@@ 30 LOC=NODPLC(LOC-1) @ @]@@ IF (LOC.EQ.0) GO TO 60 @ @]@@MU )@@G@@ IF (NCHAR.EQ.1) GO TO 40@^@]@@ NCHAR=NCHAR-1 @B@]@@ MV )@@G@@CALL MOVE(SNAME,NCHAR,APER,1,1) @#@]@@ GO TO 10 @[@]@@C MW )@@G@@@E@]@@C NAME IS LONGER THAN 8 CHARACTERS: FLAG WITH ASTERISK @[@]@@MX )@@G@@C @A@]@@ 40 CALL MOVE(SNAME,1,ASTK,1,1) @#@]@@ GO TO 70 MY )@@G@@@[@]@@C @C@]@@C LEFT-JUSTIFY AND STORE THE CONSTRUCTED NAME @[@]@@MZ )@@G@@C @ @]@@ 60 IF (NCHAR.EQ.1) GO TO 70@C@]@@ CALL MOVE(SNAME,1,NA )@@G@@SNAME,NCHAR,9-NCHAR) @C@]@@ CALL MOVE(SNAME,10-NCHAR,ABLANK,1,NCNB )@@G@@HAR-1)@^@]@@ 70 VALUE(LOCVE)=SNAME@[@]@@C @]@]@@C FINISHED @[@]@@NC )@@G@@C @]@]@@ 100 RETURN@]@]@@ END @^@]@@ SUBROUTINE ELPRNT ND )@@G@@@[@]@@C @D@]@@C THIS ROUTINE PRINTS A CIRCUIT ELEMENT SUMMARY. NE )@@G@@@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSNF )@@G@@AT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDNG )@@G@@ELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODNH )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODENI )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,NJ )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZENK )@@G@@R @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSNL )@@G@@(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /CIRDAT/ LONM )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NNN )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,INO )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITNP )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@]@@ COMMON /TRAN/ TSTEP,TSTONQ )@@G@@P,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @ @]@@ COMMON /BLANK/ VALUE(64)NR )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ NS )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @A@]@@NT )@@G@@ DIMENSION ITAB(25),ASTYP(6) @ @]@@ DIMENSION ELTITL(4) NU )@@G@@@G@]@@ DATA ELTITL / 8HCIRCUIT , 8HELEMENT , 8HSUMMARY , 8H NV )@@G@@ / @F@]@@ DATA ASTYP / 1H , 5HPULSE, 3HSIN, 3HEXP, 3HPWL, 4HSFFMNW )@@G@@ / @A@]@@ DATA ABLNK,AOFF /1H ,3HOFF/ @[@]@@C @ @]@@C PRINX )@@G@@NT LISTING OF ELEMENTS @[@]@@C @A@]@@ CALL TITLE(0,LWIDTH,1,ELNY )@@G@@TITL) @[@]@@C @#@]@@C PRINT RESISTORS@[@]@@C @A@]@@ IF (JENZ )@@G@@LCNT(1).EQ.0) GO TO 50 @#@]@@ ITITLE=0 @G@]@@ 21 FORMAT(//^0*OA )@@G@@*** RESISTORS^/^0 NAME NODES VALUE @ @]@@ 1 TC1 OB )@@G@@ TC2^//) @^@]@@ LOC=LOCATE(1) @ @]@@ 30 IF (LOC.EQ.0OC )@@G@@) GO TO 50 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,21) @#@]@@ ITITLEOD )@@G@@=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) OE )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @D@]@@ WRITE (6,31) VALUE(LOCV)OF )@@G@@,NODPLC(JUNODE+NODE1), @G@]@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+2OG )@@G@@),VALUE(LOCV+3),VALUE(LOCV+4) @A@]@@ 31 FORMAT(6X,A8,2I5,1P3E11.2) OH )@@G@@@^@]@@ 40 LOC=NODPLC(LOC) @#@]@@ GO TO 30 @[@]@@C @A@]@@OI )@@G@@C PRINT CAPACITORS AND INDUCTORS @[@]@@C @C@]@@ 50 IF ((JELCNT(OJ )@@G@@2)+JELCNT(3)).EQ.0) GO TO 80 @#@]@@ ITITLE=0 @G@]@@ 51 FORMATOK )@@G@@(//^0**** CAPACITORS AND INDUCTORS^/^0 NAME NODES@A@]@@ 1OL )@@G@@ IN COND VALUE^//) @#@]@@ DO 70 ID=2,3@^@]@@ LOC=LOOM )@@G@@CATE(ID) @ @]@@ 60 IF (LOC.EQ.0) GO TO 70 @A@]@@ IF (ITITLE.EON )@@G@@Q.0) WRITE (6,51) @#@]@@ ITITLE=1 @^@]@@ LOCV=NODPLC(LOC+1)OO )@@G@@@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) OP )@@G@@@D@]@@ WRITE (6,31) VALUE(LOCV),NODPLC(JUNODE+NODE1), @E@]@@ 1OQ )@@G@@ NODPLC(JUNODE+NODE2),VALUE(LOCV+2),VALUE(LOCV+1) @^@]@@ LOC=NOOR )@@G@@DPLC(LOC) @#@]@@ GO TO 60 @#@]@@ 70 CONTINUE @[@]@@C OS )@@G@@@ @]@@C PRINT MUTUAL INDUCTORS @[@]@@C @A@]@@ 80 IF (JELCNT(4OT )@@G@@).EQ.0) GO TO 100 @#@]@@ ITITLE=0 @G@]@@ 81 FORMAT(//^0**** MUOU )@@G@@TUAL INDUCTORS^/^0 NAME COUPLED INDUC@^@]@@ 1TORS VALUEOV )@@G@@^//) @^@]@@ LOC=LOCATE(4) @ @]@@ 90 IF (LOC.EQ.0) GO TO 110 OW )@@G@@@A@]@@ IF (ITITLE.EQ.0) WRITE (6,81) @#@]@@ ITITLE=1 @^@]@@OX )@@G@@ LOCV=NODPLC(LOC+1)@^@]@@ NL1=NODPLC(LOC+2) @^@]@@ NL1=NOOY )@@G@@DPLC(NL1+1) @^@]@@ NL2=NODPLC(LOC+3) @^@]@@ NL2=NODPLC(NL2+1) OZ )@@G@@@F@]@@ WRITE (6,91) VALUE(LOCV),VALUE(NL1),VALUE(NL2),VALUE(LOCV+1)PA )@@G@@@B@]@@ 91 FORMAT(6X,A8,4X,A8,2X,A8,1PE10.2) @^@]@@ 95 LOC=NODPLC(LPB )@@G@@OC) @#@]@@ GO TO 90 @[@]@@C @C@]@@C PRINT NONLINEAR VOLTAPC )@@G@@GE CONTROLLED SOURCES @[@]@@C @A@]@@ 100 IF (JELCNT(5).EQ.0) GO TPD )@@G@@O 120 @#@]@@ ITITLE=0 @G@]@@ 101 FORMAT(//^0**** VOLTAGE-CONTROPE )@@G@@LLED CURRENT SOURCES^/^0 NAME @C@]@@ 1 + - DIMENSION PF )@@G@@ FUNCTION^//) @^@]@@ LOC=LOCATE(5) @ @]@@ 110 IF (LOC.EQ.0PG )@@G@@) GO TO 120 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,101)@#@]@@ ITITLEPH )@@G@@=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) PI )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @D@]@@ WRITE (6,111) VALUE(LOCVPJ )@@G@@),NODPLC(JUNODE+NODE1), @C@]@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4PK )@@G@@) @A@]@@ 111 FORMAT(6X,A8,2I5,I8,9X,^POLY^)@^@]@@ 115 LOC=NODPLC(LPL )@@G@@OC) @#@]@@ GO TO 110 @[@]@@C @C@]@@C NONLINEAR VOLTAGE CONPM )@@G@@TROLLED VOLTAGE SOURCES @[@]@@C @A@]@@ 120 IF (JELCNT(6).EQ.0) GO TPN )@@G@@O 140 @#@]@@ ITITLE=0 @G@]@@ 121 FORMAT(//^0**** VOLTAGE-CONTROPO )@@G@@LLED VOLTAGE SOURCES^/^0 NAME @C@]@@ 1 + - DIMENSION PP )@@G@@ FUNCTION^//) @^@]@@ LOC=LOCATE(6) @ @]@@ 130 IF (LOC.EQ.0PQ )@@G@@) GO TO 140 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,121)@#@]@@ ITITLEPR )@@G@@=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) PS )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @D@]@@ WRITE (6,111) VALUE(LOCVPT )@@G@@),NODPLC(JUNODE+NODE1), @C@]@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4PU )@@G@@) @^@]@@ 135 LOC=NODPLC(LOC) @#@]@@ GO TO 130 @[@]@@C PV )@@G@@@C@]@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES @[@]@@C @A@]@@PW )@@G@@ 140 IF (JELCNT(7).EQ.0) GO TO 160 @#@]@@ ITITLE=0 @G@]@@ 141 PX )@@G@@FORMAT(//^0**** CURRENT-CONTROLLED CURRENT SOURCES^/^0 NAME @C@]@@PY )@@G@@ 1 + - DIMENSION FUNCTION^//) @^@]@@ LOC=LOCATE(7PZ )@@G@@) @ @]@@ 150 IF (LOC.EQ.0) GO TO 160 @A@]@@ IF (ITITLE.EQ.0) WQA )@@G@@RITE (6,141)@#@]@@ ITITLE=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@QB )@@G@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @D@]@@QC )@@G@@ WRITE (6,111) VALUE(LOCV),NODPLC(JUNODE+NODE1), @C@]@@ 1 NODQD )@@G@@PLC(JUNODE+NODE2),NODPLC(LOC+4) @^@]@@ 155 LOC=NODPLC(LOC) @#@]@@QE )@@G@@ GO TO 150 @[@]@@C @C@]@@C NONLINEAR CURRENT CONTROLLED VOLTQF )@@G@@AGE SOURCES @[@]@@C @A@]@@ 160 IF (JELCNT(8).EQ.0) GO TO 170 @#@]@@QG )@@G@@ ITITLE=0 @G@]@@ 161 FORMAT(//^0**** CURRENT-CONTROLLED VOLTAGEQH )@@G@@ SOURCES^/^0 NAME @C@]@@ 1 + - DIMENSION FUNCTION^/QI )@@G@@/) @^@]@@ LOC=LOCATE(8) @ @]@@ 165 IF (LOC.EQ.0) GO TO 170 QJ )@@G@@@A@]@@ IF (ITITLE.EQ.0) WRITE (6,161)@#@]@@ ITITLE=1 @^@]@@QK )@@G@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ QL )@@G@@NODE2=NODPLC(LOC+3) @D@]@@ WRITE (6,111) VALUE(LOCV),NODPLC(JUNQM )@@G@@ODE+NODE1), @C@]@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4) @^@]@@QN )@@G@@ 167 LOC=NODPLC(LOC) @#@]@@ GO TO 165 @[@]@@C @ @]@@C PRIQO )@@G@@NT INDEPENDENT SOURCES @[@]@@C @C@]@@ 170 IF ((JELCNT(9)+JELCNT(10QP )@@G@@)).EQ.0) GO TO 250@#@]@@ ITITLE=0 @G@]@@ 171 FORMAT(//^0**** INQQ )@@G@@DEPENDENT SOURCES^/^0 NAME NODES DC@D@]@@ 1 VALUE AC QR )@@G@@VALUE AC PHASE TRANSIENT^//) @^@]@@ DO 245 ID=9,10 @^@]@@QS )@@G@@ LOC=LOCATE(ID) @ @]@@ 180 IF (LOC.EQ.0) GO TO 245 @A@]@@ QT )@@G@@IF (ITITLE.EQ.0) WRITE (6,171)@#@]@@ ITITLE=1 @^@]@@ LOCV=NQU )@@G@@ODPLC(LOC+1)@^@]@@ LOCP=NODPLC(LOC+5)@ @]@@ NODE1=NODPLC(LOC+2QV )@@G@@) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ ITYPE=NODPLC(LOC+4QW )@@G@@)+1 @^@]@@ ANAM=ASTYP(ITYPE) @D@]@@ WRITE (6,181) VALUE(LOCVQX )@@G@@),NODPLC(JUNODE+NODE1), @E@]@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+1QY )@@G@@),VALUE(LOCV+2), @ @]@@ 2 VALUE(LOCV+3),ANAM @B@]@@ 181 FORMATQZ )@@G@@(6X,A8,2I5,1P3E11.2,2X,A8) @A@]@@ IF (JTRFLG.EQ.0) GO TO 240 RA )@@G@@@^@]@@ JSTART=LOCP+1 @C@]@@ GO TO (240,190,200,210,220,230RB )@@G@@), ITYPE @#@]@@ 190 JSTOP=LOCP+7@C@]@@ WRITE (6,191) (VALUE(J),RC )@@G@@J=JSTART,JSTOP) @C@]@@ 191 FORMAT(1H0,42X,*INITIAL VALUE*,1PE11.2,/, RD )@@G@@@C@]@@ 1 43X,*PULSED VALUE.*, E11.2,/, @C@]@@ 2 RE )@@G@@ 43X,*DELAY TIME...*, E11.2,/, @C@]@@ 3 43X,*RISETIMERF )@@G@@.....*, E11.2,/, @C@]@@ 4 43X,*FALLTIME.....*, E11.2,/, RG )@@G@@@C@]@@ 5 43X,*WIDTH........*, E11.2,/, @C@]@@ 6 RH )@@G@@ 43X,*PERIOD.......*, E11.2,/) @#@]@@ GO TO 240 @#@]@@ 200 RI )@@G@@JSTOP=LOCP+5@C@]@@ WRITE (6,201) (VALUE(J),J=JSTART,JSTOP) @C@]@@RJ )@@G@@ 201 FORMAT(1H0,42X,*OFFSET.......*,1PE11.2,/, @C@]@@ 1 4RK )@@G@@3X,*AMPLITUDE....*, E11.2,/, @C@]@@ 2 43X,*FREQUENCY....*RL )@@G@@, E11.2,/, @C@]@@ 3 43X,*DELAY........*, E11.2,/, @C@]@@RM )@@G@@ 4 43X,*THETA........*, E11.2,/) @#@]@@ GO TO 240 RN )@@G@@@#@]@@ 210 JSTOP=LOCP+6@C@]@@ WRITE (6,211) (VALUE(J),J=JSTART,JSTRO )@@G@@OP) @C@]@@ 211 FORMAT(1H0,42X,*INITIAL VALUE*,1PE11.2,/, @C@]@@ 1RP )@@G@@ 43X,*PULSED VALUE.*, E11.2,/, @C@]@@ 2 43X,*RIRQ )@@G@@SE DELAY...*, E11.2,/, @C@]@@ 3 43X,*RISE TAU.....*, E11RR )@@G@@.2,/, @C@]@@ 4 43X,*FALL DELAY...*, E11.2,/, @C@]@@ 5RS )@@G@@ 43X,*FALL TAU.....*, E11.2,/) @#@]@@ GO TO 240 @B@]@@RT )@@G@@ 220 CALL SIZMEM(NODPLC(LOC+5),JSTOP) @^@]@@ JSTOP=LOCP+JSTOP RU )@@G@@@C@]@@ WRITE (6,221) (VALUE(J),J=JSTART,JSTOP) @E@]@@ 221 FORMATRV )@@G@@(1H0,49X,*TIME VALUE*//,(46X,1P2E11.2)) @^@]@@ WRITE (6,226RW )@@G@@) @#@]@@ 226 FORMAT(1X) @#@]@@ GO TO 240 @#@]@@ 230 JSTOP=RX )@@G@@LOCP+5@C@]@@ WRITE (6,231) (VALUE(J),J=JSTART,JSTOP) @C@]@@ 231 RY )@@G@@FORMAT(1H0,42X,*OFFSET.......*,1PE11.2,/, @C@]@@ 1 43X,*AMRZ )@@G@@PLITUDE....*, E11.2,/, @C@]@@ 2 43X,*CARRIER FREQ.*, E11SA )@@G@@.2,/, @C@]@@ 3 43X,*MODN INDEX...*, E11.2,/, @C@]@@ 4SB )@@G@@ 43X,*SIGNAL FREQ..*, E11.2,/) @^@]@@ 240 LOC=NODPLC(LOC) SC )@@G@@@#@]@@ GO TO 180 @#@]@@ 245 CONTINUE @[@]@@C @ @]@@C PRISD )@@G@@NT TRANSMISSION LINES @[@]@@C @A@]@@ 250 IF (JELCNT(17).EQ.0) GO SE )@@G@@TO 260@#@]@@ ITITLE=0 @G@]@@ 251 FORMAT(//^0**** TRANSMISSION LSF )@@G@@INES^/^0 NAME NODES @A@]@@ 1 Z0 TDSG )@@G@@^//) @^@]@@ LOC=LOCATE(17) @ @]@@ 253 IF (LOC.EQ.0) GO TO 260 SH )@@G@@@A@]@@ IF (ITITLE.EQ.0) WRITE (6,251)@#@]@@ ITITLE=1 @^@]@@SI )@@G@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ SJ )@@G@@NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ SK )@@G@@NODE4=NODPLC(LOC+5) @D@]@@ WRITE (6,256) VALUE(LOCV),NODPLC(JUNSL )@@G@@ODE+NODE1), @D@]@@ 1 NODPLC(JUNODE+NODE2),NODPLC(JUNODE+NODE3), SM )@@G@@@E@]@@ 2 NODPLC(JUNODE+NODE4),VALUE(LOCV+1),VALUE(LOCV+2) @A@]@@SN )@@G@@ 256 FORMAT(6X,A8,4I5,1P2E11.2) @^@]@@ 258 LOC=NODPLC(LOC) @#@]@@SO )@@G@@ GO TO 253 @[@]@@C @#@]@@C PRINT DIODES @[@]@@C @A@]@@SP )@@G@@ 260 IF (JELCNT(11).EQ.0) GO TO 290@#@]@@ ITITLE=0 @G@]@@ 261 SQ )@@G@@FORMAT(//^0**** DIODES^/^0 NAME + - MODEL ARE@]@]@@SR )@@G@@ 1A^//) @^@]@@ LOC=LOCATE(11) @ @]@@ 270 IF (LOC.EQ.0) GO TSS )@@G@@O 290 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,261)@#@]@@ ITITLE=1 ST )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@SU )@@G@@ NODE2=NODPLC(LOC+3) @^@]@@ LOCM=NODPLC(LOC+5)@ @]@@ SV )@@G@@LOCM=NODPLC(LOCM+1) @#@]@@ AIC=ABLNK @B@]@@ IF (NODPLC(LSW )@@G@@OC+6).EQ.1) AIC=AOFF @D@]@@ WRITE (6,271) VALUE(LOCV),NODPLC(JUNSX )@@G@@ODE+NODE1), @E@]@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCM),VALUE(LOCV+1SY )@@G@@),AIC @B@]@@ 271 FORMAT(6X,A8,2I5,2X,A8,F8.3,2X,A8) @^@]@@ 280 LOC=NOSZ )@@G@@DPLC(LOC) @#@]@@ GO TO 270 @[@]@@C @^@]@@C PRINT TRANSISTOTA )@@G@@RS @[@]@@C @A@]@@ 290 IF (JELCNT(12).EQ.0) GO TO 320@#@]@@ TB )@@G@@ITITLE=0 @G@]@@ 291 FORMAT(//^0**** BIPOLAR JUNCTION TRANSISTORS^/^0TC )@@G@@ NAME C@B@]@@ 1 B E MODEL AREA^//) @^@]@@TD )@@G@@ LOC=LOCATE(12) @ @]@@ 300 IF (LOC.EQ.0) GO TO 320 @A@]@@ TE )@@G@@IF (ITITLE.EQ.0) WRITE (6,291)@#@]@@ ITITLE=1 @^@]@@ LOCV=NTF )@@G@@ODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLCTG )@@G@@(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @^@]@@ LOCM=NODPLC(TH )@@G@@LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @#@]@@ AIC=ABLNK @B@]@@TI )@@G@@ IF (NODPLC(LOC+9).EQ.1) AIC=AOFF @D@]@@ WRITE (6,301) VALUTJ )@@G@@E(LOCV),NODPLC(JUNODE+NODE1), @D@]@@ 1 NODPLC(JUNODE+NODE2),NODPLCTK )@@G@@(JUNODE+NODE3), @B@]@@ 2 VALUE(LOCM),VALUE(LOCV+1),AIC @B@]@@TL )@@G@@ 301 FORMAT(6X,A8,3I5,2X,A8,F8.3,2X,A8) @^@]@@ 310 LOC=NODPLC(LOC) TM )@@G@@@#@]@@ GO TO 300 @[@]@@C @#@]@@C PRINT JFETS @[@]@@C TN )@@G@@@A@]@@ 320 IF (JELCNT(13).EQ.0) GO TO 350@#@]@@ ITITLE=0 @F@]@@TO )@@G@@ 321 FORMAT(//^0**** JFETS^/^0 NAME D G S MODEL@#@]@@TP )@@G@@ 1 AREA^//) @^@]@@ LOC=LOCATE(13) @ @]@@ 330 IF (LOC.EQ.0TQ )@@G@@) GO TO 350 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,321)@#@]@@ ITITLETR )@@G@@=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) TS )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) TT )@@G@@@^@]@@ LOCM=NODPLC(LOC+7)@ @]@@ LOCM=NODPLC(LOCM+1) @#@]@@TU )@@G@@ AIC=ABLNK @B@]@@ IF (NODPLC(LOC+8).EQ.1) AIC=AOFF @D@]@@TV )@@G@@ WRITE (6,301) VALUE(LOCV),NODPLC(JUNODE+NODE1), @D@]@@ 1 NODTW )@@G@@PLC(JUNODE+NODE2),NODPLC(JUNODE+NODE3), @B@]@@ 2 VALUE(LOCM),VALTX )@@G@@UE(LOCV+1),AIC @^@]@@ 340 LOC=NODPLC(LOC) @#@]@@ GO TO 330 TY )@@G@@@[@]@@C @#@]@@C PRINT MOSFETS @[@]@@C @A@]@@ 350 IF (JELCNT(1TZ )@@G@@4).EQ.0) GO TO 400@#@]@@ ITITLE=0 @F@]@@ 351 FORMAT(//^0**** MOUA )@@G@@SFETS^,/,^0 NAME D G S B MODEL@B@]@@ 1 L W ADUB )@@G@@ AS^,//) @^@]@@ LOC=LOCATE(14) @ @]@@ 360 IF (LOC.EQ.0UC )@@G@@) GO TO 400 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,351)@#@]@@ ITITLEUD )@@G@@=1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) UE )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) UF )@@G@@@ @]@@ NODE4=NODPLC(LOC+5) @^@]@@ LOCM=NODPLC(LOC+8)@ @]@@UG )@@G@@ LOCM=NODPLC(LOCM+1) @#@]@@ AIC=ABLNK @B@]@@ IF (NOUH )@@G@@DPLC(LOC+9).EQ.1) AIC=AOFF @D@]@@ WRITE (6,361) VALUE(LOCV),NODPUI )@@G@@LC(JUNODE+NODE1), @D@]@@ 1 NODPLC(JUNODE+NODE2),NODPLC(JUNODE+NODEUJ )@@G@@3), @G@]@@ 2 NODPLC(JUNODE+NODE4),VALUE(LOCM),VALUE(LOCV+1),VALUUK )@@G@@E(LOCV+2), @B@]@@ 3 VALUE(LOCV+3),VALUE(LOCV+4),AIC @C@]@@ 361 UL )@@G@@FORMAT(6X,A8,4I3,1X,A8,1P4E8.1,1X,A8) @^@]@@ 370 LOC=NODPLC(LOC) UM )@@G@@@#@]@@ GO TO 360 @[@]@@C @^@]@@C SUBCIRCUIT CALLS @[@]@@UN )@@G@@C @A@]@@ 400 IF (JELCNT(19).EQ.0) GO TO 500@#@]@@ ITITLE=0 UO )@@G@@@G@]@@ 401 FORMAT(//^0**** SUBCIRCUIT CALLS^/^0 NAME SUBCIRCUITUP )@@G@@ EXT@^@]@@ 1ERNAL NODES^//) @^@]@@ LOC=LOCATE(19) @ @]@@UQ )@@G@@ 410 IF (LOC.EQ.0) GO TO 500 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,401)UR )@@G@@@#@]@@ ITITLE=1 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ LOCN=NUS )@@G@@ODPLC(LOC+2)@B@]@@ CALL SIZMEM(NODPLC(LOC+2),NNODX) @^@]@@ UT )@@G@@LOCS=NODPLC(LOC+3)@ @]@@ LOCSV=NODPLC(LOCS+1) @#@]@@ JSTARTUU )@@G@@=1 @ @]@@ NDPRLN=(LWIDTH-28)/5 @B@]@@ 412 JSTOP=MIN0(NNODX,JUV )@@G@@START+NDPRLN-1) @ @]@@ DO 414 J=JSTART,JSTOP @ @]@@ NODE=NUW )@@G@@ODPLC(LOCN+J) @B@]@@ ITAB(J-JSTART+1)=NODPLC(JUNODE+NODE)@#@]@@UX )@@G@@ 414 CONTINUE @^@]@@ IF (JSTART.EQ.1) @G@]@@ 1 WRITE (6,UY )@@G@@416) VALUE(LOCV),VALUE(LOCSV),(ITAB(J),J=1,JSTOP) @A@]@@ 416 FORMATUZ )@@G@@(6X,A8,2X,A8,4X,20I5) @^@]@@ IF (JSTART.NE.1) @E@]@@ 1 WRIVA )@@G@@TE (6,418) (ITAB(J-JSTART+1),J=JSTART,JSTOP) @^@]@@ 418 FORMAT(28X,2VB )@@G@@0I5) @^@]@@ JSTART=JSTOP+1 @A@]@@ IF (JSTART.LE.NNODX) GO VC )@@G@@TO 412@A@]@@ IF (NNODX.LE.NDPRLN) GO TO 420@^@]@@ WRITE (6,226VD )@@G@@) @^@]@@ 420 LOC=NODPLC(LOC) @#@]@@ GO TO 410 @[@]@@C VE )@@G@@@]@]@@C FINISHED @[@]@@C @]@]@@ 500 RETURN@]@]@@ END @^@]@@VF )@@G@@ SUBROUTINE MODCHK @[@]@@C @G@]@@C THIS ROUTINE PERFORMS ONVG )@@G@@E-TIME PROCESSING OF DEVICE MODEL PARA- @G@]@@C METERS AND PRINTS OUT VH )@@G@@A DEVICE MODEL SUMMARY. IT ALSO RESERVES THE @G@]@@C ADDITIONAL NODESVI )@@G@@ REQUIRED BY NONZERO DEVICE EXTRINSIC RESISTANCES. @[@]@@C @G@]@@VJ )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, VK )@@G@@@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEVL )@@G@@, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,VM )@@G@@NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQVN )@@G@@UA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXVO )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @F@]@@ VP )@@G@@COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1VQ )@@G@@ IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50VR )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IVS )@@G@@BR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)VT )@@G@@,VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXVU )@@G@@ORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMONVV )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1VW )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ VX )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@VY )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@VZ )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ WA )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))WB )@@G@@@[@]@@C @[@]@@C @A@]@@ DIMENSION ITAB(50),ATABLE(10) @A@]@@WC )@@G@@ DIMENSION ANTYPE(4),APTYPE(4) @^@]@@ INTEGER PRPOSN(90)@F@]@@WD )@@G@@ DIMENSION IPAR(5),AMPAR(90),DEFVAL(90),IFMT(90),IVCHK(90) @E@]@@WE )@@G@@ DIMENSION TITLED(4),TITLEB(4),TITLEJ(4),TITLEM(4) @G@]@@ WF )@@G@@DATA TITLED / 8HDIODE MO, 8HDEL PARA, 8HMETERS , 8H / @G@]@@WG )@@G@@ DATA TITLEB / 8HBJT MODE, 8HL PARAME, 8HTERS , 8H / WH )@@G@@@G@]@@ DATA TITLEJ / 8HJFET MOD, 8HEL PARAM, 8HETERS , 8H WI )@@G@@ / @G@]@@ DATA TITLEM / 8HMOSFET M, 8HODEL PAR, 8HAMETERS , 8H WJ )@@G@@ / @B@]@@ DATA ANTYPE /0,3HNPN,3HNJF,4HNMOS/ @B@]@@ WK )@@G@@DATA APTYPE /0,3HPNP,3HPJF,4HPMOS/ @B@]@@ DATA IPAR / 0, 14, 43, 5WL )@@G@@5, 85 / @#@]@@ DATA AMPAR /@G@]@@ 1 6HIS ,6HRS ,6HNWM )@@G@@ ,6HTT ,6HCJO ,6HPB ,6HM ,@G@]@@ 2 6HEG ,6HPT WN )@@G@@ ,6HKF ,6HAF ,6HFC ,6HBV ,6HIBV ,@G@]@@ 1 6HBF ,WO )@@G@@6HBR ,6HIS ,6HRB ,6HRC ,6HRE ,6HVA ,@G@]@@ 2 6HVWP )@@G@@B ,6HIK ,6HC2 ,6HNE ,6HIKR ,6HC4 ,6HNC ,@G@]@@ 3WQ )@@G@@ 6HTF ,6HTR ,6HCCS ,6HCJE ,6HPE ,6HME ,6HCJC ,@G@]@@WR )@@G@@ 4 6HPC ,6HMC ,6HEG ,6HPT ,6HKF ,6HAF ,6HFC ,WS )@@G@@@#@]@@ 5 6HDELAY ,@G@]@@ 1 6HVTO ,6HBETA ,6HLAMBDA,6HRD WT )@@G@@ ,6HRS ,6HCGS ,6HCGD ,@D@]@@ 2 6HPB ,6HIS ,6HKF ,WU )@@G@@6HAF ,6HFC ,@G@]@@ 1 6HVTO ,6HKP ,6HGAMMA ,6HPHI ,6HLWV )@@G@@AMBDA,6HRD ,6HRS ,@G@]@@ 2 6HCGD ,6HCGS ,6HCGB ,6HCBD WW )@@G@@ ,6HCBS ,6HTOX ,6HPB ,@G@]@@ 3 6HJS ,6HNSUB ,6HNSS ,WX )@@G@@6HNFS ,6HXJ ,6HLD ,6HNGATE ,@G@]@@ 4 6HTPS ,6HUO ,6HUWY )@@G@@CRIT ,6HUEXP ,6HUTRA ,6HKF ,6HAF ,@ @]@@ 5 6HFC ,6HLEVWZ )@@G@@EL , @^@]@@ 1 5*0.0 / @^@]@@ DATA PRPOSN / @D@]@@XA )@@G@@ 1 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, @G@]@@ 2 1, XB )@@G@@2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20, @B@]@@ 3XC )@@G@@ 21,22,23,24,25,26,27,28,29, @C@]@@ 4 1, 2, 3, 4, 5, 6, 7, XD )@@G@@8, 9,10,11,12, @G@]@@ 5 30, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,1XE )@@G@@3,14,15,16,17,18,19, @B@]@@ 6 20,21,22,23,24,25,26,27,28,29, XF )@@G@@@#@]@@ 7 5*0 / @^@]@@ DATA DEFVAL / @F@]@@ 1 1.0XG )@@G@@E-14, 0.0, 1.0, 2*0.0, 1.0, 0.5, 1.11, @A@]@@ 2 3.0XH )@@G@@,0.0,1.0,0.5,0.0,1.0E-3,@F@]@@ 1 100.0, 1.0,1.0E-14, 7*0.0, XI )@@G@@ 2.0, 2*0.0, 2.0, @F@]@@ 2 4*0.0, 1.0, 0.5, 0.0, XJ )@@G@@ 1.0, 0.5, 1.11, @B@]@@ 3 3.0, 0.0, 1.0, 0.5, XK )@@G@@@#@]@@ 4 0.0, @F@]@@ 1 -2.0, 1.0E-4, 5*0.0, 1.0,1XL )@@G@@.0E-14, 0.0, 1.0, @#@]@@ 2 0.5, @F@]@@ 1 0.0, XM )@@G@@1.0E-5, 0.0, 0.6, 9*0.0, 0.8, 1.0E-8, @F@]@@ 2 4*0.0, XN )@@G@@ 0.8, 0.0, 1.0, 700.0, 1.0E+4, 3*0.0, @A@]@@ 3 1.0, XO )@@G@@ 0.5, 1.0, @^@]@@ 1 5*0.0 / @#@]@@ DATA IFMT / XP )@@G@@@B@]@@ 1 4,1,1,2,2,1,1,1,1,2,1,1,2,2, @G@]@@ 2 3,3,4,1,1XQ )@@G@@,1,1,1,2,2,1,2,2,1,2,2,2,2,1,1,2,1,1,1,1,2,1,1,2, @A@]@@ 3 3,4XR )@@G@@,1,1,1,2,2,1,2,2,1,1, @G@]@@ 4 3,4,1,1,2,1,1,2,2,2,2,2,2,1,2,2,2XS )@@G@@,2,2,2,2,1,1,2,1,1,2,1,1,3, @#@]@@ 5 5*0 / @#@]@@ DATA IXT )@@G@@VCHK /@B@]@@ 1 0,0,0,0,0,0,0,0,0,0,0,0,0,0, @G@]@@ 2 0,0XU )@@G@@,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @A@]@@ 3XV )@@G@@ -1,0,0,0,0,0,0,0,0,0,0,0, @G@]@@ 4 -1,0,0,-1,0,0,0,0,0,0,0,0,0XW )@@G@@,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0, @#@]@@ 5 0, @#@]@@ 6XX )@@G@@ 5*0 / @[@]@@C @[@]@@C @A@]@@ TNOM=VALUE(ITEMPS+1)+CTOXY )@@G@@K @^@]@@ XKT=BOLTZ*TNOM @^@]@@ VT=XKT/CHARGE @#@]@@XZ )@@G@@ XNI=1.45E10 @#@]@@ EGFET=1.12 @E@]@@ NUMMOD=JELCNT(21)+YA )@@G@@JELCNT(22)+JELCNT(23)+JELCNT(24) @A@]@@ IF (NUMMOD.EQ.0) GO TO 1YB )@@G@@000 @[@]@@C @B@]@@C SPECIAL PREPROCESSING FOR MOSFET MODELS@[@]@@YC )@@G@@C @^@]@@ LOC=LOCATE(24) @ @]@@ 10 IF (LOC.EQ.0) GO TO 28 YD )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ TYPE=NODPLC(LOC+2)@[@]@@C YE )@@G@@@D@]@@C DEFAULT PARAMETERS FOR HIGHER LEVEL MOS MODELS @[@]@@C YF )@@G@@@^@]@@ LEV=VALUE(LOCV+30)@^@]@@ VALUE(LOCV+36)=LEV@ @]@@ YG )@@G@@XNSUB=VALUE(LOCV+16) @G@]@@ IF (VALUE(LOCV+13).LE.0.0.AND.LEV.GTYH )@@G@@.1) VALUE(LOCV+13)=1.0E-5 @B@]@@ IF (VALUE(LOCV+13).LE.0.0) GO YI )@@G@@TO 25 @ @]@@ COX=EPSOX/VALUE(LOCV+13)@C@]@@ IF (XNSUB.LE.0.0.AYJ )@@G@@ND.LEV.LT.3) GO TO 25 @A@]@@ IF (XNSUB.LE.0.0) XNSUB=1.0E15@A@]@@YK )@@G@@ IF (XNSUB.LE.XNI) GO TO 23 @[@]@@C @C@]@@C NSUB NONZEROYL )@@G@@ => PROCESS ORIENTED MODEL @[@]@@C @C@]@@ IF (VALUE(LOCV+4).YM )@@G@@LE.0.0) VALUE(LOCV+4)= @C@]@@ 1 AMAX1((2.0*VT*ALOG(XNSUB/XNI)),0.YN )@@G@@1) @A@]@@ FERMIS=TYPE*0.5*VALUE(LOCV+4) @#@]@@ WKFNG=3.2 YO )@@G@@@B@]@@ IF (VALUE(LOCV+21).LE.0.0) GO TO 15 @[@]@@C @^@]@@C POLYP )@@G@@YSILICON GATE @[@]@@C @E@]@@ FERMIG=TYPE*VALUE(LOCV+22)*VT*YQ )@@G@@ALOG(VALUE(LOCV+21)/XNI)@A@]@@ WKFNG=3.25+0.5*EGFET-FERMIG @B@]@@YR )@@G@@ 15 WKFNGS=WKFNG-(3.25+0.5*EGFET+FERMIS)@A@]@@ IF (VALUE(LOCV+3).YS )@@G@@LE.0.0) @E@]@@ 1 VALUE(LOCV+3)=SQRT(2.0*EPSSIL*CHARGE*XNSUB)/CYT )@@G@@OX @[@]@@C @#@]@@C COMPUTED VTO@[@]@@C @B@]@@ IF (VAYU )@@G@@LUE(LOCV+1).NE.0.0) GO TO 20 @D@]@@ VALUE(LOCV+34)=WKFNGS-VALUE(LOYV )@@G@@CV+17)*CHARGE/COX @A@]@@ VALUE(LOCV+1)=VALUE(LOCV+34) @F@]@@ 1YW )@@G@@ +TYPE*(VALUE(LOCV+3)*SQRT(VALUE(LOCV+4))+VALUE(LOCV+4)) @#@]@@ YX )@@G@@GO TO 21 @[@]@@C @A@]@@C MEASURED VTO HAS BEEN INPUT @[@]@@YY )@@G@@C @A@]@@ 20 VALUE(LOCV+34)=VALUE(LOCV+1) @F@]@@ 1 -TYPE*(VAYZ )@@G@@LUE(LOCV+3)*SQRT(VALUE(LOCV+4))+VALUE(LOCV+4)) @[@]@@C @G@]@@C ZA )@@G@@COMPUTE KP, IF NOT INPUT, USING DEFAULT MOBILITY 600 CM**2/V*SEC @[@]@@ZB )@@G@@C @B@]@@ 21 IF (VALUE(LOCV+2).GT.0.0) GO TO 22 @D@]@@ IF (VAZC )@@G@@LUE(LOCV+23).LE.0.0) VALUE(LOCV+23)=600.0 @B@]@@ VALUE(LOCV+2)=VALUZD )@@G@@E(LOCV+23)*COX @ @]@@ 22 IF (LEV.GT.2) GO TO 25 @E@]@@ VALUE(ZE )@@G@@LOCV+35)=SQRT((EPSSIL+EPSSIL)/(CHARGE*XNSUB)) @#@]@@ GO TO 25 ZF )@@G@@@^@]@@ 23 VALUE(LOCV+16)=0.0@ @]@@ WRITE (6,24) VALUE(LOCV)@E@]@@ZG )@@G@@ 24 FORMAT(^0*ERROR*: NSUB@NI IN MOSFET MODEL ^,A8,/) @]@]@@ ZH )@@G@@NOGO=1@^@]@@ 25 LOC=NODPLC(LOC) @#@]@@ GO TO 10 @[@]@@C ZI )@@G@@@^@]@@C ASSIGN DEFAULT VALUES@[@]@@C @^@]@@ 28 KNTLIM=LWIDTH/11 ZJ )@@G@@@^@]@@ DO 390 ID=1,4 @B@]@@ IF (JELCNT(ID+20).EQ.0) GO TO ZK )@@G@@390 @^@]@@ LOCM=IPAR(ID) @ @]@@ NOPAR=IPAR(ID+1)-LOCM ZL )@@G@@@^@]@@ DO 40 I=1,NOPAR @B@]@@ IF (IFMT(LOCM+I).GE.3) GO TO 3ZM )@@G@@0 @#@]@@ ITAB(I)=0 @#@]@@ GO TO 40 @ @]@@ 30 ITAB(IZN )@@G@@)=IFMT(LOCM+I)-2 @#@]@@ 40 CONTINUE @^@]@@ LOC=LOCATE(ID+20) ZO )@@G@@@ @]@@ 50 IF (LOC.EQ.0) GO TO 75 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ZP )@@G@@ DO 70 I=1,NOPAR @B@]@@ IF (VALUE(LOCV+I).EQ.0.0) GO TO 60 ZQ )@@G@@@B@]@@ IF (IVCHK(LOCM+I).LT.0) GO TO 55 @B@]@@ IF (VALUE(LOZR )@@G@@CV+I).LT.0.0) GO TO 60 @A@]@@ 55 IF (ITAB(I).NE.0) GO TO 70 @ @]@@ZS )@@G@@ ITAB(I)=IFMT(LOCM+I) @#@]@@ GO TO 70 @A@]@@ 60 VALUE(ZT )@@G@@LOCV+I)=DEFVAL(LOCM+I) @#@]@@ 70 CONTINUE @^@]@@ LOC=NODPLC(LZU )@@G@@OC) @#@]@@ GO TO 50 @[@]@@C @^@]@@C LIMIT MODEL VALUES ZV )@@G@@@[@]@@C @ @]@@ 75 GO TO (80,85,90,95), ID @]@]@@C... DIODES@^@]@@ZW )@@G@@ 80 LOC=LOCATE(21) @ @]@@ 82 IF (LOC.EQ.0) GO TO 100 @^@]@@ ZX )@@G@@LOCV=NODPLC(LOC+1)@C@]@@ VALUE(LOCV+7)=AMIN1(VALUE(LOCV+7),0.9) ZY )@@G@@@C@]@@ VALUE(LOCV+8)=AMAX1(VALUE(LOCV+8),0.1) @C@]@@ VALUE(ZZ )@@G@@LOCV+11)=AMAX1(VALUE(LOCV+11),0.1) @C@]@@ VALUE(LOCV+12)=AMIN1(VALAA )@@G@@UE(LOCV+12),0.95) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 82 AB )@@G@@@ @]@@C... BIPOLAR TRANSISTORS @^@]@@ 85 LOC=LOCATE(22) @ @]@@AC )@@G@@ 87 IF (LOC.EQ.0) GO TO 100 @^@]@@ LOCV=NODPLC(LOC+1)@C@]@@ AD )@@G@@VALUE(LOCV+20)=AMIN1(VALUE(LOCV+20),0.9) @C@]@@ VALUE(LOCV+23)=AMIAE )@@G@@N1(VALUE(LOCV+23),0.9) @C@]@@ VALUE(LOCV+24)=AMAX1(VALUE(LOCV+24),AF )@@G@@0.1) @C@]@@ VALUE(LOCV+27)=AMAX1(VALUE(LOCV+27),0.1) @C@]@@ AG )@@G@@VALUE(LOCV+28)=AMIN1(VALUE(LOCV+28),0.95) @A@]@@ IF (VALUE(LOCV+29)AH )@@G@@.GE.1.0) @E@]@@ 1 VALUE(LOCV+29)=(VALUE(LOCV+29)/RAD)*VALUE(LOCAI )@@G@@V+15) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 87 @]@]@@C... AJ )@@G@@JFETS @^@]@@ 90 LOC=LOCATE(23) @ @]@@ 92 IF (LOC.EQ.0) GO TO 100 AK )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@C@]@@ VALUE(LOCV+11)=AMAX1(VALUE(LOCAL )@@G@@V+11),0.1) @C@]@@ VALUE(LOCV+12)=AMIN1(VALUE(LOCV+12),0.95) @^@]@@AM )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 92 @#@]@@C... MOSFETS AN )@@G@@@^@]@@ 95 LOC=LOCATE(24) @ @]@@ 97 IF (LOC.EQ.0) GO TO 100 @^@]@@AO )@@G@@ LOCV=NODPLC(LOC+1)@C@]@@ VALUE(LOCV+28)=AMAX1(VALUE(LOCV+28),AP )@@G@@0.1) @C@]@@ VALUE(LOCV+29)=AMIN1(VALUE(LOCV+29),0.95) @D@]@@ AQ )@@G@@IF (VALUE(LOCV+30).GT.3.0) VALUE(LOCV+30)=1.0 @A@]@@ VALUE(LOCV+3AR )@@G@@6)=VALUE(LOCV+30) @E@]@@ IF (VALUE(LOCV+5).GE.0.20) WRITE (6,98) VAAS )@@G@@LUE(LOCV) @G@]@@ 98 FORMAT(^0WARNING: THE VALUE OF LAMBDA FOR MOSFEAT )@@G@@T MODEL ^A8,/, @F@]@@ 1 ^ IS UNUSUALLY LARGE AND MAY CAUSE NONCAU )@@G@@ONVERGENCE^,/) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 97 AV )@@G@@@[@]@@C @ @]@@C PRINT MODEL PARAMETERS @[@]@@C @A@]@@ 100 AW )@@G@@IF (IPRNTM.EQ.0) GO TO 390 @^@]@@ LOCS=LOCATE(ID+20)@]@]@@ 110 AX )@@G@@KNTR=0@#@]@@ LOC=LOCS @A@]@@ GO TO (120,130,140,150),ID AY )@@G@@@A@]@@ 120 CALL TITLE(0,LWIDTH,1,TITLED) @#@]@@ GO TO 200 @A@]@@AZ )@@G@@ 130 CALL TITLE(0,LWIDTH,1,TITLEB) @#@]@@ GO TO 200 @A@]@@ 140 BA )@@G@@CALL TITLE(0,LWIDTH,1,TITLEJ) @#@]@@ GO TO 200 @A@]@@ 150 CALL TBB )@@G@@ITLE(0,LWIDTH,1,TITLEM) @ @]@@ 200 IF (LOC.EQ.0) GO TO 210 @A@]@@ BC )@@G@@IF (KNTR.LT.KNTLIM) GO TO 220 @#@]@@ 210 LOCN=LOC @#@]@@ GO TO BD )@@G@@240 @#@]@@ 220 KNTR=KNTR+1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ BE )@@G@@ATABLE(KNTR)=VALUE(LOCV)@^@]@@ 230 LOC=NODPLC(LOC) @#@]@@ GO TO BF )@@G@@200 @B@]@@ 240 WRITE (6,241) (ATABLE(K),K=1,KNTR) @ @]@@ 241 FORMATBG )@@G@@(//11X,12(2X,A8)) @ @]@@ IF (ID.EQ.1) GO TO 300 @]@]@@ KNTR=0BH )@@G@@@#@]@@ LOC=LOCS @ @]@@ 250 IF (LOC.EQ.0) GO TO 260 @A@]@@ BI )@@G@@IF (KNTR.GE.KNTLIM) GO TO 260 @#@]@@ KNTR=KNTR+1 @ @]@@ ATABLEBJ )@@G@@(KNTR)=ANTYPE(ID) @D@]@@ IF (NODPLC(LOC+2).EQ.-1) ATABLE(KNTR)=APTYBK )@@G@@PE(ID)@^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 250 @B@]@@ 260 BL )@@G@@WRITE (6,261) (ATABLE(K),K=1,KNTR) @B@]@@ 261 FORMAT(^0TYPE^,4X,12(4X,BM )@@G@@A4,2X)) @^@]@@ 300 DO 340 II=1,NOPAR @^@]@@ I=PRPOSN(LOCM+II) BN )@@G@@@A@]@@ IF (ITAB(I).EQ.0) GO TO 340 @]@]@@ KNTR=0@#@]@@ BO )@@G@@LOC=LOCS @ @]@@ 310 IF (LOC.EQ.0) GO TO 320 @A@]@@ IF (KNTR.GE.BP )@@G@@KNTLIM) GO TO 320 @^@]@@ LOCV=NODPLC(LOC+1)@#@]@@ KNTR=KNTR+1 BQ )@@G@@@A@]@@ ATABLE(KNTR)=VALUE(LOCV+I) @^@]@@ LOC=NODPLC(LOC) BR )@@G@@@#@]@@ GO TO 310 @A@]@@ 320 IF (ITAB(I).EQ.2) GO TO 330 @D@]@@BS )@@G@@ WRITE (6,321) AMPAR(LOCM+I),(ATABLE(K),K=1,KNTR)@ @]@@ 321 FORMATBT )@@G@@(1H0,A8,12F10.3) @#@]@@ GO TO 340 @D@]@@ 330 WRITE (6,331) AMPABU )@@G@@R(LOCM+I),(ATABLE(K),K=1,KNTR)@ @]@@ 331 FORMAT(1H0,A8,1P12E10.2)@#@]@@BV )@@G@@ 340 CONTINUE @ @]@@ IF (LOCN.EQ.0) GO TO 390@#@]@@ LOCS=LBW )@@G@@OCN @#@]@@ GO TO 110 @#@]@@ 390 CONTINUE @[@]@@C @ @]@@BX )@@G@@C PROCESS MODEL PARAMETERS @[@]@@C @]@]@@C DIODES @[@]@@C BY )@@G@@@^@]@@ 400 LOC=LOCATE(21) @ @]@@ 410 IF (LOC.EQ.0) GO TO 420 @^@]@@BZ )@@G@@ LOCV=NODPLC(LOC+1)@F@]@@ IF (VALUE(LOCV+2).NE.0.0) VALUE(LOCVCA )@@G@@+2)=1.0/VALUE(LOCV+2) @^@]@@ PB=VALUE(LOCV+6) @^@]@@ XM=VALCB )@@G@@UE(LOCV+7) @^@]@@ FC=VALUE(LOCV+12) @ @]@@ VALUE(LOCV+12)=FC*CC )@@G@@PB @^@]@@ XFC=ALOG(1.0-FC) @E@]@@ VALUE(LOCV+15)=PB*(1.0-ECD )@@G@@XP((1.0-XM)*XFC))/(1.0-XM) @B@]@@ VALUE(LOCV+16)=EXP((1.0+XM)*XFCE )@@G@@C) @A@]@@ VALUE(LOCV+17)=1.0-FC*(1.0+XM)@^@]@@ CSAT=VALUE(LCF )@@G@@OCV+1)@ @]@@ VTE=VALUE(LOCV+3)*VT @C@]@@ VALUE(LOCV+18)=VTECG )@@G@@*ALOG(VTE/(ROOT2*CSAT)) @^@]@@ BV=VALUE(LOCV+13) @ @]@@ IF (BVCH )@@G@@.EQ.0) GO TO 418 @^@]@@ CBV=VALUE(LOCV+14)@B@]@@ IF (CBV.GE.CCI )@@G@@SAT*BV/VT) GO TO 412 @^@]@@ CBV=CSAT*BV/VT @A@]@@ WRITE CJ )@@G@@(6,411) VALUE(LOCV),CBV @G@]@@ 411 FORMAT(^0WARNING: IN DIODE MODEL ^,CK )@@G@@A8,^ IBV INCREASED TO ^,1PE10.@F@]@@ 1 11X,^TO RESOLVE INCOMPATIBICL )@@G@@LITY WITH SPECIFIED IS^,/) @]@]@@ XBV=BV@#@]@@ GO TO 416 CM )@@G@@@^@]@@ 412 TOL=RELTOL*CBV @A@]@@ XBV=BV-VT*ALOG(1.0+CBV/CSAT) CN )@@G@@@]@]@@ ITER=0@B@]@@ 413 XBV=BV-VT*ALOG(CBV/CSAT+1.0-XBV/VT) @C@]@@CO )@@G@@ XCBV=CSAT*(EXP((BV-XBV)/VT)-1.0+XBV/VT) @B@]@@ IF (ABS(XCBVCP )@@G@@-CBV).LE.TOL) GO TO 416 @#@]@@ ITER=ITER+1 @A@]@@ IF (ITER.LT.CQ )@@G@@25) GO TO 413 @ @]@@ WRITE (6,415) XBV,XCBV @G@]@@ 415 FORMATCR )@@G@@(^0WARNING: UNABLE TO MATCH FORWARD AND REVERSE DIODE REGIO@D@]@@ 1CS )@@G@@NS^,/,11X,^BV = ^,1PE10.3,^ AND IBV = ^,E10.3,/)@^@]@@ 416 VALUE(LOCV+1CT )@@G@@3)=XBV@^@]@@ 418 LOC=NODPLC(LOC) @#@]@@ GO TO 410 @[@]@@C CU )@@G@@@ @]@@C BIPOLAR TRANSISTOR MODELS @[@]@@C @^@]@@ 420 LOC=LOCATE(2CV )@@G@@2) @ @]@@ 430 IF (LOC.EQ.0) GO TO 440 @^@]@@ LOCV=NODPLC(LOC+1)CW )@@G@@@F@]@@ IF (VALUE(LOCV+4).NE.0.0) VALUE(LOCV+4)=1.0/VALUE(LOCV+4) CX )@@G@@@F@]@@ IF (VALUE(LOCV+5).NE.0.0) VALUE(LOCV+5)=1.0/VALUE(LOCV+5) CY )@@G@@@F@]@@ IF (VALUE(LOCV+6).NE.0.0) VALUE(LOCV+6)=1.0/VALUE(LOCV+6) CZ )@@G@@@F@]@@ IF (VALUE(LOCV+7).NE.0.0) VALUE(LOCV+7)=1.0/VALUE(LOCV+7) DA )@@G@@@F@]@@ IF (VALUE(LOCV+8).NE.0.0) VALUE(LOCV+8)=1.0/VALUE(LOCV+8) DB )@@G@@@F@]@@ IF (VALUE(LOCV+9).NE.0.0) VALUE(LOCV+9)=1.0/VALUE(LOCV+9) DC )@@G@@@F@]@@ IF (VALUE(LOCV+12).NE.0.0) VALUE(LOCV+12)=1.0/VALUE(LOCV+12)DD )@@G@@@^@]@@ PE=VALUE(LOCV+19) @^@]@@ XME=VALUE(LOCV+20)@^@]@@ DE )@@G@@PC=VALUE(LOCV+22) @^@]@@ XMC=VALUE(LOCV+23)@^@]@@ FC=VALUE(LOCDF )@@G@@V+28) @ @]@@ VALUE(LOCV+28)=FC*PE @^@]@@ XFC=ALOG(1.0-FC) DG )@@G@@@E@]@@ VALUE(LOCV+30)=PE*(1.0-EXP((1.0-XME)*XFC))/(1.0-XME) @B@]@@DH )@@G@@ VALUE(LOCV+31)=EXP((1.0+XME)*XFC) @B@]@@ VALUE(LOCV+32)=1.0DI )@@G@@-FC*(1.0+XME) @ @]@@ VALUE(LOCV+33)=FC*PC @E@]@@ VALUE(DJ )@@G@@LOCV+34)=PC*(1.0-EXP((1.0-XMC)*XFC))/(1.0-XMC) @B@]@@ VALUE(LOCV+3DK )@@G@@5)=EXP((1.0+XMC)*XFC) @B@]@@ VALUE(LOCV+36)=1.0-FC*(1.0+XMC) DL )@@G@@@^@]@@ CSAT=VALUE(LOCV+3)@C@]@@ VALUE(LOCV+37)=VT*ALOG(VT/(ROODM )@@G@@T2*CSAT)) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 430 @[@]@@DN )@@G@@C @#@]@@C JFET MODELS @[@]@@C @^@]@@ 440 LOC=LOCATE(23) DO )@@G@@@ @]@@ 450 IF (LOC.EQ.0) GO TO 460 @^@]@@ LOCV=NODPLC(LOC+1)@F@]@@DP )@@G@@ IF (VALUE(LOCV+4).NE.0.0) VALUE(LOCV+4)=1.0/VALUE(LOCV+4) @F@]@@DQ )@@G@@ IF (VALUE(LOCV+5).NE.0.0) VALUE(LOCV+5)=1.0/VALUE(LOCV+5) @^@]@@DR )@@G@@ PB=VALUE(LOCV+8) @]@]@@ XM=0.5@^@]@@ FC=VALUE(LOCV+12) DS )@@G@@@ @]@@ VALUE(LOCV+12)=FC*PB @^@]@@ XFC=ALOG(1.0-FC) @E@]@@DT )@@G@@ VALUE(LOCV+13)=PB*(1.0-EXP((1.0-XM)*XFC))/(1.0-XM) @B@]@@ DU )@@G@@VALUE(LOCV+14)=EXP((1.0+XM)*XFC) @A@]@@ VALUE(LOCV+15)=1.0-FC*(1DV )@@G@@.0+XM)@^@]@@ CSAT=VALUE(LOCV+9)@C@]@@ VALUE(LOCV+16)=VT*ALOG(VDW )@@G@@T/(ROOT2*CSAT)) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 450 DX )@@G@@@[@]@@C @#@]@@C MOSFET MODELS @[@]@@C @^@]@@ 460 LOC=LOCATE(2DY )@@G@@4) @ @]@@ 470 IF (LOC.EQ.0) GO TO 600 @^@]@@ LOCV=NODPLC(LOC+1)DZ )@@G@@@^@]@@ TYPE=NODPLC(LOC+2)@F@]@@ IF (VALUE(LOCV+6).NE.0.0) VALUEA )@@G@@E(LOCV+6)=1.0/VALUE(LOCV+6) @F@]@@ IF (VALUE(LOCV+7).NE.0.0) VALUEB )@@G@@E(LOCV+7)=1.0/VALUE(LOCV+7) @[@]@@C @B@]@@C SAVE TOX FOR EL-MANSEC )@@G@@Y MOSFET MODEL @[@]@@C @A@]@@ VALUE(LOCV+37)=VALUE(LOCV+13) ED )@@G@@@[@]@@C @D@]@@ IF (VALUE(LOCV+13).NE.0.0) VALUE(LOCV+13)=COX EE )@@G@@@^@]@@ PB=VALUE(LOCV+14) @]@]@@ XM=0.5@^@]@@ FC=VALUE(LOCEF )@@G@@V+29) @ @]@@ VALUE(LOCV+29)=FC*PB @^@]@@ XFC=ALOG(1.0-FC) EG )@@G@@@E@]@@ VALUE(LOCV+30)=PB*(1.0-EXP((1.0-XM)*XFC))/(1.0-XM) @B@]@@EH )@@G@@ VALUE(LOCV+31)=EXP((1.0+XM)*XFC) @A@]@@ VALUE(LOCV+32)=1.0EI )@@G@@-FC*(1.0+XM)@ @]@@ VALUE(LOCV+33)=-1.0 @[@]@@C @B@]@@ EJ )@@G@@IF (VALUE(LOCV+36).GT.2.0) GO TO 476@[@]@@C @A@]@@ VALUE(LOCV+3EK )@@G@@4)=VALUE(LOCV+1)- @C@]@@ 1 TYPE*VALUE(LOCV+3)*SQRT(VALUE(LOCV+4)) EL )@@G@@@A@]@@ 475 IF (VALUE(LOCV+13).NE.0.0) @E@]@@ 1 VALUE(LOCV+24)=EM )@@G@@VALUE(LOCV+24)*EPSSIL/VALUE(LOCV+13)@#@]@@ GO TO 480 @[@]@@C EN )@@G@@@C@]@@C PROCESS EL-MANSY^S MOSFET MODEL PARAMETERS @[@]@@C @B@]@@EO )@@G@@ 476 VALUE(LOCV+34)=VALUE(LOCV+34)/VT @C@]@@ VALUE(LOCV+35)=SQREP )@@G@@T(VT)/VALUE(LOCV+3) @ @]@@ ALPHA=VALUE(LOCV+35) @ @]@@ EQ )@@G@@VALUE(LOCV+38)=VT/ALPHA @C@]@@ VALUE(LOCV+39)=(ALPHA+ALPHA)+1.0/ALPER )@@G@@HA @ @]@@ TAHPLA=1.0/(ALPHA+ALPHA)@ @]@@ VALUE(LOCV+40)=TAHES )@@G@@PLA @A@]@@ VALUE(LOCV+41)=TAHPLA*TAHPLA @C@]@@ VALUE(LOCV+4ET )@@G@@2)=VALUE(LOCV+4)/(2.0*VT) @[@]@@C @ @]@@C SCATTERING LIMITED VEEU )@@G@@LOCITY@[@]@@C @#@]@@ VLIM=1.0E7 @A@]@@ IF (TYPE.LT.0.0) VEV )@@G@@LIM=6.0E6 @B@]@@ VALUE(LOCV+43)=VALUE(LOCV+23)/VLIM @^@]@@ 480 EW )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 470 @[@]@@C @ @]@@C RESERVE AEX )@@G@@DDITIONAL NODES @[@]@@C @]@]@@C DIODES @[@]@@C @^@]@@ 600 EY )@@G@@LOC=LOCATE(11) @ @]@@ 610 IF (LOC.EQ.0) GO TO 700 @^@]@@ LOCM=NEZ )@@G@@ODPLC(LOC+5)@ @]@@ LOCM=NODPLC(LOCM+1) @B@]@@ IF (VALUE(LOFA )@@G@@CM+2).EQ.0.0) GO TO 620 @^@]@@ NUMNOD=NUMNOD+1 @ @]@@ NODPLCFB )@@G@@(LOC+4)=NUMNOD @#@]@@ GO TO 630 @A@]@@ 620 NODPLC(LOC+4)=NODPFC )@@G@@LC(LOC+2) @^@]@@ 630 LOC=NODPLC(LOC) @#@]@@ GO TO 610 @[@]@@FD )@@G@@C @#@]@@C TRANSISTORS @[@]@@C @^@]@@ 700 LOC=LOCATE(12) FE )@@G@@@ @]@@ 710 IF (LOC.EQ.0) GO TO 800 @^@]@@ LOCM=NODPLC(LOC+8)@ @]@@FF )@@G@@ LOCM=NODPLC(LOCM+1) @B@]@@ IF (VALUE(LOCM+4).EQ.0.0) GO TFG )@@G@@O 720 @^@]@@ NUMNOD=NUMNOD+1 @ @]@@ NODPLC(LOC+6)=NUMNOD FH )@@G@@@#@]@@ GO TO 730 @A@]@@ 720 NODPLC(LOC+6)=NODPLC(LOC+3) @B@]@@FI )@@G@@ 730 IF (VALUE(LOCM+5).EQ.0.0) GO TO 740 @^@]@@ NUMNOD=NUMNOD+1 FJ )@@G@@@ @]@@ NODPLC(LOC+5)=NUMNOD @#@]@@ GO TO 750 @A@]@@ 740 FK )@@G@@NODPLC(LOC+5)=NODPLC(LOC+2) @B@]@@ 750 IF (VALUE(LOCM+6).EQ.0.0) GO TFL )@@G@@O 760 @^@]@@ NUMNOD=NUMNOD+1 @ @]@@ NODPLC(LOC+7)=NUMNOD FM )@@G@@@#@]@@ GO TO 770 @A@]@@ 760 NODPLC(LOC+7)=NODPLC(LOC+4) @^@]@@FN )@@G@@ 770 LOC=NODPLC(LOC) @#@]@@ GO TO 710 @[@]@@C @]@]@@C JFEFO )@@G@@TS @[@]@@C @^@]@@ 800 LOC=LOCATE(13) @ @]@@ 810 IF (LOC.EQ.0FP )@@G@@) GO TO 900 @^@]@@ LOCM=NODPLC(LOC+7)@ @]@@ LOCM=NODPLC(LOCM+1FQ )@@G@@) @B@]@@ IF (VALUE(LOCM+4).EQ.0.0) GO TO 820 @^@]@@ NUMNODFR )@@G@@=NUMNOD+1 @ @]@@ NODPLC(LOC+5)=NUMNOD @#@]@@ GO TO 830 FS )@@G@@@A@]@@ 820 NODPLC(LOC+5)=NODPLC(LOC+2) @B@]@@ 830 IF (VALUE(LOCM+5).FT )@@G@@EQ.0.0) GO TO 840 @^@]@@ NUMNOD=NUMNOD+1 @ @]@@ NODPLC(LOC+6FU )@@G@@)=NUMNOD @#@]@@ GO TO 850 @A@]@@ 840 NODPLC(LOC+6)=NODPLC(LOCFV )@@G@@+4) @^@]@@ 850 LOC=NODPLC(LOC) @#@]@@ GO TO 810 @[@]@@C FW )@@G@@@]@]@@C MOSFETS @[@]@@C @^@]@@ 900 LOC=LOCATE(14) @ @]@@ 910 FX )@@G@@IF (LOC.EQ.0) GO TO 1000@^@]@@ LOCM=NODPLC(LOC+8)@ @]@@ LOCM=NFY )@@G@@ODPLC(LOCM+1) @B@]@@ IF (VALUE(LOCM+6).EQ.0.0) GO TO 920 @^@]@@FZ )@@G@@ NUMNOD=NUMNOD+1 @ @]@@ NODPLC(LOC+6)=NUMNOD @#@]@@ GA )@@G@@GO TO 930 @A@]@@ 920 NODPLC(LOC+6)=NODPLC(LOC+2) @B@]@@ 930 IF (VAGB )@@G@@LUE(LOCM+7).EQ.0.0) GO TO 940 @^@]@@ NUMNOD=NUMNOD+1 @ @]@@ GC )@@G@@NODPLC(LOC+7)=NUMNOD @#@]@@ GO TO 950 @A@]@@ 940 NODPLC(LOC+7GD )@@G@@)=NODPLC(LOC+4) @^@]@@ 950 LOC=NODPLC(LOC) @#@]@@ GO TO 910 GE )@@G@@@[@]@@C @^@]@@C TRANSMISSION LINES @[@]@@C @^@]@@ 1000 LOC=LOGF )@@G@@CATE(17) @ @]@@ 1010 IF (LOC.EQ.0) GO TO 2000@^@]@@ NUMNOD=NUMNOGG )@@G@@D+1 @ @]@@ NODPLC(LOC+6)=NUMNOD @^@]@@ NUMNOD=NUMNOD+1 GH )@@G@@@ @]@@ NODPLC(LOC+7)=NUMNOD @^@]@@ LOC=NODPLC(LOC) @#@]@@GI )@@G@@ GO TO 1010 @[@]@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 2000 GJ )@@G@@RETURN@]@]@@ END @^@]@@ SUBROUTINE TOPCHK @[@]@@C @G@]@@GK )@@G@@C THIS ROUTINE CONSTRUCTS THE ELEMENT NODE TABLE. IT ALSO CHECKS GL )@@G@@@G@]@@C FOR VOLTAGE SOURCE/INDUCTOR LOOPS, CURRENT SOURCE/CAPACITOR CUTSGM )@@G@@ETS, @E@]@@C AND THAT EVERY NODE HAS A DC (CONDUCTIVE) PATH TO GROUND. GN )@@G@@@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSGO )@@G@@AT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDGP )@@G@@ELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODGQ )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEGR )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,GS )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZEGT )@@G@@R @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSGU )@@G@@(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /CIRDAT/ LOGV )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NGW )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IGX )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITGY )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMON /BLANK/ VALUE(64)GZ )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ HA )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @C@]@@HB )@@G@@ DIMENSION ATABLE(12),AIDE(20),NNODS(20) @ @]@@ DIMENSION IDHC )@@G@@LIST(4) @ @]@@ DIMENSION TOPTIT(4) @G@]@@ DATA TOPTIT HD )@@G@@/ 8HELEMENT , 8HNODE TAB, 8HLE , 8H / @A@]@@ DATA IHE )@@G@@DLIST / 3, 6, 8, 9 / @G@]@@ DATA AIDE / 1HR,0.0,1HL,2*0.0,1HE,0.HF )@@G@@0,1HH,1HV,0.0,1HD,1HQ,1HJ,1HM,@A@]@@ 1 0.0,0.0,1HT,0.0,0.0,0.0 / HG )@@G@@@E@]@@ DATA NNODS / 2,2,2,0,2,2,2,2,2,2,2,3,3,4,4,4,4,0,1,0 /@^@]@@HH )@@G@@ DATA ABLNK /1H / @[@]@@C @^@]@@C ALLOCATE STORAGE @[@]@@HI )@@G@@C @A@]@@ CALL GETMEM(IORDER,NCNODS) @A@]@@ CALL GETMEM(HJ )@@G@@IUR,NCNODS+1) @[@]@@C @^@]@@C CONSTRUCT NODE TABLE @[@]@@C HK )@@G@@@^@]@@ KNTLIM=LWIDTH/11 @ @]@@ 1300 CALL GETMEM(ITABLE,0) @ @]@@HL )@@G@@ CALL GETMEM(ITABID,0) @^@]@@ ISTOP=NCNODS+1 @^@]@@ HM )@@G@@DO 1310 I=1,ISTOP @^@]@@ 1310 NODPLC(IUR+I)=1 @^@]@@ DO 1370 ID=1HN )@@G@@,19 @A@]@@ IF (NNODS(ID).EQ.0) GO TO 1370@^@]@@ LOC=LOCATE(IHO )@@G@@D) @ @]@@ 1320 IF (LOC.EQ.0) GO TO 1370@#@]@@ NLOC=LOC+1 @^@]@@HP )@@G@@ JSTOP=NNODS(ID) @ @]@@ IF (ID.NE.19) GO TO 1330@^@]@@ HQ )@@G@@NLOC=NODPLC(LOC+2)@B@]@@ CALL SIZMEM(NODPLC(LOC+2),JSTOP) @^@]@@HR )@@G@@ 1330 DO 1360 J=1,JSTOP @ @]@@ NODE=NODPLC(NLOC+J) @ @]@@ HS )@@G@@ISPOT=NODPLC(IUR+NODE+1)@ @]@@ K=NODPLC(IUR+NCNODS+1) @ @]@@ HT )@@G@@CALL EXTMEM(ITABLE,1) @ @]@@ CALL EXTMEM(ITABID,1) @A@]@@ HU )@@G@@IF (K.LE.ISPOT) GO TO 1340 @G@]@@ CALL COPY4(NODPLC(ITABLE+ISPOTHV )@@G@@),NODPLC(ITABLE+ISPOT+1),K-ISPOT) @G@]@@ CALL COPY4(NODPLC(ITABIDHW )@@G@@+ISPOT),NODPLC(ITABID+ISPOT+1),K-ISPOT) @ @]@@ 1340 NODPLC(ITABLE+ISPOHX )@@G@@T)=LOC@ @]@@ NODPLC(ITABID+ISPOT)=ID @]@]@@ K=NODE@^@]@@ HY )@@G@@KSTOP=NCNODS+1 @]@]@@ 1350 K=K+1 @A@]@@ IF (K.GT.KSTOP) GO TO 13HZ )@@G@@60 @A@]@@ NODPLC(IUR+K)=NODPLC(IUR+K)+1 @#@]@@ GO TO 1350 IA )@@G@@@#@]@@ 1360 CONTINUE @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO IB )@@G@@1320 @#@]@@ 1370 CONTINUE @[@]@@C @C@]@@C CHECK THAT EVERY NODEIC )@@G@@ HAS A DC PATH TO GROUND@[@]@@C @B@]@@ CALL ZERO4(NODPLC(IORDERID )@@G@@+1),NCNODS) @^@]@@ NODPLC(IORDER+1)=1@#@]@@ 1420 IFLAG=0 @^@]@@IE )@@G@@ DO 1470 I=2,NCNODS@C@]@@ IF (NODPLC(IORDER+I).EQ.1) GO TO 147IF )@@G@@0 @ @]@@ JSTART=NODPLC(IUR+I) @ @]@@ JSTOP=NODPLC(IUR+IIG )@@G@@+1)-1 @B@]@@ IF (JSTART.GT.JSTOP) GO TO 1470 @ @]@@ DO 145IH )@@G@@0 J=JSTART,JSTOP @ @]@@ LOC=NODPLC(ITABLE+J) @ @]@@ ID=NODII )@@G@@PLC(ITABID+J) @B@]@@ IF (AIDE(ID).EQ.0.0) GO TO 1450 @ @]@@IJ )@@G@@ IF (ID.EQ.17) GO TO 1445@ @]@@ KSTOP=LOC+NNODS(ID)-1 @ @]@@IK )@@G@@ DO 1440 K=LOC,KSTOP @^@]@@ NODE=NODPLC(K+2) @C@]@@ IL )@@G@@IF (NODPLC(IORDER+NODE).EQ.1) GO TO 1460 @#@]@@ 1440 CONTINUE @#@]@@IM )@@G@@ GO TO 1450 @C@]@@ 1445 IF (NODPLC(LOC+2).EQ.I) NODE=NODPLC(LOC+3)IN )@@G@@@C@]@@ IF (NODPLC(LOC+3).EQ.I) NODE=NODPLC(LOC+2)@C@]@@ IF (NOIO )@@G@@DPLC(LOC+4).EQ.I) NODE=NODPLC(LOC+5)@C@]@@ IF (NODPLC(LOC+5).EQ.I) IP )@@G@@NODE=NODPLC(LOC+4)@C@]@@ IF (NODPLC(IORDER+NODE).EQ.1) GO TO 1460 IQ )@@G@@@#@]@@ 1450 CONTINUE @#@]@@ GO TO 1470 @^@]@@ 1460 NODPLC(IORDEIR )@@G@@R+I)=1@#@]@@ IFLAG=1 @#@]@@ 1470 CONTINUE @A@]@@ IF (IFIS )@@G@@LAG.EQ.1) GO TO 1420 @[@]@@C @C@]@@C PRINT NODE TABLE AND TOPOLOIT )@@G@@GY ERROR MESSAGES @[@]@@C @A@]@@ IF (IPRNTN.EQ.0) GO TO 1510 IU )@@G@@@A@]@@ CALL TITLE(0,LWIDTH,1,TOPTIT) @^@]@@ 1510 DO 1590 I=1,NCNODSIV )@@G@@@ @]@@ JSTART=NODPLC(IUR+I) @ @]@@ JSTOP=NODPLC(IUR+I+1)-1 IW )@@G@@@A@]@@ IF (IPRNTN.EQ.0) GO TO 1550 @B@]@@ IF (JSTART.LE.JSTOIX )@@G@@P) GO TO 1520 @B@]@@ WRITE (6,1511) NODPLC(JUNODE+I) @^@]@@IY )@@G@@ 1511 FORMAT(1H0,I7) @#@]@@ GO TO 1550 @]@]@@ 1520 KNTR=0@#@]@@IZ )@@G@@ JFLAG=1 @ @]@@ DO 1540 J=JSTART,JSTOP @ @]@@ LOC=NOJA )@@G@@DPLC(ITABLE+J) @^@]@@ LOCV=NODPLC(LOC+1)@#@]@@ KNTR=KNTR+1 JB )@@G@@@ @]@@ ATABLE(KNTR)=VALUE(LOCV)@A@]@@ IF (KNTR.LT.KNTLIM) GO TJC )@@G@@O 1540@A@]@@ IF (JFLAG.EQ.0) GO TO 1525 @#@]@@ JFLAG=0 JD )@@G@@@E@]@@ WRITE (6,1521) NODPLC(JUNODE+I),(ATABLE(K),K=1,KNTR) @A@]@@JE )@@G@@ 1521 FORMAT(1H0,I7,3X,12(1X,A8)) @#@]@@ GO TO 1530 @B@]@@ 1525 JF )@@G@@WRITE (6,1526) (ATABLE(K),K=1,KNTR) @ @]@@ 1526 FORMAT(11X,12(1X,A8)) JG )@@G@@@]@]@@ 1530 KNTR=0@#@]@@ 1540 CONTINUE @A@]@@ IF (KNTR.EQ.0) GO JH )@@G@@TO 1550 @A@]@@ IF (JFLAG.EQ.0) GO TO 1545 @E@]@@ WRITE JI )@@G@@(6,1521) NODPLC(JUNODE+I),(ATABLE(K),K=1,KNTR) @#@]@@ GO TO 1550 JJ )@@G@@@B@]@@ 1545 WRITE (6,1526) (ATABLE(K),K=1,KNTR) @B@]@@ 1550 IF (JSTART-JJK )@@G@@STOP) 1560,1552,1556 @[@]@@C @F@]@@C ALLOW NODE WITH ONLY ONE COJL )@@G@@NNECTION IFF ELEMENT IS A T-LINE @[@]@@C @D@]@@ 1552 IF (NODPLC(IJM )@@G@@TABID+JSTART).EQ.17) GO TO 1560 @]@]@@ 1556 NOGO=1@B@]@@ WRITE JN )@@G@@(6,1557) NODPLC(JUNODE+I) @F@]@@ 1557 FORMAT(^0*ERROR*: LESS THAN 2JO )@@G@@ CONNECTIONS AT NODE ^,I6/) @#@]@@ GO TO 1590 @C@]@@ 1560 IF (NOJP )@@G@@DPLC(IORDER+I).EQ.1) GO TO 1590 @]@]@@ NOGO=1@B@]@@ WRITE JQ )@@G@@(6,1561) NODPLC(JUNODE+I) @F@]@@ 1561 FORMAT(^0*ERROR*: NO DC PATH JR )@@G@@TO GROUND FROM NODE ^,I6/) @#@]@@ 1590 CONTINUE @[@]@@C @B@]@@JS )@@G@@C CHECK FOR INDUCTOR/VOLTAGE SOURCE LOOPS@[@]@@C @^@]@@ DO 170JT )@@G@@0 I=1,NCNODS@B@]@@ CALL ZERO4(NODPLC(IORDER+1),NCNODS) @ @]@@ JU )@@G@@NODPLC(IORDER+I)=-1 @^@]@@ DO 1690 IDCNTR=1,4@^@]@@ ID=IDLJV )@@G@@IST(IDCNTR) @^@]@@ LOC=LOCATE(ID) @ @]@@ 1610 IF (LOC.EQ.0) GO TJW )@@G@@O 1690@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3JX )@@G@@) @C@]@@ IF (NODPLC(IORDER+NODE1)) 1620,1640,1630 @ @]@@ 1620 JY )@@G@@NODPLC(IORDER+NODE1)=LOC@#@]@@ 1630 NODE=NODE2 @#@]@@ GO TO 1670 JZ )@@G@@@C@]@@ 1640 IF (NODPLC(IORDER+NODE2)) 1650,1680,1660 @ @]@@ 1650 NODPLCKA )@@G@@(IORDER+NODE2)=LOC@#@]@@ 1660 NODE=NODE1 @C@]@@ 1670 IF (NODPLC(IORDER+KB )@@G@@NODE).NE.0) GO TO 1710 @ @]@@ NODPLC(IORDER+NODE)=LOC @^@]@@ 1680 KC )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 1610 @#@]@@ 1690 CONTINUE @#@]@@KD )@@G@@ 1700 CONTINUE @#@]@@ GO TO 1900 @#@]@@C ... LOOP FOUND @^@]@@KE )@@G@@ 1710 LOCV=NODPLC(LOC+1)@A@]@@ WRITE (6,1711) VALUE(LOCV) @G@]@@KF )@@G@@ 1711 FORMAT(^0*ERROR*: INDUCTOR/VOLTAGE SOURCE LOOP FOUND, CONTAINING KG )@@G@@@]@]@@ 1^,A8/)@]@]@@ NOGO=1@[@]@@C @[@]@@C @ @]@@ 1900 KH )@@G@@CALL CLRMEM(IORDER) @^@]@@ CALL CLRMEM(IUR) @ @]@@ CALL CKI )@@G@@LRMEM(ITABLE) @ @]@@ CALL CLRMEM(ITABID) @]@]@@ 2000 RETURNKJ )@@G@@@]@]@@ END @#@]@@ OVERLAY(3,0)@^@]@@ PROGRAM SETUP KK )@@G@@@[@]@@C @F@]@@C THIS ROUTINE DRIVES THE SPARSE MATRIX SETUP USEDKL )@@G@@ BY SPICE. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTKM )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIKN )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,KO )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEKP )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LKQ )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUKR )@@G@@TPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOKS )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMKT )@@G@@VS @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSKU )@@G@@(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /FLAGS/ IPRKV )@@G@@NTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVKW )@@G@@LTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /STATKX )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODKY )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEKZ )@@G@@MNO,NOSOLV,MODAC @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITLA )@@G@@CELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@ COMMONLB )@@G@@ /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1LC )@@G@@ INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2LD )@@G@@ IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3LE )@@G@@ IPIMAT(4)@A@]@@ COMMON /DEBUG/ IDEBUG(20) @ @]@@ COMMONLF )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALLG )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C LH )@@G@@@[@]@@C @^@]@@ LOGICAL MEMPTR @[@]@@C @[@]@@C @^@]@@LI )@@G@@ CALL SECOND(T1) @G@]@@ NSTOP=NUMNOD+JELCNT(3)+JELCNT(6)+JELLJ )@@G@@CNT(8)+JELCNT(9)+2*JELCNT(17) @ @]@@ IF (MODE.NE.3) GO TO 10 @ @]@@LK )@@G@@ IF (MODAC.NE.3) GO TO 10@^@]@@ NSTOP=NSTOP+1 @B@]@@ LL )@@G@@IF (IPZITP.EQ.41) NSTOP=NSTOP+1 @[@]@@C @^@]@@C CLEAR OLD TABLELM )@@G@@S @[@]@@C @C@]@@ IF (MEMPTR(ISWAP)) CALL CLRMEM(ISWAP) LN )@@G@@@C@]@@ IF (MEMPTR(IORDER)) CALL CLRMEM(IORDER) @B@]@@ IF (MELO )@@G@@MPTR(IUR)) CALL CLRMEM(IUR) @B@]@@ IF (MEMPTR(ILC)) CALL CLRMEM(ILP )@@G@@LC) @B@]@@ IF (MEMPTR(IUC)) CALL CLRMEM(IUC) @B@]@@ IF (MELQ )@@G@@MPTR(ILR)) CALL CLRMEM(ILR) @C@]@@ IF (MEMPTR(MACINS)) CALL CLRMELR )@@G@@M(MACINS) @[@]@@C @C@]@@C RESERVE MATRIX LOCATIONS FOR EACH ELEMELS )@@G@@NT @[@]@@C @#@]@@ 10 CALL MATPTR @A@]@@ IF (NOGO.NE.0) GO LT )@@G@@TO 1000 @[@]@@C @C@]@@C REORDER MATRIX POINTERS FOR MINIMAL FILLU )@@G@@L-IN @[@]@@C @#@]@@ NTTBR=0 @^@]@@ DO 120 I=2,NSTOP LV )@@G@@@#@]@@ LOC=ISR+I @B@]@@ 110 IF (NODPLC(LOC).EQ.0) GO TO 120 LW )@@G@@@^@]@@ LOC=NODPLC(LOC) @^@]@@ NTTBR=NTTBR+1 @#@]@@ LX )@@G@@GO TO 110 @#@]@@ 120 CONTINUE @#@]@@C... ADD GROUND @^@]@@ LY )@@G@@NTTBR=NTTBR+1 @#@]@@ CALL REORDR @A@]@@ IF (NOGO.NE.0) GO LZ )@@G@@TO 1000 @F@]@@ NTTAR=NODPLC(IUR+NSTOP+1)-1+NODPLC(ILC+NSTOP+1)-MA )@@G@@1+NSTOP @^@]@@ IFILL=NTTAR-NTTBR @E@]@@ PERSPA=100.0*(1.0-MB )@@G@@FLOAT(NTTAR)/FLOAT(NSTOP*NSTOP)) @]@]@@ IOPS=0@^@]@@ DO 130MC )@@G@@ I=2,NSTOP @B@]@@ NOFFR=NODPLC(IUR+I+1)-NODPLC(IUR+I) @B@]@@ MD )@@G@@NOFFC=NODPLC(ILC+I+1)-NODPLC(ILC+I) @B@]@@ IOPS=IOPS+NOFFR+NOFFC*(NME )@@G@@OFFR+2)+1 @#@]@@ 130 CONTINUE @^@]@@ RSTATS(20)=NSTOP @^@]@@MF )@@G@@ RSTATS(21)=NTTBR @^@]@@ RSTATS(22)=NTTAR @^@]@@ RSTATSMG )@@G@@(23)=IFILL @^@]@@ RSTATS(24)=0.0 @^@]@@ RSTATS(25)=NTTAR MH )@@G@@@^@]@@ RSTATS(26)=IOPS @^@]@@ RSTATS(27)=PERSPA @[@]@@C MI )@@G@@@ @]@@C STORE MATRIX LOCATIONS @[@]@@C @#@]@@ CALL MATLOC MJ )@@G@@@^@]@@ CALL CLRMEM(ISR) @^@]@@ CALL CLRMEM(ISEQ) @^@]@@ MK )@@G@@CALL CLRMEM(ISEQ1)@^@]@@ CALL CLRMEM(NEQN) @ @]@@ CALL CLRMEM(ML )@@G@@NODEVS) @^@]@@ CALL CLRMEM(NDIAG)@ @]@@ CALL CLRMEM(NMOFFCMM )@@G@@) @ @]@@ CALL CLRMEM(NUMOFF) @^@]@@ CALL CLRMEM(IEQUA)MN )@@G@@@ @]@@ CALL CLRMEM(JMNODE) @[@]@@C @^@]@@C GENERATE MACHINMO )@@G@@E CODE@[@]@@C @A@]@@ IF (LVLCOD.NE.2) GO TO 1000 @D@]@@ MP )@@G@@IF ((MODE.EQ.3).AND.(MODAC.EQ.3)) GO TO 1000 @#@]@@ CALL CODGEN MQ )@@G@@@D@]@@ IF ((JACFLG+JPZFLG+NSENS+KINEL).NE.0) GO TO 1000@#@]@@ MR )@@G@@JDEBUG=0 @^@]@@ DO 910 I=1,20 @A@]@@ JDEBUG=JDEBUG+IABSMS )@@G@@(IDEBUG(I)) @#@]@@ 910 CONTINUE @A@]@@ IF (JDEBUG.NE.0) GO TO 1MT )@@G@@000 @ @]@@ CALL CLRMEM(IORDER) @^@]@@ CALL CLRMEM(IUR) MU )@@G@@@^@]@@ CALL CLRMEM(IUC) @^@]@@ CALL CLRMEM(ILR) @^@]@@ MV )@@G@@CALL CLRMEM(ILC) @[@]@@C @]@]@@C FINISHED @[@]@@C @^@]@@ 1000 MW )@@G@@CALL SECOND(T2) @A@]@@ RSTATS(2)=RSTATS(2)+T2-T1 @]@]@@ MX )@@G@@RETURN@]@]@@ END @^@]@@ SUBROUTINE MATPTR @[@]@@C @G@]@@MY )@@G@@C THIS ROUTINE (BY CALLS TO THE ROUTINE RESERVE) ESTABLISHES THE MZ )@@G@@@G@]@@C NONZERO-ELEMENT STRUCTURE OF THE CIRCUIT EQUATION COEFFICIENT MANA )@@G@@TRIX. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSANB )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICNC )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERND )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQNE )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYNF )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPNG )@@G@@OL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNNH )@@G@@ODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS NI )@@G@@@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFENJ )@@G@@T, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,INK )@@G@@TERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /AC/ FSTARTNL )@@G@@,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOISE,NONM )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZIN,IPZNN )@@G@@ITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIMAT(4)NO )@@G@@@ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@NP )@@G@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALNQ )@@G@@UE(1))@[@]@@C @A@]@@C ALLOCATE AND INITIALIZE STORAGE @[@]@@C NR )@@G@@@ @]@@ CALL GETMEM(ISR,NSTOP+1)@F@]@@ NUMVS=JELCNT(3)+JELCNT(6NS )@@G@@)+JELCNT(8)+JELCNT(9)+2*JELCNT(17) @ @]@@ IF (MODE.NE.3) GO TO 10 NT )@@G@@@ @]@@ IF (MODAC.NE.3) GO TO 10@B@]@@ IF (IPZITP.EQ.41) NUMVS=NU )@@G@@NUMVS+1 @ @]@@ 10 CALL GETMEM(ISEQ,NUMVS) @ @]@@ CALL GETMEM(NV )@@G@@ISEQ1,NUMVS)@ @]@@ CALL GETMEM(NEQN,NUMVS) @A@]@@ CALL GETMEM(NW )@@G@@NODEVS,NUMNOD) @ @]@@ CALL GETMEM(NDIAG,NSTOP)@A@]@@ CALL GNX )@@G@@ETMEM(NMOFFC,NSTOP) @A@]@@ CALL GETMEM(NUMOFF,NSTOP) @#@]@@NY )@@G@@ CALL CRUNCH @[@]@@C @B@]@@ CALL ZERO4(NODPLC(ISR+1),NSTOPNZ )@@G@@+1) @B@]@@ CALL ZERO4(NODPLC(ISEQ1+1),NUMVS) @B@]@@ CALL ZOA )@@G@@ERO4(NODPLC(NODEVS+1),NUMNOD) @B@]@@ CALL ZERO4(NODPLC(NDIAG+1),NSTOB )@@G@@OP) @B@]@@ CALL ZERO4(NODPLC(NMOFFC+1),NSTOP) @B@]@@ CALL ZOC )@@G@@ERO4(NODPLC(NUMOFF+1),NSTOP) @[@]@@C @#@]@@ NUMVS=0 @#@]@@OD )@@G@@ NXTRM=0 @#@]@@ NDIST=0 @#@]@@ NTLIN=1 @#@]@@OE )@@G@@ IBR=NUMNOD @[@]@@C @]@]@@C RESISTORS@[@]@@C @^@]@@ OF )@@G@@LOC=LOCATE(1) @ @]@@ 110 IF (LOC.EQ.0) GO TO 120 @ @]@@ NODE1=OG )@@G@@NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ CALL ROH )@@G@@ESERV(NODE1,NODE1)@ @]@@ CALL RESERV(NODE1,NODE2)@ @]@@ CALL ROI )@@G@@ESERV(NODE2,NODE1)@ @]@@ CALL RESERV(NODE2,NODE2)@^@]@@ LOC=NOOJ )@@G@@DPLC(LOC) @#@]@@ GO TO 110 @[@]@@C @#@]@@C CAPACITORS OK )@@G@@@[@]@@C @^@]@@ 120 LOC=LOCATE(2) @ @]@@ 130 IF (LOC.EQ.0) GO TOL )@@G@@O 400 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3OM )@@G@@) @ @]@@ CALL RESERV(NODE1,NODE2)@ @]@@ CALL RESERV(NODE2,ON )@@G@@NODE1)@A@]@@ NTEMP=NODPLC(NDIAG+NODE1) @ @]@@ CALL RESERV(OO )@@G@@NODE1,NODE1)@A@]@@ NODPLC(NDIAG+NODE1)=NTEMP @A@]@@ NTEMP=OP )@@G@@NODPLC(NDIAG+NODE2) @ @]@@ CALL RESERV(NODE2,NODE2)@A@]@@ OQ )@@G@@NODPLC(NDIAG+NODE2)=NTEMP @ @]@@ NODPLC(LOC+8)=NXTRM+1 @^@]@@OR )@@G@@ NXTRM=NXTRM+2 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO OS )@@G@@130 @[@]@@C @]@]@@C INDUCTORS@[@]@@C @^@]@@ 400 LOC=LOCATE(3OT )@@G@@) @ @]@@ 430 IF (LOC.EQ.0) GO TO 440 @ @]@@ NODE1=NODPLC(LOC+2OU )@@G@@) @ @]@@ NODE2=NODPLC(LOC+3) @#@]@@ IBR=IBR+1 @^@]@@OV )@@G@@ NODPLC(LOC+4)=IBR @ @]@@ CALL RESERV(NODE1,IBR) @ @]@@ OW )@@G@@CALL RESERV(NODE2,IBR) @ @]@@ CALL RESERV(IBR,NODE1) @ @]@@ OX )@@G@@CALL RESERV(IBR,NODE2) @ @]@@ NTEMP=NODPLC(NDIAG+IBR) @ @]@@ OY )@@G@@CALL RESERV(IBR,IBR) @ @]@@ NODPLC(NDIAG+IBR)=NTEMP @^@]@@ OZ )@@G@@NUMVS=NUMVS+1 @ @]@@ NODPLC(ISEQ+NUMVS)=LOC @ @]@@ NODPLCPA )@@G@@(NEQN+NUMVS)=IBR @D@]@@ NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)+PB )@@G@@1 @D@]@@ NODPLC(NODEVS+NODE2)=NODPLC(NODEVS+NODE2)+1 @ @]@@PC )@@G@@ NODPLC(LOC+10)=NXTRM+1 @^@]@@ NXTRM=NXTRM+2 @^@]@@ PD )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 430 @[@]@@C @^@]@@C MUTUAL INPE )@@G@@DUCTORS @[@]@@C @^@]@@ 440 LOC=LOCATE(4) @ @]@@ 450 IF (LOPF )@@G@@C.EQ.0) GO TO 460 @^@]@@ NL1=NODPLC(LOC+2) @^@]@@ NL2=NODPLC(LPG )@@G@@OC+3) @^@]@@ NL1=NODPLC(NL1+4) @^@]@@ NL2=NODPLC(NL2+4) @ @]@@PH )@@G@@ CALL RESERV(NL1,NL2) @ @]@@ CALL RESERV(NL2,NL1) @^@]@@PI )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 450 @[@]@@C @C@]@@C NONPJ )@@G@@LINEAR VOLTAGE-CONTROLLED CURRENT SOURCES @[@]@@C @^@]@@ 460 LOC=LOPK )@@G@@CATE(5) @ @]@@ 462 IF (LOC.EQ.0) GO TO 464 @ @]@@ NODE1=NODPLCPL )@@G@@(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @^@]@@ NDIM=NODPLC(PM )@@G@@LOC+4)@^@]@@ NDIM2=NDIM+NDIM @^@]@@ LOCN=NODPLC(LOC+6)@^@]@@PN )@@G@@ DO 463 I=1,NDIM2 @ @]@@ NODE=NODPLC(LOCN+I) @ @]@@ PO )@@G@@CALL RESERV(NODE1,NODE) @ @]@@ CALL RESERV(NODE2,NODE) @#@]@@ 463 PP )@@G@@CONTINUE @ @]@@ NODPLC(LOC+12)=NXTRM+1 @ @]@@ NXTRM=NXTRM+PQ )@@G@@1+NDIM2 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 462 @[@]@@PR )@@G@@C @C@]@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@]@@C PS )@@G@@@^@]@@ 464 LOC=LOCATE(6) @ @]@@ 466 IF (LOC.EQ.0) GO TO 468 @ @]@@PT )@@G@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @#@]@@PU )@@G@@ IBR=IBR+1 @^@]@@ NODPLC(LOC+6)=IBR @ @]@@ CALL RESERV(PV )@@G@@NODE1,IBR) @ @]@@ CALL RESERV(NODE2,IBR) @ @]@@ CALL RESERV(PW )@@G@@IBR,NODE1) @ @]@@ CALL RESERV(IBR,NODE2) @^@]@@ NUMVS=NUMVS+PX )@@G@@1 @ @]@@ NODPLC(ISEQ+NUMVS)=LOC @ @]@@ NODPLC(NEQN+NUMVS)PY )@@G@@=IBR @D@]@@ NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)+1 @D@]@@PZ )@@G@@ NODPLC(NODEVS+NODE2)=NODPLC(NODEVS+NODE2)+1 @^@]@@ NDIM=NQA )@@G@@ODPLC(LOC+4)@^@]@@ NDIM2=NDIM+NDIM @^@]@@ LOCN=NODPLC(LOC+7)QB )@@G@@@^@]@@ DO 467 I=1,NDIM2 @ @]@@ NODE=NODPLC(LOCN+I) @ @]@@QC )@@G@@ CALL RESERV(IBR,NODE) @#@]@@ 467 CONTINUE @ @]@@ NODPLCQD )@@G@@(LOC+13)=NXTRM+1 @ @]@@ NXTRM=NXTRM+2+NDIM2 @^@]@@ LOC=NOQE )@@G@@DPLC(LOC) @#@]@@ GO TO 466 @[@]@@C @#@]@@C VOLTAGE SOURCESQF )@@G@@@[@]@@C @^@]@@ 468 LOC=LOCATE(9) @ @]@@ 470 IF (LOC.EQ.0) GO TQG )@@G@@O 472 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3QH )@@G@@) @#@]@@ IBR=IBR+1 @^@]@@ NODPLC(LOC+6)=IBR @ @]@@ QI )@@G@@CALL RESERV(NODE1,IBR) @ @]@@ CALL RESERV(NODE2,IBR) @ @]@@ QJ )@@G@@CALL RESERV(IBR,NODE1) @ @]@@ CALL RESERV(IBR,NODE2) @^@]@@ QK )@@G@@NUMVS=NUMVS+1 @ @]@@ NODPLC(ISEQ+NUMVS)=LOC @ @]@@ NODPLCQL )@@G@@(NEQN+NUMVS)=IBR @D@]@@ NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)+QM )@@G@@1 @D@]@@ NODPLC(NODEVS+NODE2)=NODPLC(NODEVS+NODE2)+1 @^@]@@QN )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 470 @[@]@@C @C@]@@C NONQO )@@G@@LINEAR CURRENT CONTROLLED CURRENT SOURCES @[@]@@C @^@]@@ 472 LOC=LOQP )@@G@@CATE(7) @ @]@@ 474 IF (LOC.EQ.0) GO TO 476 @ @]@@ NODE1=NODPLCQQ )@@G@@(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @^@]@@ NDIM=NODPLC(QR )@@G@@LOC+4)@ @]@@ LOCVS=NODPLC(LOC+6) @^@]@@ DO 475 I=1,NDIM QS )@@G@@@ @]@@ LOCVST=NODPLC(LOCVS+I) @ @]@@ KBR=NODPLC(LOCVST+6) QT )@@G@@@ @]@@ CALL RESERV(NODE1,KBR) @ @]@@ CALL RESERV(NODE2,KBR) QU )@@G@@@#@]@@ 475 CONTINUE @ @]@@ NODPLC(LOC+12)=NXTRM+1 @ @]@@ QV )@@G@@NXTRM=NXTRM+1+NDIM+NDIM @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO QW )@@G@@474 @[@]@@C @C@]@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES QX )@@G@@@[@]@@C @^@]@@ 476 LOC=LOCATE(8) @ @]@@ 478 IF (LOC.EQ.0) GO TQY )@@G@@O 500 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3QZ )@@G@@) @#@]@@ IBR=IBR+1 @^@]@@ NODPLC(LOC+6)=IBR @ @]@@ RA )@@G@@CALL RESERV(NODE1,IBR) @ @]@@ CALL RESERV(NODE2,IBR) @ @]@@ RB )@@G@@CALL RESERV(IBR,NODE1) @ @]@@ CALL RESERV(IBR,NODE2) @^@]@@ RC )@@G@@NUMVS=NUMVS+1 @ @]@@ NODPLC(ISEQ+NUMVS)=LOC @ @]@@ NODPLCRD )@@G@@(NEQN+NUMVS)=IBR @D@]@@ NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)+RE )@@G@@1 @D@]@@ NODPLC(NODEVS+NODE2)=NODPLC(NODEVS+NODE2)+1 @^@]@@RF )@@G@@ NDIM=NODPLC(LOC+4)@ @]@@ LOCVS=NODPLC(LOC+7) @^@]@@ RG )@@G@@DO 479 I=1,NDIM @ @]@@ LOCVST=NODPLC(LOCVS+I) @ @]@@ KBR=NORH )@@G@@DPLC(LOCVST+6) @ @]@@ CALL RESERV(IBR,KBR) @#@]@@ 479 CONTINRI )@@G@@UE @ @]@@ NODPLC(LOC+13)=NXTRM+1 @ @]@@ NXTRM=NXTRM+2+NDIMRJ )@@G@@+NDIM @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 478 @[@]@@C RK )@@G@@@]@]@@C DIODES @[@]@@C @^@]@@ 500 LOC=LOCATE(11) @ @]@@ 510 RL )@@G@@IF (LOC.EQ.0) GO TO 520 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ RM )@@G@@NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ RN )@@G@@CALL RESERV(NODE1,NODE1)@ @]@@ CALL RESERV(NODE2,NODE2)@ @]@@ RO )@@G@@CALL RESERV(NODE3,NODE3)@ @]@@ CALL RESERV(NODE1,NODE3)@ @]@@ RP )@@G@@CALL RESERV(NODE2,NODE3)@ @]@@ CALL RESERV(NODE3,NODE1)@ @]@@ RQ )@@G@@CALL RESERV(NODE3,NODE2)@ @]@@ NODPLC(LOC+11)=NXTRM+1 @^@]@@ RR )@@G@@NXTRM=NXTRM+5 @ @]@@ NODPLC(LOC+12)=NDIST+1 @^@]@@ NDIST=RS )@@G@@NDIST+7 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 510 @[@]@@RT )@@G@@C @#@]@@C TRANSISTORS @[@]@@C @^@]@@ 520 LOC=LOCATE(12) RU )@@G@@@ @]@@ 530 IF (LOC.EQ.0) GO TO 540 @ @]@@ NODE1=NODPLC(LOC+2) RV )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) RW )@@G@@@ @]@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) RX )@@G@@@ @]@@ NODE6=NODPLC(LOC+7) @ @]@@ CALL RESERV(NODE1,NODE1)RY )@@G@@@ @]@@ CALL RESERV(NODE2,NODE2)@ @]@@ CALL RESERV(NODE3,NODE3)RZ )@@G@@@ @]@@ CALL RESERV(NODE4,NODE4)@ @]@@ CALL RESERV(NODE5,NODE5)SA )@@G@@@ @]@@ CALL RESERV(NODE6,NODE6)@ @]@@ CALL RESERV(NODE1,NODE4)SB )@@G@@@ @]@@ CALL RESERV(NODE2,NODE5)@ @]@@ CALL RESERV(NODE3,NODE6)SC )@@G@@@ @]@@ CALL RESERV(NODE4,NODE5)@ @]@@ CALL RESERV(NODE4,NODE6)SD )@@G@@@ @]@@ CALL RESERV(NODE5,NODE6)@ @]@@ CALL RESERV(NODE4,NODE1)SE )@@G@@@ @]@@ CALL RESERV(NODE5,NODE2)@ @]@@ CALL RESERV(NODE6,NODE3)SF )@@G@@@ @]@@ CALL RESERV(NODE5,NODE4)@ @]@@ CALL RESERV(NODE6,NODE4)SG )@@G@@@ @]@@ CALL RESERV(NODE6,NODE5)@ @]@@ NODPLC(LOC+22)=NXTRM+1 SH )@@G@@@^@]@@ NXTRM=NXTRM+14 @ @]@@ NODPLC(LOC+23)=NDIST+1 @^@]@@SI )@@G@@ NDIST=NDIST+21 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO SJ )@@G@@530 @[@]@@C @]@]@@C JFETS @[@]@@C @^@]@@ 540 LOC=LOCATE(1SK )@@G@@3) @ @]@@ 550 IF (LOC.EQ.0) GO TO 560 @ @]@@ NODE1=NODPLC(LOC+2SL )@@G@@) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4SM )@@G@@) @ @]@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6SN )@@G@@) @ @]@@ CALL RESERV(NODE1,NODE1)@ @]@@ CALL RESERV(NODE2,SO )@@G@@NODE2)@ @]@@ CALL RESERV(NODE3,NODE3)@ @]@@ CALL RESERV(NODE4,SP )@@G@@NODE4)@ @]@@ CALL RESERV(NODE5,NODE5)@ @]@@ CALL RESERV(NODE1,SQ )@@G@@NODE4)@ @]@@ CALL RESERV(NODE2,NODE4)@ @]@@ CALL RESERV(NODE2,SR )@@G@@NODE5)@ @]@@ CALL RESERV(NODE3,NODE5)@ @]@@ CALL RESERV(NODE4,SS )@@G@@NODE5)@ @]@@ CALL RESERV(NODE4,NODE1)@ @]@@ CALL RESERV(NODE4,ST )@@G@@NODE2)@ @]@@ CALL RESERV(NODE5,NODE2)@ @]@@ CALL RESERV(NODE5,SU )@@G@@NODE3)@ @]@@ CALL RESERV(NODE5,NODE4)@ @]@@ NODPLC(LOC+19)=NXTSV )@@G@@RM+1 @^@]@@ NXTRM=NXTRM+13 @^@]@@ LOC=NODPLC(LOC) @#@]@@SW )@@G@@ GO TO 550 @[@]@@C @]@]@@C MOSFETS @[@]@@C @^@]@@ 560 SX )@@G@@LOC=LOCATE(14) @ @]@@ 570 IF (LOC.EQ.0) GO TO 600 @ @]@@ NODE1=SY )@@G@@NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=SZ )@@G@@NODPLC(LOC+4) @ @]@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=TA )@@G@@NODPLC(LOC+6) @ @]@@ NODE6=NODPLC(LOC+7) @ @]@@ CALL RTB )@@G@@ESERV(NODE1,NODE1)@ @]@@ CALL RESERV(NODE2,NODE2)@ @]@@ CALL RTC )@@G@@ESERV(NODE3,NODE3)@ @]@@ CALL RESERV(NODE4,NODE4)@ @]@@ CALL RTD )@@G@@ESERV(NODE5,NODE5)@ @]@@ CALL RESERV(NODE6,NODE6)@ @]@@ CALL RTE )@@G@@ESERV(NODE1,NODE5)@ @]@@ CALL RESERV(NODE2,NODE4)@ @]@@ CALL RTF )@@G@@ESERV(NODE2,NODE5)@ @]@@ CALL RESERV(NODE2,NODE6)@ @]@@ CALL RTG )@@G@@ESERV(NODE3,NODE6)@ @]@@ CALL RESERV(NODE4,NODE5)@ @]@@ CALL RTH )@@G@@ESERV(NODE4,NODE6)@ @]@@ CALL RESERV(NODE5,NODE6)@ @]@@ CALL RTI )@@G@@ESERV(NODE5,NODE1)@ @]@@ CALL RESERV(NODE4,NODE2)@ @]@@ CALL RTJ )@@G@@ESERV(NODE5,NODE2)@ @]@@ CALL RESERV(NODE6,NODE2)@ @]@@ CALL RTK )@@G@@ESERV(NODE6,NODE3)@ @]@@ CALL RESERV(NODE5,NODE4)@ @]@@ CALL RTL )@@G@@ESERV(NODE6,NODE4)@ @]@@ CALL RESERV(NODE6,NODE5)@ @]@@ NODPLCTM )@@G@@(LOC+26)=NXTRM+1 @^@]@@ NXTRM=NXTRM+22 @^@]@@ LOC=NODPLC(LTN )@@G@@OC) @#@]@@ GO TO 570 @[@]@@C @^@]@@C TRANSMISSION LINES TO )@@G@@@[@]@@C @^@]@@ 600 LOC=LOCATE(17) @ @]@@ 610 IF (LOC.EQ.0) GO TTP )@@G@@O 700 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3TQ )@@G@@) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ NODE4=NODPLC(LOC+5TR )@@G@@) @^@]@@ NI1=NODPLC(LOC+6) @^@]@@ NI2=NODPLC(LOC+7) @#@]@@TS )@@G@@ IBR1=IBR+1 @#@]@@ IBR2=IBR+2 @#@]@@ IBR=IBR+2 @^@]@@TT )@@G@@ NODPLC(LOC+8)=IBR1@^@]@@ NODPLC(LOC+9)=IBR2@ @]@@ CALL RTU )@@G@@ESERV(NODE1,NODE1)@ @]@@ CALL RESERV(NODE1,NI1) @ @]@@ CALL RTV )@@G@@ESERV(NODE2,IBR1) @ @]@@ CALL RESERV(NODE3,NODE3)@ @]@@ CALL RTW )@@G@@ESERV(NODE4,IBR2) @ @]@@ CALL RESERV(NI1,NODE1) @ @]@@ CALL RTX )@@G@@ESERV(NI1,NI1) @ @]@@ CALL RESERV(NI1,IBR1) @ @]@@ CALL RTY )@@G@@ESERV(NI2,NI2) @ @]@@ CALL RESERV(NI2,IBR2) @ @]@@ CALL RTZ )@@G@@ESERV(IBR1,NODE2) @ @]@@ CALL RESERV(IBR1,NODE3) @ @]@@ CALL RUA )@@G@@ESERV(IBR1,NODE4) @ @]@@ CALL RESERV(IBR1,NI1) @ @]@@ CALL RUB )@@G@@ESERV(IBR1,IBR2) @ @]@@ CALL RESERV(IBR2,NODE1) @ @]@@ CALL RUC )@@G@@ESERV(IBR2,NODE2) @ @]@@ CALL RESERV(IBR2,NODE4) @ @]@@ CALL RUD )@@G@@ESERV(IBR2,NI2) @ @]@@ CALL RESERV(IBR2,IBR1) @ @]@@ CALL RUE )@@G@@ESERV(NODE3,NI2) @ @]@@ CALL RESERV(NI2,NODE3) @^@]@@ NUMVS=UF )@@G@@NUMVS+1 @ @]@@ NODPLC(ISEQ+NUMVS)=LOC @ @]@@ NODPLC(ISEQ1UG )@@G@@+NUMVS)=1 @ @]@@ NODPLC(NEQN+NUMVS)=IBR1 @C@]@@ NODPLC(NODEVUH )@@G@@S+NI1)=NODPLC(NODEVS+NI1)+1 @D@]@@ NODPLC(NODEVS+NODE2)=NODPLC(NOUI )@@G@@DEVS+NODE2)+1 @^@]@@ NUMVS=NUMVS+1 @ @]@@ NODPLC(ISEQ+UJ )@@G@@NUMVS)=LOC @ @]@@ NODPLC(ISEQ1+NUMVS)=2 @ @]@@ NODPLC(NEQN+UK )@@G@@NUMVS)=IBR2 @C@]@@ NODPLC(NODEVS+NI2)=NODPLC(NODEVS+NI2)+1 @D@]@@UL )@@G@@ NODPLC(NODEVS+NODE4)=NODPLC(NODEVS+NODE4)+1 @ @]@@ NODPLCUM )@@G@@(LOC+30)=NTLIN+1 @^@]@@ NTLIN=NTLIN+2 @^@]@@ LOC=NODPLC(LUN )@@G@@OC) @#@]@@ GO TO 610 @[@]@@C @ @]@@C POLE/ZERO ANALYSIS SEUO )@@G@@TUP @[@]@@C @A@]@@ 700 IF (MODE.NE.3) GO TO 1000 @A@]@@ UP )@@G@@IF (MODAC.NE.3) GO TO 1000 @[@]@@C @^@]@@C... INPUT EQUATION UQ )@@G@@@[@]@@C @A@]@@ IF (IPZITP.NE.41) GO TO 710 @ @]@@ NODE1=UR )@@G@@NODPLC(IPZIN+2) @ @]@@ NODE2=NODPLC(IPZIN+3) @#@]@@ IBR=IBUS )@@G@@R+1 @#@]@@ IPZEQI=IBR @ @]@@ CALL RESERV(NODE1,IBR) @ @]@@UT )@@G@@ CALL RESERV(NODE2,IBR) @ @]@@ CALL RESERV(IBR,NODE1) @ @]@@UU )@@G@@ CALL RESERV(IBR,NODE2) @^@]@@ NUMVS=NUMVS+1 @ @]@@ UV )@@G@@NODPLC(ISEQ+NUMVS)=IPZIN@ @]@@ NODPLC(NEQN+NUMVS)=IBR @D@]@@ UW )@@G@@NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)+1 @D@]@@ NODPLC(NODEVUX )@@G@@S+NODE2)=NODPLC(NODEVS+NODE2)+1 @[@]@@C @^@]@@C... OUTPUT EQUATUY )@@G@@ION @[@]@@C @#@]@@ 710 IBR=IBR+1 @#@]@@ IPZEQO=IBR @B@]@@UZ )@@G@@ IF (NODPLC(IPZOUT+5).NE.0) GO TO 720@^@]@@C... VOLTAGE OUTPUT VA )@@G@@@ @]@@ NODE1=NODPLC(IPZOUT+2) @ @]@@ NODE2=NODPLC(IPZOUT+3) VB )@@G@@@ @]@@ CALL RESERV(IBR,NODE1) @ @]@@ CALL RESERV(IBR,NODE2) VC )@@G@@@#@]@@ GO TO 800 @^@]@@C... CURRENT OUTPUT @ @]@@ 720 IPTR=NVD )@@G@@ODPLC(IPZOUT+2) @ @]@@ IPTR=NODPLC(IPTR+6) @ @]@@ CALL RVE )@@G@@ESERV(IBR,IPTR) @[@]@@C @C@]@@C RESERVE ROOM FOR RHS COLUMN SWAP VF )@@G@@WITH OUTPUT @[@]@@C @A@]@@ 800 IF (IPZITP.EQ.10) GO TO 810 @C@]@@VG )@@G@@ IF (IPZITP.EQ.9) NUMEQN=NODPLC(IPZIN+6) @B@]@@ IF (IPZITP.EVH )@@G@@Q.41) NUMEQN=IPZEQI @A@]@@ CALL RESERV(NUMEQN,IPZEQO) @#@]@@VI )@@G@@ GO TO 1000 @ @]@@ 810 NODE1=NODPLC(IPZIN+2) @ @]@@ NODE2=VJ )@@G@@NODPLC(IPZIN+3) @A@]@@ CALL RESERV(NODE1,IPZEQO) @A@]@@ VK )@@G@@CALL RESERV(NODE2,IPZEQO) @[@]@@C @]@]@@C FINISHED @[@]@@C VL )@@G@@@]@]@@ 1000 RETURN@]@]@@ END @B@]@@ SUBROUTINE RESERV (NODE1VM )@@G@@,NODE2) @[@]@@C @G@]@@C THIS ROUTINE RECORDS THE FACT THAT TVN )@@G@@HE (NODE1, NODE2) ELEMENT OF @D@]@@C THE CIRCUIT EQUATION COEFFICIENT MVO )@@G@@ATRIX IS NONZERO. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,VP )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOVQ )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NVR )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISVS )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0VT )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5VU )@@G@@ LOUTPT,LPOL,LZER @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,VV )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLVW )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@VX )@@G@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVAVY )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @ @]@@ VZ )@@G@@IF (NOGO.NE.0) GO TO 300@^@]@@C... TEST FOR GROUND @A@]@@ IF (NOWA )@@G@@DE1.EQ.1) GO TO 300 @A@]@@ IF (NODE2.EQ.1) GO TO 300 @[@]@@WB )@@G@@C @B@]@@C TEST FOR (NODE1,NODE2) MATRIX ELEMENT @[@]@@C @^@]@@WC )@@G@@ LOC=ISR+NODE1 @B@]@@ 100 IF (NODPLC(LOC).EQ.0) GO TO 110 WD )@@G@@@^@]@@ LOC=NODPLC(LOC) @C@]@@ IF (NODPLC(LOC+1).EQ.NODE2) GOWE )@@G@@ TO 300 @#@]@@ GO TO 100 @[@]@@C @B@]@@C RESERVE (NODE1,WF )@@G@@NODE2) MATRIX ELEMENT @[@]@@C @D@]@@ 110 NODPLC(NUMOFF+NODE1)=NODWG )@@G@@PLC(NUMOFF+NODE1)+1 @D@]@@ NODPLC(NMOFFC+NODE2)=NODPLC(NMOFFC+NWH )@@G@@ODE2)+1 @A@]@@ CALL SIZMEM(NUMOFF,ISIZE) @ @]@@ NEWLOCWI )@@G@@=NUMOFF+ISIZE+1 @^@]@@ NODPLC(LOC)=NEWLOC@ @]@@ CALL EXTMEM(WJ )@@G@@NUMOFF,2) @^@]@@ NODPLC(NEWLOC)=0 @ @]@@ NODPLC(NEWLOC+1)=NWK )@@G@@ODE2 @[@]@@C @#@]@@C MARK DIAGONAL @[@]@@C @A@]@@ IF (NOWL )@@G@@DE1.NE.NODE2) GO TO 300 @ @]@@ NODPLC(NDIAG+NODE1)=1 @[@]@@C WM )@@G@@@]@]@@C FINISHED @[@]@@C @]@]@@ 300 RETURN@]@]@@ END @^@]@@WN )@@G@@ SUBROUTINE REORDR @[@]@@C @G@]@@C THIS ROUTINE SWAPS ROWS WO )@@G@@IN THE COEFFICIENT MATRIX TO ELIMINATE @G@]@@C SINGULARITY PROBLEMS WWP )@@G@@HICH CAN BE RECOGNIZED BY EXAMINING THE CIRCUIT @G@]@@C TOPOLOGY. IT THWQ )@@G@@EN REORDERS THE UNKNOWNS TO MINIMIZE FILLIN TERMS @F@]@@C WHICH OCCUWR )@@G@@R DURING LU FACTORIZATION. (TO MAXIMIZE SPARSITY). @[@]@@C @G@]@@WS )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, WT )@@G@@@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEWU )@@G@@, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,WV )@@G@@NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQWW )@@G@@UA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXWX )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ WY )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@WZ )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATXA )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODXB )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEXC )@@G@@MNO,NOSOLV,MODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTNXD )@@G@@,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4XE )@@G@@,ITL5,IGOOF,NOGO,KEOF @A@]@@ COMMON /DEBUG/ IDEBUG(20) @ @]@@XF )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ XG )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))XH )@@G@@@[@]@@C @A@]@@C ALLOCATE AND INITIALIZE STORAGE @[@]@@C @ @]@@XI )@@G@@ CALL GETMEM(ISWAP,NSTOP)@ @]@@ CALL GETMEM(IEQUA,NSTOP)@A@]@@XJ )@@G@@ CALL GETMEM(IORDER,NSTOP) @A@]@@ CALL GETMEM(JMNODE,NSTOPXK )@@G@@) @ @]@@ CALL GETMEM(IUR,NSTOP+1)@ @]@@ CALL GETMEM(ILC,NSXL )@@G@@TOP+1)@^@]@@ CALL GETMEM(IUC,0)@^@]@@ CALL GETMEM(ILR,0)@[@]@@XM )@@G@@C @^@]@@ DO 10 I=1,NSTOP @^@]@@ NODPLC(ISWAP+I)=I @#@]@@XN )@@G@@ 10 CONTINUE @E@]@@ CALL COPY4(NODPLC(ISWAP+1),NODPLC(IEQUA+1)XO )@@G@@,NSTOP) @E@]@@ CALL COPY4(NODPLC(ISWAP+1),NODPLC(IORDER+1),NSTOXP )@@G@@P) @E@]@@ CALL COPY4(NODPLC(ISWAP+1),NODPLC(JMNODE+1),NSTOP) XQ )@@G@@@[@]@@C @F@]@@C SWAP CURRENT EQUATIONS INTO ADMITTANCE PART OF EQUAXR )@@G@@TION MATRIX @[@]@@C @#@]@@ NEXTV=1 @G@]@@C*****************XS )@@G@@********************** DIAGNOSTIC WRITE **************@A@]@@ IF (IDXT )@@G@@EBUG(8).LE.0) GO TO 100 @C@]@@ WRITE (6,26) (NODPLC(NODEVS+I),I=1,NXU )@@G@@UMNOD)@E@]@@ 26 FORMAT(^ *DEBUG*: REORDR - NODEVS() = ^,/,(5X,20I5)) XV )@@G@@@C@]@@ WRITE (6,31) (NODPLC(NDIAG+I),I=1,NSTOP) @E@]@@ 31 FORMATXW )@@G@@(^ *DEBUG*: REORDR - NDIAG() = ^,/,(5X,20I5)) @G@]@@C*****************XX )@@G@@******************************************************@[@]@@C @A@]@@XY )@@G@@C FIND SUITABLE VOLTAGE SOURCE @[@]@@C @A@]@@ 100 IF (NEXTV.GTXZ )@@G@@.NUMVS) GO TO 150 @]@]@@ IX=0 @ @]@@ DO 130 I=NEXTV,NUMVS YA )@@G@@@^@]@@ LOC=NODPLC(ISEQ+I)@^@]@@ NODE=NODPLC(LOC+2)@ @]@@ YB )@@G@@NFLAG=NODPLC(ISEQ1+I) @B@]@@ IF (NFLAG.EQ.1) NODE=NODPLC(LOC+6) YC )@@G@@@B@]@@ IF (NFLAG.EQ.2) NODE=NODPLC(LOC+7) @ @]@@ IF (NODE.EQ.YD )@@G@@1) GO TO 110@C@]@@ IF (NODPLC(NODEVS+NODE).GE.2) GO TO 110 @C@]@@YE )@@G@@ IF (NODPLC(NDIAG+NODE).EQ.0) GO TO 140 @]@]@@ IX=I @#@]@@YF )@@G@@ LOCX=LOC @#@]@@ NODEX=NODE @^@]@@ 110 NODE=NODPLC(LOC+3)YG )@@G@@@B@]@@ IF (NFLAG.EQ.2) NODE=NODPLC(LOC+5) @ @]@@ IF (NODE.EQ.YH )@@G@@1) GO TO 130@C@]@@ IF (NODPLC(NODEVS+NODE).GE.2) GO TO 130 @C@]@@YI )@@G@@ 120 IF (NODPLC(NDIAG+NODE).EQ.0) GO TO 140 @]@]@@ IX=I @#@]@@YJ )@@G@@ LOCX=LOC @#@]@@ NODEX=NODE @#@]@@ 130 CONTINUE @ @]@@YK )@@G@@ IF (IX.EQ.0) GO TO 590 @]@]@@ I=IX @#@]@@ LOC=LOCX YL )@@G@@@#@]@@ NODE=NODEX @[@]@@C @ @]@@C RESEQUENCE VOLTAGE SOURCES YM )@@G@@@[@]@@C @G@]@@C*************************************** DIAGNOSTIC WRYN )@@G@@ITE **************@A@]@@ 140 IF (IDEBUG(8).LE.0) GO TO 145 @^@]@@ YO )@@G@@LOCV=NODPLC(LOC+1)@G@]@@ WRITE (6,141) NEXTV,LOC,VALUE(LOCV),NODE,NYP )@@G@@ODPLC(JUNODE+NODE), @C@]@@ 1 NODPLC(NODEVS+NODE),NODPLC(NDIAG+YQ )@@G@@NODE) @E@]@@ 141 FORMAT(^ *DEBUG*: REORDR - ROW-SWAP INFORMATION:^,/, YR )@@G@@@G@]@@ 1 ^ NEXTV, LOC, V(LOCV), NODE, JUNODE(), NODEVS(), NDIAG() YS )@@G@@-^,/, @ @]@@ 2 2I10,1X,A8,4I10) @G@]@@C***********************YT )@@G@@************************************************@B@]@@ 145 NODPLC(ISEQ+YU )@@G@@I)=NODPLC(ISEQ+NEXTV) @ @]@@ NODPLC(ISEQ+NEXTV)=LOC @ @]@@ YV )@@G@@LTEMP=NODPLC(ISEQ1+I) @B@]@@ NODPLC(ISEQ1+I)=NODPLC(ISEQ1+NEXTV) YW )@@G@@@A@]@@ NODPLC(ISEQ1+NEXTV)=LTEMP @^@]@@ IBR=NODPLC(NEQN+I)YX )@@G@@@B@]@@ NODPLC(NEQN+I)=NODPLC(NEQN+NEXTV) @ @]@@ NODPLC(NEQN+YY )@@G@@NEXTV)=IBR @ @]@@ NODE1=NODPLC(LOC+2) @B@]@@ IF (LTEMP.EQYZ )@@G@@.1) NODE1=NODPLC(LOC+6) @B@]@@ IF (LTEMP.EQ.2) NODE1=NODPLC(LOC+7) ZA )@@G@@@ @]@@ NODE2=NODPLC(LOC+3) @B@]@@ IF (LTEMP.EQ.1) NODE2=NOZB )@@G@@DPLC(LOC+3) @B@]@@ IF (LTEMP.EQ.2) NODE2=NODPLC(LOC+5) @D@]@@ ZC )@@G@@NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)-1 @D@]@@ NODPLC(NODEVZD )@@G@@S+NODE2)=NODPLC(NODEVS+NODE2)-1 @[@]@@C @ @]@@C SET ROW SWAP INZE )@@G@@DICATORS @[@]@@C @ @]@@ L=NODPLC(ISWAP+IBR) @ @]@@ ZF )@@G@@J=NODPLC(IEQUA+NODE) @^@]@@ NODPLC(ISWAP+J)=L @^@]@@ NODPLCZG )@@G@@(IEQUA+L)=J @ @]@@ NODPLC(ISWAP+IBR)=NODE @ @]@@ NODPLC(IEQUAZH )@@G@@+NODE)=IBR @^@]@@ NEXTV=NEXTV+1 @#@]@@ GO TO 100 @[@]@@ZI )@@G@@C @ @]@@C INITIALIZE MATRIX POINTERS @[@]@@C @#@]@@ 150 NEXNODZJ )@@G@@=2 @]@]@@ NUT=0 @]@]@@ NLT=0 @ @]@@ 160 NODPLC(IUR+NEXNOD)ZK )@@G@@=NUT+1@ @]@@ NODPLC(ILC+NEXNOD)=NLT+1@A@]@@ IF (NEXNOD.GE.NSTOZL )@@G@@P) GO TO 500@[@]@@C @ @]@@C SELECT ROW FOR REORDERING @[@]@@C ZM )@@G@@@A@]@@ LOAD=NODPLC(IORDER+NEXNOD) @ @]@@ IR=NODPLC(ISWAP+LOZN )@@G@@AD) @C@]@@ IMIN=NODPLC(NUMOFF+IR)*NODPLC(NMOFFC+LOAD)@^@]@@ ZO )@@G@@NSTART=NEXNOD+1 @ @]@@ DO 200 I=NSTART,NSTOP @ @]@@ LC=NODZP )@@G@@PLC(IORDER+I) @ @]@@ IR=NODPLC(ISWAP+LC) @C@]@@ NRC=NOZQ )@@G@@DPLC(NUMOFF+IR)*NODPLC(NMOFFC+LC) @A@]@@ IF (NRC.GE.IMIN) GO TO 2ZR )@@G@@00 @ @]@@ IF (MODE.NE.3) GO TO 190@A@]@@ IF (MODAC.NE.3) GOZS )@@G@@ TO 190 @A@]@@ IF (I.EQ.NSTOP) GO TO 200 @#@]@@ 190 IMIN=NZT )@@G@@RC @#@]@@ LOAD=LC @#@]@@ 200 CONTINUE @[@]@@C @ @]@@ZU )@@G@@C SET REORDER INDICATORS @[@]@@C @ @]@@ IR=NODPLC(ISWAP+LOZV )@@G@@AD) @C@]@@ NODPLC(NUMOFF+IR)=NODPLC(NUMOFF+IR)-1 @C@]@@ ZW )@@G@@NODPLC(NMOFFC+LOAD)=NODPLC(NMOFFC+LOAD)-1 @ @]@@ LC=NODPLC(IORDER+NZX )@@G@@EXNOD)@ @]@@ JR=NODPLC(JMNODE+LOAD) @ @]@@ NODPLC(IORDER+JR)=ZY )@@G@@LC @ @]@@ NODPLC(JMNODE+LC)=JR @A@]@@ NODPLC(IORDER+NEXNZZ )@@G@@OD)=LOAD @A@]@@ NODPLC(JMNODE+LOAD)=NEXNOD @[@]@@C @A@]@@AA )@@G@@C SET POINTERS FOR UPPER TRIANGLE @[@]@@C @#@]@@ LOC=ISR+IR AB )@@G@@@B@]@@ 330 IF (NODPLC(LOC).EQ.0) GO TO 340 @^@]@@ LOC=NODPLC(LAC )@@G@@OC) @^@]@@ IC=NODPLC(LOC+1) @ @]@@ JC=NODPLC(JMNODE+IC) AD )@@G@@@A@]@@ IF (JC.LE.NEXNOD) GO TO 330 @C@]@@ NODPLC(NMOFFC+IC)=AE )@@G@@NODPLC(NMOFFC+IC)-1 @^@]@@ CALL EXTMEM(IUC,1)@ @]@@ NODPLCAF )@@G@@(IUC+NUT+1)=IC @#@]@@ NUT=NUT+1 @#@]@@ GO TO 330 @[@]@@AG )@@G@@C @A@]@@C SET POINTERS FOR LOWER TRIANGLE @[@]@@C @ @]@@ 340 AH )@@G@@DO 390 JR=NSTART,NSTOP @ @]@@ LC=NODPLC(IORDER+JR) @ @]@@ AI )@@G@@IR=NODPLC(ISWAP+LC) @#@]@@ LOC=ISR+IR @B@]@@ 350 IF (NODPLC(LAJ )@@G@@OC).EQ.0) GO TO 390 @^@]@@ LOC=NODPLC(LOC) @B@]@@ IF (NOAK )@@G@@DPLC(LOC+1).NE.LOAD) GO TO 350@C@]@@ NODPLC(NUMOFF+IR)=NODPLC(NUMOFAL )@@G@@F+IR)-1 @^@]@@ CALL EXTMEM(ILR,1)@ @]@@ NODPLC(ILR+NLT+1)=AM )@@G@@LC @#@]@@ NLT=NLT+1 @[@]@@C @ @]@@C CHECK FOR FILL-IN TERAN )@@G@@MS @[@]@@C @ @]@@ NCT=NODPLC(IUR+NEXNOD) @A@]@@ 360 IF (NCAO )@@G@@T.GE.(NUT+1)) GO TO 390 @^@]@@ IC=NODPLC(IUC+NCT)@^@]@@ CALL RAP )@@G@@ESERV(IR,IC)@#@]@@ NCT=NCT+1 @#@]@@ GO TO 360 @#@]@@ 390 AQ )@@G@@CONTINUE @[@]@@C @[@]@@C @^@]@@ NEXNOD=NEXNOD+1 @#@]@@AR )@@G@@ GO TO 160 @[@]@@C @^@]@@C REORDERING FINISHED @[@]@@C AS )@@G@@@A@]@@ 500 NODPLC(IUR+NSTOP+1)=NUT+1 @A@]@@ NODPLC(ILC+NSTOP+1AT )@@G@@)=NLT+1 @ @]@@ IF (NUT.EQ.0) GO TO 515 @^@]@@ DO 510 I=1,NAU )@@G@@UT @^@]@@ J=NODPLC(IUC+I) @A@]@@ NODPLC(IUC+I)=NODPLC(JMNAV )@@G@@ODE+J)@#@]@@ 510 CONTINUE @ @]@@ 515 IF (NLT.EQ.0) GO TO 600 @^@]@@AW )@@G@@ DO 520 I=1,NLT @^@]@@ J=NODPLC(ILR+I) @A@]@@ NODPLCAX )@@G@@(ILR+I)=NODPLC(JMNODE+J)@#@]@@ 520 CONTINUE @#@]@@ GO TO 600 AY )@@G@@@[@]@@C @G@]@@C ERROR - VOLTAGE-SOURCE/INDUCTOR/TRANSMISSION-LINE LAZ )@@G@@OOP DETECTED ... @[@]@@C @]@]@@ 590 NOGO=1@^@]@@ WRITE (6,591BA )@@G@@) @C@]@@C... LOOP SHOULD HAVE BEEN DETECTED IN TOPCHK @E@]@@ 591 BB )@@G@@FORMAT(^0*ABORT*: SPICE INTERNAL ERROR IN REORDR^/) @[@]@@C @]@]@@BC )@@G@@C FINISHED @[@]@@C @]@]@@ 600 RETURN@]@]@@ END @^@]@@ BD )@@G@@SUBROUTINE MATLOC @[@]@@C @G@]@@C THIS ROUTINE STORES THE LOCATIBE )@@G@@ONS OF THE VARIOUS MATRIX TERMS TO @D@]@@C WHICH THE DIFFERENT CIRCUIT BF )@@G@@ELEMENTS CONTRIBUTE. @[@]@@C @G@]@@ COMMON /CIRDAT/ LOCATE(5BG )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NBH )@@G@@DIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELBI )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METBJ )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@BK )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, BL )@@G@@@F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, BM )@@G@@@F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), BN )@@G@@@#@]@@ 3 IPIMAT(4)@ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ BO )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE BP )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @]@]@@C RESISTORS@[@]@@C BQ )@@G@@@^@]@@ LOC=LOCATE(1) @ @]@@ 690 IF (LOC.EQ.0) GO TO 700 @ @]@@BR )@@G@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @B@]@@BS )@@G@@ NODPLC(LOC+4)=INDEX(NODE1,NODE2) @B@]@@ NODPLC(LOC+5)=INDEBT )@@G@@X(NODE2,NODE1) @B@]@@ NODPLC(LOC+6)=INDEX(NODE1,NODE1) @B@]@@BU )@@G@@ NODPLC(LOC+7)=INDEX(NODE2,NODE2) @^@]@@ LOC=NODPLC(LOC) BV )@@G@@@#@]@@ GO TO 690 @[@]@@C @#@]@@C CAPACITORS @[@]@@C BW )@@G@@@^@]@@ 700 LOC=LOCATE(2) @ @]@@ 710 IF (LOC.EQ.0) GO TO 720 @ @]@@BX )@@G@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @B@]@@BY )@@G@@ NODPLC(LOC+4)=INDEX(NODE1,NODE1) @B@]@@ NODPLC(LOC+5)=INDEBZ )@@G@@X(NODE1,NODE2) @B@]@@ NODPLC(LOC+6)=INDEX(NODE2,NODE1) @B@]@@CA )@@G@@ NODPLC(LOC+7)=INDEX(NODE2,NODE2) @^@]@@ LOC=NODPLC(LOC) CB )@@G@@@#@]@@ GO TO 710 @[@]@@C @]@]@@C INDUCTORS@[@]@@C @^@]@@CC )@@G@@ 720 LOC=LOCATE(3) @ @]@@ 730 IF (LOC.EQ.0) GO TO 740 @ @]@@ CD )@@G@@NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @^@]@@ CE )@@G@@IBR=NODPLC(LOC+4) @A@]@@ NODPLC(LOC+5)=INDEX(NODE1,IBR)@A@]@@ CF )@@G@@NODPLC(LOC+6)=INDEX(NODE2,IBR)@A@]@@ NODPLC(LOC+7)=INDEX(IBR,NODE1)CG )@@G@@@A@]@@ NODPLC(LOC+8)=INDEX(IBR,NODE2)@A@]@@ NODPLC(LOC+9)=INDECH )@@G@@X(IBR,IBR) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 730 @[@]@@CI )@@G@@C @^@]@@C MUTUAL INDUCTANCES @[@]@@C @^@]@@ 740 LOC=LOCATE(4CJ )@@G@@) @ @]@@ 750 IF (LOC.EQ.0) GO TO 760 @^@]@@ NL1=NODPLC(LOC+2) CK )@@G@@@^@]@@ NL2=NODPLC(LOC+3) @^@]@@ IBR1=NODPLC(NL1+4)@^@]@@ CL )@@G@@IBR2=NODPLC(NL2+4)@A@]@@ NODPLC(LOC+4)=INDEX(IBR1,IBR2)@A@]@@ CM )@@G@@NODPLC(LOC+5)=INDEX(IBR2,IBR1)@^@]@@ LOC=NODPLC(LOC) @#@]@@ CN )@@G@@GO TO 750 @[@]@@C @C@]@@C NONLINEAR VOLTAGE CONTROLLED CURRENT SOCO )@@G@@URCES @[@]@@C @^@]@@ 760 LOC=LOCATE(5) @ @]@@ 762 IF (LOC.EQ.0CP )@@G@@) GO TO 764 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLCCQ )@@G@@(LOC+3) @^@]@@ NDIM=NODPLC(LOC+4)@^@]@@ LNOD=NODPLC(LOC+6)CR )@@G@@@^@]@@ LMAT=NODPLC(LOC+7)@^@]@@ DO 763 I=1,NDIM @ @]@@ CS )@@G@@NODE3=NODPLC(LNOD+1) @ @]@@ NODE4=NODPLC(LNOD+2) @#@]@@ CT )@@G@@LNOD=LNOD+2 @B@]@@ NODPLC(LMAT+1)=INDEX(NODE1,NODE3) @B@]@@ CU )@@G@@NODPLC(LMAT+2)=INDEX(NODE1,NODE4) @B@]@@ NODPLC(LMAT+3)=INDEX(NODCV )@@G@@E2,NODE3) @B@]@@ NODPLC(LMAT+4)=INDEX(NODE2,NODE4) @#@]@@ CW )@@G@@LMAT=LMAT+4 @#@]@@ 763 CONTINUE @^@]@@ LOC=NODPLC(LOC) @#@]@@CX )@@G@@ GO TO 762 @[@]@@C @C@]@@C NONLINEAR VOLTAGE CONTROLLED VOLTCY )@@G@@AGE SOURCES @[@]@@C @^@]@@ 764 LOC=LOCATE(6) @ @]@@ 766 IF (LOCZ )@@G@@C.EQ.0) GO TO 768 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=DA )@@G@@NODPLC(LOC+3) @^@]@@ NDIM=NODPLC(LOC+4)@^@]@@ IBR=NODPLC(LDB )@@G@@OC+6) @^@]@@ LNOD=NODPLC(LOC+7)@^@]@@ LMAT=NODPLC(LOC+8)@B@]@@DC )@@G@@ NODPLC(LMAT+1)=INDEX(NODE1,IBR) @B@]@@ NODPLC(LMAT+2)=INDDD )@@G@@EX(NODE2,IBR) @B@]@@ NODPLC(LMAT+3)=INDEX(IBR,NODE1) @B@]@@DE )@@G@@ NODPLC(LMAT+4)=INDEX(IBR,NODE2) @#@]@@ LMAT=LMAT+4 @^@]@@DF )@@G@@ DO 767 I=1,NDIM @ @]@@ NODE3=NODPLC(LNOD+1) @ @]@@ DG )@@G@@NODE4=NODPLC(LNOD+2) @#@]@@ LNOD=LNOD+2 @B@]@@ NODPLC(LMAT+DH )@@G@@1)=INDEX(IBR,NODE3) @B@]@@ NODPLC(LMAT+2)=INDEX(IBR,NODE4) DI )@@G@@@#@]@@ LMAT=LMAT+2 @#@]@@ 767 CONTINUE @^@]@@ LOC=NODPLC(LDJ )@@G@@OC) @#@]@@ GO TO 766 @[@]@@C @C@]@@C NONLINEAR CURRENT CONDK )@@G@@TROLLED CURRENT SOURCES @[@]@@C @^@]@@ 768 LOC=LOCATE(7) @ @]@@DL )@@G@@ 770 IF (LOC.EQ.0) GO TO 772 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@DM )@@G@@ NODE2=NODPLC(LOC+3) @^@]@@ NDIM=NODPLC(LOC+4)@ @]@@ DN )@@G@@LOCVS=NODPLC(LOC+6) @^@]@@ LMAT=NODPLC(LOC+7)@^@]@@ DO 771DO )@@G@@ I=1,NDIM @ @]@@ LOCVST=NODPLC(LOCVS+I) @ @]@@ IBR=NODPLC(LDP )@@G@@OCVST+6) @B@]@@ NODPLC(LMAT+1)=INDEX(NODE1,IBR) @B@]@@ DQ )@@G@@NODPLC(LMAT+2)=INDEX(NODE2,IBR) @#@]@@ LMAT=LMAT+2 @#@]@@ 771 DR )@@G@@CONTINUE @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 770 @[@]@@DS )@@G@@C @C@]@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@]@@C DT )@@G@@@^@]@@ 772 LOC=LOCATE(8) @ @]@@ 774 IF (LOC.EQ.0) GO TO 780 @ @]@@DU )@@G@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @^@]@@DV )@@G@@ NDIM=NODPLC(LOC+4)@^@]@@ IBR=NODPLC(LOC+6) @ @]@@ LOCVS=DW )@@G@@NODPLC(LOC+7) @^@]@@ LMAT=NODPLC(LOC+8)@B@]@@ NODPLC(LMAT+DX )@@G@@1)=INDEX(NODE1,IBR) @B@]@@ NODPLC(LMAT+2)=INDEX(NODE2,IBR) DY )@@G@@@B@]@@ NODPLC(LMAT+3)=INDEX(IBR,NODE1) @B@]@@ NODPLC(LMAT+DZ )@@G@@4)=INDEX(IBR,NODE2) @#@]@@ LMAT=LMAT+4 @^@]@@ DO 775 I=1,NEA )@@G@@DIM @ @]@@ LOCVST=NODPLC(LOCVS+I) @ @]@@ KBR=NODPLC(LOCVST+EB )@@G@@6) @A@]@@ NODPLC(LMAT+I)=INDEX(IBR,KBR) @#@]@@ 775 CONTINUE EC )@@G@@@^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 774 @[@]@@C @#@]@@ED )@@G@@C VOLTAGE SOURCES@[@]@@C @^@]@@ 780 LOC=LOCATE(9) @ @]@@ 790 EE )@@G@@IF (LOC.EQ.0) GO TO 800 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ EF )@@G@@NODE2=NODPLC(LOC+3) @^@]@@ IPTR=NODPLC(LOC+6)@B@]@@ NODPLCEG )@@G@@(LOC+7)=INDEX(NODE1,IPTR) @B@]@@ NODPLC(LOC+8)=INDEX(NODE2,IPTREH )@@G@@) @B@]@@ NODPLC(LOC+9)=INDEX(IPTR,NODE1) @B@]@@ NODPLCEI )@@G@@(LOC+10)=INDEX(IPTR,NODE2) @^@]@@ LOC=NODPLC(LOC) @#@]@@ EJ )@@G@@GO TO 790 @[@]@@C @]@]@@C DIODES @[@]@@C @^@]@@ 800 LOC=LOEK )@@G@@CATE(11) @ @]@@ 810 IF (LOC.EQ.0) GO TO 820 @ @]@@ NODE1=NODPLCEL )@@G@@(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLCEM )@@G@@(LOC+4) @B@]@@ NODPLC(LOC+7)=INDEX(NODE1,NODE3) @B@]@@ EN )@@G@@NODPLC(LOC+8)=INDEX(NODE2,NODE3) @B@]@@ NODPLC(LOC+9)=INDEX(NODEEO )@@G@@3,NODE1) @B@]@@ NODPLC(LOC+10)=INDEX(NODE3,NODE2) @B@]@@ EP )@@G@@NODPLC(LOC+13)=INDEX(NODE1,NODE1) @B@]@@ NODPLC(LOC+14)=INDEX(NODEQ )@@G@@E2,NODE2) @B@]@@ NODPLC(LOC+15)=INDEX(NODE3,NODE3) @^@]@@ ER )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 810 @[@]@@C @#@]@@C TRANSISTOES )@@G@@RS @[@]@@C @^@]@@ 820 LOC=LOCATE(12) @ @]@@ 830 IF (LOC.EQ.0ET )@@G@@) GO TO 840 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLCEU )@@G@@(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ NODE4=NODPLCEV )@@G@@(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) @ @]@@ NODE6=NODPLCEW )@@G@@(LOC+7) @B@]@@ NODPLC(LOC+10)=INDEX(NODE1,NODE4) @B@]@@ EX )@@G@@NODPLC(LOC+11)=INDEX(NODE2,NODE5) @B@]@@ NODPLC(LOC+12)=INDEX(NODEY )@@G@@E3,NODE6) @B@]@@ NODPLC(LOC+13)=INDEX(NODE4,NODE1) @B@]@@ EZ )@@G@@NODPLC(LOC+14)=INDEX(NODE4,NODE5) @B@]@@ NODPLC(LOC+15)=INDEX(NODFA )@@G@@E4,NODE6) @B@]@@ NODPLC(LOC+16)=INDEX(NODE5,NODE2) @B@]@@ FB )@@G@@NODPLC(LOC+17)=INDEX(NODE5,NODE4) @B@]@@ NODPLC(LOC+18)=INDEX(NODFC )@@G@@E5,NODE6) @B@]@@ NODPLC(LOC+19)=INDEX(NODE6,NODE3) @B@]@@ FD )@@G@@NODPLC(LOC+20)=INDEX(NODE6,NODE4) @B@]@@ NODPLC(LOC+21)=INDEX(NODFE )@@G@@E6,NODE5) @B@]@@ NODPLC(LOC+24)=INDEX(NODE1,NODE1) @B@]@@ FF )@@G@@NODPLC(LOC+25)=INDEX(NODE2,NODE2) @B@]@@ NODPLC(LOC+26)=INDEX(NODFG )@@G@@E3,NODE3) @B@]@@ NODPLC(LOC+27)=INDEX(NODE4,NODE4) @B@]@@ FH )@@G@@NODPLC(LOC+28)=INDEX(NODE5,NODE5) @B@]@@ NODPLC(LOC+29)=INDEX(NODFI )@@G@@E6,NODE6) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 830 @[@]@@FJ )@@G@@C @]@]@@C JFETS @[@]@@C @^@]@@ 840 LOC=LOCATE(13) @ @]@@FK )@@G@@ 850 IF (LOC.EQ.0) GO TO 860 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@FL )@@G@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@FM )@@G@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) @B@]@@FN )@@G@@ NODPLC(LOC+9)=INDEX(NODE1,NODE4) @B@]@@ NODPLC(LOC+10)=INDFO )@@G@@EX(NODE2,NODE4) @B@]@@ NODPLC(LOC+11)=INDEX(NODE2,NODE5) @B@]@@FP )@@G@@ NODPLC(LOC+12)=INDEX(NODE3,NODE5) @B@]@@ NODPLC(LOC+13)=INDFQ )@@G@@EX(NODE4,NODE1) @B@]@@ NODPLC(LOC+14)=INDEX(NODE4,NODE2) @B@]@@FR )@@G@@ NODPLC(LOC+15)=INDEX(NODE4,NODE5) @B@]@@ NODPLC(LOC+16)=INDFS )@@G@@EX(NODE5,NODE2) @B@]@@ NODPLC(LOC+17)=INDEX(NODE5,NODE3) @B@]@@FT )@@G@@ NODPLC(LOC+18)=INDEX(NODE5,NODE4) @B@]@@ NODPLC(LOC+20)=INDFU )@@G@@EX(NODE1,NODE1) @B@]@@ NODPLC(LOC+21)=INDEX(NODE2,NODE2) @B@]@@FV )@@G@@ NODPLC(LOC+22)=INDEX(NODE3,NODE3) @B@]@@ NODPLC(LOC+23)=INDFW )@@G@@EX(NODE4,NODE4) @B@]@@ NODPLC(LOC+24)=INDEX(NODE5,NODE5) @^@]@@FX )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 850 @[@]@@C @]@]@@C MOSFY )@@G@@FETS @[@]@@C @^@]@@ 860 LOC=LOCATE(14) @ @]@@ 870 IF (LOC.EQ.0FZ )@@G@@) GO TO 900 @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLCGA )@@G@@(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ NODE4=NODPLCGB )@@G@@(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) @ @]@@ NODE6=NODPLCGC )@@G@@(LOC+7) @B@]@@ NODPLC(LOC+10)=INDEX(NODE1,NODE5) @B@]@@ GD )@@G@@NODPLC(LOC+11)=INDEX(NODE2,NODE4) @B@]@@ NODPLC(LOC+12)=INDEX(NODGE )@@G@@E2,NODE5) @B@]@@ NODPLC(LOC+13)=INDEX(NODE2,NODE6) @B@]@@ GF )@@G@@NODPLC(LOC+14)=INDEX(NODE3,NODE6) @B@]@@ NODPLC(LOC+15)=INDEX(NODGG )@@G@@E4,NODE2) @B@]@@ NODPLC(LOC+16)=INDEX(NODE4,NODE5) @B@]@@ GH )@@G@@NODPLC(LOC+17)=INDEX(NODE4,NODE6) @B@]@@ NODPLC(LOC+18)=INDEX(NODGI )@@G@@E5,NODE1) @B@]@@ NODPLC(LOC+19)=INDEX(NODE5,NODE2) @B@]@@ GJ )@@G@@NODPLC(LOC+20)=INDEX(NODE5,NODE4) @B@]@@ NODPLC(LOC+21)=INDEX(NODGK )@@G@@E5,NODE6) @B@]@@ NODPLC(LOC+22)=INDEX(NODE6,NODE2) @B@]@@ GL )@@G@@NODPLC(LOC+23)=INDEX(NODE6,NODE3) @B@]@@ NODPLC(LOC+24)=INDEX(NODGM )@@G@@E6,NODE4) @B@]@@ NODPLC(LOC+25)=INDEX(NODE6,NODE5) @B@]@@ GN )@@G@@NODPLC(LOC+27)=INDEX(NODE1,NODE1) @B@]@@ NODPLC(LOC+28)=INDEX(NODGO )@@G@@E2,NODE2) @B@]@@ NODPLC(LOC+29)=INDEX(NODE3,NODE3) @B@]@@ GP )@@G@@NODPLC(LOC+30)=INDEX(NODE4,NODE4) @B@]@@ NODPLC(LOC+31)=INDEX(NODGQ )@@G@@E5,NODE5) @B@]@@ NODPLC(LOC+32)=INDEX(NODE6,NODE6) @^@]@@ GR )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 870 @[@]@@C @^@]@@C TRANSMISSGS )@@G@@ION LINES @[@]@@C @^@]@@ 900 LOC=LOCATE(17) @ @]@@ 910 IF (LOGT )@@G@@C.EQ.0) GO TO 1000@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=GU )@@G@@NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ NODE4=GV )@@G@@NODPLC(LOC+5) @^@]@@ NI1=NODPLC(LOC+6) @^@]@@ NI2=NODPLC(LGW )@@G@@OC+7) @^@]@@ IBR1=NODPLC(LOC+8)@^@]@@ IBR2=NODPLC(LOC+9)@B@]@@GX )@@G@@ NODPLC(LOC+10)=INDEX(NODE1,NODE1) @B@]@@ NODPLC(LOC+11)=INDGY )@@G@@EX(NODE1,NI1) @B@]@@ NODPLC(LOC+12)=INDEX(NODE2,IBR1) @B@]@@GZ )@@G@@ NODPLC(LOC+13)=INDEX(NODE3,NODE3) @B@]@@ NODPLC(LOC+14)=INDHA )@@G@@EX(NODE4,IBR2) @B@]@@ NODPLC(LOC+15)=INDEX(NI1,NODE1) @A@]@@HB )@@G@@ NODPLC(LOC+16)=INDEX(NI1,NI1) @A@]@@ NODPLC(LOC+17)=INDEX(NI1HC )@@G@@,IBR1)@A@]@@ NODPLC(LOC+18)=INDEX(NI2,NI2) @A@]@@ NODPLC(LOC+1HD )@@G@@9)=INDEX(NI2,IBR2)@B@]@@ NODPLC(LOC+20)=INDEX(IBR1,NODE2) @B@]@@HE )@@G@@ NODPLC(LOC+21)=INDEX(IBR1,NODE3) @B@]@@ NODPLC(LOC+22)=INDHF )@@G@@EX(IBR1,NODE4) @A@]@@ NODPLC(LOC+23)=INDEX(IBR1,NI1)@B@]@@ HG )@@G@@NODPLC(LOC+24)=INDEX(IBR1,IBR2) @B@]@@ NODPLC(LOC+25)=INDEX(IBRHH )@@G@@2,NODE1) @B@]@@ NODPLC(LOC+26)=INDEX(IBR2,NODE2) @B@]@@ HI )@@G@@NODPLC(LOC+27)=INDEX(IBR2,NODE4) @A@]@@ NODPLC(LOC+28)=INDEX(IBRHJ )@@G@@2,NI2)@B@]@@ NODPLC(LOC+29)=INDEX(IBR2,IBR1) @B@]@@ NODPLCHK )@@G@@(LOC+31)=INDEX(NODE3,NI2) @B@]@@ NODPLC(LOC+32)=INDEX(NI2,NODE3HL )@@G@@) @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 910 @[@]@@C HM )@@G@@@^@]@@C POLE/ZERO ANALYSIS @[@]@@C @A@]@@ 1000 IF (MODE.NE.3) GO HN )@@G@@TO 1200 @A@]@@ IF (MODAC.NE.3) GO TO 1200 @[@]@@C @^@]@@HO )@@G@@C... INPUT EQUATION @[@]@@C @A@]@@ IF (IPZITP.NE.41) GO TO HP )@@G@@1110 @ @]@@ NODE1=NODPLC(IPZIN+2) @ @]@@ NODE2=NODPLC(IPZINHQ )@@G@@+3) @#@]@@ IBR=IPZEQI @A@]@@ IPIMAT(1)=INDEX(NODE1,IBR) HR )@@G@@@A@]@@ IPIMAT(2)=INDEX(NODE2,IBR) @A@]@@ IPIMAT(3)=INDEX(IBHS )@@G@@R,NODE1) @A@]@@ IPIMAT(4)=INDEX(IBR,NODE2) @[@]@@C @C@]@@HT )@@G@@C... GET LOCATION OF RHS/OUTPUT COLUMN SWAP @[@]@@C @A@]@@ 1110 HU )@@G@@IF (IPZITP.EQ.10) GO TO 1120 @C@]@@ IF (IPZITP.EQ.9) NUMEQN=NODPLCHV )@@G@@(IPZIN+6) @B@]@@ IF (IPZITP.EQ.41) NUMEQN=IPZEQI @A@]@@ HW )@@G@@IPZLOC(1)=INDEX(NUMEQN,IPZEQO)@#@]@@ GO TO 1130 @ @]@@ 1120 NODE1=HX )@@G@@NODPLC(IPZIN+2) @ @]@@ NODE2=NODPLC(IPZIN+3) @A@]@@ IPZLOCHY )@@G@@(1)=INDEX(NODE1,IPZEQO) @A@]@@ IPZLOC(2)=INDEX(NODE2,IPZEQO) @[@]@@HZ )@@G@@C @^@]@@C... OUTPUT EQUATION @[@]@@C @C@]@@ 1130 IF (NODPLC(IIA )@@G@@PZOUT+5).NE.0) GO TO 1140 @ @]@@ NODE1=NODPLC(IPZOUT+2) @ @]@@IB )@@G@@ NODE2=NODPLC(IPZOUT+3) @A@]@@ IPOMAT(1)=INDEX(IPZEQO,NODE1) IC )@@G@@@A@]@@ IPOMAT(2)=INDEX(IPZEQO,NODE2) @#@]@@ GO TO 1200 @ @]@@ID )@@G@@ 1140 IPTR=NODPLC(IPZOUT+2) @ @]@@ IPTR=NODPLC(IPTR+6) @A@]@@IE )@@G@@ IPOMAT(1)=INDEX(IPZEQO,IPTR) @[@]@@C @]@]@@C FINISHED @[@]@@IF )@@G@@C @]@]@@ 1200 RETURN@]@]@@ END @A@]@@ FUNCTION INDEX(NODIG )@@G@@E1,NODE2) @[@]@@C @G@]@@C THIS ROUTINE MAPS A (ROW, COLUMN) MAIH )@@G@@TRIX TERM SPECIFICATION INTO @G@]@@C THE OFFSET FROM THE ORIGIN OF THE II )@@G@@MATRIX STORAGE AT WHICH THE TERM IS @^@]@@C ACTUALLY LOCATED. @[@]@@IJ )@@G@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEIK )@@G@@MPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IIL )@@G@@COLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IM )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIIN )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXIO )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER IP )@@G@@@G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NIQ )@@G@@STOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @]@@ IR )@@G@@COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEIS )@@G@@X CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@IT )@@G@@C @^@]@@C CHECK FOR GROUND @[@]@@C @A@]@@ IF (NODE1.EQIU )@@G@@.1) GO TO 400 @A@]@@ IF (NODE2.EQ.1) GO TO 400 @[@]@@C IV )@@G@@@ @]@@ N1=NODPLC(IEQUA+NODE1) @ @]@@ N1=NODPLC(JMNODE+N1) IW )@@G@@@ @]@@ N2=NODPLC(JMNODE+NODE2) @[@]@@C @[@]@@C @ @]@@ IX )@@G@@IF (N1-N2) 100,200,300 @[@]@@C @#@]@@C UPPER TRIANGLE @[@]@@C IY )@@G@@@^@]@@ 100 NS=NODPLC(IUR+N1) @ @]@@ NE=NODPLC(IUR+N1+1) @ @]@@IZ )@@G@@ 110 IF (NS.GE.NE) GO TO 400 @B@]@@ IF (NODPLC(IUC+NS).EQ.N2) GO TJA )@@G@@O 120 @#@]@@ NS=NS+1 @#@]@@ GO TO 110 @^@]@@ 120 INDEX=JB )@@G@@NSTOP+NS @#@]@@ GO TO 500 @[@]@@C @]@]@@C DIAGONAL @[@]@@JC )@@G@@C @#@]@@ 200 INDEX=NODE2 @#@]@@ GO TO 500 @[@]@@C @#@]@@JD )@@G@@C LOWER TRIANGLE @[@]@@C @^@]@@ 300 NS=NODPLC(ILC+N2) @ @]@@ JE )@@G@@NE=NODPLC(ILC+N2+1) @ @]@@ 310 IF (NS.GE.NE) GO TO 400 @B@]@@ JF )@@G@@IF (NODPLC(ILR+NS).EQ.N1) GO TO 320 @#@]@@ NS=NS+1 @#@]@@ JG )@@G@@GO TO 310 @^@]@@ 320 INDEX=NSTOP+NUT+NS@#@]@@ GO TO 500 @[@]@@JH )@@G@@C @#@]@@C UNUSED LOCATION@[@]@@C @#@]@@ 400 INDEX=1 @[@]@@JI )@@G@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 500 RETURN@]@]@@ END JJ )@@G@@@^@]@@ SUBROUTINE CODGEN @[@]@@C @G@]@@C THIS ROUTINE GENERJK )@@G@@ATES MACHINE INSTRUCTIONS (FOR THE CDC 6400) TO @D@]@@C LU-FACTOR AND SOJL )@@G@@LVE THE SET OF CIRCUIT EQUATIONS. @[@]@@C @G@]@@ COMMON /TABIJM )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISEJN )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2JO )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@JP )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, JQ )@@G@@@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,JR )@@G@@LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOJS )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NJT )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IJU )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITJV )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /KNSTNT/ TWOPI,XLJW )@@G@@OG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSJX )@@G@@TOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@ COMMON /BLANK/ VALJY )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@JZ )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @#@]@@C INIKA )@@G@@TIALIZE @[@]@@C @ @]@@ CALL GETMEM(MACINS,2) @#@]@@ KB )@@G@@CALL CRUNCH @#@]@@ LV1=MACINS+1@]@]@@ LVN=0 @#@]@@ LYNL=NKC )@@G@@STOP @^@]@@ LYU=LYNL+NSTOP @#@]@@ LYL=LYU+NUT @B@]@@ KD )@@G@@CALL MINS0(GMIN,IGOOF,VALUE(LV1)) @[@]@@C @#@]@@C LU DECOMPOSTIONKE )@@G@@@[@]@@C @^@]@@ DO 180 I=2,NSTOP @ @]@@ IO=NODPLC(IORDER+IKF )@@G@@) @ @]@@ CALL EXTMEM(MACINS,4) @A@]@@ 10 CALL MINS1(VALUE(LKG )@@G@@YNL+IO)) @ @]@@ JSTART=NODPLC(ILC+I) @ @]@@ JSTOP=NODPLCKH )@@G@@(ILC+I+1)-1 @A@]@@ IF (JSTART.GT.JSTOP) GO TO 180@ @]@@ DO 170KI )@@G@@ J=JSTART,JSTOP @ @]@@ CALL EXTMEM(MACINS,2) @C@]@@ 20 CALL MKJ )@@G@@INS2(VALUE(LYL+J),VALUE(LYNL+IO)) @^@]@@ ICOL=NODPLC(ILR+J)@ @]@@KK )@@G@@ KSTART=NODPLC(IUR+I) @ @]@@ KSTOP=NODPLC(IUR+I+1)-1 @A@]@@KL )@@G@@ IF (KSTART.GT.KSTOP) GO TO 170@ @]@@ DO 160 K=KSTART,KSTOP KM )@@G@@@^@]@@ IROW=NODPLC(IUC+K)@ @]@@ IF (ICOL-IROW) 30,80,50 @ @]@@KN )@@G@@ 30 L=NODPLC(IUR+ICOL+1) @]@]@@ 40 L=L-1 @B@]@@ IF (NODPLC(IKO )@@G@@UC+L).NE.IROW) GO TO 40 @#@]@@ ISPOT=LYU+L @#@]@@ GO TO 100 KP )@@G@@@ @]@@ 50 L=NODPLC(ILC+IROW+1) @]@]@@ 60 L=L-1 @B@]@@ IF (NOKQ )@@G@@DPLC(ILR+L).NE.ICOL) GO TO 60 @#@]@@ ISPOT=LYL+L @#@]@@ GO TO KR )@@G@@100 @A@]@@ 80 ISPOT=LYNL+NODPLC(IORDER+IROW)@ @]@@ 100 CALL EXTMEM(KS )@@G@@MACINS,3) @E@]@@ 110 CALL MINS3(VALUE(ISPOT),VALUE(LYL+J),VALUE(LYU+KKT )@@G@@)) @#@]@@ 160 CONTINUE @#@]@@ 170 CONTINUE @#@]@@ 180 CONTINKU )@@G@@UE @[@]@@C @^@]@@C FORWARD SUBSTITUTION @[@]@@C @^@]@@ KV )@@G@@DO 230 I=2,NSTOP @ @]@@ JSTART=NODPLC(ILC+I) @ @]@@ JSTOP=KW )@@G@@NODPLC(ILC+I+1)-1 @A@]@@ IF (JSTART.GT.JSTOP) GO TO 230@ @]@@ KX )@@G@@IO=NODPLC(IORDER+I) @ @]@@ DO 220 J=JSTART,JSTOP @^@]@@ KY )@@G@@JO=NODPLC(ILR+J) @ @]@@ JO=NODPLC(IORDER+JO) @ @]@@ CALL EKZ )@@G@@XTMEM(MACINS,3) @E@]@@ 210 CALL MINS3(VALUE(LVN+JO),VALUE(LYL+J),VALULA )@@G@@E(LVN+IO)) @#@]@@ 220 CONTINUE @#@]@@ 230 CONTINUE @[@]@@C LB )@@G@@@^@]@@C BACK SUBSTITUTION @[@]@@C @#@]@@ K=NSTOP+1 @^@]@@LC )@@G@@ DO 280 I=2,NSTOP @]@]@@ K=K-1 @ @]@@ IO=NODPLC(IORDER+KLD )@@G@@) @ @]@@ JSTART=NODPLC(IUR+K) @ @]@@ JSTOP=NODPLC(IUR+KLE )@@G@@+1)-1 @A@]@@ IF (JSTART.GT.JSTOP) GO TO 260@ @]@@ DO 250 J=JSTLF )@@G@@ART,JSTOP @^@]@@ JO=NODPLC(IUC+J) @ @]@@ JO=NODPLC(IORDER+JLG )@@G@@O) @ @]@@ CALL EXTMEM(MACINS,3) @E@]@@ 240 CALL MINS3(VALUE(LLH )@@G@@VN+IO),VALUE(LYU+J),VALUE(LVN+JO)) @#@]@@ 250 CONTINUE @ @]@@ 260 LI )@@G@@CALL EXTMEM(MACINS,2) @C@]@@ 270 CALL MINS2(VALUE(LVN+IO),VALUE(LYNL+LJ )@@G@@IO)) @#@]@@ 280 CONTINUE @[@]@@C @]@]@@C FINISHED @[@]@@C LK )@@G@@@ @]@@ CALL EXTMEM(MACINS,1) @#@]@@ 310 CALL MINS4 @[@]@@C LL )@@G@@@]@]@@C FINISHED @[@]@@C @]@]@@ RETURN@]@]@@ END @^@]@@LM )@@G@@ IDENT MINS @C@]@@ TITLE MACHINE INSTRUCTION GENERLN )@@G@@ATION @C@]@@ ENTRY MINS0,MINS1,MINS2,MINS3,MINS4 @A@]@@ LO )@@G@@ TITLE SPECIFICATIONS @G@]@@* DECK *MINS* CONTAINS A SET OFLP )@@G@@ FORTRAN-CALLABLE ROUTINES WHICH @G@]@@* GENERATE CODE TO PERFORM AN LQ )@@G@@LU DECOMPOSITION AND FORWARD/BACKWARD @E@]@@* SUBSTITUTION OF A SET LR )@@G@@OF LINEAR EQUATIONS IN MATRIX FORM. @#@]@@ SPACE 3@^@]@@* CALLLS )@@G@@ING SEQUENCES - @#@]@@ SPACE 1@B@]@@* CALL MINS0(GMIN, LT )@@G@@IGOOF, VALUE(LV1))@G@]@@* INITIALIZATION -- VALUE(LV1) IS THE FILU )@@G@@RST AVAILABLE WORD INTO @C@]@@* WHICH THE GENERATED CODE CAN BE STLV )@@G@@ORED. @#@]@@ SPACE 1@^@]@@* CALL MINS1(X) @B@]@@* LW )@@G@@ GENERATED CODE IS EQUIVALENT TO @C@]@@* IF (ABS(X).GE.GLX )@@G@@MIN) GO TO 10 @^@]@@* X=GMIN @ @]@@* IGOLY )@@G@@OF=IGOOF+1 @^@]@@* 10 CONTINUE @#@]@@ SPACE 1@^@]@@LZ )@@G@@* CALL MINS2(X, Y) @B@]@@* GENERATED CODE IS EQUIVALENT TO MA )@@G@@@^@]@@* X=X/Y @#@]@@ SPACE 1@ @]@@* CALL MB )@@G@@MINS3(X, Y, Z) @B@]@@* GENERATED CODE IS EQUIVALENT TO @^@]@@MC )@@G@@* X=X-Y*Z @#@]@@ SPACE 1@#@]@@* CALL MINS4 MD )@@G@@@F@]@@* FINAL CALL -- GENERATED CODE IS TERMINATED PROPERLY. ME )@@G@@@#@]@@ SPACE 1@G@]@@* NOTE: ALL PARAMETERS (EXCEPT FOR *GMIN*MF )@@G@@ AND *IGOOF*) ARE FETCHED FROM@G@]@@* MEMORY ASSUMING THAT REGISTER B6MG )@@G@@ CONTAINS THE CORRECT OFFSET -- SEE @^@]@@* ROUTINE *CODEXC*. @D@]@@MH )@@G@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISTERS @D@]@@COMPILER MIMI )@@G@@CRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@]@@SYSTEM SPACE 4@G@]@@MJ )@@G@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATING SYSTEM IS NOT SCOPE MK )@@G@@@E@]@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTO FOR CALIDOSCOPE @#@]@@ML )@@G@@RUN SPACE 4@A@]@@RUN IFC EQ,*^COMPILER^*RUN*@^@]@@ASMARGMM )@@G@@ OPSYN NIL @#@]@@RUN ENDIF @#@]@@FTN SPACE 4@A@]@@MN )@@G@@FTN IFC EQ,*^COMPILER^*FTN*@#@]@@ASMARG MACRO N@^@]@@ MO )@@G@@ LOCAL CNT @^@]@@ SB1 X1 @^@]@@ASMARG IFGT NMP )@@G@@,1 @#@]@@CNT SET 1@#@]@@ SB7 1@^@]@@ASMARG DUMQ )@@G@@P N-1 @^@]@@CNT SET CNT+1 @^@]@@ SA1 A1+B7 MR )@@G@@@^@]@@ SB.CNT X1 @#@]@@ASMARG ENDD @#@]@@ASMARG ENMS )@@G@@DIF @#@]@@ASMARG ENDM @#@]@@FTN ENDIF @B@]@@ TIMT )@@G@@TLE CODE TEMPLATE DEFINITIONS@B@]@@CODE.0 SA1 0 X1 = GMMU )@@G@@IN @B@]@@ SA2 0 X2 = IGOOF @#@]@@ SPMV )@@G@@ACE 3@A@]@@CODE.1 SA3 B6+0 LOAD X @B@]@@ BX4 XMW )@@G@@3 MAKE A COPY @F@]@@ AX4 59 SWING THE SIGMX )@@G@@N BIT ALL THE WAY OVER @E@]@@ BX4 X3-X4 VOILA -- ABS(MY )@@G@@X) APPEARS IN X4 @C@]@@ FX4 X4-X1 COMPARE TO GMIN MZ )@@G@@@D@]@@ AX4 59 SWING THAT SIGN BIT AGAIN@C@]@@ NA )@@G@@ BX5 -X4*X3 IS IT ABS(X) ... @B@]@@ BX6 X4*X1 NB )@@G@@ OR GMIN ...@F@]@@ BX6 X5+X6 IT REALLY DOESN*T MNC )@@G@@ATTER, YOU KNOW @E@]@@ SA6 A3+0 (RE)SET X BACK INTOND )@@G@@ MEMORY @D@]@@ MX5 59 FINAGLE EITHER A 0 OR A 1NE )@@G@@@D@]@@ BX5 -X5*X4 OUT OF THAT LAST MASK @F@]@@ NF )@@G@@ IX2 X2+X5 (PSEUDO) INCREMENT IGOOF WITH IT @B@]@@ NG )@@G@@ NO 0 (PADDING) @#@]@@ SPACE 3@A@]@@CODE.2NH )@@G@@ SA3 B6+0 LOAD X @A@]@@ SA4 B6+0 LOAD Y NI )@@G@@@C@]@@ FX6 X3/X4 X/Y, COMING UP ... @B@]@@ NONJ )@@G@@ 0 (PADDING) @E@]@@ SA6 A3+0 STORE QNK )@@G@@UOTIENT INTO MEMORY @#@]@@ SPACE 3@A@]@@CODE.3 SA3 BNL )@@G@@6+0 LOAD X @A@]@@ SA4 B6+0 LOAD Y @A@]@@ NM )@@G@@ SA5 B6+0 LOAD Z @A@]@@ FX4 X4*X5 Y*Z NN )@@G@@@D@]@@ FX6 X3-X4 X-Y*Z, BUT UNNORMALIZED @B@]@@ NO )@@G@@ NX6 X6 SO, NORMALIZE@B@]@@ NO 0 (NP )@@G@@PADDING) @C@]@@ SA6 A3+0 STORE RESULT AWAY @#@]@@NQ )@@G@@ SPACE 3@D@]@@CODE.4 BX6 X2 RESTORE IGOOF TO MENR )@@G@@MORY, @C@]@@ SA6 A2 WHERE IT BELONGS @B@]@@ NS )@@G@@ JP B1 EXIT (HO-HUM)@B@]@@ TITLE MISCELLANEOUSNT )@@G@@ DEFINITIONS@#@]@@LODREG MACRO @C@]@@ SB7 1 ANU )@@G@@LWAYS AND FOREVER @F@]@@ SA1 LWA PUT ADDRESS FOR NEXNV )@@G@@T WORD OF CODE @C@]@@ SB6 X1+B7 INTO REGISTER B6 NW )@@G@@@#@]@@LODREG ENDM @#@]@@ SPACE 3@#@]@@SAVADR MACRO NX )@@G@@@F@]@@ SX6 A6 SAVE ADDRESS OF LAST WORD OF CODE NY )@@G@@@A@]@@ SA6 A1 . DONE@#@]@@SAVADR ENDM @#@]@@NZ )@@G@@ SPACE 3@ @]@@SETCOD MACRO CODE,NUMADR @D@]@@ LOOA )@@G@@DREG LOAD REGISTERS B6 AND B7 @E@]@@ SA2 CODE OB )@@G@@ FETCH INSTRUCTION TEMPLATE @E@]@@ SX3 B1 AOC )@@G@@DDRESS NUMBER 1, COMING UP @C@]@@ LX3 30 AND IOD )@@G@@NTO POSITION@F@]@@ IFGE NUMADR,2,2 DON*T FETCH NONEXISTENT AOE )@@G@@DDRESSES @D@]@@ SX4 B2 SECOND ADDRESS, COMING UPOF )@@G@@@D@]@@ BX3 X3+X4 MERGE EVERYTHING TOGETHER@B@]@@ OG )@@G@@ BX6 X2+X3 LIKE SO @F@]@@ SA6 B6 AOH )@@G@@DD THE NEW INSTRUCTION TO MEMORY @E@]@@ IFEQ NUMADR,3,5 TOI )@@G@@HREE ADDRESSES TO RELOCATE @G@]@@ SA2 A2+B7 FETCH NOJ )@@G@@EXT WORD OF INSTRUCTION TEMPLATE @D@]@@ SX3 B3 TOK )@@G@@HIRD ADDRESS, COMING UP @C@]@@ LX3 30 AND OVER EAOL )@@G@@SY @D@]@@ BX6 X2+X3 CRAM THE BITS TOGETHER @F@]@@OM )@@G@@ SA6 A6+B7 AND DROP THE RESULT INTO MEMORY @#@]@@ON )@@G@@SETCOD ENDM @#@]@@ SPACE 3@^@]@@COPY MACRO NUMWRD OO )@@G@@@ @]@@ DUP NUMWRD,3 @G@]@@ SA2 A2+B7 MOP )@@G@@OVE ONE WORD OF THE INSTRUCTION TEMPLATE @ @]@@ BX6 X2 OQ )@@G@@ .@A@]@@ SA6 A6+B7 . DONE@#@]@@COPY ENDM OR )@@G@@@A@]@@ TITLE THE REAL THING @G@]@@LWA BSS 1 OS )@@G@@ ADDRESS OF LAST WORD OF GENERATED CODE @#@]@@ SPACE 2OT )@@G@@@B@]@@MINS0 BSS 1 ENTRY/EXIT @#@]@@ ASMARG 3OU )@@G@@@F@]@@ SX6 B3 COPY THE ADDRESS OF THE LAST WORD OV )@@G@@@C@]@@ SA6 LWA AND STORE IT AWAY@#@]@@ SPOW )@@G@@ACE 1@ @]@@ SETCOD CODE.0,2 @#@]@@ SAVADR @A@]@@OX )@@G@@ EQ MINS0 EXIT @#@]@@ SPACE 2@B@]@@MINS1 OY )@@G@@ BSS 1 ENTRY/EXIT @#@]@@ ASMARG 1@ @]@@ OZ )@@G@@ SETCOD CODE.1,1 @#@]@@ COPY 3@#@]@@ SAVADR PA )@@G@@@A@]@@ EQ MINS1 EXIT @#@]@@ SPACE 2@B@]@@PB )@@G@@MINS2 BSS 1 ENTRY/EXIT @#@]@@ ASMARG 2@ @]@@PC )@@G@@ SETCOD CODE.2,2 @#@]@@ COPY 1@#@]@@ SAPD )@@G@@VADR @A@]@@ EQ MINS2 EXIT @#@]@@ SPACE 2PE )@@G@@@B@]@@MINS3 BSS 1 ENTRY/EXIT @#@]@@ ASMARG 3PF )@@G@@@ @]@@ SETCOD CODE.3,3 @#@]@@ COPY 1@#@]@@ PG )@@G@@ SAVADR @A@]@@ EQ MINS3 EXIT @#@]@@ SPPH )@@G@@ACE 2@B@]@@MINS4 BSS 1 ENTRY/EXIT @#@]@@ LOPI )@@G@@DREG @E@]@@ SA2 CODE.4 STORE THE FINAL WORD OF CODE PJ )@@G@@@ @]@@ BX6 X2 .@A@]@@ SA6 B6 .PK )@@G@@ DONE@A@]@@ EQ MINS4 EXIT @#@]@@ END PL )@@G@@@#@]@@ OVERLAY(4,0)@#@]@@ XREV=0.0 @A@]@@ IF (DEVMOD.GPM )@@G@@E.0.0) GO TO 370 @#@]@@ XNRM=0.0 @#@]@@ XREV=1.0 @^@]@@PN )@@G@@ 370 LOCM=NODPLC(LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ PO )@@G@@LOCT=LX0+NODPLC(LOC+26) @^@]@@ GDPR=VALUE(LOCM+6)@^@]@@ GSPR=VPP )@@G@@ALUE(LOCM+7)@ @]@@ XCGS=VALUE(LOCT+16)*S @ @]@@ XCGD=VALUE(LPQ )@@G@@OCT+18)*S @ @]@@ XCGB=VALUE(LOCT+20)*S @^@]@@ GM=VALUE(LOCPR )@@G@@T+7) @^@]@@ GDS=VALUE(LOCT+8) @^@]@@ GMBS=VALUE(LOCT+9)@^@]@@PS )@@G@@ GBD=VALUE(LOCT+10)@ @]@@ XBD=VALUE(LOCT+12)*S @^@]@@ PT )@@G@@GBS=VALUE(LOCT+11)@ @]@@ XBS=VALUE(LOCT+14)*S @ @]@@ LOCY=LPU )@@G@@YNL+NODPLC(LOC+27)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR@ @]@@ PV )@@G@@LOCY=LYNL+NODPLC(LOC+28)@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)+XCGD+XCGS+PW )@@G@@XCGB @ @]@@ LOCY=LYNL+NODPLC(LOC+29)@A@]@@ CVALUE(LOCY)=CVALUPX )@@G@@E(LOCY)+GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+30)@D@]@@ CVALUE(LOCY)PY )@@G@@=CVALUE(LOCY)+GBD+GBS+XBD+XBS+XCGB @ @]@@ LOCY=LYNL+NODPLC(LOC+31)PZ )@@G@@@G@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR+GDS+GBD+XREV*(GM+GMBS)+XCGD+XQA )@@G@@BD @ @]@@ LOCY=LYNL+NODPLC(LOC+32)@G@]@@ CVALUE(LOCY)=CVALUQB )@@G@@E(LOCY)+GSPR+GDS+GBS+XNRM*(GM+GMBS)+XCGS+XBS @ @]@@ LOCY=LYNL+NOQC )@@G@@DPLC(LOC+10)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @]@@ LOCY=LQD )@@G@@YNL+NODPLC(LOC+11)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-XCGB@ @]@@ QE )@@G@@LOCY=LYNL+NODPLC(LOC+12)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-XCGD@ @]@@QF )@@G@@ LOCY=LYNL+NODPLC(LOC+13)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-XCGSQG )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+14)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYQH )@@G@@)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+15)@A@]@@ CVALUE(LOCY)=CVALUQI )@@G@@E(LOCY)-XCGB@ @]@@ LOCY=LYNL+NODPLC(LOC+16)@B@]@@ CVALUE(LOCY)QJ )@@G@@=CVALUE(LOCY)-GBD-XBD @ @]@@ LOCY=LYNL+NODPLC(LOC+17)@B@]@@ QK )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GBS-XBS @ @]@@ LOCY=LYNL+NODPLC(LOC+18)QL )@@G@@@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @]@@ LOCY=LYNL+NODPLC(LQM )@@G@@OC+19)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)+(XNRM-XREV)*GM-XCGD @ @]@@QN )@@G@@ LOCY=LYNL+NODPLC(LOC+20)@E@]@@ CVALUE(LOCY)=CVALUE(LOCY)-(GBDQO )@@G@@-(XNRM-XREV)*GMBS)-XBD @ @]@@ LOCY=LYNL+NODPLC(LOC+21)@D@]@@ QP )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) @ @]@@ LOCY=LYNL+NOQQ )@@G@@DPLC(LOC+22)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)-(XNRM-XREV)*GM-XCGS QR )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+23)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYQS )@@G@@)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+24)@E@]@@ CVALUE(LOCY)=CVALUQT )@@G@@E(LOCY)-GBS+(XNRM-XREV)*GMBS-XBS @ @]@@ LOCY=LYNL+NODPLC(LOC+25)QU )@@G@@@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XREV*(GM+GMBS) @^@]@@ QV )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 360 @[@]@@C @^@]@@C POLE/ZEROQW )@@G@@ EQUATIONS @[@]@@C @A@]@@ 1000 IF (MODAC.EQ.2) GO TO 1100 @[@]@@QX )@@G@@C @^@]@@C... INPUT EQUATION @[@]@@C @A@]@@ IF (IPZITP.NQY )@@G@@E.41) GO TO 1010 @ @]@@ LOCY=LYNL+IPIMAT(1) @A@]@@ CVALUEQZ )@@G@@(LOCY)=CVALUE(LOCY)+1.0 @ @]@@ LOCY=LYNL+IPIMAT(2) @A@]@@ RA )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @]@@ LOCY=LYNL+IPIMAT(3) @A@]@@RB )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @]@@ LOCY=LYNL+IPIMAT(4) RC )@@G@@@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @[@]@@C @^@]@@C... OUTPUTRD )@@G@@ EQUATION @[@]@@C @ @]@@ 1010 LOCY=LYNL+IPOMAT(1) @A@]@@ RE )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-1.0 @C@]@@ IF (NODPLC(IPZOUT+5).NE.0) GO RF )@@G@@TO 1100 @ @]@@ LOCY=LYNL+IPOMAT(2) @A@]@@ CVALUE(LOCY)RG )@@G@@=CVALUE(LOCY)+1.0 @[@]@@C @ @]@@C REORDER RIGHT-HAND SIDE @[@]@@RH )@@G@@C @^@]@@ 1100 DO 1110 I=2,NSTOP @^@]@@ J=NODPLC(ISWAP+I) @A@]@@RI )@@G@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@]@@ 1110 CONTINUE @D@]@@ RJ )@@G@@CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@]@@C @]@]@@C FINRK )@@G@@ISHED @[@]@@C @]@]@@ RETURN@]@]@@ END @^@]@@ SUBROURL )@@G@@TINE ACDCMP @[@]@@C @G@]@@C THIS ROUTINE PERFORMS AN LU FACTORIZRM )@@G@@ATION OF THE CIRCUIT EQUATION @^@]@@C COEFFICIENT MATRIX. @[@]@@C RN )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NURO )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,RP )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILRQ )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWRR )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,RS )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@RT )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, RU )@@G@@@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMONRV )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1RW )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@]@@ RX )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@RY )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @]@@RZ )@@G@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ SA )@@G@@COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))SB )@@G@@@[@]@@C @[@]@@C @^@]@@ DO 100 I=2,NSTOP @ @]@@ IO=NODSC )@@G@@PLC(IORDER+I) @F@]@@ GDIAG=ABS(REAL(CVALUE(LYNL+IO)))+ABS(AIMAGSD )@@G@@(CVALUE(LYNL+IO)))@A@]@@ IF (GDIAG.GE.GMIN) GO TO 10 @B@]@@ SE )@@G@@CVALUE(LYNL+IO)=CMPLX(GMIN,0.0) @^@]@@ IGOOF=IGOOF+1 @ @]@@SF )@@G@@ 10 JSTART=NODPLC(ILC+I) @ @]@@ JSTOP=NODPLC(ILC+I+1)-1 @A@]@@SG )@@G@@ IF (JSTART.GT.JSTOP) GO TO 100@ @]@@ DO 90 J=JSTART,JSTOP SH )@@G@@@D@]@@ CVALUE(LYL+J)=CVALUE(LYL+J)/CVALUE(LYNL+IO) @^@]@@ SI )@@G@@ICOL=NODPLC(ILR+J)@ @]@@ KSTART=NODPLC(IUR+I) @ @]@@ KSTOP=SJ )@@G@@NODPLC(IUR+I+1)-1 @A@]@@ IF (KSTART.GT.KSTOP) GO TO 90 @ @]@@ SK )@@G@@DO 80 K=KSTART,KSTOP @^@]@@ IROW=NODPLC(IUC+K)@ @]@@ IF (ICSL )@@G@@OL-IROW) 20,60,40 @[@]@@C @C@]@@C FIND (ICOL,IROW) MATRIX TERM (UPPSM )@@G@@ER TRIANGLE)@[@]@@C @ @]@@ 20 L=NODPLC(IUR+ICOL+1) @]@]@@ 30 SN )@@G@@L=L-1 @B@]@@ IF (NODPLC(IUC+L).NE.IROW) GO TO 30 @#@]@@ ISPOT=SO )@@G@@LYU+L @#@]@@ GO TO 70 @[@]@@C @C@]@@C FIND (ICOL,IROW) MATRSP )@@G@@IX TERM (LOWER TRIANGLE)@[@]@@C @ @]@@ 40 L=NODPLC(ILC+IROW+1) SQ )@@G@@@]@]@@ 50 L=L-1 @B@]@@ IF (NODPLC(ILR+L).NE.ICOL) GO TO 50 @#@]@@SR )@@G@@ ISPOT=LYL+L @#@]@@ GO TO 70 @[@]@@C @B@]@@C FIND (ICOSS )@@G@@L,IROW) MATRIX TERM (DIAGONAL)@[@]@@C @A@]@@ 60 ISPOT=LYNL+NODPLC(ST )@@G@@IORDER+IROW)@[@]@@C @F@]@@ 70 CVALUE(ISPOT)=CVALUE(ISPOT)-CVALUE(LSU )@@G@@YL+J)*CVALUE(LYU+K) @#@]@@ 80 CONTINUE @#@]@@ 90 CONTINUE SV )@@G@@@#@]@@ 100 CONTINUE @]@]@@ RETURN@]@]@@ END @^@]@@ SW )@@G@@SUBROUTINE ACSOL @[@]@@C @G@]@@C THIS ROUTINE SOLVES THE CIRCUISX )@@G@@T EQUATIONS BY PERFORMING A FORWARD @G@]@@C AND BACKWARD SUBSTITUTION USSY )@@G@@ING THE PREVIOUSLY-COMPUTED LU FACTORS. @[@]@@C @G@]@@ COMMONSZ )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1TA )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@TB )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, TC )@@G@@@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVTD )@@G@@NIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDTE )@@G@@0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDTF )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUTTG )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @]@@ COMMON /BLANK/ VALUE(64)TH )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ TI )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @^@]@@C FORWARD STJ )@@G@@UBSTITUTION @[@]@@C @^@]@@ DO 20 I=2,NSTOP @ @]@@ JSTARTTK )@@G@@=NODPLC(ILC+I) @ @]@@ JSTOP=NODPLC(ILC+I+1)-1 @A@]@@ IF (JSTL )@@G@@TART.GT.JSTOP) GO TO 20 @ @]@@ IO=NODPLC(IORDER+I) @C@]@@ TM )@@G@@IF (REAL(CVALUE(LVN+IO)).NE.0.0) GO TO 5 @C@]@@ IF (AIMAG(CVALUE(LTN )@@G@@VN+IO)).EQ.0.0) GO TO 20@ @]@@ 5 DO 10 J=JSTART,JSTOP @^@]@@ TO )@@G@@JO=NODPLC(ILR+J) @ @]@@ JO=NODPLC(IORDER+JO) @F@]@@ CVALUETP )@@G@@(LVN+JO)=CVALUE(LVN+JO)-CVALUE(LYL+J)*CVALUE(LVN+IO) @#@]@@ 10 CONTINTQ )@@G@@UE @#@]@@ 20 CONTINUE @[@]@@C @^@]@@C BACK SUBSTITUTION TR )@@G@@@[@]@@C @#@]@@ K=NSTOP+1 @^@]@@ DO 50 I=2,NSTOP @]@]@@TS )@@G@@ K=K-1 @ @]@@ IO=NODPLC(IORDER+K) @ @]@@ JSTART=NODPLTT )@@G@@C(IUR+K) @ @]@@ JSTOP=NODPLC(IUR+K+1)-1 @A@]@@ IF (JSTART.GTU )@@G@@T.JSTOP) GO TO 40 @ @]@@ DO 30 J=JSTART,JSTOP @^@]@@ JO=NODTV )@@G@@PLC(IUC+J) @ @]@@ JO=NODPLC(IORDER+JO) @F@]@@ CVALUE(LVN+ITW )@@G@@O)=CVALUE(LVN+IO)-CVALUE(LYU+J)*CVALUE(LVN+JO) @#@]@@ 30 CONTINUE TX )@@G@@@D@]@@ 40 CVALUE(LVN+IO)=CVALUE(LVN+IO)/CVALUE(LYNL+IO) @#@]@@ 50 TY )@@G@@CONTINUE @]@]@@ RETURN@]@]@@ END @^@]@@ SUBROUTINE ATZ )@@G@@CLOAD @[@]@@C @G@]@@C THIS ROUTINE ZEROES-OUT AND THEN LOADS THEUA )@@G@@ COMPLEX COEFFICIENT @]@]@@C MATRIX. @[@]@@C @G@]@@ COMMONUB )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1UC )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@UD )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, UE )@@G@@@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVUF )@@G@@NIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDUG )@@G@@0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDUH )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUTUI )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIUJ )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICAUK )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MUL )@@G@@ODAC @G@]@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLGUM )@@G@@,IDFREQ, @F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLGUN )@@G@@,JPZTYP, @F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IUO )@@G@@POMAT(3), @#@]@@ 3 IPIMAT(4)@ @]@@ COMMON /BLANK/ VALUE(64)UP )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ UQ )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @#@]@@UR )@@G@@ COMPLEX CVAL@[@]@@C @A@]@@C ZERO Y MATRIX AND CURRENT VECTOR US )@@G@@@[@]@@C @D@]@@ CALL ZERO16(CVALUE(LVN+1),NSTOP+NSTOP+NUT+NLT) UT )@@G@@@[@]@@C @]@]@@C RESISTORS@[@]@@C @^@]@@ LOC=LOCATE(1) UU )@@G@@@ @]@@ 20 IF (LOC.EQ.0) GO TO 30 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@UV )@@G@@ VAL=VALUE(LOCV+1) @ @]@@ LOCY=LYNL+NODPLC(LOC+6) @A@]@@ UW )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @]@@ LOCY=LYNL+NODPLC(LOC+7) @A@]@@UX )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @]@@ LOCY=LYNL+NODPLC(LOC+4) UY )@@G@@@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @]@@ LOCY=LYNL+NODPLC(LUZ )@@G@@OC+5) @A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @^@]@@ LOC=NODPLC(LVA )@@G@@OC) @#@]@@ GO TO 20 @[@]@@C @#@]@@C CAPACITORS @[@]@@VB )@@G@@C @^@]@@ 30 LOC=LOCATE(2) @ @]@@ 40 IF (LOC.EQ.0) GO TO 50 VC )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@B@]@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCVD )@@G@@V+1)) @ @]@@ LOCY=LYNL+NODPLC(LOC+4) @A@]@@ CVALUE(LOCY)=CVALUVE )@@G@@E(LOCY)+CVAL@ @]@@ LOCY=LYNL+NODPLC(LOC+7) @A@]@@ CVALUE(LOCY)VF )@@G@@=CVALUE(LOCY)+CVAL@ @]@@ LOCY=LYNL+NODPLC(LOC+5) @A@]@@ CVALUEVG )@@G@@(LOCY)=CVALUE(LOCY)-CVAL@ @]@@ LOCY=LYNL+NODPLC(LOC+6) @A@]@@ VH )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-CVAL@^@]@@ LOC=NODPLC(LOC) @#@]@@ VI )@@G@@GO TO 40 @[@]@@C @]@]@@C INDUCTORS@[@]@@C @^@]@@ 50 LOC=LOVJ )@@G@@CATE(3) @ @]@@ 60 IF (LOC.EQ.0) GO TO 70 @^@]@@ LOCV=NODPLC(VK )@@G@@LOC+1)@B@]@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCV+1)) @ @]@@ LOCY=LVL )@@G@@YNL+NODPLC(LOC+9) @^@]@@ CVALUE(LOCY)=-CVAL@ @]@@ LOCY=LYNL+NOVM )@@G@@DPLC(LOC+5) @^@]@@ CVALUE(LOCY)=1.0 @ @]@@ LOCY=LYNL+NODPLC(LVN )@@G@@OC+6) @^@]@@ CVALUE(LOCY)=-1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+7) VO )@@G@@@^@]@@ CVALUE(LOCY)=1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+8) @^@]@@VP )@@G@@ CVALUE(LOCY)=-1.0 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO VQ )@@G@@60 @[@]@@C @^@]@@C MUTUAL INDUCTORS @[@]@@C @^@]@@ 70 VR )@@G@@LOC=LOCATE(4) @ @]@@ 80 IF (LOC.EQ.0) GO TO 90 @^@]@@ LOCV=NVS )@@G@@ODPLC(LOC+1)@B@]@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCV+1)) @ @]@@ VT )@@G@@LOCY=LYNL+NODPLC(LOC+4) @^@]@@ CVALUE(LOCY)=-CVAL@ @]@@ LOCY=LVU )@@G@@YNL+NODPLC(LOC+5) @^@]@@ CVALUE(LOCY)=-CVAL@^@]@@ LOC=NODPLC(LVV )@@G@@OC) @#@]@@ GO TO 80 @[@]@@C @C@]@@C NONLINEAR VOLTAGE CONVW )@@G@@TROLLED CURRENT SOURCES @[@]@@C @^@]@@ 90 LOC=LOCATE(5) @ @]@@VX )@@G@@ 95 IF (LOC.EQ.0) GO TO 100 @^@]@@ NDIM=NODPLC(LOC+4)@^@]@@ VY )@@G@@LMAT=NODPLC(LOC+7)@A@]@@ LOCT=LX0+NODPLC(LOC+12)+2 @^@]@@ VZ )@@G@@DO 97 I=1,NDIM @^@]@@ VAL=VALUE(LOCT) @#@]@@ LOCT=LOCT+2 WA )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LMAT+1)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYWB )@@G@@)+VAL @ @]@@ LOCY=LYNL+NODPLC(LMAT+2)@A@]@@ CVALUE(LOCY)=CVALUWC )@@G@@E(LOCY)-VAL @ @]@@ LOCY=LYNL+NODPLC(LMAT+3)@A@]@@ CVALUE(LOCY)WD )@@G@@=CVALUE(LOCY)-VAL @ @]@@ LOCY=LYNL+NODPLC(LMAT+4)@A@]@@ CVALUEWE )@@G@@(LOCY)=CVALUE(LOCY)+VAL @#@]@@ LMAT=LMAT+4 @#@]@@ 97 CONTINUE WF )@@G@@@^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 95 @[@]@@C @C@]@@WG )@@G@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@]@@C @^@]@@ 100 WH )@@G@@LOC=LOCATE(6) @ @]@@ 105 IF (LOC.EQ.0) GO TO 110 @^@]@@ NDIM=NWI )@@G@@ODPLC(LOC+4)@^@]@@ LMAT=NODPLC(LOC+8)@A@]@@ LOCT=LX0+NODPLC(LOWJ )@@G@@C+13)+3 @ @]@@ LOCY=LYNL+NODPLC(LMAT+1)@^@]@@ CVALUE(LOCY)WK )@@G@@=+1.0 @ @]@@ LOCY=LYNL+NODPLC(LMAT+2)@^@]@@ CVALUE(LOCY)=-1.0 WL )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LMAT+3)@^@]@@ CVALUE(LOCY)=+1.0 @ @]@@WM )@@G@@ LOCY=LYNL+NODPLC(LMAT+4)@^@]@@ CVALUE(LOCY)=-1.0 @#@]@@ WN )@@G@@LMAT=LMAT+4 @^@]@@ DO 107 I=1,NDIM @^@]@@ VAL=VALUE(LOCT) WO )@@G@@@#@]@@ LOCT=LOCT+2 @ @]@@ LOCY=LYNL+NODPLC(LMAT+1)@A@]@@ WP )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @]@@ LOCY=LYNL+NODPLC(LMAT+2)@A@]@@WQ )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@]@@ LMAT=LMAT+2 @#@]@@ 107 WR )@@G@@CONTINUE @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 105 @[@]@@WS )@@G@@C @C@]@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES @[@]@@C WT )@@G@@@^@]@@ 110 LOC=LOCATE(7) @ @]@@ 115 IF (LOC.EQ.0) GO TO 120 @^@]@@WU )@@G@@ NDIM=NODPLC(LOC+4)@^@]@@ LMAT=NODPLC(LOC+7)@A@]@@ LOCT=LWV )@@G@@X0+NODPLC(LOC+12)+2 @^@]@@ DO 117 I=1,NDIM @^@]@@ VAL=VAWW )@@G@@LUE(LOCT) @#@]@@ LOCT=LOCT+2 @ @]@@ LOCY=LYNL+NODPLC(LMAT+1)WX )@@G@@@^@]@@ CVALUE(LOCY)=+VAL @ @]@@ LOCY=LYNL+NODPLC(LMAT+2)@^@]@@WY )@@G@@ CVALUE(LOCY)=-VAL @#@]@@ LMAT=LMAT+2 @#@]@@ 117 CONTINUE WZ )@@G@@@^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 115 @[@]@@C @C@]@@XA )@@G@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@]@@C @^@]@@ 120 XB )@@G@@LOC=LOCATE(8) @ @]@@ 125 IF (LOC.EQ.0) GO TO 140 @^@]@@ NDIM=NXC )@@G@@ODPLC(LOC+4)@^@]@@ LMAT=NODPLC(LOC+8)@A@]@@ LOCT=LX0+NODPLC(LOXD )@@G@@C+13)+3 @ @]@@ LOCY=LYNL+NODPLC(LMAT+1)@^@]@@ CVALUE(LOCY)XE )@@G@@=+1.0 @ @]@@ LOCY=LYNL+NODPLC(LMAT+2)@^@]@@ CVALUE(LOCY)=-1.0 XF )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LMAT+3)@^@]@@ CVALUE(LOCY)=+1.0 @ @]@@XG )@@G@@ LOCY=LYNL+NODPLC(LMAT+4)@^@]@@ CVALUE(LOCY)=-1.0 @#@]@@ XH )@@G@@LMAT=LMAT+4 @^@]@@ DO 127 I=1,NDIM @^@]@@ VAL=VALUE(LOCT) XI )@@G@@@#@]@@ LOCT=LOCT+2 @ @]@@ LOCY=LYNL+NODPLC(LMAT+I)@A@]@@ XJ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-VAL @#@]@@ 127 CONTINUE @^@]@@ LOC=NOXK )@@G@@DPLC(LOC) @#@]@@ GO TO 125 @[@]@@C @#@]@@C VOLTAGE SOURCESXL )@@G@@@[@]@@C @^@]@@ 140 LOC=LOCATE(9) @ @]@@ 150 IF (LOC.EQ.0) GO TXM )@@G@@O 160 @^@]@@ LOCV=NODPLC(LOC+1)@C@]@@ CVAL=CMPLX(VALUE(LOCV+2)XN )@@G@@,VALUE(LOCV+3)) @^@]@@ IPTR=NODPLC(LOC+6)@ @]@@ CVALUE(LVN+IXO )@@G@@PTR)=CVAL @ @]@@ LOCY=LYNL+NODPLC(LOC+7) @A@]@@ CVALUE(LOCY)XP )@@G@@=CVALUE(LOCY)+1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+8) @A@]@@ CVALUEXQ )@@G@@(LOCY)=CVALUE(LOCY)-1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+9) @A@]@@ XR )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+10)@A@]@@XS )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @^@]@@ LOC=NODPLC(LOC) @#@]@@XT )@@G@@ GO TO 150 @[@]@@C @#@]@@C CURRENT SOURCES@[@]@@C @^@]@@XU )@@G@@ 160 LOC=LOCATE(10) @ @]@@ 170 IF (LOC.EQ.0) GO TO 200 @^@]@@ XV )@@G@@LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=XW )@@G@@NODPLC(LOC+3) @C@]@@ CVAL=CMPLX(VALUE(LOCV+2),VALUE(LOCV+3)) XX )@@G@@@C@]@@ CVALUE(LVN+NODE1)=CVALUE(LVN+NODE1)-CVAL @C@]@@ CVALUEXY )@@G@@(LVN+NODE2)=CVALUE(LVN+NODE2)+CVAL @^@]@@ LOC=NODPLC(LOC) @#@]@@XZ )@@G@@ GO TO 170 @[@]@@C @]@]@@C DIODES @[@]@@C @^@]@@ 200 YA )@@G@@LOC=LOCATE(11) @ @]@@ 210 IF (LOC.EQ.0) GO TO 250 @^@]@@ LOCV=NYB )@@G@@ODPLC(LOC+1)@^@]@@ AREA=VALUE(LOCV+1)@^@]@@ LOCM=NODPLC(LOC+5)YC )@@G@@@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=LX0+NODPLC(LOC+11) YD )@@G@@@ @]@@ GSPR=VALUE(LOCM+2)*AREA @^@]@@ GEQ=VALUE(LOCT+2) @ @]@@YE )@@G@@ XCEQ=VALUE(LOCT+4)*OMEGA@ @]@@ LOCY=LYNL+NODPLC(LOC+13)@A@]@@YF )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+14)YG )@@G@@@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GEQ,XCEQ) @ @]@@ LOCY=LYH )@@G@@YNL+NODPLC(LOC+15)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GEQ+GSPR,XYI )@@G@@CEQ) @ @]@@ LOCY=LYNL+NODPLC(LOC+7) @A@]@@ CVALUE(LOCY)=CVALUYJ )@@G@@E(LOCY)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+8) @C@]@@ CVALUE(LOCY)YK )@@G@@=CVALUE(LOCY)-CMPLX(GEQ,XCEQ) @ @]@@ LOCY=LYNL+NODPLC(LOC+9) @A@]@@YL )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+10)YM )@@G@@@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GEQ,XCEQ) @^@]@@ LOC=NOYN )@@G@@DPLC(LOC) @#@]@@ GO TO 210 @[@]@@C @]@]@@C BJTS @[@]@@YO )@@G@@C @^@]@@ 250 LOC=LOCATE(12) @ @]@@ 260 IF (LOC.EQ.0) GO TO 300 YP )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ AREA=VALUE(LOCV+1)@^@]@@ YQ )@@G@@LOCM=NODPLC(LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=LYR )@@G@@X0+NODPLC(LOC+22) @ @]@@ GBPR=VALUE(LOCM+4)*AREA @ @]@@ GCPR=VYS )@@G@@ALUE(LOCM+5)*AREA @ @]@@ GEPR=VALUE(LOCM+6)*AREA @A@]@@ XCCS=VYT )@@G@@ALUE(LOCM+17)*AREA*OMEGA@^@]@@ GPI=VALUE(LOCT+4) @^@]@@ GMU=VAYU )@@G@@LUE(LOCT+5) @^@]@@ GM=VALUE(LOCT+6) @^@]@@ GO=VALUE(LOCT+7) YV )@@G@@@#@]@@ XGM=0.0 @^@]@@ TD=VALUE(LOCM+29) @ @]@@ IF (TDYW )@@G@@.EQ.0.0) GO TO 270@#@]@@ ARG=TD*OMEGA@#@]@@ GM=GM+GO @^@]@@YX )@@G@@ XGM=-GM*SIN(ARG) @^@]@@ GM=GM*COS(ARG)-GO @ @]@@ 270 XCPI=VYY )@@G@@ALUE(LOCT+9)*OMEGA@A@]@@ XCMU=VALUE(LOCT+11)*OMEGA @ @]@@ YZ )@@G@@LOCY=LYNL+NODPLC(LOC+24)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GCPR@ @]@@ZA )@@G@@ LOCY=LYNL+NODPLC(LOC+25)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GBPRZB )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+26)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYZC )@@G@@)+GEPR@ @]@@ LOCY=LYNL+NODPLC(LOC+27)@E@]@@ CVALUE(LOCY)=CVALUZD )@@G@@E(LOCY)+CMPLX(GMU+GO+GCPR,XCMU+XCCS)@ @]@@ LOCY=LYNL+NODPLC(LOC+28)ZE )@@G@@@F@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBPR+GPI+GMU,XCPI+XCMU) ZF )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+29)@F@]@@ CVALUE(LOCY)=CVALUE(LOCYZG )@@G@@)+CMPLX(GPI+GEPR+GM+GO,XCPI+XGM) @ @]@@ LOCY=LYNL+NODPLC(LOC+10)ZH )@@G@@@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GCPR@ @]@@ LOCY=LYNL+NODPLC(LZI )@@G@@OC+11)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @]@@ LOCY=LYNL+NOZJ )@@G@@DPLC(LOC+12)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GEPR@ @]@@ LOCY=LZK )@@G@@YNL+NODPLC(LOC+13)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GCPR@ @]@@ ZL )@@G@@LOCY=LYNL+NODPLC(LOC+14)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GMU-ZM )@@G@@GM,XCMU-XGM)@ @]@@ LOCY=LYNL+NODPLC(LOC+15)@C@]@@ CVALUE(LOCY)ZN )@@G@@=CVALUE(LOCY)-CMPLX(GM+GO,XGM)@ @]@@ LOCY=LYNL+NODPLC(LOC+16)@A@]@@ZO )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @]@@ LOCY=LYNL+NODPLC(LOC+17)ZP )@@G@@@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GMU,XCMU) @ @]@@ LOCY=LZQ )@@G@@YNL+NODPLC(LOC+18)@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GPI,XCPI) ZR )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+19)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYZS )@@G@@)-GEPR@ @]@@ LOCY=LYNL+NODPLC(LOC+20)@A@]@@ CVALUE(LOCY)=CVALUZT )@@G@@E(LOCY)-GO @ @]@@ LOCY=LYNL+NODPLC(LOC+21)@D@]@@ CVALUE(LOCY)ZU )@@G@@=CVALUE(LOCY)-CMPLX(GPI+GM,XCPI+XGM)@^@]@@ LOC=NODPLC(LOC) @#@]@@ZV )@@G@@ GO TO 260 @[@]@@C @]@]@@C JFETS @[@]@@C @^@]@@ 300 ZW )@@G@@LOC=LOCATE(13) @ @]@@ 310 IF (LOC.EQ.0) GO TO 350 @^@]@@ LOCV=NZX )@@G@@ODPLC(LOC+1)@^@]@@ AREA=VALUE(LOCV+1)@^@]@@ LOCM=NODPLC(LOC+7)ZY )@@G@@@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=LX0+NODPLC(LOC+19) ZZ )@@G@@@ @]@@ GDPR=VALUE(LOCM+4)*AREA @ @]@@ GSPR=VALUE(LOCM+5)*AREA AA )@@G@@@^@]@@ GM=VALUE(LOCT+5) @^@]@@ GDS=VALUE(LOCT+6) @^@]@@ AB )@@G@@GGS=VALUE(LOCT+7) @ @]@@ XGS=VALUE(LOCT+9)*OMEGA @^@]@@ GGD=VAAC )@@G@@LUE(LOCT+8) @ @]@@ XGD=VALUE(LOCT+11)*OMEGA@ @]@@ LOCY=LYNL+NOAD )@@G@@DPLC(LOC+20)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR@ @]@@ LOCY=LAE )@@G@@YNL+NODPLC(LOC+21)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GGD+GGS,XGAF )@@G@@D+XGS)@ @]@@ LOCY=LYNL+NODPLC(LOC+22)@A@]@@ CVALUE(LOCY)=CVALUAG )@@G@@E(LOCY)+GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+23)@E@]@@ CVALUE(LOCY)AH )@@G@@=CVALUE(LOCY)+CMPLX(GDPR+GDS+GGD,XGD) @ @]@@ LOCY=LYNL+NODPLC(LAI )@@G@@OC+24)@E@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GSPR+GDS+GM+GGS,XGS) AJ )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+9) @A@]@@ CVALUE(LOCY)=CVALUE(LOCYAK )@@G@@)-GDPR@ @]@@ LOCY=LYNL+NODPLC(LOC+10)@C@]@@ CVALUE(LOCY)=CVALUAL )@@G@@E(LOCY)-CMPLX(GGD,XGD) @ @]@@ LOCY=LYNL+NODPLC(LOC+11)@C@]@@ AM )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGS,XGS) @ @]@@ LOCY=LYNL+NODPLC(LAN )@@G@@OC+12)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @]@@ LOCY=LYNL+NOAO )@@G@@DPLC(LOC+13)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @]@@ LOCY=LAP )@@G@@YNL+NODPLC(LOC+14)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGD-GM,XGDAQ )@@G@@) @ @]@@ LOCY=LYNL+NODPLC(LOC+15)@B@]@@ CVALUE(LOCY)=CVALUAR )@@G@@E(LOCY)-GDS-GM @ @]@@ LOCY=LYNL+NODPLC(LOC+16)@D@]@@ CVALUEAS )@@G@@(LOCY)=CVALUE(LOCY)-CMPLX(GGS+GM,XGS) @ @]@@ LOCY=LYNL+NODPLC(LAT )@@G@@OC+17)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @]@@ LOCY=LYNL+NOAU )@@G@@DPLC(LOC+18)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS @^@]@@ LOC=NOAV )@@G@@DPLC(LOC) @#@]@@ GO TO 310 @[@]@@C @]@]@@C MOSFETS @[@]@@AW )@@G@@C @^@]@@ 350 LOC=LOCATE(14) @ @]@@ 360 IF (LOC.EQ.0) GO TO 400 AX )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ DEVMOD=VALUE(LOCV+8) @#@]@@AY )@@G@@ XNRM=1.0 @#@]@@ XREV=0.0 @A@]@@ IF (DEVMOD.GE.0.0)AZ )@@G@@ GO TO 370 @#@]@@ XNRM=0.0 @#@]@@ XREV=1.0 @^@]@@ 370 BA )@@G@@LOCM=NODPLC(LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=LBB )@@G@@X0+NODPLC(LOC+26) @^@]@@ GDPR=VALUE(LOCM+6)@^@]@@ GSPR=VALUE(LBC )@@G@@OCM+7)@A@]@@ XCGS=VALUE(LOCT+16)*OMEGA @A@]@@ XCGD=VALUE(LBD )@@G@@OCT+18)*OMEGA @A@]@@ XCGB=VALUE(LOCT+20)*OMEGA @^@]@@ BE )@@G@@GM=VALUE(LOCT+7) @^@]@@ GDS=VALUE(LOCT+8) @^@]@@ GMBS=VALUE(LBF )@@G@@OCT+9)@^@]@@ GBD=VALUE(LOCT+10)@ @]@@ XBD=VALUE(LOCT+12)*OMEGABG )@@G@@@^@]@@ GBS=VALUE(LOCT+11)@ @]@@ XBS=VALUE(LOCT+14)*OMEGA@ @]@@BH )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPRBI )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+28)@E@]@@ CVALUE(LOCY)=CVALUE(LOCYBJ )@@G@@)+CMPLX(0.0,XCGD+XCGS+XCGB) @ @]@@ LOCY=LYNL+NODPLC(LOC+29)@A@]@@BK )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+30)BL )@@G@@@E@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBD+GBS,XBD+XBS+XCGB) @ @]@@BM )@@G@@ LOCY=LYNL+NODPLC(LOC+31)@F@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLBN )@@G@@X(GDPR+GDS+GBD+XREV*(GM+GMBS),@#@]@@ 1 XCGD+XBD)@ @]@@ LOCY=LBO )@@G@@YNL+NODPLC(LOC+32)@F@]@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GSPR+GDS+GBP )@@G@@BS+XNRM*(GM+GMBS),@#@]@@ 1 XCGS+XBS)@ @]@@ LOCY=LYNL+NODPLC(LBQ )@@G@@OC+10)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @]@@ LOCY=LYNL+NOBR )@@G@@DPLC(LOC+11)@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGB) @ @]@@BS )@@G@@ LOCY=LYNL+NODPLC(LOC+12)@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLBT )@@G@@X(0.0,XCGD) @ @]@@ LOCY=LYNL+NODPLC(LOC+13)@C@]@@ CVALUE(LOCY)BU )@@G@@=CVALUE(LOCY)-CMPLX(0.0,XCGS) @ @]@@ LOCY=LYNL+NODPLC(LOC+14)@A@]@@BV )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+15)BW )@@G@@@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGB) @ @]@@ LOCY=LBX )@@G@@YNL+NODPLC(LOC+16)@C@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GBD,XBD) BY )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+17)@C@]@@ CVALUE(LOCY)=CVALUE(LOCYBZ )@@G@@)-CMPLX(GBS,XBS) @ @]@@ LOCY=LYNL+NODPLC(LOC+18)@A@]@@ CVALUECA )@@G@@(LOCY)=CVALUE(LOCY)-GDPR@ @]@@ LOCY=LYNL+NODPLC(LOC+19)@E@]@@ CB )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+CMPLX((XNRM-XREV)*GM,-XCGD) @ @]@@ LOCY=LCC )@@G@@YNL+NODPLC(LOC+20)@F@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GBD-(XNRM-CD )@@G@@XREV)*GMBS,XBD) @ @]@@ LOCY=LYNL+NODPLC(LOC+21)@D@]@@ CVALUECE )@@G@@(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) @ @]@@ LOCY=LYNL+NODPLC(LCF )@@G@@OC+22)@E@]@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX((XNRM-XREV)*GM,XCGS) CG )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+23)@A@]@@ CVALUE(LOCY)=CVALUE(LOCYCH )@@G@@)-GSPR@ @]@@ LOCY=LYNL+NODPLC(LOC+24)@F@]@@ CVALUE(LOCY)=CVALUCI )@@G@@E(LOCY)-CMPLX(GBS+(XNRM-XREV)*GMBS,XBS) @ @]@@ LOCY=LYNL+NODPLC(LCJ )@@G@@OC+25)@D@]@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XREV*(GM+GMBS) @^@]@@CK )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 360 @[@]@@C @^@]@@C TRACL )@@G@@NSMISSION LINES @[@]@@C @^@]@@ 400 LOC=LOCATE(17) @ @]@@ 410 CM )@@G@@IF (LOC.EQ.0) GO TO 1000@^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ Z0=VALCN )@@G@@UE(LOCV+1) @#@]@@ Y0=1.0/Z0 @^@]@@ TD=VALUE(LOCV+2) @^@]@@CO )@@G@@ ARG=-OMEGA*TD @A@]@@ CVAL=CMPLX(COS(ARG),SIN(ARG)) @ @]@@CP )@@G@@ LOCY=LYNL+NODPLC(LOC+10)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+Y0 CQ )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+11)@^@]@@ CVALUE(LOCY)=-Y0 @ @]@@CR )@@G@@ LOCY=LYNL+NODPLC(LOC+12)@^@]@@ CVALUE(LOCY)=-1.0 @ @]@@ CS )@@G@@LOCY=LYNL+NODPLC(LOC+13)@A@]@@ CVALUE(LOCY)=CVALUE(LOCY)+Y0 @ @]@@CT )@@G@@ LOCY=LYNL+NODPLC(LOC+14)@^@]@@ CVALUE(LOCY)=-1.0 @ @]@@ CU )@@G@@LOCY=LYNL+NODPLC(LOC+15)@^@]@@ CVALUE(LOCY)=-Y0 @ @]@@ LOCY=LCV )@@G@@YNL+NODPLC(LOC+16)@^@]@@ CVALUE(LOCY)=+Y0 @ @]@@ LOCY=LYNL+NOCW )@@G@@DPLC(LOC+17)@^@]@@ CVALUE(LOCY)=+1.0 @ @]@@ LOCY=LYNL+NODPLC(LCX )@@G@@OC+18)@^@]@@ CVALUE(LOCY)=+Y0 @ @]@@ LOCY=LYNL+NODPLC(LOC+19)CY )@@G@@@^@]@@ CVALUE(LOCY)=+1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+20)@^@]@@CZ )@@G@@ CVALUE(LOCY)=-1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+21)@^@]@@ DA )@@G@@CVALUE(LOCY)=-CVAL@ @]@@ LOCY=LYNL+NODPLC(LOC+22)@^@]@@ CVALUEDB )@@G@@(LOCY)=+CVAL@ @]@@ LOCY=LYNL+NODPLC(LOC+23)@^@]@@ CVALUE(LOCY)DC )@@G@@=+1.0 @ @]@@ LOCY=LYNL+NODPLC(LOC+24)@ @]@@ CVALUE(LOCY)=-CVALDD )@@G@@*Z0 @ @]@@ LOCY=LYNL+NODPLC(LOC+25)@^@]@@ CVALUE(LOCY)=-CVALDE )@@G@@@ @]@@ LOCY=LYNL+NODPLC(LOC+26)@^@]@@ CVALUE(LOCY)=+CVAL@ @]@@DF )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@^@]@@ CVALUE(LOCY)=-1.0 @ @]@@ DG )@@G@@LOCY=LYNL+NODPLC(LOC+28)@^@]@@ CVALUE(LOCY)=+1.0 @ @]@@ LOCY=LDH )@@G@@YNL+NODPLC(LOC+29)@ @]@@ CVALUE(LOCY)=-CVAL*Z0 @ @]@@ LOCY=LDI )@@G@@YNL+NODPLC(LOC+31)@^@]@@ CVALUE(LOCY)=-Y0 @ @]@@ LOCY=LYNL+NODJ )@@G@@DPLC(LOC+32)@^@]@@ CVALUE(LOCY)=-Y0 @^@]@@ LOC=NODPLC(LOC) DK )@@G@@@#@]@@ GO TO 410 @[@]@@C @ @]@@C REORDER RIGHT-HAND SIDE DL )@@G@@@[@]@@C @^@]@@ 1000 DO 1110 I=2,NSTOP @^@]@@ J=NODPLC(ISWAP+I) DM )@@G@@@A@]@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@]@@ 1110 CONTINUE @D@]@@DN )@@G@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@]@@C @]@]@@DO )@@G@@C FINISHED @[@]@@C @]@]@@ RETURN@]@]@@ END @ @]@@ DP )@@G@@SUBROUTINE NOISE(LOCO) @[@]@@C @G@]@@C THIS ROUTINE COMPUTES THDQ )@@G@@E NOISE DUE TO VARIOUS CIRCUIT ELEMENTS. @[@]@@C @G@]@@ COMMONDR )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1DS )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@DT )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, DU )@@G@@@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVDV )@@G@@NIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDDW )@@G@@0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDDX )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUTDY )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMEGA,TIDZ )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICAEA )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MEB )@@G@@ODAC @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSEC )@@G@@(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /KNSTNT/ TWED )@@G@@OPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTEE )@@G@@OL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@]@@ COMMON /AC/ EF )@@G@@FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOEG )@@G@@ISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZEH )@@G@@IN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIEI )@@G@@MAT(4)@ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)EJ )@@G@@@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1EK )@@G@@),CVALUE(1))@[@]@@C @[@]@@C @G@]@@ DIMENSION VNO1(12),VNO2(EL )@@G@@12),VNO3(12),VNO4(12),VNO5(12),VNO6(12) @C@]@@ DIMENSION VNTOT(12EM )@@G@@),ANAM(12),STRING(5) @ @]@@ DIMENSION TITLN(4),V(2) @^@]@@ EN )@@G@@COMPLEX CVAL,C(1) @A@]@@ EQUIVALENCE (C(1),V(1),CVAL) @C@]@@ EO )@@G@@EQUIVALENCE (V(1),VREAL),(V(2),VIMAG) @G@]@@ DATA TITLN / 8HNOIEP )@@G@@SE AN, 8HALYSIS , 8H , 8H / @G@]@@ DATA ALSRB,AEQ )@@G@@LSRC,ALSRE,ALSRS,ALSRD / 2HRB,2HRC,2HRE,2HRS,2HRD / @E@]@@ DATA AER )@@G@@LSIB,ALSIC,ALSID,ALSFN / 2HIB,2HIC,2HID,2HFN / @ @]@@ DATA ALSTOT ES )@@G@@/ 5HTOTAL / @A@]@@ DATA ASLASH,ABLNK / 1H/, 1H /@[@]@@C @[@]@@ET )@@G@@C @#@]@@ NPRNT=0 @^@]@@ FREQ=OMEGA/TWOPI @ @]@@ EU )@@G@@IF (ICALC.GE.2) GO TO 10@ @]@@ FOURKT=4.0*CHARGE*VT @^@]@@ EV )@@G@@TWOQ=2.0*CHARGE @ @]@@ NOPOSO=NODPLC(NOSOUT+2) @ @]@@ NONEGOEW )@@G@@=NODPLC(NOSOUT+3) @^@]@@ KNTLIM=LWIDTH/11 @#@]@@ NKNTR=1 EX )@@G@@@A@]@@ 10 IF (NOSPRT.EQ.0) GO TO 30 @A@]@@ IF (NKNTR.GT.ICALCEY )@@G@@) GO TO 30 @#@]@@ NPRNT=1 @^@]@@ NKNTR=NKNTR+NOSPRT@A@]@@EZ )@@G@@ CALL TITLE(0,LWIDTH,1,TITLN) @^@]@@ WRITE (6,16) FREQ @C@]@@FA )@@G@@ 16 FORMAT(^0 FREQUENCY = ^,1PE10.3,^ HZ^/)@[@]@@C @A@]@@C OBTFB )@@G@@AIN ADJOINT CIRCUIT SOLUTION @[@]@@C @#@]@@ 30 VNRMS=0.0 @C@]@@FC )@@G@@ CVAL=CVALUE(LVN+NOPOSO)-CVALUE(LVN+NONEGO)@B@]@@ VOUT=SQRT(VRFD )@@G@@EAL*VREAL+VIMAG*VIMAG) @ @]@@ VOUT=AMAX1(VOUT,1.0E-20)@B@]@@ FE )@@G@@CALL ZERO16(CVALUE(LVN+1),NSTOP) @ @]@@ CVALUE(LVN+NOPOSO)=-1.0 FF )@@G@@@ @]@@ CVALUE(LVN+NONEGO)=+1.0 @#@]@@ CALL ACASOL @ @]@@ FG )@@G@@CVALUE(LVN+1)=(0.0,0.0) @[@]@@C @]@]@@C RESISTORS@[@]@@C @A@]@@FH )@@G@@ IF (JELCNT(1).EQ.0) GO TO 200 @#@]@@ ITITLE=0 @F@]@@ 91 FI )@@G@@FORMAT(//^0**** RESISTOR SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@]@@ 100 FJ )@@G@@LOC=LOCATE(1) @]@]@@ KNTR=0@ @]@@ 110 IF (LOC.EQ.0) GO TO 130 FK )@@G@@@#@]@@ KNTR=KNTR+1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ ANAM(KFL )@@G@@NTR)=VALUE(LOCV) @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=FM )@@G@@NODPLC(LOC+3) @C@]@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE2) FN )@@G@@@F@]@@ VNTOT(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCV+1) FO )@@G@@@ @]@@ VNRMS=VNRMS+VNTOT(KNTR) @A@]@@ IF (KNTR.GE.KNTLIM) GO TFP )@@G@@O 140 @^@]@@ 120 LOC=NODPLC(LOC) @#@]@@ GO TO 110 @ @]@@ 130 FQ )@@G@@IF (KNTR.EQ.0) GO TO 200@A@]@@ 140 IF (NPRNT.EQ.0) GO TO 160 @A@]@@FR )@@G@@ IF (ITITLE.EQ.0) WRITE (6,91) @#@]@@ ITITLE=1 @B@]@@ FS )@@G@@WRITE (6,141) (ANAM(I),I=1,KNTR) @A@]@@ 141 FORMAT(////,11X,12(2X,A8FT )@@G@@)) @C@]@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @ @]@@ 151 FU )@@G@@FORMAT(1H0,A8,1P12E10.3)@]@]@@ 160 KNTR=0@ @]@@ IF (LOC.NE.0) GO TFV )@@G@@O 120 @[@]@@C @]@]@@C DIODES @[@]@@C @A@]@@ 200 IF (JELCNT(1FW )@@G@@1).EQ.0) GO TO 300@#@]@@ ITITLE=0 @F@]@@ 201 FORMAT(//^0**** DIFX )@@G@@ODE SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@]@@ 210 LOC=LOCATE(11) FY )@@G@@@]@]@@ KNTR=0@ @]@@ 220 IF (LOC.EQ.0) GO TO 240 @#@]@@ KNTR=KFZ )@@G@@NTR+1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ ANAM(KNTR)=VALUE(LOCV) GA )@@G@@@ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) GB )@@G@@@ @]@@ NODE3=NODPLC(LOC+4) @^@]@@ LOCM=NODPLC(LOC+5)@ @]@@GC )@@G@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=NODPLC(LOC+11) @^@]@@GD )@@G@@ AREA=VALUE(LOCV+1)@^@]@@ FNK=VALUE(LOCM+10)@^@]@@ FNA=VAGE )@@G@@LUE(LOCM+11)@[@]@@C @^@]@@C OHMIC RESISTANCE @[@]@@C @C@]@@GF )@@G@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE3) @G@]@@ VNO1(KNTR)=(GG )@@G@@VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+2)*AREA @[@]@@C @B@]@@GH )@@G@@C JUNCTION SHOT NOISE AND FLICKER NOISE @[@]@@C @C@]@@ CVAL=CGI )@@G@@VALUE(LVN+NODE3)-CVALUE(LVN+NODE2) @A@]@@ VTEMP=VREAL*VREAL+VIMAG*GJ )@@G@@VIMAG @C@]@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+1)),1.0E-20) @A@]@@ GK )@@G@@VNO2(KNTR)=VTEMP*TWOQ*ARG @D@]@@ VNO3(KNTR)=VTEMP*FNK*EXP(FNA*AGL )@@G@@LOG(ARG))/FREQ @D@]@@ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTGM )@@G@@R) @ @]@@ VNRMS=VNRMS+VNTOT(KNTR) @A@]@@ IF (KNTR.GE.KNTLIMGN )@@G@@) GO TO 250 @^@]@@ 230 LOC=NODPLC(LOC) @#@]@@ GO TO 220 @ @]@@GO )@@G@@ 240 IF (KNTR.EQ.0) GO TO 300@A@]@@ 250 IF (NPRNT.EQ.0) GO TO 260 GP )@@G@@@A@]@@ IF (ITITLE.EQ.0) WRITE (6,201)@#@]@@ ITITLE=1 @B@]@@GQ )@@G@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSRGR )@@G@@S,(VNO1(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSID,(VNO2(I),I=1,KNTGS )@@G@@R) @C@]@@ WRITE (6,151) ALSFN,(VNO3(I),I=1,KNTR) @C@]@@ GT )@@G@@WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@]@@ 260 KNTR=0@ @]@@ GU )@@G@@IF (LOC.NE.0) GO TO 230 @[@]@@C @A@]@@C BIPOLAR JUNCTION TRANSISTORGV )@@G@@S @[@]@@C @A@]@@ 300 IF (JELCNT(12).EQ.0) GO TO 400@#@]@@ GW )@@G@@ITITLE=0 @G@]@@ 301 FORMAT(//^0**** TRANSISTOR SQUARED NOISE VOLTAGEGX )@@G@@S (SQ V/HZ)^) @^@]@@ 310 LOC=LOCATE(12) @]@]@@ KNTR=0@ @]@@GY )@@G@@ 320 IF (LOC.EQ.0) GO TO 340 @#@]@@ KNTR=KNTR+1 @^@]@@ LOCV=NGZ )@@G@@ODPLC(LOC+1)@ @]@@ ANAM(KNTR)=VALUE(LOCV) @ @]@@ NODE1=NODPLCHA )@@G@@(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLCHB )@@G@@(LOC+4) @ @]@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=NODPLCHC )@@G@@(LOC+6) @ @]@@ NODE6=NODPLC(LOC+7) @^@]@@ LOCM=NODPLC(HD )@@G@@LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=NODPLC(LOC+22HE )@@G@@) @^@]@@ AREA=VALUE(LOCV+1)@^@]@@ FNK=VALUE(LOCM+26)@^@]@@HF )@@G@@ FNA=VALUE(LOCM+27)@[@]@@C @^@]@@C EXTRINSIC RESISTANCES@[@]@@HG )@@G@@C @^@]@@C... BASE RESISTANCE @C@]@@ CVAL=CVALUE(LVN+NODE2)-CHH )@@G@@VALUE(LVN+NODE5) @G@]@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKHI )@@G@@T*VALUE(LOCM+4)*AREA @ @]@@C... COLLECTOR RESISTANCE @C@]@@ HJ )@@G@@CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE4) @G@]@@ VNO2(KNTR)=(VREAL*HK )@@G@@VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA @^@]@@C... EMITTER RESIHL )@@G@@STANCE@C@]@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE6) @G@]@@ HM )@@G@@VNO3(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+6)*AREA @[@]@@HN )@@G@@C @C@]@@C BASE CURRENT SHOT NOISE AND FLICKER NOISE @[@]@@C HO )@@G@@@C@]@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NODE6) @A@]@@ VTEMP=HP )@@G@@VREAL*VREAL+VIMAG*VIMAG @C@]@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+3)),1.0HQ )@@G@@E-20) @A@]@@ VNO4(KNTR)=VTEMP*TWOQ*ARG @D@]@@ VNO5(KNTR)=VHR )@@G@@TEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @[@]@@C @A@]@@C COLLECTOR CURREHS )@@G@@NT SHOT NOISE @[@]@@C @C@]@@ CVAL=CVALUE(LVN+NODE4)-CVALUE(HT )@@G@@LVN+NODE6) @G@]@@ VNO6(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*TWOQ*ABS(VAHU )@@G@@LUE(LX0+LOCT+2)) @G@]@@ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTHV )@@G@@R)+VNO4(KNTR)+VNO5(KNTR)@^@]@@ 1 +VNO6(KNTR) @ @]@@ VNRMS=HW )@@G@@VNRMS+VNTOT(KNTR) @A@]@@ IF (KNTR.GE.KNTLIM) GO TO 350 @^@]@@ 330 HX )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 320 @ @]@@ 340 IF (KNTR.EQ.0) GO HY )@@G@@TO 400@A@]@@ 350 IF (NPRNT.EQ.0) GO TO 360 @A@]@@ IF (ITITLE.EHZ )@@G@@Q.0) WRITE (6,301)@#@]@@ ITITLE=1 @B@]@@ WRITE (6,141) (ANAIA )@@G@@M(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSRB,(VNO1(I),I=1,KNTR) IB )@@G@@@C@]@@ WRITE (6,151) ALSRC,(VNO2(I),I=1,KNTR) @C@]@@ WRITE IC )@@G@@(6,151) ALSRE,(VNO3(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSIB,(VNOID )@@G@@4(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSIC,(VNO6(I),I=1,KNTR) IE )@@G@@@C@]@@ WRITE (6,151) ALSFN,(VNO5(I),I=1,KNTR) @C@]@@ WRITE IF )@@G@@(6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@]@@ 360 KNTR=0@ @]@@ IF (LOIG )@@G@@C.NE.0) GO TO 330 @[@]@@C @]@]@@C JFETS @[@]@@C @A@]@@ 400 IH )@@G@@IF (JELCNT(13).EQ.0) GO TO 500@#@]@@ ITITLE=0 @F@]@@ 401 FORMATII )@@G@@(//^0**** JFET SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@]@@ 410 LOC=LOIJ )@@G@@CATE(13) @]@]@@ KNTR=0@ @]@@ 420 IF (LOC.EQ.0) GO TO 440 @#@]@@IK )@@G@@ KNTR=KNTR+1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ ANAM(KNTR)=VIL )@@G@@ALUE(LOCV) @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@ NODE2=NODPLCIM )@@G@@(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@ NODE4=NODPLCIN )@@G@@(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) @^@]@@ LOCM=NODPLC(IO )@@G@@LOC+7)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=NODPLC(LOC+19IP )@@G@@) @^@]@@ AREA=VALUE(LOCV+1)@^@]@@ FNK=VALUE(LOCM+10)@^@]@@IQ )@@G@@ FNA=VALUE(LOCM+11)@[@]@@C @^@]@@C EXTRINSIC RESISTANCES@[@]@@IR )@@G@@C @^@]@@C... DRAIN RESISTANCE @C@]@@ CVAL=CVALUE(LVN+NODE1)-CIS )@@G@@VALUE(LVN+NODE4) @G@]@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKIT )@@G@@T*VALUE(LOCM+4)*AREA @^@]@@C... SOURCE RESISTANCE @C@]@@ CVAL=CIU )@@G@@VALUE(LVN+NODE3)-CVALUE(LVN+NODE5) @G@]@@ VNO2(KNTR)=(VREAL*VREAL+IV )@@G@@VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA @[@]@@C @C@]@@C DRAIN CURIW )@@G@@RENT SHOT NOISE AND FLICKER NOISE @[@]@@C @C@]@@ CVAL=CVALUE(IX )@@G@@LVN+NODE4)-CVALUE(LVN+NODE5) @A@]@@ VTEMP=VREAL*VREAL+VIMAG*VIMAG IY )@@G@@@E@]@@ VNO3(KNTR)=VTEMP*FOURKT*2.0*ABS(VALUE(LX0+LOCT+5))/3.0@C@]@@IZ )@@G@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+3)),1.0E-20) @D@]@@ VNO4(KNTR)=VJA )@@G@@TEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @F@]@@ VNTOT(KNTR)=VNO1(KNTR)+VJB )@@G@@NO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) @ @]@@ VNRMS=VNRMS+VNTOT(KNTR) JC )@@G@@@A@]@@ IF (KNTR.GE.KNTLIM) GO TO 450 @^@]@@ 430 LOC=NODPLC(LOC) JD )@@G@@@#@]@@ GO TO 420 @ @]@@ 440 IF (KNTR.EQ.0) GO TO 500@A@]@@ 450 JE )@@G@@IF (NPRNT.EQ.0) GO TO 460 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,401)JF )@@G@@@#@]@@ ITITLE=1 @B@]@@ WRITE (6,141) (ANAM(I),I=1,KNTR) JG )@@G@@@C@]@@ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) @C@]@@ WRITE JH )@@G@@(6,151) ALSRS,(VNO2(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSID,(VNOJI )@@G@@3(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSFN,(VNO4(I),I=1,KNTR) JJ )@@G@@@C@]@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@]@@ 460 KNTR=0JK )@@G@@@ @]@@ IF (LOC.NE.0) GO TO 430 @[@]@@C @]@]@@C MOSFETS @[@]@@JL )@@G@@C @A@]@@ 500 IF (JELCNT(14).EQ.0) GO TO 600@#@]@@ ITITLE=0 JM )@@G@@@F@]@@ 501 FORMAT(//^0**** MOSFET SQUARED NOISE VOLTAGES (SQ V/HZ)^) JN )@@G@@@^@]@@ 510 LOC=LOCATE(14) @]@]@@ KNTR=0@ @]@@ 520 IF (LOC.EQ.0JO )@@G@@) GO TO 540 @#@]@@ KNTR=KNTR+1 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@JP )@@G@@ ANAM(KNTR)=VALUE(LOCV) @ @]@@ NODE1=NODPLC(LOC+2) @ @]@@JQ )@@G@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLC(LOC+4) @ @]@@JR )@@G@@ NODE4=NODPLC(LOC+5) @ @]@@ NODE5=NODPLC(LOC+6) @ @]@@JS )@@G@@ NODE6=NODPLC(LOC+7) @^@]@@ LOCM=NODPLC(LOC+8)@ @]@@ JT )@@G@@LOCM=NODPLC(LOCM+1) @E@]@@ XL=VALUE(LOCV+1)-2.0*VALUE(LOCM+20)*JU )@@G@@VALUE(LOCM+19) @^@]@@ XW=VALUE(LOCV+2) @ @]@@ COX=VALUE(LOJV )@@G@@CM+13)*XW*XL@ @]@@ LOCT=NODPLC(LOC+26) @^@]@@ FNK=VALUE(LOJW )@@G@@CM+27)@^@]@@ FNA=VALUE(LOCM+28)@#@]@@ FNB=1.0 @[@]@@C JX )@@G@@@^@]@@C EXTRINSIC RESISTANCES@[@]@@C @^@]@@C... DRAIN RESISTANCE JY )@@G@@@C@]@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE5) @F@]@@ VNO1(KJZ )@@G@@NTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+6) @^@]@@C... SOURCEKA )@@G@@ RESISTANCE @C@]@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE6) @F@]@@KB )@@G@@ VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+7) @[@]@@KC )@@G@@C @C@]@@C DRAIN CURRENT SHOT NOISE AND FLICKER NOISE @[@]@@C KD )@@G@@@C@]@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NODE6) @A@]@@ VTEMP=KE )@@G@@VREAL*VREAL+VIMAG*VIMAG @E@]@@ VNO3(KNTR)=VTEMP*FOURKT*ABS(VALUE(LXKF )@@G@@0+LOCT+7))/1.5 @C@]@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+4)),1.0E-20) KG )@@G@@@C@]@@ VNO4(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG)) @A@]@@ 1 /(EKH )@@G@@XP(FNB*ALOG(FREQ))*COX) @F@]@@ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNKI )@@G@@O3(KNTR)+VNO4(KNTR) @ @]@@ VNRMS=VNRMS+VNTOT(KNTR) @A@]@@ KJ )@@G@@IF (KNTR.GE.KNTLIM) GO TO 550 @^@]@@ 530 LOC=NODPLC(LOC) @#@]@@ KK )@@G@@GO TO 520 @ @]@@ 540 IF (KNTR.EQ.0) GO TO 600@A@]@@ 550 IF (NPRNT.EQKL )@@G@@.0) GO TO 560 @A@]@@ IF (ITITLE.EQ.0) WRITE (6,501)@#@]@@ KM )@@G@@ITITLE=1 @B@]@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @C@]@@ KN )@@G@@WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSRKO )@@G@@S,(VNO2(I),I=1,KNTR) @C@]@@ WRITE (6,151) ALSID,(VNO3(I),I=1,KNTKP )@@G@@R) @C@]@@ WRITE (6,151) ALSFN,(VNO4(I),I=1,KNTR) @C@]@@ KQ )@@G@@WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@]@@ 560 KNTR=0@ @]@@ KR )@@G@@IF (LOC.NE.0) GO TO 530 @[@]@@C @B@]@@C COMPUTE EQUIVALENT INPUT NOKS )@@G@@ISE VOLTAGE @[@]@@C @^@]@@ 600 VNOUT=SQRT(VNRMS) @^@]@@ VNIN=VKT )@@G@@NOUT/VOUT @A@]@@ IF (NPRNT.EQ.0) GO TO 620 @#@]@@ DO 610KU )@@G@@ I=1,5@^@]@@ STRING(I)=ABLNK @#@]@@ 610 CONTINUE @#@]@@ KV )@@G@@IOUTYP=1 @]@]@@ IPOS=1@C@]@@ CALL OUTNAM(NOSOUT,IOUTYP,STRIKW )@@G@@NG,IPOS) @B@]@@ CALL MOVE(STRING,IPOS,ASLASH,1,1) @#@]@@ KX )@@G@@IPOS=IPOS+1 @ @]@@ LOCV=NODPLC(NOSIN+1) @^@]@@ ANAM1=VALUE(KY )@@G@@LOCV) @B@]@@ CALL MOVE(STRING,IPOS,ANAM1,1,8) @D@]@@ WRITE KZ )@@G@@(6,611) VNRMS,VNOUT,STRING,VOUT,ANAM1,VNIN@#@]@@ 611 FORMAT(////,@G@]@@LA )@@G@@ 1 ^0**** TOTAL OUTPUT NOISE VOLTAGE^,9X,^= ^,1PE10.3,^ SQ V/HZ^/,LB )@@G@@@B@]@@ 2 1H0,40X,^= ^,E10.3,^ V/RT HZ^/, @C@]@@ 3 ^0 TRLC )@@G@@ANSFER FUNCTION VALUE:^/, @A@]@@ 4 1H0,7X,4A8,A1,^= ^,E10.3,/,LD )@@G@@@G@]@@ 5 ^0 EQUIVALENT INPUT NOISE AT ^,A8,^ = ^,E10.3,^ /RT HLE )@@G@@Z^) @[@]@@C @^@]@@C SAVE NOISE OUTPUTS @[@]@@C @^@]@@ 620 LF )@@G@@LOC=LOCATE(44) @ @]@@ 630 IF (LOC.EQ.0) GO TO 1000@^@]@@ ISEQ=NLG )@@G@@ODPLC(LOC+4)@B@]@@ IF (NODPLC(LOC+5).NE.2) GO TO 640 @ @]@@ LH )@@G@@CVALUE(LOCO+ISEQ)=VNOUT @#@]@@ GO TO 650 @ @]@@ 640 CVALUE(LOCO+LI )@@G@@ISEQ)=VNIN @^@]@@ 650 LOC=NODPLC(LOC) @#@]@@ GO TO 630 @[@]@@LJ )@@G@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 1000 RETURN@]@]@@ END LK )@@G@@@^@]@@ SUBROUTINE ACASOL @[@]@@C @G@]@@C THIS ROUTINE EVALULL )@@G@@ATES THE RESPONSE OF THE ADJOINT CIRCUIT BY @G@]@@C DOING A FORWARD/LM )@@G@@BACKWARD SUBSTITUTION STEP USING THE TRANSPOSE OF THE @B@]@@C CIRCUIT EQLN )@@G@@UATION COEFFICIENT MATRIX. @[@]@@C @G@]@@ COMMON /TABINF/ IELO )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSELP )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNLQ )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3LR )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@LS )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, LT )@@G@@@ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOCATE(5LU )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NLV )@@G@@DIST,NTLIN,IBR,NUMVS @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ LW )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE LX )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @G@]@@C EVALUATES ADJOINT RESLY )@@G@@PONSE BY DOING FORWARD/BACKWARD SUBSTITUTION ON @A@]@@C THE TRANSPOSE OLZ )@@G@@F THE Y MATRIX @[@]@@C @[@]@@C @^@]@@C FORWARD SUBSTITUTION MA )@@G@@@[@]@@C @^@]@@ DO 20 I=2,NSTOP @ @]@@ IO=NODPLC(IORDER+IMB )@@G@@) @D@]@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)/CVALUE(LYNL+IO) @ @]@@MC )@@G@@ JSTART=NODPLC(IUR+I) @ @]@@ JSTOP=NODPLC(IUR+I+1)-1 @A@]@@MD )@@G@@ IF (JSTART.GT.JSTOP) GO TO 20 @C@]@@ IF (REAL(CVALUE(LVN+IO))ME )@@G@@.NE.0.0) GO TO 5 @C@]@@ IF (AIMAG(CVALUE(LVN+IO)).EQ.0.0) GO TO 20MF )@@G@@@ @]@@ 5 DO 10 J=JSTART,JSTOP @^@]@@ JO=NODPLC(IUC+J) @ @]@@MG )@@G@@ JO=NODPLC(IORDER+JO) @F@]@@ CVALUE(LVN+JO)=CVALUE(LVN+JO)-MH )@@G@@CVALUE(LYU+J)*CVALUE(LVN+IO) @#@]@@ 10 CONTINUE @#@]@@ 20 CONTINMI )@@G@@UE @[@]@@C @^@]@@C BACKWARD SUBSTITUTION@[@]@@C @#@]@@ MJ )@@G@@K=NSTOP+1 @^@]@@ DO 40 I=2,NSTOP @]@]@@ K=K-1 @ @]@@ MK )@@G@@IO=NODPLC(IORDER+K) @ @]@@ JSTART=NODPLC(ILC+K) @ @]@@ ML )@@G@@JSTOP=NODPLC(ILC+K+1)-1 @A@]@@ IF (JSTART.GT.JSTOP) GO TO 40 @ @]@@MM )@@G@@ DO 30 J=JSTART,JSTOP @^@]@@ JO=NODPLC(ILR+J) @ @]@@ MN )@@G@@JO=NODPLC(IORDER+JO) @F@]@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)-CVALUEMO )@@G@@(LYL+J)*CVALUE(LVN+JO) @#@]@@ 30 CONTINUE @#@]@@ 40 CONTINUE MP )@@G@@@[@]@@C @ @]@@C REORDER RIGHT-HAND SIDE @[@]@@C @^@]@@ MQ )@@G@@DO 50 I=2,NSTOP @^@]@@ J=NODPLC(ISWAP+I) @A@]@@ CVALUE(NDIAGMR )@@G@@+I)=CVALUE(LVN+J) @#@]@@ 50 CONTINUE @D@]@@ CALL COPY16(CVALUEMS )@@G@@(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@]@@C @]@]@@C FINISHED @[@]@@C MT )@@G@@@]@]@@ RETURN@]@]@@ END @^@]@@ SUBROUTINE DINIT @[@]@@MU )@@G@@C @G@]@@C THIS ROUTINE PERFORMS STORAGE-ALLOCATION AND ONE-TIME MV )@@G@@COMPUTATION @D@]@@C NEEDED TO DO THE SMALL-SIGNAL DISTORTION ANALYSIS. MW )@@G@@@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSMX )@@G@@AT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDMY )@@G@@ELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODMZ )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODENA )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,NB )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZENC )@@G@@R @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUND )@@G@@MNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@NE )@@G@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, NF )@@G@@@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,NG )@@G@@@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPNH )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,INI )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @]@@ COMMON /BLANK/ VALNJ )@@G@@UE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@NK )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C NL )@@G@@@ @]@@ CALL GETMEM(LD0,NDIST) @A@]@@ CALL GETMEM(LD1,2*(5*NSTNM )@@G@@OP)) @[@]@@C @A@]@@C BIPOLAR JUNCTION TRANSISTORS @[@]@@C NN )@@G@@@^@]@@ LOC=LOCATE(12) @ @]@@ 100 IF (LOC.EQ.0) GO TO 200 @^@]@@NO )@@G@@ LOCV=NODPLC(LOC+1)@^@]@@ AREA=VALUE(LOCV+1)@^@]@@ LOCM=NNP )@@G@@ODPLC(LOC+8)@ @]@@ LOCM=NODPLC(LOCM+1) @ @]@@ LOCT=LX0+NODNQ )@@G@@PLC(LOC+22) @ @]@@ LOCD=LD0+NODPLC(LOC+23) @ @]@@ CSAT=VALUE(LNR )@@G@@OCM+3)*AREA @^@]@@ OVA=VALUE(LOCM+7) @^@]@@ TF=VALUE(LOCM+15) NS )@@G@@@^@]@@ TR=VALUE(LOCM+16) @ @]@@ CZBE=VALUE(LOCM+18)*AREA@ @]@@NT )@@G@@ CZBC=VALUE(LOCM+21)*AREA@^@]@@ PE=VALUE(LOCM+19) @^@]@@ NU )@@G@@XME=VALUE(LOCM+20)@^@]@@ PC=VALUE(LOCM+22) @^@]@@ XMC=VALUE(LONV )@@G@@CM+23)@ @]@@ FCPE=VALUE(LOCM+28) @ @]@@ FCPC=VALUE(LOCM+33NW )@@G@@) @^@]@@ VBE=VALUE(LOCT) @^@]@@ VBC=VALUE(LOCT+1) @^@]@@NX )@@G@@ GPI=VALUE(LOCT+4) @^@]@@ GO=VALUE(LOCT+7) @^@]@@ GM=VALNY )@@G@@UE(LOCT+6) @^@]@@ GMU=VALUE(LOCT+5) @A@]@@ IF (VBE.GT.0.0) GONZ )@@G@@ TO 110 @#@]@@ EVBE=1.0 @^@]@@ CBE=CSAT*VBE/VT @#@]@@OA )@@G@@ GO TO 120 @^@]@@ 110 EVBE=EXP(VBE/VT) @ @]@@ CBE=CSAT*(EVOB )@@G@@BE-1.0) @A@]@@ 120 IF (VBC.GT.0.0) GO TO 130 @#@]@@ EVBC=1OC )@@G@@.0 @^@]@@ CBC=CSAT*VBC/VT @^@]@@ ARG=1.0-VBC/PC @#@]@@OD )@@G@@ GO TO 140 @^@]@@ 130 EVBC=EXP(VBC/VT) @ @]@@ CBC=CSAT*(EVOE )@@G@@BC-1.0) @A@]@@ 140 IF (VBE.GE.FCPE) GO TO 150 @^@]@@ ARG=1.OF )@@G@@0-VBE/PE @ @]@@ SARG=EXP(XME*ALOG(ARG)) @^@]@@ CJEO=CZBE/SAOG )@@G@@RG @#@]@@ ARGBE=PE-VBE@ @]@@ CJE1=XME*CJEO/ARGBE @A@]@@OH )@@G@@ CJE2=XME*(1.0+XME)*CJE1/ARGBE @#@]@@ GO TO 160 @B@]@@ 150 OI )@@G@@DENOM=EXP((1.0+XME)*ALOG(1.0-FCPE)) @ @]@@ CJE1=CZBE*XME/(DENOM*PE)OJ )@@G@@@#@]@@ CJE2=0.0 @A@]@@ 160 IF (VBC.GE.FCPC) GO TO 170 @^@]@@OK )@@G@@ ARG=1.0-VBC/PC @ @]@@ SARG=EXP(XMC*ALOG(ARG)) @^@]@@ OL )@@G@@CJCO=CZBC/SARG @#@]@@ ARGBC=PC-VBC@ @]@@ CJC1=XMC*CJCO/ARGBOM )@@G@@C @A@]@@ CJC2=XMC*(1.0+XMC)*CJC1/ARGBC @#@]@@ GO TO 180 ON )@@G@@@B@]@@ 170 DENOM=EXP((1.0+XMC)*ALOG(1.0-FCPC)) @ @]@@ CJC1=CZBC*XMOO )@@G@@C/(DENOM*PC)@#@]@@ CJC2=0.0 @#@]@@ 180 TWOVT=VT+VT @B@]@@ OP )@@G@@GO2=(-GO+CSAT*(EVBE+EVBC)*OVA)/TWOVT@A@]@@ GMO2=(CBE+CSAT)*OVA/VT-2OQ )@@G@@.0*GO2@A@]@@ GM2=(GM+GO)/TWOVT-GMO2-GO2 @^@]@@ GMU2=GMU/TWOOR )@@G@@VT @ @]@@ IF (VBC.LE.0.0) GMU2=0.0@^@]@@ GPI2=GPI/TWOVT OS )@@G@@@ @]@@ IF (VBE.LE.0.0) GPI2=0.0@ @]@@ CBO=TF*CSAT*EVBE/VT OT )@@G@@@ @]@@ CBOR=TR*CSAT*EVBC/VT @#@]@@ CB1=CBO/VT @#@]@@ OU )@@G@@CB1R=CBOR/VT@#@]@@ TRIVT=3.0*VT@C@]@@ GO3=-(GO2+(CBC+CSAT)*OVAOV )@@G@@/TWOVT)/TRIVT @^@]@@ GMO23=-3.0*GO3 @C@]@@ GM2O3=-GMO23OW )@@G@@+(CBE+CSAT)*OVA/(VT*TWOVT) @B@]@@ GM3=(GM2-(CBE-CBC)*OVA/TWOVT)/OX )@@G@@TRIVT @^@]@@ GMU3=GMU2/TRIVT @^@]@@ GPI3=GPI2/TRIVT @^@]@@OY )@@G@@ CB2=CB1/TWOVT @^@]@@ CB2R=CB1R/TWOVT @^@]@@ VALUE(OZ )@@G@@LOCD)=CJE1 @^@]@@ VALUE(LOCD+1)=CJE2@^@]@@ VALUE(LOCD+2)=CJC1PA )@@G@@@^@]@@ VALUE(LOCD+3)=CJC2@^@]@@ VALUE(LOCD+4)=GO2 @^@]@@ PB )@@G@@VALUE(LOCD+5)=GMO2@^@]@@ VALUE(LOCD+6)=GM2 @^@]@@ VALUE(LOCD+7PC )@@G@@)=GMU2@^@]@@ VALUE(LOCD+8)=GPI2@^@]@@ VALUE(LOCD+9)=CBO @ @]@@PD )@@G@@ VALUE(LOCD+10)=CBOR @^@]@@ VALUE(LOCD+11)=CB1@ @]@@ PE )@@G@@VALUE(LOCD+12)=CB1R @^@]@@ VALUE(LOCD+13)=GO3@ @]@@ VALUE(PF )@@G@@LOCD+14)=GMO23 @ @]@@ VALUE(LOCD+15)=GM2O3 @^@]@@ VALUE(PG )@@G@@LOCD+16)=GM3@ @]@@ VALUE(LOCD+17)=GMU3 @ @]@@ VALUE(LOCD+1PH )@@G@@8)=GPI3 @^@]@@ VALUE(LOCD+19)=CB2@ @]@@ VALUE(LOCD+20)=CB2PI )@@G@@R @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 100 @[@]@@C PJ )@@G@@@]@]@@C DIODES @[@]@@C @^@]@@ 200 LOC=LOCATE(11) @ @]@@ 210 PK )@@G@@IF (LOC.EQ.0) GO TO 300 @^@]@@ LOCV=NODPLC(LOC+1)@^@]@@ AREA=VPL )@@G@@ALUE(LOCV+1)@^@]@@ LOCM=NODPLC(LOC+5)@ @]@@ LOCM=NODPLC(LOCM+1PM )@@G@@) @ @]@@ LOCT=LX0+NODPLC(LOC+11) @ @]@@ LOCD=LD0+NODPLC(LOPN )@@G@@C+12) @ @]@@ CSAT=VALUE(LOCM+1)*AREA @ @]@@ VTE=VALUE(LOCM+3)*PO )@@G@@VT @^@]@@ TAU=VALUE(LOCM+4) @ @]@@ CZERO=VALUE(LOCM+5)*AREAPP )@@G@@@^@]@@ PHIB=VALUE(LOCM+6)@^@]@@ XM=VALUE(LOCM+7) @ @]@@ PQ )@@G@@FCPB=VALUE(LOCM+12) @^@]@@ VD=VALUE(LOCT) @^@]@@ GEQ=VAPR )@@G@@LUE(LOCT+2) @#@]@@ EVD=1.0 @A@]@@ IF (VD.GE.0.0) EVD=EXP(VPS )@@G@@D/VTE)@A@]@@ IF (VD.GE.FCPB) GO TO 220 @^@]@@ ARG=1.0-VD/PPT )@@G@@HIB @ @]@@ SARG=EXP(XM*ALOG(ARG)) @^@]@@ CDJO=CZERO/SARG PU )@@G@@@#@]@@ ARGD=PHIB-VD@^@]@@ CDJ1=XM*CDJO/ARGD @A@]@@ CDJ2=XPV )@@G@@M*(1.0+XM)*CDJ1/ARGD @#@]@@ GO TO 230 @B@]@@ 220 DENOM=EXP((1PW )@@G@@.0+XM)*ALOG(1.0-FCPB)) @A@]@@ CDJ1=CZERO*XM/(DENOM*PHIB) @#@]@@PX )@@G@@ CDJ2=0.0 @ @]@@ 230 CDBO=TAU*CSAT*EVD/VTE @^@]@@ CDB1=CPY )@@G@@DBO/VTE @^@]@@ TWOVTE=2.0*VTE @^@]@@ GEQ2=GEQ/TWOVTE PZ )@@G@@@ @]@@ IF (VD.LE.0.0) GEQ2=0.0 @^@]@@ TRIVTE=3.0*VTE @^@]@@QA )@@G@@ GEQ3=GEQ2/TRIVTE @^@]@@ CDB2=CDB1/TWOVTE @^@]@@ VALUE(QB )@@G@@LOCD)=CDJ1 @^@]@@ VALUE(LOCD+1)=CDJ2@^@]@@ VALUE(LOCD+2)=CDBOQC )@@G@@@^@]@@ VALUE(LOCD+3)=CDB1@^@]@@ VALUE(LOCD+4)=GEQ2@^@]@@ QD )@@G@@VALUE(LOCD+5)=GEQ3@^@]@@ VALUE(LOCD+6)=CDB2@^@]@@ LOC=NODPLC(LQE )@@G@@OC) @#@]@@ GO TO 210 @[@]@@C @]@]@@C FINISHED @[@]@@C QF )@@G@@@]@]@@ 300 RETURN@]@]@@ END @ @]@@ SUBROUTINE DISTO(LOCO) QG )@@G@@@[@]@@C @F@]@@C THIS ROUTINE PERFORMS THE SMALL-SIGNAL DISTORTIOQH )@@G@@N ANALYSIS. @[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTQI )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIQJ )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,QK )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQL )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LQM )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUQN )@@G@@TPT,LPOL,LZER @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLQO )@@G@@E(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMONQP )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1QQ )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /STATUS/ OMQR )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEQS )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOQT )@@G@@SOLV,MODAC @G@]@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLQU )@@G@@TZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EQV )@@G@@PS0,EPSSIL,EPSOX @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTNQW )@@G@@,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4QX )@@G@@,ITL5,IGOOF,NOGO,KEOF @G@]@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,QY )@@G@@REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,QZ )@@G@@IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,RA )@@G@@IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIMAT(4)@ @]@@ COMMONRB )@@G@@ /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALRC )@@G@@UE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C RD )@@G@@@[@]@@C @G@]@@ COMPLEX DIFVN1,DIFVN2,DIFVN3,DIFVI1,DIFVI2,DIFVIRE )@@G@@3,DSGO2,DSGM2, @G@]@@ 1 DSGMU2,DSGPI2,DSCB1,DSCB1R,DSCJE1,DSCJCRF )@@G@@1,DISTO1,DISTO2,DISTO3, @G@]@@ 2 DSGMO2,DGM2O3,DGMO23,BEW,CEW,BCW,RG )@@G@@BE2W,CE2W,BC2W,BEW2,CEW2, @G@]@@ 3 BCW2,BEW12,CEW12,BCW12,DSCDRH )@@G@@B1,DSCDJ1,DSG2,CVABE,CVABC,CVACE, @^@]@@ 4 CVOUT,CVDIST @ @]@@RI )@@G@@ DIMENSION DISTIT(4) @ @]@@ DIMENSION VDO(2,12) @^@]@@RJ )@@G@@ COMPLEX CVDO(12) @A@]@@ EQUIVALENCE (CVDO(1),VDO(1,1))@G@]@@RK )@@G@@ DATA DISTIT / 8HDISTORTI, 8HON ANALY, 8HSIS , 8H / RL )@@G@@@[@]@@C @[@]@@C @^@]@@ ICVW1=(LD1+1)/2 @^@]@@ ICV2W1RM )@@G@@=ICVW1+NSTOP@^@]@@ ICVW2=ICV2W1+NSTOP@^@]@@ ICVW12=ICVW2+NSTOPRN )@@G@@@ @]@@ ICVADJ=ICVW12+NSTOP @#@]@@ IPRNT=0 @ @]@@ RO )@@G@@IF (ICALC.GE.2) GO TO 10@ @]@@ IDNP=NODPLC(IDIST+2) @ @]@@ RP )@@G@@IDNN=NODPLC(IDIST+3) @ @]@@ LOCV=NODPLC(IDIST+1) @ @]@@ RQ )@@G@@RLOAD=1.0/VALUE(LOCV+1) @]@]@@ KNTR=1@ @]@@ 10 IF (IDPRT.EQ.0) GORR )@@G@@ TO 30@A@]@@ IF (KNTR.GT.ICALC) GO TO 30 @#@]@@ IPRNT=1 RS )@@G@@@^@]@@ KNTR=KNTR+IDPRT @A@]@@ CALL TITLE(0,LWIDTH,1,DISTIT) RT )@@G@@@A@]@@ 30 FREQ1=REAL(CVALUE(LOCO+1)) @^@]@@ FREQ2=SKW2*FREQ1 RU )@@G@@@D@]@@ CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW1+1),NSTOP)@D@]@@ RV )@@G@@CVOUT=CVALUE(ICVW1+IDNP)-CVALUE(ICVW1+IDNN) @A@]@@ CALL MAGPHS(RW )@@G@@CVOUT,OMAG,OPHASE)@[@]@@C @A@]@@C BEGIN THE DISTORTION ANALYSIS RX )@@G@@@[@]@@C @^@]@@ DO 1000 KDISTO=1,7@^@]@@ CVDIST=(0.0,0.0) RY )@@G@@@D@]@@ GO TO (1000,110,120,130,140,160,170),KDISTO @^@]@@ 110 RZ )@@G@@FREQD=2.0*FREQ1 @C@]@@ ARG=SQRT(2.0*RLOAD*REFPRL)/(OMAG*OMAG) SA )@@G@@@A@]@@ IF (IPRNT.EQ.0) GO TO 200 @C@]@@ WRITE (6,111) FREQSB )@@G@@1,FREQD,OMAG,OPHASE @G@]@@ 111 FORMAT (///5X,*2ND HARMONIC DISTORTISC )@@G@@ON*,30X,*FREQ1 = *,1PE9.2, @F@]@@ 1 * HZ*//5X,*DISTORTION FREQSD )@@G@@UENCY *,E9.2,* HZ*,16X, @B@]@@ 2 *MAG *,E9.3,3X,*PHS *,0PF7.SE )@@G@@2) @#@]@@ GO TO 200 @^@]@@ 120 FREQD=3.0*FREQ1 @C@]@@ SF )@@G@@ARG=2.0*RLOAD*REFPRL/(OMAG*OMAG*OMAG) @A@]@@ IF (IPRNT.EQ.0) GOSG )@@G@@ TO 200 @C@]@@ WRITE (6,121) FREQ1,FREQD,OMAG,OPHASE @G@]@@SH )@@G@@ 121 FORMAT (1H1,4X,*3RD HARMONIC DISTORTION*,30X,*FREQ1 = *,1PE9.2, SI )@@G@@@F@]@@ 1 * HZ*//5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X, SJ )@@G@@@B@]@@ 2 *MAG *,E9.3,3X,*PHS *,0PF7.2) @#@]@@ GO TO 200 SK )@@G@@@#@]@@ 130 FREQD=FREQ2 @#@]@@ GO TO 200 @^@]@@ 140 FREQD=FREQ1-SL )@@G@@FREQ2 @D@]@@ ARG=SQRT(2.0*RLOAD*REFPRL)*SPW2/(OMAG*OMAG) @A@]@@SM )@@G@@ IF (IPRNT.EQ.0) GO TO 200 @F@]@@ WRITE (6,151) FREQ1,FREQSN )@@G@@2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @G@]@@ 151 FORMAT (1H1,4X,*2ND ORDESO )@@G@@R INTERMODULATION DIFFERENCE COMPONENT*, @F@]@@ 1 7X,*FREQ1 = *,1SP )@@G@@PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*// @E@]@@ 2 5X,*DISTORTION SQ )@@G@@FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@]@@ 3 E9.3,3X,*PHS *,0PF7.2SR )@@G@@,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@]@@ GO TO 200 @^@]@@ 160 SS )@@G@@FREQD=FREQ1+FREQ2 @D@]@@ ARG=SQRT(2.0*RLOAD*REFPRL)*SPW2/(OMAG*OMAGST )@@G@@) @A@]@@ IF (IPRNT.EQ.0) GO TO 200 @F@]@@ WRITE (6,161SU )@@G@@) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @F@]@@ 161 FORMAT (1H1,SV )@@G@@4X,*2ND ORDER INTERMODULATION SUM COMPONENT*, @F@]@@ 1 14X,*FREQSW )@@G@@1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*//@E@]@@ 2 5X,*DISTOSX )@@G@@RTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@]@@ 3 E9.3,3X,*PHS *,SY )@@G@@0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@]@@ GO TO 200 @ @]@@SZ )@@G@@ 170 FREQD=2.0*FREQ1-FREQ2 @C@]@@ ARG=2.0*RLOAD*REFPRL*SPW2/(OMATA )@@G@@G*OMAG*OMAG)@A@]@@ IF (IPRNT.EQ.0) GO TO 200 @F@]@@ WRITE TB )@@G@@(6,171) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @G@]@@ 171 FORMATTC )@@G@@ (1H1,4X,*3RD ORDER INTERMODULATION DIFFERENCE COMPONENT*, @F@]@@ 1TD )@@G@@ 7X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*// @E@]@@ 2TE )@@G@@ 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@]@@ 3 E9.TF )@@G@@3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @[@]@@C @ @]@@TG )@@G@@C LOAD AND DECOMPOSE Y MATRIX@[@]@@C @^@]@@ 200 OMEGA=TWOPI*FREQD TH )@@G@@@#@]@@ IGOOF=0 @#@]@@ CALL ACLOAD @#@]@@ CALL ACDCMP TI )@@G@@@A@]@@ IF (IGOOF.EQ.0) GO TO 220 @A@]@@ WRITE (6,211) IGOOTJ )@@G@@F,FREQD @G@]@@ 211 FORMAT(^0WARNING: UNDERFLOW ^,I4,^ TIME(S) IN DTK )@@G@@ISTORTION ANALYSIS@A@]@@ 1 AT FREQ = ^,1PE9.3,^ HZ^) @#@]@@ TL )@@G@@IGOOF=0 @A@]@@ 220 IF (KDISTO.EQ.4) GO TO 710 @[@]@@C @ @]@@TM )@@G@@C OBTAIN ADJOINT SOLUTION @[@]@@C @B@]@@ CALL ZERO16(CVALUETN )@@G@@(LVN+1),NSTOP) @ @]@@ CVALUE(LVN+IDNP)=-1.0 @ @]@@ CVALUETO )@@G@@(LVN+IDNN)=+1.0 @#@]@@ CALL ACASOL @ @]@@ CVALUE(LVN+1)=(0.0TP )@@G@@,0.0) @E@]@@ CALL COPY16(CVALUE(LVN+1),CVALUE(ICVADJ+1),NSTOP) TQ )@@G@@@B@]@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) @[@]@@C @]@]@@C BJTTR )@@G@@S @[@]@@C @A@]@@ IF (JELCNT(12).EQ.0) GO TO 500@#@]@@ TS )@@G@@ITITLE=0 @G@]@@ 301 FORMAT (////1X,*BJT DISTORTION COMPONENTS*//1X,*TT )@@G@@NAME*,11X,*GM*, @G@]@@ 1 8X,*GPI*,7X,*GO*,8X,*GMU*,6X,*GMO2*,7X,TU )@@G@@*CB*,8X,*CBR*,7X,*CJE*, @ @]@@ 2 7X,*CJC*,6X,*TOTAL*) @G@]@@ 311 TV )@@G@@FORMAT (////1X,*BJT DISTORTION COMPONENTS*//1X,*NAME*,11X,*GM*, @G@]@@TW )@@G@@ 1 8X,*GPI*,7X,*GO*,8X,*GMU*,6X,*GMO2*,7X,*CB*,8X,*CBR*,7X,*CJE*, TX )@@G@@@D@]@@ 2 7X,*CJC*,6X,*GM203*,5X,*GMO23*,5X,*TOTAL*) @^@]@@ 320 TY )@@G@@LOC=LOCATE(12) @ @]@@ 330 IF (LOC.EQ.0) GO TO 500 @^@]@@ LOCV=NTZ )@@G@@ODPLC(LOC+1)@ @]@@ LOCT=LX0+NODPLC(LOC+22) @ @]@@ LOCD=LD0+NODUA )@@G@@PLC(LOC+23) @ @]@@ NODE1=NODPLC(LOC+5) @ @]@@ NODE2=NODPLCUB )@@G@@(LOC+6) @ @]@@ NODE3=NODPLC(LOC+7) @^@]@@ CJE1=VALUE(LUC )@@G@@OCD) @^@]@@ CJE2=VALUE(LOCD+1)@^@]@@ CJC1=VALUE(LOCD+2)@^@]@@UD )@@G@@ CJC2=VALUE(LOCD+3)@^@]@@ GO2=VALUE(LOCD+4) @^@]@@ GMO2=VUE )@@G@@ALUE(LOCD+5)@^@]@@ GM2=VALUE(LOCD+6) @^@]@@ GMU2=VALUE(LOCD+7)UF )@@G@@@^@]@@ GPI2=VALUE(LOCD+8)@^@]@@ CB1=VALUE(LOCD+11)@ @]@@ UG )@@G@@CB1R=VALUE(LOCD+12) @^@]@@ GO3=VALUE(LOCD+13)@ @]@@ GMO23=UH )@@G@@VALUE(LOCD+14) @ @]@@ GM2O3=VALUE(LOCD+15) @^@]@@ GM3=VAUI )@@G@@LUE(LOCD+16)@ @]@@ GMU3=VALUE(LOCD+17) @ @]@@ GPI3=VALUE(LUJ )@@G@@OCD+18) @^@]@@ CB2=VALUE(LOCD+19)@ @]@@ CB2R=VALUE(LOCD+20UK )@@G@@) @D@]@@ BEW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1+NODE3) @D@]@@UL )@@G@@ CEW=CVALUE(ICVW1+NODE1)-CVALUE(ICVW1+NODE3) @D@]@@ BCW=CVUM )@@G@@ALUE(ICVW1+NODE2)-CVALUE(ICVW1+NODE1) @A@]@@ IF (KDISTO.EQ.2) GUN )@@G@@O TO 370 @D@]@@ BE2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE3) UO )@@G@@@D@]@@ CE2W=CVALUE(ICV2W1+NODE1)-CVALUE(ICV2W1+NODE3) @D@]@@ UP )@@G@@BC2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE1) @A@]@@ IF (KDISTO.EUQ )@@G@@Q.3) GO TO 380 @D@]@@ BEW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODEUR )@@G@@3) @D@]@@ CEW2=CVALUE(ICVW2+NODE1)-CVALUE(ICVW2+NODE3) @D@]@@US )@@G@@ BCW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODE1) @A@]@@ IF (KDUT )@@G@@ISTO.EQ.5) GO TO 390 @A@]@@ IF (KDISTO.EQ.6) GO TO 400 @D@]@@UU )@@G@@ BEW12=CVALUE(ICVW12+NODE2)-CVALUE(ICVW12+NODE3) @D@]@@ CEW12=UV )@@G@@CVALUE(ICVW12+NODE1)-CVALUE(ICVW12+NODE3) @D@]@@ BCW12=CVALUE(ICVW1UW )@@G@@2+NODE2)-CVALUE(ICVW12+NODE1) @#@]@@ GO TO 410 @[@]@@C @A@]@@UX )@@G@@C CALCULATE HD2 CURRENT GENERATORS @[@]@@C @^@]@@ 370 DIFVN1=0.5*CUY )@@G@@EW*CEW@^@]@@ DIFVN2=0.5*BEW*BEW@^@]@@ DIFVN3=0.5*BCW*BCW@ @]@@UZ )@@G@@ DSGMO2=GMO2*0.5*BEW*CEW @#@]@@ GO TO 420 @[@]@@C @A@]@@VA )@@G@@C CALCULATE HD3 CURRENT GENERATORS @[@]@@C @ @]@@ 380 DIFVI1=0.50*VB )@@G@@CEW*CE2W @ @]@@ DIFVN1=0.25*CEW*CEW*CEW @ @]@@ DIFVI2=0.50*VC )@@G@@BEW*BE2W @ @]@@ DIFVN2=0.25*BEW*BEW*BEW @ @]@@ DIFVI3=0.50*VD )@@G@@BCW*BC2W @ @]@@ DIFVN3=0.25*BCW*BCW*BCW @B@]@@ DSGMO2=GMO2*VE )@@G@@(BEW*CE2W+BE2W*CEW)*0.5 @#@]@@ GO TO 430 @[@]@@C @A@]@@C CALVF )@@G@@CULATE IM2D CURRENT GENERATORS@[@]@@C @ @]@@ 390 DIFVN1=CEW*CONJG(CVG )@@G@@EW2) @ @]@@ DIFVN2=BEW*CONJG(BEW2) @ @]@@ DIFVN3=BCW*CONJG(BVH )@@G@@CW2) @E@]@@ DSGMO2=GMO2*0.5*(BEW*CONJG(CEW2)+CEW*CONJG(BEW2)) VI )@@G@@@#@]@@ GO TO 420 @[@]@@C @A@]@@C CALCULATE IM2S CURRENT GENEVJ )@@G@@RATORS@[@]@@C @^@]@@ 400 DIFVN1=CEW*CEW2 @^@]@@ DIFVN2=BEW*BVK )@@G@@EW2 @^@]@@ DIFVN3=BCW*BCW2 @B@]@@ DSGMO2=GMO2*0.5*(BEW*CEWVL )@@G@@2+BEW2*CEW) @#@]@@ GO TO 420 @[@]@@C @A@]@@C CALCULATE IM3 CVM )@@G@@URRENT GENERATORS @[@]@@C @C@]@@ 410 DIFVI1=0.5*(CE2W*CONJG(CEW2)+CVN )@@G@@EW*CEW12) @C@]@@ DIFVI2=0.5*(BE2W*CONJG(BEW2)+BEW*BEW12) @C@]@@VO )@@G@@ DIFVI3=0.5*(BC2W*CONJG(BCW2)+BCW*BCW12) @B@]@@ DIFVN1=CEW*CVP )@@G@@EW*CONJG(CEW2)*0.75 @B@]@@ DIFVN2=BEW*BEW*CONJG(BEW2)*0.75 VQ )@@G@@@B@]@@ DIFVN3=BCW*BCW*CONJG(BCW2)*0.75 @G@]@@ DSGMO2=GMO2*VR )@@G@@0.5*(CONJG(BEW2)*CE2W+BEW*CEW12+CONJG(CEW2)*BE2W+ @^@]@@ 1 CEWVS )@@G@@*BEW12) @#@]@@ GO TO 430 @[@]@@C @^@]@@ 420 DSGO2=GO2*DIVT )@@G@@FVN1 @^@]@@ DSGM2=GM2*DIFVN2 @^@]@@ DSGMU2=GMU2*DIFVN3@^@]@@VU )@@G@@ DSGPI2=GPI2*DIFVN2@E@]@@ DSCB1=0.5*CB1*OMEGA*CMPLX(-AIMAG(DIFVV )@@G@@VN2),REAL(DIFVN2))@F@]@@ DSCB1R=0.5*CB1R*OMEGA*CMPLX(-AIMAG(DIFVN3)VW )@@G@@,REAL(DIFVN3)) @F@]@@ DSCJE1=0.5*CJE1*OMEGA*CMPLX(-AIMAG(DIFVN2)VX )@@G@@,REAL(DIFVN2)) @F@]@@ DSCJC1=0.5*CJC1*OMEGA*CMPLX(-AIMAG(DIFVN3)VY )@@G@@,REAL(DIFVN3)) @#@]@@ GO TO 440 @[@]@@C @B@]@@ 430 DSGO2=VZ )@@G@@2.0*GO2*DIFVI1+GO3*DIFVN1 @B@]@@ DSGM2=2.0*GM2*DIFVI2+GM3*DIFVNWA )@@G@@2 @B@]@@ DSGMU2=2.0*GMU2*DIFVI3+GMU3*DIFVN3 @B@]@@ DSGPI2WB )@@G@@=2.0*GPI2*DIFVI2+GPI3*DIFVN2 @C@]@@ DSCB1=OMEGA*(CB1*DIFVI2+CB2*DIWC )@@G@@FVN2/3.0) @C@]@@ DSCB1=CMPLX(-AIMAG(DSCB1),REAL(DSCB1)) @C@]@@WD )@@G@@ DSCB1R=OMEGA*(CB1R*DIFVI3+CB2R*DIFVN3/3.0)@C@]@@ DSCB1R=CMPLXWE )@@G@@(-AIMAG(DSCB1R),REAL(DSCB1R)) @C@]@@ DSCJE1=OMEGA*(CJE1*DIFVI2+CJE2WF )@@G@@*DIFVN2/3.0)@C@]@@ DSCJE1=CMPLX(-AIMAG(DSCJE1),REAL(DSCJE1)) @C@]@@WG )@@G@@ DSCJC1=OMEGA*(CJC1*DIFVI3+CJC2*DIFVN3/3.0)@C@]@@ DSCJC1=CMPLXWH )@@G@@(-AIMAG(DSCJC1),REAL(DSCJC1)) @[@]@@C @D@]@@C DETERMINE CONTRIBUTIOWI )@@G@@N OF EACH DISTORTION SOURCE @[@]@@C @D@]@@ 440 CVABE=CVALUE(ICVADWJ )@@G@@J+NODE2)-CVALUE(ICVADJ+NODE3) @D@]@@ CVABC=CVALUE(ICVADJ+NODE2)-CVAWK )@@G@@LUE(ICVADJ+NODE1) @D@]@@ CVACE=CVALUE(ICVADJ+NODE1)-CVALUE(ICVADJ+NWL )@@G@@ODE3) @A@]@@ DISTO1=DSGM2+DSGO2+DSGMO2 @A@]@@ DISTO2=DSGPIWM )@@G@@2+DSCB1+DSCJE1 @A@]@@ DISTO3=DSGMU2+DSCB1R+DSCJC1 @ @]@@ WN )@@G@@CVDO(1)=DSGM2*CVACE*ARG @ @]@@ CVDO(2)=DSGPI2*CVABE*ARG@ @]@@ WO )@@G@@CVDO(3)=DSGO2*CVACE*ARG @ @]@@ CVDO(4)=DSGMU2*CVABC*ARG@ @]@@ WP )@@G@@CVDO(5)=DSGMO2*CVACE*ARG@ @]@@ CVDO(6)=DSCB1*CVABE*ARG @ @]@@ WQ )@@G@@CVDO(7)=DSCB1R*CVABC*ARG@ @]@@ CVDO(8)=DSCJE1*CVABE*ARG@ @]@@ WR )@@G@@CVDO(9)=DSCJC1*CVABC*ARG@A@]@@ IF (KDISTO.EQ.3) GO TO 450 @A@]@@WS )@@G@@ IF (KDISTO.EQ.7) GO TO 460 @G@]@@ CVDO(10)=CVDO(1)+CVDO(2)WT )@@G@@+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @^@]@@ 1 CVDO(8)+CVDO(9)WU )@@G@@@ @]@@ CVDIST=CVDIST+CVDO(10) @A@]@@ IF (IPRNT.EQ.0) GO TO 48WV )@@G@@0 @^@]@@ DO 445 J=1,10 @A@]@@ CALL MAGPHS(CVDO(J),XMAGWW )@@G@@,XPHS)@ @]@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@]@@ 445 CONTINUE @A@]@@WX )@@G@@ IF (ITITLE.EQ.0) WRITE (6,301)@#@]@@ ITITLE=1 @D@]@@ WY )@@G@@WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,10) @A@]@@ 446 FORMAT(1H0,AWZ )@@G@@8,*MAG*,1P12E10.3)@B@]@@ WRITE (6,447) (VDO(2,J),J=1,10) @B@]@@XA )@@G@@ 447 FORMAT(9X,*PHS*,12(1X,F7.2,2X)) @#@]@@ GO TO 480 @A@]@@XB )@@G@@ 450 DGM2O3=GM2O3*CEW*BEW*BEW*0.25 @A@]@@ DGMO23=GMO23*BEW*CEW*CEWXC )@@G@@*0.25 @#@]@@ GO TO 470 @G@]@@ 460 DGM2O3=GM2O3*(0.5*BEW*CONJG(BEXD )@@G@@W2)*CEW+0.25*BEW*BEW*CONJG(CEW2)) @G@]@@ DGMO23=GMO23*(0.5*CEW*COXE )@@G@@NJG(CEW2)*BEW+0.25*CEW*CEW*CONJG(BEW2)) @A@]@@ 470 DISTO1=DISTO1+DGM2XF )@@G@@O3+DGMO23 @A@]@@ CVDO(10)=DGM2O3*CVACE*ARG @A@]@@ CVDO(1XG )@@G@@1)=DGMO23*CVACE*ARG @G@]@@ CVDO(12)=CVDO(1)+CVDO(2)+CVDO(3)+CVDXH )@@G@@O(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @B@]@@ 1 CVDO(8)+CVDO(9)+CVDO(10)+CVXI )@@G@@DO(11)@ @]@@ CVDIST=CVDIST+CVDO(12) @A@]@@ IF (IPRNT.EQ.0) GOXJ )@@G@@ TO 480 @^@]@@ DO 475 J=1,12 @A@]@@ CALL MAGPHS(CVDO(JXK )@@G@@),XMAG,XPHS)@ @]@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@]@@ 475 CONTINUE XL )@@G@@@A@]@@ IF (ITITLE.EQ.0) WRITE (6,311)@#@]@@ ITITLE=1 @D@]@@XM )@@G@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,12) @B@]@@ WRITE XN )@@G@@(6,447) (VDO(2,J),J=1,12) @E@]@@ 480 CVALUE(LVN+NODE1)=CVALUE(LVN+NXO )@@G@@ODE1)-DISTO1+DISTO3 @E@]@@ CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)-XP )@@G@@DISTO2-DISTO3 @E@]@@ CVALUE(LVN+NODE3)=CVALUE(LVN+NODE3)+DISTO1XQ )@@G@@+DISTO2 @^@]@@ LOC=NODPLC(LOC) @#@]@@ GO TO 330 @[@]@@XR )@@G@@C @^@]@@C JUNCTION DIODES @[@]@@C @A@]@@ 500 IF (JELCNT(1XS )@@G@@1).EQ.0) GO TO 700@#@]@@ ITITLE=0 @F@]@@ 501 FORMAT (////1X,*DIXT )@@G@@ODE DISTORTION COMPONENTS*//1X,*NAME*, @C@]@@ 1 11X,*GEQ*,7X,*CXU )@@G@@B*,8X,*CJ*,7X,*TOTAL*) @^@]@@ 510 LOC=LOCATE(11) @ @]@@ 520 IF (LOXV )@@G@@C.EQ.0) GO TO 700 @^@]@@ LOCV=NODPLC(LOC+1)@ @]@@ NODE1=NODPLCXW )@@G@@(LOC+2) @ @]@@ NODE2=NODPLC(LOC+3) @ @]@@ NODE3=NODPLCXX )@@G@@(LOC+4) @^@]@@ LOCM=NODPLC(LOC+5)@ @]@@ LOCM=NODPLC(LOCM+1XY )@@G@@) @ @]@@ LOCT=LX0+NODPLC(LOC+11) @ @]@@ LOCD=LD0+NODPLC(LOXZ )@@G@@C+12) @^@]@@ CDJ1=VALUE(LOCD) @^@]@@ CDJ2=VALUE(LOCD+1)@^@]@@YA )@@G@@ CDB1=VALUE(LOCD+3)@^@]@@ GEQ2=VALUE(LOCD+4)@^@]@@ GEQ3=VYB )@@G@@ALUE(LOCD+5)@^@]@@ CDB2=VALUE(LOCD+6)@D@]@@ BEW=CVALUE(ICVW1+NYC )@@G@@ODE3)-CVALUE(ICVW1+NODE2) @A@]@@ IF (KDISTO.EQ.2) GO TO 540 YD )@@G@@@D@]@@ BE2W=CVALUE(ICV2W1+NODE3)-CVALUE(ICV2W1+NODE2) @A@]@@ YE )@@G@@IF (KDISTO.EQ.3) GO TO 550 @D@]@@ BEW2=CVALUE(ICVW2+NODE3)-CVALUYF )@@G@@E(ICVW2+NODE2) @A@]@@ IF (KDISTO.EQ.5) GO TO 560 @A@]@@ YG )@@G@@IF (KDISTO.EQ.6) GO TO 570 @D@]@@ BEW12=CVALUE(ICVW12+NODE3)-CVAYH )@@G@@LUE(ICVW12+NODE2) @#@]@@ GO TO 580 @[@]@@C @B@]@@C CALCULAYI )@@G@@TE HD2 CURRENT GENERATORS @[@]@@C @^@]@@ 540 DIFVN1=0.5*BEW*BEWYJ )@@G@@@#@]@@ GO TO 590 @[@]@@C @B@]@@C CALCULATE HD3 CURRENT GENYK )@@G@@ERATORS @[@]@@C @ @]@@ 550 DIFVI1=0.5*BEW*BE2W @ @]@@ YL )@@G@@DIFVN1=0.25*BEW*BEW*BEW @#@]@@ GO TO 600 @[@]@@C @B@]@@C CYM )@@G@@ALCULATE IM2D CURRENT GENERATORS @[@]@@C @ @]@@ 560 DIFVN1=BEW*CYN )@@G@@ONJG(BEW2) @#@]@@ GO TO 590 @[@]@@C @B@]@@C CALCULATE IM2YO )@@G@@S CURRENT GENERATORS @[@]@@C @^@]@@ 570 DIFVN1=BEW*BEW2 @#@]@@YP )@@G@@ GO TO 590 @[@]@@C @B@]@@C CALCULATE IM3 CURRENT GENERATORYQ )@@G@@S @[@]@@C @C@]@@ 580 DIFVI1=0.5*(BE2W*CONJG(BEW2)+BEW*BEW12) YR )@@G@@@B@]@@ DIFVN1=BEW*BEW*CONJG(BEW2)*0.75 @#@]@@ GO TO 600 YS )@@G@@@^@]@@ 590 DSG2=GEQ2*DIFVN1 @F@]@@ DSCDB1=0.5*CDB1*OMEGA*CMPLX(-AYT )@@G@@IMAG(DIFVN1),REAL(DIFVN1)) @F@]@@ DSCDJ1=0.5*CDJ1*OMEGA*CMPLX(-AYU )@@G@@IMAG(DIFVN1),REAL(DIFVN1)) @#@]@@ GO TO 610 @[@]@@C @B@]@@YV )@@G@@ 600 DSG2=2.0*GEQ2*DIFVI1+GEQ3*DIFVN1 @C@]@@ DSCDB1=OMEGA*(CDB1YW )@@G@@*DIFVI1+CDB2*DIFVN1/3.0)@C@]@@ DSCDB1=CMPLX(-AIMAG(DSCDB1),REAL(DSCYX )@@G@@DB1)) @C@]@@ DSCDJ1=OMEGA*(CDJ1*DIFVI1+CDJ2*DIFVN1/3.0)@C@]@@ YY )@@G@@DSCDJ1=CMPLX(-AIMAG(DSCDJ1),REAL(DSCDJ1)) @[@]@@C @D@]@@C DETERMINEYZ )@@G@@ CONTRIBUTION OF EACH DISTORTION SOURCE @[@]@@C @D@]@@ 610 CVABE=ZA )@@G@@CVALUE(ICVADJ+NODE3)-CVALUE(ICVADJ+NODE2) @A@]@@ DISTO1=DSG2+DSCDB1ZB )@@G@@+DSCDJ1 @ @]@@ CVDO(1)=DSG2*CVABE*ARG @ @]@@ CVDO(2)=DSCDZC )@@G@@B1*CVABE*ARG@ @]@@ CVDO(3)=DSCDJ1*CVABE*ARG@B@]@@ CVDO(4)=CVDOZD )@@G@@(1)+CVDO(2)+CVDO(3) @ @]@@ CVDIST=CVDIST+CVDO(4) @A@]@@ ZE )@@G@@IF (IPRNT.EQ.0) GO TO 680 @#@]@@ DO 670 J=1,4@A@]@@ CALL MZF )@@G@@AGPHS(CVDO(J),XMAG,XPHS)@ @]@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@]@@ 670 ZG )@@G@@CONTINUE @A@]@@ IF (ITITLE.EQ.0) WRITE (6,501)@#@]@@ ITITLEZH )@@G@@=1 @C@]@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,4)@A@]@@ ZI )@@G@@WRITE (6,447) (VDO(2,J),J=1,4)@C@]@@ 680 CVALUE(LVN+NODE2)=CVALUE(LVN+NZJ )@@G@@ODE2)+DISTO1@C@]@@ CVALUE(LVN+NODE3)=CVALUE(LVN+NODE3)-DISTO1@^@]@@ZK )@@G@@ LOC=NODPLC(LOC) @#@]@@ GO TO 520 @[@]@@C @C@]@@C OBTZL )@@G@@AIN TOTAL DISTORTION SOLUTION IF NECESSARY@[@]@@C @D@]@@ 700 GO TO ZM )@@G@@(1000,710,790,710,710,840,860),KDISTO @A@]@@ 710 IF (KDISTO.EQ.4) GZN )@@G@@O TO 730 @^@]@@ DO 720 I=2,NSTOP @^@]@@ J=NODPLC(ISWAP+I) ZO )@@G@@@A@]@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@]@@ 720 CONTINUE @D@]@@ZP )@@G@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@#@]@@ 730 CALL AZQ )@@G@@CSOL @ @]@@ CVALUE(LVN+1)=(0.0,0.0) @[@]@@C @B@]@@C STORE SOLZR )@@G@@UTION, PRINT AND STORE ANSWERS@[@]@@C @D@]@@ 760 GO TO (1000,770,79ZS )@@G@@0,800,820,840,860),KDISTO @E@]@@ 770 CALL COPY16(CVALUE(LVN+1),CVALZT )@@G@@UE(ICV2W1+1),NSTOP) @B@]@@ CALL MAGPHS(CVDIST,O2MAG,O2PHS) ZU )@@G@@@A@]@@ IF (IPRNT.EQ.0) GO TO 900 @ @]@@ O2LOG=20.0*ALOG10(ZV )@@G@@O2MAG)@B@]@@ WRITE (6,781) O2MAG,O2PHS,O2LOG @G@]@@ 781 FORMATZW )@@G@@ (///5X,*HD2 MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @]@@ 1ZX )@@G@@ 5X,*= *,F7.2,* DB*)@#@]@@ GO TO 900 @B@]@@ 790 CALL MAGPHS(ZY )@@G@@CVDIST,O3MAG,O3PHS) @A@]@@ IF (IPRNT.EQ.0) GO TO 900 @ @]@@ZZ )@@G@@ O3LOG=20.0*ALOG10(O3MAG)@B@]@@ WRITE (6,791) O3MAG,O3PHS,O3LOAA )@@G@@G @G@]@@ 791 FORMAT (///5X,*HD3 MAGNITUDE *,1PE10.3,5X,*PHASE AB )@@G@@ *,0PF7.2, @ @]@@ 1 5X,*= *,F7.2,* DB*)@#@]@@ GO TO 900 AC )@@G@@@D@]@@ 800 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW2+1),NSTOP)@D@]@@ AD )@@G@@CVOUT=CVALUE(ICVW2+IDNP)-CVALUE(ICVW2+IDNN) @B@]@@ CALL MAGPHS(AE )@@G@@CVOUT,OW2MAG,OW2PHS) @#@]@@ GO TO 1000 @E@]@@ 820 CALL COPY16(AF )@@G@@CVALUE(LVN+1),CVALUE(ICVW12+1),NSTOP) @B@]@@ 840 CALL MAGPHS(CVDISTAG )@@G@@,O12MAG,O12PHS) @A@]@@ IF (IPRNT.EQ.0) GO TO 900 @A@]@@ AH )@@G@@O12LOG=20.0*ALOG10(O12MAG) @A@]@@ IF (KDISTO.EQ.6) GO TO 850 AI )@@G@@@B@]@@ WRITE (6,841) O12MAG,O12PHS,O12LOG @G@]@@ 841 FORMAT (///5AJ )@@G@@X,*IM2D MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @]@@ 1 5X,AK )@@G@@*= *,F7.2,* DB*)@#@]@@ GO TO 900 @B@]@@ 850 WRITE (6,851) O12MAL )@@G@@AG,O12PHS,O12LOG @G@]@@ 851 FORMAT (///5X,*IM2S MAGNITUDE *,1PE10.AM )@@G@@3,5X,*PHASE *,0PF7.2, @ @]@@ 1 5X,*= *,F7.2,* DB*)@#@]@@ AN )@@G@@GO TO 900 @B@]@@ 860 CALL MAGPHS(CVDIST,O21MAG,O21PHS) @A@]@@ AO )@@G@@IF (IPRNT.EQ.0) GO TO 900 @A@]@@ O21LOG=20.0*ALOG10(O21MAG) AP )@@G@@@B@]@@ WRITE (6,861) O21MAG,O21PHS,O21LOG @G@]@@ 861 FORMAT (///5AQ )@@G@@X,*IM3 MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @]@@ 1 5X,AR )@@G@@*= *,F7.2,* DB*)@D@]@@ CMA=ABS(4.0*O21MAG*COS((O21PHS-OPHASE)/RADAS )@@G@@)) @ @]@@ CMA=AMAX1(CMA,1.0E-20) @D@]@@ CMP=ABS(4.0*O21MAGAT )@@G@@*SIN((O21PHS-OPHASE)/RAD)) @ @]@@ CMP=AMAX1(CMP,1.0E-20) @ @]@@AU )@@G@@ CMALOG=20.0*ALOG10(CMA) @ @]@@ CMPLOG=20.0*ALOG10(CMP) @^@]@@AV )@@G@@ WRITE (6,866) @F@]@@ 866 FORMAT (////5X,*APPROXIMATE CROSS MOAW )@@G@@DULATION COMPONENTS*) @ @]@@ WRITE (6,871) CMA,CMALOG@G@]@@ 871 AX )@@G@@FORMAT (/5X,*CMA MAGNITUDE *,1PE10.3,24X,*= *,0PF7.2,* DB*)@ @]@@AY )@@G@@ WRITE (6,881) CMP,CMPLOG@G@]@@ 881 FORMAT (/5X,*CMP MAGNITUDEAZ )@@G@@ *,1PE10.3,24X,*= *,0PF7.2,* DB*)@[@]@@C @ @]@@C SAVE DISTORTIONBA )@@G@@ OUTPUTS @[@]@@C @^@]@@ 900 IFLAG=KDISTO+2 @A@]@@ IF (IFBB )@@G@@LAG.GE.7) IFLAG=IFLAG-1 @^@]@@ LOC=LOCATE(45) @ @]@@ 910 IF (LOBC )@@G@@C.EQ.0) GO TO 1000@C@]@@ IF (NODPLC(LOC+5).NE.IFLAG) GO TO 920 BD )@@G@@@^@]@@ ISEQ=NODPLC(LOC+4)@ @]@@ CVALUE(LOCO+ISEQ)=CVDIST@^@]@@BE )@@G@@ 920 LOC=NODPLC(LOC) @#@]@@ GO TO 910 @#@]@@ 1000 CONTINUE BF )@@G@@@[@]@@C @]@]@@C FINISHED @[@]@@C @]@]@@ 2000 RETURN@]@]@@ BG )@@G@@END @#@]@@ OVERLAY(7,0)@^@]@@ PROGRAM OVTPVT @[@]@@C BH )@@G@@@G@]@@C THIS ROUTINE GENERATES THE REQUESTED TABULAR LISTINGS OF ANABI )@@G@@LYSIS @E@]@@C RESULTS. IT CALLS PLOT TO GENERATE LINE-PRINTER PLOTS. BJ )@@G@@@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSBK )@@G@@AT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDBL )@@G@@ELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODBM )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEBN )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,BO )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZEBP )@@G@@R @G@]@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUBQ )@@G@@MNOD,NSTOP, @C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@BR )@@G@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, BS )@@G@@@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,BT )@@G@@@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /FLAGS/ IPRNTA,IPBU )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,IBV )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@]@@ COMMON /MISCEL/ APBW )@@G@@ROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NBX )@@G@@OPAGE @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KBY )@@G@@INEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@ COMMON /AC/ FSTARTBZ )@@G@@,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOISE,NOCA )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZIN,IPZCB )@@G@@ITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIMAT(4)CC )@@G@@@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG CD )@@G@@@G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPCE )@@G@@E(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @]@@ CF )@@G@@COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLECG )@@G@@X CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@CH )@@G@@C @#@]@@ COMPLEX CVAL@ @]@@ DIMENSION PRFORM(3) @ @]@@CI )@@G@@ DIMENSION SUBTIT(4,3) @G@]@@ DATA SUBTIT / 8HDC TRANS, 8HFECJ )@@G@@R CURV, 8HES , 8H , @G@]@@ 1 8HTRANSIENCK )@@G@@, 8HT ANALYS, 8HIS , 8H , @G@]@@ 2 8HACCL )@@G@@ ANALY, 8HSIS , 8H , 8H / @E@]@@ DATA PRFORM CM )@@G@@/ 8H(1PE11.3, 8H,2X,8E00, 8H.00) / @A@]@@ DATA APER,RPRN / 1CN )@@G@@H., 1H) / @[@]@@C @^@]@@ CALL SECOND(T1) @A@]@@ IF (ICCO )@@G@@ALC.LE.0) GO TO 1000 @#@]@@ CALL CRUNCH @A@]@@ IF (NOGO.LT.CP )@@G@@0) GO TO 1000 @[@]@@C @F@]@@C CONSTRUCT FORMAT STATEMENT TO BE CQ )@@G@@USED FOR PRINTING THE OUTPUTS @[@]@@C @ @]@@ IFRACT=MAX0(NUMDGTCR )@@G@@-1,0) @^@]@@ IFWDTH=IFRACT+9 @#@]@@ IPOS=15 @B@]@@ CS )@@G@@CALL ALFNUM(IFWDTH,PRFORM,IPOS) @B@]@@ CALL MOVE(PRFORM,IPOS,APCT )@@G@@ER,1,1) @#@]@@ IPOS=IPOS+1 @B@]@@ CALL ALFNUM(IFRACT,PRFORCU )@@G@@M,IPOS) @B@]@@ CALL MOVE(PRFORM,IPOS,RPRN,1,1) @[@]@@C CV )@@G@@@B@]@@ NOPRLN=MIN0(8,(LWIDTH-12)/IFWDTH) @[@]@@C @ @]@@ CW )@@G@@IF (MODE-2) 5,10,300 @ @]@@ 5 NUMOUT=JELCNT(41)+1 @#@]@@ CX )@@G@@GO TO 15 @ @]@@ 10 NUMOUT=JELCNT(42)+1 @[@]@@C @B@]@@C DC CY )@@G@@AND TRANSIENT ANALYSIS PRINTING @[@]@@C @ @]@@ 15 LOC=LOCATE(3CZ )@@G@@0+MODE) @ @]@@ 20 IF (LOC.EQ.0) GO TO 200 @B@]@@ KNTR=MIN0(NODA )@@G@@PRLN,NODPLC(LOC+3)) @ @]@@ IF (KNTR.LE.0) GO TO 120@C@]@@ DB )@@G@@CALL TITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@]@@ CALL SETPRN(LOC) DC )@@G@@@[@]@@C @^@]@@C GET BUFFER SPACE @[@]@@C @ @]@@ CALL GDD )@@G@@ETMEM(LOCX,NPOINT)@A@]@@ CALL GETMEM(LOCY,KNTR*NPOINT) @[@]@@C DE )@@G@@@^@]@@C INTERPOLATE OUTPUTS @[@]@@C @A@]@@ CALL NTRPL8(LOCX,LDF )@@G@@OCY,NUMPNT) @[@]@@C @#@]@@C PRINT OUTPUTS @[@]@@C @^@]@@ DG )@@G@@DO 100 I=1,NUMPNT @^@]@@ XVAR=VALUE(LOCX+I)@#@]@@ LOCYT=LOCY DH )@@G@@@^@]@@ DO 50 K=1,KNTR @ @]@@ YVAR(K)=VALUE(LOCYT+I) @^@]@@DI )@@G@@ LOCYT=LOCYT+NPOINT@#@]@@ 50 CONTINUE @C@]@@ WRITE (6,PRFDJ )@@G@@ORM) XVAR,(YVAR(K),K=1,KNTR) @#@]@@ 100 CONTINUE @^@]@@ WRITE DK )@@G@@(6,111) @#@]@@ 111 FORMAT(1HY) @^@]@@ CALL CLRMEM(LOCX) @^@]@@DL )@@G@@ CALL CLRMEM(LOCY) @^@]@@ 120 LOC=NODPLC(LOC) @#@]@@ GO TO DM )@@G@@20 @[@]@@C @B@]@@C DC AND TRANSIENT ANALYSIS PLOTTING @[@]@@DN )@@G@@C @ @]@@ 200 LOC=LOCATE(35+MODE) @ @]@@ 210 IF (LOC.EQ.0) GO TDO )@@G@@O 250 @^@]@@ KNTR=NODPLC(LOC+3)@ @]@@ IF (KNTR.LE.0) GO TO 220DP )@@G@@@^@]@@ LOCV=NODPLC(LOC+1)@C@]@@ CALL TITLE(1,LWIDTH,1,SUBTIT(1DQ )@@G@@,MODE)) @^@]@@ CALL SETPLT(LOC) @[@]@@C @^@]@@C GET BUDR )@@G@@FFER SPACE @[@]@@C @ @]@@ CALL GETMEM(LOCX,NPOINT)@A@]@@ DS )@@G@@CALL GETMEM(LOCY,KNTR*NPOINT) @[@]@@C @C@]@@C INTERPOLATE OUTPUTS ADT )@@G@@ND LOAD PLOT BUFFERS @[@]@@C @A@]@@ CALL NTRPL8(LOCX,LOCY,NUDU )@@G@@MPNT) @B@]@@ CALL PLOT(NUMPNT,LOCX,LOCY,LOCV) @^@]@@ CALL CDV )@@G@@LRMEM(LOCX) @^@]@@ CALL CLRMEM(LOCY) @^@]@@ 220 LOC=NODPLC(LOC) DW )@@G@@@#@]@@ GO TO 210 @[@]@@C @^@]@@C FOURIER ANALYSIS @[@]@@DX )@@G@@C @A@]@@ 250 IF (MODE.EQ.1) GO TO 1000 @A@]@@ IF (NFOUR.EQDY )@@G@@.0) GO TO 1000 @A@]@@ IF (NOGO.NE.0) GO TO 1000 @#@]@@ DZ )@@G@@CALL FOURAN @#@]@@ GO TO 1000 @[@]@@C @^@]@@C AC ANALYSIS PRIEA )@@G@@NTING @[@]@@C @C@]@@ 300 NUMOUT=JELCNT(43)+JELCNT(44)+JELCNT(45)+1 EB )@@G@@@^@]@@ DO 599 ID=33,35 @^@]@@ LOC=LOCATE(ID) @ @]@@ 320 EC )@@G@@IF (LOC.EQ.0) GO TO 599 @B@]@@ KNTR=MIN0(NOPRLN,NODPLC(LOC+3)) ED )@@G@@@ @]@@ IF (KNTR.LE.0) GO TO 595@C@]@@ CALL TITLE(1,LWIDTH,1,SUEE )@@G@@BTIT(1,MODE)) @^@]@@ CALL SETPRN(LOC) @[@]@@C @^@]@@C PRIEF )@@G@@NT AC OUTPUTS @[@]@@C @^@]@@ LOUT=(LOUTPT+1)/2 @^@]@@ EG )@@G@@DO 590 I=1,ICALC @A@]@@ XVAR=REAL(CVALUE(LOUT+1)) @^@]@@ EH )@@G@@DO 500 K=1,KNTR @#@]@@ ISEQ=ITAB(K)@ @]@@ ISEQ=NODPLC(ISEQ+4EI )@@G@@) @ @]@@ CVAL=CVALUE(LOUT+ISEQ) @^@]@@ KTYPE=ITYPE(K) EJ )@@G@@@C@]@@ GO TO (450,450,430,440,450,450), KTYPE @^@]@@ 430 YVAR(KEK )@@G@@)=REAL(CVAL)@#@]@@ GO TO 500 @ @]@@ 440 YVAR(K)=AIMAG(CVAL) EL )@@G@@@#@]@@ GO TO 500 @A@]@@ 450 CALL MAGPHS(CVAL,XMAG,XPHS) @C@]@@EM )@@G@@ GO TO (460,460,430,440,470,465), KTYPE @#@]@@ 460 YVAR(K)=XMAGEN )@@G@@@#@]@@ GO TO 500 @A@]@@ 465 YVAR(K)=20.0*ALOG10(XMAG) @#@]@@EO )@@G@@ GO TO 500 @#@]@@ 470 YVAR(K)=XPHS@#@]@@ 500 CONTINUE @^@]@@EP )@@G@@ LOUT=LOUT+NUMOUT @C@]@@ 580 WRITE (6,PRFORM) XVAR,(YVAR(K),K=1,KEQ )@@G@@NTR) @#@]@@ 590 CONTINUE @^@]@@ WRITE (6,111) @^@]@@ 595 ER )@@G@@LOC=NODPLC(LOC) @#@]@@ GO TO 320 @#@]@@ 599 CONTINUE @[@]@@ES )@@G@@C @^@]@@C AC ANALYSIS PLOTTING @[@]@@C @^@]@@ DO 760 ID=38ET )@@G@@,40 @^@]@@ LOC=LOCATE(ID) @ @]@@ 610 IF (LOC.EQ.0) GO TO 760 EU )@@G@@@^@]@@ KNTR=NODPLC(LOC+3)@ @]@@ IF (KNTR.LE.0) GO TO 750@^@]@@EV )@@G@@ LOCV=NODPLC(LOC+1)@C@]@@ CALL TITLE(1,LWIDTH,1,SUBTIT(1,MODE)EW )@@G@@) @^@]@@ CALL SETPLT(LOC) @[@]@@C @ @]@@ CALL GETMEM(EX )@@G@@LOCX,ICALC) @A@]@@ CALL GETMEM(LOCY,KNTR*ICALC) @[@]@@C @^@]@@EY )@@G@@C LOAD PLOT BUFFERS @[@]@@C @^@]@@ LOUT=(LOUTPT+1)/2 @^@]@@EZ )@@G@@ DO 710 I=1,ICALC @A@]@@ XVAR=REAL(CVALUE(LOUT+1)) @#@]@@FA )@@G@@ LOCYT=LOCY @^@]@@ DO 700 K=1,KNTR @#@]@@ ISEQ=ITAB(K)FB )@@G@@@ @]@@ ISEQ=NODPLC(ISEQ+4) @ @]@@ CVAL=CVALUE(LOUT+ISEQ) FC )@@G@@@^@]@@ KTYPE=ITYPE(K) @C@]@@ GO TO (670,670,650,660,670,670FD )@@G@@), KTYPE @^@]@@ 650 YVR=REAL(CVAL) @#@]@@ GO TO 695 @^@]@@FE )@@G@@ 660 YVR=AIMAG(CVAL) @#@]@@ GO TO 695 @A@]@@ 670 CALL MAGPHS(FF )@@G@@CVAL,XMAG,XPHS) @C@]@@ GO TO (680,680,650,660,690,685), KTYPE FG )@@G@@@^@]@@ 680 YVR=ALOG10(XMAG) @#@]@@ GO TO 695 @ @]@@ 685 YVR=20FH )@@G@@.0*ALOG10(XMAG) @#@]@@ GO TO 695 @#@]@@ 690 YVR=XPHS @^@]@@FI )@@G@@ 695 VALUE(LOCYT+I)=YVR@^@]@@ LOCYT=LOCYT+ICALC @#@]@@ 700 CONTINFJ )@@G@@UE @^@]@@ VALUE(LOCX+I)=XVAR@^@]@@ LOUT=LOUT+NUMOUT @#@]@@FK )@@G@@ 710 CONTINUE @B@]@@ CALL PLOT(ICALC,LOCX,LOCY,LOCV) @^@]@@FL )@@G@@ CALL CLRMEM(LOCX) @^@]@@ CALL CLRMEM(LOCY) @^@]@@ 750 LOC=NOFM )@@G@@DPLC(LOC) @#@]@@ GO TO 610 @#@]@@ 760 CONTINUE @[@]@@C FN )@@G@@@]@]@@C FINISHED @[@]@@C @ @]@@ 1000 CALL CLRMEM(LOUTPT) @^@]@@FO )@@G@@ CALL SECOND(T2) @A@]@@ RSTATS(11)=RSTATS(11)+T2-T1 @]@]@@FP )@@G@@ RETURN@]@]@@ END @B@]@@ SUBROUTINE NTRPL8(LOCX,LOCY,NUFQ )@@G@@MPNT) @[@]@@C @G@]@@C THIS ROUTINE INTERPOLATES THE ANALYSIS DATFR )@@G@@A TO OBTAIN THE VALUES @G@]@@C PRINTED AND/OR PLOTTED, USING LAGRANGIANFS )@@G@@ INTERPOLATION WITH A POLYNO- @^@]@@C MIAL OF DEGREE 2. @[@]@@C FT )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUFU )@@G@@MTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,FV )@@G@@INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILFW )@@G@@C,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWFX )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,FY )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@FZ )@@G@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, GA )@@G@@@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,GB )@@G@@@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /OUTINF/ STRING(1GC )@@G@@5),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINTGD )@@G@@,NUMOUT,KNTR,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ GE )@@G@@INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE GF )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @#@]@@ XVAR=XGG )@@G@@START @^@]@@ XVTOL=XINCR*1.0E-5@#@]@@ IPPNT=0 @#@]@@ GH )@@G@@ICPNT=3 @#@]@@ LOCO1=LOUTPT@^@]@@ LOCO2=LOCO1+NUMOUT@^@]@@GI )@@G@@ LOCO3=LOCO2+NUMOUT@ @]@@ IF (ICALC.LE.2) GO TO 50@^@]@@ 10 GJ )@@G@@X1=VALUE(LOCO1+1) @^@]@@ X2=VALUE(LOCO2+1) @^@]@@ X3=VALUE(LOCGK )@@G@@O3+1) @#@]@@ DX1X2=X1-X2 @#@]@@ DX1X3=X1-X3 @#@]@@ DX2X3=GL )@@G@@X2-X3 @ @]@@ XDNOM1=1.0/(DX1X2*DX1X3)@A@]@@ XDNOM2=-1.0/(DX1X2GM )@@G@@*DX2X3) @ @]@@ XDNOM3=1.0/(DX2X3*DX1X3)@A@]@@ 20 IF (XINCR.LTGN )@@G@@.0.0) GO TO 24 @B@]@@ IF (XVAR.LE.(X3+XVTOL)) GO TO 30 @#@]@@GO )@@G@@ GO TO 28 @B@]@@ 24 IF (XVAR.GE.(X3+XVTOL)) GO TO 30 @A@]@@GP )@@G@@ 28 IF (ICPNT.GE.ICALC) GO TO 100 @^@]@@ ICPNT=ICPNT+1 @#@]@@GQ )@@G@@ LOCO1=LOCO2 @#@]@@ LOCO2=LOCO3 @^@]@@ LOCO3=LOCO2+NUMOUTGR )@@G@@@#@]@@ GO TO 10 @^@]@@ 30 IPPNT=IPPNT+1 @ @]@@ VALUE(GS )@@G@@LOCX+IPPNT)=XVAR @#@]@@ DXX1=XVAR-X1@#@]@@ DXX2=XVAR-X2@#@]@@GT )@@G@@ DXX3=XVAR-X3@ @]@@ XFACT1=DXX2*DXX3*XDNOM1 @ @]@@ XFACT2GU )@@G@@=DXX1*DXX3*XDNOM2 @ @]@@ XFACT3=DXX1*DXX2*XDNOM3 @#@]@@ LOCYT=GV )@@G@@LOCY @^@]@@ DO 40 I=1,KNTR @#@]@@ ISEQ=ITAB(I)@ @]@@ GW )@@G@@ISEQ=NODPLC(ISEQ+4) @ @]@@ V1=VALUE(LOCO1+ISEQ) @ @]@@ GX )@@G@@V2=VALUE(LOCO2+ISEQ) @ @]@@ V3=VALUE(LOCO3+ISEQ) @B@]@@ GY )@@G@@YVR=V1*XFACT1+V2*XFACT2+V3*XFACT3 @C@]@@ TOL=AMIN1(ABS(V1),ABS(V2GZ )@@G@@),ABS(V3))*1.0E-10@A@]@@ IF (ABS(YVR).LE.TOL) YVR=0.0 @ @]@@ HA )@@G@@VALUE(LOCYT+IPPNT)=YVR @^@]@@ LOCYT=LOCYT+NPOINT@#@]@@ 40 CONTINHB )@@G@@UE @A@]@@ IF (IPPNT.GE.NPOINT) GO TO 100@A@]@@ XVAR=XSTART+HC )@@G@@FLOAT(IPPNT)*XINCR@C@]@@ IF (ABS(XVAR).GE.ABS(XVTOL)) GO TO 20 HD )@@G@@@#@]@@ XVAR=0.0 @#@]@@ GO TO 20 @[@]@@C @A@]@@C SPEHE )@@G@@CIAL HANDLING IF ICALC @ 2 @[@]@@C @ @]@@ 50 IF (ICALC.EQ.2) GOHF )@@G@@ TO 70@E@]@@C... ICALC=1; JUST COPY OVER THE SINGLE POINT AND RETURN HG )@@G@@@#@]@@ IPPNT=1 @ @]@@ VALUE(LOCX+IPPNT)=XVAR @#@]@@ HH )@@G@@LOCYT=LOCY @^@]@@ DO 60 I=1,KNTR @#@]@@ ISEQ=ITAB(I)@ @]@@HI )@@G@@ ISEQ=NODPLC(ISEQ+4) @B@]@@ VALUE(LOCYT+IPPNT)=VALUE(LOCO1HJ )@@G@@+ISEQ)@^@]@@ LOCYT=LOCYT+NPOINT@#@]@@ 60 CONTINUE @#@]@@ HK )@@G@@GO TO 100 @B@]@@C... ICALC=2; LINEAR INTERPOLATION USED @^@]@@ 70 HL )@@G@@X1=VALUE(LOCO1+1) @^@]@@ X2=VALUE(LOCO2+1) @A@]@@ 80 IF (XINCR.LTHM )@@G@@.0.0) GO TO 84 @A@]@@ IF (XVAR.GT.X2) GO TO 100 @#@]@@ HN )@@G@@GO TO 88 @A@]@@ 84 IF (XVAR.LT.X2) GO TO 100 @^@]@@ 88 IPPNT=HO )@@G@@IPPNT+1 @ @]@@ VALUE(LOCX+IPPNT)=XVAR @#@]@@ LOCYT=LOCY HP )@@G@@@^@]@@ DO 90 I=1,KNTR @#@]@@ ISEQ=ITAB(I)@ @]@@ ISEQ=NHQ )@@G@@ODPLC(ISEQ+4) @ @]@@ V1=VALUE(LOCO1+ISEQ) @ @]@@ V2=VALHR )@@G@@UE(LOCO2+ISEQ) @B@]@@ YVR=V1+((XVAR-X1)/(X2-X1))*(V2-V1) @B@]@@HS )@@G@@ TOL=AMIN1(ABS(V1),ABS(V2))*1.0E-10 @A@]@@ IF (ABS(YVR).LE.TOHT )@@G@@L) YVR=0.0 @ @]@@ VALUE(LOCYT+IPPNT)=YVR @^@]@@ LOCYT=LOCYT+HU )@@G@@NPOINT@#@]@@ 90 CONTINUE @A@]@@ IF (IPPNT.GE.NPOINT) GO TO 100HV )@@G@@@A@]@@ XVAR=XSTART+FLOAT(IPPNT)*XINCR@C@]@@ IF (ABS(XVAR).GE.AHW )@@G@@BS(XVTOL)) GO TO 80 @#@]@@ XVAR=0.0 @#@]@@ GO TO 80 HX )@@G@@@[@]@@C @]@]@@C RETURN @[@]@@C @#@]@@ 100 NUMPNT=IPPNT@]@]@@HY )@@G@@ RETURN@]@]@@ END @ @]@@ SUBROUTINE SETPRN(LOC) @[@]@@HZ )@@G@@C @G@]@@C THIS ROUTINE FORMATS THE COLUMN HEADERS FOR TABULAR LIIA )@@G@@STINGS OF @^@]@@C OUTPUT VARIABLES. @[@]@@C @G@]@@ COMMONIB )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1IC )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ID )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, IE )@@G@@@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVIF )@@G@@NIM1, @G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDIG )@@G@@0,LD1,LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /STATIH )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODII )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEIJ )@@G@@MNO,NOSOLV,MODAC @F@]@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLIK )@@G@@E(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMONIL )@@G@@ /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@]@@ 1IM )@@G@@ KOVAR,KIDOUT @G@]@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRLIN )@@G@@,SPW2,JACFLG,IDFREQ, @F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IO )@@G@@IDPRT,JPZFLG,JPZTYP, @F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOCIP )@@G@@(2),IPZEQI,IPOMAT(3), @#@]@@ 3 IPIMAT(4)@F@]@@ COMMON /TRANIQ )@@G@@/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@]@@ COMMON /OUTIIR )@@G@@NF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOIS )@@G@@GY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)IT )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ IU )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @E@]@@ DATA AIV )@@G@@BLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / @[@]@@C @C@]@@C SETIW )@@G@@ LIMITS DEPENDING UPON THE ANALYSIS MODE @[@]@@C @ @]@@ IF (MOIX )@@G@@DE-2) 10,20,30 @^@]@@ 10 XSTART=TCSTAR @#@]@@ XINCR=TCINCRIY )@@G@@@^@]@@ NPOINT=ICVFLG @ @]@@ LOCE=NODPLC(ITCELM+1) @^@]@@IZ )@@G@@ ASWEEP=VALUE(LOCE)@#@]@@ GO TO 40 @^@]@@ 20 XSTART=TSTARJA )@@G@@T @#@]@@ XINCR=TSTEP @^@]@@ NPOINT=JTRFLG @^@]@@ JB )@@G@@ASWEEP=ATIMEX @#@]@@ GO TO 40 @^@]@@ 30 XSTART=FSTART JC )@@G@@@#@]@@ XINCR=FINCR @#@]@@ NPOINT=ICALC@#@]@@ ASWEEP=AFREQJD )@@G@@@[@]@@C @C@]@@C CONSTRUCT AND PRINT THE OUTPUT VARIABLE NAMES@[@]@@JE )@@G@@C @#@]@@ 40 LOCT=LOC+2 @]@]@@ IPOS=1@^@]@@ NPOS=IPOS+NUJF )@@G@@MDGT+8@^@]@@ DO 90 I=1,KNTR @#@]@@ LOCT=LOCT+2 @ @]@@ JG )@@G@@ITAB(I)=NODPLC(LOCT) @ @]@@ ITYPE(I)=NODPLC(LOCT+1) @C@]@@ JH )@@G@@CALL OUTNAM(ITAB(I),ITYPE(I),STRING,IPOS) @A@]@@ IF (IPOS.GE.NPOS) JI )@@G@@GO TO 70 @^@]@@ DO 60 J=IPOS,NPOS @A@]@@ CALL MOVE(STRING,JJJ )@@G@@,ABLNK,1,1) @#@]@@ 60 CONTINUE @#@]@@ IPOS=NPOS @#@]@@ JK )@@G@@GO TO 80 @B@]@@ 70 CALL MOVE(STRING,IPOS,ABLNK,1,1) @#@]@@ JL )@@G@@IPOS=IPOS+1 @^@]@@ 80 NPOS=NPOS+NUMDGT+8@#@]@@ 90 CONTINUE @B@]@@JM )@@G@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@]@@ JSTOP=(IPOS+6)/8 JN )@@G@@@C@]@@ WRITE (6,91) ASWEEP,(STRING(J),J=1,JSTOP) @A@]@@ 91 FORMATJO )@@G@@(/3X,A8,5X,14A8,A4) @^@]@@ WRITE (6,101) @^@]@@ 101 FORMATJP )@@G@@(1HX/1H ) @]@]@@ RETURN@]@]@@ END @ @]@@ SUBROUTINE SJQ )@@G@@ETPLT(LOC) @[@]@@C @G@]@@C THIS ROUTINE GENERATES THE ^LEGEND^ JR )@@G@@SUBHEADING USED TO IDENTIFY @D@]@@C INDIVIDUAL TRACES ON MULTI-TRACE LJS )@@G@@INE-PRINTER PLOTS.@[@]@@C @G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,JT )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISENS,NSENS,IFOUR,NFOJU )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2 JUNODE,LSBKPT,NJV )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@ 3 NMOFFC,ISJW )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@]@@ 4 LX0JX )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @]@@ 5JY )@@G@@ LOUTPT,LPOL,LZER @G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELJZ )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METKA )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @F@]@@KB )@@G@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@KC )@@G@@ 1 IWIDTH,LWIDTH,NOPAGE @G@]@@ COMMON /DC/ TCSTAR,TCSTOP,TCINKD )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@]@@ 1 KOVAR,KIDOUT @G@]@@KE )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, KF )@@G@@@F@]@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, KG )@@G@@@F@]@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), KH )@@G@@@#@]@@ 3 IPIMAT(4)@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELKI )@@G@@MAX,TDMAX,FORFRE,JTRFLG @G@]@@ COMMON /OUTINF/ STRING(15),YVAR(8),XKJ )@@G@@START,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTRKK )@@G@@,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)@^@]@@ INTEGER NODPKL )@@G@@LC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ EQUIVALENCE (VALUE(1),NOKM )@@G@@DPLC(1),CVALUE(1))@[@]@@C @ @]@@ DIMENSION LOGOPT(6) @B@]@@KN )@@G@@ DATA LOGOPT / 2, 2, 1, 1, 1, 1 / @E@]@@ DATA ABLNK, ATIMEXKO )@@G@@, AFREQ / 1H , 6H TIME, 6H FREQ / @A@]@@ DATA PLTSYM / 8H+*\&'?<>KP )@@G@@ / @[@]@@C @C@]@@C SET LIMITS DEPENDING UPON THE ANALYSIS MODE KQ )@@G@@@[@]@@C @ @]@@ IF (MODE-2) 10,20,30 @^@]@@ 10 XSTART=TCSTAKR )@@G@@R @#@]@@ XINCR=TCINCR@^@]@@ NPOINT=ICVFLG @ @]@@ KS )@@G@@LOCE=NODPLC(ITCELM+1) @^@]@@ ASWEEP=VALUE(LOCE)@#@]@@ GO TO KT )@@G@@40 @^@]@@ 20 XSTART=TSTART @#@]@@ XINCR=TSTEP @^@]@@ KU )@@G@@NPOINT=JTRFLG @^@]@@ ASWEEP=ATIMEX @#@]@@ GO TO 40 KV )@@G@@@^@]@@ 30 XSTART=FSTART @#@]@@ XINCR=FINCR @#@]@@ NPOINTKW )@@G@@=ICALC@#@]@@ ASWEEP=AFREQ@[@]@@C @G@]@@C CONSTRUCT AND PRINT TKX )@@G@@HE OUTPUT VARIABLES WITH CORRESPONDING PLOT @]@]@@C SYMBOLS@[@]@@KY )@@G@@C @#@]@@ 40 LOCT=LOC+2 @ @]@@ IF (KNTR.EQ.1) GO TO 80 @#@]@@KZ )@@G@@ WRITE (6,41)@ @]@@ 41 FORMAT(^0LEGEND:^/) @^@]@@ DO 70 LA )@@G@@I=1,KNTR @#@]@@ LOCT=LOCT+2 @ @]@@ ITAB(I)=NODPLC(LOCT) LB )@@G@@@ @]@@ IOUTYP=NODPLC(LOCT+1) @^@]@@ ITYPE(I)=IOUTYP @#@]@@LC )@@G@@ ILOGY(I)=1 @ @]@@ IF (MODE.LE.2) GO TO 50 @ @]@@ ILOGY(LD )@@G@@I)=LOGOPT(IOUTYP) @]@]@@ 50 IPOS=1@C@]@@ CALL OUTNAM(ITAB(I),ITYPLE )@@G@@E(I),STRING,IPOS) @B@]@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@]@@LF )@@G@@ JSTOP=(IPOS+6)/8 @A@]@@ CALL MOVE(ACHAR,1,PLTSYM,I,1) @C@]@@LG )@@G@@ WRITE (6,61) ACHAR,(STRING(J),J=1,JSTOP) @ @]@@ 61 FORMAT(1X,A1LH )@@G@@,2H: ,5A8) @#@]@@ 70 CONTINUE @ @]@@ 80 IF (KNTR.GE.2) GO TO 90 LI )@@G@@@ @]@@ ITAB(1)=NODPLC(LOC+4) @ @]@@ IOUTYP=NODPLC(LOC+5) LJ )@@G@@@^@]@@ ITYPE(1)=IOUTYP @#@]@@ ILOGY(1)=1 @ @]@@ IF (MOLK )@@G@@DE.LE.2) GO TO 90 @ @]@@ ILOGY(1)=LOGOPT(IOUTYP) @]@]@@ 90 IPOS=1LL )@@G@@@C@]@@ CALL OUTNAM(ITAB(1),ITYPE(1),STRING,IPOS) @B@]@@ CALL MLM )@@G@@OVE(STRING,IPOS,ABLNK,1,7) @^@]@@ JSTOP=(IPOS+6)/8 @C@]@@ LN )@@G@@WRITE (6,101) ASWEEP,(STRING(J),J=1,JSTOP)@ @]@@ 101 FORMAT(1HX/3X,A8,4LO )@@G@@X,5A8)@]@]@@ RETURN@]@]@@ END @C@]@@ SUBROUTINE PLOT(NULP )@@G@@MPNT,LOCX,LOCY,LOCV) @[@]@@C @D@]@@C THIS ROUTINE GENERATES TLQ )@@G@@HE LINE-PRINTER PLOTS. @[@]@@C @F@]@@ COMMON /MISCEL/ APROG(3)LR )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE LS )@@G@@@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFELT )@@G@@T, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ILU )@@G@@TERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /KNSTNT/ TWLV )@@G@@OPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTLW )@@G@@OL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@]@@ COMMON /OUTILX )@@G@@NF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOLY )@@G@@GY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)LZ )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ MA )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @#@]@@MB )@@G@@ INTEGER XOR @C@]@@ DIMENSION YCOOR(5,8),ICOOR(8),DELPLT(8) MC )@@G@@@C@]@@ DIMENSION AGRAPH(13),APLOT(13),ISPOT(5) @B@]@@ DIMENSMD )@@G@@ION ASYM(2),PMIN(8),JCOOR(8) @B@]@@ DATA ISPOT / 1, 26, 51, 76, 10ME )@@G@@1 / @C@]@@ DATA ABLNK, ALETX, APER / 1H , 1HX, 1H. / @F@]@@ MF )@@G@@DATA ASYM1, ASYM2, ARPRN / 8H(-------, 8H--------, 1H) / @A@]@@ MG )@@G@@DATA PLTSYM / 8H+*\&'?<> / @[@]@@C @[@]@@C @A@]@@ IF (NUMH )@@G@@MPNT.LE.0) GO TO 400 @#@]@@ DO 5 I=1,13 @^@]@@ AGRAPH(I)=ABMI )@@G@@LNK @#@]@@ 5 CONTINUE @#@]@@ DO 7 I=1,5 @B@]@@ CALL MMJ )@@G@@OVE(AGRAPH,ISPOT(I),APER,1,1) @#@]@@ 7 CONTINUE @#@]@@ LOCYT=MK )@@G@@LOCY @#@]@@ LSPOT=LOCV-1@#@]@@ MLTSCL=0 @B@]@@ IF (VAML )@@G@@LUE(LOCV).EQ.0.0) MLTSCL=1 @^@]@@ DO 235 K=1,KNTR @^@]@@ MM )@@G@@LSPOT=LSPOT+2 @^@]@@ YMIN=VALUE(LSPOT) @ @]@@ YMAX=VALUE(LMN )@@G@@SPOT+1) @A@]@@ IF (YMIN.NE.0.0) GO TO 10 @A@]@@ IF (YMMO )@@G@@AX.NE.0.0) GO TO 10 @#@]@@ GO TO 100 @ @]@@ 10 YMIN1=AMIN1(MP )@@G@@YMIN,YMAX) @ @]@@ YMAX1=AMAX1(YMIN,YMAX) @A@]@@ 30 IF (ILOGY(K)MQ )@@G@@.EQ.1) GO TO 40 @B@]@@ YMIN1=ALOG10(AMAX1(YMIN1,1.0E-20)) @B@]@@MR )@@G@@ YMAX1=ALOG10(AMAX1(YMAX1,1.0E-20)) @B@]@@ DEL=AMAX1(YMAX1-YMMS )@@G@@IN1,0.0001)/4.0 @#@]@@ GO TO 50 @B@]@@ 40 DEL=AMAX1(YMAX1-YMMT )@@G@@IN1,1.0E-20)/4.0 @#@]@@ 50 YMIN=YMIN1 @#@]@@ YMAX=YMAX1 @#@]@@MU )@@G@@ GO TO 200 @[@]@@C @A@]@@C DETERMINE MAX AND MIN VALUES MV )@@G@@@[@]@@C @ @]@@ 100 YMAX1=VALUE(LOCYT+1) @#@]@@ YMIN1=YMAX1 MW )@@G@@@A@]@@ IF (NUMPNT.EQ.1) GO TO 150 @^@]@@ DO 110 I=2,NUMPNT MX )@@G@@@B@]@@ YMIN1=AMIN1(YMIN1,VALUE(LOCYT+I)) @B@]@@ YMAX1=AMAX1(MY )@@G@@YMAX1,VALUE(LOCYT+I)) @#@]@@ 110 CONTINUE @[@]@@C @]@]@@C SCAMZ )@@G@@LING @[@]@@C @C@]@@ 150 CALL SCALE(YMIN1,YMAX1,4,YMIN,YMAX,DEL) NA )@@G@@@[@]@@C @^@]@@C DETERMINE COORDINATES@[@]@@C @^@]@@ 200 YCOOR(NB )@@G@@1,K)=YMIN @#@]@@ PMIN(K)=YMIN@^@]@@ SMALL=DEL*1.0E-4 @D@]@@NC )@@G@@ IF (ABS(YCOOR(1,K)).LE.SMALL) YCOOR(1,K)=0.0 @#@]@@ DO 210ND )@@G@@ I=1,4@A@]@@ YCOOR(I+1,K)=YCOOR(I,K)+DEL @D@]@@ IF (ABS(YCOONE )@@G@@R(I+1,K)).LE.SMALL) YCOOR(I+1,K)=0.0@#@]@@ 210 CONTINUE @A@]@@ NF )@@G@@IF (ILOGY(K).EQ.1) GO TO 230 @#@]@@ DO 220 I=1,5@B@]@@ 220 YCOOR(NG )@@G@@I,K)=EXP(XLOG10*YCOOR(I,K)) @^@]@@ 230 DELPLT(K)=DEL/25.0@^@]@@ NH )@@G@@LOCYT=LOCYT+NPOINT@#@]@@ 235 CONTINUE @[@]@@C @ @]@@C COUNT DISNI )@@G@@TINCT COORDINATES @[@]@@C @#@]@@ ICOOR(1)=1 @#@]@@ JCOOR(NJ )@@G@@1)=1 @#@]@@ NUMCOR=1 @ @]@@ IF (KNTR.EQ.1) GO TO 290@^@]@@NK )@@G@@ DO 250 I=2,KNTR @^@]@@ DO 245 J=1,NUMCOR @#@]@@ L=JCOONL )@@G@@R(J) @G@]@@C... COORDINATES ARE *EQUAL* IF THE MOST SIGNIFICANT 24 BITNM )@@G@@S AGREE @#@]@@ DO 240 K=1,5@B@]@@ Y1=AND(YCOOR(K,L),COMPL(NN )@@G@@7777 7777B))@B@]@@ Y2=AND(YCOOR(K,I),COMPL(7777 7777B))@A@]@@ NO )@@G@@IF (XOR(Y1,Y2).NE.0) GO TO 245@#@]@@ 240 CONTINUE @#@]@@ ICOOR(NP )@@G@@I)=L @#@]@@ GO TO 250 @#@]@@ 245 CONTINUE @#@]@@ ICOOR(NQ )@@G@@I)=I @^@]@@ NUMCOR=NUMCOR+1 @^@]@@ JCOOR(NUMCOR)=I @#@]@@NR )@@G@@ 250 CONTINUE @[@]@@C @^@]@@C PRINT COORDINATES @[@]@@C NS )@@G@@@^@]@@ 260 DO 280 I=1,NUMCOR @^@]@@ ASYM(1)=ASYM1 @^@]@@ NT )@@G@@ASYM(2)=ASYM2 @]@]@@ IPOS=2@^@]@@ DO 270 J=1,KNTR @B@]@@NU )@@G@@ IF (ICOOR(J).NE.JCOOR(I)) GO TO 270 @B@]@@ CALL MOVE(ASYM,IPONV )@@G@@S,PLTSYM,J,1) @#@]@@ IPOS=IPOS+1 @#@]@@ 270 CONTINUE @A@]@@NW )@@G@@ CALL MOVE(ASYM,IPOS,ARPRN,1,1)@#@]@@ K=JCOOR(I) @C@]@@ NX )@@G@@WRITE (6,271) ASYM,(YCOOR(J,K),J=1,5) @F@]@@ 271 FORMAT(/1HX,2A8,4HNY )@@G@@----,1PE12.3,4(15X,E10.3)/26X,51(2H -)) @#@]@@ 280 CONTINUE @#@]@@NZ )@@G@@ GO TO 300 @B@]@@ 290 WRITE (6,291) (YCOOR(J,1),J=1,5) @E@]@@OA )@@G@@ 291 FORMAT(/1HX,20X,1PE12.3,4(15X,E10.3)/26X,51(2H -)) @[@]@@C OB )@@G@@@]@]@@C PLOTTING @[@]@@C @#@]@@ 300 ASPOT=ABLNK @^@]@@ DO 320OC )@@G@@ I=1,NUMPNT @^@]@@ XVAR=VALUE(LOCX+I)@#@]@@ LOCYT=LOCY @A@]@@OD )@@G@@ CALL COPY8(AGRAPH,APLOT,13) @^@]@@ DO 310 K=1,KNTR @^@]@@OE )@@G@@ YVR=VALUE(LOCYT+I)@^@]@@ KTMP=ICOOR(K) @^@]@@ YMIN1=OF )@@G@@PMIN(KTMP) @C@]@@ JPOINT=IFIX((YVR-YMIN1)/DELPLT(K)+0.5)+1 @A@]@@OG )@@G@@ IF (JPOINT.LE.0) GO TO 306 @A@]@@ IF (JPOINT.GE.102) GO TOOH )@@G@@ 306 @B@]@@ CALL MOVE(ASPOT,1,APLOT,JPOINT,1) @A@]@@ IF (ASOI )@@G@@POT.EQ.ABLNK) GO TO 303 @A@]@@ IF (ASPOT.EQ.APER) GO TO 303 @B@]@@OJ )@@G@@ CALL MOVE(APLOT,JPOINT,ALETX,1,1) @#@]@@ GO TO 306 @B@]@@OK )@@G@@ 303 CALL MOVE(APLOT,JPOINT,PLTSYM,K,1) @^@]@@ 306 LOCYT=LOCYT+NPOINTOL )@@G@@@#@]@@ 310 CONTINUE @^@]@@ YVR=VALUE(LOCY+I) @A@]@@ IF (ILOM )@@G@@OGY(1).EQ.1) GO TO 315 @ @]@@ YVR=EXP(XLOG10*YVR) @A@]@@ 315 ON )@@G@@WRITE (6,316) XVAR,YVR,APLOT @B@]@@ 316 FORMAT(1X,1PE10.3,3X,E10.3,3X,OO )@@G@@13A8) @#@]@@ 320 CONTINUE @[@]@@C @]@]@@C FINISHED @[@]@@C OP )@@G@@@^@]@@ WRITE (6,331) @ @]@@ 331 FORMAT(26X,51(2H -)//) @#@]@@OQ )@@G@@ GO TO 500 @[@]@@C @#@]@@C TOO FEW POINTS @[@]@@C @^@]@@OR )@@G@@ 400 WRITE (6,401) @E@]@@ 401 FORMAT(^0WARNING: TOO FEW POINTS FOOS )@@G@@R PLOTTING^/) @^@]@@ 500 WRITE (6,501) @#@]@@ 501 FORMAT(1HY) OT )@@G@@@]@]@@ RETURN@]@]@@ END @D@]@@ SUBROUTINE SCALE(XMIN,XMOU )@@G@@AX,N,XMINP,XMAXP,DEL) @[@]@@C @G@]@@C THIS ROUTINE DETERMINES OV )@@G@@THE ^OPTIMAL^ SCALE TO USE FOR THE PLOT OF@^@]@@C SOME OUTPUT VARIABLE. OW )@@G@@@[@]@@C @[@]@@C @G@]@@C ADAPTED FROM ALGORITHM 463 OF ^COLLECTEOX )@@G@@D ALGORITHMS OF THE CACM^ @[@]@@C @G@]@@ COMMON /KNSTNT/ TWOY )@@G@@OPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTOZ )@@G@@OL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @#@]@@ INTEGER XOR PA )@@G@@@^@]@@ DIMENSION VINT(5) @B@]@@ DATA VINT / 1.0,2.0,5.0,10.0,2PB )@@G@@0.0 / @ @]@@ DATA EPS / 1.0E-12 / @[@]@@C @[@]@@C @A@]@@PC )@@G@@C... TRAP TOO-SMALL DATA SPREAD @B@]@@ TMIN=AND(XMIN,COMPL(777 PD )@@G@@777 777B)) @B@]@@ TMAX=AND(XMAX,COMPL(777 777 777B)) @B@]@@ PE )@@G@@IF (XOR(TMIN,TMAX).NE.0) GO TO 10 @ @]@@ IF (XMIN.GE.0.0) GO TO 5PF )@@G@@@^@]@@ XMAX=0.5*XMIN+EPS @^@]@@ XMIN=1.5*XMIN-EPS @#@]@@ PG )@@G@@GO TO 10 @^@]@@ 5 XMAX=1.5*XMIN+EPS @^@]@@ XMIN=0.5*XMIN-EPS PH )@@G@@@E@]@@C... FIND APPROXIMATE INTERVAL SIZE, NORMALIZED TO "1,10! @ @]@@PI )@@G@@ 10 A=(XMAX-XMIN)/FLOAT(N) @ @]@@ NAL=IFIX(ALOG10(A)) @ @]@@PJ )@@G@@ IF (A.LT.1.0) NAL=NAL-1 @A@]@@ XFACT=EXP(XLOG10*FLOAT(NAL)) PK )@@G@@@#@]@@ B=A/XFACT @C@]@@C... FIND CLOSEST PERMISSIBLE INTERVAL SIPL )@@G@@ZE @#@]@@ DO 20 I=1,3 @B@]@@ IF (B.LT.(VINT(I)+EPS)) GO TO PM )@@G@@30 @#@]@@ 20 CONTINUE @]@]@@ I=4 @ @]@@C... COMPUTE INTEPN )@@G@@RVAL SIZE @^@]@@ 30 DEL=VINT(I)*XFACT @#@]@@ FM1=XMIN/DEL@]@]@@PO )@@G@@ M1=FM1@ @]@@ IF (FM1.LT.0.0) M1=M1-1 @C@]@@ IF (ABS(FLOAPP )@@G@@T(M1)+1.0-FM1).LT.EPS) M1=M1+1@C@]@@C... COMPUTE NEW MAXIMUM AND MINIMUPQ )@@G@@M LIMITS @ @]@@ XMINP=DEL*FLOAT(M1) @#@]@@ FM2=XMAX/DELPR )@@G@@@#@]@@ M2=FM2+1.0 @A@]@@ IF (FM2.LT.(-1.0)) M2=M2-1 @C@]@@PS )@@G@@ IF (ABS(FM2+1.0-FLOAT(M2)).LT.EPS) M2=M2-1@ @]@@ XMAXP=DEL*FLPT )@@G@@OAT(M2) @#@]@@ NP=M2-M1 @B@]@@C... CHECK WHETHER ANOTHER LOPU )@@G@@OP REQUIRED @ @]@@ IF (NP.LE.N) GO TO 40 @]@]@@ I=I+1 @#@]@@PV )@@G@@ GO TO 30 @E@]@@C... DO FINAL ADJUSTMENTS AND CORRECT FOR ROUNDPW )@@G@@OFF ERROR(S)@#@]@@ 40 NX=(N-NP)/2 @C@]@@ XMINP=AMIN1(XMIN,XMINP-FPX )@@G@@LOAT(NX)*DEL) @B@]@@ XMAXP=AMAX1(XMAX,XMINP+FLOAT(N)*DEL)@]@]@@PY )@@G@@ RETURN@]@]@@ END @^@]@@ SUBROUTINE FOURAN @[@]@@C PZ )@@G@@@G@]@@C THIS ROUTINE DETERMINES THE FOURIER COEFFICIENTS OF A TRANSIQA )@@G@@ENT @^@]@@C ANALYSIS WAVEFORM. @[@]@@C @G@]@@ COMMON /TABIQB )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@]@@ 1 ISEQC )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@]@@ 2QD )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@]@@QE )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, QF )@@G@@@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,QG )@@G@@LTD, @ @]@@ 5 LOUTPT,LPOL,LZER @G@]@@ COMMON /CIRDAT/ LOQH )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@]@@ 1 NUT,NLT,NQI )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IQJ )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITQK )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@]@@ COMMON /MISCEL/ APROG(3)QL )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @]@@ 1 IWIDTH,LWIDTH,NOPAGE QM )@@G@@@G@]@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEQN )@@G@@T, @F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IQO )@@G@@TERNO,@ @]@@ 2 ITEMNO,NOSOLV,MODAC @G@]@@ COMMON /KNSTNT/ TWQP )@@G@@OPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@]@@ 1 GMIN,RELTQQ )@@G@@OL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @F@]@@ COMMON /TRANQR )@@G@@/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@]@@ COMMON /OUTIQS )@@G@@NF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@]@@ 1 ILOQT )@@G@@GY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @]@@ COMMON /BLANK/ VALUE(64)QU )@@G@@@^@]@@ INTEGER NODPLC(64)@^@]@@ COMPLEX CVALUE(32)@C@]@@ QV )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@]@@C @[@]@@C @A@]@@QW )@@G@@ DIMENSION SINCO(9),COSCO(9) @ @]@@ DIMENSION FORTIT(4) QX )@@G@@@G@]@@ DATA FORTIT / 8HFOURIER , 8HANALYSIS, 8H , 8H QY )@@G@@ / @^@]@@ DATA ABLNK / 1H /@[@]@@C @[@]@@C @^@]@@ QZ )@@G@@FORPRD=1.0/FORFRE @ @]@@ XSTART=TSTOP-FORPRD @]@]@@ KNTR=1RA )@@G@@@#@]@@ XN=101.0 @^@]@@ XINCR=FORPRD/XN @#@]@@ NPOINTRB )@@G@@=XN @ @]@@ CALL GETMEM(LOCX,NPOINT)@ @]@@ CALL GETMEM(LOCY,NRC )@@G@@POINT)@ @]@@ DO 105 NKNT=1,NFOUR @A@]@@ ITAB(1)=NODPLC(IFORD )@@G@@UR+NKNT) @^@]@@ KFROUT=ITAB(1) @A@]@@ CALL NTRPL8(LOCX,LRE )@@G@@OCY,NUMPNT) @#@]@@ DCCO=0.0 @ @]@@ CALL ZERO8(SINCO,9) RF )@@G@@@ @]@@ CALL ZERO8(COSCO,9) @#@]@@ LOCT=LOCY+1 @]@]@@ RG )@@G@@IPNT=0@ @]@@ 10 YVR=VALUE(LOCT+IPNT) @^@]@@ DCCO=DCCO+YVR RH )@@G@@@A@]@@ FORFAC=FLOAT(IPNT)*TWOPI/XN @#@]@@ ARG=0.0 @#@]@@RI )@@G@@ DO 20 K=1,9 @^@]@@ ARG=ARG+FORFAC @A@]@@ SINCO(K)=SINRJ )@@G@@CO(K)+YVR*SIN(ARG)@A@]@@ COSCO(K)=COSCO(K)+YVR*COS(ARG)@#@]@@ 20 RK )@@G@@CONTINUE @#@]@@ IPNT=IPNT+1 @A@]@@ IF (IPNT.NE.NPOINT) GO TRL )@@G@@O 10 @#@]@@ DCCO=DCCO/XN@^@]@@ FORFAC=2.0/XN @#@]@@ RM )@@G@@DO 30 K=1,9 @ @]@@ SINCO(K)=SINCO(K)*FORFAC@ @]@@ COSCO(K)=COSRN )@@G@@CO(K)*FORFAC@#@]@@ 30 CONTINUE @A@]@@ CALL TITLE(0,72,1,FORTITRO )@@G@@) @]@]@@ IPOS=1@B@]@@ CALL OUTNAM(KFROUT,1,STRING,IPOS) RP )@@G@@@B@]@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@]@@ JSTOP=(IPOS+RQ )@@G@@6)/8 @B@]@@ WRITE (6,61) (STRING(J),J=1,JSTOP) @F@]@@ 61 FORMATRR )@@G@@(^ FOURIER COMPONENTS OF TRANSIENT RESPONSE ^,5A8///) @^@]@@ WRITE RS )@@G@@(6,71) DCCO @B@]@@ 71 FORMAT(^0DC COMPONENT =^,1PE12.3/, @G@]@@ 1RT )@@G@@ ^0HARMONIC FREQUENCY FOURIER NORMALIZED PHASE NO@#@]@@RU )@@G@@ 2RMALIZED^/, @G@]@@ 3 ^ NO (HZ) COMPONENT CRV )@@G@@OMPONENT (DEG) PHA@#@]@@ 4SE (DEG)^//)@]@]@@ IKNT=1@#@]@@RW )@@G@@ FREQ1=FORFRE@#@]@@ XNHARM=1.0 @E@]@@ CALL MAGPHS(CMPLX(RX )@@G@@SINCO(1),COSCO(1)),XNORM,PNORM) @#@]@@ PHASEN=0.0 @E@]@@ RY )@@G@@WRITE (6,81) IKNT,FREQ1,XNORM,XNHARM,PNORM,PHASEN @D@]@@ 81 FORMATRZ )@@G@@(I6,1PE15.3,E12.3,0PF13.6,F10.3,F12.3/) @#@]@@ THD=0.0 @^@]@@SA )@@G@@ DO 90 IKNT=2,9 @ @]@@ FREQ1=FLOAT(IKNT)*FORFRE@E@]@@ SB )@@G@@CALL MAGPHS(CMPLX(SINCO(IKNT),COSCO(IKNT)),HARM,PHASE)@^@]@@ XNHARMSC )@@G@@=HARM/XNORM @^@]@@ PHASEN=PHASE-PNORM@ @]@@ THD=THD+XNHARM*XNHSD )@@G@@ARM @D@]@@ WRITE (6,81) IKNT,FREQ1,HARM,XNHARM,PHASE,PHASEN@#@]@@SE )@@G@@ 90 CONTINUE @ @]@@ THD=100.0*SQRT(THD) @^@]@@ WRITE SF )@@G@@(6,101) THD @G@]@@ 101 FORMAT (//5X,*TOTAL HARMONIC DISTORTION = *,F12SG )@@G@@.6,* PERCENT*) @#@]@@ 105 CONTINUE @^@]@@ CALL CLRMEM(LOCX) SH )@@G@@@^@]@@ CALL CLRMEM(LOCY) @]@]@@ 110 RETURN@]@]@@ END ___ SI )@@G@@@ @]@@ 10 YMIN1=AMIN1(*[S@@@*SDFF**[@@@@CTS@@E@C@@@@ SUBROUTINE MSJ )@@G@@AGPHS(/CVAR/,/XMAG/,/XPHS/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@SK )@@G@@C THIS ROUTINE COMPUTES THE MAGNITUDE AND PHASE OF ITS COMPLEX ARG- SL )@@G@@*[@@@@CTS@@*@D@@@@C UMENT CVAR, STORING THE RESULTS IN XMAG AND XPHS. SM )@@G@@*[@@@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-ZSN )@@G@@) @ @@@# INCLUDE F.KNSTNT,LIST @C@^@# EQUIVALENCE (VALUESO )@@G@@(1),NPDPLC(1),CVALUE(1))@^@#@]@ADD,P *SPICE.MAGPHSD *[@@@@CTS@[A@G@[@@SP )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, SQ )@@G@@*[@@@@CTS@[K@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSR )@@G@@SSIL,EPSOX *[@@@@CTS@[U@^@@@@ COMPLEX*16 CVAR *[@@@@CTS@[=@[@@@@SS )@@G@@C *[@@@@CTS@[,@[@@@@C *[@@@@CTS@[8@^@@@@ XREAL=DREAL(CVAR) ST )@@G@@*[@@@@CTS@]]@^@@@@ XIMAG=DIMAG(CVAR) *[@@@@CTS@]G@B@@@@ XMAG=DSU )@@G@@SQRT(XREAL*XREAL+XIMAG*XIMAG) *[@@@@CTS@]Q@A@@@@ IF (XMAG.GE.1.D-20SV )@@G@@) GO TO 10 *[@@@@CTS@])@#@@@@ XMAG=1.D-20 *[@@@@CTS@]%@#@@@@ SW )@@G@@XPHS=0.D0 *[@@@@CTS@]4@]@@@@ RETURN*[@@@@CTS@]"@A@@@@ 10 XPHS=RSX )@@G@@AD*DATAN2(XIMAG,XREAL) *[@@@@CTS@#C@]@@@@ RETURN*[@@@@CTS@#M@]@@@@SY )@@G@@ END ___^@)*[@@@@CTS@]Q@D@@@@^@)^@)^@)DDA*[S@@@*SDFF**[@@@@CTS@@ESZ )@@G@@@^@@@^ SUBROUTINE CARD *[@@@@CTS@@O@[@@@^C *[@@@@CTS@@Y@G@@@^TA )@@G@@C THIS ROUTINE SCANS THE INPUT LINES, STORING EACH FIELD INTO THE TB )@@G@@*[@@@@CTS@@*@G@@@^C TABLES IFIELD, IDELIM, ICOLUM, AND ICODE. WITH THE TC )@@G@@EXCEPTION OF THE *[@@@@CTS@@2@G@@@^C #.END# LINE, CARD ALWAYS READS THETD )@@G@@ NEXT LINE TO CHECK FOR A POSSIBLE *[@@@@CTS@@/@A@@@^C CONTINUATION BEFTE )@@G@@ORE IT EXITS. *[@@@@CTS@[A@[@@@^C *[@@@@CTS@[K@A@@@^ IMPLICTF )@@G@@IT REAL*8 (A-H,O-Z) @ @@@B INCLUDE F.TABINF,LIST @ @@@B TG )@@G@@INCLUDE F.MISCEL,LIST @ @@@B INCLUDE F.LINE,LIST @ @@@B TH )@@G@@INCLUDE F.FLAGS,LIST @ @@@B INCLUDE F.KNSTNT,LIST @ @@@B TI )@@G@@INCLUDE F.BLANK,LIST @^@B@A@ADD,P *SPICE.CARDD *[@@@@CTS@[U@G@A@^TJ )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, TK )@@G@@*[@@@@CTS@[=@G@A@^ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ITL )@@G@@COLUM,INSIZE, *[@@@@CTS@[,@G@A@^ 2 JUNODE,LSBKPT,NUMBKP,IORDERTM )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[8@G@A@^ 3 NMOFFC,ISTN )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@]]@G@A@^TO )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, TP )@@G@@*[@@@@CTS@]G@#@A@^ 5 LOUTPT, *[@@@@CTS@]Q@E@A@^ 6 LUNSAT,LTTQ )@@G@@EMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@])@G@A@^ 7 LLXTR )@@G@@0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]%TS )@@G@@@A@A@^ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]4@G@A@^ COMMONTT )@@G@@ /MISCEL/ APROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@]"TU )@@G@@@ @A@^ 1 IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@#C@ @A@^ INTEGER*4 ATTV )@@G@@IME,ADATE *[@@@@CTS@#M@E@A@^ COMMON /LINE/ ACHAR,AFIELD(15),OLDLITW )@@G@@N(15),KNTRC,KNTLIM*[@@@@CTS@#W@G@A@^ COMMON /FLAGS/ IPRNTA,IPRNTL,ITX )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@#&@F@A@^ 1 LVLCOD,LVTY )@@G@@LTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@#0@G@A@^ TZ )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@UA )@@G@@CTS@#'@F@A@^ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EUB )@@G@@PSOX *[@@@@CTS@^^@ @A@^ COMMON /BLANK/ VALUE(64)*[@@@@CTS@^I@^@A@^UC )@@G@@ INTEGER NODPLC(64)*[@@@@CTS@^S@ @A@^ COMPLEX*16 CVALUE(32) UD )@@G@@*[@@@@CTS@^+@C@A@^ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@UE )@@G@@CTS@^?@[@@@^C *[@@@@CTS@^6@ @@@^ DIMENSION ADIGIT(10) *[@@@@UF )@@G@@CTS@ @@F@@@^ DATA ADIGIT / 1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9 UG )@@G@@/ *[@@@@CTS@ E@G@@@^ DATA ABLNK,APER,APLUS,AMINUS,ASTK / 1H , 1UH )@@G@@H., 1H+, 1H-, 1H* / *[@@@@CTS@ O@F@@@^ DATA AG,AK,AU,AN,AP,AE,AUI )@@G@@M / 1HG,1HK,1HU,1HN,1HP,1HE,1HM / *[@@@@CTS@ Y@^@ @^ DATA AI / 1HUJ )@@G@@I / @^@C@ DATA AF,AI/1H,1HF/@ @@@C DATA AF,AI/1HF,1HI/ UK )@@G@@*[@@@@CTS@ *@A@@@^ DATA ALPRN, ARPRN / 1H(, 1H) /*[@@@@CTS@ 2@ @@@^UL )@@G@@ DATA AEND / 4H.END / *[@@@@CTS@ /@[@@@^C *[@@@@CTS@AA@G@@@^UM )@@G@@C NOTE: THE VALUE OF THE FUNCTION 'NXTCHR' (USED EXTENSIVELY IN UN )@@G@@*[@@@@CTS@AK@ @@@^C THIS ROUTINE) IS AS FOLLOWS:*[@@@@CTS@AU@[@@@^C UO )@@G@@*[@@@@CTS@A=@B@@@^C <0: END-OF-LINE *[@@@@CTS@A,UP )@@G@@@B@@@^C =0: DELIMITER FOUND *[@@@@CTS@A8@C@@@^C UQ )@@G@@ >0: NON-DELIMITER FOUND *[@@@@CTS@B]@[@@@^C *[@@@@UR )@@G@@CTS@BG@#@@@^ NUMFLD=0 *[@@@@CTS@BQ@#@@@^ NOFLD=15 *[@@@@US )@@G@@CTS@B)@#@@@^ GO TO 20 *[@@@@CTS@B%@[@@@^C *[@@@@CTS@B4@#@@@^UT )@@G@@C READ NEXT CARD *[@@@@CTS@B"@[@@@^C *[@@@@CTS@CC@#@@@^ 10 NOFLD=UU )@@G@@15 *[@@@@CTS@CM@#@@@^ CALL GETLIN *[@@@@CTS@CW@ @@@^ IF (KEUV )@@G@@OF.EQ.0) GO TO 20 *[@@@@CTS@C&@E@@@^C... ERROR: UNEXPECTED END-OF-FILEUW )@@G@@ CONDITION ON INPUT *[@@@@CTS@C0@]@@@^ 15 KEOF=1*[@@@@CTS@C'@#@@@^UX )@@G@@ NOFLD=1 *[@@@@CTS@D^@#@@@^ NUMFLD=0 *[@@@@CTS@DI@#@@@^UY )@@G@@ IGOOF=1 *[@@@@CTS@DS@#@@@^ WRITE (6,16)*[@@@@CTS@D+@C@@@^UZ )@@G@@ 16 FORMAT('0*ERROR*: .END CARD MISSING'/) *[@@@@CTS@D?@#@@@^ VA )@@G@@GO TO 1000 *[@@@@CTS@D6@[@@@^C *[@@@@CTS@E@@A@@@^C ELIMINATE TRAILVB )@@G@@ING BLANKS RAPIDLY*[@@@@CTS@EE@[@@@^C *[@@@@CTS@EO@B@@@^ 20 IF (AFVC )@@G@@IELD(NOFLD).NE.ABLNK) GO TO 40*[@@@@CTS@EY@ @@@^ IF (NOFLD.EQ.1) GOVD )@@G@@ TO 30*[@@@@CTS@E*@^@@@^ NOFLD=NOFLD-1 *[@@@@CTS@E2@#@@@^ VE )@@G@@GO TO 20 *[@@@@CTS@E/@^@@@^C... WRITE BLANK CARD *[@@@@CTS@FA@#@@@^VF )@@G@@ 30 WRITE (6,31)*[@@@@CTS@FK@#@@@^ 31 FORMAT(1X) *[@@@@CTS@FU@#@@@^VG )@@G@@ GO TO 10 *[@@@@CTS@F=@B@@@^C... COPY THE CARD TO OUTPUT LISTINVH )@@G@@G *[@@@@CTS@F,@B@@@^ 40 WRITE (6,41) (AFIELD(I),I=1,NOFLD) *[@@@@VI )@@G@@CTS@F8@^@@@^ 41 FORMAT(1X,15A8) *[@@@@CTS@G]@[@@@^C *[@@@@CTS@GGVJ )@@G@@@ @@@^C INITIALIZATION FOR NEW CARD*[@@@@CTS@GQ@[@@@^C *[@@@@CTS@G)VK )@@G@@@#@@@^ 45 KNTRC=0 *[@@@@CTS@G%@A@@@^ KNTLIM=MIN0(8*NOFLD,IWIDVL )@@G@@TH) *[@@@@CTS@G4@[@@@^C *[@@@@CTS@G"@E@@@^C FETCH FIRST NON-DELIMVM )@@G@@ITER (SEE ROUTINE 'NXTCHR' FOR LIST)*[@@@@CTS@HC@[@@@^C *[@@@@CTS@HMVN )@@G@@@ @@@^ 50 IF (NXTCHR(0)) 600,50,60*[@@@@CTS@HW@B@@@^C... CHECK FOR COVO )@@G@@MMENT (LEADING ASTERISK)*[@@@@CTS@H&@A@@@^ 60 IF (ACHAR.EQ.ASTK) GO TOVP )@@G@@ 10 *[@@@@CTS@H0@#@@@^ GO TO 100 *[@@@@CTS@H'@[@@@^C *[@@@@VQ )@@G@@CTS@I^@^@@@^C FETCH NEXT CHARACTER *[@@@@CTS@II@[@@@^C *[@@@@CTS@ISVR )@@G@@@A@@@^ 70 IF (NXTCHR(0)) 600,80,100 *[@@@@CTS@I+@[@@@^C *[@@@@VS )@@G@@CTS@I?@G@@@^C TWO CONSECUTIVE DELIMITERS IMPLY NUMERIC ZERO UNLESS THE VT )@@G@@DELIMITER *[@@@@CTS@I6@ @@@^C IS A BLANK OR PARENTHESIS. *[@@@@CTS@J@VU )@@G@@@[@@@^C *[@@@@CTS@JE@A@@@^ 80 IF (ACHAR.EQ.ABLNK) GO TO 70 *[@@@@VV )@@G@@CTS@JO@A@@@^ IF (ACHAR.EQ.ALPRN) GO TO 70 *[@@@@CTS@JY@A@@@^ VW )@@G@@IF (ACHAR.EQ.ARPRN) GO TO 70 *[@@@@CTS@J*@D@@@^C... CHECK FOR SUFFICIEVX )@@G@@NT SPACE IN STORAGE ARRAYS *[@@@@CTS@J2@B@@@^ IF (NUMFLD.LT.INSIVY )@@G@@ZE-1) GO TO 90 *[@@@@CTS@J/@ @@@^ CALL EXTMEM(LFIELD,2*50)*[@@@@VZ )@@G@@CTS@KA@ @@@^ CALL EXTMEM(ICODE,50) *[@@@@CTS@KK@ @@@^ CALL EWA )@@G@@XTMEM(LDELIM,2*50)*[@@@@CTS@KU@ @@@^ CALL EXTMEM(ICOLUM,50) *[@@@@WB )@@G@@CTS@K=@^@@@^ INSIZE=INSIZE+50 *[@@@@CTS@K,@^@@@^ 90 NUMFLD=NUMFLWC )@@G@@D+1 *[@@@@CTS@K8@A@@@^ VALUE(IFIELD+NUMFLD)=0.D0 *[@@@@CTS@L]WD )@@G@@@ @@@^ NODPLC(ICODE+NUMFLD)=0 *[@@@@CTS@LG@A@@@^ VALUE(IDELIMWE )@@G@@+NUMFLD)=ACHAR *[@@@@CTS@LQ@A@@@^ NODPLC(ICOLUM+NUMFLD)=KNTRC WF )@@G@@*[@@@@CTS@L)@#@@@^ GO TO 70 *[@@@@CTS@L%@[@@@^C *[@@@@CTS@L4WG )@@G@@@C@@@^C CHECK FOR SUFFICIENT SPACE IN STORAGE ARRAYS *[@@@@CTS@L"@[@@@^WH )@@G@@C *[@@@@CTS@MC@B@@@^ 100 IF (NUMFLD.LT.INSIZE-1) GO TO 110 *[@@@@WI )@@G@@CTS@MM@ @@@^ CALL EXTMEM(LFIELD,2*50)*[@@@@CTS@MW@ @@@^ CALL EWJ )@@G@@XTMEM(ICODE,50) *[@@@@CTS@M&@ @@@^ CALL EXTMEM(LDELIM,2*50)*[@@@@WK )@@G@@CTS@M0@ @@@^ CALL EXTMEM(ICOLUM,50) *[@@@@CTS@M'@^@@@^ INSIZEWL )@@G@@=INSIZE+50 *[@@@@CTS@N^@[@@@^C *[@@@@CTS@NI@ @@@^C BEGIN SCAN OF NWM )@@G@@EXT FIELD *[@@@@CTS@NS@[@@@^C *[@@@@CTS@N+@^@@@^C... INITIALIZATIWN )@@G@@ON *[@@@@CTS@N?@#@@@^ 110 JDELIM=0 *[@@@@CTS@N6@#@@@^ XSIGN=WO )@@G@@1.D0 *[@@@@CTS@O@@#@@@^ XMANT=0.D0 *[@@@@CTS@OE@]@@@^ IDEC=0WP )@@G@@*[@@@@CTS@OO@]@@@^ IEXP=0*[@@@@CTS@OY@B@@@^C... CHECK FOR LEADING WQ )@@G@@PLUS OR MINUS SIGN*[@@@@CTS@O*@A@@@^ IF (ACHAR.EQ.APLUS) GO TO 210 WR )@@G@@*[@@@@CTS@O2@A@@@^ IF (ACHAR.EQ.AMINUS) GO TO 200*[@@@@CTS@O/@ @@@^WS )@@G@@C... FINISH INITIALIZATION *[@@@@CTS@PA@#@@@^ ANAM=ABLNK *[@@@@WT )@@G@@CTS@PK@]@@@^ KCHR=1*[@@@@CTS@PU@G@@@^C... AN ISOLATED PERIOD INDICWU )@@G@@ATES THAT A CONTINUATION CARD FOLLOWS *[@@@@CTS@P=@A@@@^ IF (ACWV )@@G@@HAR.NE.APER) GO TO 120 *[@@@@CTS@P,@E@@@^C... ALTER INITIALIZATION SLIWW )@@G@@GHTLY IF LEADING PERIOD FOUND *[@@@@CTS@P8@]@@@^ IDEC=1*[@@@@CTS@Q]WX )@@G@@@#@@@^ IEXP=-1 *[@@@@CTS@QG@#@@@^ ANAM=APER *[@@@@CTS@QQWY )@@G@@@]@@@^ KCHR=2*[@@@@CTS@Q)@C@@@^C... NOW TAKE A LOOK AT THE NEXT CHWZ )@@G@@ARACTER *[@@@@CTS@Q%@ @@@^ IF (NXTCHR(0)) 10,10,120*[@@@@CTS@Q4XA )@@G@@@[@@@^C *[@@@@CTS@Q"@ @@@^C TEST FOR NUMBER (ANY DIGIT)*[@@@@CTS@RCXB )@@G@@@[@@@^C *[@@@@CTS@RM@^@@@^ 120 DO 130 I=1,10 *[@@@@CTS@RW@B@@@^XC )@@G@@ IF (ACHAR.NE.ADIGIT(I)) GO TO 130 *[@@@@CTS@R&@^@@@^ XMANT=XD )@@G@@DFLOAT(I-1) *[@@@@CTS@R0@#@@@^ GO TO 210 *[@@@@CTS@R'@#@@@^ 130 XE )@@G@@CONTINUE *[@@@@CTS@S^@[@@@^C *[@@@@CTS@SI@#@@@^C ASSEMBLE NAME XF )@@G@@*[@@@@CTS@SS@[@@@^C *[@@@@CTS@S+@^@@@^ NUMFLD=NUMFLD+1 *[@@@@XG )@@G@@CTS@S?@A@@@^ CALL MOVE(ANAM,KCHR,ACHAR,1,1)*[@@@@CTS@S6@#@@@^ XH )@@G@@KCHR=KCHR+1 *[@@@@CTS@T@@^@@@^ DO 150 I=KCHR,8 *[@@@@CTS@TE@A@@@^XI )@@G@@ IF (NXTCHR(0)) 160,160,140 *[@@@@CTS@TO@A@@@^ 140 CALL MOVE(ANXJ )@@G@@AM,I,ACHAR,1,1) *[@@@@CTS@TY@#@@@^ 150 CONTINUE *[@@@@CTS@T*@#@@@^XK )@@G@@ GO TO 170 *[@@@@CTS@T2@#@@@^ 160 JDELIM=1 *[@@@@CTS@T/@A@@@^XL )@@G@@ 170 VALUE(IFIELD+NUMFLD)=ANAM *[@@@@CTS@UA@ @@@^ NODPLC(ICODEXM )@@G@@+NUMFLD)=1 *[@@@@CTS@UK@A@@@^ NODPLC(ICOLUM+NUMFLD)=KNTRC *[@@@@XN )@@G@@CTS@UU@E@@@^C... NO '+' FORMAT CONTINUATION POSSIBLE FOR .END CARD XO )@@G@@*[@@@@CTS@U=@A@@@^ IF (NUMFLD.GE.2) GO TO 400 *[@@@@CTS@U,@A@@@^XP )@@G@@ IF (ANAM.NE.AEND) GO TO 400 *[@@@@CTS@U8@A@@@^ NODPLC(ICODEXQ )@@G@@+NUMFLD+1)=-1 *[@@@@CTS@V]@#@@@^ GO TO 1000 *[@@@@CTS@VG@[@@@^XR )@@G@@C *[@@@@CTS@VQ@#@@@^C PROCESS NUMBER *[@@@@CTS@V)@[@@@^C *[@@@@XS )@@G@@CTS@V%@B@@@^C... TAKE NOTE OF LEADING MINUS SIGN *[@@@@CTS@V4@#@@@^XT )@@G@@ 200 XSIGN=-1.D0 *[@@@@CTS@V"@B@@@^C... TAKE A LOOK AT THE NEXT CHARACXU )@@G@@TER *[@@@@CTS@WC@A@@@^ 210 IF (NXTCHR(0)) 335,335,220 *[@@@@CTS@WMXV )@@G@@@^@@@^C... TEST FOR DIGIT *[@@@@CTS@WW@^@@@^ 220 DO 230 I=1,10 XW )@@G@@*[@@@@CTS@W&@B@@@^ IF (ACHAR.NE.ADIGIT(I)) GO TO 230 *[@@@@CTS@W0XX )@@G@@@A@@@^ XMANT=XMANT*10.D0+DFLOAT(I-1) *[@@@@CTS@W'@ @@@^ IF (IDXY )@@G@@EC.EQ.0) GO TO 210*[@@@@CTS@X^@#@@@^ IEXP=IEXP-1 *[@@@@CTS@XI@#@@@^XZ )@@G@@ GO TO 210 *[@@@@CTS@XS@#@@@^ 230 CONTINUE *[@@@@CTS@X+@[@@@^YA )@@G@@C *[@@@@CTS@X?@ @@@^C CHECK FOR DECIMAL POINT *[@@@@CTS@X6@[@@@^YB )@@G@@C *[@@@@CTS@Y@@A@@@^ IF (ACHAR.NE.APER) GO TO 240 *[@@@@CTS@YEYC )@@G@@@D@@@^C... MAKE CERTAIN THAT THIS IS THE FIRST ONE FOUND *[@@@@CTS@YOYD )@@G@@@ @@@^ IF (IDEC.NE.0) GO TO 500*[@@@@CTS@YY@]@@@^ IDEC=1*[@@@@YE )@@G@@CTS@Y*@#@@@^ GO TO 210 *[@@@@CTS@Y2@[@@@^C *[@@@@CTS@Y/@^@@@^YF )@@G@@C TEST FOR EXPONENT *[@@@@CTS@ZA@[@@@^C *[@@@@CTS@ZK@A@@@^ 240 YG )@@G@@IF (ACHAR.NE.AE) GO TO 300 *[@@@@CTS@ZU@A@@@^ IF (NXTCHR(0)) 335YH )@@G@@,335,250 *[@@@@CTS@Z=@#@@@^ 250 ITEMP=0 *[@@@@CTS@Z,@#@@@^ YI )@@G@@ISIGN=1 *[@@@@CTS@Z8@D@@@^C... CHECK FOR POSSIBLE LEADING SIGN ON EYJ )@@G@@XPONENT *[@@@@CTS@)]@A@@@^ IF (ACHAR.EQ.APLUS) GO TO 260 *[@@@@YK )@@G@@CTS@)G@A@@@^ IF (ACHAR.NE.AMINUS) GO TO 270*[@@@@CTS@)Q@#@@@^ YL )@@G@@ISIGN=-1 *[@@@@CTS@))@A@@@^ 260 IF (NXTCHR(0)) 285,285,270 *[@@@@YM )@@G@@CTS@)%@^@@@^C... TEST FOR DIGIT *[@@@@CTS@)4@^@@@^ 270 DO 280 I=1,1YN )@@G@@0 *[@@@@CTS@)"@B@@@^ IF (ACHAR.NE.ADIGIT(I)) GO TO 280 *[@@@@YO )@@G@@CTS@-C@^@@@^ ITEMP=ITEMP*10+I-1*[@@@@CTS@-M@#@@@^ GO TO 260 YP )@@G@@*[@@@@CTS@-W@#@@@^ 280 CONTINUE *[@@@@CTS@-&@#@@@^ GO TO 290 YQ )@@G@@*[@@@@CTS@-0@#@@@^ 285 JDELIM=1 *[@@@@CTS@-'@A@@@^C... CORRECT INTEYR )@@G@@RNAL EXPONENT *[@@@@CTS@+^@ @@@^ 290 IEXP=IEXP+ISIGN*ITEMP *[@@@@YS )@@G@@CTS@+I@#@@@^ GO TO 340 *[@@@@CTS@+S@[@@@^C *[@@@@CTS@++@^@@@^YT )@@G@@C TEST FOR SCALE FACTOR*[@@@@CTS@+?@[@@@^C *[@@@@CTS@+6@A@@@^ 300 YU )@@G@@IF (ACHAR.NE.AM) GO TO 330 *[@@@@CTS@<@@E@@@^C... SPECIAL CHECK FOR YV )@@G@@'ME' (AS DISTINGUISHED FROM 'M') *[@@@@CTS@]@A@@@^ IF (ACHAR.EQ.AU) IEXP=IEXP-6 *[@@@@CTS@>G@A@@@^ ZE )@@G@@IF (ACHAR.EQ.AN) IEXP=IEXP-9 *[@@@@CTS@>Q@A@@@^ IF (ACHAR.EQ.AP) IZF )@@G@@EXP=IEXP-12 @A@@@C IF (ACHAR.EQ.AF) IEXP=IEXP-15 *[@@@@CTS@>)@#@@@^ZG )@@G@@ GO TO 340 *[@@@@CTS@>%@#@@@^ 335 JDELIM=1 *[@@@@CTS@>4@[@@@^ZH )@@G@@C *[@@@@CTS@>"@ @@@^C ASSEMBLE THE FINAL NUMBER *[@@@@CTS@&C@[@@@^ZI )@@G@@C *[@@@@CTS@&M@A@@@^ 340 IF (XMANT.EQ.0.D0) GO TO 350 *[@@@@CTS@&WZJ )@@G@@@ @@@^ IF (IEXP.EQ.0) GO TO 350*[@@@@CTS@&&@B@@@^ IF (IABS(IEXZK )@@G@@P).GE.75) GO TO 500 *[@@@@CTS@&0@C@@@^ XMANT=XMANT*DEXP(DFLOAT(ZL )@@G@@IEXP)*XLOG10) *[@@@@CTS@&'@A@@@^ IF (XMANT.GT.1.D+75) GO TO 500ZM )@@G@@*[@@@@CTS@$^@A@@@^ IF (XMANT.LT.1.D-75) GO TO 500*[@@@@CTS@$I@^@@@^ZN )@@G@@ 350 NUMFLD=NUMFLD+1 *[@@@@CTS@$S@C@@@^ VALUE(IFIELD+NUMFLD)=DSIZO )@@G@@GN(XMANT,XSIGN) *[@@@@CTS@$+@ @@@^ NODPLC(ICODE+NUMFLD)=0 *[@@@@ZP )@@G@@CTS@$?@A@@@^ NODPLC(ICOLUM+NUMFLD)=KNTRC *[@@@@CTS@$6@[@@@^C ZQ )@@G@@*[@@@@CTS@*@@C@@@^C SKIP TO NON-BLANK DELIMITER (IF NECESSARY) *[@@@@ZR )@@G@@CTS@*E@[@@@^C *[@@@@CTS@*O@A@@@^ 400 IF (JDELIM.EQ.0) GO TO 440 ZS )@@G@@*[@@@@CTS@*Y@A@@@^ 410 VALUE(IDELIM+NUMFLD)=ACHAR *[@@@@CTS@**@G@@@^ZT )@@G@@C... THE CHARACTERS ) AND . FORM A SINGLE DELIMITER IF ADJACENT ZU )@@G@@*[@@@@CTS@*2@A@@@^ IF (ACHAR.NE.ABLNK) GO TO 70 *[@@@@CTS@*/@A@@@^ZV )@@G@@ IF (NXTCHR(0)) 450,410,420 *[@@@@CTS@(A*[@@@@CTS@(E*[@@@@CTS@(GZW )@@G@@*[@@@@CTS@(K*[@@@@CTS@(U*[@@@@CTS@(=@^@@@^ 420 KNTRC=KNTRC-1 *[@@@@ZX )@@G@@CTS@(,@#@@@^ GO TO 70 *[@@@@CTS@(8@A@@@^ 440 IF (NXTCHR(0)) 450ZY )@@G@@,410,440 *[@@@@CTS@%]@A@@@^ 450 VALUE(IDELIM+NUMFLD)=ACHAR *[@@@@ZZ )@@G@@CTS@%G@#@@@^ GO TO 600 *[@@@@CTS@%Q@[@@@^C *[@@@@CTS@%)@]@@@^AA )@@G@@C ERRORS *[@@@@CTS@%%@[@@@^C *[@@@@CTS@%4@ @@@^ 500 WRITE (6,501AB )@@G@@) KNTRC *[@@@@CTS@%"@G@@@^ 501 FORMAT('0*ERROR*: ILLEGAL NUMBER --AC )@@G@@ SCAN STOPPED AT COLUMN ',I3/)*[@@@@CTS@:C@#@@@^ IGOOF=1 *[@@@@AD )@@G@@CTS@:M@^@@@^ NUMFLD=NUMFLD+1 *[@@@@CTS@:W@A@@@^ VALUE(IFIELDAE )@@G@@+NUMFLD)=0.D0 *[@@@@CTS@:&@ @@@^ NODPLC(ICODE+NUMFLD)=0 *[@@@@AF )@@G@@CTS@:0@A@@@^ VALUE(IDELIM+NUMFLD)=ACHAR *[@@@@CTS@:'@A@@@^ AG )@@G@@NODPLC(ICOLUM+NUMFLD)=KNTRC *[@@@@CTS@?^@[@@@^C *[@@@@CTS@?I@]@@@^AH )@@G@@C FINISHED *[@@@@CTS@?S@[@@@^C *[@@@@CTS@?+@A@@@^ 600 NODPLC(ICODEAI )@@G@@+NUMFLD+1)=-1 *[@@@@CTS@??@[@@@^C *[@@@@CTS@?6@C@@@^C CHECK NEXAJ )@@G@@T LINE FOR POSSIBLE CONTINUATION *[@@@@CTS@!@@[@@@^C *[@@@@CTS@!EAK )@@G@@@#@@@^ 610 CALL GETLIN *[@@@@CTS@!O@ @@@^ IF (KEOF.EQ.1) GO TO 15 AL )@@G@@*[@@@@CTS@!Y@F@@@^C... CONTINUATION DENOTED BY '+' IN COLUMN 1 OF FOLLOAM )@@G@@WING CARD *[@@@@CTS@!*@A@@@^ CALL MOVE(ACHAR,1,AFIELD,1,1) *[@@@@AN )@@G@@CTS@!2@#@@@^ NOFLD=15 *[@@@@CTS@!/@C@@@^ 620 IF (AFIELD(NOFLD).AO )@@G@@NE.ABLNK) GO TO 630 *[@@@@CTS@,A@A@@@^ IF (NOFLD.EQ.1) GO TO 65AP )@@G@@0 *[@@@@CTS@,K@^@@@^ NOFLD=NOFLD-1 *[@@@@CTS@,U@#@@@^ AQ )@@G@@GO TO 620 *[@@@@CTS@,=@A@@@^ 630 IF (ACHAR.NE.APLUS) GO TO 640 *[@@@@AR )@@G@@CTS@,,@B@@@^ WRITE (6,41) (AFIELD(I),I=1,NOFLD) *[@@@@CTS@,8@#@@@^AS )@@G@@ KNTRC=1 *[@@@@CTS@\]@A@@@^ KNTLIM=MIN0(8*NOFLD,IWIDTH) AT )@@G@@*[@@@@CTS@\G@#@@@^ GO TO 70 *[@@@@CTS@\Q@A@@@^ 640 IF (ACHAR.NEAU )@@G@@.ASTK) GO TO 1000 *[@@@@CTS@\)@B@@@^ 650 WRITE (6,41) (AFIELD(I),I=1,NOAV )@@G@@FLD) *[@@@@CTS@\%@#@@@^ GO TO 610 *[@@@@CTS@\4@]@@@^ 1000 RETURNAW )@@G@@*[@@@@CTS@\"@]@@@^ END ___@@@CTS@E*@^@@@^ NOFLD=NOFLD-1 AX )@@G@@*[@@@@CTS@E2@#@@@^ GO TO 20 *[@@@@CTS@E/@^@@@^C... WRITE BLANK AY )@@G@@CARD *[@@@@CTS@FA@#@@@^*[S@@@*SDFF**[@@@@CTS@@C@F@^@[C SUBROUTINE NAZ )@@G@@EWNOD(/NODOLD/,/NODNEW/,/INODX/,/INODI/,/NNODI/)@F@@@^ SUBROUTINE NBA )@@G@@EWNOD(/NODOLD/,/NODNEW/,/INODX/,/INODI/,/NNODI/)*[@@@@CTS@@E@F@^@[ BB )@@G@@SUBROUTINE NEWNOD(NODOLD,NODNEW,NDEX,INODX,INODI,NNODI) *[@@@@CTS@@OBC )@@G@@@[@@@[C *[@@@@CTS@@Y@G@@@[C THIS ROUTINE MAKES A NEW NODE NUMBERBD )@@G@@ FOR AN ELEMENT WHICH IS ABOUT*[@@@@CTS@@*@F@@@[C TO BE ADDED TO THE CIRBE )@@G@@CUIT AS A RESULT OF A SUBCIRCUIT CALL. *[@@@@CTS@@2@[@@@[C *[@@@@BF )@@G@@CTS@@/@A@@@[ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABG )@@G@@BINF,LIST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.BLBH )@@G@@ANK,LIST @^@#@]@ADD,P *SPICE.NEWNODD *[@@@@CTS@[A@G@]@[ COMMONBI )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[KBJ )@@G@@@G@]@[ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEBK )@@G@@, *[@@@@CTS@[U@G@]@[ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,BL )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@]@[ 3 NMOFFC,ISEQ,ISEQ1,NEQBM )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@]@[ 4 LX0BN )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8BO )@@G@@@#@]@[ 5 LOUTPT, *[@@@@CTS@]]@E@]@[ 6 LUNSAT,LTEMPS,LFIELD,BP )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@]@[ 7 LLX0,LLVN,LLYNLBQ )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@]@[ 8BR )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@]@[ COMMON /CIRDAT/ LOBS )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]%@C@]@[ 1BT )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]4@ @]@[ COMMONBU )@@G@@ /BLANK/ VALUE(64)*[@@@@CTS@]"@^@]@[ INTEGER NODPLC(64)*[@@@@CTS@#]BV )@@G@@@ @]@[ INTEGER*4 NODNEW(1) *[@@@@CTS@#C@ @]@[ COMPLEX*16 CBW )@@G@@VALUE(32) *[@@@@CTS@#M@C@]@[ EQUIVALENCE (VALUE(1),NODPLC(1),CVALBX )@@G@@UE(1))*[@@@@CTS@#W@[@@@[C *[@@@@CTS@#&@[@@@[C *[@@@@CTS@#0@ @@@[BY )@@G@@ IF (NODOLD.NE.0) GO TO 5*[@@@@CTS@#8@^@@@[C NODNEW(NDEX)=1 BZ )@@G@@*[@@@@CTS@#'@#@@@[ NODNEW=1 *[@@@@CTS@^^@#@@@[ GO TO 20 CA )@@G@@*[@@@@CTS@^I@^@@@[ 5 DO 10 I=1,NNODI *[@@@@CTS@^S@C@@@[ IF (NOCB )@@G@@DOLD.NE.NODPLC(INODX+I)) GO TO 10 *[@@@@CTS@^)@A@@@[C NODNEW(NDEX)CC )@@G@@=NODPLC(INODI+I) *[@@@@CTS@^+@ @@@[ NODNEW=NODPLC(INODI+I) *[@@@@CD )@@G@@CTS@^?@#@@@[ GO TO 20 *[@@@@CTS@^6@#@@@[ 10 CONTINUE *[@@@@CE )@@G@@CTS@ @@[@@@[C *[@@@@CTS@ E@ @@@[ CALL EXTMEM(INODX,1) *[@@@@CF )@@G@@CTS@ O@ @@@[ CALL EXTMEM(INODI,1) *[@@@@CTS@ Y@ @@@[ CALL ECG )@@G@@XTMEM(JUNODE,1) *[@@@@CTS@ *@^@@@[ NNODI=NNODI+1 *[@@@@CTS@ 2CH )@@G@@@^@@@[ NCNODS=NCNODS+1 *[@@@@CTS@ /@A@@@[ NODPLC(INODX+NNODICI )@@G@@)=NODOLD *[@@@@CTS@AA@A@@@[ NODPLC(INODI+NNODI)=NCNODS *[@@@@CJ )@@G@@CTS@AK@D@@@[ NODPLC(JUNODE+NCNODS)=NODPLC(JUNODE+NCNODS-1)+1 *[@@@@CK )@@G@@CTS@AS@ @@@[C NODNEW(NDEX)=NCNODS *[@@@@CTS@AU@^@@@[ NODNEWCL )@@G@@=NCNODS *[@@@@CTS@A=@]@@@[ 20 RETURN*[@@@@CTS@A,@]@@@[ END CM )@@G@@___ NODNEW(NDEX)=NCNODS @ @@@[C NODNEW(NDEX)=NCNODS *[@@@@CN )@@G@@CTS@AU@^@[@@C NODNEW=NCNODS @^@@@[ NODNEW=NCNODS *[@@@@CO )@@G@@CTS@A=@]@@@@ 20 RETURN*[S@@@*SDFF**[@@@@CTS@@E@B@@@@ SUBROUTINE CCP )@@G@@PYTAB(/ITABO/,/ITABN/) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C CQ )@@G@@THIS ROUTINE COPIES A TABLE. ITS USE IS MADE NECESSARY BY THE *[@@@@CR )@@G@@CTS@@*@D@@@@C FACT THAT ONLY ONE POINTER IS ALLOWED PER TABLE. *[@@@@CS )@@G@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) CT )@@G@@@ @@@# INCLUDE F.BLANK,LIST @^@#@]@ADD,P *SPICE.CPYTAB *[@@@@CU )@@G@@CTS@[A@ @]@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@[K@^@#@@ INTEGECV )@@G@@R NODPLC(64)*[@@@@CTS@[U@ @#@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@[=CW )@@G@@@C@#@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@[,@[@@@@CX )@@G@@C *[@@@@CTS@[8@[@@@@C *[@@@@CTS@]]@^@[@@ NVAL=NODPLC(ITABO)CY )@@G@@*[@@@@CTS@]G@ @[@@ CALL SIZMEM(NVAL,ISIZE) *[@@@@CTS@]Q@B@[@@C CZ )@@G@@CALL SIZMEM(NODPLC(ITABO),ISIZE) @B@@@[ CALL SIZMEM(NODPLC(ITABODA )@@G@@),ISIZE) *[@@@@CTS@])@B@[@@ CALL GETMEM(NODPLC,ITABN,ISIZE) DB )@@G@@*[@@@@CTS@]%@B@[@@C CALL GETMEM(NODPLC(ITABN),ISIZE) @B@@@[ DC )@@G@@CALL GETMEM(NODPLC(ITABN),ISIZE) *[@@@@CTS@]4@^@@@@ LOCO=NODPLC(DD )@@G@@ITABO)*[@@@@CTS@]"@^@@@@ LOCN=NODPLC(ITABN)*[@@@@CTS@#]@C@[@@ DE )@@G@@CALL COPY4(NODPLC,LOCO+1,LOCN+1,ISIZE) *[@@@@CTS@#C@D@[@@C CALL CDF )@@G@@OPY4(NODPLC(LOCO+1),NODPLC(LOCN+1),ISIZE) @D@@@[ CALL COPY4(NODPLC(DG )@@G@@LOCO+1),NODPLC(LOCN+1),ISIZE) *[@@@@CTS@#M@]@@@@ RETURN*[@@@@CTS@#WDH )@@G@@@]@@@@ END ___@@@CTS@]"@A@@@@^@)^@)^@)D-JCTIB(ID9^E[GCS*DDOCD]D0(DI )@@G@@*[@@@@CTS@#]@G@[@@^@)^@)^@)CT[D-G^[#D9KFC4 [ID9^E[GCS?D-JCTJ S1 -GD9#D0:DJ )@@G@@AC?DDNDDUC*(^@)^@)*[@@@@*[S@@@*SDFF**[@@@@CTS@@E@^@@@] SUBROUTINE SDK )@@G@@ETUP *[@@@@CTS@@O@[@@@]C *[@@@@CTS@@Y@F@@@]C THIS ROUTINE DRIVEDL )@@G@@S THE SPARSE MATRIX SETUP USED BY SPICE. *[@@@@CTS@@*@[@@@]C *[@@@@DM )@@G@@CTS@@2@A@@@] IMPLICIT REAL*8 (A-H,O-Z) @ @@@ INCLUDE F.TADN )@@G@@BINF,LIST @ @@@ INCLUDE F.CIRDAT,LIST @ @@@ INCLUDE F.MIDO )@@G@@SCEL,LIST @ @@@ INCLUDE F.FLAGS,LIST @ @@@ INCLUDE F.STDP )@@G@@ATUS,LIST @^@@@ INCLUDE F.DC,LIST @^@@@ INCLUDE F.AC,LIST DQ )@@G@@@ @@@ INCLUDE F.DEBUG,LIST @ @@@ INCLUDE F.BLANK,LIST DR )@@G@@@^@ @^@ADD,P *SPICE.SETUPD *[@@@@CTS@@/@G@^@] COMMON /TABINF/ IEDS )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[A@G@^@] 1DT )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@DU )@@G@@CTS@[K@G@^@] 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,DV )@@G@@NUMOFF,ISR, *[@@@@CTS@[U@G@^@] 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIDW )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@^@] 4 LX0,LVN,LYNL,LYDX )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[,@#@^@] 5DY )@@G@@ LOUTPT, *[@@@@CTS@[8@E@^@] 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKDZ )@@G@@P,LACINS,LLVNIM, *[@@@@CTS@]]@G@^@] 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LEA )@@G@@LX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]G@A@^@] 8 LLD0,LLD1EB )@@G@@,LLTD,LLOUTP,LDIAG*[@@@@CTS@]Q@G@^@] COMMON /CIRDAT/ LOCATE(50),JELEC )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@])@C@^@] 1 NUT,NLT,NED )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]%@G@^@] COMMON /MISCEL/ APEE )@@G@@ROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@]4@ @^@] 1EF )@@G@@ IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@]"@ @^@] INTEGER*4 ATIME,ADATE EG )@@G@@*[@@@@CTS@#C@G@^@] COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTEH )@@G@@O,LIMTIM,LIMPTS, *[@@@@CTS@#M@F@^@] 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLEI )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@#W@G@^@] COMMON /DC/ TCSTAREJ )@@G@@,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, *[@@@@CTS@#&@^@^@] 1EK )@@G@@ KOVAR,KIDOUT *[@@@@CTS@#0@G@^@] COMMON /AC/ FSTART,FSTOP,FINCREL )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, *[@@@@CTS@#'@C@^@] 1 INOISE,NOEM )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT *[@@@@CTS@^^@ @^@] COMMON /BLANK/ VALEN )@@G@@UE(64)*[@@@@CTS@^I@^@^@] INTEGER NODPLC(64)*[@@@@CTS@^M@^@#@] EO )@@G@@EXTERNAL *TIMER *[@@@@CTS@^S@ @^@] COMPLEX*16 CVALUE(32) *[@@@@EP )@@G@@CTS@^+@C@^@] EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^?EQ )@@G@@@[@@@]C *[@@@@CTS@^6@[@@@]C *[@@@@CTS@ @@^@@@]C CALL SECOND(ER )@@G@@T1) @[@@@AC @^@@@A LOGICAL MEMPTR @[@@@AC *[@@@@CTS@ EES )@@G@@@G@@@] NSTOP=NUMNOD+JELCNT(3)+JELCNT(6)+JELCNT(8)+JELCNT(9)+2*JELCNET )@@G@@T(17) @ @@@# IF(MODE.NE.3) GO TO 10 @ @@@# IF(MODAC.NE.3) GO EU )@@G@@TO 10 @^@@@# NSTOP=NSTOP+1 @A@@@# IF(IPZITP.EQ.41) NSTOP=NEV )@@G@@STOP+1@[@@@#C @^@@@#C CLEAR OLD TABLES @[@@@#C @B@@@# EW )@@G@@IF(MEMPTR(ISWAP)) CALL CLRMEM(ISWAP)@C@@@# IF(MEMPTR(IORDER)) CALL EX )@@G@@CLRMEM(IORDER) @B@@@# IF(MEMPTR(IUR)) CALL CLRMEM(IUR) @B@@@#EY )@@G@@ IF(MEMPTR(ILC)) CALL CLRMEM(ILC) @B@@@# IF(MEMPTR(IUC)) CAEZ )@@G@@LL CLRMEM(IUC) @B@@@# IF(MEMPTR(ILR)) CALL CLRMEM(ILR) *[@@@@FA )@@G@@CTS@ O@[@@@]C *[@@@@CTS@ Y@C@@@]C RESERVE MATRIX LOCATIONS FOR EACHFB )@@G@@ ELEMENT *[@@@@CTS@ *@[@@@]C *[@@@@CTS@ 2@#@A@] CALL MATPTR FC )@@G@@@#@@@A 10 CALL MATPTR *[@@@@CTS@ /@A@@@] IF (NOGO.NE.0) GO TO 100FD )@@G@@0 *[@@@@CTS@AA@[@@@]C *[@@@@CTS@AK@C@@@]C REORDER MATRIX POINTEFE )@@G@@RS FOR MINIMAL FILL-IN *[@@@@CTS@AU@[@@@]C *[@@@@CTS@A=@#@@@] FF )@@G@@NTTBR=0 *[@@@@CTS@A,@^@@@] DO 120 I=2,NSTOP *[@@@@CTS@A8@#@@@]FG )@@G@@ LOC=ISR+I *[@@@@CTS@B]@B@@@] 110 IF (NODPLC(LOC).EQ.0) GO TO 12FH )@@G@@0 *[@@@@CTS@BG@^@@@] LOC=NODPLC(LOC) *[@@@@CTS@BQ@^@@@] FI )@@G@@NTTBR=NTTBR+1 *[@@@@CTS@B)@#@@@] GO TO 110 *[@@@@CTS@B%@#@@@]FJ )@@G@@ 120 CONTINUE *[@@@@CTS@B4@#@@@]C... ADD GROUND *[@@@@CTS@B"@^@@@]FK )@@G@@ NTTBR=NTTBR+1 *[@@@@CTS@CC@#@@@] CALL REORDR *[@@@@CTS@CMFL )@@G@@@A@@@] IF (NOGO.NE.0) GO TO 1000 *[@@@@CTS@CW@F@@@] NTTAR=FM )@@G@@NODPLC(IUR+NSTOP+1)-1+NODPLC(ILC+NSTOP+1)-1+NSTOP *[@@@@CTS@C&@^@@@]FN )@@G@@ IFILL=NTTAR-NTTBR *[@@@@CTS@C0@F@@@] PERSPA=100.0D0*(1.0D0-DFFO )@@G@@LOAT(NTTAR)/DFLOAT(NSTOP*NSTOP)) *[@@@@CTS@C'@]@@@] IOPS=0*[@@@@FP )@@G@@CTS@D^@^@@@] DO 130 I=2,NSTOP *[@@@@CTS@DI@B@@@] NOFFR=NODPLCFQ )@@G@@(IUR+I+1)-NODPLC(IUR+I) *[@@@@CTS@DS@B@@@] NOFFC=NODPLC(ILC+I+1)-NOFR )@@G@@DPLC(ILC+I) *[@@@@CTS@D+@B@@@] IOPS=IOPS+NOFFR+NOFFC*(NOFFR+2)+1 FS )@@G@@*[@@@@CTS@D?@#@@@] 130 CONTINUE *[@@@@CTS@D6@^@@@] RSTATS(20)=NFT )@@G@@STOP *[@@@@CTS@E@@^@@@] RSTATS(21)=NTTBR *[@@@@CTS@EE@^@@@] FU )@@G@@RSTATS(22)=NTTAR *[@@@@CTS@EO@^@@@] RSTATS(23)=IFILL *[@@@@CTS@EYFV )@@G@@@^@@@] RSTATS(24)=0.0D0 *[@@@@CTS@E*@^@@@] RSTATS(25)=NTTAR FW )@@G@@*[@@@@CTS@E2@^@@@] RSTATS(26)=IOPS *[@@@@CTS@E/@^@@@] RSTATSFX )@@G@@(27)=PERSPA *[@@@@CTS@FA@[@@@]C *[@@@@CTS@FK@ @@@]C STORE MATRIX LOFY )@@G@@CATIONS *[@@@@CTS@FU@[@@@]C *[@@@@CTS@F=@#@@@] CALL MATLOC FZ )@@G@@*[@@@@CTS@F,@^@@@] CALL CLRMEM(ISR) *[@@@@CTS@F8@^@@@] CALL CGA )@@G@@LRMEM(ISEQ) *[@@@@CTS@G]@^@@@] CALL CLRMEM(ISEQ1)*[@@@@CTS@GG@^@@@]GB )@@G@@ CALL CLRMEM(NEQN) *[@@@@CTS@GQ@ @@@] CALL CLRMEM(NODEVS) GC )@@G@@*[@@@@CTS@G)@^@@@] CALL CLRMEM(NDIAG)*[@@@@CTS@G%@ @@@] CALL CGD )@@G@@LRMEM(NMOFFC) *[@@@@CTS@G4@ @@@] CALL CLRMEM(NUMOFF) *[@@@@GE )@@G@@CTS@G"@^@@@] CALL CLRMEM(IEQUA)*[@@@@CTS@HC@ @@@] CALL CLRMEM(GF )@@G@@JMNODE) *[@@@@CTS@HM@[@@@]C *[@@@@CTS@HW@^@@@]C GENERATE MACHINGG )@@G@@E CODE*[@@@@CTS@H&@[@@@]C *[@@@@CTS@H0@A@@@] IF (LVLCOD.NE.2) GGH )@@G@@O TO 1000 *[@@@@CTS@H'@#@@@] CALL CODGEN *[@@@@CTS@I^@C@@@] GI )@@G@@IF ((JACFLG+NSENS+KINEL).NE.0) GO TO 1000 *[@@@@CTS@II@ @@@] CALL CGJ )@@G@@LRMEM(IORDER) *[@@@@CTS@IO@^@@@]C T1=TIMER('RUN') *[@@@@CTS@ISGK )@@G@@@^@@@] CALL CLRMEM(IUR) *[@@@@CTS@I+@^@@@] CALL CLRMEM(IUC) GL )@@G@@*[@@@@CTS@I?@^@@@] CALL CLRMEM(ILR) *[@@@@CTS@I6@^@@@] CALL CGM )@@G@@LRMEM(ILC) *[@@@@CTS@J@@[@@@]C *[@@@@CTS@JE@]@@@]C FINISHED *[@@@@GN )@@G@@CTS@JO@[@@@]C *[@@@@CTS@JW@^@@@]C1000 T2=TIMER('RUN') *[@@@@CTS@JYGO )@@G@@@^@@@]C1000 CALL SECOND(T2) *[@@@@CTS@J*@A@@@] 1000 RSTATS(2)=RSTATS(2GP )@@G@@)+T2-T1 *[@@@@CTS@J2@]@@@] RETURN*[@@@@CTS@J/@]@@@] END GQ )@@G@@___^@)*[@@@@CTS@F8@A@@@[^@)^@)^@)CT[D-G^[#D-MD( D**DDNC(L C)*[@@@@CTS@G]GR )@@G@@@A@@@[^@)^@)^@)CT[D-G^[#D-MD( D**DDNC(LAC(*[@@@@*[S@@@*SDFF**[@@@@CTS@@CGS )@@G@@@ @]@@ SUBROUTINE MINS(ARG1) *[@@@@CTS@@E@^@]@@C SUBROUTINE MGT )@@G@@INS @^@@@] SUBROUTINE MINS *[@@@@CTS@@O@A@@@@ IMPLICIT REAGU )@@G@@L*8 (A-H,O-Z) *[@@@@CTS@@Y@G@@@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IGV )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@@*@F@@@@ 1 LVLCOD,LVGW )@@G@@LTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@@2@G@@@@ GX )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@GY )@@G@@CTS@@/@F@@@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EGZ )@@G@@PSOX *[@@@@CTS@@"@^@@@@ DIMENSION ARG1(1) *[@@@@CTS@[@@^@@@@ HA )@@G@@INTEGER*4 NDEX *[@@@@CTS@[A@#@@@@ ENTRY MINS0 *[@@@@CTS@[K@]@@@@HB )@@G@@ RETURN*[@@@@CTS@[Q@ @]@@ ENTRY MINS1(ARG1,NDEX) *[@@@@CTS@[UHC )@@G@@@^@]@@C ENTRY MINS1(/X/) @^@@@] ENTRY MINS1(/X/) *[@@@@CTS@[=HD )@@G@@@C@]@@ IF(DABS(ARG1(NDEX)).GE.GMIN) GO TO 10 *[@@@@CTS@[&@A@]@@HE )@@G@@C IF(DABS(X).GE.GMIN) GO TO 10 @A@@@] IF(DABS(X).GE.GMIN) GO THF )@@G@@O 10 *[@@@@CTS@[?@^@]@@ ARG1(NDEX)=GMIN *[@@@@CTS@[,@]@]@@C HG )@@G@@X=GMIN@]@@@] X=GMIN*[@@@@CTS@[8@^@@@@ IGOOF=IGOOF+1 *[@@@@HH )@@G@@CTS@]]@#@@@@ 10 CONTINUE *[@@@@CTS@]G@]@@@@ RETURN*[@@@@CTS@]KHI )@@G@@@ @]@@ ENTRY MINS2(ARG1,NDEX,Y)*[@@@@CTS@]Q@ @]@@C ENTRY MINS2(HJ )@@G@@/X/,/Y/) @ @@@] ENTRY MINS2(/X/,/Y/) *[@@@@CTS@]W@ @]@@ HK )@@G@@ARG1(NDEX)=ARG1(NDEX)/Y *[@@@@CTS@])@]@]@@C X=X/Y @]@@@] X=X/Y HL )@@G@@*[@@@@CTS@]%@]@@@@ RETURN*[@@@@CTS@]0@A@]@@ ENTRY MINS3(ARG1,NHM )@@G@@DEX,Y,Z) *[@@@@CTS@]4@ @]@@C ENTRY MINS3(/X/,/Y/,/Z/)@ @@@] HN )@@G@@ENTRY MINS3(/X/,/Y/,/Z/)*[@@@@CTS@]/@A@]@@ ARG1(NDEX)=ARG1(NDEX)-Y*HO )@@G@@Z *[@@@@CTS@]"@#@]@@C X=X-Y*Z @#@@@] X=X-Y*Z *[@@@@HP )@@G@@CTS@#C@]@@@@ RETURN*[@@@@CTS@#M@#@@@@ ENTRY MINS4 *[@@@@CTS@#WHQ )@@G@@@]@@@@ RETURN*[@@@@CTS@#&@]@@@@ END ___FC)@#@@[@^@)^@)^@)F@.HR )@@G@@F@\FC)*[@@@@CTS@]%@#@@@@*[S@@@*SDFF**[@@@@CTS@@E@B@[@@ SUBROUTINE NHS )@@G@@XTPWR(ARAY,NDEX,PDIM) *[@@@@CTS@@O@B@[@@C SUBROUTINE NXTPWR(/PWRSEHT )@@G@@Q/,/PDIM/) @B@@@[ SUBROUTINE NXTPWR(/PWRSEQ/,/PDIM/) *[@@@@CTS@@YHU )@@G@@@[@@@@C *[@@@@CTS@@*@F@@@@C THIS ROUTINE DETERMINES THE #NEXT# SHV )@@G@@ET OF EXPONENTS FOR THE *[@@@@CTS@@2@B@@@@C DIFFERENT DIMENSIONS OF A POHW )@@G@@LYNOMIAL. *[@@@@CTS@@/@[@@@@C *[@@@@CTS@[A@A@@@@ IMPLICIT REAHX )@@G@@L*8 (A-H,O-Z) *[@@@@CTS@[K@A@]@@C INTEGER PWRSEQ(1),PDIM,PSUM HY )@@G@@@A@@@] INTEGER PWRSEQ(1),PDIM,PSUM *[@@@@CTS@[U@A@]@@ INTEGEHZ )@@G@@R ARAY(1),PDIM,PSUM,NDEX*[@@@@CTS@[=@[@@@@C *[@@@@CTS@[,@[@@@@C IA )@@G@@*[@@@@CTS@[8@ @@@@ IF (PDIM.EQ.1) GO TO 80 *[@@@@CTS@]]@]@@@@ IB )@@G@@K=PDIM*[@@@@CTS@]G@B@[@@ 10 IF (ARAY(K-1+NDEX).NE.0) GO TO 20 *[@@@@IC )@@G@@CTS@]Q@A@[@@C 10 IF (PWRSEQ(K).NE.0) GO TO 20 @A@@@[ 10 IF (PWRSEQ(KID )@@G@@).NE.0) GO TO 20 *[@@@@CTS@])@]@@@@ K=K-1 *[@@@@CTS@]%@ @@@@ IE )@@G@@IF (K.NE.0) GO TO 10 *[@@@@CTS@]4@#@@@@ GO TO 80 *[@@@@CTS@]"IF )@@G@@@ @@@@ 20 IF (K.EQ.PDIM) GO TO 30 *[@@@@CTS@#C@B@[@@ ARAY(NDEX-1+IG )@@G@@K)=ARAY(NDEX-1+K)-1 *[@@@@CTS@#M@ @[@@C PWRSEQ(K)=PWRSEQ(K)-1 IH )@@G@@@ @@@[ PWRSEQ(K)=PWRSEQ(K)-1 *[@@@@CTS@#W@A@[@@ ARAY(NDEX+K)II )@@G@@=ARAY(NDEX+K)+1 *[@@@@CTS@#&@A@[@@C PWRSEQ(K+1)=PWRSEQ(K+1)+1 IJ )@@G@@@A@@@[ PWRSEQ(K+1)=PWRSEQ(K+1)+1 *[@@@@CTS@#0@#@@@@ GO TO IK )@@G@@100 *[@@@@CTS@#'@#@@@@ 30 KM1=K-1 *[@@@@CTS@^^@^@@@@ DO 40 IL )@@G@@I=1,KM1 *[@@@@CTS@^I@B@[@@ IF (ARAY(NDEX-1+I).NE.0) GO TO 50 IM )@@G@@*[@@@@CTS@^S@A@[@@C IF (PWRSEQ(I).NE.0) GO TO 50 @A@@@[ IF (PWIN )@@G@@RSEQ(I).NE.0) GO TO 50 *[@@@@CTS@^+@#@@@@ 40 CONTINUE *[@@@@CTS@^?IO )@@G@@@B@[@@ ARAY(NDEX-1+1)=ARAY(NDEX-1+PDIM)+1 *[@@@@CTS@^6@ @[@@C IP )@@G@@PWRSEQ(1)=PWRSEQ(PDIM)+1@ @@@[ PWRSEQ(1)=PWRSEQ(PDIM)+1*[@@@@CTS@ @IQ )@@G@@@ @[@@ ARAY(NDEX-1+PDIM)=0 *[@@@@CTS@ E@^@[@@C PWRSEQ(PDIM)IR )@@G@@=0 @^@@@[ PWRSEQ(PDIM)=0 *[@@@@CTS@ O@#@@@@ GO TO 100 IS )@@G@@*[@@@@CTS@ Y@]@@@@ 50 PSUM=1*[@@@@CTS@ *@]@@@@ K=PDIM*[@@@@CTS@ 2IT )@@G@@@B@[@@ 60 IF (ARAY(NDEX-1+K-1).GE.1) GO TO 70 *[@@@@CTS@ /@A@[@@C 60 IU )@@G@@IF (PWRSEQ(K-1).GE.1) GO TO 70@A@@@[ 60 IF (PWRSEQ(K-1).GE.1) GO TO 70IV )@@G@@*[@@@@CTS@AA@ @[@@ PSUM=PSUM+ARAY(NDEX-1+K)*[@@@@CTS@AK@ @[@@C IW )@@G@@PSUM=PSUM+PWRSEQ(K) @ @@@[ PSUM=PSUM+PWRSEQ(K) *[@@@@CTS@AUIX )@@G@@@#@[@@C PWRSEQ(K)=0 @#@@@[ PWRSEQ(K)=0 *[@@@@CTS@A=@^@[@@ IY )@@G@@ARAY(NDEX-1+K)=0 *[@@@@CTS@A,@]@@@@ K=K-1 *[@@@@CTS@A8@#@@@@ IZ )@@G@@GO TO 60 *[@@@@CTS@B]@B@[@@ 70 ARAY(NDEX-1+K)=ARAY(NDEX-1+K)+PSUM JA )@@G@@*[@@@@CTS@BG@ @[@@C 70 PWRSEQ(K)=PWRSEQ(K)+PSUM@ @@@[ 70 PWRSEQ(K)=PWJB )@@G@@RSEQ(K)+PSUM*[@@@@CTS@BQ@B@[@@ ARAY(NDEX-1+K-1)=ARAY(NDEX-1+K-1)-1 JC )@@G@@*[@@@@CTS@B)@A@[@@C PWRSEQ(K-1)=PWRSEQ(K-1)-1 @A@@@[ PWRSEQJD )@@G@@(K-1)=PWRSEQ(K-1)-1 *[@@@@CTS@B%@#@@@@ GO TO 100 *[@@@@CTS@B4JE )@@G@@@B@[@@ 80 ARAY(NDEX-1+1)=ARAY(NDEX-1+1)+1 *[@@@@CTS@B"@ @[@@C 80 JF )@@G@@PWRSEQ(1)=PWRSEQ(1)+1 @ @@@[ 80 PWRSEQ(1)=PWRSEQ(1)+1 *[@@@@CTS@CCJG )@@G@@@[@@@@C *[@@@@CTS@CM@]@@@@C FINISHED *[@@@@CTS@CW@[@@@@C *[@@@@JH )@@G@@CTS@C&@]@@@@ 100 RETURN*[@@@@CTS@C0@]@@@@ END ___^@)^@)DS.DS!AC)JI )@@G@@*[@@@@CTS@A8@^@@@@^@)^@)^@)C9J^[OD8)A00^@)*[@@@@CTS@B]@E@[@@^@)^@7A@)CDMJJ )@@G@@CDT [IC- F@!AC:DS(B([EL[FC*D1^C(S *1 TF C:E[NE(H*[S@@@*SDFF**[@@@@CTS@@EJK )@@G@@@B@@@@ SUBROUTINE MOSEQN(/VDS/,/VBS/,/VGS/)*[@@@@CTS@@O@[@@@@C JL )@@G@@*[@@@@CTS@@Y@G@@@@C THIS ROUTINE EVALUATES THE DRAIN CURRENT AND ITSJM )@@G@@ DERIVATIVES FOR *[@@@@CTS@@*@]@@@@C MOSFETS. *[@@@@CTS@@2@[@@@@C JN )@@G@@*[@@@@CTS@@/@A@@@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@] INCLUDJO )@@G@@E F.MOSARG,LIST @ @@@] INCLUDE F.STATUS,LIST @ @@@] INCLUDJP )@@G@@E F.KNSTNT,LIST *[@@@@CTS@[A@G@]@@ COMMON /MOSARG/ GAMMA,BETA,VTOJQ )@@G@@,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, *[@@@@CTS@[K@E@]@@ 1 XLAMDA,UTJR )@@G@@RA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN *[@@@@CTS@[U@G@]@@ COMMONJS )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@[=JT )@@G@@@F@]@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,JU )@@G@@*[@@@@CTS@[,@^@]@@ 2 ITEMNO,NOSOLV *[@@@@CTS@[8@G@]@@ COMMONJV )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@]]JW )@@G@@@F@]@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX JX )@@G@@*[@@@@CTS@]G@[@@@@C *[@@@@CTS@]Q@A@@@@C COMPUTE SOME USEFUL QUANTITJY )@@G@@IES *[@@@@CTS@])@[@@@@C *[@@@@CTS@]%@A@@@@ IF (VBS.GT.0.0D0) JZ )@@G@@GO TO 110 *[@@@@CTS@]4@ @@@@ SARG=DSQRT(PHI-VBS) *[@@@@CTS@]"KA )@@G@@@^@@@@ TSARG=SARG+SARG *[@@@@CTS@#C@ @@@@ BARG=DSQRT(PHI+VDSKB )@@G@@-VBS) *[@@@@CTS@#M@#@@@@ GO TO 200 *[@@@@CTS@#W@^@@@@ 110 SARG=DKC )@@G@@SQRT(PHI) *[@@@@CTS@#&@A@@@@ SARG=SARG-VBS/(SARG+SARG) *[@@@@KD )@@G@@CTS@#0@^@@@@ TSARG=SARG+SARG *[@@@@CTS@#'@ @@@@ BARG=DSQRT(PKE )@@G@@HI+VDS) *[@@@@CTS@^^@A@@@@ BARG=BARG-VBS/(BARG+BARG) *[@@@@KF )@@G@@CTS@^I@[@@@@C *[@@@@CTS@^S@A@@@@C CALCULATE THRESHOLD VOLTAGE (VON)KG )@@G@@*[@@@@CTS@^+@[@@@@C *[@@@@CTS@^?@A@@@@ 200 IF (XJ.LE.0.0D0) GO TO 2KH )@@G@@10 *[@@@@CTS@^6@A@@@@ IF (GAMMA.LE.0.0D0) GO TO 210 *[@@@@CTS@ @KI )@@G@@@A@@@@ ARG=DSQRT(1.0D0+XD*TSARG/XJ) *[@@@@CTS@ E@C@@@@ GAMMADKJ )@@G@@=GAMMA*(1.0D0-XJ*(ARG-1.0D0)/XL) *[@@@@CTS@ O@A@@@@ DGDVBS=GAMMAKK )@@G@@*XD/(XL*TSARG*ARG)*[@@@@CTS@ Y@#@@@@ GO TO 220 *[@@@@CTS@ *@#@@@@KL )@@G@@ 210 GAMMAD=GAMMA*[@@@@CTS@ 2@#@@@@ DGDVBS=0.0D0*[@@@@CTS@ /@ @@@@KM )@@G@@ 220 VON=VBI+GAMMAD*SARG *[@@@@CTS@AA@#@@@@ VDSAT=0.0D0 *[@@@@KN )@@G@@CTS@AK@#@@@@ VGST=VGS-VBI*[@@@@CTS@AU@A@@@@ IF (XNFS.EQ.0.0D0)KO )@@G@@ GO TO 230 *[@@@@CTS@A=@A@@@@ IF (COX.EQ.0.0D0) GO TO 230 *[@@@@KP )@@G@@CTS@A,@D@@@@ VON=VON+VT*(1.0D0+CHARGE*XNFS/COX+GAMMAD/TSARG) *[@@@@KQ )@@G@@CTS@A8@#@@@@ GO TO 300 *[@@@@CTS@B]@A@@@@ 230 IF (VGS.GT.VON) GOKR )@@G@@ TO 300 *[@@@@CTS@BG@[@@@@C *[@@@@CTS@BQ@#@@@@C CUTOFF REGION KS )@@G@@*[@@@@CTS@B)@[@@@@C *[@@@@CTS@B%@#@@@@ GDS=0.0D0 *[@@@@CTS@B4KT )@@G@@@#@@@@ GO TO 1100 *[@@@@CTS@B"@[@@@@C *[@@@@CTS@CC@B@@@@C COMKU )@@G@@PUTE SOME MORE USEFUL QUANTITIES *[@@@@CTS@CM@[@@@@C *[@@@@CTS@CWKV )@@G@@@ @@@@ 300 SARG3=SARG*SARG*SARG *[@@@@CTS@C&@A@@@@ BODY=BARG*BAKW )@@G@@RG*BARG-SARG3 *[@@@@CTS@C0@ @@@@ GDBDV=GAMMAD*(SARG-BARG)*[@@@@KX )@@G@@CTS@C'@B@@@@ DODVBS=SARG*DGDVBS-GAMMAD/TSARG *[@@@@CTS@D^@A@@@@KY )@@G@@ IF (XNFS.EQ.0.0D0) GO TO 400 *[@@@@CTS@DI@A@@@@ IF (COX.EQ.0KZ )@@G@@.0D0) GO TO 400 *[@@@@CTS@DS@E@@@@ DODVBS=DODVBS+VT*(DGDVBS/TSARGLA )@@G@@-GAMMAD/(4.0D0*SARG3)) *[@@@@CTS@D+@[@@@@C *[@@@@CTS@D?@D@@@@C EVALB )@@G@@LUATE SATURATION VOLTAGE AND ITS DERIVATIVES *[@@@@CTS@D6@[@@@@C LC )@@G@@*[@@@@CTS@E@@A@@@@ 400 IF (GAMMAD.LE.0.0D0) GO TO 410*[@@@@CTS@EE@ @@@@LD )@@G@@ GAMMD2=GAMMAD*GAMMAD *[@@@@CTS@EO@ @@@@ ARGV=VGS-VBI+PHI-VLE )@@G@@BS *[@@@@CTS@EY@A@@@@ IF (ARGV.LE.0.0D0) GO TO 420 *[@@@@CTS@E*LF )@@G@@@B@@@@ ARG=DSQRT(1.0D0+4.0D0*ARGV/GAMMD2) *[@@@@CTS@E2@C@@@@ LG )@@G@@VDSAT=VGS-VBI+GAMMD2*(1.0D0-ARG)/2.0D0 *[@@@@CTS@E/@ @@@@ VDSAT=LH )@@G@@DMAX1(VDSAT,0.0D0)*[@@@@CTS@FA@ @@@@ DSDVGS=1.0D0-1.0D0/ARG *[@@@@LI )@@G@@CTS@FK@F@@@@ DSDVBS=(GAMMAD*(1.0D0-ARG)+2.0D0*ARGV/(GAMMAD*ARG))*DGLJ )@@G@@DVBS *[@@@@CTS@FU@#@@@@ 1 +1.D0/ARG *[@@@@CTS@F=@#@@@@ GO TO LK )@@G@@500 *[@@@@CTS@F,@A@@@@ 410 VDSAT=DMAX1(VGS-VBI,0.0D0) *[@@@@CTS@F8LL )@@G@@@#@@@@ DSDVGS=1.0D0*[@@@@CTS@G]@#@@@@ DSDVBS=0.0D0*[@@@@CTS@GGLM )@@G@@@#@@@@ GO TO 500 *[@@@@CTS@GQ@#@@@@ 420 DSDVGS=0.0D0*[@@@@CTS@G)LN )@@G@@@#@@@@ DSDVBS=0.0D0*[@@@@CTS@G%@[@@@@C *[@@@@CTS@G4@D@@@@C EVALO )@@G@@LUATE EFFECTIVE MOBILITY AND ITS DERIVATIVES *[@@@@CTS@G"@[@@@@C LP )@@G@@*[@@@@CTS@HC@A@@@@ 500 IF (COX.LE.0.0D0) GO TO 510 *[@@@@CTS@HM@B@@@@LQ )@@G@@ UDENOM=VGST-UTRA*DMIN1(VDS,VDSAT) *[@@@@CTS@HW@A@@@@ IF (UDLR )@@G@@ENOM.LE.VBP) GO TO 510 *[@@@@CTS@H&@B@@@@ UFACT=DEXP(UEXP*DLOG(VBPLS )@@G@@/UDENOM)) *[@@@@CTS@H0@A@@@@ DUDVGS=-UFACT*UEXP/UDENOM *[@@@@LT )@@G@@CTS@H'@ @@@@ DUDVDS=-DUDVGS*UTRA *[@@@@CTS@I^@#@@@@ DUDVBSLU )@@G@@=0.0D0*[@@@@CTS@II@#@@@@ GO TO 600 *[@@@@CTS@IS@#@@@@ 510 UFACT=LV )@@G@@1.0D0 *[@@@@CTS@I+@#@@@@ DUDVGS=0.0D0*[@@@@CTS@I?@#@@@@ DUDVDSLW )@@G@@=0.0D0*[@@@@CTS@I6@#@@@@ DUDVBS=0.0D0*[@@@@CTS@J@@[@@@@C *[@@@@LX )@@G@@CTS@JE@E@@@@C EVALUATE EFFECTIVE CHANNEL LENGTH AND ITS DERIVATIVES LY )@@G@@*[@@@@CTS@JO@[@@@@C *[@@@@CTS@JY@A@@@@ 600 IF (VDS.EQ.0.0D0) GO TO LZ )@@G@@610 *[@@@@CTS@J*@A@@@@ IF (XLAMDA.GT.0.0D0) GO TO 610*[@@@@CTS@J2MA )@@G@@@A@@@@ IF (XNSUB.EQ.0.0D0) GO TO 610 *[@@@@CTS@J/@ @@@@ ARGV=(MB )@@G@@VDS-VDSAT)/4.0D0 *[@@@@CTS@KA@A@@@@ SARGV=DSQRT(1.0D0+ARGV*ARGV) MC )@@G@@*[@@@@CTS@KK@ @@@@ ARG=DSQRT(ARGV+SARGV) *[@@@@CTS@KU@^@@@@ MD )@@G@@XLFACT=XD/(XL*VDS)*[@@@@CTS@K=@^@@@@ XLAMDA=XLFACT*ARG *[@@@@CTS@K,ME )@@G@@@B@@@@ DLDSAT=-XLFACT*ARG/(8.0D0*SARGV) *[@@@@CTS@K8@A@@@@ MF )@@G@@DLDVGS=-VDS*DLDSAT*DSDVGS *[@@@@CTS@L]@A@@@@ DLDVDS=-XLAMDA/VDSMG )@@G@@-DLDSAT *[@@@@CTS@LG@A@@@@ DLDVBS=-VDS*DLDSAT*DSDVBS *[@@@@MH )@@G@@CTS@LQ@#@@@@ GO TO 620 *[@@@@CTS@L)@#@@@@ 610 DLDVGS=0.0D0*[@@@@MI )@@G@@CTS@L%@#@@@@ DLDVDS=0.0D0*[@@@@CTS@L4@#@@@@ DLDVBS=0.0D0*[@@@@MJ )@@G@@CTS@L"@ @@@@ 620 CLFACT=1.0D0-XLAMDA*VDS *[@@@@CTS@MC@A@@@@ DLDVDSMK )@@G@@=-XLAMDA-VDS*DLDVDS *[@@@@CTS@MM@[@@@@C *[@@@@CTS@MW@B@@@@C EVAML )@@G@@LUATE EFFECTIVE BETA (EFFECTIVE KP) *[@@@@CTS@M&@[@@@@C *[@@@@CTS@M0MM )@@G@@@ @@@@ BETA1=BETA*UFACT/CLFACT *[@@@@CTS@M'@[@@@@C *[@@@@CTS@N^MN )@@G@@@D@@@@C TEST FOR MODE OF OPERATION AND BRANCH APPROPRIATELY*[@@@@CTS@NIMO )@@G@@@[@@@@C *[@@@@CTS@NS@A@@@@ IF (VDS.NE.0.0D0) GO TO 730 *[@@@@MP )@@G@@CTS@N+@A@@@@ IF (VGS.GT.VON) GO TO 720 *[@@@@CTS@N?@E@@@@ MQ )@@G@@IF ((XNFS.NE.0.0D0).AND.(COX.NE.0.0D0)) GO TO 710 *[@@@@CTS@N6@#@@@@MR )@@G@@ GDS=0.0D0 *[@@@@CTS@O@@#@@@@ GO TO 1100 *[@@@@CTS@OE@A@@@@MS )@@G@@ 710 VFACT=VON-VBI-GAMMAD*SARG *[@@@@CTS@OO@C@@@@ GDS=BETA1*VFMT )@@G@@ACT*DEXP((VGS-VON)/VFACT) *[@@@@CTS@OY@#@@@@ GO TO 1100 *[@@@@MU )@@G@@CTS@O*@B@@@@ 720 GDS=BETA1*(VGS-VBI-GAMMAD*SARG) *[@@@@CTS@O2@#@@@@MV )@@G@@ GO TO 1100 *[@@@@CTS@O/@[@@@@C *[@@@@CTS@PA@[@@@@C *[@@@@MW )@@G@@CTS@PK@A@@@@ 730 IF (VGS.GT.VON) GO TO 900 *[@@@@CTS@PU@[@@@@C MX )@@G@@*[@@@@CTS@P=@^@@@@C SUBTHRESHOLD REGION *[@@@@CTS@P,@[@@@@C *[@@@@MY )@@G@@CTS@P8@E@@@@C CALCULATE SATURATION VOLTAGE AND ITS DERIVATIVES AT VON MZ )@@G@@*[@@@@CTS@Q]@[@@@@C *[@@@@CTS@QG@A@@@@ IF (GAMMAD.LE.0.0D0) GO NA )@@G@@TO 810*[@@@@CTS@QQ@ @@@@ GAMMD2=GAMMAD*GAMMAD *[@@@@CTS@Q)@ @@@@NB )@@G@@ ARGV=VON-VBI+PHI-VBS *[@@@@CTS@Q%@B@@@@ ARG=DSQRT(1.0D0+4.NC )@@G@@0D0*ARGV/GAMMD2) *[@@@@CTS@Q4@#@@@@ GO TO 820 *[@@@@CTS@Q"@#@@@@ND )@@G@@ 810 ARG=0.0D0 *[@@@@CTS@RC@#@@@@ GAMMD2=0.0D0*[@@@@CTS@RM@C@@@@NE )@@G@@ 820 VSATON=VON-VBI+GAMMD2*(1.0D0-ARG)/2.0D0 *[@@@@CTS@RW@A@@@@ NF )@@G@@IF (VSATON.GT.0.0D0) GO TO 830*[@@@@CTS@R&@#@@@@ GDS=0.0D0 *[@@@@NG )@@G@@CTS@R0@#@@@@ GO TO 1100 *[@@@@CTS@R'@ @@@@ 830 VDSON=DMIN1(VSATONNH )@@G@@,VDS) *[@@@@CTS@S^@A@@@@ IF (VBS.GT.0.0D0) GO TO 840 *[@@@@CTS@SINI )@@G@@@A@@@@ BARG=DSQRT(PHI+VDSON-VBS) *[@@@@CTS@SS@#@@@@ GO TO NJ )@@G@@850 *[@@@@CTS@S+@ @@@@ 840 BARG=DSQRT(PHI+VDSON) *[@@@@CTS@S?@A@@@@NK )@@G@@ BARG=BARG-VBS/(BARG+BARG) *[@@@@CTS@S6@A@@@@ 850 BODY=BARG*BANL )@@G@@RG*BARG-SARG3 *[@@@@CTS@T@@ @@@@ GDBDV=GAMMAD*(SARG-BARG)*[@@@@NM )@@G@@CTS@TE@E@@@@ CDSON=(VON-VBI-VDSON/2.0D0)*VDSON-GAMMAD*BODY/1.5D0 NN )@@G@@*[@@@@CTS@TO@B@@@@ DIDVDS=VON-VBI-VDSON-GAMMAD*BARG *[@@@@CTS@TYNO )@@G@@@D@@@@ DIDVBS=DODVBS*VDSON-DGDVBS*BODY/1.5D0-GDBDV *[@@@@CTS@T*NP )@@G@@@[@@@@C *[@@@@CTS@T2@D@@@@C EVALUATE SUBTHRESHOLD CURRENT AND ITS DNQ )@@G@@ERIVATIVES *[@@@@CTS@T/@[@@@@C *[@@@@CTS@UA@^@@@@ VFACT=CDSON/NR )@@G@@VDSON *[@@@@CTS@UK@ @@@@ ARGEXP=(VGS-VON)/VFACT *[@@@@CTS@UU@ @@@@NS )@@G@@ BETA2=BETA1*DEXP(ARGEXP)*[@@@@CTS@U=@^@@@@ CDRAIN=BETA2*CDSONNT )@@G@@*[@@@@CTS@U,@B@@@@ IF (CDRAIN.GE.1.0D-15) GO TO 860 *[@@@@CTS@U8NU )@@G@@@#@@@@ GDS=0.0D0 *[@@@@CTS@V]@#@@@@ GO TO 1100 *[@@@@CTS@VGNV )@@G@@@C@@@@ 860 ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) *[@@@@CTS@VQ@ @@@@NW )@@G@@ GM=ARG+CDRAIN/VFACT *[@@@@CTS@V)@C@@@@ ARG=CDRAIN*(DUDVBSNX )@@G@@/UFACT-DLDVBS/CLFACT) *[@@@@CTS@V%@G@@@@ GMBS=ARG-CDRAIN*(DODVBS/NY )@@G@@VFACT-ARGEXP*DIDVBS/CDSON)+BETA2*DIDVBS *[@@@@CTS@V4@A@@@@ GDS=-CNZ )@@G@@DRAIN*DLDVDS/CLFACT *[@@@@CTS@V"@A@@@@ IF (VDS.GT.VSATON) GO TOOA )@@G@@ 2000 *[@@@@CTS@WC@F@@@@ GDS=GDS+CDRAIN*(DUDVDS/UFACT-ARGEXP*(DIDVDOB )@@G@@S-VFACT)/CDSON) *[@@@@CTS@WM@^@@@@ 1 +BETA2*DIDVDS *[@@@@CTS@WWOC )@@G@@@#@@@@ GO TO 2000 *[@@@@CTS@W&@[@@@@C *[@@@@CTS@W0@[@@@@C OD )@@G@@*[@@@@CTS@W'@A@@@@ 900 IF (VDS.GT.VDSAT) GO TO 1000 *[@@@@CTS@X^@[@@@@OE )@@G@@C *[@@@@CTS@XI@#@@@@C LINEAR REGION *[@@@@CTS@XS@[@@@@C *[@@@@OF )@@G@@CTS@X+@F@@@@ CDRAIN=BETA1*((VGS-VBI-VDS/2.0D0)*VDS-GAMMAD*BODY/1.5DOG )@@G@@0) *[@@@@CTS@X?@C@@@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) OH )@@G@@*[@@@@CTS@X6@^@@@@ GM=ARG+BETA1*VDS *[@@@@CTS@Y@@C@@@@ ARG=CDOI )@@G@@RAIN*(DUDVDS/UFACT-DLDVDS/CLFACT) *[@@@@CTS@YE@C@@@@ GDS=ARG+BETAOJ )@@G@@1*(VGS-VBI-VDS-GAMMAD*BARG) *[@@@@CTS@YO@C@@@@ ARG=CDRAIN*(DUDVBSOK )@@G@@/UFACT-DLDVBS/CLFACT) *[@@@@CTS@YY@C@@@@ GMBS=ARG-BETA1*(GDBDV+DGOL )@@G@@DVBS*BODY/1.5D0) *[@@@@CTS@Y*@#@@@@ GO TO 2000 *[@@@@CTS@Y2@[@@@@OM )@@G@@C *[@@@@CTS@Y/@^@@@@C SATURATION REGION *[@@@@CTS@ZA@[@@@@C ON )@@G@@*[@@@@CTS@ZK@A@@@@ 1000 IF (VBS.GT.0.0D0) GO TO 1010 *[@@@@CTS@ZU@A@@@@OO )@@G@@ BARG=DSQRT(PHI+VDSAT-VBS) *[@@@@CTS@Z=@#@@@@ GO TO 1020 OP )@@G@@*[@@@@CTS@Z,@ @@@@ 1010 BARG=DSQRT(PHI+VDSAT) *[@@@@CTS@Z8@A@@@@ OQ )@@G@@BARG=BARG-VBS/(BARG+BARG) *[@@@@CTS@)]@A@@@@ 1020 BODY=BARG*BARG*BAROR )@@G@@G-SARG3 *[@@@@CTS@)G@ @@@@ GDBDV=GAMMAD*(SARG-BARG)*[@@@@CTS@)QOS )@@G@@@F@@@@ CDRAIN=BETA1*((VGS-VBI-VDSAT/2.0D0)*VDSAT-GAMMAD*BODY/1.5D0)OT )@@G@@*[@@@@CTS@))@C@@@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) *[@@@@OU )@@G@@CTS@)%@^@@@@ GM=ARG+BETA1*VDSAT*[@@@@CTS@)4@A@@@@ GDS=-CDRAIN*OV )@@G@@DLDVDS/CLFACT *[@@@@CTS@)"@C@@@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBOW )@@G@@S/CLFACT) *[@@@@CTS@-C@C@@@@ GMBS=ARG-BETA1*(GDBDV+DGDVBS*BODY/1.OX )@@G@@5D0) *[@@@@CTS@-M@#@@@@ GO TO 2000 *[@@@@CTS@-W@[@@@@C *[@@@@OY )@@G@@CTS@-&@^@@@@C FINISH SPECIAL CASES *[@@@@CTS@-0@[@@@@C *[@@@@CTS@-'OZ )@@G@@@#@@@@ 1100 CDRAIN=0.0D0*[@@@@CTS@+^@#@@@@ GM=0.0D0 *[@@@@CTS@+IPA )@@G@@@#@@@@ GMBS=0.0D0 *[@@@@CTS@+S@[@@@@C *[@@@@CTS@++@]@@@@C FINPB )@@G@@ISHED *[@@@@CTS@+?@[@@@@C *[@@@@CTS@+6@]@@@@ 2000 RETURN*[@@@@CTS@<@PC )@@G@@@]@@@@ END ___E@:E-RD9K C(^@)*[@@@@CTS@:&@C@@@@^@)^@)^@)CT[E[]ES.PD )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE REORDR *[@@@@CTS@@O@[@@@@PE )@@G@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINE SWAPS ROWS IN THE COEFFICIENTPF )@@G@@ MATRIX TO ELIMINATE *[@@@@CTS@@*@G@@@@C SINGULARITY PROBLEMS WHICH CPG )@@G@@AN BE RECOGNIZED BY EXAMINING THE CIRCUIT *[@@@@CTS@@2@G@@@@C TOPOLOGY. PH )@@G@@ IT THEN REORDERS THE UNKNOWNS TO MINIMIZE FILLIN TERMS *[@@@@CTS@@/PI )@@G@@@F@@@@C WHICH OCCUR DURING LU FACTORIZATION. (TO MAXIMIZE SPARSITY). PJ )@@G@@*[@@@@CTS@[A@[@@@@C *[@@@@CTS@[K@A@@@@ IMPLICIT REAL*8 (A-H,O-ZPK )@@G@@) @ @@@# INCLUDE F.TABINF,LIST @ @@@# INCLUDE F.CIRDAT,LPL )@@G@@IST @ @@@# INCLUDE F.STATUS,LIST @ @@@# INCLUDE F.FLAGS,LIPM )@@G@@ST @ @@@# INCLUDE F.DEBUG,LIST @ @@@# INCLUDE F.BLANK,LIPN )@@G@@ST @^@#@]@ADD,P *SPICE.REORDRD *[@@@@CTS@[U@G@]@@ COMMON /TABIPO )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[=@G@]@@PP )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, PQ )@@G@@*[@@@@CTS@[,@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILPR )@@G@@C,ILR,NUMOFF,ISR, *[@@@@CTS@[8@G@]@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEPS )@@G@@VS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@]]@G@]@@ 4 LX0,LVN,LPT )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@]G@#@]@@PU )@@G@@ 5 LOUTPT, *[@@@@CTS@]Q@E@]@@ 6 LUNSAT,LTEMPS,LFIELD,LDELIMPV )@@G@@,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@])@G@]@@ 7 LLX0,LLVN,LLYNL,LLYU,PW )@@G@@LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]%@A@]@@ 8 LLDPX )@@G@@0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]4@G@]@@ COMMON /CIRDAT/ LOCATE(5PY )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]"@C@]@@ 1 NUTPZ )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@#C@G@]@@ COMMON /FLAGQA )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@#M@F@]@@QB )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@QC )@@G@@CTS@#W@ @]@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#&@^@]@@ INTEGEQD )@@G@@R NODPLC(64)*[@@@@CTS@#0@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@#'QE )@@G@@@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^^@[@@@@QF )@@G@@C *[@@@@CTS@^I@A@@@@C ALLOCATE AND INITIALIZE STORAGE *[@@@@CTS@^SQG )@@G@@@[@@@@C *[@@@@CTS@^)@A@[@@ CALL GETMEM(ISWAP,1,NSTOP) *[@@@@QH )@@G@@CTS@^+@ @[@@C CALL GETMEM(ISWAP,NSTOP)@ @@@[ CALL GETMEM(ISWAP,QI )@@G@@NSTOP)*[@@@@CTS@^%@A@[@@ CALL GETMEM(IEQUA,1,NSTOP) *[@@@@CTS@^?QJ )@@G@@@ @[@@C CALL GETMEM(IEQUA,NSTOP)@ @@@[ CALL GETMEM(IEQUA,NSTOP)QK )@@G@@*[@@@@CTS@^4@A@[@@ CALL GETMEM(IORDER,1,NSTOP) *[@@@@CTS@^6@A@[@@QL )@@G@@C CALL GETMEM(IORDER,NSTOP) @A@@@[ CALL GETMEM(IORDER,NSTOPQM )@@G@@) *[@@@@CTS@^"@A@[@@ CALL GETMEM(JMNODE,1,NSTOP) *[@@@@CTS@ @QN )@@G@@@A@[@@C CALL GETMEM(JMNODE,NSTOP) @A@@@[ CALL GETMEM(JMNODEQO )@@G@@,NSTOP) *[@@@@CTS@ C@A@[@@ CALL GETMEM(IUR,1,NSTOP+1) *[@@@@QP )@@G@@CTS@ E@ @[@@C CALL GETMEM(IUR,NSTOP+1)@ @@@[ CALL GETMEM(IUR,NSQQ )@@G@@TOP+1)*[@@@@CTS@ M@A@[@@ CALL GETMEM(ILC,1,NSTOP+1) *[@@@@CTS@ OQR )@@G@@@ @[@@C CALL GETMEM(ILC,NSTOP+1)@ @@@[ CALL GETMEM(ILC,NSTOP+1)QS )@@G@@*[@@@@CTS@ W@ @[@@ CALL GETMEM(IUC,1,0) *[@@@@CTS@ Y@^@[@@C QT )@@G@@CALL GETMEM(IUC,0)@^@@@[ CALL GETMEM(IUC,0)*[@@@@CTS@ &@ @[@@ QU )@@G@@CALL GETMEM(ILR,1,0) *[@@@@CTS@ *@^@[@@C CALL GETMEM(ILR,0)@^@@@[QV )@@G@@ CALL GETMEM(ILR,0)*[@@@@CTS@ 2@[@@@@C *[@@@@CTS@ /@^@@@@ QW )@@G@@DO 10 I=1,NSTOP *[@@@@CTS@AA@^@@@@ NODPLC(ISWAP+I)=I *[@@@@CTS@AKQX )@@G@@@#@@@@ 10 CONTINUE *[@@@@CTS@AS@C@[@@ CALL COPY4(NODPLC,ISWAP+QY )@@G@@1,IEQUA+1,NSTOP) *[@@@@CTS@AU@E@[@@C CALL COPY4(NODPLC(ISWAP+1),NODQZ )@@G@@PLC(IEQUA+1),NSTOP) @E@@@[ CALL COPY4(NODPLC(ISWAP+1),NODPLC(IERA )@@G@@QUA+1),NSTOP) *[@@@@CTS@A+@C@[@@ CALL COPY4(NODPLC,ISWAP+1,IORDRB )@@G@@ER+1,NSTOP) *[@@@@CTS@A=@E@[@@C CALL COPY4(NODPLC(ISWAP+1),NODPLC(IORC )@@G@@RDER+1),NSTOP) @E@@@[ CALL COPY4(NODPLC(ISWAP+1),NODPLC(IORDER+1RD )@@G@@),NSTOP) *[@@@@CTS@A?@C@[@@ CALL COPY4(NODPLC,ISWAP+1,JMNODE+1,NRE )@@G@@STOP) *[@@@@CTS@A,@E@[@@C CALL COPY4(NODPLC(ISWAP+1),NODPLC(JMNODE+1RF )@@G@@),NSTOP) @E@@@[ CALL COPY4(NODPLC(ISWAP+1),NODPLC(JMNODE+1),NSTORG )@@G@@P) *[@@@@CTS@A8@[@@@@C *[@@@@CTS@B]@F@@@@C SWAP CURRENT EQUATIONRH )@@G@@S INTO ADMITTANCE PART OF EQUATION MATRIX *[@@@@CTS@BG@[@@@@C *[@@@@RI )@@G@@CTS@BQ@#@@@@ NEXTV=1 *[@@@@CTS@B)@[@@@@C *[@@@@CTS@B%@A@@@@RJ )@@G@@C FIND SUITABLE VOLTAGE SOURCE *[@@@@CTS@B4@[@@@@C *[@@@@CTS@B"RK )@@G@@@A@@@@ 100 IF (NEXTV.GT.NUMVS) GO TO 150 *[@@@@CTS@CC@]@@@@ IX=0 RL )@@G@@*[@@@@CTS@CM@ @@@@ DO 130 I=NEXTV,NUMVS *[@@@@CTS@CW@^@@@@ RM )@@G@@LOC=NODPLC(ISEQ+I)*[@@@@CTS@C&@^@@@@ NODE=NODPLC(LOC+2)*[@@@@CTS@C0RN )@@G@@@ @@@@ NFLAG=NODPLC(ISEQ1+I) *[@@@@CTS@C'@B@@@@ IF (NFLAG.EQRO )@@G@@.1) NODE=NODPLC(LOC+6) *[@@@@CTS@D^@B@@@@ IF (NFLAG.EQ.2) NODE=NODRP )@@G@@PLC(LOC+7) *[@@@@CTS@DI@ @@@@ IF (NODE.EQ.1) GO TO 110*[@@@@CTS@DSRQ )@@G@@@C@@@@ IF(NODPLC(NODEVS+NODE).GE.2) GO TO 110 *[@@@@CTS@D+@C@@@@RR )@@G@@ IF(NODPLC(NDIAG+NODE).EQ.0) GO TO 140 *[@@@@CTS@D?@]@@@@ RS )@@G@@IX=I *[@@@@CTS@D6@#@@@@ LOCX=LOC *[@@@@CTS@E@@#@@@@ NODEX=RT )@@G@@NODE *[@@@@CTS@EE@^@@@@ 110 NODE=NODPLC(LOC+3)*[@@@@CTS@EO@B@@@@ RU )@@G@@IF (NFLAG.EQ.2) NODE=NODPLC(LOC+5) *[@@@@CTS@EY@ @@@@ IF (NODE.EQ.RV )@@G@@1) GO TO 130*[@@@@CTS@E*@C@@@@ IF (NODPLC(NODEVS+NODE).GE.2) GO TO RW )@@G@@130 *[@@@@CTS@E2@C@@@@ 120 IF (NODPLC(NDIAG+NODE).EQ.0) GO TO 140 RX )@@G@@*[@@@@CTS@E/@]@@@@ IX=I *[@@@@CTS@FA@#@@@@ LOCX=LOC *[@@@@RY )@@G@@CTS@FK@#@@@@ NODEX=NODE *[@@@@CTS@FU@#@@@@ 130 CONTINUE *[@@@@RZ )@@G@@CTS@F=@ @@@@ IF (IX.EQ.0) GO TO 590 *[@@@@CTS@F,@]@@@@ I=IX SA )@@G@@*[@@@@CTS@F8@#@@@@ LOC=LOCX *[@@@@CTS@G]@#@@@@ NODE=NODEX SB )@@G@@*[@@@@CTS@GG@[@@@@C *[@@@@CTS@GQ@ @@@@C RESEQUENCE VOLTAGE SOURCES SC )@@G@@*[@@@@CTS@G)@[@@@@C *[@@@@CTS@G%@B@@@@ 140 NODPLC(ISEQ+I)=NODPLC(ISSD )@@G@@EQ+NEXTV) *[@@@@CTS@G4@ @@@@ NODPLC(ISEQ+NEXTV)=LOC *[@@@@CTS@G"SE )@@G@@@ @@@@ LTEMP=NODPLC(ISEQ1+I) *[@@@@CTS@HC@B@@@@ NODPLC(ISEQ1SF )@@G@@+I)=NODPLC(ISEQ1+NEXTV) *[@@@@CTS@HM@A@@@@ NODPLC(ISEQ1+NEXTV)=LTEMSG )@@G@@P *[@@@@CTS@HW@^@@@@ IBR=NODPLC(NEQN+I)*[@@@@CTS@H&@B@@@@ SH )@@G@@NODPLC(NEQN+I)=NODPLC(NEQN+NEXTV) *[@@@@CTS@H0@ @@@@ NODPLC(NEQN+SI )@@G@@NEXTV)=IBR *[@@@@CTS@H'@ @@@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@I^SJ )@@G@@@B@@@@ IF (LTEMP.EQ.1) NODE1=NODPLC(LOC+6) *[@@@@CTS@II@B@@@@ SK )@@G@@IF (LTEMP.EQ.2) NODE1=NODPLC(LOC+7) *[@@@@CTS@IS@ @@@@ NODE2=NODPLCSL )@@G@@(LOC+3) *[@@@@CTS@I+@B@@@@ IF (LTEMP.EQ.1) NODE2=NODPLC(LOC+3) SM )@@G@@*[@@@@CTS@I?@B@@@@ IF (LTEMP.EQ.2) NODE2=NODPLC(LOC+5) *[@@@@CTS@I6SN )@@G@@@D@@@@ NODPLC(NODEVS+NODE1)=NODPLC(NODEVS+NODE1)-1 *[@@@@CTS@J@SO )@@G@@@D@@@@ NODPLC(NODEVS+NODE2)=NODPLC(NODEVS+NODE2)-1 *[@@@@CTS@JESP )@@G@@@[@@@@C *[@@@@CTS@JO@ @@@@C SET ROW SWAP INDICATORS *[@@@@CTS@JYSQ )@@G@@@[@@@@C *[@@@@CTS@J*@ @@@@ L=NODPLC(ISWAP+IBR) *[@@@@CTS@J2SR )@@G@@@ @@@@ J=NODPLC(IEQUA+NODE) *[@@@@CTS@J/@^@@@@ NODPLC(ISWAPSS )@@G@@+J)=L *[@@@@CTS@KA@^@@@@ NODPLC(IEQUA+L)=J *[@@@@CTS@KK@ @@@@ ST )@@G@@NODPLC(ISWAP+IBR)=NODE *[@@@@CTS@KU@ @@@@ NODPLC(IEQUA+NODE)=IBR SU )@@G@@*[@@@@CTS@K=@^@@@@ NEXTV=NEXTV+1 *[@@@@CTS@K,@#@@@@ GO TO SV )@@G@@100 *[@@@@CTS@K8@[@@@@C *[@@@@CTS@L]@ @@@@C INITIALIZE MATRIX POISW )@@G@@NTERS *[@@@@CTS@LG@[@@@@C *[@@@@CTS@LQ@#@@@@ 150 NEXNOD=2 *[@@@@SX )@@G@@CTS@L)@]@@@@ NUT=0 *[@@@@CTS@L%@]@@@@ NLT=0 *[@@@@CTS@L4@ @@@@SY )@@G@@ 160 NODPLC(IUR+NEXNOD)=NUT+1*[@@@@CTS@L"@ @@@@ NODPLC(ILC+NEXNOD)SZ )@@G@@=NLT+1*[@@@@CTS@MC@A@@@@ IF (NEXNOD.GE.NSTOP) GO TO 500*[@@@@CTS@MMTA )@@G@@@[@@@@C *[@@@@CTS@MW@ @@@@C SELECT ROW FOR REORDERING *[@@@@CTS@M&TB )@@G@@@[@@@@C *[@@@@CTS@M0@A@@@@ LOAD=NODPLC(IORDER+NEXNOD) *[@@@@TC )@@G@@CTS@M'@ @@@@ IR=NODPLC(ISWAP+LOAD) *[@@@@CTS@N^@C@@@@ IMIN=NTD )@@G@@ODPLC(NUMOFF+IR)*NODPLC(NMOFFC+LOAD)*[@@@@CTS@NI@^@@@@ NSTART=NEXNOTE )@@G@@D+1 *[@@@@CTS@NS@ @@@@ DO 200 I=NSTART,NSTOP *[@@@@CTS@N+@ @@@@TF )@@G@@ LC=NODPLC(IORDER+I) *[@@@@CTS@N?@ @@@@ IR=NODPLC(ISWAP+LCTG )@@G@@) *[@@@@CTS@N6@C@@@@ NRC=NODPLC(NUMOFF+IR)*NODPLC(NMOFFC+LC) TH )@@G@@*[@@@@CTS@O@@A@@@@ IF (NRC.GE.IMIN) GO TO 200 @ @@@[ IF (MOTI )@@G@@DE.NE.3) GO TO 190@A@@@[ IF (MODAC.NE.3) GO TO 190 @A@@@[ TJ )@@G@@IF (I.EQ.NSTOP) GO TO 200 *[@@@@CTS@OE@#@^@@ IMIN=NRC @#@@@^TK )@@G@@ 190 IMIN=NRC *[@@@@CTS@OO@#@@@@ LOAD=LC *[@@@@CTS@OY@#@@@@TL )@@G@@ 200 CONTINUE *[@@@@CTS@O*@[@@@@C *[@@@@CTS@O2@ @@@@C SET REORDTM )@@G@@ER INDICATORS *[@@@@CTS@O/@[@@@@C *[@@@@CTS@PA@ @@@@ IR=NODTN )@@G@@PLC(ISWAP+LOAD) *[@@@@CTS@PK@C@@@@ NODPLC(NUMOFF+IR)=NODPLC(NUMOFTO )@@G@@F+IR)-1 *[@@@@CTS@PU@C@@@@ NODPLC(NMOFFC+LOAD)=NODPLC(NMOFFC+LOTP )@@G@@AD)-1 *[@@@@CTS@P=@ @@@@ LC=NODPLC(IORDER+NEXNOD)*[@@@@CTS@P,@ @@@@TQ )@@G@@ JR=NODPLC(JMNODE+LOAD) *[@@@@CTS@P8@ @@@@ NODPLC(IORDER+JR)=TR )@@G@@LC *[@@@@CTS@Q]@ @@@@ NODPLC(JMNODE+LC)=JR *[@@@@CTS@QG@A@@@@TS )@@G@@ NODPLC(IORDER+NEXNOD)=LOAD *[@@@@CTS@QQ@A@@@@ NODPLC(JMNODTT )@@G@@E+LOAD)=NEXNOD *[@@@@CTS@Q)@[@@@@C *[@@@@CTS@Q%@A@@@@C SET POINTTU )@@G@@ERS FOR UPPER TRIANGLE *[@@@@CTS@Q4@[@@@@C *[@@@@CTS@Q"@#@@@@ TV )@@G@@LOC=ISR+IR *[@@@@CTS@RC@B@@@@ 330 IF (NODPLC(LOC).EQ.0) GO TO 340 TW )@@G@@*[@@@@CTS@RM@^@@@@ LOC=NODPLC(LOC) *[@@@@CTS@RW@^@@@@ IC=NODTX )@@G@@PLC(LOC+1) *[@@@@CTS@R&@ @@@@ JC=NODPLC(JMNODE+IC) *[@@@@CTS@R0TY )@@G@@@A@@@@ IF (JC.LE.NEXNOD) GO TO 330 *[@@@@CTS@R'@C@@@@ NODPLCTZ )@@G@@(NMOFFC+IC)=NODPLC(NMOFFC+IC)-1 *[@@@@CTS@S^@^@@@@ CALL EXTMEM(UA )@@G@@IUC,1)*[@@@@CTS@SI@ @@@@ NODPLC(IUC+NUT+1)=IC *[@@@@CTS@SS@#@@@@UB )@@G@@ NUT=NUT+1 *[@@@@CTS@S+@#@@@@ GO TO 330 *[@@@@CTS@S?@[@@@@UC )@@G@@C *[@@@@CTS@S6@A@@@@C SET POINTERS FOR LOWER TRIANGLE *[@@@@CTS@T@UD )@@G@@@[@@@@C *[@@@@CTS@TE@ @@@@ 340 DO 390 JR=NSTART,NSTOP *[@@@@CTS@TOUE )@@G@@@ @@@@ LC=NODPLC(IORDER+JR) *[@@@@CTS@TY@ @@@@ IR=NODPLC(ISUF )@@G@@WAP+LC) *[@@@@CTS@T*@#@@@@ LOC=ISR+IR *[@@@@CTS@T2@B@@@@ 350 UG )@@G@@IF (NODPLC(LOC).EQ.0) GO TO 390 *[@@@@CTS@T/@^@@@@ LOC=NODPLC(LUH )@@G@@OC) *[@@@@CTS@UA@B@@@@ IF (NODPLC(LOC+1).NE.LOAD) GO TO 350*[@@@@UI )@@G@@CTS@UK@C@@@@ NODPLC(NUMOFF+IR)=NODPLC(NUMOFF+IR)-1 *[@@@@CTS@UUUJ )@@G@@@^@@@@ CALL EXTMEM(ILR,1)*[@@@@CTS@U=@ @@@@ NODPLC(ILR+NLT+1)=UK )@@G@@LC *[@@@@CTS@U,@#@@@@ NLT=NLT+1 *[@@@@CTS@U8@[@@@@C *[@@@@UL )@@G@@CTS@V]@ @@@@C CHECK FOR FILL-IN TERMS *[@@@@CTS@VG@[@@@@C *[@@@@UM )@@G@@CTS@VQ@ @@@@ NCT=NODPLC(IUR+NEXNOD) *[@@@@CTS@V)@A@@@@ 360 IF (NCUN )@@G@@T.GE.(NUT+1)) GO TO 390 *[@@@@CTS@V%@^@@@@ IC=NODPLC(IUC+NCT)*[@@@@UO )@@G@@CTS@V4@^@@@@ CALL RESERV(IR,IC)*[@@@@CTS@V"@#@@@@ NCT=NCT+1 UP )@@G@@*[@@@@CTS@WC@#@@@@ GO TO 360 *[@@@@CTS@WM@#@@@@ 390 CONTINUE UQ )@@G@@*[@@@@CTS@WW@[@@@@C *[@@@@CTS@W&@[@@@@C *[@@@@CTS@W0@^@@@@ UR )@@G@@NEXNOD=NEXNOD+1 *[@@@@CTS@W'@#@@@@ GO TO 160 *[@@@@CTS@X^@[@@@@US )@@G@@C *[@@@@CTS@XI@^@@@@C REORDERING FINISHED *[@@@@CTS@XS@[@@@@C UT )@@G@@*[@@@@CTS@X+@A@@@@ 500 NODPLC(IUR+NSTOP+1)=NUT+1 *[@@@@CTS@X?@A@@@@UU )@@G@@ NODPLC(ILC+NSTOP+1)=NLT+1 *[@@@@CTS@X6@ @@@@ IF (NUT.EQ.0UV )@@G@@) GO TO 515 *[@@@@CTS@Y@@^@@@@ DO 510 I=1,NUT *[@@@@CTS@YE@^@@@@UW )@@G@@ J=NODPLC(IUC+I) *[@@@@CTS@YO@A@@@@ NODPLC(IUC+I)=NODPLC(JMNUX )@@G@@ODE+J)*[@@@@CTS@YY@#@@@@ 510 CONTINUE *[@@@@CTS@Y*@ @@@@ 515 IF (NLUY )@@G@@T.EQ.0) GO TO 600 *[@@@@CTS@Y2@^@@@@ DO 520 I=1,NLT *[@@@@CTS@Y/UZ )@@G@@@^@@@@ J=NODPLC(ILR+I) *[@@@@CTS@ZA@A@@@@ NODPLC(ILR+I)=NODPVA )@@G@@LC(JMNODE+J)*[@@@@CTS@ZK@#@@@@ 520 CONTINUE *[@@@@CTS@ZU@#@@@@ VB )@@G@@GO TO 600 *[@@@@CTS@Z=@[@@@@C *[@@@@CTS@Z,@G@@@@C ERROR - VOLTAGEVC )@@G@@-SOURCE/INDUCTOR/TRANSMISSION-LINE LOOP DETECTED ... *[@@@@CTS@Z8@[@@@@VD )@@G@@C *[@@@@CTS@)]@]@@@@ 590 NOGO=1*[@@@@CTS@)G@^@@@@ WRITE (6,591VE )@@G@@) *[@@@@CTS@)Q@C@@@@C... LOOP SHOULD HAVE BEEN DETECTED IN TOPCHK VF )@@G@@*[@@@@CTS@))@E@@@@ 591 FORMAT('0*ABORT*: SPICE INTERNAL ERROR IN REORDVG )@@G@@R'/) *[@@@@CTS@)%@[@@@@C *[@@@@CTS@)4@]@@@@C FINISHED *[@@@@CTS@)"VH )@@G@@@[@@@@C *[@@@@CTS@-C@]@@@@ 600 RETURN*[@@@@CTS@-M@]@@@@ END VI )@@G@@___M, *[@@@@CTS@[=@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDVJ )@@G@@ELIM,ICOLUM,INSIZE, *[@@@@CTS@[,@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,VK )@@G@@IORDER,JMNODE,IUR,IUC,IL*[S@@@*SDFF**[@@@@CTS@@E@^@@@[ SUBROUTINE DVL )@@G@@IODE *[@@@@CTS@@O@[@@@[C *[@@@@CTS@@Y@F@@@[C THIS ROUTINE PROCEVM )@@G@@SSES DIODES FOR DC AND TRANSIENT ANALYSES.*[@@@@CTS@@*@[@@@[C *[@@@@VN )@@G@@CTS@@2@A@@@[ IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.TAVO )@@G@@BINF,LIST @ @@@^ INCLUDE F.CIRDAT,LIST @ @@@^ INCLUDE F.STVP )@@G@@ATUS,LIST @ @@@^ INCLUDE F.KNSTNT,LIST @ @@@^ INCLUDE F.BLVQ )@@G@@ANK,LIST @^@^@#@ADD,P *SPICE.DIODED *[@@@@CTS@@/@G@#@[ COMMONVR )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[AVS )@@G@@@G@#@[ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEVT )@@G@@, *[@@@@CTS@[K@G@#@[ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,VU )@@G@@IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[U@G@#@[ 3 NMOFFC,ISEQ,ISEQ1,NEQVV )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@#@[ 4 LX0VW )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[,VX )@@G@@@#@#@[ 5 LOUTPT, *[@@@@CTS@[8@E@#@[ 6 LUNSAT,LTEMPS,LFIELD,VY )@@G@@LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]]@G@#@[ 7 LLX0,LLVN,LLYNLVZ )@@G@@,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]G@A@#@[ 8WA )@@G@@ LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]Q@G@#@[ COMMON /CIRDAT/ LOWB )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@])@C@#@[ 1WC )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]%@G@#@[ COMMONWD )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]4WE )@@G@@@F@#@[ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,WF )@@G@@*[@@@@CTS@]"@^@#@[ 2 ITEMNO,NOSOLV *[@@@@CTS@#C@G@#@[ COMMONWG )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@#MWH )@@G@@@F@#@[ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX WI )@@G@@*[@@@@CTS@#W@ @#@[ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#&@^@#@[ WJ )@@G@@INTEGER NODPLC(64)*[@@@@CTS@#0@ @#@[ COMPLEX*16 CVALUE(32) *[@@@@WK )@@G@@CTS@#'@C@#@[ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^^WL )@@G@@@[@@@[C *[@@@@CTS@^I@[@@@[C *[@@@@CTS@^S@D@@@[ DIMENSION VDWM )@@G@@O(1),CDO(1),GDO(1),QD(1),CQD(1) *[@@@@CTS@^+@D@@@[ EQUIVALENCE WN )@@G@@(VDO(1),VALUE(1)),(CDO(1),VALUE(2)),*[@@@@CTS@^?@F@@@[ 1 (GDO(1),VWO )@@G@@ALUE(3)),(QD(1),VALUE(4)),(CQD(1),VALUE(5)) *[@@@@CTS@^6@[@@@[C WP )@@G@@*[@@@@CTS@ @@[@@@[C *[@@@@CTS@ E@^@@@[ LOC=LOCATE(11) *[@@@@WQ )@@G@@CTS@ O@ @@@[ 10 IF (LOC.EQ.0) RETURN *[@@@@CTS@ Y@^@@@[ LOCV=NWR )@@G@@ODPLC(LOC+1)*[@@@@CTS@ *@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@CTS@ 2WS )@@G@@@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@ /@ @@@[ NODE3=NODPLCWT )@@G@@(LOC+4) *[@@@@CTS@AA@^@@@[ LOCM=NODPLC(LOC+5)*[@@@@CTS@AK@^@@@[WU )@@G@@ IOFF=NODPLC(LOC+6)*[@@@@CTS@AU@ @@@[ LOCM=NODPLC(LOCM+1) WV )@@G@@*[@@@@CTS@A=@ @@@[ LOCT=NODPLC(LOC+11) *[@@@@CTS@A,@[@@@[C WW )@@G@@*[@@@@CTS@A8@^@@@[C DC MODEL PARAMETERS *[@@@@CTS@B]@[@@@[C *[@@@@WX )@@G@@CTS@BG@^@@@[ AREA=VALUE(LOCV+1)*[@@@@CTS@BQ@ @@@[ CSAT=VALUE(LWY )@@G@@OCM+1)*AREA *[@@@@CTS@B)@ @@@[ GSPR=VALUE(LOCM+2)*AREA *[@@@@CTS@B%WZ )@@G@@@ @@@[ VTE=VALUE(LOCM+3)*VT *[@@@@CTS@B4@^@@@[ BV=VALUE(LOCXA )@@G@@M+13) *[@@@@CTS@B"@ @@@[ VCRIT=VALUE(LOCM+18) *[@@@@CTS@CC@[@@@[XB )@@G@@C *[@@@@CTS@CM@#@@@[C INITIALIZATION *[@@@@CTS@CW@[@@@[C *[@@@@XC )@@G@@CTS@C&@#@@@[ ICHECK=0 *[@@@@CTS@C0@B@@@[ GO TO (100,20,30,5XD )@@G@@0,60,70),INITF *[@@@@CTS@C'@ @@@[ 20 IF (IOFF.NE.0) GO TO 40 *[@@@@XE )@@G@@CTS@D^@^@@@[ VD=VALUE(LOCV+2) *[@@@@CTS@DI@A@@@[ IF (VD.NE.0.XF )@@G@@D0) GO TO 300 *[@@@@CTS@DS@G@@@[ IF ((MODE.EQ.1).AND.(MODEDC.EQXG )@@G@@.2).AND.(NOSOLV.NE.0)) GO TO 300 *[@@@@CTS@D+@#@@@[ VD=VCRIT XH )@@G@@*[@@@@CTS@D?@#@@@[ GO TO 300 *[@@@@CTS@D6@ @@@[ 30 IF (IOFF.EQ.XI )@@G@@0) GO TO 100*[@@@@CTS@E@@#@@@[ 40 VD=0.D0 *[@@@@CTS@EE@#@@@[ XJ )@@G@@GO TO 300 *[@@@@CTS@EO@^@@@[ 50 VD=VDO(LX0+LOCT) *[@@@@CTS@EY@#@@@[XK )@@G@@ GO TO 300 *[@@@@CTS@E*@^@@@[ 60 VD=VDO(LX1+LOCT) *[@@@@CTS@E2XL )@@G@@@#@@@[ GO TO 300 *[@@@@CTS@E/@ @@@[ 70 XFACT=DELTA/DELOLD(2) XM )@@G@@*[@@@@CTS@FA@A@@@[ VDO(LX0+LOCT)=VDO(LX1+LOCT) *[@@@@CTS@FK@E@@@[XN )@@G@@ VD=(1.D0+XFACT)*VDO(LX1+LOCT)-XFACT*VDO(LX2+LOCT) *[@@@@CTS@FUXO )@@G@@@A@@@[ CDO(LX0+LOCT)=CDO(LX1+LOCT) *[@@@@CTS@F=@A@@@[ GDO(LXXP )@@G@@0+LOCT)=GDO(LX1+LOCT) *[@@@@CTS@F,@#@@@[ GO TO 110 *[@@@@CTS@F8XQ )@@G@@@[@@@[C *[@@@@CTS@G]@B@@@[C COMPUTE NEW NONLINEAR BRANCH VOLTAGE XR )@@G@@*[@@@@CTS@GG@[@@@[C *[@@@@CTS@GQ@C@@@[ 100 VD=VALUE(LVNIM1+NODE3)-VXS )@@G@@ALUE(LVNIM1+NODE2)*[@@@@CTS@G)@ @@@[ 110 DELVD=VD-VDO(LX0+LOCT) *[@@@@XT )@@G@@CTS@G%@C@@@[ CDHAT=CDO(LX0+LOCT)+GDO(LX0+LOCT)*DELVD *[@@@@CTS@G4XU )@@G@@@[@@@[C *[@@@@CTS@G"@B@@@[C BYPASS IF SOLUTION HAS NOT CHANGED XV )@@G@@*[@@@@CTS@HC@[@@@[C *[@@@@CTS@HM@A@@@[ IF (INITF.EQ.6) GO TO 20XW )@@G@@0 *[@@@@CTS@HW@E@@@[ TOL=RELTOL*DMAX1(DABS(VD),DABS(VDO(LX0+LOCXX )@@G@@T)))+VNTOL *[@@@@CTS@H&@B@@@[ IF (DABS(DELVD).GE.TOL) GO TO 200 XY )@@G@@*[@@@@CTS@H0@F@@@[ TOL=RELTOL*DMAX1(DABS(CDHAT),DABS(CDO(LX0+LOCT))XZ )@@G@@)+ABSTOL *[@@@@CTS@H'@D@@@[ IF (DABS(CDHAT-CDO(LX0+LOCT)).GE.TOLYA )@@G@@) GO TO 200 *[@@@@CTS@I^@^@@@[ VD=VDO(LX0+LOCT) *[@@@@CTS@II@^@@@[YB )@@G@@ CD=CDO(LX0+LOCT) *[@@@@CTS@IS@^@@@[ GD=GDO(LX0+LOCT) *[@@@@YC )@@G@@CTS@I+@#@@@[ GO TO 800 *[@@@@CTS@I?@[@@@[C *[@@@@CTS@I6@ @@@[YD )@@G@@C LIMIT NEW JUNCTION VOLTAGE *[@@@@CTS@J@@[@@@[C *[@@@@CTS@JE@#@@@[YE )@@G@@ 200 VLIM=VTE+VTE@ @@@] IF(BV.EQ.0.D0) GO TO 205*[@@@@CTS@JO@D@@@[YF )@@G@@ IF (VD.LT.DMIN1(0.0D0,-BV+10.0D0*VTE)) GO TO 210*[@@@@CTS@JY@D@ @[YG )@@G@@ CALL PNJLIM(VD,VDO(LX0+LOCT),VTE,VCRIT,ICHECK) @D@@@ 205 CALL PYH )@@G@@NJLIM(VD,VDO(LX0+LOCT),VTE,VCRIT,ICHECK) *[@@@@CTS@J*@#@@@[ GO TO YI )@@G@@300 *[@@@@CTS@J2@^@@@[ 210 VDTEMP=-(VD+BV) *[@@@@CTS@J/@F@@@[ YJ )@@G@@CALL PNJLIM(VDTEMP,-(VDO(LX0+LOCT)+BV),VTE,VCRIT,ICHECK) *[@@@@CTS@KAYK )@@G@@@^@@@[ VD=-(VDTEMP+BV) *[@@@@CTS@KK@[@@@[C *[@@@@CTS@KU@B@@@[YL )@@G@@C COMPUTE DC CURRENT AND DERIVITIVES *[@@@@CTS@K=@[@@@[C *[@@@@YM )@@G@@CTS@K,@A@@@[ 300 IF (VD.LE.0.0D0) GO TO 310 *[@@@@CTS@K8@^@@@[ YN )@@G@@EVD=DEXP(VD/VTE) *[@@@@CTS@L]@ @@@[ CD=CSAT*(EVD-1.0D0) *[@@@@YO )@@G@@CTS@LG@^@@@[ GD=CSAT*EVD/VTE *[@@@@CTS@LQ@#@@@[ GO TO 330 YP )@@G@@@ @@@] 310 IF(BV.EQ.0.D0) GO TO 315*[@@@@CTS@L)@ @]@[ 310 IF (VD.LT.-BYQ )@@G@@V) GO TO 320@ @@@] IF (VD.LT.-BV) GO TO 320*[@@@@CTS@L%@#@ @[ YR )@@G@@GD=CSAT/VTE @#@@@ 315 GD=CSAT/VTE *[@@@@CTS@L4@#@@@[ CD=GD*VD YS )@@G@@*[@@@@CTS@L"@#@@@[ GO TO 330 *[@@@@CTS@MC@ @@@[ 320 EVREV=DEXP(-YT )@@G@@(BV+VD)/VT) *[@@@@CTS@MM@A@@@[ CD=-CSAT*(EVREV-1.0D0+BV/VT) *[@@@@YU )@@G@@CTS@MW@^@@@[ GD=CSAT*EVREV/VT *[@@@@CTS@M&@ @@@[ 330 IF (MODE.NE.YV )@@G@@1) GO TO 500*[@@@@CTS@M0@D@@@[ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0))YW )@@G@@ GO TO 500 *[@@@@CTS@M'@A@@@[ IF (INITF.EQ.4) GO TO 500 *[@@@@YX )@@G@@CTS@N^@#@@@[ GO TO 700 *[@@@@CTS@NI@[@@@[C *[@@@@CTS@NS@ @@@[YY )@@G@@C CHARGE STORAGE ELEMENTS *[@@@@CTS@N+@[@@@[C *[@@@@CTS@N?@^@@@[YZ )@@G@@ 500 TAU=VALUE(LOCM+4) *[@@@@CTS@N6@ @@@[ CZERO=VALUE(LOCM+5)*AREAZA )@@G@@*[@@@@CTS@O@@^@@@[ PB=VALUE(LOCM+6) *[@@@@CTS@OE@^@@@[ XM=VALZB )@@G@@UE(LOCM+7) *[@@@@CTS@OO@ @@@[ FCPB=VALUE(LOCM+12) *[@@@@CTS@OYZC )@@G@@@A@@@[ IF (VD.GE.FCPB) GO TO 510 *[@@@@CTS@O*@^@@@[ ARG=1.ZD )@@G@@0D0-VD/PB *[@@@@CTS@O2@ @@@[ SARG=DEXP(-XM*DLOG(ARG))*[@@@@CTS@O/ZE )@@G@@@F@@@[ QD(LX0+LOCT)=TAU*CD+PB*CZERO*(1.0D0-ARG*SARG)/(1.0D0-XM) ZF )@@G@@*[@@@@CTS@PA@ @@@[ CAPD=TAU*GD+CZERO*SARG *[@@@@CTS@PK@#@@@[ ZG )@@G@@GO TO 520 *[@@@@CTS@PU@^@@@[ 510 F1=VALUE(LOCM+15) *[@@@@CTS@P=@^@@@[ZH )@@G@@ F2=VALUE(LOCM+16) *[@@@@CTS@P,@^@@@[ F3=VALUE(LOCM+17) *[@@@@ZI )@@G@@CTS@P8@^@@@[ CZOF2=CZERO/F2 *[@@@@CTS@Q]@D@@@[ QD(LX0+LOCT)ZJ )@@G@@=TAU*CD+CZERO*F1+CZOF2*(F3*(VD-FCPB)*[@@@@CTS@QG@B@@@[ 1 +(XM/(PB+ZK )@@G@@PB))*(VD*VD-FCPB*FCPB)) *[@@@@CTS@QQ@B@@@[ CAPD=TAU*GD+CZOF2*(F3+XMZL )@@G@@*VD/PB) *[@@@@CTS@Q)@[@@@[C *[@@@@CTS@Q%@A@@@[C STORE SMALL-SIGZM )@@G@@NAL PARAMETERS *[@@@@CTS@Q4@[@@@[C *[@@@@CTS@Q"@F@@@[ 520 IF(MODZN )@@G@@E.EQ.1.AND.MODEDC.EQ.2.AND.NOSOLV.NE.0) GO TO 700 *[@@@@CTS@RC@ @@@[ZO )@@G@@ IF(INITF.NE.4) GO TO 600*[@@@@CTS@RM@ @@@[ VALUE(LX0+LOCT+4)=ZP )@@G@@CAPD *[@@@@CTS@RW@#@@@[ GO TO 1000 *[@@@@CTS@R&@[@@@[C *[@@@@ZQ )@@G@@CTS@R0@^@@@[C TRANSIENT ANALYSIS *[@@@@CTS@R'@[@@@[C *[@@@@CTS@S^ZR )@@G@@@A@@@[ 600 IF (INITF.NE.5) GO TO 610 *[@@@@CTS@SI@A@@@[ QD(LX1ZS )@@G@@+LOCT)=QD(LX0+LOCT) *[@@@@CTS@SS@B@@@[ 610 CALL INTGR8(GEQ,CEQ,CAPDZT )@@G@@,LOCT+3) *[@@@@CTS@S+@#@@@[ GD=GD+GEQ *[@@@@CTS@S?@ @@@[ ZU )@@G@@CD=CD+CQD(LX0+LOCT) *[@@@@CTS@S6@A@@@[ IF (INITF.NE.5) GO TO 70ZV )@@G@@0 *[@@@@CTS@T@@A@@@[ CQD(LX1+LOCT)=CQD(LX0+LOCT) *[@@@@CTS@TEZW )@@G@@@[@@@[C *[@@@@CTS@TO@^@@@[C CHECK CONVERGENCE *[@@@@CTS@TY@[@@@[ZX )@@G@@C *[@@@@CTS@T*@A@@@[ 700 IF (INITF.NE.3) GO TO 710 *[@@@@CTS@T2ZY )@@G@@@ @@@[ IF (IOFF.EQ.0) GO TO 710*[@@@@CTS@T/@#@@@[ GO TO 750 ZZ )@@G@@*[@@@@CTS@UA@A@@@[ 710 IF (ICHECK.EQ.0) GO TO 720 *[@@@@CTS@UK@D@@@[AA )@@G@@ TOL=RELTOL*DMAX1(DABS(CDHAT),DABS(CD))+ABSTOL *[@@@@CTS@UU@B@@@[AB )@@G@@ IF (DABS(CDHAT-CD).LE.TOL) GO TO 750*[@@@@CTS@U=@^@@@[ 720 NONCONAC )@@G@@=NONCON+1 *[@@@@CTS@U,@^@@@[ 750 VDO(LX0+LOCT)=VD *[@@@@CTS@U8@^@@@[AD )@@G@@ CDO(LX0+LOCT)=CD *[@@@@CTS@V]@^@@@[ GDO(LX0+LOCT)=GD *[@@@@AE )@@G@@CTS@VG@[@@@[C *[@@@@CTS@VQ@^@@@[C LOAD CURRENT VECTOR *[@@@@CTS@V)AF )@@G@@@[@@@[C *[@@@@CTS@V%@^@@@[ 800 CDEQ=CD-GD*VD *[@@@@CTS@V4@C@@@[AG )@@G@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CDEQ *[@@@@CTS@V"@C@@@[ AH )@@G@@VALUE(LVN+NODE3)=VALUE(LVN+NODE3)-CDEQ *[@@@@CTS@WC@[@@@[C *[@@@@AI )@@G@@CTS@WM@#@@@[C LOAD MATRIX *[@@@@CTS@WW@[@@@[C *[@@@@CTS@W&@ @@@[AJ )@@G@@ LOCY=LYNL+NODPLC(LOC+13)*[@@@@CTS@W0@A@@@[ VALUE(LOCY)=VALUE(AK )@@G@@LOCY)+GSPR *[@@@@CTS@W'@ @@@[ LOCY=LYNL+NODPLC(LOC+14)*[@@@@CTS@X^AL )@@G@@@A@@@[ VALUE(LOCY)=VALUE(LOCY)+GD *[@@@@CTS@XI@ @@@[ LOCY=LAM )@@G@@YNL+NODPLC(LOC+15)*[@@@@CTS@XS@B@@@[ VALUE(LOCY)=VALUE(LOCY)+GD+GSPAN )@@G@@R *[@@@@CTS@X+@ @@@[ LOCY=LYNL+NODPLC(LOC+7) *[@@@@CTS@X?@A@@@[AO )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GSPR *[@@@@CTS@X6@ @@@[ LOCY=LYNL+NOAP )@@G@@DPLC(LOC+8) *[@@@@CTS@Y@@A@@@[ VALUE(LOCY)=VALUE(LOCY)-GD *[@@@@AQ )@@G@@CTS@YE@ @@@[ LOCY=LYNL+NODPLC(LOC+9) *[@@@@CTS@YO@A@@@[ VALUE(AR )@@G@@LOCY)=VALUE(LOCY)-GSPR *[@@@@CTS@YY@ @@@[ LOCY=LYNL+NODPLC(LOC+10)AS )@@G@@*[@@@@CTS@Y*@A@@@[ VALUE(LOCY)=VALUE(LOCY)-GD *[@@@@CTS@Y2@^@@@[AT )@@G@@ 1000 LOC=NODPLC(LOC) *[@@@@CTS@Y/@#@@@[ GO TO 10 *[@@@@CTS@ZAAU )@@G@@@]@@@[ END ___D):*[S@@@*SDFF**[@@@@CTS@@E@^@@@[ SUBROUTINE SAV )@@G@@ENCAL *[@@@@CTS@@O@[@@@[C *[@@@@CTS@@Y@G@@@[C THIS ROUTINE COMPUAW )@@G@@TES THE DC SENSITIVITIES OF CIRCUIT ELEMENTS *[@@@@CTS@@*@B@@@[C WITHAX )@@G@@ RESPECT TO USER SPECIFIED OUTPUTS. *[@@@@CTS@@2@[@@@[C *[@@@@CTS@@/AY )@@G@@@A@@@[ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LAZ )@@G@@IST @ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.STATUS,LBA )@@G@@IST @ @@@# INCLUDE F.MISCEL,LIST @ @@@# INCLUDE F.FLAGS,LIBB )@@G@@ST @^@@@# INCLUDE F.DC,LIST @ @@@# INCLUDE F.BLANK,LIST BC )@@G@@@^@#@]@ADD,P *SPICE.SENCALD *[@@@@CTS@[A@G@]@[ COMMON /TABINF/ IEBD )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[K@G@]@[ 1BE )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@BF )@@G@@CTS@[U@G@]@[ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,BG )@@G@@NUMOFF,ISR, *[@@@@CTS@[=@G@]@[ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIBH )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@]@[ 4 LX0,LVN,LYNL,LYBI )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[8@#@]@[ 5BJ )@@G@@ LOUTPT, *[@@@@CTS@]]@E@]@[ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKBK )@@G@@P,LACINS,LLVNIM, *[@@@@CTS@]G@G@]@[ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LBL )@@G@@LX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@]@[ 8 LLD0,LLD1BM )@@G@@,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@]@[ COMMON /CIRDAT/ LOCATE(50),JELBN )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]%@C@]@[ 1 NUT,NLT,NBO )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]4@G@]@[ COMMON /STATUS/ OMBP )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]"@F@]@[ 1BQ )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@#CBR )@@G@@@^@]@[ 2 ITEMNO,NOSOLV *[@@@@CTS@#M@G@]@[ COMMON /MISCEL/ APBS )@@G@@ROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@#W@ @]@[ 1BT )@@G@@ IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@#&@ @]@[ INTEGER*4 ATIME,ADATE BU )@@G@@*[@@@@CTS@#0@G@]@[ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTBV )@@G@@O,LIMTIM,LIMPTS, *[@@@@CTS@#'@F@]@[ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLBW )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@CTS@^^@G@]@[ COMMON /DC/ TCSTARBX )@@G@@,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, *[@@@@CTS@^I@^@]@[ 1BY )@@G@@ KOVAR,KIDOUT *[@@@@CTS@^S@ @]@[ COMMON /BLANK/ VALUE(64)*[@@@@BZ )@@G@@CTS@^+@^@]@[ INTEGER NODPLC(64)*[@@@@CTS@^?@ @]@[ COMPLEX*16 CCA )@@G@@VALUE(32) *[@@@@CTS@^6@C@]@[ EQUIVALENCE (VALUE(1),NODPLC(1),CVALCB )@@G@@UE(1))*[@@@@CTS@ @@[@@@[C *[@@@@CTS@ E@[@@@[C *[@@@@CTS@ O@A@@@[CC )@@G@@ DIMENSION STRING(5),SENTIT(4) *[@@@@CTS@ Y@G@@@[ DATA ALSRS,ACD )@@G@@LSIS,ALSN,ALSRB,ALSRC,ALSRE / 2HRS,2HIS,1HN,2HRB,2HRC,*[@@@@CTS@ *@#@@@[CE )@@G@@ 1 2HRE / *[@@@@CTS@ 2@G@@@[ DATA ALSBF,ALSC2,ALSBR,ALSC4,ACF )@@G@@LSNE,ALSNC,ALSIK,ALSIKR,ALSVA,ALSVB *[@@@@CTS@ /@F@@@[ 1 / 2HBF,2HCG )@@G@@C2,2HBR,2HC4,2HNE,2HNC,2HIK,3HIKR,2HVA,2HVB / *[@@@@CTS@AA@G@@@[ CH )@@G@@DATA SENTIT / 8HDC SENSI, 8HTIVITY A, 8HNALYSIS , 8H / *[@@@@CI )@@G@@CTS@AK@^@@@[ DATA ABLNK / 1H /*[@@@@CTS@AU@[@@@[C *[@@@@CTS@A=CJ )@@G@@@[@@@[C *[@@@@CTS@A,@ @@@[ IF (KINEL.NE.0) GO TO 8 *[@@@@CTS@A8CK )@@G@@@#@@@[ 4 CALL DCDCMP *[@@@@CTS@B]@[@@@[C *[@@@@CTS@BG@[@@@[C CL )@@G@@*[@@@@CTS@BQ@^@@@[ 8 DO 1000 N=1,NSENS *[@@@@CTS@B)@[@@@[C *[@@@@CM )@@G@@CTS@B%@A@@@[C PREPARE ADJOINT EXCITATION VECTOR*[@@@@CTS@B4@[@@@[C CN )@@G@@*[@@@@CTS@B'@A@^@[ CALL ZERO8(VALUE,LVN+1,NSTOP) @A@ @^ CALL ZCO )@@G@@ERO8(VALUE(LVN+1)NSTOP) @A@@@ CALL ZERO8(VALUE(LVN+1),NSTOP)*[@@@@CP )@@G@@CTS@B"*[@@@@CTS@CC@ @@@[ LOCS=NODPLC(ISENS+N) *[@@@@CTS@CM@ @@@[CQ )@@G@@ IOUTYP=NODPLC(LOCS+5) *[@@@@CTS@CW@A@@@[ IF (IOUTYP.NE.0) GCR )@@G@@O TO 10 *[@@@@CTS@C&@^@@@[C... VOLTAGE OUTPUT *[@@@@CTS@C0@ @@@[CS )@@G@@ NOPOSO=NODPLC(LOCS+2) *[@@@@CTS@C'@ @@@[ NONEGO=NODPLC(LOCSCT )@@G@@+3) *[@@@@CTS@D^@ @@@[ VALUE(LVN+NOPOSO)=-1.D0 *[@@@@CTS@DI@ @@@[CU )@@G@@ VALUE(LVN+NONEGO)=+1.D0 *[@@@@CTS@DS@#@@@[ GO TO 20 *[@@@@CV )@@G@@CTS@D+@C@@@[C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) *[@@@@CTS@D?CW )@@G@@@ @@@[ 10 IPTRO=NODPLC(LOCS+2) *[@@@@CTS@D6@ @@@[ IPTRO=NODPLCCX )@@G@@(IPTRO+6) *[@@@@CTS@E@@ @@@[ VALUE(LVN+IPTRO)=-1.D0 *[@@@@CTS@EECY )@@G@@@[@@@[C *[@@@@CTS@EO@G@@@[C OBTAIN ADJOINT SOLUTION BY DOING FORWARCZ )@@G@@D/BACKWARD SUBSTITUTION ON *[@@@@CTS@EY@A@@@[C THE TRANSPOSE OF THE DA )@@G@@Y MATRIX *[@@@@CTS@E*@[@@@[C *[@@@@CTS@E2@#@@@[ 20 CALL ASOL DB )@@G@@*[@@@@CTS@E/@^@@@[ VALUE(LVN+1)=0.D0 *[@@@@CTS@FA@[@@@[C *[@@@@DC )@@G@@CTS@FK@E@@@[C REAL SOLUTION IN LVNIM1; ADJOINT SOLUTION IN LVN ... DD )@@G@@*[@@@@CTS@FU@[@@@[C *[@@@@CTS@F=@A@@@[ CALL TITLE(0,LWIDTH,1,SEDE )@@G@@NTIT) *[@@@@CTS@F,@]@@@[ IPOS=1*[@@@@CTS@F8@B@@@[ CALL OUTNAM(DF )@@G@@LOCS,1,STRING,IPOS) *[@@@@CTS@G]@B@@@[ CALL MOVE(STRING,IPOS,ABDG )@@G@@LNK,1,7) *[@@@@CTS@GG@^@@@[ JSTOP=(IPOS+6)/8 *[@@@@CTS@GQ@B@@@[DH )@@G@@ WRITE (6,36) (STRING(J),J=1,JSTOP) *[@@@@CTS@G)@C@@@[ 36 FORMATDI )@@G@@('0DC SENSITIVITIES OF OUTPUT ',5A8)*[@@@@CTS@G%@#@@@[ WRITE (6,41)DJ )@@G@@*[@@@@CTS@G4@G@@@[ 41 FORMAT(1H0,8X,'ELEMENT',9X,'ELEMENT',7X,'ELEMENTDK )@@G@@',7X,'NORMALIZED'/*[@@@@CTS@G"@G@@@[ 1 10X,'NAME',12X,'VALUE',6X,'DL )@@G@@SENSITIVITY SENSITIVITY'/35X, *[@@@@CTS@HC@B@@@[ 2 ' (VOLTS/DM )@@G@@UNIT) (VOLTS/PERCENT)'/)*[@@@@CTS@HM@[@@@[C *[@@@@CTS@HW@]@@@[C RESDN )@@G@@ISTORS*[@@@@CTS@H&@[@@@[C *[@@@@CTS@H0@^@@@[ LOC=LOCATE(1) DO )@@G@@*[@@@@CTS@H'@ @@@[ 100 IF (LOC.EQ.0) GO TO 110 *[@@@@CTS@I^@^@@@[ DP )@@G@@LOCV=NODPLC(LOC+1)*[@@@@CTS@II@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@DQ )@@G@@CTS@IS@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@I+@ @@@[ VAL=1.DR )@@G@@D0/VALUE(LOCV+1) *[@@@@CTS@I?@D@@@[ SENS=-(VALUE(LVNIM1+NODE1)-VALDS )@@G@@UE(LVNIM1+NODE2))**[@@@@CTS@I6@F@@@[ 1 (VALUE(LVN +NODE1)-VALDT )@@G@@UE(LVN +NODE2))/(VAL*VAL) *[@@@@CTS@J@@ @@@[ SENSN=VAL*SENS/100DU )@@G@@.D0 *[@@@@CTS@JE@C@@@[ WRITE (6,101) VALUE(LOCV),VAL,SENS,SENSN DV )@@G@@*[@@@@CTS@JO@D@@@[ 101 FORMAT(10X,A8,4X,1PD10.3,5X,D10.3,5X,D10.3) DW )@@G@@*[@@@@CTS@JY@^@@@[ 105 LOC=NODPLC(LOC) *[@@@@CTS@J*@#@@@[ GO TO DX )@@G@@100 *[@@@@CTS@J2@[@@@[C *[@@@@CTS@J/@#@@@[C VOLTAGE SOURCES*[@@@@DY )@@G@@CTS@KA@[@@@[C *[@@@@CTS@KK@^@@@[ 110 LOC=LOCATE(9) *[@@@@CTS@KUDZ )@@G@@@ @@@[ 140 IF (LOC.EQ.0) GO TO 150 *[@@@@CTS@K=@^@@@[ LOCV=NODPLC(EA )@@G@@LOC+1)*[@@@@CTS@K,@^@@@[ VAL=VALUE(LOCV+1) *[@@@@CTS@K8@ @@@[ EB )@@G@@IPTRV=NODPLC(LOC+6) *[@@@@CTS@L]@ @@@[ SENS=-VALUE(LVN+IPTRV) EC )@@G@@*[@@@@CTS@LG@ @@@[ SENSN=VAL*SENS/100.D0 *[@@@@CTS@LQ@C@@@[ ED )@@G@@WRITE (6,101) VALUE(LOCV),VAL,SENS,SENSN *[@@@@CTS@L)@^@@@[ 145 LOC=NOEE )@@G@@DPLC(LOC) *[@@@@CTS@L%@#@@@[ GO TO 140 *[@@@@CTS@L4@[@@@[C EF )@@G@@*[@@@@CTS@L"@#@@@[C CURRENT SOURCES*[@@@@CTS@MC@[@@@[C *[@@@@CTS@MMEG )@@G@@@^@@@[ 150 LOC=LOCATE(10) *[@@@@CTS@MW@ @@@[ 160 IF (LOC.EQ.0) GO TEH )@@G@@O 170 *[@@@@CTS@M&@^@@@[ LOCV=NODPLC(LOC+1)*[@@@@CTS@M0@ @@@[ EI )@@G@@NODE1=NODPLC(LOC+2) *[@@@@CTS@M'@ @@@[ NODE2=NODPLC(LOC+3) EJ )@@G@@*[@@@@CTS@N^@^@@@[ VAL=VALUE(LOCV+1) *[@@@@CTS@NI@C@@@[ SENS=VEK )@@G@@ALUE(LVN+NODE1)-VALUE(LVN+NODE2) *[@@@@CTS@NS@ @@@[ SENSN=VAL*SEEL )@@G@@NS/100.D0 *[@@@@CTS@N+@C@@@[ WRITE (6,101) VALUE(LOCV),VAL,SENS,SEM )@@G@@ENSN *[@@@@CTS@N?@^@@@[ 165 LOC=NODPLC(LOC) *[@@@@CTS@N6@#@@@[ EN )@@G@@GO TO 160 *[@@@@CTS@O@@[@@@[C *[@@@@CTS@OE@]@@@[C DIODES *[@@@@EO )@@G@@CTS@OO@[@@@[C *[@@@@CTS@OY@^@@@[ 170 LOC=LOCATE(11) *[@@@@CTS@O*EP )@@G@@@ @@@[ 180 IF (LOC.EQ.0) GO TO 210 *[@@@@CTS@O2@^@@@[ LOCV=NODPLC(EQ )@@G@@LOC+1)*[@@@@CTS@O/@A@@@[ WRITE (6,181) VALUE(LOCV) *[@@@@CTS@PAER )@@G@@@^@@@[ 181 FORMAT(1X,A8) *[@@@@CTS@PK@ @@@[ NODE1=NODPLC(LOC+2ES )@@G@@) *[@@@@CTS@PU@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@P=@ @@@[ET )@@G@@ NODE3=NODPLC(LOC+4) *[@@@@CTS@P,@^@@@[ LOCM=NODPLC(LOC+5)EU )@@G@@*[@@@@CTS@P8@ @@@[ LOCM=NODPLC(LOCM+1) *[@@@@CTS@Q]@^@@@[ EV )@@G@@AREA=VALUE(LOCV+1)*[@@@@CTS@QG@[@@@[C *[@@@@CTS@QQ@ @@@[C SERIES REEW )@@G@@SISTANCE (RS) *[@@@@CTS@Q)@[@@@[C *[@@@@CTS@Q%@ @@@[ VAL=VAEX )@@G@@LUE(LOCM+2)*AREA *[@@@@CTS@Q4@A@@@[ IF (VAL.NE.0.D0) GO TO 190 EY )@@G@@*[@@@@CTS@Q"@ @@@[ WRITE (6,186) ALSRS *[@@@@CTS@RC@C@@@[ 186 EZ )@@G@@FORMAT(10X,A8,5X,2H0.,13X,2H0.,13X,2H0.) *[@@@@CTS@RM@#@@@[ GO TO FA )@@G@@200 *[@@@@CTS@RW@#@@@[ 190 VAL=1.D0/VAL*[@@@@CTS@R&@D@@@[ SENS=-FB )@@G@@(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3))**[@@@@CTS@R0@F@@@[ 1 FC )@@G@@(VALUE(LVN +NODE1)-VALUE(LVN +NODE3))/(VAL*VAL) *[@@@@CTS@R'@ @@@[FD )@@G@@ SENSN=VAL*SENS/100.D0 *[@@@@CTS@S^@B@@@[ WRITE (6,101) ALSRFE )@@G@@S,VAL,SENS,SENSN *[@@@@CTS@SI@[@@@[C *[@@@@CTS@SS@^@@@[C INTRINSICFF )@@G@@ PARAMETERS *[@@@@CTS@S+@[@@@[C *[@@@@CTS@S?@ @@@[ 200 CSAT=VALUE(LFG )@@G@@OCM+1)*AREA *[@@@@CTS@S6@^@@@[ XN=VALUE(LOCM+3) *[@@@@CTS@T@@D@@@[FH )@@G@@ VBE=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE2) *[@@@@CTS@TE@#@@@[FI )@@G@@ VTE=XN*VT *[@@@@CTS@TO@^@@@[ EVBE=DEXP(VBE/VTE)*[@@@@CTS@TYFJ )@@G@@@C@@@[ VABE=VALUE(LVN+NODE3)-VALUE(LVN+NODE2) *[@@@@CTS@T*@[@@@[FK )@@G@@C *[@@@@CTS@T2@ @@@[C SATURATION CURRENT (IS) *[@@@@CTS@T/@[@@@[FL )@@G@@C *[@@@@CTS@UA@ @@@[ SENS=VABE*(EVBE-1.D0) *[@@@@CTS@UK@ @@@[FM )@@G@@ SENSN=CSAT*SENS/100.D0 *[@@@@CTS@UU@B@@@[ WRITE (6,101) ALSIFN )@@G@@S,CSAT,SENS,SENSN *[@@@@CTS@U=@[@@@[C *[@@@@CTS@U,@^@@@[C IDEALITY FO )@@G@@FACTOR (N) *[@@@@CTS@U8@[@@@[C *[@@@@CTS@V]@B@@@[ SENS=-VABE*(FP )@@G@@CSAT/XN)*(VBE/VTE)*EVBE *[@@@@CTS@VG@B@@@[ IF (DABS(SENS).LT.1.D-50FQ )@@G@@) SENS=0.D0 *[@@@@CTS@VQ@ @@@[ SENSN=XN*SENS/100.D0 *[@@@@CTS@V)FR )@@G@@@B@@@[ WRITE (6,101) ALSN,XN,SENS,SENSN *[@@@@CTS@V%@^@@@[ 205 FS )@@G@@LOC=NODPLC(LOC) *[@@@@CTS@V4@#@@@[ GO TO 180 *[@@@@CTS@V"@[@@@[FT )@@G@@C *[@@@@CTS@WC@A@@@[C BIPOLAR JUNCTION TRANSISTORS *[@@@@CTS@WMFU )@@G@@@[@@@[C *[@@@@CTS@WW@^@@@[ 210 LOC=LOCATE(12) *[@@@@CTS@W&@ @@@[FV )@@G@@ 220 IF (LOC.EQ.0) GO TO 1000*[@@@@CTS@W0@^@@@[ LOCV=NODPLC(LOC+1)FW )@@G@@*[@@@@CTS@W'@A@@@[ WRITE (6,181) VALUE(LOCV) *[@@@@CTS@X^@ @@@[FX )@@G@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@XI@ @@@[ NODE2=NODPLC(LOC+3FY )@@G@@) *[@@@@CTS@XS@ @@@[ NODE3=NODPLC(LOC+4) *[@@@@CTS@X+@ @@@[FZ )@@G@@ NODE4=NODPLC(LOC+5) *[@@@@CTS@X?@ @@@[ NODE5=NODPLC(LOC+6GA )@@G@@) *[@@@@CTS@X6@ @@@[ NODE6=NODPLC(LOC+7) *[@@@@CTS@Y@@^@@@[GB )@@G@@ LOCM=NODPLC(LOC+8)*[@@@@CTS@YE@ @@@[ TYPE=NODPLC(LOCM+2) GC )@@G@@*[@@@@CTS@YO@ @@@[ LOCM=NODPLC(LOCM+1) *[@@@@CTS@YY@^@@@[ GD )@@G@@AREA=VALUE(LOCV+1)*[@@@@CTS@Y*@[@@@[C *[@@@@CTS@Y2@^@@@[C BASE RESIGE )@@G@@STANCE (RB) *[@@@@CTS@Y/@[@@@[C *[@@@@CTS@ZA@ @@@[ VAL=VALUE(LOGF )@@G@@CM+4)*AREA *[@@@@CTS@ZK@A@@@[ IF (VAL.NE.0.D0) GO TO 230 *[@@@@GG )@@G@@CTS@ZU@ @@@[ WRITE (6,186) ALSRB *[@@@@CTS@Z=@#@@@[ GO TO GH )@@G@@240 *[@@@@CTS@Z,@#@@@[ 230 VAL=1.D0/VAL*[@@@@CTS@Z8@D@@@[ SENS=-GI )@@G@@(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE5))**[@@@@CTS@)]@F@@@[ 1 GJ )@@G@@(VALUE(LVN +NODE2)-VALUE(LVN +NODE5))/(VAL*VAL) *[@@@@CTS@)G@ @@@[GK )@@G@@ SENSN=VAL*SENS/100.D0 *[@@@@CTS@)Q@B@@@[ WRITE (6,101) ALSRGL )@@G@@B,VAL,SENS,SENSN *[@@@@CTS@))@[@@@[C *[@@@@CTS@)%@ @@@[C COLLECTORGM )@@G@@ RESISTANCE (RC) *[@@@@CTS@)4@[@@@[C *[@@@@CTS@)"@ @@@[ 240 VAL=VAGN )@@G@@LUE(LOCM+5)*AREA *[@@@@CTS@-C@A@@@[ IF (VAL.NE.0.D0) GO TO 250 GO )@@G@@*[@@@@CTS@-M@ @@@[ WRITE (6,186) ALSRC *[@@@@CTS@-W@#@@@[ GP )@@G@@GO TO 260 *[@@@@CTS@-&@#@@@[ 250 VAL=1.D0/VAL*[@@@@CTS@-0@D@@@[ GQ )@@G@@SENS=-(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE4))**[@@@@CTS@-'@F@@@[ 1GR )@@G@@ (VALUE(LVN +NODE1)-VALUE(LVN +NODE4))/(VAL*VAL) *[@@@@CTS@+^GS )@@G@@@ @@@[ SENSN=VAL*SENS/100.D0 *[@@@@CTS@+I@B@@@[ WRITE (6,101GT )@@G@@) ALSRC,VAL,SENS,SENSN *[@@@@CTS@+S@[@@@[C *[@@@@CTS@++@ @@@[C EMIGU )@@G@@TTER RESISTANCE (RE) *[@@@@CTS@+?@[@@@[C *[@@@@CTS@+6@ @@@[ 260 GV )@@G@@VAL=VALUE(LOCM+6)*AREA *[@@@@CTS@<@@A@@@[ IF (VAL.NE.0.D0) GO TO 2GW )@@G@@70 *[@@@@CTS@]HE )@@G@@@ @@@[ CSAT=VALUE(LOCM+3)*AREA *[@@@@CTS@>G@^@@@[ OVA=VALUE(LOHF )@@G@@CM+7) *[@@@@CTS@>Q@^@@@[ OVB=VALUE(LOCM+8) *[@@@@CTS@>)@ @@@[ HG )@@G@@OIK=VALUE(LOCM+9)/AREA *[@@@@CTS@>%@^@@@[ C2=VALUE(LOCM+10) *[@@@@HH )@@G@@CTS@>4@^@@@[ XNE=VALUE(LOCM+11)*[@@@@CTS@>"@#@@@[ VTE=XNE*VT HI )@@G@@*[@@@@CTS@&C@ @@@[ OIKR=VALUE(LOCM+12)/AREA*[@@@@CTS@&M@^@@@[ HJ )@@G@@C4=VALUE(LOCM+13) *[@@@@CTS@&W@^@@@[ XNC=VALUE(LOCM+14)*[@@@@CTS@&&HK )@@G@@@#@@@[ VTC=XNC*VT *[@@@@CTS@&0@E@@@[ VBE=TYPE*(VALUE(LVNIM1+NHL )@@G@@ODE5)-VALUE(LVNIM1+NODE6)) *[@@@@CTS@&'@E@@@[ VBC=TYPE*(VALUE(LVHM )@@G@@NIM1+NODE5)-VALUE(LVNIM1+NODE4)) *[@@@@CTS@$^@D@@@[ VABE=TYPE*(VHN )@@G@@ALUE(LVN+NODE5)-VALUE(LVN+NODE6)) *[@@@@CTS@$I@D@@@[ VABC=TYPE*(VHO )@@G@@ALUE(LVN+NODE5)-VALUE(LVN+NODE4)) *[@@@@CTS@$S@^@@@[ VACE=VABE-VAHP )@@G@@BC *[@@@@CTS@$+@A@@@[ IF (VBE.LE.0.D0) GO TO 320 *[@@@@CTS@$?HQ )@@G@@@^@@@[ EVBE=DEXP(VBE/VT) *[@@@@CTS@$6@ @@@[ CBE=CSAT*(EVBE-1.DHR )@@G@@0) *[@@@@CTS@*@@^@@@[ GBE=CSAT*EVBE/VT *[@@@@CTS@*E@A@@@[ HS )@@G@@IF (C2.NE.0.D0) GO TO 310 *[@@@@CTS@*O@#@@@[ CBEN=0.D0 *[@@@@HT )@@G@@CTS@*Y@#@@@[ GBEN=0.D0 *[@@@@CTS@**@#@@@[ GO TO 350 *[@@@@HU )@@G@@CTS@*2@ @@@[ 310 EVBEN=DEXP(VBE/VTE) *[@@@@CTS@*/@A@@@[ CBEN=CHV )@@G@@2*CSAT*(EVBEN-1.D0) *[@@@@CTS@(A@ @@@[ GBEN=C2*CSAT*EVBEN/VTE HW )@@G@@*[@@@@CTS@(K@#@@@[ GO TO 350 *[@@@@CTS@(U@#@@@[ 320 GBE=CSAT/VT HX )@@G@@*[@@@@CTS@(=@#@@@[ CBE=GBE*VBE *[@@@@CTS@(,@^@@@[ GBEN=C2*CSATHY )@@G@@/VTE *[@@@@CTS@(8@^@@@[ CBEN=GBEN*VBE *[@@@@CTS@%]@A@@@[ 350 HZ )@@G@@IF (VBC.LE.0.D0) GO TO 370 *[@@@@CTS@%G@^@@@[ EVBC=DEXP(VBC/VT) IA )@@G@@*[@@@@CTS@%Q@ @@@[ CBC=CSAT*(EVBC-1.D0) *[@@@@CTS@%)@^@@@[ IB )@@G@@GBC=CSAT*EVBC/VT *[@@@@CTS@%%@A@@@[ IF (C4.NE.0.D0) GO TO 360 IC )@@G@@*[@@@@CTS@%4@#@@@[ CBCN=0.D0 *[@@@@CTS@%"@#@@@[ GBCN=0.D0 ID )@@G@@*[@@@@CTS@:C@#@@@[ GO TO 400 *[@@@@CTS@:M@ @@@[ 360 EVBCN=DEXP(VIE )@@G@@BC/VTC) *[@@@@CTS@:W@A@@@[ CBCN=C4*CSAT*(EVBCN-1.D0) *[@@@@IF )@@G@@CTS@:&@ @@@[ GBCN=C4*CSAT*EVBCN/VTC *[@@@@CTS@:0@#@@@[ GO TO IG )@@G@@400 *[@@@@CTS@:'@#@@@[ 370 GBC=CSAT/VT *[@@@@CTS@?^@#@@@[ CBC=GBIH )@@G@@C*VBC *[@@@@CTS@?I@^@@@[ GBCN=C4*CSAT/VTC *[@@@@CTS@?S@^@@@[ II )@@G@@CBCN=GBCN*VBC *[@@@@CTS@?+@A@@@[ 400 Q1=1.D0/(1.D0-OVA*VBC-OVB*VBE)IJ )@@G@@*[@@@@CTS@??@ @@@[ Q2=OIK*CBE+OIKR*CBC *[@@@@CTS@?6@A@@@[ IK )@@G@@SQARG=DSQRT(1.D0+4.D0*Q2) *[@@@@CTS@!@@ @@@[ QB=Q1*(1.D0+SQARG)IL )@@G@@/2.D0 *[@@@@CTS@!E@ @@@[ DQB=(CBE-CBC)/(QB*QB) *[@@@@CTS@!O@A@@@[IM )@@G@@ SQARG=DSQRT(1.D0+4.D0*Q2) *[@@@@CTS@!Y@B@@@[ DQ1=DQB*(1.DIN )@@G@@0+SQARG)+(Q1*Q1)/2.D0 *[@@@@CTS@!*@^@@@[ DQ2=Q1*DQB/SQARG *[@@@@IO )@@G@@CTS@!2@[@@@[C *[@@@@CTS@!/@^@@@[C COMPUTE SENSITIVITIES*[@@@@CTS@,AIP )@@G@@@[@@@[C *[@@@@CTS@,K@]@@@[C... BF *[@@@@CTS@,U@^@@@[ SENS=-IQ )@@G@@VABE*CBE/BF *[@@@@CTS@,=@ @@@[ SENSN=BF*SENS/100.D0 *[@@@@CTS@,,IR )@@G@@@B@@@[ WRITE (6,101) ALSBF,BF,SENS,SENSN *[@@@@CTS@,8@]@@@[C... IS )@@G@@C2 *[@@@@CTS@\]@A@@@[ IF (C2.NE.0.D0) GO TO 430 *[@@@@CTS@\GIT )@@G@@@ @@@[ WRITE (6,186) ALSC2 *[@@@@CTS@\Q@#@@@[ GO TO 440 IU )@@G@@*[@@@@CTS@\)@^@@@[ 430 SENS=VABE*CBEN/C2 *[@@@@CTS@\%@ @@@[ SENSN=IV )@@G@@C2*SENS/100.D0 *[@@@@CTS@\4@B@@@[ WRITE (6,101) ALSC2,C2,SENS,SEIW )@@G@@NSN *[@@@@CTS@\"@]@@@[C... BR *[@@@@CTS@0C@^@@@[ 440 SENS=-VABC*CIX )@@G@@BC/BR *[@@@@CTS@0M@ @@@[ SENSN=BR*SENS/100.D0 *[@@@@CTS@0W@B@@@[IY )@@G@@ WRITE (6,101) ALSBR,BR,SENS,SENSN *[@@@@CTS@0&@]@@@[C... C4 IZ )@@G@@*[@@@@CTS@00@A@@@[ IF (C4.NE.0.D0) GO TO 450 *[@@@@CTS@0'@ @@@[JA )@@G@@ WRITE (6,186) ALSC4 *[@@@@CTS@1^@#@@@[ GO TO 460 *[@@@@JB )@@G@@CTS@1I@^@@@[ 450 SENS=VABC*CBCN/C4 *[@@@@CTS@1S@ @@@[ SENSN=C4*SENJC )@@G@@S/100.D0 *[@@@@CTS@1+@B@@@[ WRITE (6,101) ALSC4,C4,SENS,SENSN JD )@@G@@*[@@@@CTS@1?@]@@@[C... IS *[@@@@CTS@16@D@@@[ 460 SENS=(VABE*(CBE/BFJE )@@G@@+CBEN)+VABC*(CBC/BR+CBCN) *[@@@@CTS@2@@A@@@[ 1 +VACE*(DQB*QB-DJF )@@G@@Q2*Q2))/CSAT*[@@@@CTS@2E@ @@@[ SENSN=CSAT*SENS/100.D0 *[@@@@CTS@2OJG )@@G@@@B@@@[ WRITE (6,101) ALSIS,CSAT,SENS,SENSN *[@@@@CTS@2Y@]@@@[C... JH )@@G@@NE *[@@@@CTS@2*@ @@@[ SENS=-VABE*GBEN*VBE/XNE *[@@@@CTS@22@ @@@[JI )@@G@@ SENSN=XNE*SENS/100.D0 *[@@@@CTS@2/@B@@@[ WRITE (6,101) ALSNJJ )@@G@@E,XNE,SENS,SENSN *[@@@@CTS@3A@]@@@[C... NC *[@@@@CTS@3K@ @@@[ JK )@@G@@SENS=-VABC*GBCN*VBC/XNC *[@@@@CTS@3U@ @@@[ SENSN=XNC*SENS/100.D0 JL )@@G@@*[@@@@CTS@3=@B@@@[ WRITE (6,101) ALSNC,XNC,SENS,SENSN *[@@@@CTS@3,JM )@@G@@@]@@@[C... IK *[@@@@CTS@38@A@@@[ IF (OIK.NE.0.D0) GO TO 470 JN )@@G@@*[@@@@CTS@4]@ @@@[ WRITE (6,186) ALSIK *[@@@@CTS@4G@#@@@[ JO )@@G@@GO TO 480 *[@@@@CTS@4Q@#@@@[ 470 VAL=1.D0/OIK*[@@@@CTS@4)@A@@@[ JP )@@G@@SENS=VACE*DQ2*CBE/(VAL*VAL) *[@@@@CTS@4%@ @@@[ SENSN=VAL*SENS/100JQ )@@G@@.D0 *[@@@@CTS@44@B@@@[ WRITE (6,101) ALSIK,VAL,SENS,SENSN *[@@@@JR )@@G@@CTS@4"@]@@@[C... IKR *[@@@@CTS@5C@A@@@[ 480 IF (OIKR.NE.0.D0) GO TO JS )@@G@@490 *[@@@@CTS@5M@ @@@[ WRITE (6,186) ALSIKR *[@@@@CTS@5W@#@@@[JT )@@G@@ GO TO 500 *[@@@@CTS@5&@^@@@[ 490 VAL=1.D0/OIKR *[@@@@CTS@50JU )@@G@@@A@@@[ SENS=VACE*DQ2*CBC/(VAL*VAL) *[@@@@CTS@5'@ @@@[ SENSN=JV )@@G@@VAL*SENS/100.D0 *[@@@@CTS@6^@B@@@[ WRITE (6,101) ALSIKR,VAL,SENS,JW )@@G@@SENSN *[@@@@CTS@6I@]@@@[C... VA *[@@@@CTS@6S@A@@@[ 500 IF (OVA.NE.0JX )@@G@@.D0) GO TO 510 *[@@@@CTS@6+@ @@@[ WRITE (6,186) ALSVA *[@@@@JY )@@G@@CTS@6?@#@@@[ GO TO 520 *[@@@@CTS@66@#@@@[ 510 VA=1.D0/OVA *[@@@@JZ )@@G@@CTS@7@@A@@@[ SENS=VACE*DQ1*VBC/(VA*VA) *[@@@@CTS@7E@ @@@[ KA )@@G@@SENSN=VA*SENS/100.D0 *[@@@@CTS@7O@B@@@[ WRITE (6,101) ALSVA,VA,SKB )@@G@@ENS,SENSN *[@@@@CTS@7Y@]@@@[C... VB *[@@@@CTS@7*@A@@@[ 520 IF (OVKC )@@G@@B.NE.0.D0) GO TO 530 *[@@@@CTS@72@ @@@[ WRITE (6,186) ALSVB KD )@@G@@*[@@@@CTS@7/@#@@@[ GO TO 540 *[@@@@CTS@8A@#@@@[ 530 VB=1.D0/OVB KE )@@G@@*[@@@@CTS@8K@A@@@[ SENS=VACE*DQ1*VBE/(VB*VB) *[@@@@CTS@8U@ @@@[KF )@@G@@ SENSN=VB*SENS/100.D0 *[@@@@CTS@8=@B@@@[ WRITE (6,101) ALSVKG )@@G@@B,VB,SENS,SENSN *[@@@@CTS@8,@[@@@[C *[@@@@CTS@88@[@@@[C *[@@@@KH )@@G@@CTS@9]@^@@@[ 540 LOC=NODPLC(LOC) *[@@@@CTS@9G@#@@@[ GO TO 220 KI )@@G@@*[@@@@CTS@9Q@[@@@[C *[@@@@CTS@9)@]@@@[C FINISHED *[@@@@CTS@9%@[@@@[KJ )@@G@@C *[@@@@CTS@94@#@@@[ 1000 CONTINUE *[@@@@CTS@9"@]@@@[ RETURNKK )@@G@@*[@@@@CTS@'C@]@@@[ END ___81 FORMAT(1X,A8) *[@@@@CTS@PK@ @@@[KL )@@G@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@PU@ @@@[ NODE2=NODPLC(LOC+3KM )@@G@@) *[@@@@CTS@P=@ @@@[*[S@@@*SDFF**[@@@@CTS@@E@A@[@@C SUBROUTINE GKN )@@G@@ETNOD(/NODE/) @A@@@[ SUBROUTINE GETNOD(/NODE/) *[@@@@CTS@@GKO )@@G@@@A@[@@ SUBROUTINE GETNOD(NARG,NDEX) @A@^@[C SUBROUTINE GETNOD(KP )@@G@@NARG,NDEX) *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@G@@@@C THIS ROUTINEKQ )@@G@@ CONVERTS FROM THE USER NODE NUMBER TO THE INTERNAL *[@@@@CTS@@*@^@@@@KR )@@G@@C (COMPACT) NODE NUMBER.*[@@@@CTS@@2@[@@@@C *[@@@@CTS@@/@A@@@@ KS )@@G@@IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LIST @ @@@#KT )@@G@@ INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.FLAGS,LIST @ @@@#KU )@@G@@ INCLUDE F.BLANK,LIST @^@#@]@ADD,P *SPICE.GETNODD *[@@@@CTS@[AKV )@@G@@@G@]@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUKW )@@G@@MTEM, *[@@@@CTS@[K@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDKX )@@G@@ELIM,ICOLUM,INSIZE, *[@@@@CTS@[U@G@]@@ 2 JUNODE,LSBKPT,NUMBKP,KY )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@]@@ 3 NMOKZ )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,LA )@@G@@@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LB )@@G@@LTD, *[@@@@CTS@[8@#@]@@ 5 LOUTPT, *[@@@@CTS@]]@E@]@@ 6 LUNLC )@@G@@SAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@]@@ 7LD )@@G@@ LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@LE )@@G@@CTS@]Q@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@]@@ LF )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@LG )@@G@@CTS@]%@C@]@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]4LH )@@G@@@G@]@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMLI )@@G@@PTS, *[@@@@CTS@]"@F@]@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,LJ )@@G@@IGOOF,NOGO,KEOF *[@@@@CTS@#C@ @]@@ COMMON /BLANK/ VALUE(64)*[@@@@LK )@@G@@CTS@#G@^@]@@ INTEGER*4 NARG(1) *[@@@@CTS@#M@^@]@@ INTEGER NODPLL )@@G@@LC(64)*[@@@@CTS@#W@ @]@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@#&@C@]@@LM )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@CTS@#0@[@@@@C LN )@@G@@*[@@@@CTS@#'@[@@@@C *[@@@@CTS@#/@^@^@@ NODE=NARG(NDEX) *[@@@@LO )@@G@@CTS@^^@ @@@@ IF (NOGO.NE.0) GO TO 100*[@@@@CTS@^I@]@@@@ JKNT=0LP )@@G@@*[@@@@CTS@^S@#@@@@ 10 JKNT=JKNT+1 *[@@@@CTS@^+@A@@@@ IF (JKNT.GT.LQ )@@G@@NUNODS) GO TO 20 *[@@@@CTS@^=@ @[@@ NVAL=NODPLC(JUNODE+JKNT)@ @^@[LR )@@G@@C NVAL=NODPLC(JUNODE+JKNT)*[@@@@CTS@^*@ @[@@ IF(NVAL.NE.NODE)GOLS )@@G@@ TO 10@ @^@[C IF(NVAL.NE.NODE)GO TO 10*[@@@@CTS@^?@C@[@@C IF (NOLT )@@G@@DPLC(JUNODE+JKNT).NE.NODE) GO TO 10 @C@@@[ IF (NODPLC(JUNODE+JKNT).LU )@@G@@NE.NODE) GO TO 10 *[@@@@CTS@^6@#@[@@C NODE=JKNT @#@@@[ NODE=JLV )@@G@@KNT *[@@@@CTS@^8@^@[@@ NARG(NDEX)=JKNT @^@^@[C NARG(NDEX)=JLW )@@G@@KNT *[@@@@CTS@ @@#@@@@ GO TO 100 *[@@@@CTS@ E@[@@@@C *[@@@@LX )@@G@@CTS@ O@E@@@@C UNKNOWN NODE -- MUST BE IMPLIED BY .PRINT AND/OR .PLOT LY )@@G@@*[@@@@CTS@ Y@[@@@@C *[@@@@CTS@ *@ @@@@ 20 IF (NODE.EQ.0) GO TO 30 LZ )@@G@@*[@@@@CTS@ 2@^@@@@ WRITE (6,21) NODE *[@@@@CTS@ /@F@@@@ 21 FORMATMA )@@G@@('0WARNING: ATTEMPT TO OUTPUT UNDEFINED NODE ',I5, *[@@@@CTS@AA@A@@@@MB )@@G@@ 1 ' -- NODE RESET TO 0'/) *[@@@@CTS@AK@]@[@@C 30 NODE=1@]@@@[MC )@@G@@ 30 NODE=1*[@@@@CTS@AM@#@[@@ 30 NARG(NDEX)=1@#@^@[C 30 NARG(NDEX)=1MD )@@G@@*[@@@@CTS@AU@[@@@@C *[@@@@CTS@A=@]@@@@C FINISHED *[@@@@CTS@A,@[@@@@ME )@@G@@C *[@@@@CTS@A8@#@@@@ 100 CONTINUE *[@@@@CTS@B]@]@@@@ RETURNMF )@@G@@*[@@@@CTS@BG@]@@@@ END ___D-# [EE(ID9^C*:DLFD1O C,D1 1ID9^C*(^[BMG )@@G@@D8)E-J^@1A@)*[@@@@CTS@^6@^@[@@CS)^@)^@)D1JC- B(EDTIE))@^@@@[^@)^@)^@)D1JMH )@@G@@*[S@@@*SDFF**[@@@@CTS[8\@I@@@@ LOGICAL FUNCTION MEMPTR(/IPNTR/) MI )@@G@@ 00702200 *[@@@@CTS[80@I@@@@ IMPLICMJ )@@G@@IT REAL*8 (A-H,O-Z) 00702300 MK )@@G@@*[@@@@CTS[81@I@@@@C ML )@@G@@ 00702400 *[@@@@CTS[82@I@@@@C THIS ROUTINE CHECMM )@@G@@KS WHETHER 'IPNTR' IS A VALID BLOCK POINTER. 00702500 *[@@@@CTS[83MN )@@G@@@I@@@@C IF IT IS VALID, 'LTAB' IS SET TO POINT TO THE CORRESPONDING ENTRMO )@@G@@Y IN 00702600 *[@@@@CTS[84@I@@@@C THE BLOCK TABLE. MP )@@G@@ 00702700 *[@@@@CTS[85@I@@@@C MQ )@@G@@ 007028MR )@@G@@00 @ @@@[ INCLUDE F.MEMRY,LIST @ @@@[ INCLUDE F.BLANK,LIMS )@@G@@ST *[@@@@CTS[86@I@[@@ COMMON /MEMRY/ LORG,ICORE,MAXCOR,MAXUSE,MEMT )@@G@@MAVL,LDVAL,NUMBLK, 000010 *[@@@@CTS[87@I@[@@ 1 LOCTAB,LTMU )@@G@@AB 000020 *[@@@@MV )@@G@@CTS[88@I@[@@ COMMON /BLANK/ VALUE(64) MW )@@G@@ 000010 *[@@@@CTS[89@I@[@@ INTEGER NODPLC(64) MX )@@G@@ 000020 *[@@@@CTS[8'@I@[@@MY )@@G@@ COMPLEX*16 CVALUE(32) MZ )@@G@@ 000030 *[@@@@CTS[8;@I@@@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALNA )@@G@@UE(1)) 000040 *[@@@@CTS[8/@I@@@@C NB )@@G@@ 00703100 NC )@@G@@*[@@@@CTS[8.@I@@@@ MEMPTR=.FALSE. ND )@@G@@ 00703200 *[@@@@CTS[8"@I@@@@ LTAB=LOCTAB NE )@@G@@ 00703300 *[@@@@CTS[8_NF )@@G@@@I@]@@ LOCPNT=LOCF(IPNTR) NG )@@G@@ 00703400 @I@#@] LOCPNT=LOC(IPNTR) NH )@@G@@ 00703400 @I@@@# LOCPNT=LOC(IPNTR) NI )@@G@@ 00703400 *[@@@@CTS[9@@I@@@@NJ )@@G@@ DO 20 I=1,NUMBLK NK )@@G@@00703500 *[@@@@CTS[9[@I@@@@ IF (IPNTR.NE.NODPLC(LTAB+1)) GO TO 1NL )@@G@@0 00703600 *[@@@@CTS[9]@I@@@@ IF (LONM )@@G@@CPNT.NE.NODPLC(LTAB+4)) GO TO 10 00703700 NN )@@G@@*[@@@@CTS[9#@I@@@@ MEMPTR=.TRUE. NO )@@G@@ 00703800 *[@@@@CTS[9^@I@@@@ GO TO 30 NP )@@G@@ 00703900 *[@@@@CTS[9 NQ )@@G@@@I@@@@ 10 LTAB=LTAB+4 NR )@@G@@ 00704000 *[@@@@CTS[9A@I@@@@ 20 CONTINUE NS )@@G@@ 00704100 *[@@@@CTS[9B@I@@@@ 30 NT )@@G@@RETURN 007042NU )@@G@@00 *[@@@@CTS[9C@I@@@@ END NV )@@G@@ 00704300 ___@@#R@K@@]@@@@@@AA@@@U)@ [##@KK0^KNW )@@G@@0^K0FK0F^G@@@@@@@@A@K@@@R8K@@[[[@@@CC[@@@B @@@@@[@K@@^C@W@@@^[@@@#AB@@@UNX )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@C@@@E SUBROUTINE COPY4(/FROM/,/TO/, NWORDNY )@@G@@S ) *[@@@@CTS@@O@A@@@E IMPLICIT REAL*8 (A-H,O-Z) *[@@@@CTS@@YNZ )@@G@@*[@@@@CTS@@*@ @@@E INTEGER*4 FROM(1),TO(1) *[@@@@CTS@@2*[@@@@CTS@@6OA )@@G@@*[@@@@CTS@@/@ @@@E REAL*8 RFROM(1),RTO(1) *[@@@@CTS@[A*[@@@@CTS@[KOB )@@G@@@A@@@E COMPLEX*16 CFROM(1),CTO(1) *[@@@@CTS@[U*[@@@@CTS@[=@[@@@EOC )@@G@@C *[@@@@CTS@[,@G@@@EC THIS ROUTINE COPIES A BLOCK OF #NWORDS# WOOD )@@G@@RDS (OF THE APPROPRIATE *[@@@@CTS@[8@G@@@EC TYPE) FROM THE ARRAY #FROM# OE )@@G@@TO THE ARRAY #TO#. IT DETERMINES FROM *[@@@@CTS@]]@G@@@EC WHICH END OF )@@G@@OF THE BLOCK TO TRANSFER FIRST, TO PREVENT OVER-STORES WHICH*[@@@@CTS@]GOG )@@G@@@ @@@EC MIGHT OVER-WRITE THE DATA. *[@@@@CTS@]Q@[@@@EC *[@@@@CTS@])OH )@@G@@@ @@@E IF (NWORDS.EQ.0) RETURN *[@@@@CTS@]%@C@@@E IF (LOC(FROMOI )@@G@@(1)).LT.LOC(TO(1))) GO TO 20 *[@@@@CTS@]4*[@@@@CTS@]"@E@@@EC... LOC() OJ )@@G@@RETURNS AS ITS VALUE THE ADDRESS OF ITS ARGUMENT*[@@@@CTS@#C@^@@@E OK )@@G@@DO 10 I=1,NWORDS *[@@@@CTS@#M@^@@@E TO(I)=FROM(I) *[@@@@CTS@#WOL )@@G@@*[@@@@CTS@#&@#@@@E 10 CONTINUE *[@@@@CTS@#0@]@@@E RETURN*[@@@@OM )@@G@@CTS@#'@[@@@EC *[@@@@CTS@^^@#@@@E 20 I=NWORDS *[@@@@CTS@^I*[@@@@ON )@@G@@CTS@^S*[@@@@CTS@^+@^@@@E 30 TO(I)=FROM(I) *[@@@@CTS@^?*[@@@@CTS@^6OO )@@G@@*[@@@@CTS@ @@]@@@E I=I-1 *[@@@@CTS@ E*[@@@@CTS@ O@ @@@E IF (I.OP )@@G@@NE.0) GO TO 30 *[@@@@CTS@ Y*[@@@@CTS@ *@]@@@E RETURN*[@@@@CTS@ 2OQ )@@G@@@[@@@EC *[@@@@CTS@ /@[@@@EC *[@@@@CTS@AA@[@@@EC *[@@@@CTS@AKOR )@@G@@@B@@@E ENTRY COPY8(/RFROM/,/RTO/, NWORDS ) *[@@@@CTS@AU*[@@@@CTS@A=OS )@@G@@@[@@@EC *[@@@@CTS@A,@ @@@E IF (NWORDS.EQ.0) RETURN *[@@@@CTS@A8OT )@@G@@@D@@@E IF (LOC(RFROM(1)).LT.LOC(RTO(1))) GO TO 120 *[@@@@CTS@B]OU )@@G@@*[@@@@CTS@BG@^@@@E DO 110 I=1,NWORDS *[@@@@CTS@BQ@^@@@E RTO(I)OV )@@G@@=RFROM(I) *[@@@@CTS@B)*[@@@@CTS@B%@#@@@E 110 CONTINUE *[@@@@CTS@B4OW )@@G@@@]@@@E RETURN*[@@@@CTS@B"@[@@@EC *[@@@@CTS@CC@#@I@EC 120 I=NWOROX )@@G@@DS @#@@@I 120 I=NWORDS *[@@@@CTS@CM*[@@@@CTS@CW*[@@@@CTS@C&@^@I@EOY )@@G@@C 130 RTO(I)=RFROM(I) @^@@@I 130 RTO(I)=RFROM(I) *[@@@@CTS@C0*[@@@@OZ )@@G@@CTS@C'@]@I@EC I=I-1 @]@@@I I=I-1 *[@@@@CTS@D^*[@@@@CTS@DI@ @I@EPA )@@G@@C IF (I.NE.0) GO TO 130 @ @@@I IF (I.NE.0) GO TO 130 @ @I@EPB )@@G@@ 120 DO 130 I=NWORDS,1,-1 @^@I@E RTO(I)=RFROM(I) @#@I@E 130 PC )@@G@@CONTINUE *[@@@@CTS@DS*[@@@@CTS@D+@]@@@E RETURN*[@@@@CTS@D?@[@F@EPD )@@G@@ C @[@@@FC *[@@@@CTS@D6@[@@@EC *[@@@@CTS@E@@[@@@EC *[@@@@PE )@@G@@CTS@EE@B@@@E ENTRY COPY16(/CFROM/,/CTO/, NWORDS )*[@@@@CTS@EO*[@@@@PF )@@G@@CTS@EY@[@@@EC *[@@@@CTS@E*@ @@@E IF (NWORDS.EQ.0) RETURN *[@@@@PG )@@G@@CTS@E2@D@@@E IF (LOC(CFROM(1)).LT.LOC(CTO(1))) GO TO 220 *[@@@@PH )@@G@@CTS@E/*[@@@@CTS@FA@^@@@E DO 210 I=1,NWORDS *[@@@@CTS@FK@^@@@E PI )@@G@@CTO(I)=CFROM(I) *[@@@@CTS@FU*[@@@@CTS@F=@#@@@E 210 CONTINUE *[@@@@PJ )@@G@@CTS@F,@]@@@E RETURN*[@@@@CTS@F8@[@@@EC *[@@@@CTS@G]@#@I@EC 220 PK )@@G@@I=NWORDS @#@@@I 220 I=NWORDS *[@@@@CTS@GG*[@@@@CTS@GQ*[@@@@CTS@G)PL )@@G@@@^@I@EC 230 CTO(I)=CFROM(I) @^@@@I 230 CTO(I)=CFROM(I) *[@@@@CTS@G%PM )@@G@@*[@@@@CTS@G4@]@I@EC I=I-1 @]@@@I I=I-1 *[@@@@CTS@G"*[@@@@CTS@HCPN )@@G@@@ @I@EC IF (I.NE.0) GO TO 230 @ @@@I IF (I.NE.0) GO TO 230 PO )@@G@@@ @I@E 220 DO 230 I=NWORDS,1,-1 @^@I@E CTO(I)=CFROM(I) @#@I@EPP )@@G@@ 230 CONTINUE *[@@@@CTS@HM*[@@@@CTS@HW@]@@@E RETURN@#@I@G PQ )@@G@@DEBUG INIT @]@I@H AT 10 *[@@@@CTS@H&@]@@@E END ___^@)*[@@@@PR )@@G@@CTS@E2@H@@@D^@)^@)^@)DDA^@*D-JCS*CTAELJD**AC( C,*[S@@@*SDFF**[@@@@CTS@@EPS )@@G@@@F@@@] SUBROUTINE ADDELT(/LOCE/,/LOC/,/ID/,/INODX/,/INODI/,/NNODI/)PT )@@G@@*[@@@@CTS@@O@[@@@]C *[@@@@CTS@@Y@G@@@]C THIS ROUTINE ADDS AN ELEPU )@@G@@MENT TO THE NOMINAL CIRCUIT DEFINITION *[@@@@CTS@@*@]@@@]C LISTS. PV )@@G@@*[@@@@CTS@@2@[@@@]C *[@@@@CTS@@/@A@@@] IMPLICIT REAL*8 (A-H,O-ZPW )@@G@@) @ @@@# INCLUDE F.TABINF,LIST @ @@@# INCLUDE F.CIRDAT,LPX )@@G@@IST @ @@@# INCLUDE F.FLAGS,LIST @ @@@# INCLUDE F.BLANK,LIPY )@@G@@ST @#@#@]@ADD,P *SPICE *[@@@@CTS@[A*[@@@@CTS@[K*[@@@@CTS@[U*[@@@@PZ )@@G@@CTS@[=*[@@@@CTS@[,*[@@@@CTS@[8*[@@@@CTS@]]*[@@@@CTS@]G*[@@@@CTS@]Q*[@@@@QA )@@G@@CTS@])*[@@@@CTS@]%*[@@@@CTS@]4*[@@@@CTS@]"*[@@@@CTS@#C*[@@@@CTS@#M*[@@@@QB )@@G@@CTS@#W*[@@@@CTS@#&*[@@@@CTS@#0@[@@@]C *[@@@@CTS@#'@[@@@]C *[@@@@QC )@@G@@CTS@^^@C@@@] DIMENSION LNOD(50),LVAL(50),NNODS(50) *[@@@@CTS@^IQD )@@G@@@C@ @] DATA LNOD / 9,13,15, 7,14,15,14,15,12, 7, @C@@@ DATA LQE )@@G@@NOD / 9,10,12, 7,14,15,14,15,12, 7, *[@@@@CTS@^S@C@@@] 1 1QF )@@G@@7,31,26,34, 7, 7,34, 0, 5, 5, *[@@@@CTS@^+@C@@@] 2 4, 4, QG )@@G@@4, 4, 0, 0, 0, 0, 0, 0, *[@@@@CTS@^?@C@@@] 3 21,21,21,21,2QH )@@G@@1,21,21,21,21,21, *[@@@@CTS@^6@C@@@] 4 8, 8, 8, 8, 8, 0, QI )@@G@@0, 0, 0, 0 /*[@@@@CTS@ @@C@ @] DATA LVAL / 5, 4, 4, 2, 1, 1, 1, 1, QJ )@@G@@4, 4, @C@@@ DATA LVAL / 5, 3, 3, 2, 1, 1, 1, 1, 4, 4, *[@@@@CTS@ EQK )@@G@@@C@@@] 1 3, 4, 4,11, 1, 1, 9, 0, 1, 1, *[@@@@CTS@ O@C@A@]QL )@@G@@ 2 19,37,17,44, 0, 0, 0, 0, 0, 0, @C@@@A 2 1QM )@@G@@9,38,17,44, 0, 0, 0, 0, 0, 0, *[@@@@CTS@ Y@C@@@] 3 1, 1, QN )@@G@@1, 1, 1,17,17,17,17,17, *[@@@@CTS@ *@C@@@] 4 1, 1, 1, 1, QO )@@G@@1, 0, 0, 0, 0, 0 /*[@@@@CTS@ 2@C@@@] DATA NNODS / 2, 2, 2, 0, 2, 2,QP )@@G@@ 2, 2, 2, 2,*[@@@@CTS@ /@C@@@] 1 2, 3, 3, 4, 4, 4, 4, 0,QQ )@@G@@ 1, 0,*[@@@@CTS@AA@C@@@] 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,QR )@@G@@*[@@@@CTS@AK@C@@@] 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,*[@@@@QS )@@G@@CTS@AU@D@@@] 4 2, 2, 2, 0, 0, 0, 0, 0, 0, 0 / *[@@@@QT )@@G@@CTS@A=@[@@@]C *[@@@@CTS@A,@^@@@]C COPY INTEGER PART *[@@@@CTS@A8QU )@@G@@@[@@@]C *[@@@@CTS@B]@^@@@] NWORD=LNOD(ID)-3 *[@@@@CTS@BG@ @@@]QV )@@G@@ IF (NWORD.LE.0) GO TO 10*[@@@@CTS@BI*[@@@@CTS@BK*[@@@@CTS@BM*[@@@@QW )@@G@@CTS@BQ@D@@@] CALL COPY4(NODPLC(LOC+2),NODPLC(LOCE+2),NWORD) *[@@@@QX )@@G@@CTS@B)@[@@@]C *[@@@@CTS@B%@]@@@]C SET NODES*[@@@@CTS@B4@[@@@]C QY )@@G@@*[@@@@CTS@B"@ @@@] 10 IF (ID.GE.21) GO TO 100 *[@@@@CTS@CC@A@@@] QZ )@@G@@IF (NNODS(ID).EQ.0) GO TO 100 *[@@@@CTS@CM@ @@@] IF (ID.LE.4) GO TORA )@@G@@ 20 *[@@@@CTS@CW@ @@@] IF (ID.LE.8) GO TO 40 *[@@@@CTS@C&@ @@@]RB )@@G@@ IF (ID.EQ.19) GO TO 70 *[@@@@CTS@C0@^@@@] 20 JSTOP=NNODS(ID) RC )@@G@@*[@@@@CTS@C'@^@@@] DO 30 J=1,JSTOP *[@@@@CTS@D@*[@@@@CTS@D]@G@@@]RD )@@G@@ CALL NEWNOD(NODPLC(LOC+J+1),NODPLC(LOCE+J+1),INODX,INODI,NNODI) RE )@@G@@*[@@@@CTS@D^*[@@@@CTS@DI@#@@@] 30 CONTINUE *[@@@@CTS@DS@#@@@] RF )@@G@@GO TO 100 *[@@@@CTS@DU*[@@@@CTS@DW*[@@@@CTS@DY*[@@@@CTS@D)*[@@@@CTS@D+RG )@@G@@@F@@@] 40 CALL NEWNOD(NODPLC(LOC+2),NODPLC(LOCE+2),INODX,INODI,NNODI) RH )@@G@@*[@@@@CTS@D?@F@@@] CALL NEWNOD(NODPLC(LOC+3),NODPLC(LOCE+3),INODX,IRI )@@G@@NODI,NNODI) *[@@@@CTS@D6@ @@@] IF (ID.GE.7) GO TO 100 *[@@@@CTS@E@RJ )@@G@@@^@@@] NLOCP=LOC+ID+1 *[@@@@CTS@EE@ @@@] NSNOD=2*NODPLC(LOCRK )@@G@@+4) *[@@@@CTS@EM*[@@@@CTS@EO@B@@@] CALL GETMEM(NODPLC(LOCE+ID+1),RL )@@G@@NSNOD)*[@@@@CTS@EY@^@@@] NLOCPE=LOCE+ID+1 *[@@@@CTS@E*@^@@@] 50 RM )@@G@@DO 60 J=1,NSNOD *[@@@@CTS@E2@^@@@] LOCP=NODPLC(NLOCP)*[@@@@CTS@E/RN )@@G@@@ @@@] NODOLD=NODPLC(LOCP+J) *[@@@@CTS@FA*[@@@@CTS@FC@D@@@] RO )@@G@@CALL NEWNOD(NODOLD,NODNEW,INODX,INODI,NNODI) *[@@@@CTS@FK@ @@@] RP )@@G@@LOCPE=NODPLC(NLOCPE) *[@@@@CTS@FU@ @@@] NODPLC(LOCPE+J)=NODNEW RQ )@@G@@*[@@@@CTS@F=@#@@@] 60 CONTINUE *[@@@@CTS@F,@#@@@] GO TO 100 RR )@@G@@*[@@@@CTS@F8@#@@@] 70 NLOCP=LOC+2 *[@@@@CTS@F'*[@@@@CTS@F/*[@@@@CTS@G]RS )@@G@@@B@@@] CALL SIZMEM(NODPLC(LOC+2),NSNOD) *[@@@@CTS@GE*[@@@@CTS@GGRT )@@G@@@B@@@] CALL GETMEM(NODPLC(LOCE+2),NSNOD) *[@@@@CTS@GQ@^@@@] RU )@@G@@NLOCPE=LOCE+2 *[@@@@CTS@G)@#@@@] GO TO 50 *[@@@@CTS@G%@[@@@]RV )@@G@@C *[@@@@CTS@G4@#@@@]C COPY REAL PART *[@@@@CTS@G"@[@@@]C *[@@@@RW )@@G@@CTS@HC@ @@@] 100 IF (NOGO.NE.0) GO TO 300@^@@@] LOCV=NODPLC(LOC+1)RX )@@G@@@ @@@] LOCVE=NODPLC(LOCE+1) *[@@@@CTS@HM*[@@@@CTS@HW*[@@@@CTS@H+RY )@@G@@*[@@@@CTS@H&@D@@@] CALL COPY8(VALUE(LOCV),VALUE(LOCVE),LVAL(ID)) RZ )@@G@@*[@@@@CTS@H0@[@@@]C *[@@@@CTS@H'@A@@@]C TREAT NON-NODE TABLES SPECISA )@@G@@ALLY *[@@@@CTS@I^@[@@@]C *[@@@@CTS@II@ @@@] 200 IF (ID.GE.11) GO TSB )@@G@@O 300 @ @@@] IF(ID.LE.4) GO TO 300 @#@@@] IJMP=ID-4 @B@@@]SC )@@G@@ GO TO (230,240,230,240,260,260),IJMP*[@@@@CTS@IS*[@@@@CTS@I+*[@@@@SD )@@G@@CTS@I?*[@@@@CTS@I6*[@@@@CTS@J@*[@@@@CTS@JE@]@@@] 230 ITAB=5*[@@@@CTS@JOSE )@@G@@@#@@@] GO TO 250 *[@@@@CTS@JY@]@@@] 240 ITAB=6*[@@@@CTS@J*@ @@@]SF )@@G@@ 250 IF (ID.LE.6) GO TO 255 *[@@@@CTS@J2@B@@@] CALL CPYTAB(LOC+ITSG )@@G@@AB+1,LOCE+ITAB+1) *[@@@@CTS@J/@B@@@] 255 CALL CPYTAB(LOC+ITAB+2,LOCE+ITSH )@@G@@AB+2) *[@@@@CTS@KA@B@@@] CALL CPYTAB(LOC+ITAB+3,LOCE+ITAB+3) *[@@@@SI )@@G@@CTS@KK@B@@@] CALL CPYTAB(LOC+ITAB+4,LOCE+ITAB+4) *[@@@@CTS@KU@B@@@]SJ )@@G@@ CALL CPYTAB(LOC+ITAB+5,LOCE+ITAB+5) *[@@@@CTS@K=@B@@@] CALL CSK )@@G@@PYTAB(LOC+ITAB+6,LOCE+ITAB+6) *[@@@@CTS@K,@#@@@] GO TO 300 *[@@@@SL )@@G@@CTS@K8@A@@@] 260 CALL CPYTAB(LOC+5,LOCE+5) *[@@@@CTS@L]@[@@@]C SM )@@G@@*[@@@@CTS@LG@[@@@]C *[@@@@CTS@LQ@]@@@] 300 RETURN*[@@@@CTS@L)@]@@@]SN )@@G@@ END ___@@[C TREAT NON-NODE TABLES SPECIALLY *[@@@@CTS@I^@[@@@[SO )@@G@@C *[@@@@CTS@II@ @@@[*[S@@@*SDFF**[@@@@CTS@@E@^@@@@ SUBROUTINE ESP )@@G@@LPRNT *[@@@@CTS@@O@[@@@@C *[@@@@CTS@@Y@D@@@@C THIS ROUTINE PRINTSQ )@@G@@S A CIRCUIT ELEMENT SUMMARY. *[@@@@CTS@@*@[@@@@C *[@@@@CTS@@2@A@@@@SR )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LIST SS )@@G@@@ @@@# INCLUDE F.MISCEL,LIST @ @@@# INCLUDE F.CIRDAT,LIST ST )@@G@@@ @@@# INCLUDE F.FLAGS,LIST @ @@@# INCLUDE F.TRAN,LIST SU )@@G@@@ @@@# INCLUDE F.BLANK,LIST *[@@@@CTS@@/@G@#@@ COMMON /TABISV )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @^@#@]@ADD,P *SPICSW )@@G@@E.ELPRNTD *[@@@@CTS@[A@G@]@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICSX )@@G@@ODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[K@G@]@@ 2 JUNODE,LSBKPT,NSY )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[U@G@]@@ 3SZ )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@TA )@@G@@CTS@[=@G@]@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDTB )@@G@@0,LD1,LTD, *[@@@@CTS@[,@#@]@@ 5 LOUTPT, *[@@@@CTS@[8@E@]@@ 6TC )@@G@@ LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]]@G@]@@TD )@@G@@ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, TE )@@G@@*[@@@@CTS@]G@A@]@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]Q@G@]@@TF )@@G@@ COMMON /MISCEL/ APROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), TG )@@G@@*[@@@@CTS@])@ @]@@ 1 IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@]%@ @]@@ TH )@@G@@INTEGER*4 ATIME,ADATE *[@@@@CTS@]4@G@]@@ COMMON /CIRDAT/ LOCATE(5TI )@@G@@0),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]"@C@]@@ 1 NUTTJ )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@#C@G@]@@ COMMON /FLAGTK )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@CTS@#M@F@]@@TL )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF *[@@@@TM )@@G@@CTS@#W@F@]@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTN )@@G@@TRFLG *[@@@@CTS@#&@ @]@@ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#0@^@]@@TO )@@G@@ INTEGER NODPLC(64)*[@@@@CTS@#'@ @]@@ COMPLEX*16 CVALUE(32) TP )@@G@@*[@@@@CTS@^^@C@]@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@TQ )@@G@@CTS@^I@[@@@@C *[@@@@CTS@^S@[@@@@C *[@@@@CTS@^+@A@@@@ DIMENSTR )@@G@@ION ITAB(25),ASTYP(6) *[@@@@CTS@^?@ @@@@ DIMENSION ELTITL(4) TS )@@G@@*[@@@@CTS@^6@G@@@@ DATA ELTITL / 8HCIRCUIT , 8HELEMENT , 8HSUMMARY TT )@@G@@, 8H / *[@@@@CTS@ @@F@@@@ DATA ASTYP / 1H , 5HPULSE, 3HSTU )@@G@@IN, 3HEXP, 3HPWL, 4HSFFM / *[@@@@CTS@ E@A@@@@ DATA ABLNK,AOFF /1TV )@@G@@H ,3HOFF/ *[@@@@CTS@ O@[@@@@C *[@@@@CTS@ Y@ @@@@C PRINT LISTING OTW )@@G@@F ELEMENTS *[@@@@CTS@ *@[@@@@C *[@@@@CTS@ 2@A@@@@ CALL TITLE(0TX )@@G@@,LWIDTH,1,ELTITL) *[@@@@CTS@ /@[@@@@C *[@@@@CTS@AA@#@@@@C PRINT RESTY )@@G@@ISTORS*[@@@@CTS@AK@[@@@@C *[@@@@CTS@AU@A@@@@ IF (JELCNT(1).EQ.0TZ )@@G@@) GO TO 50 *[@@@@CTS@A=@#@@@@ ITITLE=0 *[@@@@CTS@A,@G@@@@ 21 UA )@@G@@FORMAT(//'0**** RESISTORS'/'0 NAME NODES VALUE *[@@@@UB )@@G@@CTS@A8@ @@@@ 1 TC1 TC2'//) *[@@@@CTS@B]@^@@@@ LOC=LOUC )@@G@@CATE(1) *[@@@@CTS@BG@ @@@@ 30 IF (LOC.EQ.0) GO TO 50 *[@@@@CTS@BQUD )@@G@@@A@@@@ IF (ITITLE.EQ.0) WRITE (6,21) *[@@@@CTS@B)@#@@@@ ITITLEUE )@@G@@=1 *[@@@@CTS@B%@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@B4@ @@@@ UF )@@G@@NODE1=NODPLC(LOC+2) *[@@@@CTS@B"@ @@@@ NODE2=NODPLC(LOC+3) UG )@@G@@*[@@@@CTS@CC@D@@@@ WRITE (6,31) VALUE(LOCV),NODPLC(JUNODE+NODE1), UH )@@G@@*[@@@@CTS@CM@G@@@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+2),VALUE(LOCVUI )@@G@@+3),VALUE(LOCV+4) *[@@@@CTS@CW@A@@@@ 31 FORMAT(6X,A8,2I5,1P3D11.2) UJ )@@G@@*[@@@@CTS@C&@^@@@@ 40 LOC=NODPLC(LOC) *[@@@@CTS@C0@#@@@@ GO TO UK )@@G@@30 *[@@@@CTS@C'@[@@@@C *[@@@@CTS@D^@A@@@@C PRINT CAPACITORS AND UL )@@G@@INDUCTORS *[@@@@CTS@DI@[@@@@C *[@@@@CTS@DS@C@@@@ 50 IF ((JELCNT(UM )@@G@@2)+JELCNT(3)).EQ.0) GO TO 80 *[@@@@CTS@D+@#@@@@ ITITLE=0 *[@@@@UN )@@G@@CTS@D?@G@@@@ 51 FORMAT(//'0**** CAPACITORS AND INDUCTORS'/'0 NAME UO )@@G@@ NODES*[@@@@CTS@D6@A@@@@ 1 IN COND VALUE'//) *[@@@@UP )@@G@@CTS@E@@#@@@@ DO 70 ID=2,3*[@@@@CTS@EE@^@@@@ LOC=LOCATE(ID) UQ )@@G@@*[@@@@CTS@EO@ @@@@ 60 IF (LOC.EQ.0) GO TO 70 *[@@@@CTS@EY@A@@@@ UR )@@G@@IF (ITITLE.EQ.0) WRITE (6,51) *[@@@@CTS@E*@#@@@@ ITITLE=1 *[@@@@US )@@G@@CTS@E2@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@E/@ @@@@ NODE1=NODPLCUT )@@G@@(LOC+2) *[@@@@CTS@FA@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@FKUU )@@G@@@]@[@@ LTAB=7*[@@@@CTS@FU@ @[@@ IF (ID.EQ.3) LTAB=10 *[@@@@UV )@@G@@CTS@F=@ @[@@ NVAL=NODPLC(LOC+LTAB) *[@@@@CTS@F,@ @[@@ CALL SUW )@@G@@IZMEM(NVAL,NPARAM)*[@@@@CTS@F8@B@[@@C CALL SIZMEM(NODPLC(LOC+LTAB),NUX )@@G@@PARAM)*[@@@@CTS@G]@^@[@@ NPARAM=NPARAM/2 *[@@@@CTS@GG@A@[@@ UY )@@G@@IF (NPARAM.GE.2) GO TO 62 *[@@@@CTS@GQ@A@[@@ ISPOT=NODPLC(LOC+LUZ )@@G@@TAB)/2+1 *[@@@@CTS@G)@D@@@@ WRITE (6,31) VALUE(LOCV),NODPLC(JUNOVA )@@G@@DE+NODE1), *[@@@@CTS@G%@E@^@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+2VB )@@G@@),VALUE(ISPOT) @E@@@^ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+2),VALUVC )@@G@@E(LOCV+1) @^@@@^ LOC=NODPLC(LOC) *[@@@@CTS@G4@#@[@@ GO TO VD )@@G@@65 *[@@@@CTS@G"@D@[@@ 62 WRITE (6,63) VALUE(LOCV),NODPLC(JUNODE+NODVE )@@G@@E1), *[@@@@CTS@HC@C@[@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+2) VF )@@G@@*[@@@@CTS@HM@C@[@@ 63 FORMAT(6X,A8,2I5,1PD11.2,' VARIABLE') *[@@@@VG )@@G@@CTS@HW@^@[@@ 65 LOC=NODPLC(LOC) *[@@@@CTS@H&@#@@@@ GO TO 60 VH )@@G@@*[@@@@CTS@H0@#@@@@ 70 CONTINUE *[@@@@CTS@H'@[@@@@C *[@@@@CTS@I^VI )@@G@@@ @@@@C PRINT MUTUAL INDUCTORS *[@@@@CTS@II@[@@@@C *[@@@@CTS@ISVJ )@@G@@@A@@@@ 80 IF (JELCNT(4).EQ.0) GO TO 100 *[@@@@CTS@I+@#@@@@ ITITLEVK )@@G@@=0 *[@@@@CTS@I?@G@@@@ 81 FORMAT(//'0**** MUTUAL INDUCTORS'/'0 NVL )@@G@@AME COUPLED INDUC*[@@@@CTS@I6@^@@@@ 1TORS VALUE'//) *[@@@@VM )@@G@@CTS@J@@^@@@@ LOC=LOCATE(4) *[@@@@CTS@JE@ @@@@ 90 IF (LOC.EQ.0VN )@@G@@) GO TO 110 *[@@@@CTS@JO@A@@@@ IF (ITITLE.EQ.0) WRITE (6,81) *[@@@@VO )@@G@@CTS@JY@#@@@@ ITITLE=1 *[@@@@CTS@J*@^@@@@ LOCV=NODPLC(LOC+1)VP )@@G@@*[@@@@CTS@J2@^@@@@ NL1=NODPLC(LOC+2) *[@@@@CTS@J/@^@@@@ NL1=NOVQ )@@G@@DPLC(NL1+1) *[@@@@CTS@KA@^@@@@ NL2=NODPLC(LOC+3) *[@@@@CTS@KK@^@@@@VR )@@G@@ NL2=NODPLC(NL2+1) *[@@@@CTS@KU@F@@@@ WRITE (6,91) VALUE(LOCV)VS )@@G@@,VALUE(NL1),VALUE(NL2),VALUE(LOCV+1)*[@@@@CTS@K=@B@@@@ 91 FORMAT(6X,A8VT )@@G@@,4X,A8,2X,A8,1PD10.2) *[@@@@CTS@K,@^@@@@ 95 LOC=NODPLC(LOC) *[@@@@VU )@@G@@CTS@K8@#@@@@ GO TO 90 *[@@@@CTS@L]@[@@@@C *[@@@@CTS@LG@C@@@@VV )@@G@@C PRINT NONLINEAR VOLTAGE CONTROLLED SOURCES *[@@@@CTS@LQ@[@@@@C VW )@@G@@*[@@@@CTS@L)@A@@@@ 100 IF (JELCNT(5).EQ.0) GO TO 120 *[@@@@CTS@L%@#@@@@VX )@@G@@ ITITLE=0 *[@@@@CTS@L4@G@@@@ 101 FORMAT(//'0**** VOLTAGE-CONTROVY )@@G@@LLED CURRENT SOURCES'/'0 NAME *[@@@@CTS@L"@C@@@@ 1 + - VZ )@@G@@ DIMENSION FUNCTION'//) *[@@@@CTS@MC@^@@@@ LOC=LOCATE(5) WA )@@G@@*[@@@@CTS@MM@ @@@@ 110 IF (LOC.EQ.0) GO TO 120 *[@@@@CTS@MW@A@@@@ WB )@@G@@IF (ITITLE.EQ.0) WRITE (6,101)*[@@@@CTS@M&@#@@@@ ITITLE=1 *[@@@@WC )@@G@@CTS@M0@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@M'@ @@@@ NODE1=NODPLCWD )@@G@@(LOC+2) *[@@@@CTS@N^@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@NIWE )@@G@@@D@@@@ WRITE (6,111) VALUE(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@NSWF )@@G@@@C@@@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4) *[@@@@CTS@N+@A@@@@WG )@@G@@ 111 FORMAT(6X,A8,2I5,I8,9X,'POLY')*[@@@@CTS@N?@^@@@@ 115 LOC=NODPLC(LWH )@@G@@OC) *[@@@@CTS@N6@#@@@@ GO TO 110 *[@@@@CTS@O@@[@@@@C *[@@@@WI )@@G@@CTS@OE@C@@@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES *[@@@@CTS@OOWJ )@@G@@@[@@@@C *[@@@@CTS@OY@A@@@@ 120 IF (JELCNT(6).EQ.0) GO TO 140 *[@@@@WK )@@G@@CTS@O*@#@@@@ ITITLE=0 *[@@@@CTS@O2@G@@@@ 121 FORMAT(//'0**** VOWL )@@G@@LTAGE-CONTROLLED VOLTAGE SOURCES'/'0 NAME *[@@@@CTS@O/@C@@@@ 1WM )@@G@@ + - DIMENSION FUNCTION'//) *[@@@@CTS@PA@^@@@@ LOC=LOWN )@@G@@CATE(6) *[@@@@CTS@PK@ @@@@ 130 IF (LOC.EQ.0) GO TO 140 *[@@@@CTS@PUWO )@@G@@@A@@@@ IF (ITITLE.EQ.0) WRITE (6,121)*[@@@@CTS@P=@#@@@@ ITITLEWP )@@G@@=1 *[@@@@CTS@P,@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@P8@ @@@@ WQ )@@G@@NODE1=NODPLC(LOC+2) *[@@@@CTS@Q]@ @@@@ NODE2=NODPLC(LOC+3) WR )@@G@@*[@@@@CTS@QG@D@@@@ WRITE (6,111) VALUE(LOCV),NODPLC(JUNODE+NODE1), WS )@@G@@*[@@@@CTS@QQ@C@@@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4) *[@@@@WT )@@G@@CTS@Q)@^@@@@ 135 LOC=NODPLC(LOC) *[@@@@CTS@Q%@#@@@@ GO TO 130 WU )@@G@@*[@@@@CTS@Q4@[@@@@C *[@@@@CTS@Q"@C@@@@C NONLINEAR CURRENT CONTROLLEWV )@@G@@D CURRENT SOURCES *[@@@@CTS@RC@[@@@@C *[@@@@CTS@RM@A@@@@ 140 IF (JEWW )@@G@@LCNT(7).EQ.0) GO TO 160 *[@@@@CTS@RW@#@@@@ ITITLE=0 *[@@@@CTS@R&WX )@@G@@@G@@@@ 141 FORMAT(//'0**** CURRENT-CONTROLLED CURRENT SOURCES'/'0 NWY )@@G@@AME *[@@@@CTS@R0@C@@@@ 1 + - DIMENSION FUNCTION'//) WZ )@@G@@*[@@@@CTS@R'@^@@@@ LOC=LOCATE(7) *[@@@@CTS@S^@ @@@@ 150 IF (LOXA )@@G@@C.EQ.0) GO TO 160 *[@@@@CTS@SI@A@@@@ IF (ITITLE.EQ.0) WRITE (6,141)XB )@@G@@*[@@@@CTS@SS@#@@@@ ITITLE=1 *[@@@@CTS@S+@^@@@@ LOCV=NODPLC(XC )@@G@@LOC+1)*[@@@@CTS@S?@ @@@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@S6@ @@@@XD )@@G@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@T@@D@@@@ WRITE (6,111) VALUXE )@@G@@E(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@TE@C@@@@ 1 NODPLC(JUNODE+NXF )@@G@@ODE2),NODPLC(LOC+4) *[@@@@CTS@TO@^@@@@ 155 LOC=NODPLC(LOC) *[@@@@XG )@@G@@CTS@TY@#@@@@ GO TO 150 *[@@@@CTS@T*@[@@@@C *[@@@@CTS@T2@C@@@@XH )@@G@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES *[@@@@CTS@T/@[@@@@C XI )@@G@@*[@@@@CTS@UA@A@@@@ 160 IF (JELCNT(8).EQ.0) GO TO 170 *[@@@@CTS@UK@#@@@@XJ )@@G@@ ITITLE=0 *[@@@@CTS@UU@G@@@@ 161 FORMAT(//'0**** CURRENT-CONTROXK )@@G@@LLED VOLTAGE SOURCES'/'0 NAME *[@@@@CTS@U=@C@@@@ 1 + - XL )@@G@@ DIMENSION FUNCTION'//) *[@@@@CTS@U,@^@@@@ LOC=LOCATE(8) XM )@@G@@*[@@@@CTS@U8@ @@@@ 165 IF (LOC.EQ.0) GO TO 170 *[@@@@CTS@V]@A@@@@ XN )@@G@@IF (ITITLE.EQ.0) WRITE (6,161)*[@@@@CTS@VG@#@@@@ ITITLE=1 *[@@@@XO )@@G@@CTS@VQ@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@V)@ @@@@ NODE1=NODPLCXP )@@G@@(LOC+2) *[@@@@CTS@V%@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@V4XQ )@@G@@@D@@@@ WRITE (6,111) VALUE(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@V"XR )@@G@@@C@@@@ 1 NODPLC(JUNODE+NODE2),NODPLC(LOC+4) *[@@@@CTS@WC@^@@@@XS )@@G@@ 167 LOC=NODPLC(LOC) *[@@@@CTS@WM@#@@@@ GO TO 165 *[@@@@CTS@WWXT )@@G@@@[@@@@C *[@@@@CTS@W&@ @@@@C PRINT INDEPENDENT SOURCES *[@@@@CTS@W0XU )@@G@@@[@@@@C *[@@@@CTS@W'@C@@@@ 170 IF ((JELCNT(9)+JELCNT(10)).EQ.0) GO XV )@@G@@TO 250*[@@@@CTS@X^@#@@@@ ITITLE=0 *[@@@@CTS@XI@G@@@@ 171 FORMATXW )@@G@@(//'0**** INDEPENDENT SOURCES'/'0 NAME NODES DC*[@@@@CTS@XSXX )@@G@@@D@@@@ 1 VALUE AC VALUE AC PHASE TRANSIENT'//) *[@@@@CTS@X+XY )@@G@@@^@@@@ DO 245 ID=9,10 *[@@@@CTS@X?@^@@@@ LOC=LOCATE(ID) XZ )@@G@@*[@@@@CTS@X6@ @@@@ 180 IF (LOC.EQ.0) GO TO 245 *[@@@@CTS@Y@@A@@@@ YA )@@G@@IF (ITITLE.EQ.0) WRITE (6,171)*[@@@@CTS@YE@#@@@@ ITITLE=1 *[@@@@YB )@@G@@CTS@YO@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@YY@ @@@@ LOCP=NODPLC(YC )@@G@@LOC+5)/2 *[@@@@CTS@Y*@ @@@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@Y2YD )@@G@@@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@Y/@ @@@@ ITYPE=NODPLCYE )@@G@@(LOC+4)+1 *[@@@@CTS@ZA@^@@@@ ANAM=ASTYP(ITYPE) *[@@@@CTS@ZK@D@@@@YF )@@G@@ WRITE (6,181) VALUE(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@ZU@E@@@@YG )@@G@@ 1 NODPLC(JUNODE+NODE2),VALUE(LOCV+1),VALUE(LOCV+2), *[@@@@CTS@Z=YH )@@G@@@ @@@@ 2 VALUE(LOCV+3),ANAM *[@@@@CTS@Z,@B@@@@ 181 FORMAT(6X,A8YI )@@G@@,2I5,1P3D11.2,2X,A8) *[@@@@CTS@Z8@A@@@@ IF (JTRFLG.EQ.0) GO TO 2YJ )@@G@@40 *[@@@@CTS@)]@^@@@@ JSTART=LOCP+1 *[@@@@CTS@)G@C@@@@ YK )@@G@@GO TO (240,190,200,210,220,230), ITYPE *[@@@@CTS@)Q@#@@@@ 190 JSTOP=YL )@@G@@LOCP+7*[@@@@CTS@))@C@@@@ WRITE (6,191) (VALUE(J),J=JSTART,JSTOP) YM )@@G@@*[@@@@CTS@)%@C@@@@ 191 FORMAT(1H0,42X,'INITIAL VALUE',1PD11.2,/, *[@@@@YN )@@G@@CTS@)4@C@@@@ 1 43X,'PULSED VALUE.', D11.2,/, *[@@@@CTS@)"YO )@@G@@@C@@@@ 2 43X,'DELAY TIME...', D11.2,/, *[@@@@CTS@-C@C@@@@YP )@@G@@ 3 43X,'RISETIME.....', D11.2,/, *[@@@@CTS@-M@C@@@@ 4YQ )@@G@@ 43X,'FALLTIME.....', D11.2,/, *[@@@@CTS@-W@C@@@@ 5 YR )@@G@@ 43X,'WIDTH........', D11.2,/, *[@@@@CTS@-&@C@@@@ 6 4YS )@@G@@3X,'PERIOD.......', D11.2,/) *[@@@@CTS@-0@#@@@@ GO TO 240 *[@@@@YT )@@G@@CTS@-'@#@@@@ 200 JSTOP=LOCP+5*[@@@@CTS@+^@C@@@@ WRITE (6,201) (VALYU )@@G@@UE(J),J=JSTART,JSTOP) *[@@@@CTS@+I@C@@@@ 201 FORMAT(1H0,42X,'OFFSET..YV )@@G@@.....',1PD11.2,/, *[@@@@CTS@+S@C@@@@ 1 43X,'AMPLITUDE....'YW )@@G@@, D11.2,/, *[@@@@CTS@++@C@@@@ 2 43X,'FREQUENCY....', D11YX )@@G@@.2,/, *[@@@@CTS@+?@C@@@@ 3 43X,'DELAY........', D11.2,/, YY )@@G@@*[@@@@CTS@+6@C@@@@ 4 43X,'THETA........', D11.2,/) *[@@@@YZ )@@G@@CTS@<@@#@@@@ GO TO 240 *[@@@@CTS@]@^@@@@ JSTOP=ZK )@@G@@JSTOP/2 *[@@@@CTS@>G@^@@@@ JSTOP=LOCP+JSTOP *[@@@@CTS@>Q@C@@@@ZL )@@G@@ WRITE (6,221) (VALUE(J),J=JSTART,JSTOP) *[@@@@CTS@>)@E@@@@ 221 ZM )@@G@@FORMAT(1H0,49X,'TIME VALUE'//,(46X,1P2D11.2)) *[@@@@CTS@>%@^@@@@ZN )@@G@@ WRITE (6,226) *[@@@@CTS@>4@#@@@@ 226 FORMAT(1X) *[@@@@CTS@>"ZO )@@G@@@#@@@@ GO TO 240 *[@@@@CTS@&C@#@@@@ 230 JSTOP=LOCP+5*[@@@@CTS@&MZP )@@G@@@C@@@@ WRITE (6,231) (VALUE(J),J=JSTART,JSTOP) *[@@@@CTS@&W@C@@@@ZQ )@@G@@ 231 FORMAT(1H0,42X,'OFFSET.......',1PD11.2,/, *[@@@@CTS@&&@C@@@@ 1ZR )@@G@@ 43X,'AMPLITUDE....', D11.2,/, *[@@@@CTS@&0@C@@@@ 2 ZS )@@G@@ 43X,'CARRIER FREQ.', D11.2,/, *[@@@@CTS@&'@C@@@@ 3 4ZT )@@G@@3X,'MODN INDEX...', D11.2,/, *[@@@@CTS@$^@C@@@@ 4 43X,'SIZU )@@G@@GNAL FREQ..', D11.2,/) *[@@@@CTS@$I@^@@@@ 240 LOC=NODPLC(LOC) *[@@@@ZV )@@G@@CTS@$S@#@@@@ GO TO 180 *[@@@@CTS@$+@#@@@@ 245 CONTINUE *[@@@@ZW )@@G@@CTS@$?@[@@@@C *[@@@@CTS@$6@ @@@@C PRINT TRANSMISSION LINES *[@@@@ZX )@@G@@CTS@*@@[@@@@C *[@@@@CTS@*E@A@@@@ 250 IF (JELCNT(17).EQ.0) GO TO 260ZY )@@G@@*[@@@@CTS@*O@#@@@@ ITITLE=0 *[@@@@CTS@*Y@G@@@@ 251 FORMAT(//'0*ZZ )@@G@@*** TRANSMISSION LINES'/'0 NAME NODES *[@@@@CTS@**@A@@@@AA )@@G@@ 1 Z0 TD'//) *[@@@@CTS@*2@^@@@@ LOC=LOCATE(1AB )@@G@@7) *[@@@@CTS@*/@ @@@@ 253 IF (LOC.EQ.0) GO TO 260 *[@@@@CTS@(A@A@@@@AC )@@G@@ IF (ITITLE.EQ.0) WRITE (6,251)*[@@@@CTS@(K@#@@@@ ITITLE=1 AD )@@G@@*[@@@@CTS@(U@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@(=@ @@@@ NODE1=AE )@@G@@NODPLC(LOC+2) *[@@@@CTS@(,@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@AF )@@G@@CTS@(8@ @@@@ NODE3=NODPLC(LOC+4) *[@@@@CTS@%]@ @@@@ NODE4=AG )@@G@@NODPLC(LOC+5) *[@@@@CTS@%G@D@@@@ WRITE (6,256) VALUE(LOCV),NODPAH )@@G@@LC(JUNODE+NODE1), *[@@@@CTS@%Q@D@@@@ 1 NODPLC(JUNODE+NODE2),NODPLCAI )@@G@@(JUNODE+NODE3), *[@@@@CTS@%)@E@@@@ 2 NODPLC(JUNODE+NODE4),VALUE(AJ )@@G@@LOCV+1),VALUE(LOCV+2) *[@@@@CTS@%%@A@@@@ 256 FORMAT(6X,A8,4I5,1P2D11.AK )@@G@@2) *[@@@@CTS@%4@^@@@@ 258 LOC=NODPLC(LOC) *[@@@@CTS@%"@#@@@@ AL )@@G@@GO TO 253 *[@@@@CTS@:C@[@@@@C *[@@@@CTS@:M@#@@@@C PRINT DIODES AM )@@G@@*[@@@@CTS@:W@[@@@@C *[@@@@CTS@:&@A@@@@ 260 IF (JELCNT(11).EQ.0) GO AN )@@G@@TO 290*[@@@@CTS@:0@#@@@@ ITITLE=0 *[@@@@CTS@:'@G@@@@ 261 FORMATAO )@@G@@(//'0**** DIODES'/'0 NAME + - MODEL ARE*[@@@@CTS@?^AP )@@G@@@]@@@@ 1A'//) *[@@@@CTS@?I@^@@@@ LOC=LOCATE(11) *[@@@@CTS@?SAQ )@@G@@@ @@@@ 270 IF (LOC.EQ.0) GO TO 290 *[@@@@CTS@?+@A@@@@ IF (ITITLE.EAR )@@G@@Q.0) WRITE (6,261)*[@@@@CTS@??@#@@@@ ITITLE=1 *[@@@@CTS@?6@^@@@@AS )@@G@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@!@@ @@@@ NODE1=NODPLC(LOC+2) AT )@@G@@*[@@@@CTS@!E@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@!O@^@@@@ AU )@@G@@LOCM=NODPLC(LOC+5)*[@@@@CTS@!Y@ @@@@ LOCM=NODPLC(LOCM+1) *[@@@@AV )@@G@@CTS@!*@#@@@@ AIC=ABLNK *[@@@@CTS@!2@B@@@@ IF (NODPLC(LOC+6).AW )@@G@@EQ.1) AIC=AOFF *[@@@@CTS@!/@D@@@@ WRITE (6,271) VALUE(LOCV),NODPAX )@@G@@LC(JUNODE+NODE1), *[@@@@CTS@,A@E@@@@ 1 NODPLC(JUNODE+NODE2),VALUE(AY )@@G@@LOCM),VALUE(LOCV+1),AIC *[@@@@CTS@,K@B@@@@ 271 FORMAT(6X,A8,2I5,2X,A8,FAZ )@@G@@8.3,2X,A8) *[@@@@CTS@,U@^@@@@ 280 LOC=NODPLC(LOC) *[@@@@CTS@,=@#@@@@BA )@@G@@ GO TO 270 *[@@@@CTS@,,@[@@@@C *[@@@@CTS@,8@^@@@@C PRINT TRABB )@@G@@NSISTORS *[@@@@CTS@\]@[@@@@C *[@@@@CTS@\G@A@@@@ 290 IF (JELCNT(1BC )@@G@@2).EQ.0) GO TO 320*[@@@@CTS@\Q@#@@@@ ITITLE=0 *[@@@@CTS@\)@G@@@@BD )@@G@@ 291 FORMAT(//'0**** BIPOLAR JUNCTION TRANSISTORS'/'0 NAME CBE )@@G@@*[@@@@CTS@\%@B@@@@ 1 B E MODEL AREA'//) *[@@@@CTS@\4BF )@@G@@@^@@@@ LOC=LOCATE(12) *[@@@@CTS@\"@ @@@@ 300 IF (LOC.EQ.0) GO TBG )@@G@@O 320 *[@@@@CTS@0C@A@@@@ IF (ITITLE.EQ.0) WRITE (6,291)*[@@@@CTS@0MBH )@@G@@@#@@@@ ITITLE=1 *[@@@@CTS@0W@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@BI )@@G@@CTS@0&@ @@@@ NODE1=NODPLC(LOC+2) *[@@@@CTS@00@ @@@@ NODE2=BJ )@@G@@NODPLC(LOC+3) *[@@@@CTS@0'@ @@@@ NODE3=NODPLC(LOC+4) *[@@@@BK )@@G@@CTS@1^@^@@@@ LOCM=NODPLC(LOC+8)*[@@@@CTS@1I@ @@@@ LOCM=NODPLC(BL )@@G@@LOCM+1) *[@@@@CTS@1S@#@@@@ AIC=ABLNK *[@@@@CTS@1+@B@@@@ BM )@@G@@IF (NODPLC(LOC+9).EQ.1) AIC=AOFF *[@@@@CTS@1?@D@@@@ WRITE (6,301BN )@@G@@) VALUE(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@16@D@@@@ 1 NODPLC(JUBO )@@G@@NODE+NODE2),NODPLC(JUNODE+NODE3), *[@@@@CTS@2@@B@@@@ 2 VALUE(LOCBP )@@G@@M),VALUE(LOCV+1),AIC *[@@@@CTS@2E@B@@@@ 301 FORMAT(6X,A8,3I5,2X,A8,FBQ )@@G@@8.3,2X,A8) *[@@@@CTS@2O@^@@@@ 310 LOC=NODPLC(LOC) *[@@@@CTS@2Y@#@@@@BR )@@G@@ GO TO 300 *[@@@@CTS@2*@[@@@@C *[@@@@CTS@22@#@@@@C PRINT JFEBS )@@G@@TS *[@@@@CTS@2/@[@@@@C *[@@@@CTS@3A@A@@@@ 320 IF (JELCNT(13).EQ.BT )@@G@@0) GO TO 350*[@@@@CTS@3K@#@@@@ ITITLE=0 *[@@@@CTS@3U@F@@@@ 321 BU )@@G@@FORMAT(//'0**** JFETS'/'0 NAME D G S MODEL*[@@@@CTS@3=BV )@@G@@@#@@@@ 1 AREA'//) *[@@@@CTS@3,@^@@@@ LOC=LOCATE(13) *[@@@@BW )@@G@@CTS@38@ @@@@ 330 IF (LOC.EQ.0) GO TO 350 *[@@@@CTS@4]@A@@@@ IF (ITBX )@@G@@ITLE.EQ.0) WRITE (6,321)*[@@@@CTS@4G@#@@@@ ITITLE=1 *[@@@@CTS@4QBY )@@G@@@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@4)@ @@@@ NODE1=NODPLC(LOC+2BZ )@@G@@) *[@@@@CTS@4%@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@44@ @@@@CA )@@G@@ NODE3=NODPLC(LOC+4) *[@@@@CTS@4"@^@@@@ LOCM=NODPLC(LOC+7)CB )@@G@@*[@@@@CTS@5C@ @@@@ LOCM=NODPLC(LOCM+1) *[@@@@CTS@5M@#@@@@ CC )@@G@@AIC=ABLNK *[@@@@CTS@5W@B@@@@ IF (NODPLC(LOC+8).EQ.1) AIC=AOFF CD )@@G@@*[@@@@CTS@5&@D@@@@ WRITE (6,301) VALUE(LOCV),NODPLC(JUNODE+NODE1), CE )@@G@@*[@@@@CTS@50@D@@@@ 1 NODPLC(JUNODE+NODE2),NODPLC(JUNODE+NODE3), CF )@@G@@*[@@@@CTS@5'@B@@@@ 2 VALUE(LOCM),VALUE(LOCV+1),AIC *[@@@@CTS@6^CG )@@G@@@^@@@@ 340 LOC=NODPLC(LOC) *[@@@@CTS@6I@#@@@@ GO TO 330 *[@@@@CH )@@G@@CTS@6S@[@@@@C *[@@@@CTS@6+@#@@@@C PRINT MOSFETS *[@@@@CTS@6?@[@@@@CI )@@G@@C *[@@@@CTS@66@A@@@@ 350 IF (JELCNT(14).EQ.0) GO TO 400*[@@@@CTS@7@CJ )@@G@@@#@@@@ ITITLE=0 *[@@@@CTS@7E@F@@@@ 351 FORMAT(//'0**** MOSFETS'CK )@@G@@,/,'0 NAME D G S B MODEL*[@@@@CTS@7O@B@@@@ 1 L W CL )@@G@@ AD AS',//) *[@@@@CTS@7Y@^@@@@ LOC=LOCATE(14) *[@@@@CM )@@G@@CTS@7*@ @@@@ 360 IF (LOC.EQ.0) GO TO 400 *[@@@@CTS@72@A@@@@ IF (ITCN )@@G@@ITLE.EQ.0) WRITE (6,351)*[@@@@CTS@7/@#@@@@ ITITLE=1 *[@@@@CTS@8ACO )@@G@@@^@@@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@8K@ @@@@ NODE1=NODPLC(LOC+2CP )@@G@@) *[@@@@CTS@8U@ @@@@ NODE2=NODPLC(LOC+3) *[@@@@CTS@8=@ @@@@CQ )@@G@@ NODE3=NODPLC(LOC+4) *[@@@@CTS@8,@ @@@@ NODE4=NODPLC(LOC+5CR )@@G@@) *[@@@@CTS@88@^@@@@ LOCM=NODPLC(LOC+8)*[@@@@CTS@9]@ @@@@ CS )@@G@@LOCM=NODPLC(LOCM+1) *[@@@@CTS@9G@#@@@@ AIC=ABLNK *[@@@@CTS@9QCT )@@G@@@B@@@@ IF (NODPLC(LOC+9).EQ.1) AIC=AOFF *[@@@@CTS@9)@D@@@@ CU )@@G@@WRITE (6,361) VALUE(LOCV),NODPLC(JUNODE+NODE1), *[@@@@CTS@9%@D@@@@ 1CV )@@G@@ NODPLC(JUNODE+NODE2),NODPLC(JUNODE+NODE3), *[@@@@CTS@94@G@@@@ 2CW )@@G@@ NODPLC(JUNODE+NODE4),VALUE(LOCM),VALUE(LOCV+1),VALUE(LOCV+2), *[@@@@CX )@@G@@CTS@9"@B@@@@ 3 VALUE(LOCV+3),VALUE(LOCV+4),AIC *[@@@@CTS@'C@C@@@@CY )@@G@@ 361 FORMAT(6X,A8,4I3,1X,A8,1P4D8.1,1X,A8) *[@@@@CTS@'M@^@@@@ 370 CZ )@@G@@LOC=NODPLC(LOC) *[@@@@CTS@'W@#@@@@ GO TO 360 *[@@@@CTS@'&@[@@@@DA )@@G@@C *[@@@@CTS@'0@^@@@@C SUBCIRCUIT CALLS *[@@@@CTS@''@[@@@@C DB )@@G@@*[@@@@CTS@;^@A@@@@ 400 IF (JELCNT(19).EQ.0) GO TO 500*[@@@@CTS@;I@#@@@@DC )@@G@@ ITITLE=0 *[@@@@CTS@;S@G@@@@ 401 FORMAT(//'0**** SUBCIRCUIT CALDD )@@G@@LS'/'0 NAME SUBCIRCUIT EXT*[@@@@CTS@;+@^@@@@ 1ERNAL NODES'DE )@@G@@//) *[@@@@CTS@;?@^@@@@ LOC=LOCATE(19) *[@@@@CTS@;6@ @@@@ 410 DF )@@G@@IF (LOC.EQ.0) GO TO 500 *[@@@@CTS@/@@A@@@@ IF (ITITLE.EQ.0) WRITE (DG )@@G@@6,401)*[@@@@CTS@/E@#@@@@ ITITLE=1 *[@@@@CTS@/O@^@@@@ LOCV=NDH )@@G@@ODPLC(LOC+1)*[@@@@CTS@/Y@^@@@@ LOCN=NODPLC(LOC+2)*[@@@@CTS@/*@ @[@@DI )@@G@@ CALL SIZMEM(LOCN,NNODX) *[@@@@CTS@/2@B@[@@C CALL SIZMEM(NODPLCDJ )@@G@@(LOC+2),NNODX) @B@@@[ CALL SIZMEM(NODPLC(LOC+2),NNODX) *[@@@@DK )@@G@@CTS@//@^@@@@ LOCS=NODPLC(LOC+3)*[@@@@CTS@.A@ @@@@ LOCSV=NODPLCDL )@@G@@(LOCS+1) *[@@@@CTS@.K@#@@@@ JSTART=1 *[@@@@CTS@.U@ @@@@ DM )@@G@@NDPRLN=(LWIDTH-28)/5 *[@@@@CTS@.=@B@@@@ 412 JSTOP=MIN0(NNODX,JSTART+DN )@@G@@NDPRLN-1) *[@@@@CTS@.,@ @@@@ DO 414 J=JSTART,JSTOP *[@@@@CTS@.8DO )@@G@@@ @@@@ NODE=NODPLC(LOCN+J) *[@@@@CTS@"]@B@@@@ ITAB(J-JSTARDP )@@G@@T+1)=NODPLC(JUNODE+NODE)*[@@@@CTS@"G@#@@@@ 414 CONTINUE *[@@@@CTS@"QDQ )@@G@@@^@@@@ IF (JSTART.EQ.1) *[@@@@CTS@")@G@@@@ 1 WRITE (6,416) VDR )@@G@@ALUE(LOCV),VALUE(LOCSV),(ITAB(J),J=1,JSTOP) *[@@@@CTS@"%@A@@@@ 416 DS )@@G@@FORMAT(6X,A8,2X,A8,4X,20I5) *[@@@@CTS@"4@^@@@@ IF (JSTART.NE.1) DT )@@G@@*[@@@@CTS@""@E@@@@ 1 WRITE (6,418) (ITAB(J-JSTART+1),J=JSTART,JSTODU )@@G@@P) *[@@@@CTS@_C@^@@@@ 418 FORMAT(28X,20I5) *[@@@@CTS@_M@^@@@@ DV )@@G@@JSTART=JSTOP+1 *[@@@@CTS@_W@A@@@@ IF (JSTART.LE.NNODX) GO TO 412DW )@@G@@*[@@@@CTS@_&@A@@@@ IF (NNODX.LE.NDPRLN) GO TO 420*[@@@@CTS@_0@^@@@@DX )@@G@@ WRITE (6,226) *[@@@@CTS@_'@^@@@@ 420 LOC=NODPLC(LOC) *[@@@@DY )@@G@@CTS[@^@#@@@@ GO TO 410 *[@@@@CTS[@I@[@@@@C *[@@@@CTS[@S@]@@@@DZ )@@G@@C FINISHED *[@@@@CTS[@+@[@@@@C *[@@@@CTS[@?@]@@@@ 500 RETURN*[@@@@EA )@@G@@CTS[@6@]@@@@ END ___@@@ 2 VALUE(LOCV+3),ANAM *[@@@@CTS@Z,EB )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@ @@@[ SUBROUTINE NOISE(/LOCO/)*[@@@@CTS@@OEC )@@G@@@[@@@[C *[@@@@CTS@@Y@G@@@[C THIS ROUTINE COMPUTES THE NOISE DUE ED )@@G@@TO VARIOUS CIRCUIT ELEMENTS. *[@@@@CTS@@*@[@@@[C *[@@@@CTS@@2@A@@@[EE )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.TABINF,LIST EF )@@G@@@ @@@^ INCLUDE F.CIRDAT,LIST @ @@@^ INCLUDE F.STATUS,LIST EG )@@G@@@ @@@^ INCLUDE F.MISCEL,LIST @ @@@^ INCLUDE F.KNSTNT,LIST EH )@@G@@@^@@@^ INCLUDE F.AC,LIST @ @@@^ INCLUDE F.BLANK,LIST @^@^@#EI )@@G@@@ADD,P :SPICE.NOISED *[@@@@CTS@@/@G@#@[ COMMON /TABINF/ IELMNT,IEJ )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@CTS@[A@G@#@[ 1 ISEEK )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, *[@@@@CTS@[KEL )@@G@@@G@#@[ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFEM )@@G@@,ISR, *[@@@@CTS@[U@G@#@[ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWEN )@@G@@AP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@#@[ 4 LX0,LVN,LYNL,LYU,LYL,EO )@@G@@LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@CTS@[,@#@#@[ 5 LOUEP )@@G@@TPT, *[@@@@CTS@[8@E@#@[ 6 LUNSAT,LTEMPS,LFIELD,LDELIM,LLSBKP,LACIEQ )@@G@@NS,LLVNIM, *[@@@@CTS@]]@G@#@[ 7 LLX0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLER )@@G@@X2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]G@A@#@[ 8 LLD0,LLD1,LLTD,ES )@@G@@LLOUTP,LDIAG*[@@@@CTS@]Q@G@#@[ COMMON /CIRDAT/ LOCATE(50),JELCNT(50ET )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@])@C@#@[ 1 NUT,NLT,NXTRM,NEU )@@G@@DIST,NTLIN,IBR,NUMVS *[@@@@CTS@]%@G@#@[ COMMON /STATUS/ OMEGA,TIEV )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@]4@F@#@[ 1 MODEW )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@]"@^@#@[EX )@@G@@ 2 ITEMNO,NOSOLV *[@@@@CTS@#C@G@#@[ COMMON /MISCEL/ APROG(3)EY )@@G@@,ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@#M@ @#@[ 1 IWIEZ )@@G@@DTH,LWIDTH,NOPAGE *[@@@@CTS@#W@ @#@[ INTEGER*4 ATIME,ADATE *[@@@@FA )@@G@@CTS@#&@G@#@[ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHAFB )@@G@@RGE,CTOK, *[@@@@CTS@#0@F@#@[ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHFC )@@G@@GTOL,EPS0,EPSSIL,EPSOX *[@@@@CTS@#'@G@#@[ COMMON /AC/ FSTART,FSTOPFD )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, *[@@@@CTS@^^@C@#@[ 1 INOFE )@@G@@ISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT *[@@@@CTS@^I@ @#@[ COMMON /BLANFF )@@G@@K/ VALUE(64)*[@@@@CTS@^S@^@#@[ INTEGER NODPLC(64)*[@@@@CTS@^+@ @#@[FG )@@G@@ COMPLEX*16 CVALUE(32) *[@@@@CTS@^?@C@#@[ EQUIVALENCE (VALUEFH )@@G@@(1),NODPLC(1),CVALUE(1))*[@@@@CTS@^6@[@@@[C *[@@@@CTS@ @@[@@@[C FI )@@G@@*[@@@@CTS@ E@G@@@[ DIMENSION VNO1(12),VNO2(12),VNO3(12),VNO4(12),VNFJ )@@G@@O5(12),VNO6(12) *[@@@@CTS@ O@C@@@[ DIMENSION VNTOT(12),ANAM(12),SFK )@@G@@TRING(5) *[@@@@CTS@ Y@ @@@[ DIMENSION TITLN(4),V(2) *[@@@@CTS@ *FL )@@G@@@ @@@[ COMPLEX*16 CVAL,C(1) *[@@@@CTS@ 2@A@@@[ EQUIVALENCE FM )@@G@@(C(1),V(1),CVAL) *[@@@@CTS@ /@C@@@[ EQUIVALENCE (V(1),VREAL),(V(2)FN )@@G@@,VIMAG) *[@@@@CTS@AA@G@@@[ DATA TITLN / 8HNOISE AN, 8HALYSIS ,FO )@@G@@ 8H , 8H / *[@@@@CTS@AK@G@@@[ DATA ALSRB,ALSRC,AFP )@@G@@LSRE,ALSRS,ALSRD / 2HRB,2HRC,2HRE,2HRS,2HRD / *[@@@@CTS@AU@E@@@[ FQ )@@G@@DATA ALSIB,ALSIC,ALSID,ALSFN / 2HIB,2HIC,2HID,2HFN / *[@@@@CTS@A=@ @@@[FR )@@G@@ DATA ALSTOT / 5HTOTAL / *[@@@@CTS@A,@A@@@[ DATA ASLASH,ABLNK FS )@@G@@/ 1H/, 1H /*[@@@@CTS@A8@[@@@[C *[@@@@CTS@B]@[@@@[C *[@@@@CTS@BGFT )@@G@@@#@@@[ NPRNT=0 *[@@@@CTS@BQ@^@@@[ FREQ=OMEGA/TWOPI *[@@@@FU )@@G@@CTS@B)@ @@@[ IF (ICALC.GE.2) GO TO 10*[@@@@CTS@B%@ @@@[ FOURKTFV )@@G@@=4.D0*CHARGE*VT *[@@@@CTS@B4@^@@@[ TWOQ=2.D0*CHARGE *[@@@@CTS@B"FW )@@G@@@ @@@[ NOPOSO=NODPLC(NOSOUT+2) *[@@@@CTS@CC@ @@@[ NONEGO=NODPLFX )@@G@@C(NOSOUT+3) *[@@@@CTS@CM@^@@@[ KNTLIM=LWIDTH/11 *[@@@@CTS@CW@#@@@[FY )@@G@@ NKNTR=1 *[@@@@CTS@C&@A@@@[ 10 IF (NOSPRT.EQ.0) GO TO 30 FZ )@@G@@*[@@@@CTS@C0@A@@@[ IF (NKNTR.GT.ICALC) GO TO 30 *[@@@@CTS@C'@#@@@[GA )@@G@@ NPRNT=1 *[@@@@CTS@D^@^@@@[ NKNTR=NKNTR+NOSPRT*[@@@@CTS@DIGB )@@G@@@A@@@[ CALL TITLE(0,LWIDTH,1,TITLN) *[@@@@CTS@DS@^@@@[ WRITE GC )@@G@@(6,16) FREQ *[@@@@CTS@D+@C@@@[ 16 FORMAT('0 FREQUENCY = ',1PD10.3,'GD )@@G@@ HZ'/)*[@@@@CTS@D?@[@@@[C *[@@@@CTS@D6@A@@@[C OBTAIN ADJOINT CIRCUIGE )@@G@@T SOLUTION *[@@@@CTS@E@@[@@@[C *[@@@@CTS@EE@#@@@[ 30 VNRMS=0.D0 GF )@@G@@*[@@@@CTS@EO@C@@@[ CVAL=CVALUE(LVN+NOPOSO)-CVALUE(LVN+NONEGO)*[@@@@GG )@@G@@CTS@EY@B@@@[ VOUT=DSQRT(VREAL*VREAL+VIMAG*VIMAG) *[@@@@CTS@E*@ @@@[GH )@@G@@ VOUT=DMAX1(VOUT,1.D-20) *[@@@@CTS@E0@B@]@[ CALL ZERO16(CVALUEGI )@@G@@,LVN+1,NSTOP) *[@@@@CTS@E2@B@]@[C CALL ZERO16(CVALUE(LVN+1),NSTOGJ )@@G@@P) @B@@@] CALL ZERO16(CVALUE(LVN+1),NSTOP) *[@@@@CTS@E/@ @@@[GK )@@G@@ CVALUE(LVN+NOPOSO)=-1.D0*[@@@@CTS@FA@ @@@[ CVALUE(LVN+NONEGO)GL )@@G@@=+1.D0*[@@@@CTS@FK@#@@@[ CALL ACASOL *[@@@@CTS@FU@A@@@[ CVALUEGM )@@G@@(LVN+1)=(0.D0,0.D0) *[@@@@CTS@F=@[@@@[C *[@@@@CTS@F,@]@@@[C RESGN )@@G@@ISTORS*[@@@@CTS@F8@[@@@[C *[@@@@CTS@G]@A@@@[ IF (JELCNT(1).EQ.0GO )@@G@@) GO TO 200 *[@@@@CTS@GG@#@@@[ ITITLE=0 *[@@@@CTS@GQ@F@@@[ 91 GP )@@G@@FORMAT(//'0**** RESISTOR SQUARED NOISE VOLTAGES (SQ V/HZ)') *[@@@@CTS@G)GQ )@@G@@@^@@@[ 100 LOC=LOCATE(1) *[@@@@CTS@G%@]@@@[ KNTR=0*[@@@@CTS@G4GR )@@G@@@ @@@[ 110 IF (LOC.EQ.0) GO TO 130 *[@@@@CTS@G"@#@@@[ KNTR=KNTR+1 GS )@@G@@*[@@@@CTS@HC@^@@@[ LOCV=NODPLC(LOC+1)*[@@@@CTS@HM@ @@@[ ANAM(KGT )@@G@@NTR)=VALUE(LOCV) *[@@@@CTS@HW@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@GU )@@G@@CTS@H&@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@H0@C@@@[ CVAL=CGV )@@G@@VALUE(LVN+NODE1)-CVALUE(LVN+NODE2) *[@@@@CTS@H'@F@@@[ VNTOT(KNTR)=GW )@@G@@(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCV+1) *[@@@@CTS@I^@ @@@[ GX )@@G@@VNRMS=VNRMS+VNTOT(KNTR) *[@@@@CTS@II@A@@@[ IF (KNTR.GE.KNTLIM) GO TGY )@@G@@O 140 *[@@@@CTS@IS@^@@@[ 120 LOC=NODPLC(LOC) *[@@@@CTS@I+@#@@@[ GZ )@@G@@GO TO 110 *[@@@@CTS@I?@ @@@[ 130 IF (KNTR.EQ.0) GO TO 200*[@@@@CTS@I6HA )@@G@@@A@@@[ 140 IF (NPRNT.EQ.0) GO TO 160 *[@@@@CTS@J@@A@@@[ IF (ITHB )@@G@@ITLE.EQ.0) WRITE (6,91) *[@@@@CTS@JE@#@@@[ ITITLE=1 *[@@@@CTS@JOHC )@@G@@@B@@@[ WRITE (6,141) (ANAM(I),I=1,KNTR) *[@@@@CTS@JY@A@@@[ 141 HD )@@G@@FORMAT(////,11X,12(2X,A8)) *[@@@@CTS@J*@C@@@[ WRITE (6,151) ALSTHE )@@G@@OT,(VNTOT(I),I=1,KNTR) *[@@@@CTS@J2@ @@@[ 151 FORMAT(1H0,A8,1P12D10.3)HF )@@G@@*[@@@@CTS@J/@]@@@[ 160 KNTR=0*[@@@@CTS@KA@ @@@[ IF (LOC.NE.0) GO THG )@@G@@O 120 *[@@@@CTS@KK@[@@@[C *[@@@@CTS@KU@]@@@[C DIODES *[@@@@CTS@K=HH )@@G@@@[@@@[C *[@@@@CTS@K,@A@@@[ 200 IF (JELCNT(11).EQ.0) GO TO 300*[@@@@HI )@@G@@CTS@K8@#@@@[ ITITLE=0 *[@@@@CTS@L]@F@@@[ 201 FORMAT(//'0**** DIHJ )@@G@@ODE SQUARED NOISE VOLTAGES (SQ V/HZ)') *[@@@@CTS@LG@^@@@[ 210 LOC=LOHK )@@G@@CATE(11) *[@@@@CTS@LQ@]@@@[ KNTR=0*[@@@@CTS@L)@ @@@[ 220 IF (LOHL )@@G@@C.EQ.0) GO TO 240 *[@@@@CTS@L%@#@@@[ KNTR=KNTR+1 *[@@@@CTS@L4@^@@@[HM )@@G@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@L"@ @@@[ ANAM(KNTR)=VALUE(LOCV) HN )@@G@@*[@@@@CTS@MC@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@CTS@MM@ @@@[ HO )@@G@@NODE2=NODPLC(LOC+3) *[@@@@CTS@MW@ @@@[ NODE3=NODPLC(LOC+4) HP )@@G@@*[@@@@CTS@M&@^@@@[ LOCM=NODPLC(LOC+5)*[@@@@CTS@M0@ @@@[ LOCM=NHQ )@@G@@ODPLC(LOCM+1) *[@@@@CTS@M'@ @@@[ LOCT=NODPLC(LOC+11) *[@@@@HR )@@G@@CTS@N^@^@@@[ AREA=VALUE(LOCV+1)*[@@@@CTS@NI@^@@@[ FNK=VALUE(LOHS )@@G@@CM+10)*[@@@@CTS@NS@^@@@[ FNA=VALUE(LOCM+11)*[@@@@CTS@N+@[@@@[C HT )@@G@@*[@@@@CTS@N?@^@@@[C OHMIC RESISTANCE *[@@@@CTS@N6@[@@@[C *[@@@@HU )@@G@@CTS@O@@C@@@[ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE3) *[@@@@CTS@OEHV )@@G@@@G@@@[ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+2)*ARHW )@@G@@EA *[@@@@CTS@OO@[@@@[C *[@@@@CTS@OY@B@@@[C JUNCTION SHOT NOISE AHX )@@G@@ND FLICKER NOISE *[@@@@CTS@O*@[@@@[C *[@@@@CTS@O2@C@@@[ CVAL=CHY )@@G@@VALUE(LVN+NODE3)-CVALUE(LVN+NODE2) *[@@@@CTS@O/@A@@@[ VTEMP=VREAL*HZ )@@G@@VREAL+VIMAG*VIMAG *[@@@@CTS@P^@ @]@[ VALA=VALUE(LX0+LOCT+1) *[@@@@IA )@@G@@CTS@P @A@]@[ ARG=DMAX1(DABS(VALA),1.D-20) *[@@@@CTS@PA@C@]@[C IB )@@G@@ARG=DMAX1(DABS(VALUE(LX0+LOCT+1)),1.D-20) @C@@@] ARG=DMAX1(DABS(VALIC )@@G@@UE(LX0+LOCT+1)),1.D-20) *[@@@@CTS@PK@A@@@[ VNO2(KNTR)=VTEMP*TWOQ*ARID )@@G@@G *[@@@@CTS@PU@D@@@[ VNO3(KNTR)=VTEMP*FNK*DEXP(FNA*DLOG(ARG))/FIE )@@G@@REQ *[@@@@CTS@P=@D@@@[ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTIF )@@G@@R) *[@@@@CTS@P,@ @@@[ VNRMS=VNRMS+VNTOT(KNTR) *[@@@@CTS@P8@A@@@[IG )@@G@@ IF (KNTR.GE.KNTLIM) GO TO 250 *[@@@@CTS@Q]@^@@@[ 230 LOC=NODPLC(LIH )@@G@@OC) *[@@@@CTS@QG@#@@@[ GO TO 220 *[@@@@CTS@QQ@ @@@[ 240 IF (KNII )@@G@@TR.EQ.0) GO TO 300*[@@@@CTS@Q)@A@@@[ 250 IF (NPRNT.EQ.0) GO TO 260 IJ )@@G@@*[@@@@CTS@Q%@A@@@[ IF (ITITLE.EQ.0) WRITE (6,201)*[@@@@CTS@Q4@#@@@[IK )@@G@@ ITITLE=1 *[@@@@CTS@Q"@B@@@[ WRITE (6,141) (ANAM(I),I=1,KNTIL )@@G@@R) *[@@@@CTS@RC@C@@@[ WRITE (6,151) ALSRS,(VNO1(I),I=1,KNTR) IM )@@G@@*[@@@@CTS@RM@C@@@[ WRITE (6,151) ALSID,(VNO2(I),I=1,KNTR) *[@@@@IN )@@G@@CTS@RW@C@@@[ WRITE (6,151) ALSFN,(VNO3(I),I=1,KNTR) *[@@@@CTS@R&IO )@@G@@@C@@@[ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) *[@@@@CTS@R0@]@@@[IP )@@G@@ 260 KNTR=0*[@@@@CTS@R'@ @@@[ IF (LOC.NE.0) GO TO 230 *[@@@@CTS@S^IQ )@@G@@@[@@@[C *[@@@@CTS@SI@A@@@[C BIPOLAR JUNCTION TRANSISTORS *[@@@@IR )@@G@@CTS@SS@[@@@[C *[@@@@CTS@S+@A@@@[ 300 IF (JELCNT(12).EQ.0) GO TO 400IS )@@G@@*[@@@@CTS@S?@#@@@[ ITITLE=0 *[@@@@CTS@S6@G@@@[ 301 FORMAT(//'0*IT )@@G@@*** TRANSISTOR SQUARED NOISE VOLTAGES (SQ V/HZ)') *[@@@@CTS@T@@^@@@[IU )@@G@@ 310 LOC=LOCATE(12) *[@@@@CTS@TE@]@@@[ KNTR=0*[@@@@CTS@TO@ @@@[IV )@@G@@ 320 IF (LOC.EQ.0) GO TO 340 *[@@@@CTS@TY@#@@@[ KNTR=KNTR+1 *[@@@@IW )@@G@@CTS@T*@^@@@[ LOCV=NODPLC(LOC+1)*[@@@@CTS@T2@ @@@[ ANAM(KNTR)=VIX )@@G@@ALUE(LOCV) *[@@@@CTS@T/@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@CTS@UAIY )@@G@@@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@UK@ @@@[ NODE3=NODPLCIZ )@@G@@(LOC+4) *[@@@@CTS@UU@ @@@[ NODE4=NODPLC(LOC+5) *[@@@@CTS@U=JA )@@G@@@ @@@[ NODE5=NODPLC(LOC+6) *[@@@@CTS@U,@ @@@[ NODE6=NODPLCJB )@@G@@(LOC+7) *[@@@@CTS@U8@^@@@[ LOCM=NODPLC(LOC+8)*[@@@@CTS@V]@ @@@[JC )@@G@@ LOCM=NODPLC(LOCM+1) *[@@@@CTS@VG@ @@@[ LOCT=NODPLC(LOC+22JD )@@G@@) *[@@@@CTS@VQ@^@@@[ AREA=VALUE(LOCV+1)*[@@@@CTS@V)@^@@@[ JE )@@G@@FNK=VALUE(LOCM+26)*[@@@@CTS@V%@^@@@[ FNA=VALUE(LOCM+27)*[@@@@CTS@V4JF )@@G@@@[@@@[C *[@@@@CTS@V"@^@@@[C EXTRINSIC RESISTANCES*[@@@@CTS@WC@[@@@[JG )@@G@@C *[@@@@CTS@WM@^@@@[C... BASE RESISTANCE *[@@@@CTS@WW@C@@@[ JH )@@G@@CVAL=CVALUE(LVN+NODE2)-CVALUE(LVN+NODE5) *[@@@@CTS@W&@G@@@[ VNO1(KJI )@@G@@NTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+4)*AREA *[@@@@CTS@W0JJ )@@G@@@ @@@[C... COLLECTOR RESISTANCE *[@@@@CTS@W'@C@@@[ CVAL=CVALUE(JK )@@G@@LVN+NODE1)-CVALUE(LVN+NODE4) *[@@@@CTS@X^@G@@@[ VNO2(KNTR)=(VREAL*JL )@@G@@VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA *[@@@@CTS@XI@^@@@[C... JM )@@G@@EMITTER RESISTANCE*[@@@@CTS@XS@C@@@[ CVAL=CVALUE(LVN+NODE3)-CVALUE(JN )@@G@@LVN+NODE6) *[@@@@CTS@X+@G@@@[ VNO3(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)JO )@@G@@*FOURKT*VALUE(LOCM+6)*AREA *[@@@@CTS@X?@[@@@[C *[@@@@CTS@X6@C@@@[JP )@@G@@C BASE CURRENT SHOT NOISE AND FLICKER NOISE *[@@@@CTS@Y@@[@@@[C JQ )@@G@@*[@@@@CTS@YE@C@@@[ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NODE6) *[@@@@JR )@@G@@CTS@YO@A@@@[ VTEMP=VREAL*VREAL+VIMAG*VIMAG *[@@@@CTS@YS@ @]@[ JS )@@G@@VALA=VALUE(LX0+LOCT+3) *[@@@@CTS@YU@A@]@[ ARG=DMAX1(DABS(VALA),1.DJT )@@G@@-20) *[@@@@CTS@YY@C@]@[C ARG=DMAX1(DABS(VALUE(LX0+LOCT+3)),1.D-20) JU )@@G@@@C@@@] ARG=DMAX1(DABS(VALUE(LX0+LOCT+3)),1.D-20) *[@@@@CTS@Y*@A@@@[JV )@@G@@ VNO4(KNTR)=VTEMP*TWOQ*ARG *[@@@@CTS@Y2@D@@@[ VNO5(KNTR)=VJW )@@G@@TEMP*FNK*DEXP(FNA*DLOG(ARG))/FREQ *[@@@@CTS@Y/@[@@@[C *[@@@@CTS@ZAJX )@@G@@@A@@@[C COLLECTOR CURRENT SHOT NOISE *[@@@@CTS@ZK@[@@@[C *[@@@@JY )@@G@@CTS@ZU@C@@@[ CVAL=CVALUE(LVN+NODE4)-CVALUE(LVN+NODE6) *[@@@@CTS@Z=JZ )@@G@@@G@@@[ VNO6(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*TWOQ*DABS(VALUE(LX0+LOCKA )@@G@@T+2)) *[@@@@CTS@Z,@G@@@[ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTKB )@@G@@R)+VNO4(KNTR)+VNO5(KNTR)*[@@@@CTS@Z8@^@@@[ 1 +VNO6(KNTR) *[@@@@KC )@@G@@CTS@)]@ @@@[ VNRMS=VNRMS+VNTOT(KNTR) *[@@@@CTS@)G@A@@@[ IF (KNKD )@@G@@TR.GE.KNTLIM) GO TO 350 *[@@@@CTS@)Q@^@@@[ 330 LOC=NODPLC(LOC) *[@@@@KE )@@G@@CTS@))@#@@@[ GO TO 320 *[@@@@CTS@)%@ @@@[ 340 IF (KNTR.EQ.0) GO KF )@@G@@TO 400*[@@@@CTS@)4@A@@@[ 350 IF (NPRNT.EQ.0) GO TO 360 *[@@@@CTS@)"KG )@@G@@@A@@@[ IF (ITITLE.EQ.0) WRITE (6,301)*[@@@@CTS@-C@#@@@[ ITITLEKH )@@G@@=1 *[@@@@CTS@-M@B@@@[ WRITE (6,141) (ANAM(I),I=1,KNTR) *[@@@@KI )@@G@@CTS@-W@C@@@[ WRITE (6,151) ALSRB,(VNO1(I),I=1,KNTR) *[@@@@CTS@-&KJ )@@G@@@C@@@[ WRITE (6,151) ALSRC,(VNO2(I),I=1,KNTR) *[@@@@CTS@-0@C@@@[KK )@@G@@ WRITE (6,151) ALSRE,(VNO3(I),I=1,KNTR) *[@@@@CTS@-'@C@@@[ KL )@@G@@WRITE (6,151) ALSIB,(VNO4(I),I=1,KNTR) *[@@@@CTS@+^@C@@@[ WRITE KM )@@G@@(6,151) ALSIC,(VNO6(I),I=1,KNTR) *[@@@@CTS@+I@C@@@[ WRITE (6,151KN )@@G@@) ALSFN,(VNO5(I),I=1,KNTR) *[@@@@CTS@+S@C@@@[ WRITE (6,151) ALSTKO )@@G@@OT,(VNTOT(I),I=1,KNTR) *[@@@@CTS@++@]@@@[ 360 KNTR=0*[@@@@CTS@+?@ @@@[KP )@@G@@ IF (LOC.NE.0) GO TO 330 *[@@@@CTS@+6@[@@@[C *[@@@@CTS@<@@]@@@[KQ )@@G@@C JFETS *[@@@@CTS@]@ @@@[ KY )@@G@@NODE3=NODPLC(LOC+4) *[@@@@CTS@>G@ @@@[ NODE4=NODPLC(LOC+5) KZ )@@G@@*[@@@@CTS@>Q@ @@@[ NODE5=NODPLC(LOC+6) *[@@@@CTS@>)@^@@@[ LA )@@G@@LOCM=NODPLC(LOC+7)*[@@@@CTS@>%@ @@@[ LOCM=NODPLC(LOCM+1) *[@@@@LB )@@G@@CTS@>4@ @@@[ LOCT=NODPLC(LOC+19) *[@@@@CTS@>"@^@@@[ AREA=VLC )@@G@@ALUE(LOCV+1)*[@@@@CTS@&C@^@@@[ FNK=VALUE(LOCM+10)*[@@@@CTS@&M@^@@@[LD )@@G@@ FNA=VALUE(LOCM+11)*[@@@@CTS@&W@[@@@[C *[@@@@CTS@&&@^@@@[C EXTLE )@@G@@RINSIC RESISTANCES*[@@@@CTS@&0@[@@@[C *[@@@@CTS@&'@^@@@[C... DRAIN LF )@@G@@RESISTANCE *[@@@@CTS@$^@C@@@[ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NOLG )@@G@@DE4) *[@@@@CTS@$I@G@@@[ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKLH )@@G@@T*VALUE(LOCM+4)*AREA *[@@@@CTS@$S@^@@@[C... SOURCE RESISTANCE *[@@@@LI )@@G@@CTS@$+@C@@@[ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE5) *[@@@@CTS@$?LJ )@@G@@@G@@@[ VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*ARLK )@@G@@EA *[@@@@CTS@$6@[@@@[C *[@@@@CTS@*@@C@@@[C DRAIN CURRENT SHOT NOLL )@@G@@ISE AND FLICKER NOISE *[@@@@CTS@*E@[@@@[C *[@@@@CTS@*O@C@@@[ LM )@@G@@CVAL=CVALUE(LVN+NODE4)-CVALUE(LVN+NODE5) *[@@@@CTS@*Y@A@@@[ VTEMP=LN )@@G@@VREAL*VREAL+VIMAG*VIMAG *[@@@@CTS@*+@ @]@[ VALA=VALUE(LX0+LOCT+5) LO )@@G@@*[@@@@CTS@*=@D@]@[ VNO3(KNTR)=VTEMP*FOURKT*2.D0*DABS(VALA)/3.D0 LP )@@G@@*[@@@@CTS@**@F@]@[C VNO3(KNTR)=VTEMP*FOURKT*2.D0*DABS(VALUE(LX0+LOCTLQ )@@G@@+5))/3.D0 @F@@@] VNO3(KNTR)=VTEMP*FOURKT*2.D0*DABS(VALUE(LX0+LOCTLR )@@G@@+5))/3.D0 *[@@@@CTS@*?@ @]@[ VALA=VALUE(LX0+LOCT+3) *[@@@@CTS@*,LS )@@G@@@A@]@[ ARG=DMAX1(DABS(VALA),1.D-20) *[@@@@CTS@*2@C@]@[C ARG=DMLT )@@G@@AX1(DABS(VALUE(LX0+LOCT+3)),1.D-20) @C@@@] ARG=DMAX1(DABS(VALUE(LX0LU )@@G@@+LOCT+3)),1.D-20) *[@@@@CTS@*/@D@@@[ VNO4(KNTR)=VTEMP*FNK*DEXP(FNA*LV )@@G@@DLOG(ARG))/FREQ *[@@@@CTS@(A@F@@@[ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNLW )@@G@@TR)+VNO3(KNTR)+VNO4(KNTR) *[@@@@CTS@(K@ @@@[ VNRMS=VNRMS+VNTOT(LX )@@G@@KNTR) *[@@@@CTS@(U@A@@@[ IF (KNTR.GE.KNTLIM) GO TO 450 *[@@@@CTS@(=LY )@@G@@@^@@@[ 430 LOC=NODPLC(LOC) *[@@@@CTS@(,@#@@@[ GO TO 420 *[@@@@LZ )@@G@@CTS@(8@ @@@[ 440 IF (KNTR.EQ.0) GO TO 500*[@@@@CTS@%]@A@@@[ 450 IF (NPMA )@@G@@RNT.EQ.0) GO TO 460 *[@@@@CTS@%G@A@@@[ IF (ITITLE.EQ.0) WRITE (MB )@@G@@6,401)*[@@@@CTS@%Q@#@@@[ ITITLE=1 *[@@@@CTS@%)@B@@@[ WRITE MC )@@G@@(6,141) (ANAM(I),I=1,KNTR) *[@@@@CTS@%%@C@@@[ WRITE (6,151) ALSRMD )@@G@@D,(VNO1(I),I=1,KNTR) *[@@@@CTS@%4@C@@@[ WRITE (6,151) ALSRS,(VNOME )@@G@@2(I),I=1,KNTR) *[@@@@CTS@%"@C@@@[ WRITE (6,151) ALSID,(VNO3(I),IMF )@@G@@=1,KNTR) *[@@@@CTS@:C@C@@@[ WRITE (6,151) ALSFN,(VNO4(I),I=1,KNTMG )@@G@@R) *[@@@@CTS@:M@C@@@[ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) MH )@@G@@*[@@@@CTS@:W@]@@@[ 460 KNTR=0*[@@@@CTS@:&@ @@@[ IF (LOC.NE.0) GO TMI )@@G@@O 430 *[@@@@CTS@:0@[@@@[C *[@@@@CTS@:'@]@@@[C MOSFETS *[@@@@CTS@?^MJ )@@G@@@[@@@[C *[@@@@CTS@?I@A@@@[ 500 IF (JELCNT(14).EQ.0) GO TO 600*[@@@@MK )@@G@@CTS@?S@#@@@[ ITITLE=0 *[@@@@CTS@?+@F@@@[ 501 FORMAT(//'0**** MOML )@@G@@SFET SQUARED NOISE VOLTAGES (SQ V/HZ)') *[@@@@CTS@??@^@@@[ 510 LOC=LOMM )@@G@@CATE(14) *[@@@@CTS@?6@]@@@[ KNTR=0*[@@@@CTS@!@@ @@@[ 520 IF (LOMN )@@G@@C.EQ.0) GO TO 540 *[@@@@CTS@!E@#@@@[ KNTR=KNTR+1 *[@@@@CTS@!O@^@@@[MO )@@G@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@!Y@ @@@[ ANAM(KNTR)=VALUE(LOCV) MP )@@G@@*[@@@@CTS@!*@ @@@[ NODE1=NODPLC(LOC+2) *[@@@@CTS@!2@ @@@[ MQ )@@G@@NODE2=NODPLC(LOC+3) *[@@@@CTS@!/@ @@@[ NODE3=NODPLC(LOC+4) MR )@@G@@*[@@@@CTS@,A@ @@@[ NODE4=NODPLC(LOC+5) *[@@@@CTS@,K@ @@@[ MS )@@G@@NODE5=NODPLC(LOC+6) *[@@@@CTS@,U@ @@@[ NODE6=NODPLC(LOC+7) MT )@@G@@*[@@@@CTS@,=@^@@@[ LOCM=NODPLC(LOC+8)*[@@@@CTS@,,@ @@@[ LOCM=NMU )@@G@@ODPLC(LOCM+1) @E@@@] XL=VALUE(LOCV+1)-2.D0*VALUE(LOCM+20)*VALUEMV )@@G@@(LOCM+19) @^@@@] XW=VALUE(LOCV+2) @ @@@] COX=VALUE(LOCM+13)MW )@@G@@*XW*XL*[@@@@CTS@,8@ @@@[ LOCT=NODPLC(LOC+26) *[@@@@CTS@\]@^@@@[MX )@@G@@ FNK=VALUE(LOCM+27)*[@@@@CTS@\G@^@@@[ FNA=VALUE(LOCM+28)@#@@@]MY )@@G@@ FNB=1.D0 *[@@@@CTS@\Q@[@@@[C *[@@@@CTS@\)@^@@@[C EXTRINSICMZ )@@G@@ RESISTANCES*[@@@@CTS@\%@[@@@[C *[@@@@CTS@\4@^@@@[C... DRAIN RESISTNA )@@G@@ANCE *[@@@@CTS@\"@C@@@[ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE5) NB )@@G@@*[@@@@CTS@0C@F@@@[ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUNC )@@G@@E(LOCM+6) *[@@@@CTS@0M@^@@@[C... SOURCE RESISTANCE *[@@@@CTS@0W@C@@@[ND )@@G@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE6) *[@@@@CTS@0&@F@@@[ NE )@@G@@VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+7) *[@@@@CTS@00NF )@@G@@@[@@@[C *[@@@@CTS@0'@C@@@[C DRAIN CURRENT SHOT NOISE AND FLICKER NONG )@@G@@ISE *[@@@@CTS@1^@[@@@[C *[@@@@CTS@1I@C@@@[ CVAL=CVALUE(LVN+NONH )@@G@@DE5)-CVALUE(LVN+NODE6) *[@@@@CTS@1S@A@@@[ VTEMP=VREAL*VREAL+VIMAG*NI )@@G@@VIMAG *[@@@@CTS@1W@ @]@[ VALA=VALUE(LX0+LOCT+5) *[@@@@CTS@1Y@D@]@[NJ )@@G@@ VNO3(KNTR)=VTEMP*FOURKT*2.D0*DABS(VALA)/3.D0 *[@@@@CTS@1+@F@]@[NK )@@G@@C VNO3(KNTR)=VTEMP*FOURKT*2.D0*DABS(VALUE(LX0+LOCT+5))/3.D0 @E@@@]NL )@@G@@ VNO3(KNTR)=VTEMP*FOURKT*DABS(VALUE(LX0+LOCT+5))/1.5D0 *[@@@@CTS@1&NM )@@G@@@ @]@[ VALA=VALUE(LX0+LOCT+4) *[@@@@CTS@1*@A@]@[ ARG=DMAX1(DANN )@@G@@BS(VALA),1.D-20) *[@@@@CTS@1?@C@]@[C ARG=DMAX1(DABS(VALUE(LX0+LOCT+NO )@@G@@4)),1.D-20) @C@@@] ARG=DMAX1(DABS(VALUE(LX0+LOCT+4)),1.D-20) *[@@@@NP )@@G@@CTS@16@D@]@[ VNO4(KNTR)=VTEMP*FNK*DEXP(FNA*DLOG(ARG))/FREQ @C@@@]NQ )@@G@@ VNO4(KNTR)=VTEMP*FNK*DEXP(FNA*DLOG(ARG))/ @A@ @] 1 (EXP(FNB*NR )@@G@@DLOG(FREQ))*COX) @A@@@ 1 (DEXP(FNB*DLOG(FREQ))*COX) *[@@@@CTS@2@NS )@@G@@@F@@@[ VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) NT )@@G@@*[@@@@CTS@2E@ @@@[ VNRMS=VNRMS+VNTOT(KNTR) *[@@@@CTS@2O@A@@@[ NU )@@G@@IF (KNTR.GE.KNTLIM) GO TO 550 *[@@@@CTS@2Y@^@@@[ 530 LOC=NODPLC(LOC) NV )@@G@@*[@@@@CTS@2*@#@@@[ GO TO 520 *[@@@@CTS@22@ @@@[ 540 IF (KNTR.EQ.NW )@@G@@0) GO TO 600*[@@@@CTS@2/@A@@@[ 550 IF (NPRNT.EQ.0) GO TO 560 *[@@@@NX )@@G@@CTS@3A@A@@@[ IF (ITITLE.EQ.0) WRITE (6,501)*[@@@@CTS@3K@#@@@[ NY )@@G@@ITITLE=1 *[@@@@CTS@3U@B@@@[ WRITE (6,141) (ANAM(I),I=1,KNTR) NZ )@@G@@*[@@@@CTS@3=@C@@@[ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) *[@@@@OA )@@G@@CTS@3,@C@@@[ WRITE (6,151) ALSRS,(VNO2(I),I=1,KNTR) *[@@@@CTS@38OB )@@G@@@C@@@[ WRITE (6,151) ALSID,(VNO3(I),I=1,KNTR) *[@@@@CTS@4]@C@@@[OC )@@G@@ WRITE (6,151) ALSFN,(VNO4(I),I=1,KNTR) *[@@@@CTS@4G@C@@@[ OD )@@G@@WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) *[@@@@CTS@4Q@]@@@[ 560 KNTR=0OE )@@G@@*[@@@@CTS@4)@ @@@[ IF (LOC.NE.0) GO TO 530 *[@@@@CTS@4%@[@@@[C OF )@@G@@*[@@@@CTS@44@B@@@[C COMPUTE EQUIVALENT INPUT NOISE VOLTAGE *[@@@@CTS@4"OG )@@G@@@[@@@[C *[@@@@CTS@5C@^@@@[ 600 VNOUT=DSQRT(VNRMS)*[@@@@CTS@5M@^@@@[OH )@@G@@ VNIN=VNOUT/VOUT *[@@@@CTS@5W@A@@@[ IF (NPRNT.EQ.0) GO TO 62OI )@@G@@0 *[@@@@CTS@5&@#@@@[ DO 610 I=1,5*[@@@@CTS@50@^@@@[ STRINGOJ )@@G@@(I)=ABLNK *[@@@@CTS@5'@#@@@[ 610 CONTINUE *[@@@@CTS@6^@#@@@[ OK )@@G@@IOUTYP=1 *[@@@@CTS@6I@]@@@[ IPOS=1*[@@@@CTS@6S@C@@@[ CALL OOL )@@G@@UTNAM(NOSOUT,IOUTYP,STRING,IPOS) *[@@@@CTS@6+@B@@@[ CALL MOVE(STOM )@@G@@RING,IPOS,ASLASH,1,1) *[@@@@CTS@6?@#@@@[ IPOS=IPOS+1 *[@@@@CTS@66ON )@@G@@@ @@@[ LOCV=NODPLC(NOSIN+1) *[@@@@CTS@7@@^@@@[ ANAM1=VALUE(OO )@@G@@LOCV) *[@@@@CTS@7E@B@@@[ CALL MOVE(STRING,IPOS,ANAM1,1,8) *[@@@@OP )@@G@@CTS@7O@D@@@[ WRITE (6,611) VNRMS,VNOUT,STRING,VOUT,ANAM1,VNIN*[@@@@OQ )@@G@@CTS@7Y@#@@@[ 611 FORMAT(////,*[@@@@CTS@7*@G@@@[ 1 '0**** TOTAL OUOR )@@G@@TPUT NOISE VOLTAGE',9X,'= ',1PD10.3,' SQ V/HZ'/,*[@@@@CTS@72@B@@@[ 2OS )@@G@@ 1H0,40X,'= ',D10.3,' V/RT HZ'/, *[@@@@CTS@7/@C@@@[ 3 '0 TROT )@@G@@ANSFER FUNCTION VALUE:'/, *[@@@@CTS@8A@A@@@[ 4 1H0,7X,4A8,A1,'OU )@@G@@= ',D10.3,/,*[@@@@CTS@8K@G@@@[ 5 '0 EQUIVALENT INPUT NOISE AT OV )@@G@@',A8,' = ',D10.3,' /RT HZ') *[@@@@CTS@8U@[@@@[C *[@@@@CTS@8=@^@@@[OW )@@G@@C SAVE NOISE OUTPUTS *[@@@@CTS@8,@[@@@[C *[@@@@CTS@88@^@@@[ 620 OX )@@G@@LOC=LOCATE(44) *[@@@@CTS@9]@ @@@[ 630 IF (LOC.EQ.0) GO TO 1000*[@@@@OY )@@G@@CTS@9G@^@@@[ ISEQ=NODPLC(LOC+4)*[@@@@CTS@9Q@B@@@[ IF (NODPLC(LOZ )@@G@@OC+5).NE.2) GO TO 640 *[@@@@CTS@9)@ @@@[ CVALUE(LOCO+ISEQ)=VNOUT PA )@@G@@*[@@@@CTS@9%@#@@@[ GO TO 650 *[@@@@CTS@94@ @@@[ 640 CVALUE(LOCO+PB )@@G@@ISEQ)=VNIN *[@@@@CTS@9"@^@@@[ 650 LOC=NODPLC(LOC) *[@@@@CTS@'C@#@@@[PC )@@G@@ GO TO 630 *[@@@@CTS@'M@[@@@[C *[@@@@CTS@'W@]@@@[C FINISHED PD )@@G@@*[@@@@CTS@'&@[@@@[C *[@@@@CTS@'0@]@@@[ 1000 RETURN*[@@@@CTS@''@]@@@[PE )@@G@@ END ___)=(VREAL**[S@@@*SDFF**[@@@@CTS@@E@^@@@[ SUBROUTINE DPF )@@G@@INIT *[@@@@CTS@@O@[@@@[C *[@@@@CTS@@Y@G@@@[C THIS ROUTINE PERFOPG )@@G@@RMS STORAGE-ALLOCATION AND ONE-TIME COMPUTATION *[@@@@CTS@@*@D@@@[C NEEDPH )@@G@@ED TO DO THE SMALL-SIGNAL DISTORTION ANALYSIS. *[@@@@CTS@@2@[@@@[C PI )@@G@@*[@@@@CTS@@/@A@@@[ IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDPJ )@@G@@E F.TABINF,LIST @ @@@^ INCLUDE F.CIRDAT,LIST @ @@@ INCLUDPK )@@G@@E F.STATUS,LIST @ @@@^ INCLUDE F.FLAGS,LIST @ @@@^ INCLUDPL )@@G@@E F.BLANK,LIST @^@^@#@ADD,P *SPICE.DINITD *[@@@@CTS@[A@G@#@[ PM )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, *[@@@@PN )@@G@@CTS@[K@G@#@[ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,PO )@@G@@INSIZE, *[@@@@CTS@[U@G@#@[ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODPP )@@G@@E,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[=@G@#@[ 3 NMOFFC,ISEQ,ISEPQ )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[,@G@#@[ 4PR )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, *[@@@@PS )@@G@@CTS@[8@#@#@[ 5 LOUTPT, *[@@@@CTS@]]@E@#@[ 6 LUNSAT,LTEMPS,LPT )@@G@@FIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]G@G@#@[ 7 LLX0,LLVNPU )@@G@@,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]Q@A@#@[PV )@@G@@ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@])@G@#@[ COMMON /CIRDPW )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]%@C@#@[PX )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS *[@@@@CTS@]4@G@#@[ PY )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@PZ )@@G@@CTS@]"@F@#@[ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IQA )@@G@@TERNO,*[@@@@CTS@#C@^@#@[ 2 ITEMNO,NOSOLV *[@@@@CTS@#M@G@#@[ QB )@@G@@COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, *[@@@@QC )@@G@@CTS@#W@F@#@[ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KQD )@@G@@EOF *[@@@@CTS@#&@ @#@[ COMMON /BLANK/ VALUE(64)*[@@@@CTS@#0@^@#@[QE )@@G@@ INTEGER NODPLC(64)*[@@@@CTS@#'@ @#@[ COMPLEX*16 CVALUE(32) QF )@@G@@*[@@@@CTS@^^@C@#@[ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))*[@@@@QG )@@G@@CTS@^I@[@@@[C *[@@@@CTS@^S@[@@@[C *[@@@@CTS@^)@A@]@[ CALL GQH )@@G@@ETMEM(LLD0,1,2*NDIST) *[@@@@CTS@^+@A@]@[C CALL GETMEM(LLD0,2*NDISTQI )@@G@@) @A@@@] CALL GETMEM(LLD0,2*NDIST) *[@@@@CTS@^%@B@]@[ QJ )@@G@@CALL GETMEM(LLD1,1,2*2*(5*NSTOP)) *[@@@@CTS@^?@B@]@[C CALL GETMEM(QK )@@G@@LLD1,2*2*(5*NSTOP)) @B@@@] CALL GETMEM(LLD1,2*2*(5*NSTOP)) QL )@@G@@*[@@@@CTS@^6@[@@@[C *[@@@@CTS@ @@A@@@[C BIPOLAR JUNCTION TRANSISTORQM )@@G@@S *[@@@@CTS@ E@[@@@[C *[@@@@CTS@ O@^@@@[ LOC=LOCATE(12) QN )@@G@@*[@@@@CTS@ Y@ @@@[ 100 IF (LOC.EQ.0) GO TO 200 *[@@@@CTS@ *@^@@@[ QO )@@G@@LOCV=NODPLC(LOC+1)*[@@@@CTS@ 2@^@@@[ AREA=VALUE(LOCV+1)*[@@@@CTS@ /QP )@@G@@@^@@@[ LOCM=NODPLC(LOC+8)*[@@@@CTS@AA@ @@@[ LOCM=NODPLC(LOCM+1QQ )@@G@@) *[@@@@CTS@AK@ @@@[ LOCT=LX0+NODPLC(LOC+22) *[@@@@CTS@AU@ @@@[QR )@@G@@ LOCD=LD0+NODPLC(LOC+23) *[@@@@CTS@A=@ @@@[ CSAT=VALUE(LOCM+3)QS )@@G@@*AREA *[@@@@CTS@A,@^@@@[ OVA=VALUE(LOCM+7) *[@@@@CTS@A8@^@@@[ QT )@@G@@TF=VALUE(LOCM+15) *[@@@@CTS@B]@^@@@[ TR=VALUE(LOCM+16) *[@@@@CTS@BGQU )@@G@@@ @@@[ CZBE=VALUE(LOCM+18)*AREA*[@@@@CTS@BQ@ @@@[ CZBC=VALUE(LQV )@@G@@OCM+21)*AREA*[@@@@CTS@B)@^@@@[ PE=VALUE(LOCM+19) *[@@@@CTS@B%@^@@@[QW )@@G@@ XME=VALUE(LOCM+20)*[@@@@CTS@B4@^@@@[ PC=VALUE(LOCM+22) *[@@@@QX )@@G@@CTS@B"@^@@@[ XMC=VALUE(LOCM+23)*[@@@@CTS@CC@ @@@[ FCPE=VALUE(LQY )@@G@@OCM+28) *[@@@@CTS@CM@ @@@[ FCPC=VALUE(LOCM+32) *[@@@@CTS@CWQZ )@@G@@@^@@@[ VBE=VALUE(LOCT) *[@@@@CTS@C&@^@@@[ VBC=VALUE(LOCT+1) RA )@@G@@*[@@@@CTS@C0@^@@@[ GPI=VALUE(LOCT+4) *[@@@@CTS@C'@^@@@[ GO=VALRB )@@G@@UE(LOCT+7) *[@@@@CTS@D^@^@@@[ GM=VALUE(LOCT+6) *[@@@@CTS@DI@^@@@[RC )@@G@@ GMU=VALUE(LOCT+5) *[@@@@CTS@DS@A@@@[ IF (VBE.GT.0.D0) GO TO 1RD )@@G@@10 *[@@@@CTS@D+@#@@@[ EVBE=1.D0 *[@@@@CTS@D?@^@@@[ CBE=CSRE )@@G@@AT*VBE/VT *[@@@@CTS@D6@#@@@[ GO TO 120 *[@@@@CTS@E@@^@@@[ 110 RF )@@G@@EVBE=DEXP(VBE/VT) *[@@@@CTS@EE@ @@@[ CBE=CSAT*(EVBE-1.0D0) *[@@@@RG )@@G@@CTS@EO@A@@@[ 120 IF (VBC.GT.0.0D0) GO TO 130 *[@@@@CTS@EY@#@@@[ RH )@@G@@EVBC=1.0D0 *[@@@@CTS@E*@^@@@[ CBC=CSAT*VBC/VT *[@@@@CTS@E2@^@@@[RI )@@G@@ ARG=1.0D0-VBC/PC *[@@@@CTS@E/@#@@@[ GO TO 140 *[@@@@CTS@FARJ )@@G@@@^@@@[ 130 EVBC=DEXP(VBC/VT) *[@@@@CTS@FK@ @@@[ CBC=CSAT*(EVBC-1.0RK )@@G@@D0) *[@@@@CTS@FU@A@@@[ 140 IF (VBE.GE.FCPE) GO TO 150 *[@@@@CTS@F=RL )@@G@@@^@@@[ ARG=1.0D0-VBE/PE *[@@@@CTS@F,@ @@@[ SARG=DEXP(XME*DLOGRM )@@G@@(ARG))*[@@@@CTS@F8@^@@@[ CJEO=CZBE/SARG *[@@@@CTS@G]@#@@@[ RN )@@G@@ARGBE=PE-VBE*[@@@@CTS@GG@ @@@[ CJE1=XME*CJEO/ARGBE *[@@@@CTS@GQRO )@@G@@@B@@@[ CJE2=XME*(1.0D0+XME)*CJE1/ARGBE *[@@@@CTS@G)@#@@@[ RP )@@G@@GO TO 160 *[@@@@CTS@G%@C@@@[ 150 DENOM=DEXP((1.0D0+XME)*DLOG(1.0D0-FCRQ )@@G@@PE)) *[@@@@CTS@G4@E@]@[ CJEO=CZBE*(1.0D0-FCPE*(1.0D0+XME)+XME*VBE/RR )@@G@@PE)/DENOM *[@@@@CTS@G"@ @@@[ CJE1=CZBE*XME/(DENOM*PE)*[@@@@CTS@HCRS )@@G@@@#@@@[ CJE2=0.0D0 *[@@@@CTS@HM@A@@@[ 160 IF (VBC.GE.FCPC) GO TO 1RT )@@G@@70 *[@@@@CTS@HW@^@@@[ ARG=1.0D0-VBC/PC *[@@@@CTS@H&@ @@@[ RU )@@G@@SARG=DEXP(XMC*DLOG(ARG))*[@@@@CTS@H0@^@@@[ CJCO=CZBC/SARG *[@@@@RV )@@G@@CTS@H'@#@@@[ ARGBC=PC-VBC*[@@@@CTS@I^@ @@@[ CJC1=XMC*CJCO/ARGBRW )@@G@@C *[@@@@CTS@II@B@@@[ CJC2=XMC*(1.0D0+XMC)*CJC1/ARGBC *[@@@@RX )@@G@@CTS@IS@#@@@[ GO TO 180 *[@@@@CTS@I+@C@@@[ 170 DENOM=DEXP((1.0D0+RY )@@G@@XMC)*DLOG(1.0D0-FCPC)) *[@@@@CTS@I?@D@]@[ CJCO=CZBC*(1.0-FCPC*(1.0RZ )@@G@@+XMC)+XMC*VBC/PC)/DENOM *[@@@@CTS@I6@ @@@[ CJC1=CZBC*XMC/(DENOM*PC)SA )@@G@@*[@@@@CTS@J@@#@@@[ CJC2=0.0D0 *[@@@@CTS@JE@#@@@[ 180 TWOVT=VT+VT SB )@@G@@*[@@@@CTS@JO@B@@@[ GO2=(-GO+CSAT*(EVBE+EVBC)*OVA)/TWOVT*[@@@@CTS@JYSC )@@G@@@B@@@[ GMO2=(CBE+CSAT)*OVA/VT-2.D0*GO2 *[@@@@CTS@J*@A@@@[ SD )@@G@@GM2=(GM+GO)/TWOVT-GMO2-GO2 *[@@@@CTS@J2@^@@@[ GMU2=GMU/TWOVT SE )@@G@@*[@@@@CTS@J/@A@@@[ IF (VBC.LE.0.D0) GMU2=0.D0 *[@@@@CTS@KA@^@@@[SF )@@G@@ GPI2=GPI/TWOVT *[@@@@CTS@KK@A@@@[ IF (VBE.LE.0.D0) GPI2=0.SG )@@G@@D0 *[@@@@CTS@KU@ @@@[ CBO=TF*CSAT*EVBE/VT *[@@@@CTS@K=@ @@@[SH )@@G@@ CBOR=TR*CSAT*EVBC/VT *[@@@@CTS@K,@#@@@[ CB1=CBO/VT *[@@@@SI )@@G@@CTS@K8@#@@@[ CB1R=CBOR/VT*[@@@@CTS@L]@^@@@[ TRIVT=3.D0*VT SJ )@@G@@*[@@@@CTS@LG@C@@@[ GO3=-(GO2+(CBC+CSAT)*OVA/TWOVT)/TRIVT *[@@@@SK )@@G@@CTS@LQ@^@@@[ GMO23=-3.D0*GO3 *[@@@@CTS@L)@C@@@[ GM2O3=-GMO23SL )@@G@@+(CBE+CSAT)*OVA/(VT*TWOVT) *[@@@@CTS@L%@B@@@[ GM3=(GM2-(CBE-CBC)SM )@@G@@*OVA/TWOVT)/TRIVT *[@@@@CTS@L4@^@@@[ GMU3=GMU2/TRIVT *[@@@@CTS@L"SN )@@G@@@^@@@[ GPI3=GPI2/TRIVT *[@@@@CTS@MC@^@@@[ CB2=CB1/TWOVT SO )@@G@@*[@@@@CTS@MM@^@@@[ CB2R=CB1R/TWOVT *[@@@@CTS@MW@^@@@[ VALUE(SP )@@G@@LOCD)=CJE1 *[@@@@CTS@M&@^@@@[ VALUE(LOCD+1)=CJE2*[@@@@CTS@M0@^@@@[SQ )@@G@@ VALUE(LOCD+2)=CJC1*[@@@@CTS@M'@^@@@[ VALUE(LOCD+3)=CJC2*[@@@@SR )@@G@@CTS@N^@^@@@[ VALUE(LOCD+4)=GO2 *[@@@@CTS@NI@^@@@[ VALUE(LOCD+5SS )@@G@@)=GMO2*[@@@@CTS@NS@^@@@[ VALUE(LOCD+6)=GM2 *[@@@@CTS@N+@^@@@[ ST )@@G@@VALUE(LOCD+7)=GMU2*[@@@@CTS@N?@^@@@[ VALUE(LOCD+8)=GPI2*[@@@@CTS@N6SU )@@G@@@^@@@[ VALUE(LOCD+9)=CBO *[@@@@CTS@O@@ @@@[ VALUE(LOCD+10)=CBOSV )@@G@@R *[@@@@CTS@OE@^@@@[ VALUE(LOCD+11)=CB1*[@@@@CTS@OO@ @@@[ SW )@@G@@VALUE(LOCD+12)=CB1R *[@@@@CTS@OY@^@@@[ VALUE(LOCD+13)=GO3*[@@@@SX )@@G@@CTS@O*@ @@@[ VALUE(LOCD+14)=GMO23 *[@@@@CTS@O2@ @@@[ VALUE(SY )@@G@@LOCD+15)=GM2O3 *[@@@@CTS@O/@^@@@[ VALUE(LOCD+16)=GM3*[@@@@CTS@PASZ )@@G@@@ @@@[ VALUE(LOCD+17)=GMU3 *[@@@@CTS@PK@ @@@[ VALUE(LOCD+1TA )@@G@@8)=GPI3 *[@@@@CTS@PU@^@@@[ VALUE(LOCD+19)=CB2*[@@@@CTS@P=@ @@@[TB )@@G@@ VALUE(LOCD+20)=CB2R *[@@@@CTS@P,@^@@@[ LOC=NODPLC(LOC) TC )@@G@@*[@@@@CTS@P8@#@@@[ GO TO 100 *[@@@@CTS@Q]@[@@@[C *[@@@@CTS@QGTD )@@G@@@]@@@[C DIODES *[@@@@CTS@QQ@[@@@[C *[@@@@CTS@Q)@^@@@[ 200 LOC=LOTE )@@G@@CATE(11) *[@@@@CTS@Q%@ @@@[ 210 IF (LOC.EQ.0) GO TO 300 *[@@@@CTS@Q4TF )@@G@@@^@@@[ LOCV=NODPLC(LOC+1)*[@@@@CTS@Q"@^@@@[ AREA=VALUE(LOCV+1)TG )@@G@@*[@@@@CTS@RC@^@@@[ LOCM=NODPLC(LOC+5)*[@@@@CTS@RM@ @@@[ LOCM=NTH )@@G@@ODPLC(LOCM+1) *[@@@@CTS@RW@ @@@[ LOCT=LX0+NODPLC(LOC+11) *[@@@@TI )@@G@@CTS@R&@ @@@[ LOCD=LD0+NODPLC(LOC+12) *[@@@@CTS@R0@ @@@[ CSAT=VTJ )@@G@@ALUE(LOCM+1)*AREA *[@@@@CTS@R'@ @@@[ VTE=VALUE(LOCM+3)*VT *[@@@@TK )@@G@@CTS@S^@^@@@[ TAU=VALUE(LOCM+4) *[@@@@CTS@SI@ @@@[ CZERO=VALUE(TL )@@G@@LOCM+5)*AREA*[@@@@CTS@SS@^@@@[ PHIB=VALUE(LOCM+6)*[@@@@CTS@S+@^@@@[TM )@@G@@ XM=VALUE(LOCM+7) *[@@@@CTS@S?@ @@@[ FCPB=VALUE(LOCM+12) TN )@@G@@*[@@@@CTS@S6@^@@@[ VD=VALUE(LOCT) *[@@@@CTS@T@@^@@@[ GEQ=VATO )@@G@@LUE(LOCT+2) *[@@@@CTS@TE@#@@@[ EVD=1.0D0 *[@@@@CTS@TO@B@@@[ TP )@@G@@IF (VD.GE.0.0D0) EVD=DEXP(VD/VTE) *[@@@@CTS@TY@A@@@[ IF (VD.GE.FCTQ )@@G@@PB) GO TO 220 *[@@@@CTS@T*@^@@@[ ARG=1.0D0-VD/PHIB *[@@@@CTS@T2TR )@@G@@@ @@@[ SARG=DEXP(XM*DLOG(ARG)) *[@@@@CTS@T/@^@@@[ CDJO=CZERO/STS )@@G@@ARG *[@@@@CTS@UA@#@@@[ ARGD=PHIB-VD*[@@@@CTS@UK@^@@@[ CDJ1=XTT )@@G@@M*CZERO/ARGD*[@@@@CTS@UU@A@@@[ CDJ2=XM*(1.0D0+XM)*CDJ1/ARGD *[@@@@TU )@@G@@CTS@U=@#@@@[ GO TO 230 *[@@@@CTS@U,@C@@@[ 220 DENOM=DEXP((1.0D0+TV )@@G@@XM)*DLOG(1.0D0-FCPB)) *[@@@@CTS@U8@E@]@[ CDJO=CZERO*(1.0D0-FCPB*(TW )@@G@@1.0D0+XM)+XM*VD/PHIB)/DENOM *[@@@@CTS@V]@A@@@[ CDJ1=CZERO*XM/(DENTX )@@G@@OM*PHIB) *[@@@@CTS@VG@#@]@[ CDJ2=0.0D0 *[@@@@CTS@VQ@#@@@[ TY )@@G@@CDJ2=0.0D0 *[@@@@CTS@V)@ @@@[ 230 CDBO=TAU*CSAT*EVD/VTE *[@@@@CTS@V%TZ )@@G@@@^@@@[ CDB1=CDBO/VTE *[@@@@CTS@V4@^@@@[ TWOVTE=2.D0*VTE UA )@@G@@*[@@@@CTS@V"@^@@@[ GEQ2=GEQ/TWOVTE *[@@@@CTS@WC@A@@@[ IF (VDUB )@@G@@.LE.0.D0) GEQ2=0.D0 *[@@@@CTS@WM@^@@@[ TRIVTE=3.D0*VTE *[@@@@UC )@@G@@CTS@WW@^@@@[ GEQ3=GEQ2/TRIVTE *[@@@@CTS@W&@^@@@[ CDB2=CDB1/TWUD )@@G@@OVTE *[@@@@CTS@W0@^@@@[ VALUE(LOCD)=CDJ1 *[@@@@CTS@W'@^@@@[ UE )@@G@@VALUE(LOCD+1)=CDJ2*[@@@@CTS@X^@^@@@[ VALUE(LOCD+2)=CDBO*[@@@@CTS@XIUF )@@G@@@^@@@[ VALUE(LOCD+3)=CDB1*[@@@@CTS@XS@^@@@[ VALUE(LOCD+4)=GEQ2UG )@@G@@*[@@@@CTS@X+@^@@@[ VALUE(LOCD+5)=GEQ3*[@@@@CTS@X?@^@@@[ VALUE(UH )@@G@@LOCD+6)=CDB2*[@@@@CTS@X6@^@@@[ LOC=NODPLC(LOC) *[@@@@CTS@Y@@#@@@[UI )@@G@@ GO TO 210 *[@@@@CTS@YE@[@@@[C *[@@@@CTS@YO@]@@@[C FINISHED UJ )@@G@@*[@@@@CTS@YY@[@@@[C *[@@@@CTS@Y*@]@@@[ 300 RETURN*[@@@@CTS@Y2@]@@@[UK )@@G@@ END ___@@@^@)A*1A@)D-JCS.D-JCT[E- @1A)(^@)^@)*[@@@@CTS@?6@#@@@@UL )@@G@@^@)^@)^@)DTIE-MB*0*[@@@@CTS@!@@C@@@@^@)A*2A@)DDA^@*D-JCS,C(L 00 C)C9J^[OUM )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@ @@@[ SUBROUTINE DISTO(/LOCO/)*[@@@@CTS@@OUN )@@G@@@[@@@[C *[@@@@CTS@@Y@F@@@[C THIS ROUTINE PERFORMS THE SMALL-SIGNUO )@@G@@AL DISTORTION ANALYSIS. *[@@@@CTS@@*@[@@@[C *[@@@@CTS@@2@A@@@[ UP )@@G@@IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.TABINF,LIST @ @@@^UQ )@@G@@ INCLUDE F.MISCEL,LIST @ @@@^ INCLUDE F.CIRDAT,LIST @ @@@^UR )@@G@@ INCLUDE F.STATUS,LIST @ @@@ INCLUDE F.KNSTNT,LIST @ @@@^US )@@G@@ INCLUDE F.FLAGS,LIST @^@@@^ INCLUDE F.AC,LIST @ @@@^ UT )@@G@@INCLUDE F.BLANK,LIST @^@^@#@ADD,P *SPICE.DISTOD *[@@@@CTS@@/@G@#@[UU )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, UV )@@G@@*[@@@@CTS@[A@G@#@[ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IUW )@@G@@COLUM,INSIZE, *[@@@@CTS@[K@G@#@[ 2 JUNODE,LSBKPT,NUMBKP,IORDERUX )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, *[@@@@CTS@[U@G@#@[ 3 NMOFFC,ISUY )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, *[@@@@CTS@[=@G@#@[UZ )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, VA )@@G@@*[@@@@CTS@[,@#@#@[ 5 LOUTPT, *[@@@@CTS@[8@E@#@[ 6 LUNSAT,LTVB )@@G@@EMPS,LFIELD,LDELIM,LLSBKP,LACINS,LLVNIM, *[@@@@CTS@]]@G@#@[ 7 LLXVC )@@G@@0,LLVN,LLYNL,LLYU,LLYL,LLX1,LLX2,LLX3,LLX4,LLX5,LLX6,LLX7, *[@@@@CTS@]GVD )@@G@@@A@#@[ 8 LLD0,LLD1,LLTD,LLOUTP,LDIAG*[@@@@CTS@]Q@G@#@[ COMMONVE )@@G@@ /MISCEL/ APROG(3),ATIME(2),ADATE(2),ATITLE(15),RSTATS(50), *[@@@@CTS@])VF )@@G@@@ @#@[ 1 IWIDTH,LWIDTH,NOPAGE *[@@@@CTS@]%@ @#@[ INTEGER*4 ATVG )@@G@@IME,ADATE *[@@@@CTS@]4@G@#@[ COMMON /CIRDAT/ LOCATE(50),JELCNT(50VH )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, *[@@@@CTS@]"@C@#@[ 1 NUT,NLT,NXTRM,NVI )@@G@@DIST,NTLIN,IBR,NUMVS *[@@@@CTS@#C@G@#@[ COMMON /STATUS/ OMEGA,TIVJ )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, *[@@@@CTS@#M@F@#@[ 1 MODVK )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,*[@@@@CTS@#W@^@#@[VL )@@G@@ 2 ITEMNO,NOSOLV *[@@@@CTS@#&@G@#@[ COMMON /KNSTNT/ TWOPI,XLVM )@@G@@OG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, *[@@@@CTS@#0@F@#@[ 1 GMIVN )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX *[@@@@CTS@#'@G@#@[VO )@@G@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, VP )@@G@@*[@@@@CTS@^^@F@#@[ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,VQ )@@G@@NOGO,KEOF *[@@@@CTS@^I@G@#@[ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,VR )@@G@@REFPRL,SPW2,JACFLG,IDFREQ, *[@@@@CTS@^S@C@#@[ 1 INOISE,NOSPRT,NVS )@@G@@OSOUT,NOSIN,IDIST,IDPRT *[@@@@CTS@^+@ @#@[ COMMON /BLANK/ VALUE(64)VT )@@G@@*[@@@@CTS@^?@^@#@[ INTEGER NODPLC(64)*[@@@@CTS@^6@ @#@[ COMPLEVU )@@G@@X*16 CVALUE(32) *[@@@@CTS@ @@C@#@[ EQUIVALENCE (VALUE(1),NODPLC(1VV )@@G@@),CVALUE(1))*[@@@@CTS@ E@[@@@[C *[@@@@CTS@ O@[@@@[C *[@@@@CTS@ YVW )@@G@@@G@@@[ COMPLEX*16 DIFVN1,DIFVN2,DIFVN3,DIFVI1,DIFVI2,DIFVI3,DSGO2,DVX )@@G@@SGM2, *[@@@@CTS@ *@G@@@[ 1 DSGMU2,DSGPI2,DSCB1,DSCB1R,DSCJE1,DSCJCVY )@@G@@1,DISTO1,DISTO2,DISTO3, *[@@@@CTS@ 2@G@@@[ 2 DSGMO2,DGM2O3,DGMO23,VZ )@@G@@BEW,CEW,BCW,BE2W,CE2W,BC2W,BEW2,CEW2, *[@@@@CTS@ /@G@@@[ 3 BCWWA )@@G@@2,BEW12,CEW12,BCW12,DSCDB1,DSCDJ1,DSG2,CVABE,CVABC,CVACE, *[@@@@CTS@AAWB )@@G@@@^@@@[ 4 CVOUT,CVDIST *[@@@@CTS@AK@ @@@[ DIMENSION DISTIT(4WC )@@G@@) *[@@@@CTS@AU@ @@@[ DIMENSION VDO(2,12) *[@@@@CTS@A=@ @@@[WD )@@G@@ COMPLEX*16 CVDO(12) *[@@@@CTS@A,@A@@@[ EQUIVALENCE (CVDO(WE )@@G@@1),VDO(1,1))*[@@@@CTS@A8@G@@@[ DATA DISTIT / 8HDISTORTI, 8HON ANALYWF )@@G@@, 8HSIS , 8H / *[@@@@CTS@B]@[@@@[C *[@@@@CTS@BG@[@@@[WG )@@G@@C *[@@@@CTS@BQ@^@@@[ ICVW1=(LD1+1)/2 *[@@@@CTS@B)@^@@@[ WH )@@G@@ICV2W1=ICVW1+NSTOP*[@@@@CTS@B%@^@@@[ ICVW2=ICV2W1+NSTOP*[@@@@CTS@B4WI )@@G@@@^@@@[ ICVW12=ICVW2+NSTOP*[@@@@CTS@B"@ @@@[ ICVADJ=ICVW12+NSTOWJ )@@G@@P *[@@@@CTS@CC@#@@@[ IPRNT=0 *[@@@@CTS@CM@ @@@[ IF (ICWK )@@G@@ALC.GE.2) GO TO 10*[@@@@CTS@CW@ @@@[ IDNP=NODPLC(IDIST+2) *[@@@@WL )@@G@@CTS@C&@ @@@[ IDNN=NODPLC(IDIST+3) *[@@@@CTS@C0@ @@@[ LOCV=NWM )@@G@@ODPLC(IDIST+1) *[@@@@CTS@C'@ @@@[ RLOAD=1.D0/VALUE(LOCV+1)*[@@@@WN )@@G@@CTS@D^@]@@@[ KNTR=1*[@@@@CTS@DI@ @@@[ 10 IF (IDPRT.EQ.0) GO TO 30WO )@@G@@*[@@@@CTS@DS@A@@@[ IF (KNTR.GT.ICALC) GO TO 30 *[@@@@CTS@D+@#@@@[WP )@@G@@ IPRNT=1 *[@@@@CTS@D?@^@@@[ KNTR=KNTR+IDPRT *[@@@@CTS@D6WQ )@@G@@@A@@@[ CALL TITLE(0,LWIDTH,1,DISTIT) *[@@@@CTS@E@@A@@@[ 30 FREQ1=WR )@@G@@DREAL(CVALUE(LOCO+1)) *[@@@@CTS@EE@^@@@[ FREQ2=SKW2*FREQ1 *[@@@@WS )@@G@@CTS@EO@C@]@[ CALL COPY16(CVALUE,LVN+1,ICVW1+1,NSTOP) *[@@@@CTS@EYWT )@@G@@@D@]@[C CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW1+1),NSTOP)@D@@@] WU )@@G@@CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW1+1),NSTOP)*[@@@@CTS@E*@D@@@[ WV )@@G@@CVOUT=CVALUE(ICVW1+IDNP)-CVALUE(ICVW1+IDNN) *[@@@@CTS@E2@A@@@[ WW )@@G@@CALL MAGPHS(CVOUT,OMAG,OPHASE)*[@@@@CTS@E/@[@@@[C *[@@@@CTS@FA@A@@@[WX )@@G@@C BEGIN THE DISTORTION ANALYSIS *[@@@@CTS@FK@[@@@[C *[@@@@CTS@FUWY )@@G@@@^@@@[ DO 1000 KDISTO=1,7*[@@@@CTS@F=@^@@@[ CVDIST=(0.D0,0.D0)WZ )@@G@@*[@@@@CTS@F,@D@@@[ GO TO (1000,110,120,130,140,160,170),KDISTO XA )@@G@@*[@@@@CTS@F8@^@@@[ 110 FREQD=2.D0*FREQ1 *[@@@@CTS@G]@C@@@[ ARG=DSXB )@@G@@QRT(2.D0*RLOAD*REFPRL)/(OMAG*OMAG) *[@@@@CTS@GG@A@@@[ IF (IPRNT.EQXC )@@G@@.0) GO TO 200 *[@@@@CTS@GQ@C@@@[ WRITE (6,111) FREQ1,FREQD,OMAGXD )@@G@@,OPHASE *[@@@@CTS@G)@G@@@[ 111 FORMAT (///5X,'2ND HARMONIC DISTORTIXE )@@G@@ON',30X,'FREQ1 = ',1PD9.2, *[@@@@CTS@G%@F@@@[ 1 ' HZ'//5X,'DISXF )@@G@@TORTION FREQUENCY ',D9.2,' HZ',16X, *[@@@@CTS@G4@B@@@[ 2 'MAXG )@@G@@G ',D9.3,3X,'PHS ',0PF7.2) *[@@@@CTS@G"@#@@@[ GO TO 200 *[@@@@XH )@@G@@CTS@HC@^@@@[ 120 FREQD=3.D0*FREQ1 *[@@@@CTS@HM@C@@@[ ARG=2.D0*RLOXI )@@G@@AD*REFPRL/(OMAG*OMAG*OMAG) *[@@@@CTS@HW@A@@@[ IF (IPRNT.EQ.0) GOXJ )@@G@@ TO 200 *[@@@@CTS@H&@C@@@[ WRITE (6,121) FREQ1,FREQD,OMAG,OPHASXK )@@G@@E *[@@@@CTS@H0@G@@@[ 121 FORMAT (1H1,4X,'3RD HARMONIC DISTORTION',3XL )@@G@@0X,'FREQ1 = ',1PD9.2, *[@@@@CTS@H'@F@@@[ 1 ' HZ'//5X,'DISTORTIOXM )@@G@@N FREQUENCY ',D9.2,' HZ',16X, *[@@@@CTS@I^@B@@@[ 2 'MAG ',D9XN )@@G@@.3,3X,'PHS ',0PF7.2) *[@@@@CTS@II@#@@@[ GO TO 200 *[@@@@CTS@ISXO )@@G@@@#@@@[ 130 FREQD=FREQ2 *[@@@@CTS@I+@#@@@[ GO TO 200 *[@@@@CTS@I?XP )@@G@@@^@@@[ 140 FREQD=FREQ1-FREQ2 *[@@@@CTS@I6@D@@@[ ARG=DSQRT(2.D0*RLOXQ )@@G@@AD*REFPRL)*SPW2/(OMAG*OMAG) *[@@@@CTS@J@@A@@@[ IF (IPRNT.EQ.0) GOXR )@@G@@ TO 200 *[@@@@CTS@JE@F@@@[ WRITE (6,151) FREQ1,FREQ2,FREQD,OMAGXS )@@G@@,OPHASE,OW2MAG,OW2PHS *[@@@@CTS@JO@G@@@[ 151 FORMAT (1H1,4X,'2ND ORDEXT )@@G@@R INTERMODULATION DIFFERENCE COMPONENT', *[@@@@CTS@JY@F@@@[ 1 7X,XU )@@G@@'FREQ1 = ',1PD9.2,' HZ',15X,'FREQ2 = ',D9.2,' HZ'// *[@@@@CTS@J*@E@@@[XV )@@G@@ 2 5X,'DISTORTION FREQUENCY ',D9.2,' HZ',16X,'MAG ',*[@@@@CTS@J2XW )@@G@@@F@@@[ 3 D9.3,3X,'PHS ',0PF7.2,9X,'MAG ',1PD9.3,3X,'PHS ',0PF7.2) XX )@@G@@*[@@@@CTS@J/@#@@@[ GO TO 200 *[@@@@CTS@KA@^@@@[ 160 FREQD=FREQ1+XY )@@G@@FREQ2 *[@@@@CTS@KK@D@@@[ ARG=DSQRT(2.D0*RLOAD*REFPRL)*SPW2/(OMAG*OMXZ )@@G@@AG) *[@@@@CTS@KU@A@@@[ IF (IPRNT.EQ.0) GO TO 200 *[@@@@CTS@K=YA )@@G@@@F@@@[ WRITE (6,161) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS YB )@@G@@*[@@@@CTS@K,@F@@@[ 161 FORMAT (1H1,4X,'2ND ORDER INTERMODULATION SUM COYC )@@G@@MPONENT', *[@@@@CTS@K8@F@@@[ 1 14X,'FREQ1 = ',1PD9.2,' HZ',15X,YD )@@G@@'FREQ2 = ',D9.2,' HZ'//*[@@@@CTS@L]@E@@@[ 2 5X,'DISTORTION FREQUEYE )@@G@@NCY ',D9.2,' HZ',16X,'MAG ',*[@@@@CTS@LG@F@@@[ 3 D9.3,3X,'PHS ',YF )@@G@@0PF7.2,9X,'MAG ',1PD9.3,3X,'PHS ',0PF7.2) *[@@@@CTS@LQ@#@@@[ GO TO YG )@@G@@200 *[@@@@CTS@L)@ @@@[ 170 FREQD=2.D0*FREQ1-FREQ2 *[@@@@CTS@L%@D@@@[YH )@@G@@ ARG=2.D0*RLOAD*REFPRL*SPW2/(OMAG*OMAG*OMAG) *[@@@@CTS@L4@A@@@[YI )@@G@@ IF (IPRNT.EQ.0) GO TO 200 *[@@@@CTS@L"@F@@@[ WRITE (6,171YJ )@@G@@) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS *[@@@@CTS@MC@G@@@[ 171 YK )@@G@@FORMAT (1H1,4X,'3RD ORDER INTERMODULATION DIFFERENCE COMPONENT', *[@@@@YL )@@G@@CTS@MM@F@@@[ 1 7X,'FREQ1 = ',1PD9.2,' HZ',15X,'FREQ2 = ',D9.2,' YM )@@G@@HZ'// *[@@@@CTS@MW@E@@@[ 2 5X,'DISTORTION FREQUENCY ',D9.2,' HZ'YN )@@G@@,16X,'MAG ',*[@@@@CTS@M&@F@@@[ 3 D9.3,3X,'PHS ',0PF7.2,9X,'MAG ',1YO )@@G@@PD9.3,3X,'PHS ',0PF7.2) *[@@@@CTS@M0@[@@@[C *[@@@@CTS@M'@ @@@[C LOAYP )@@G@@D AND DECOMPOSE Y MATRIX*[@@@@CTS@N^@[@@@[C *[@@@@CTS@NI@^@@@[ 200 YQ )@@G@@OMEGA=TWOPI*FREQD *[@@@@CTS@NS@#@@@[ IGOOF=0 *[@@@@CTS@N+@#@@@[YR )@@G@@ CALL ACLOAD *[@@@@CTS@N?@#@@@[ CALL ACDCMP *[@@@@CTS@N6@A@@@[YS )@@G@@ IF (IGOOF.EQ.0) GO TO 220 *[@@@@CTS@O@@A@@@[ WRITE (6,211YT )@@G@@) IGOOF,FREQD *[@@@@CTS@OE@G@@@[ 211 FORMAT('0WARNING: UNDERFLOW 'YU )@@G@@,I4,' TIME(S) IN DISTORTION ANALYSIS*[@@@@CTS@OO@A@@@[ 1 AT FREQ = 'YV )@@G@@,1PD9.3,' HZ') *[@@@@CTS@OY@#@@@[ IGOOF=0 *[@@@@CTS@O*@A@@@[YW )@@G@@ 220 IF (KDISTO.EQ.4) GO TO 710 *[@@@@CTS@O2@[@@@[C *[@@@@CTS@O/YX )@@G@@@ @@@[C OBTAIN ADJOINT SOLUTION *[@@@@CTS@PA@[@@@[C *[@@@@CTS@PKYY )@@G@@@#@]@[ LVN1=LVN+1 *[@@@@CTS@PU@A@]@[ CALL ZERO16(CVALUE,LVN1,YZ )@@G@@NSTOP)*[@@@@CTS@P=@B@]@[C CALL ZERO16(CVALUE(LVN+1),NSTOP) @B@@@]ZA )@@G@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) *[@@@@CTS@P,@ @@@[ CVALUEZB )@@G@@(LVN+IDNP)=-1.D0 *[@@@@CTS@P8@ @@@[ CVALUE(LVN+IDNN)=+1.D0 *[@@@@ZC )@@G@@CTS@Q]@#@@@[ CALL ACASOL *[@@@@CTS@QG@A@@@[ CVALUE(LVN+1)=(0.DZD )@@G@@0,0.D0) *[@@@@CTS@QQ@C@]@[ CALL COPY16(CVALUE,LVN+1,ICVADJ+1,NSZE )@@G@@TOP) *[@@@@CTS@Q)@E@]@[C CALL COPY16(CVALUE(LVN+1),CVALUE(ICVADJ+1)ZF )@@G@@,NSTOP) @E@@@] CALL COPY16(CVALUE(LVN+1),CVALUE(ICVADJ+1),NSTOPZG )@@G@@) *[@@@@CTS@Q%@B@]@[ CALL ZERO16(CVALUE,LVN+1,NSTOP) *[@@@@ZH )@@G@@CTS@Q4@B@]@[C CALL ZERO16(CVALUE(LVN+1),NSTOP) @B@@@] CALL ZZI )@@G@@ERO16(CVALUE(LVN+1),NSTOP) *[@@@@CTS@Q"@[@@@[C *[@@@@CTS@RC@]@@@[ZJ )@@G@@C BJTS *[@@@@CTS@RM@[@@@[C *[@@@@CTS@RW@A@@@[ IF (JELCNT(1ZK )@@G@@2).EQ.0) GO TO 500*[@@@@CTS@R&@#@@@[ ITITLE=0 *[@@@@CTS@R0@G@@@[ZL )@@G@@ 301 FORMAT (////1X,'BJT DISTORTION COMPONENTS'//1X,'NAME',11X,'GM', ZM )@@G@@*[@@@@CTS@R'@G@@@[ 1 8X,'GPI',7X,'GO',8X,'GMU',6X,'GMO2',7X,'CB',8ZN )@@G@@X,'CBR',7X,'CJE', *[@@@@CTS@S^@ @@@[ 2 7X,'CJC',6X,'TOTAL') *[@@@@ZO )@@G@@CTS@SI@G@@@[ 311 FORMAT (////1X,'BJT DISTORTION COMPONENTS'//1X,'NAME',ZP )@@G@@11X,'GM', *[@@@@CTS@SS@G@@@[ 1 8X,'GPI',7X,'GO',8X,'GMU',6X,'GMOZQ )@@G@@2',7X,'CB',8X,'CBR',7X,'CJE', *[@@@@CTS@S+@D@@@[ 2 7X,'CJC',6X,'GMZR )@@G@@203',5X,'GMO23',5X,'TOTAL') *[@@@@CTS@S?@^@@@[ 320 LOC=LOCATE(12) ZS )@@G@@*[@@@@CTS@S6@ @@@[ 330 IF (LOC.EQ.0) GO TO 500 *[@@@@CTS@T@@^@@@[ ZT )@@G@@LOCV=NODPLC(LOC+1)*[@@@@CTS@TE@ @@@[ LOCT=LX0+NODPLC(LOC+22) *[@@@@ZU )@@G@@CTS@TO@ @@@[ LOCD=LD0+NODPLC(LOC+23) *[@@@@CTS@TY@ @@@[ NODE1=ZV )@@G@@NODPLC(LOC+5) *[@@@@CTS@T*@ @@@[ NODE2=NODPLC(LOC+6) *[@@@@ZW )@@G@@CTS@T2@ @@@[ NODE3=NODPLC(LOC+7) *[@@@@CTS@T/@^@@@[ CJE1=VZX )@@G@@ALUE(LOCD) *[@@@@CTS@UA@^@@@[ CJE2=VALUE(LOCD+1)*[@@@@CTS@UK@^@@@[ZY )@@G@@ CJC1=VALUE(LOCD+2)*[@@@@CTS@UU@^@@@[ CJC2=VALUE(LOCD+3)*[@@@@ZZ )@@G@@CTS@U=@^@@@[ GO2=VALUE(LOCD+4) *[@@@@CTS@U,@^@@@[ GMO2=VALUE(LAA )@@G@@OCD+5)*[@@@@CTS@U8@^@@@[ GM2=VALUE(LOCD+6) *[@@@@CTS@V]@^@@@[ AB )@@G@@GMU2=VALUE(LOCD+7)*[@@@@CTS@VG@^@@@[ GPI2=VALUE(LOCD+8)*[@@@@CTS@VQAC )@@G@@@^@@@[ CB1=VALUE(LOCD+11)*[@@@@CTS@V)@ @@@[ CB1R=VALUE(LOCD+12AD )@@G@@) *[@@@@CTS@V%@^@@@[ GO3=VALUE(LOCD+13)*[@@@@CTS@V4@ @@@[ AE )@@G@@GMO23=VALUE(LOCD+14) *[@@@@CTS@V"@ @@@[ GM2O3=VALUE(LOCD+15) AF )@@G@@*[@@@@CTS@WC@^@@@[ GM3=VALUE(LOCD+16)*[@@@@CTS@WM@ @@@[ GMU3=VAG )@@G@@ALUE(LOCD+17) *[@@@@CTS@WW@ @@@[ GPI3=VALUE(LOCD+18) *[@@@@AH )@@G@@CTS@W&@^@@@[ CB2=VALUE(LOCD+19)*[@@@@CTS@W0@ @@@[ CB2R=VALUE(LAI )@@G@@OCD+20) *[@@@@CTS@W'@D@@@[ BEW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1AJ )@@G@@+NODE3) *[@@@@CTS@X^@D@@@[ CEW=CVALUE(ICVW1+NODE1)-CVALUE(ICVW1AK )@@G@@+NODE3) *[@@@@CTS@XI@D@@@[ BCW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1AL )@@G@@+NODE1) *[@@@@CTS@XS@A@@@[ IF (KDISTO.EQ.2) GO TO 370 *[@@@@AM )@@G@@CTS@X+@D@@@[ BE2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE3) *[@@@@AN )@@G@@CTS@X?@D@@@[ CE2W=CVALUE(ICV2W1+NODE1)-CVALUE(ICV2W1+NODE3) *[@@@@AO )@@G@@CTS@X6@D@@@[ BC2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE1) *[@@@@AP )@@G@@CTS@Y@@A@@@[ IF (KDISTO.EQ.3) GO TO 380 *[@@@@CTS@YE@D@@@[ AQ )@@G@@BEW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODE3) *[@@@@CTS@YO@D@@@[ AR )@@G@@CEW2=CVALUE(ICVW2+NODE1)-CVALUE(ICVW2+NODE3) *[@@@@CTS@YY@D@@@[ AS )@@G@@BCW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODE1) *[@@@@CTS@Y*@A@@@[ AT )@@G@@IF (KDISTO.EQ.5) GO TO 390 *[@@@@CTS@Y2@A@@@[ IF (KDISTO.EQ.6) GAU )@@G@@O TO 400 *[@@@@CTS@Y/@D@@@[ BEW12=CVALUE(ICVW12+NODE2)-CVALUE(ICAV )@@G@@VW12+NODE3) *[@@@@CTS@ZA@D@@@[ CEW12=CVALUE(ICVW12+NODE1)-CVALUE(ICAW )@@G@@VW12+NODE3) *[@@@@CTS@ZK@D@@@[ BCW12=CVALUE(ICVW12+NODE2)-CVALUE(ICAX )@@G@@VW12+NODE1) *[@@@@CTS@ZU@#@@@[ GO TO 410 *[@@@@CTS@Z=@[@@@[C AY )@@G@@*[@@@@CTS@Z,@A@@@[C CALCULATE HD2 CURRENT GENERATORS *[@@@@CTS@Z8@[@@@[AZ )@@G@@C *[@@@@CTS@)]@ @@@[ 370 DIFVN1=.5D0*CEW*CEW *[@@@@CTS@)G@ @@@[BA )@@G@@ DIFVN2=.5D0*BEW*BEW *[@@@@CTS@)Q@ @@@[ DIFVN3=.5D0*BCW*BCBB )@@G@@W *[@@@@CTS@))@ @@@[ DSGMO2=GMO2*.5D0*BEW*CEW*[@@@@CTS@)%@#@@@[BC )@@G@@ GO TO 420 *[@@@@CTS@)4@[@@@[C *[@@@@CTS@)"@A@@@[C CALCULATEBD )@@G@@ HD3 CURRENT GENERATORS *[@@@@CTS@-C@[@@@[C *[@@@@CTS@-M@ @@@[ 380 BE )@@G@@DIFVI1=.5D00*CEW*CE2W *[@@@@CTS@-W@A@@@[ DIFVN1=0.25D0*CEW*CEW*CEBF )@@G@@W *[@@@@CTS@-&@ @@@[ DIFVI2=.5D00*BEW*BE2W *[@@@@CTS@-0@A@@@[BG )@@G@@ DIFVN2=0.25D0*BEW*BEW*BEW *[@@@@CTS@-'@ @@@[ DIFVI3=.5D00BH )@@G@@*BCW*BC2W *[@@@@CTS@+^@A@@@[ DIFVN3=0.25D0*BCW*BCW*BCW *[@@@@BI )@@G@@CTS@+I@B@@@[ DSGMO2=GMO2*(BEW*CE2W+BE2W*CEW)*.5D0*[@@@@CTS@+S@#@@@[BJ )@@G@@ GO TO 430 *[@@@@CTS@++@[@@@[C *[@@@@CTS@+?@A@@@[C CALCULATEBK )@@G@@ IM2D CURRENT GENERATORS*[@@@@CTS@+6@[@@@[C *[@@@@CTS@<@@ @@@[ 390 BL )@@G@@DIFVN1=CEW*DCONJG(CEW2) *[@@@@CTS@]@[@@@[BT )@@G@@C *[@@@@CTS@>G@A@@@[C CALCULATE IM3 CURRENT GENERATORS *[@@@@CTS@>QBU )@@G@@@[@@@[C *[@@@@CTS@>)@C@@@[ 410 DIFVI1=.5D0*(CE2W*DCONJG(CEW2)+CEW*CBV )@@G@@EW12) *[@@@@CTS@>%@C@@@[ DIFVI2=.5D0*(BE2W*DCONJG(BEW2)+BEW*BEW12) BW )@@G@@*[@@@@CTS@>4@C@@@[ DIFVI3=.5D0*(BC2W*DCONJG(BCW2)+BCW*BCW12) *[@@@@BX )@@G@@CTS@>"@B@@@[ DIFVN1=CEW*CEW*DCONJG(CEW2)*.75D0 *[@@@@CTS@&C@B@@@[BY )@@G@@ DIFVN2=BEW*BEW*DCONJG(BEW2)*.75D0 *[@@@@CTS@&M@B@@@[ DIFVN3BZ )@@G@@=BCW*BCW*DCONJG(BCW2)*.75D0 *[@@@@CTS@&W@G@@@[ DSGMO2=GMO2*.5D0*(CA )@@G@@DCONJG(BEW2)*CE2W+BEW*CEW12+DCONJG(CEW2)*BE2W+ *[@@@@CTS@&&@^@@@[ 1CB )@@G@@ CEW*BEW12) *[@@@@CTS@&0@#@@@[ GO TO 430 *[@@@@CTS@&'@[@@@[CC )@@G@@C *[@@@@CTS@$^@^@@@[ 420 DSGO2=GO2*DIFVN1 *[@@@@CTS@$I@^@@@[ CD )@@G@@DSGM2=GM2*DIFVN2 *[@@@@CTS@$S@^@@@[ DSGMU2=GMU2*DIFVN3*[@@@@CTS@$+CE )@@G@@@^@@@[ DSGPI2=GPI2*DIFVN2*[@@@@CTS@$?@F@@@[ DSCB1=.5D0*CB1*OMECF )@@G@@GA*DCMPLX(-DIMAG(DIFVN2),DREAL(DIFVN2)) *[@@@@CTS@$6@F@@@[ DSCB1RCG )@@G@@=.5D0*CB1R*OMEGA*DCMPLX(-DIMAG(DIFVN3),DREAL(DIFVN3)) *[@@@@CTS@*@@F@@@[CH )@@G@@ DSCJE1=.5D0*CJE1*OMEGA*DCMPLX(-DIMAG(DIFVN2),DREAL(DIFVN2)) *[@@@@CI )@@G@@CTS@*E@F@@@[ DSCJC1=.5D0*CJC1*OMEGA*DCMPLX(-DIMAG(DIFVN3),DREAL(DIFCJ )@@G@@VN3)) *[@@@@CTS@*O@#@@@[ GO TO 440 *[@@@@CTS@*Y@[@@@[C *[@@@@CK )@@G@@CTS@**@B@@@[ 430 DSGO2=2.D0*GO2*DIFVI1+GO3*DIFVN1 *[@@@@CTS@*2@B@@@[CL )@@G@@ DSGM2=2.D0*GM2*DIFVI2+GM3*DIFVN2 *[@@@@CTS@*/@B@@@[ DSGMU2CM )@@G@@=2.D0*GMU2*DIFVI3+GMU3*DIFVN3 *[@@@@CTS@(A@B@@@[ DSGPI2=2.D0*GPI2*DCN )@@G@@IFVI2+GPI3*DIFVN2 *[@@@@CTS@(K@C@@@[ DSCB1=OMEGA*(CB1*DIFVI2+CB2*DICO )@@G@@FVN2/3.D0) *[@@@@CTS@(U@C@@@[ DSCB1=DCMPLX(-DIMAG(DSCB1),DREAL(DSCCP )@@G@@B1)) *[@@@@CTS@(=@D@@@[ DSCB1R=OMEGA*(CB1R*DIFVI3+CB2R*DIFVN3/3.D0CQ )@@G@@) *[@@@@CTS@(,@D@@@[ DSCB1R=DCMPLX(-DIMAG(DSCB1R),DREAL(DSCB1R)CR )@@G@@) *[@@@@CTS@(8@D@@@[ DSCJE1=OMEGA*(CJE1*DIFVI2+CJE2*DIFVN2/3.D0CS )@@G@@) *[@@@@CTS@%]@D@@@[ DSCJE1=DCMPLX(-DIMAG(DSCJE1),DREAL(DSCJE1)CT )@@G@@) *[@@@@CTS@%G@D@@@[ DSCJC1=OMEGA*(CJC1*DIFVI3+CJC2*DIFVN3/3.D0CU )@@G@@) *[@@@@CTS@%Q@D@@@[ DSCJC1=DCMPLX(-DIMAG(DSCJC1),DREAL(DSCJC1)CV )@@G@@) *[@@@@CTS@%)@[@@@[C *[@@@@CTS@%%@D@@@[C DETERMINE CONTRIBUTIOCW )@@G@@N OF EACH DISTORTION SOURCE *[@@@@CTS@%4@[@@@[C *[@@@@CTS@%"@D@@@[CX )@@G@@ 440 CVABE=CVALUE(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE3) *[@@@@CTS@:C@D@@@[CY )@@G@@ CVABC=CVALUE(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE1) *[@@@@CTS@:M@D@@@[CZ )@@G@@ CVACE=CVALUE(ICVADJ+NODE1)-CVALUE(ICVADJ+NODE3) *[@@@@CTS@:W@A@@@[DA )@@G@@ DISTO1=DSGM2+DSGO2+DSGMO2 *[@@@@CTS@:&@A@@@[ DISTO2=DSGPIDB )@@G@@2+DSCB1+DSCJE1 *[@@@@CTS@:0@A@@@[ DISTO3=DSGMU2+DSCB1R+DSCJC1 DC )@@G@@*[@@@@CTS@:'@ @@@[ CVDO(1)=DSGM2*CVACE*ARG *[@@@@CTS@?^@ @@@[ DD )@@G@@CVDO(2)=DSGPI2*CVABE*ARG*[@@@@CTS@?I@ @@@[ CVDO(3)=DSGO2*CVACE*ARG DE )@@G@@*[@@@@CTS@?S@ @@@[ CVDO(4)=DSGMU2*CVABC*ARG*[@@@@CTS@?+@ @@@[ DF )@@G@@CVDO(5)=DSGMO2*CVACE*ARG*[@@@@CTS@??@ @@@[ CVDO(6)=DSCB1*CVABE*ARG DG )@@G@@*[@@@@CTS@?6@ @@@[ CVDO(7)=DSCB1R*CVABC*ARG*[@@@@CTS@!@@ @@@[ DH )@@G@@CVDO(8)=DSCJE1*CVABE*ARG*[@@@@CTS@!E@ @@@[ CVDO(9)=DSCJC1*CVABC*ARGDI )@@G@@*[@@@@CTS@!O@A@@@[ IF (KDISTO.EQ.3) GO TO 450 *[@@@@CTS@!Y@A@@@[DJ )@@G@@ IF (KDISTO.EQ.7) GO TO 460 *[@@@@CTS@!*@G@@@[ CVDO(10)=CVDDK )@@G@@O(1)+CVDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ *[@@@@CTS@!2@^@@@[DL )@@G@@ 1 CVDO(8)+CVDO(9)*[@@@@CTS@!/@ @@@[ CVDIST=CVDIST+CVDO(10) DM )@@G@@*[@@@@CTS@,A@A@@@[ IF (IPRNT.EQ.0) GO TO 480 *[@@@@CTS@,K@^@@@[DN )@@G@@ DO 445 J=1,10 *[@@@@CTS@,U@A@@@[ CALL MAGPHS(CVDO(J),XMAGDO )@@G@@,XPHS)*[@@@@CTS@,=@A@@@[ CVDO(J)=DCMPLX(XMAG,XPHS) *[@@@@CTS@,,DP )@@G@@@#@@@[ 445 CONTINUE *[@@@@CTS@,8@A@@@[ IF (ITITLE.EQ.0) WRITE (DQ )@@G@@6,301)*[@@@@CTS@\]@#@@@[ ITITLE=1 *[@@@@CTS@\G@D@@@[ WRITE DR )@@G@@(6,446) VALUE(LOCV),(VDO(1,J),J=1,10) *[@@@@CTS@\Q@A@@@[ 446 FORMATDS )@@G@@(1H0,A8,'MAG',1P12D10.3)*[@@@@CTS@\)@B@@@[ WRITE (6,447) (VDO(2,J),DT )@@G@@J=1,10) *[@@@@CTS@\%@B@@@[ 447 FORMAT(9X,'PHS',12(1X,F7.2,2X)) DU )@@G@@*[@@@@CTS@\4@#@@@[ GO TO 480 *[@@@@CTS@\"@B@@@[ 450 DGM2O3=GM2O3DV )@@G@@*CEW*BEW*BEW*0.25D0 *[@@@@CTS@0C@B@@@[ DGMO23=GMO23*BEW*CEW*CEWDW )@@G@@*0.25D0 *[@@@@CTS@0M@#@@@[ GO TO 470 *[@@@@CTS@0W@C@@@[ 460 DX )@@G@@DGM2O3=GM2O3*(.5D0*BEW*DCONJG(BEW2)*CEW *[@@@@CTS@0&@B@@@[ 1 +0.2DY )@@G@@5D0*BEW*BEW*DCONJG(CEW2)) *[@@@@CTS@00@C@@@[ DGMO23=GMO23*(.5D0DZ )@@G@@*CEW*DCONJG(CEW2)*BEW *[@@@@CTS@0'@B@@@[ 1 +0.25D0*CEW*CEW*DCONJGEA )@@G@@(BEW2)) *[@@@@CTS@1^@A@@@[ 470 DISTO1=DISTO1+DGM2O3+DGMO23 *[@@@@EB )@@G@@CTS@1I@A@@@[ CVDO(10)=DGM2O3*CVACE*ARG *[@@@@CTS@1S@A@@@[ EC )@@G@@CVDO(11)=DGMO23*CVACE*ARG *[@@@@CTS@1+@G@@@[ CVDO(12)=CVDO(1)+CED )@@G@@VDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ *[@@@@CTS@1?@B@@@[ 1EE )@@G@@ CVDO(8)+CVDO(9)+CVDO(10)+CVDO(11)*[@@@@CTS@16@ @@@[ CVDIST=CVDISEF )@@G@@T+CVDO(12) *[@@@@CTS@2@@A@@@[ IF (IPRNT.EQ.0) GO TO 480 *[@@@@EG )@@G@@CTS@2E@^@@@[ DO 475 J=1,12 *[@@@@CTS@2O@A@@@[ CALL MAGPHS(EH )@@G@@CVDO(J),XMAG,XPHS)*[@@@@CTS@2Y@A@@@[ CVDO(J)=DCMPLX(XMAG,XPHS) EI )@@G@@*[@@@@CTS@2*@#@@@[ 475 CONTINUE *[@@@@CTS@22@A@@@[ IF (ITITLE.EEJ )@@G@@Q.0) WRITE (6,311)*[@@@@CTS@2/@#@@@[ ITITLE=1 *[@@@@CTS@3A@D@@@[EK )@@G@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,12) *[@@@@CTS@3K@B@@@[EL )@@G@@ WRITE (6,447) (VDO(2,J),J=1,12) *[@@@@CTS@3U@E@@@[ 480 CVALUEEM )@@G@@(LVN+NODE1)=CVALUE(LVN+NODE1)-DISTO1+DISTO3 *[@@@@CTS@3=@E@@@[ EN )@@G@@CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)-DISTO2-DISTO3 *[@@@@CTS@3,@E@@@[EO )@@G@@ CVALUE(LVN+NODE3)=CVALUE(LVN+NODE3)+DISTO1+DISTO2 *[@@@@CTS@38EP )@@G@@@^@@@[ LOC=NODPLC(LOC) *[@@@@CTS@4]@#@@@[ GO TO 330 *[@@@@EQ )@@G@@CTS@4G@[@@@[C *[@@@@CTS@4Q@^@@@[C JUNCTION DIODES *[@@@@CTS@4)ER )@@G@@@[@@@[C *[@@@@CTS@4%@A@@@[ 500 IF (JELCNT(11).EQ.0) GO TO 700*[@@@@ES )@@G@@CTS@44@#@@@[ ITITLE=0 *[@@@@CTS@4"@F@@@[ 501 FORMAT (////1X,'DIET )@@G@@ODE DISTORTION COMPONENTS'//1X,'NAME', *[@@@@CTS@5C@C@@@[ 1 11XEU )@@G@@,'GEQ',7X,'CB',8X,'CJ',7X,'TOTAL') *[@@@@CTS@5M@^@@@[ 510 LOC=LOCATE(1EV )@@G@@1) *[@@@@CTS@5W@ @@@[ 520 IF (LOC.EQ.0) GO TO 700 *[@@@@CTS@5&@^@@@[EW )@@G@@ LOCV=NODPLC(LOC+1)*[@@@@CTS@50@ @@@[ NODE1=NODPLC(LOC+2) EX )@@G@@*[@@@@CTS@5'@ @@@[ NODE2=NODPLC(LOC+3) *[@@@@CTS@6^@ @@@[ EY )@@G@@NODE3=NODPLC(LOC+4) *[@@@@CTS@6I@^@@@[ LOCM=NODPLC(LOC+5)*[@@@@EZ )@@G@@CTS@6S@ @@@[ LOCM=NODPLC(LOCM+1) *[@@@@CTS@6+@ @@@[ LOCT=LFA )@@G@@X0+NODPLC(LOC+11) *[@@@@CTS@6?@ @@@[ LOCD=LD0+NODPLC(LOC+12) *[@@@@FB )@@G@@CTS@66@^@@@[ CDJ1=VALUE(LOCD) *[@@@@CTS@7@@^@@@[ CDJ2=VALUE(LFC )@@G@@OCD+1)*[@@@@CTS@7E@^@@@[ CDB1=VALUE(LOCD+3)*[@@@@CTS@7O@^@@@[ FD )@@G@@GEQ2=VALUE(LOCD+4)*[@@@@CTS@7Y@^@@@[ GEQ3=VALUE(LOCD+5)*[@@@@CTS@7*FE )@@G@@@^@@@[ CDB2=VALUE(LOCD+6)*[@@@@CTS@72@D@@@[ BEW=CVALUE(ICVW1+NFF )@@G@@ODE3)-CVALUE(ICVW1+NODE2) *[@@@@CTS@7/@A@@@[ IF (KDISTO.EQ.2) GFG )@@G@@O TO 540 *[@@@@CTS@8A@D@@@[ BE2W=CVALUE(ICV2W1+NODE3)-CVALUE(ICVFH )@@G@@2W1+NODE2) *[@@@@CTS@8K@A@@@[ IF (KDISTO.EQ.3) GO TO 550 *[@@@@FI )@@G@@CTS@8U@D@@@[ BEW2=CVALUE(ICVW2+NODE3)-CVALUE(ICVW2+NODE2) *[@@@@FJ )@@G@@CTS@8=@A@@@[ IF (KDISTO.EQ.5) GO TO 560 *[@@@@CTS@8,@A@@@[ FK )@@G@@IF (KDISTO.EQ.6) GO TO 570 *[@@@@CTS@88@D@@@[ BEW12=CVALUE(ICVW1FL )@@G@@2+NODE3)-CVALUE(ICVW12+NODE2) *[@@@@CTS@9]@#@@@[ GO TO 580 *[@@@@FM )@@G@@CTS@9G@[@@@[C *[@@@@CTS@9Q@B@@@[C CALCULATE HD2 CURRENT GENERATORFN )@@G@@S *[@@@@CTS@9)@[@@@[C *[@@@@CTS@9%@ @@@[ 540 DIFVN1=.5D0*BEW*BEFO )@@G@@W *[@@@@CTS@94@#@@@[ GO TO 590 *[@@@@CTS@9"@[@@@[C *[@@@@FP )@@G@@CTS@'C@B@@@[C CALCULATE HD3 CURRENT GENERATORS *[@@@@CTS@'M@[@@@[FQ )@@G@@C *[@@@@CTS@'W@ @@@[ 550 DIFVI1=.5D0*BEW*BE2W *[@@@@CTS@'&@A@@@[FR )@@G@@ DIFVN1=0.25D0*BEW*BEW*BEW *[@@@@CTS@'0@#@@@[ GO TO 600 FS )@@G@@*[@@@@CTS@''@[@@@[C *[@@@@CTS@;^@B@@@[C CALCULATE IM2D CURRENT GEFT )@@G@@NERATORS *[@@@@CTS@;I@[@@@[C *[@@@@CTS@;S@ @@@[ 560 DIFVN1=BEW*DFU )@@G@@CONJG(BEW2) *[@@@@CTS@;+@#@@@[ GO TO 590 *[@@@@CTS@;?@[@@@[C FV )@@G@@*[@@@@CTS@;6@B@@@[C CALCULATE IM2S CURRENT GENERATORS *[@@@@CTS@/@FW )@@G@@@[@@@[C *[@@@@CTS@/E@^@@@[ 570 DIFVN1=BEW*BEW2 *[@@@@CTS@/O@#@@@[FX )@@G@@ GO TO 590 *[@@@@CTS@/Y@[@@@[C *[@@@@CTS@/*@B@@@[C CALCULAFY )@@G@@TE IM3 CURRENT GENERATORS *[@@@@CTS@/2@[@@@[C *[@@@@CTS@//@C@@@[FZ )@@G@@ 580 DIFVI1=.5D0*(BE2W*DCONJG(BEW2)+BEW*BEW12) *[@@@@CTS@.A@B@@@[ GA )@@G@@DIFVN1=BEW*BEW*DCONJG(BEW2)*.75D0 *[@@@@CTS@.K@#@@@[ GO TO 600 GB )@@G@@*[@@@@CTS@.U@^@@@[ 590 DSG2=GEQ2*DIFVN1 *[@@@@CTS@.=@F@@@[ DSCDB1GC )@@G@@=.5D0*CDB1*OMEGA*DCMPLX(-DIMAG(DIFVN1),DREAL(DIFVN1)) *[@@@@CTS@.,@F@@@[GD )@@G@@ DSCDJ1=.5D0*CDJ1*OMEGA*DCMPLX(-DIMAG(DIFVN1),DREAL(DIFVN1)) *[@@@@GE )@@G@@CTS@.8@#@@@[ GO TO 610 *[@@@@CTS@"]@[@@@[C *[@@@@CTS@"G@B@@@[GF )@@G@@ 600 DSG2=2.D0*GEQ2*DIFVI1+GEQ3*DIFVN1 *[@@@@CTS@"Q@D@@@[ DSCDB1GG )@@G@@=OMEGA*(CDB1*DIFVI1+CDB2*DIFVN1/3.D0) *[@@@@CTS@")@D@@@[ DSCDB1GH )@@G@@=DCMPLX(-DIMAG(DSCDB1),DREAL(DSCDB1)) *[@@@@CTS@"%@D@@@[ DSCDJ1GI )@@G@@=OMEGA*(CDJ1*DIFVI1+CDJ2*DIFVN1/3.D0) *[@@@@CTS@"4@D@@@[ DSCDJ1GJ )@@G@@=DCMPLX(-DIMAG(DSCDJ1),DREAL(DSCDJ1)) *[@@@@CTS@""@[@@@[C *[@@@@GK )@@G@@CTS@_C@D@@@[C DETERMINE CONTRIBUTION OF EACH DISTORTION SOURCE *[@@@@GL )@@G@@CTS@_M@[@@@[C *[@@@@CTS@_W@D@@@[ 610 CVABE=CVALUE(ICVADJ+NODE3)-CVAGM )@@G@@LUE(ICVADJ+NODE2) *[@@@@CTS@_&@ @@@[ CVDO(1)=DSG2*CVABE*ARG *[@@@@GN )@@G@@CTS@_0@ @@@[ CVDO(2)=DSCDB1*CVABE*ARG*[@@@@CTS@_'@ @@@[ CVDO(3GO )@@G@@)=DSCDJ1*CVABE*ARG*[@@@@CTS[@^@B@@@[ CVDO(4)=CVDO(1)+CVDO(2)+CVDO(3GP )@@G@@) *[@@@@CTS[@I@ @@@[ CVDIST=CVDIST+CVDO(4) *[@@@@CTS[@S@A@@@[GQ )@@G@@ IF (IPRNT.EQ.0) GO TO 680 *[@@@@CTS[@+@#@@@[ DO 670 J=1,4GR )@@G@@*[@@@@CTS[@?@A@@@[ CALL MAGPHS(CVDO(J),XMAG,XPHS)*[@@@@CTS[@6@A@@@[GS )@@G@@ CVDO(J)=DCMPLX(XMAG,XPHS) *[@@@@CTS[[@@#@@@[ 670 CONTINUE GT )@@G@@*[@@@@CTS[[E@A@@@[ IF (ITITLE.EQ.0) WRITE (6,501)*[@@@@CTS[[O@#@@@[GU )@@G@@ ITITLE=1 *[@@@@CTS[[Y@C@@@[ WRITE (6,446) VALUE(LOCV),(VDOGV )@@G@@(1,J),J=1,4)*[@@@@CTS[[*@A@@@[ WRITE (6,447) (VDO(2,J),J=1,4)*[@@@@GW )@@G@@CTS[[2@C@@@[ 680 CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)+DISTO1*[@@@@CTS[[/GX )@@G@@@C@@@[ CVALUE(LVN+NODE3)=CVALUE(LVN+NODE3)-DISTO1*[@@@@CTS[]A@^@@@[GY )@@G@@ LOC=NODPLC(LOC) *[@@@@CTS[]K@#@@@[ GO TO 520 *[@@@@CTS[]UGZ )@@G@@@[@@@[C *[@@@@CTS[]=@C@@@[C OBTAIN TOTAL DISTORTION SOLUTION IF NECHA )@@G@@ESSARY*[@@@@CTS[],@[@@@[C *[@@@@CTS[]8@D@@@[ 700 GO TO (1000,710,79HB )@@G@@0,710,710,840,860),KDISTO @A@@@] 710 IF(KDISTO.EQ.4) GO TO 730 HC )@@G@@@^@@@] DO 720 I=2,NSTOP @^@@@] J=NODPLC(ISWAP+I) @A@@@] HD )@@G@@CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@@@] 720 CONTINUE @D@@@] CALL CHE )@@G@@OPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)*[@@@@CTS[#]@#@]@[ 710 CALL AHF )@@G@@CSOL @#@@@] 730 CALL ACSOL *[@@@@CTS[#G@A@@@[ CVALUE(LVN+1)=(0.DHG )@@G@@0,0.D0) *[@@@@CTS[#Q@[@@@[C *[@@@@CTS[#)@B@@@[C STORE SOLUTION,HH )@@G@@ PRINT AND STORE ANSWERS*[@@@@CTS[#%@[@@@[C *[@@@@CTS[#4@D@@@[ 760 HI )@@G@@GO TO (1000,770,790,800,820,840,860),KDISTO *[@@@@CTS[#"@C@]@[ 770 HJ )@@G@@CALL COPY16(CVALUE,LVN+1,ICV2W1+1,NSTOP) *[@@@@CTS[^C@E@]@[C 770 CALL CHK )@@G@@OPY16(CVALUE(LVN+1),CVALUE(ICV2W1+1),NSTOP) @E@@@] 770 CALL COPY16(HL )@@G@@CVALUE(LVN+1),CVALUE(ICV2W1+1),NSTOP) *[@@@@CTS[^M@B@@@[ CALL MHM )@@G@@AGPHS(CVDIST,O2MAG,O2PHS) *[@@@@CTS[^W@A@@@[ IF (IPRNT.EQ.0) GOHN )@@G@@ TO 900 *[@@@@CTS[^&@A@@@[ O2LOG=20.D0*DLOG10(O2MAG) *[@@@@HO )@@G@@CTS[^0@B@@@[ WRITE (6,781) O2MAG,O2PHS,O2LOG *[@@@@CTS[^'@G@@@[HP )@@G@@ 781 FORMAT (///5X,'HD2 MAGNITUDE ',1PD10.3,5X,'PHASE ',0PF7.2, HQ )@@G@@*[@@@@CTS[ ^@ @@@[ 1 5X,'= ',F7.2,' DB')*[@@@@CTS[ I@#@@@[ HR )@@G@@GO TO 900 *[@@@@CTS[ S@B@@@[ 790 CALL MAGPHS(CVDIST,O3MAG,O3PHS) HS )@@G@@*[@@@@CTS[ +@A@@@[ IF (IPRNT.EQ.0) GO TO 900 *[@@@@CTS[ ?@A@@@[HT )@@G@@ O3LOG=20.D0*DLOG10(O3MAG) *[@@@@CTS[ 6@B@@@[ WRITE (6,791HU )@@G@@) O3MAG,O3PHS,O3LOG *[@@@@CTS[A@@G@@@[ 791 FORMAT (///5X,'HD3 MHV )@@G@@AGNITUDE ',1PD10.3,5X,'PHASE ',0PF7.2, *[@@@@CTS[AE@ @@@[ 1 5X,HW )@@G@@'= ',F7.2,' DB')*[@@@@CTS[AO@#@@@[ GO TO 900 *[@@@@CTS[AY@C@]@[HX )@@G@@ 800 CALL COPY16(CVALUE,LVN+1,ICVW2+1,NSTOP) *[@@@@CTS[A*@D@]@[C 800 HY )@@G@@CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW2+1),NSTOP)@D@@@] 800 CALL COPY16(HZ )@@G@@CVALUE(LVN+1),CVALUE(ICVW2+1),NSTOP)*[@@@@CTS[A2@D@@@[ CVOUT=CVALUEIA )@@G@@(ICVW2+IDNP)-CVALUE(ICVW2+IDNN) *[@@@@CTS[A/@B@@@[ CALL MAGPHS(IB )@@G@@CVOUT,OW2MAG,OW2PHS) *[@@@@CTS[BA@#@@@[ GO TO 1000 *[@@@@CTS[BKIC )@@G@@@C@]@[ 820 CALL COPY16(CVALUE,LVN+1,ICVW12+1,NSTOP) *[@@@@CTS[BU@E@]@[ID )@@G@@C 820 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW12+1),NSTOP) @E@@@] 820 IE )@@G@@CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW12+1),NSTOP) *[@@@@CTS[B=@B@@@[IF )@@G@@ 840 CALL MAGPHS(CVDIST,O12MAG,O12PHS) *[@@@@CTS[B,@A@@@[ IF (IPIG )@@G@@RNT.EQ.0) GO TO 900 *[@@@@CTS[B8@A@@@[ O12LOG=20.D0*DLOG10(O12MIH )@@G@@AG) *[@@@@CTS[C]@A@@@[ IF (KDISTO.EQ.6) GO TO 850 *[@@@@CTS[CGII )@@G@@@B@@@[ WRITE (6,841) O12MAG,O12PHS,O12LOG *[@@@@CTS[CQ@G@@@[ 841 IJ )@@G@@FORMAT (///5X,'IM2D MAGNITUDE ',1PD10.3,5X,'PHASE ',0PF7.2, *[@@@@IK )@@G@@CTS[C)@ @@@[ 1 5X,'= ',F7.2,' DB')*[@@@@CTS[C%@#@@@[ GO TO IL )@@G@@900 *[@@@@CTS[C4@B@@@[ 850 WRITE (6,851) O12MAG,O12PHS,O12LOG *[@@@@IM )@@G@@CTS[C"@G@@@[ 851 FORMAT (///5X,'IM2S MAGNITUDE ',1PD10.3,5X,'PHASE IN )@@G@@ ',0PF7.2, *[@@@@CTS[DC@ @@@[ 1 5X,'= ',F7.2,' DB')*[@@@@CTS[DMIO )@@G@@@#@@@[ GO TO 900 *[@@@@CTS[DW@B@@@[ 860 CALL MAGPHS(CVDIST,O21MAIP )@@G@@G,O21PHS) *[@@@@CTS[D&@A@@@[ IF (IPRNT.EQ.0) GO TO 900 *[@@@@IQ )@@G@@CTS[D0@A@@@[ O21LOG=20.D0*DLOG10(O21MAG) *[@@@@CTS[D'@B@@@[ IR )@@G@@WRITE (6,861) O21MAG,O21PHS,O21LOG *[@@@@CTS[E^@G@@@[ 861 FORMAT (///5IS )@@G@@X,'IM3 MAGNITUDE ',1PD10.3,5X,'PHASE ',0PF7.2, *[@@@@CTS[EI@ @@@[IT )@@G@@ 1 5X,'= ',F7.2,' DB')*[@@@@CTS[ES@D@@@[ CMA=DABS(4.D0*O21MIU )@@G@@AG*DCOS((O21PHS-OPHASE)/RAD)) *[@@@@CTS[E+@ @@@[ CMA=DMAX1(CMA,1.D-IV )@@G@@20) *[@@@@CTS[E?@D@@@[ CMP=DABS(4.D0*O21MAG*DSIN((O21PHS-OPHASE)/IW )@@G@@RAD)) *[@@@@CTS[E6@ @@@[ CMP=DMAX1(CMP,1.D-20) *[@@@@CTS[F@@ @@@[IX )@@G@@ CMALOG=20.D0*DLOG10(CMA)*[@@@@CTS[FE@ @@@[ CMPLOG=20.D0*DLOG1IY )@@G@@0(CMP)*[@@@@CTS[FO@^@@@[ WRITE (6,866) *[@@@@CTS[FY@F@@@[ 866 IZ )@@G@@FORMAT (////5X,'APPROXIMATE CROSS MODULATION COMPONENTS') *[@@@@CTS[F*JA )@@G@@@ @@@[ WRITE (6,871) CMA,CMALOG*[@@@@CTS[F2@G@@@[ 871 FORMAT (/5X,JB )@@G@@'CMA MAGNITUDE ',1PD10.3,24X,'= ',0PF7.2,' DB')*[@@@@CTS[F/@ @@@[JC )@@G@@ WRITE (6,881) CMP,CMPLOG*[@@@@CTS[GA@G@@@[ 881 FORMAT (/5X,'CMP JD )@@G@@ MAGNITUDE ',1PD10.3,24X,'= ',0PF7.2,' DB')*[@@@@CTS[GK@[@@@[C JE )@@G@@*[@@@@CTS[GU@ @@@[C SAVE DISTORTION OUTPUTS *[@@@@CTS[G=@[@@@[C JF )@@G@@*[@@@@CTS[G,@^@@@[ 900 IFLAG=KDISTO+2 *[@@@@CTS[G8@A@@@[ IF (IFJG )@@G@@LAG.GE.7) IFLAG=IFLAG-1 *[@@@@CTS[H]@^@@@[ LOC=LOCATE(45) *[@@@@JH )@@G@@CTS[HG@ @@@[ 910 IF (LOC.EQ.0) GO TO 1000*[@@@@CTS[HQ@C@@@[ IF (NOJI )@@G@@DPLC(LOC+5).NE.IFLAG) GO TO 920 *[@@@@CTS[H)@^@@@[ ISEQ=NODPLC(JJ )@@G@@LOC+4)*[@@@@CTS[H%@ @@@[ CVALUE(LOCO+ISEQ)=CVDIST*[@@@@CTS[H4@^@@@[JK )@@G@@ 920 LOC=NODPLC(LOC) *[@@@@CTS[H"@#@@@[ GO TO 910 *[@@@@CTS[ICJL )@@G@@@#@@@[ 1000 CONTINUE *[@@@@CTS[IM@[@@@[C *[@@@@CTS[IW@]@@@[C FINJM )@@G@@ISHED *[@@@@CTS[I&@[@@@[C *[@@@@CTS[I0@]@@@[ 2000 RETURN*[@@@@CTS[I'JN )@@G@@@]@@@[ END ___ *[@@@@CTS@\4@#@@@[ GO TO 480 *[@@@@CTS@\"JO )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@F@@@# SUBROUTINE SCALE(/XMIN/,/XMAX/,/N/,/JP )@@G@@XMINP/,/XMAXP/,/DEL/) *[@@@@CTS@@O@[@@@#C *[@@@@CTS@@Y@G@@@#C JQ )@@G@@THIS ROUTINE DETERMINES THE #OPTIMAL# SCALE TO USE FOR THE PLOT OF*[@@@@JR )@@G@@CTS@@*@^@@@#C SOME OUTPUT VARIABLE. *[@@@@CTS@@2@[@@@#C *[@@@@CTS@@/JS )@@G@@@[@@@#C *[@@@@CTS@[A@G@@@#C ADAPTED FROM ALGORITHM 463 OF #COLLECTEJT )@@G@@D ALGORITHMS OF THE CACM# *[@@@@CTS@[K@[@@@#C *[@@@@CTS@[U@A@@@#JU )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@^ INCLUDE F.KNSTNT,LIST JV )@@G@@@^@^@#@ADD,P *SPICE.SCALED *[@@@@CTS@[=*[@@@@CTS@[,*[@@@@CTS@[8@ @A@#JW )@@G@@ INTEGER XOR,PMASK(2) @ @@@AC INTEGER XOR,PMASK(2) @^@@@AJX )@@G@@ INTEGER PMASK(2) *[@@@@CTS@]]@^@@@# DIMENSION VINT(5) *[@@@@JY )@@G@@CTS@]^@A@@@# EQUIVALENCE (PMASK,RMASK) *[@@@@CTS@]G@C@@@# JZ )@@G@@DATA VINT / 1.D0,2.D0,5.D0,10.D0,20.D0 / *[@@@@CTS@]Q@ @@@# DATA EKA )@@G@@PS / 1.D-12 / *[@@@@CTS@])@C@ @# DATA PMASK /O777777777000,O000KB )@@G@@000000000/ @C@A@ DATA PMASK /O777777777000000000000000/ @C@@@AKC )@@G@@ DATA PMASK /O777777777000,O000000000000/ *[@@@@CTS@]%@A@@@#C KD )@@G@@DATA RMASK /ZFFFFFF0000000000/*[@@@@CTS@]4@[@@@#C *[@@@@CTS@]"@[@@@#KE )@@G@@C *[@@@@CTS@#C@A@@@#C... TRAP TOO-SMALL DATA SPREAD *[@@@@CTS@#MKF )@@G@@@ @@@# TMIN=RAND(XMIN,RMASK) *[@@@@CTS@#W@ @@@# TMAX=RAND(XMKG )@@G@@AX,RMASK) *[@@@@CTS@#&@A@@@# IF (TMIN.NE.TMAX) GO TO 10 *[@@@@KH )@@G@@CTS@#0@A@@@# IF (XMIN.GE.0.D0) GO TO 5 *[@@@@CTS@#'@^@@@# KI )@@G@@XMAX=.5D0*XMIN+EPS*[@@@@CTS@^^@ @@@# XMIN=1.5D0*XMIN-EPS *[@@@@KJ )@@G@@CTS@^I@#@@@# GO TO 10 *[@@@@CTS@^S@ @@@# 5 XMAX=1.5D0*XMIN+EPKK )@@G@@S *[@@@@CTS@^+@^@@@# XMIN=.5D0*XMIN-EPS*[@@@@CTS@^?@E@@@#C... KL )@@G@@FIND APPROXIMATE INTERVAL SIZE, NORMALIZED TO 1,10 *[@@@@CTS@^6@ @@@#KM )@@G@@ 10 A=(XMAX-XMIN)/DFLOAT(N) *[@@@@CTS@ @@ @B@# NAL=IFIXD(DLOG10(AKN )@@G@@)) @ @@@B NAL=IDFIX(DLOG10(A)) *[@@@@CTS@ E@ @@@# IF (A.KO )@@G@@LT.1.D0) NAL=NAL-1*[@@@@CTS@ O@A@@@# XFACT=DEXP(XLOG10*DFLOAT(NAL))KP )@@G@@*[@@@@CTS@ Y@#@@@# B=A/XFACT *[@@@@CTS@ *@C@@@#C... FIND CLOSESTKQ )@@G@@ PERMISSIBLE INTERVAL SIZE *[@@@@CTS@ 2@#@@@# DO 20 I=1,3 *[@@@@KR )@@G@@CTS@ /@B@@@# IF (B.LT.(VINT(I)+EPS)) GO TO 30 *[@@@@CTS@AA@#@@@#KS )@@G@@ 20 CONTINUE *[@@@@CTS@AK@]@@@# I=4 *[@@@@CTS@AU@ @@@#C... KT )@@G@@COMPUTE INTERVAL SIZE *[@@@@CTS@A=@^@@@# 30 DEL=VINT(I)*XFACT *[@@@@KU )@@G@@CTS@A,@#@@@# FM1=XMIN/DEL*[@@@@CTS@A8@]@@@# M1=FM1*[@@@@CTS@B]KV )@@G@@@ @@@# IF (FM1.LT.0.D0) M1=M1-1*[@@@@CTS@BG@D@@@# IF (DABS(DFLKW )@@G@@OAT(M1)+1.D0-FM1).LT.EPS) M1=M1+1 *[@@@@CTS@BQ@C@@@#C... COMPUTE NEW KX )@@G@@MAXIMUM AND MINIMUM LIMITS *[@@@@CTS@B)@ @@@# XMINP=DEL*DFLOAT(MKY )@@G@@1) *[@@@@CTS@B%@#@@@# FM2=XMAX/DEL*[@@@@CTS@B4@#@@@# M2=FM2KZ )@@G@@+1.D0 *[@@@@CTS@B"@A@@@# IF (FM2.LT.(-1.D0)) M2=M2-1 *[@@@@CTS@CCLA )@@G@@@D@@@# IF (DABS(FM2+1.D0-DFLOAT(M2)).LT.EPS) M2=M2-1 *[@@@@CTS@CMLB )@@G@@@ @@@# XMAXP=DEL*DFLOAT(M2) *[@@@@CTS@CW@#@@@# NP=M2-M1 LC )@@G@@*[@@@@CTS@C&@B@@@#C... CHECK WHETHER ANOTHER LOOP REQUIRED *[@@@@CTS@C0LD )@@G@@@ @@@# IF (NP.LE.N) GO TO 40 *[@@@@CTS@C'@]@@@# I=I+1 *[@@@@LE )@@G@@CTS@D^@#@@@# GO TO 30 *[@@@@CTS@DI@E@@@#C... DO FINAL ADJUSTMENLF )@@G@@TS AND CORRECT FOR ROUNDOFF ERROR(S)*[@@@@CTS@DS@#@@@# 40 NX=(N-NP)/2 LG )@@G@@*[@@@@CTS@D+@C@@@# XMINP=DMIN1(XMIN,XMINP-DFLOAT(NX)*DEL) *[@@@@LH )@@G@@CTS@D?@C@@@# XMAXP=DMAX1(XMAX,XMINP+DFLOAT(N)*DEL) *[@@@@CTS@D6LI )@@G@@@]@@@# RETURN*[@@@@CTS@E@@]@@@# END ___AC,C)0 (AD*1 C,D-O 1 LJ )@@G@@E[N C)D*1B(HAC:AC)*[@@@@CTS@BQ@F@@@]CS, 0,^@)CTJD(KE(OC*)D1 E8)D([F[DD(PLK )@@G@@D*)CDIC))D(DD1DD(PD*)D-DD(DE-N*[@@@@CTS@B)@B@@@]^@)^@)^@)F[HDDIE@.C- D)%LL )@@G@@*[S@@@*SDFF**[@@@@CTS@@E@D@@@] SUBROUTINE FIND(/ANAME/,/ID/,/LOC/,/LM )@@G@@IFORCE/) *[@@@@CTS@@O@[@@@]C *[@@@@CTS@@Y@G@@@]C THIS ROUTINELN )@@G@@ SEARCHES THE LIST WITH NUMBER #ID# FOR AN ELEMENT *[@@@@CTS@@*@G@@@]LO )@@G@@C WITH NAME #ANAME#. LOC IS SET TO POINT TO THE ELEMENT. IF IFORCE IS LP )@@G@@*[@@@@CTS@@2@G@@@]C NONZERO, THEN FIND EXPECTS TO HAVE TO ADD THE ELEMENLQ )@@G@@T TO THE LIST, AND*[@@@@CTS@@/@G@@@]C REPORTS A FATAL ERROR IF THE ELEMELR )@@G@@NT IS FOUND. IF SUBCIRCUIT DEFINI- *[@@@@CTS@[A@G@@@]C TION IS IN PROGRLS )@@G@@ESS (NONZERO VALUE FOR NSBCKT), THEN FIND SEARCHES THE*[@@@@CTS@[K@G@@@]LT )@@G@@C CURRENT SUBCIRCUIT DEFINITION LIST RATHER THAN THE NOMINAL ELEMENT LU )@@G@@*[@@@@CTS@[U@]@@@]C LIST. *[@@@@CTS@[=@[@@@]C *[@@@@CTS@[,@A@@@]LV )@@G@@ IMPLICIT REAL*8 (A-H,O-Z) @ @@@# INCLUDE F.TABINF,LIST LW )@@G@@@ @@@# INCLUDE F.CIRDAT,LIST @ @@@# INCLUDE F.FLAGS,LIST LX )@@G@@@ @@@# INCLUDE F.BLANK,LIST @^@#@]@@ADD,P *SPICE.FINDD *[@@@@LY )@@G@@CTS@[8*[@@@@CTS@]]*[@@@@CTS@]G*[@@@@CTS@]Q*[@@@@CTS@])*[@@@@CTS@]%*[@@@@LZ )@@G@@CTS@]4*[@@@@CTS@]"*[@@@@CTS@#C*[@@@@CTS@#M*[@@@@CTS@#W*[@@@@CTS@#&*[@@@@MA )@@G@@CTS@#0*[@@@@CTS@#'*[@@@@CTS@^^*[@@@@CTS@^I*[@@@@CTS@^S*[@@@@CTS@^+@[@@@]MB )@@G@@C *[@@@@CTS@^?@C@@@]C INDEX TO THE CONTENTS OF THE VARIOUS LISTS: MC )@@G@@*[@@@@CTS@^6@[@@@]C *[@@@@CTS@ @@ @@@]C LIST CONTENTS MD )@@G@@*[@@@@CTS@ E@ @@@]C ---- -------- *[@@@@CTS@ O@[@@@]C ME )@@G@@*[@@@@CTS@ Y@ @@@]C 1 RESISTORS *[@@@@CTS@ *@B@@@]C MF )@@G@@ 2 NONLINEAR CAPACITORS *[@@@@CTS@ 2@B@@@]C 3 MG )@@G@@ NONLINEAR INDUCTORS *[@@@@CTS@ /@A@@@]C 4 MUTUAL INDUMH )@@G@@CTORS *[@@@@CTS@AA@F@@@]C 5 NONLINEAR VOLTAGE CONTROLLED MI )@@G@@CURRENT SOURCES *[@@@@CTS@AK@F@@@]C 6 NONLINEAR VOLTAGEMJ )@@G@@ CONTROLLED VOLTAGE SOURCES *[@@@@CTS@AU@F@@@]C 7 NONLIMK )@@G@@NEAR CURRENT CONTROLLED CURRENT SOURCES *[@@@@CTS@A=@F@@@]C 8ML )@@G@@ NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES *[@@@@CTS@A,@C@@@]MM )@@G@@C 9 INDEPENDENT VOLTAGE SOURCES *[@@@@CTS@A8@C@@@]C MN )@@G@@ 10 INDEPENDENT CURRENT SOURCES *[@@@@CTS@B]@ @@@]C 11MO )@@G@@ DIODES *[@@@@CTS@BG@C@@@]C 12 BIPOLAR JUNCTION MP )@@G@@TRANSISTORS *[@@@@CTS@BQ@E@@@]C 13 JUNCTION FIELD-EFFECT TMQ )@@G@@RANSISTORS (JFETS)*[@@@@CTS@B)@G@@@]C 14 METAL-OXIDE-SEMICMR )@@G@@ONDUCTOR JUNCTION FETS (MOSFETS) *[@@@@CTS@B%@C@@@]C 15 MS )@@G@@ S-PARAMETER 2-PORT NETWORK *[@@@@CTS@B4@C@@@]C 16 Y-PARMT )@@G@@AMETER 2-PORT NETWORK *[@@@@CTS@B"@B@@@]C 17 TRANSMISSIOMU )@@G@@N LINES *[@@@@CTS@CC@ @@@]C 18 *[@@@@CTS@CMMV )@@G@@@A@@@]C 19 SUBCIRCUIT CALLS *[@@@@CTS@CW@B@@@]C 20MW )@@G@@ SUBCIRCUIT DEFINITIONS *[@@@@CTS@C&@ @@@]C 21 DIODEMX )@@G@@ MODEL*[@@@@CTS@C0@ @@@]C 22 BJT MODEL *[@@@@CTS@C'@ @@@]MY )@@G@@C 23 JFET MODEL *[@@@@CTS@D^@A@@@]C 24 MOSFEMZ )@@G@@T MODEL *[@@@@CTS@DI@ @@@]C 25-30 *[@@@@CTS@DSNA )@@G@@@ @@@]C 31 .PRINT DC *[@@@@CTS@D+@ @@@]C 32 NB )@@G@@ .PRINT TRAN*[@@@@CTS@D?@ @@@]C 33 .PRINT AC *[@@@@CTS@D6NC )@@G@@@A@@@]C 34 .PRINT NOISE *[@@@@CTS@E@@A@@@]C 35ND )@@G@@ .PRINT DISTORTION*[@@@@CTS@EE@ @@@]C 36 .PLOT DC NE )@@G@@*[@@@@CTS@EO@ @@@]C 37 .PLOT TR *[@@@@CTS@EY@ @@@]C NF )@@G@@ 38 .PLOT AC *[@@@@CTS@E*@ @@@]C 39 .PLOT NOISENG )@@G@@*[@@@@CTS@E2@A@@@]C 40 .PLOT DISTORTION *[@@@@CTS@E/@A@@@]NH )@@G@@C 41 OUTPUTS FOR DC *[@@@@CTS@FA@B@@@]C 42 NI )@@G@@ OUTPUTS FOR TRANSIENT *[@@@@CTS@FK@A@@@]C 43 OUTPUTS FORNJ )@@G@@ AC *[@@@@CTS@FU@A@@@]C 44 OUTPUTS FOR NOISE*[@@@@CTS@F=NK )@@G@@@B@@@]C 45 OUTPUTS FOR DISTORTION *[@@@@CTS@F,@ @@@]C NL )@@G@@ 46-50 *[@@@@CTS@F8@[@@@]C *[@@@@CTS@G]@#@A@] NM )@@G@@INTEGER XOR @#@@@AC INTEGER XOR *[@@@@CTS@GG@A@@@] DIMENSION LNNN )@@G@@OD(50),LVAL(50) *[@@@@CTS@GQ@C@^@] DATA LNOD / 9,13,15, 7,14,15,1NO )@@G@@4,15,12, 7, @C@@@^ DATA LNOD / 9,10,12, 7,14,15,14,15,12, 7, *[@@@@NP )@@G@@CTS@G)@C@@@] 1 17,31,26,34, 7, 7,34, 0, 5, 5, *[@@@@CTS@G%NQ )@@G@@@C@@@] 2 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, *[@@@@CTS@G4@C@@@]NR )@@G@@ 3 21,21,21,21,21,21,21,21,21,21, *[@@@@CTS@G"@C@@@] 4NS )@@G@@ 8, 8, 8, 8, 8, 0, 0, 0, 0, 0 /*[@@@@CTS@HC@C@^@] DATA LNT )@@G@@VAL / 5, 4, 4, 2, 1, 1, 1, 1, 4, 4, @C@@@^ DATA LVAL / 5, 3, 3, 2, NU )@@G@@1, 1, 1, 1, 4, 4, *[@@@@CTS@HM@C@@@] 1 3, 4, 4,11, 1, 1, NV )@@G@@9, 0, 1, 1, *[@@@@CTS@HW@C@ @] 2 19,37,17,44, 0, 0, 0, 0, NW )@@G@@0, 0, @C@@@ 2 19,38,17,44, 0, 0, 0, 0, 0, 0, *[@@@@CTS@H&NX )@@G@@@C@@@] 3 1, 1, 1, 1, 1,17,17,17,17,17, *[@@@@CTS@H0@C@@@]NY )@@G@@ 4 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 /*[@@@@CTS@H'@^@@@] NZ )@@G@@DATA NDEFIN /2H.U/*[@@@@CTS@I^@[@@@]C *[@@@@CTS@II@[@@@]C *[@@@@OA )@@G@@CTS@IS@#@@@] ANAM=ANAME *[@@@@CTS@I+@A@@@] CALL SIZMEM(IELMNTOB )@@G@@,ISIZE) *[@@@@CTS@I?@ @@@] LOCN=IELMNT+ISIZE+2 *[@@@@CTS@I6OC )@@G@@@A@@@] IF (NSBCKT.EQ.0) GO TO 10 *[@@@@CTS@J@@A@@@] LOCT=NOD )@@G@@ODPLC(ISBCKT+NSBCKT) *[@@@@CTS@JE@^@@@] LOC=NODPLC(LOCT+3)*[@@@@OE )@@G@@CTS@JO@ @@@] IF (LOC.NE.0) GO TO 20 *[@@@@CTS@JY@ @@@] NODPLCOF )@@G@@(LOCT+3)=LOCN *[@@@@CTS@J*@#@@@] GO TO 60 *[@@@@CTS@J2@^@@@]OG )@@G@@ 10 LOC=LOCATE(ID) *[@@@@CTS@J/@ @@@] IF (LOC.NE.0) GO TO 20 OH )@@G@@*[@@@@CTS@KA@^@@@] LOCATE(ID)=LOCN *[@@@@CTS@KK@#@@@] GO TO OI )@@G@@50 *[@@@@CTS@KU@[@@@]C *[@@@@CTS@K=@A@@@]C SEARCH LIST FOR A NAMOJ )@@G@@E MATCH *[@@@@CTS@K,@[@@@]C *[@@@@CTS@K8@^@@@] 20 LOCV=NODPLC(OK )@@G@@LOC+1)*[@@@@CTS@K'@^@A@]C VALV=VALUE(LOCV) *[@@@@CTS@K/@B@A@]C OL )@@G@@IF(XOR(ANAM,VALV).NE.0)GO TO 30 *[@@@@CTS@L]@C@^@] IF (XOR(ANAMOM )@@G@@,VALUE(LOCV)).NE.0) GO TO 30 @C@@@^C IF (XOR(ANAM,VALUE(LOCV)).NE.0ON )@@G@@) GO TO 30 @B@A@^ IF(ANAM.EQ.VALUE(LOCV)) GO TO 30 @B@@@A OO )@@G@@IF(ANAM.NE.VALUE(LOCV)) GO TO 30 *[@@@@CTS@LG@A@@@] IF (NSBCKT.EOP )@@G@@Q.0) GO TO 25 *[@@@@CTS@LQ@B@@@] IF (NODPLC(LOC-1).NE.ID) GO TOOQ )@@G@@ 30 *[@@@@CTS@L)@C@@@] 25 IF (NODPLC(LOC+2).EQ.NDEFIN) GO TO 200 OR )@@G@@*[@@@@CTS@L%@A@@@] IF (IFORCE.EQ.0) GO TO 200 *[@@@@CTS@L4@^@@@]OS )@@G@@ WRITE (6,26) ANAM *[@@@@CTS@L"@F@@@] 26 FORMAT('0*ERROR*: ABOVEOT )@@G@@ LINE ATTEMPTS TO REDEFINE ',A8/) *[@@@@CTS@MC@]@@@] NOGO=1*[@@@@OU )@@G@@CTS@MM@A@@@] 30 IF (NODPLC(LOC).EQ.0) GO TO 40*[@@@@CTS@MW@^@@@] OV )@@G@@LOC=NODPLC(LOC) *[@@@@CTS@M&@#@@@] GO TO 20 *[@@@@CTS@M0@[@@@]OW )@@G@@C *[@@@@CTS@M'@A@@@]C RESERVE SPACE FOR THIS ELEMENT *[@@@@CTS@N^OX )@@G@@@[@@@]C *[@@@@CTS@NI@^@@@] 40 NODPLC(LOC)=LOCN *[@@@@CTS@NS@A@@@]OY )@@G@@ IF (NSBCKT.NE.0) GO TO 60 *[@@@@CTS@N+@ @@@] 50 JELCNT(ID)=JOZ )@@G@@ELCNT(ID)+1 *[@@@@CTS@N?@#@@@] 60 LOC=LOCN *[@@@@CTS@N6@ @@@] PA )@@G@@LTMP=((LNOD(ID)+1)/2)*2 *[@@@@CTS@O@@ @@@] LOCV=(LOC+LTMP+1)/2 PB )@@G@@*[@@@@CTS@OE@ @@@] KTMP=LTMP+2*LVAL(ID) *[@@@@CTS@OO@ @@@] PC )@@G@@CALL EXTMEM(IELMNT,KTMP)*[@@@@CTS@OY@]@@@] IPTR=0*[@@@@CTS@O*@A@@@]PD )@@G@@ IF (NSBCKT.EQ.0) GO TO 80 *[@@@@CTS@O2@#@@@] IPTR=ID PE )@@G@@*[@@@@CTS@O/@^@@@] 80 NODPLC(LOC-1)=IPTR*[@@@@CTS@PA@^@@@] NODPLCPF )@@G@@(LOC)=0 *[@@@@CTS@PK@^@@@] NODPLC(LOC+1)=LOCV*[@@@@CTS@PU@^@@@]PG )@@G@@ VALUE(LOCV)=ANAM *[@@@@CTS@P=@[@@@]C *[@@@@CTS@P,@^@@@]C BACPH )@@G@@KGROUND STORAGE *[@@@@CTS@P8@[@@@]C *[@@@@CTS@Q]@ @@@] 100 NODPLCPI )@@G@@(LOC+2)=NDEFIN *[@@@@CTS@QG@^@@@] NWORD=LNOD(ID)-4 *[@@@@CTS@QQPJ )@@G@@@A@@@] IF (NWORD.LT.1) GO TO 120 *[@@@@CTS@QW@A@A@]C CALL ZPK )@@G@@ERO4(NODPLC,LOC+3,NWORD)*[@@@@CTS@Q)@B@@@] CALL ZERO4(NODPLC(LOC+3)PL )@@G@@,NWORD) *[@@@@CTS@Q%@^@@@] 120 NWORD=LVAL(ID)-1 *[@@@@CTS@Q4@A@@@]PM )@@G@@ IF (NWORD.LT.1) GO TO 200 *[@@@@CTS@Q8@A@A@]C CALL ZERO8(VPN )@@G@@ALUE,LOCV+1,NWORD)*[@@@@CTS@Q"@B@@@] CALL ZERO8(VALUE(LOCV+1),NWORDPO )@@G@@) *[@@@@CTS@RC@[@@@]C *[@@@@CTS@RM@]@@@]C EXIT *[@@@@CTS@RWPP )@@G@@@[@@@]C *[@@@@CTS@R&@#@@@] 200 CONTINUE *[@@@@CTS@R0@]@@@] PQ )@@G@@RETURN*[@@@@CTS@R'@]@@@] END ___@@[^@)^@)*[S@@@*SDFF*@^@[@@ PR )@@G@@PROGRAM DCTRAN @[@[@@C @G@[@@C THIS ROUTINE CONTROLS THE DC TPS )@@G@@RANSFER CURVE, DC OPERATING POINT, @G@[@@C AND TRANSIENT ANALYSES. THEPT )@@G@@ VARIABLES MODE AND MODEDC (DEFINED BELOW)@C@[@@C DETERMINE EXACTLY WHICPU )@@G@@H ANALYSIS IS PERFORMED.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,IPV )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOPW )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSPX )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOPY )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4PZ )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@QA )@@G@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3),ATIMEQB )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@QC )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, QD )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONQE )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1QF )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2QG )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,QH )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLQI )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINQJ )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @F@[@@QK )@@G@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@QL )@@G@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,QM )@@G@@@G@[@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPUQN )@@G@@, @C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@[@@ QO )@@G@@COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@QP )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAQQ )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ QR )@@G@@DIMENSION SUBTIT(4,2) @A@[@@ DIMENSION AVHDR(3),AVFRM(4) @D@[@@QS )@@G@@ DATA AVHDR / 8H( (2X,A4, 8H,3X,A7,3, 5HX)//) / @F@[@@ DATA AQT )@@G@@VFRM / 8H( (1H ,A, 8H1,I3,1H), 8H,F10.4,3, 4HX)/) / @C@[@@ DATA AQU )@@G@@NODE, AVLTG / 4HNODE, 7HVOLTAGE / @G@[@@ DATA SUBTIT / 8HSMALL SIQV )@@G@@, 8HGNAL BIA, 8HS SOLUTI, 8HON , @G@[@@ 1 8HINQW )@@G@@ITIAL , 8HTRANSIEN, 8HT SOLUTI, 8HON / @^@[@@ DATA LPRN /1QX )@@G@@H(/ @[@[@@C @G@[@@C THE VARIABLES *MODE*, *MODEDC*, AND *INITQY )@@G@@F* ARE USED BY SPICE TO @G@[@@C KEEP TRACK OF THE STATE OF THE ANALYSIS.QZ )@@G@@ THE VALUES OF THESE FLAGS @D@[@@C (AND THE CORRESPONDING MEANINGS) ARA )@@G@@RE AS FOLLOWS: @[@[@@C @A@[@@C FLAG VALUE MEANING RB )@@G@@@A@[@@C ---- ----- ------- @[@[@@C @G@[@@C MODRC )@@G@@E 1 DC ANALYSIS (SUBTYPE DEFINED BY *MODEDC*) @C@[@@C RD )@@G@@ 2 TRANSIENT ANALYSIS @D@[@@C 3 RE )@@G@@ AC ANALYSIS (SMALL SIGNAL) @[@[@@C @C@[@@C MODEDC 1 RF )@@G@@ DC OPERATING POINT @G@[@@C 2 INITIAL OPERATINRG )@@G@@G POINT FOR TRANSIENT ANALYSIS@E@[@@C 3 DC TRANSFERH )@@G@@R CURVE COMPUTATION @[@[@@C @G@[@@C INITF 1 CONVRI )@@G@@ERGE WITH ^OFF^ DEVICES ALLOWED TO FLOAT @D@[@@C 2 RJ )@@G@@ INITIALIZE JUNCTION VOLTAGES@F@[@@C 3 CONVERGE WRK )@@G@@ITH ^OFF^ DEVICES HELD ^OFF^ @E@[@@C 4 STORE SMALRL )@@G@@L-SIGNAL PARAMETERS AWAY@F@[@@C 5 FIRST TIMEPOINT RM )@@G@@IN TRANSIENT ANALYSIS @B@[@@C 6 PREDICTION STEP RN )@@G@@@[@[@@C @D@[@@C NOTE: *MODEDC* IS ONLY SIGNIFICANT IF *MODE* = 1. RO )@@G@@@[@[@@C @[@[@@C @#@[@@C INITIALIZE @[@[@@C @^@[@@ RP )@@G@@CALL SECOND(T1) @#@[@@ LOCTIM=5 @^@[@@C... SET UP FORMAT RQ )@@G@@@ @[@@ NVPRLN=4+(LWIDTH-72)/19 @A@[@@ NVPRLN=MIN0(NVPRLN,NCNODRR )@@G@@S-1) @]@[@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVFRM,IPOS)@]@[@@RS )@@G@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVHDR,IPOS)@^@[@@C... ALLOCART )@@G@@TE STORAGE @ @[@@ IF (MODE.EQ.2) GO TO 5 @A@[@@ CALL GETMEM(RU )@@G@@LVNIM1,NSTOP) @ @[@@ CALL GETMEM(NDIAG,NSTOP)@B@[@@ CALL GRV )@@G@@ETMEM(LVN,NSTOP+NSTOP+NUT+NLT)@ @[@@ CALL GETMEM(LX0,NXTRM) @A@[@@RW )@@G@@ IF (MODEDC.NE.3) GO TO 15 @ @[@@ 5 CALL GETMEM(LX1,NXTRM) RX )@@G@@@ @[@@ CALL GETMEM(LX2,NXTRM) @ @[@@ IF (MODE.EQ.2) GO TO 7 RY )@@G@@@A@[@@ IF (MODEDC.EQ.3) GO TO 10 @ @[@@ 7 CALL GETMEM(LX3,NXRZ )@@G@@TRM) @ @[@@ 10 IF (MODE.NE.2) GO TO 12 @^@[@@ CALL GETMEM(LTD,0)SA )@@G@@@ @[@@ 12 CALL GETMEM(LOUTPT,0) @#@[@@ 15 CALL CRUNCH @^@[@@ SB )@@G@@LYNL=LVN+NSTOP @^@[@@ LYU=LYNL+NSTOP @#@[@@ LYL=LYU+NUT SC )@@G@@@ @[@@ 20 IF (MODE.EQ.2) GO TO 500@#@[@@ TIME=0.0 @#@[@@ SD )@@G@@AG(1)=0.0 @#@[@@ CALL SORUPD @A@[@@ IF (MODEDC.EQ.3) GO TO 3SE )@@G@@00 @[@[@@C @A@[@@C .... SINGLE POINT DC ANALYSIS @[@[@@C SF )@@G@@@[@[@@C @ @[@@C COMPUTE DC OPERATING POINT @[@[@@C @#@[@@ 100 SG )@@G@@INITF=2 @^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(6)=RSTATS(6SH )@@G@@)+ITERNO @A@[@@ IF (IGOOF.NE.0) GO TO 150 @A@[@@ IF (MOSI )@@G@@DEDC.NE.1) GO TO 120 @#@[@@ INITF=4 @#@[@@ CALL DIODE SJ )@@G@@@#@[@@ CALL BJT @#@[@@ CALL JFET @#@[@@ CALL MOSFET SK )@@G@@@[@[@@C @^@[@@C PRINT OPERATING POINT@[@[@@C @G@[@@ 120 IF ((MSL )@@G@@ODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @C@[@@ SM )@@G@@CALL TITLE(-1,LWIDTH,1,SUBTIT(1,MODEDC)) @C@[@@ WRITE (6,AVHDR) (ASN )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+SO )@@G@@I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ GO TO 1000 @[@[@@C @#@[@@SP )@@G@@C NO CONVERGENCE @[@[@@C @]@[@@ 150 NOGO=1@^@[@@ WRITE (6,151SQ )@@G@@) @G@[@@ 151 FORMAT(^1*ERROR*: NO CONVERGENCE IN DC ANALYSIS^/^0LASR )@@G@@ST NODE VOL^@^@[@@ 1 ^TAGES:^/) @C@[@@ WRITE (6,AVHDR) (ASS )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+ST )@@G@@I),VALUE(LVNIM1+I),I=2,NUNODS)@#@[@@ GO TO 1000 @[@[@@C @ @[@@SU )@@G@@C .... DC TRANSFER CURVES @[@[@@C @ @[@@ 300 NUMOUT=JELCNT(41)+SV )@@G@@1 @ @[@@ LOCS=NODPLC(ITCELM+1) @ @[@@ TEMVAL=VALUE(LOCS+SW )@@G@@1) @#@[@@ DELTA=TCINCR@#@[@@ DO 310 I=1,7@^@[@@ DELOLDSX )@@G@@(I)=DELTA @#@[@@ 310 CONTINUE @ @[@@ VALUE(LOCS+1)=TCSTAR SY )@@G@@@#@[@@ ICALC=0 @#@[@@ LOCTIM=3 @#@[@@ 340 INITF=2 SZ )@@G@@@^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(4)=RSTATS(4)+ITERNO TA )@@G@@@D@[@@ CALL COPY8(VALUE(LX0+1),VALUE(LX1+1),NXTRM) @D@[@@ TB )@@G@@CALL COPY8(VALUE(LX0+1),VALUE(LX2+1),NXTRM) @A@[@@ IF (IGOOF.NETC )@@G@@.0) GO TO 450 @#@[@@ GO TO 360 @#@[@@ 350 CALL GETCJE @D@[@@TD )@@G@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 460 @#@[@@ INITF=TE )@@G@@6 @^@[@@ CALL ITER8(ITL2) @A@[@@ RSTATS(4)=RSTATS(4)+ITERTF )@@G@@NO @A@[@@ IF (IGOOF.NE.0) GO TO 340 @[@[@@C @#@[@@C STOTG )@@G@@RE OUTPUTS @[@[@@C @A@[@@ 360 CALL EXTMEM(LOUTPT,NUMOUT) @ @[@@TH )@@G@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+1 @A@[@@ TI )@@G@@VALUE(LOCO+1)=VALUE(LOCS+1) @^@[@@ LOC=LOCATE(41) @ @[@@ 370 TJ )@@G@@IF (LOC.EQ.0) GO TO 400 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO 380 TK )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) TL )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LVNIM1+TM )@@G@@NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ TN )@@G@@GO TO 370 @^@[@@ 380 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(IPTR+6TO )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VALUE(LTP )@@G@@VNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 370 @[@[@@TQ )@@G@@C @ @[@@C INCREMENT SOURCE VALUE @[@[@@C @A@[@@ 400 IF (ICTR )@@G@@ALC.GE.ICVFLG) GO TO 490@ @[@@ CALL PTRMEM(LX2,ITEMP) @ @[@@ TS )@@G@@CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LX1) @ @[@@ TT )@@G@@CALL PTRMEM(ITEMP,LX0) @C@[@@ VALUE(LOCS+1)=TCSTAR+FLOAT(ICALC)*DETU )@@G@@LTA @#@[@@ GO TO 350 @[@[@@C @#@[@@C NO CONVERGENCE @[@[@@TV )@@G@@C @ @[@@ 450 LOCE=NODPLC(ITCELM+1) @C@[@@ WRITE (6,451) VALUTW )@@G@@E(LOCE),VALUE(LOCS+1) @G@[@@ 451 FORMAT(^1*ERROR*: NO CONVERGENCE INTX )@@G@@ DC TRANSFER CURVES AT ^,A8, @C@[@@ 1 ^ = ^,1PE10.3/^0LAST NODE VTY )@@G@@OLTAGES:^/) @C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@TZ )@@G@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)UA )@@G@@@#@[@@ GO TO 470 @^@[@@ 460 WRITE (6,461) @G@[@@ 461 FORMATUB )@@G@@(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... ANALYSIS STOPPED^/)@]@[@@ 470 UC )@@G@@NOGO=1@[@[@@C @A@[@@C FINISHED WITH DC TRANSFER CURVES @[@[@@C UD )@@G@@@ @[@@ 490 VALUE(LOCS+1)=TEMVAL @#@[@@ GO TO 1000 @[@[@@C UE )@@G@@@ @[@@C .... TRANSIENT ANALYSIS @[@[@@C @ @[@@ 500 NUMOUT=JELCNUF )@@G@@T(42)+1 @#@[@@ INITF=5 @]@[@@ IORD=1@#@[@@ LOCTIMUG )@@G@@=9 @#@[@@ ICALC=0 @#@[@@ NUMTP=0 @#@[@@ NUMRTPUH )@@G@@=0 @#@[@@ NUMNIT=0 @#@[@@ TIME=0.0 @#@[@@ IBKFLGUI )@@G@@=1 @#@[@@ NBKPT=1 @#@[@@ DELTA=TSTEP @#@[@@ DO 510UJ )@@G@@ I=1,7@^@[@@ DELOLD(I)=DELTA @#@[@@ 510 CONTINUE @ @[@@ UK )@@G@@DELMIN=1.0E-9*TSTEP @B@[@@ IF (IDEBUG(20).NE.0) PAUSE 00001 UL )@@G@@@#@[@@ GO TO 650 @[@[@@C @E@[@@C INCREMENT TIME, UPDATE SOURUM )@@G@@CES, AND SOLVE NEXT TIMEPOINT @[@[@@C @^@[@@ 600 TIME=TIME+DELTA UN )@@G@@@#@[@@ CALL SORUPD @ @[@@ IF (NOGO.NE.0) GO TO 950@#@[@@ UO )@@G@@CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 920 UP )@@G@@@A@[@@ IF (NUMNIT.GE.ITL5) GO TO 905 @#@[@@ CALL COMCOF @ @[@@UQ )@@G@@ IF (INITF.NE.5) INITF=6 @#@[@@ ITRLIM=ITL4 @D@[@@ IF ((NUR )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) ITRLIM=ITL1 @^@[@@ CALL ITER8(ITRLIM)US )@@G@@@ @[@@ NUMNIT=NUMNIT+ITERNO @^@[@@ NUMTP=NUMTP+1 @A@[@@UT )@@G@@ IF (NUMTP.NE.1) GO TO 605 @D@[@@ CALL COPY8(VALUE(LX1+1),UU )@@G@@VALUE(LX2+1),NXTRM) @D@[@@ CALL COPY8(VALUE(LX1+1),VALUE(LX3+1)UV )@@G@@,NXTRM) @A@[@@ 605 IF (IGOOF.EQ.0) GO TO 610 @#@[@@ JORD=IUW )@@G@@ORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMEM(LX7) UX )@@G@@@B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ IF (JORD.GE.UY )@@G@@3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METHOD.NE.1)) CUZ )@@G@@ALL CLRMEM(LX4) @#@[@@ IGOOF=0 @^@[@@ TIME=TIME-DELTA VA )@@G@@@^@[@@ DELTA=DELTA/8.0 @#@[@@ GO TO 620 @#@[@@ 610 DELNEWVB )@@G@@=DELTA@A@[@@ IF (NUMTP.EQ.1) GO TO 630 @^@[@@ CALL TRUNC(DVC )@@G@@ELNEW)@B@[@@ IF (DELNEW.GE.(0.9*DELTA)) GO TO 630@^@[@@ TIME=TVD )@@G@@IME-DELTA @#@[@@ DELTA=DELNEW@^@[@@ 620 NUMRTP=NUMRTP+1 @#@[@@VE )@@G@@ IBKFLG=0 @^@[@@ DELOLD(1)=DELTA @A@[@@ IF (DELTA.GEVF )@@G@@.DELMIN) GO TO 600@^@[@@ TIME=TIME+DELTA @#@[@@ GO TO 900 VG )@@G@@@B@[@@ 630 CALL COPY8(DELOLD(1),DELOLD(2),6) @#@[@@ DELTA=DELNEWVH )@@G@@@^@[@@ DELOLD(1)=DELTA @[@[@@C @B@[@@C DETERMINE ORDER OF INVI )@@G@@TEGRATION METHOD @[@[@@C @B@[@@C... SKIP IF TRAPEZOIDAL ALGORITHM VJ )@@G@@USED @D@[@@ IF ((METHOD.EQ.1).AND.(IORD.EQ.2)) GO TO 650 @A@[@@VK )@@G@@ IF (NUMTP.EQ.1) GO TO 650 @#@[@@ ORDRAT=1.05 @ @[@@ VL )@@G@@IF (IORD.GT.1) GO TO 635@]@[@@ IORD=2@^@[@@ CALL TRUNC(DELNEW)VM )@@G@@@]@[@@ IORD=1@C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 VN )@@G@@@A@[@@ IF (MAXORD.LE.1) GO TO 650 @]@[@@ IORD=2@A@[@@ VO )@@G@@IF (METHOD.EQ.1) GO TO 650 @ @[@@ CALL GETMEM(LX4,NXTRM) @#@[@@VP )@@G@@ GO TO 650 @A@[@@ 635 IF (IORD.LT.MAXORD) GO TO 640 @#@[@@ VQ )@@G@@IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=IORD+1 @C@[@@VR )@@G@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 @#@[@@ GO TO 642 VS )@@G@@@#@[@@ 640 IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=IVT )@@G@@ORD+1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 645 @#@[@@ 642 VU )@@G@@IORD=IORD-1 @B@[@@ IF (IORD.EQ.1) CALL CLRMEM(LX4) @B@[@@ VV )@@G@@IF (IORD.EQ.2) CALL CLRMEM(LX5) @B@[@@ IF (IORD.EQ.3) CALL CLRMVW )@@G@@EM(LX6) @B@[@@ IF (IORD.EQ.4) CALL CLRMEM(LX7) @#@[@@ VX )@@G@@GO TO 650 @#@[@@ 645 IORD=IORD+1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@VY )@@G@@ IORD=IORD-1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 VZ )@@G@@@#@[@@ IORD=IORD+1 @C@[@@ IF (IORD.EQ.2) CALL GETMEM(LX4,NXTRMWA )@@G@@) @C@[@@ IF (IORD.EQ.3) CALL GETMEM(LX5,NXTRM) @C@[@@ WB )@@G@@IF (IORD.EQ.4) CALL GETMEM(LX6,NXTRM) @C@[@@ IF (IORD.EQ.5) CALWC )@@G@@L GETMEM(LX7,NXTRM) @[@[@@C @#@[@@C STORE OUTPUTS @[@[@@C WD )@@G@@@C@[@@ 650 IF ((TIME+DELTA).LT.0.99*TSTART) GO TO 685@D@[@@ IF ((NWE )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) GO TO 685 @A@[@@ CALL EXTMEM(LOUTPTWF )@@G@@,NUMOUT) @ @[@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+WG )@@G@@1 @^@[@@ VALUE(LOCO+1)=TIME@^@[@@ LOC=LOCATE(42) @ @[@@WH )@@G@@ 670 IF (LOC.EQ.0) GO TO 685 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO WI )@@G@@680 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3WJ )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LWK )@@G@@VNIM1+NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@WL )@@G@@ GO TO 670 @^@[@@ 680 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(WM )@@G@@IPTR+6) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VWN )@@G@@ALUE(LVNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 670 WO )@@G@@@[@[@@C @B@[@@C UPDATE TRANSMISSION LINE DELAY TABLE @[@[@@C WP )@@G@@@A@[@@ 685 IF (JELCNT(17).EQ.0) GO TO 694@ @[@@ CALL SIZMEM(LTD,LTWQ )@@G@@DSIZ) @^@[@@ NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LE.3) GO TO 68WR )@@G@@9 @^@[@@ BAKTIM=TIME-TDMAX @A@[@@ IF (BAKTIM.LT.0.0) GO TOWS )@@G@@ 689 @#@[@@ LCNTR=0 @#@[@@ LTEMP=LTD @^@[@@ DO 686WT )@@G@@ I=1,NUMTD @C@[@@ IF (VALUE(LTEMP+1).GE.BAKTIM) GO TO 687 @^@[@@WU )@@G@@ LTEMP=LTEMP+NTLIN @^@[@@ LCNTR=LCNTR+1 @#@[@@ 686 CONTINWV )@@G@@UE @#@[@@ GO TO 689 @A@[@@ 687 IF (LCNTR.LE.2) GO TO 689 WW )@@G@@@^@[@@ LCNTR=LCNTR-2 @^@[@@ NWORDS=LCNTR*NTLIN@ @[@@ WX )@@G@@LTEMP=LTEMP-NTLIN-NTLIN @E@[@@ CALL COPY8(VALUE(LTEMP+1),VALUE(LTD+WY )@@G@@1),LTDSIZ-NWORDS) @ @[@@ CALL RELMEM(LTD,NWORDS) @ @[@@ CALL SWZ )@@G@@IZMEM(LTD,LTDSIZ) @ @[@@ 689 CALL EXTMEM(LTD,NTLIN) @^@[@@ LTDPTRXA )@@G@@=LTD+LTDSIZ @ @[@@ VALUE(LTDPTR+1)=TIME @^@[@@ LOC=LOCATE(1XB )@@G@@7) @ @[@@ 690 IF (LOC.EQ.0) GO TO 693 @^@[@@ LOCV=NODPLC(LOC+1)XC )@@G@@@^@[@@ Z0=VALUE(LOCV+1) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@XD )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@XE )@@G@@ NODE4=NODPLC(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ XF )@@G@@IBR2=NODPLC(LOC+9)@A@[@@ LSPOT=NODPLC(LOC+30)+LTDPTR @D@[@@ XG )@@G@@IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) GO TO 691 @E@[@@ VALUE(LSPOT)XH )@@G@@=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VALUE(LVNIM1+IXI )@@G@@BR2)*Z0 @E@[@@ VALUE(LSPOT+1)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+XJ )@@G@@NODE2)@A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ GO TO 692 XK )@@G@@@D@[@@ 691 VALUE(LSPOT)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 @D@[@@ XL )@@G@@VALUE(LSPOT+1)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @^@[@@ 692 LOC=NODPLC(LXM )@@G@@OC) @#@[@@ GO TO 690 @[@[@@C @G@[@@C ADD TWO *FAKE* BACKPOXN )@@G@@INTS TO LTD FOR INTERPOLATION NEAR TIME=0.0 @[@[@@C @A@[@@ 693 XO )@@G@@IF (NUMTD.NE.0) GO TO 694 @A@[@@ CALL EXTMEM(LTD,NTLIN+NTLIN) XP )@@G@@@E@[@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+NTLIN+1),NTLIN) @E@[@@XQ )@@G@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+2*NTLIN+1),NTLIN) @A@[@@ XR )@@G@@VALUE(LTD+2*NTLIN+1)=TIME @A@[@@ VALUE(LTD+NTLIN+1)=TIME-DELTA XS )@@G@@@A@[@@ VALUE(LTD+1)=TIME-DELTA-DELTA @[@[@@C @ @[@@C ROTATE STXT )@@G@@ATE VECTOR STORAGE@[@[@@C @C@[@@ 694 GO TO (710,706,702,698,696,696XU )@@G@@), IORD @ @[@@ 696 CALL PTRMEM(LX7,ITEMP) @ @[@@ CALL PTRMEM(XV )@@G@@LX6,LX7) @#@[@@ GO TO 700 @ @[@@ 698 CALL PTRMEM(LX6,ITEMP) XW )@@G@@@ @[@@ 700 CALL PTRMEM(LX5,LX6) @#@[@@ GO TO 704 @ @[@@ 702 XX )@@G@@CALL PTRMEM(LX5,ITEMP) @ @[@@ 704 CALL PTRMEM(LX4,LX5) @#@[@@ XY )@@G@@GO TO 708 @A@[@@ 706 IF (METHOD.EQ.1) GO TO 710 @ @[@@ CALL PXZ )@@G@@TRMEM(LX4,ITEMP) @ @[@@ 708 CALL PTRMEM(LX3,LX4) @#@[@@ GO TO YA )@@G@@712 @ @[@@ 710 CALL PTRMEM(LX3,ITEMP) @ @[@@ 712 CALL PTRMEM(LX2,LXYB )@@G@@3) @ @[@@ CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LXYC )@@G@@1) @ @[@@ CALL PTRMEM(ITEMP,LX0) @[@[@@C @^@[@@C CHECK BREYD )@@G@@AKPOINTS @[@[@@C @A@[@@ 750 IF (IBKFLG.EQ.0) GO TO 760 @#@[@@YE )@@G@@ JORD=IORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMYF )@@G@@EM(LX7) @B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ YG )@@G@@IF (JORD.GE.3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METYH )@@G@@HOD.NE.1)) CALL CLRMEM(LX4) @#@[@@ IBKFLG=0 @^@[@@ NBKPT=YI )@@G@@NBKPT+1 @A@[@@ IF (NBKPT.GT.NUMBKP) GO TO 950@C@[@@ TEMP=AYJ )@@G@@MIN1(TSTEP,VALUE(LSBKPT+NBKPT)-TIME)@B@[@@ DELTA=AMIN1(DELTA,0.1*TEYK )@@G@@MP,DELMAX) @B@[@@ IF (NUMTP.EQ.0) DELTA=DELTA/10.0 @^@[@@ YL )@@G@@DELOLD(1)=DELTA @#@[@@ GO TO 600 @A@[@@ 760 DEL1=VALUE(LSBKPT+YM )@@G@@NBKPT)-TIME @B@[@@ IF ((1.01*DELTA).LE.DEL1) GO TO 600 @#@[@@ YN )@@G@@IBKFLG=1 @#@[@@ DELTA=DEL1 @^@[@@ DELOLD(1)=DELTA @#@[@@YO )@@G@@ GO TO 600 @[@[@@C @ @[@@C TRANSIENT ANALYSIS FAILED @[@[@@YP )@@G@@C @^@[@@ 900 WRITE (6,901) @G@[@@ 901 FORMAT(^1*ERROR*: INTERYQ )@@G@@NAL TIMESTEP TOO SMALL IN TRANSIENT ANALYS@]@[@@ 1IS^/) @#@[@@ YR )@@G@@GO TO 910 @^@[@@ 905 WRITE (6,906) @G@[@@ 906 FORMAT(^1*ERROR*: YS )@@G@@ ITERATION LIMIT EXCEEDED IN TRANSIENT ANALYSIS^@]@[@@ 1/) @B@[@@YT )@@G@@ 910 WRITE (6,911) TIME,DELTA,NUMNIT @G@[@@ 911 FORMAT(1H0,10X,^TIYU )@@G@@ME = ^,1PE12.5,^; DELTA = ^,E12.5,^; NUMNIT = @]@[@@ 1^,I6/)@^@[@@YV )@@G@@ WRITE (6,916) @B@[@@ 916 FORMAT(1H0/^0LAST NODE VOLTAGES:^/) YW )@@G@@@C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE YX )@@G@@(6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ YY )@@G@@GO TO 930 @^@[@@ 920 WRITE (6,921) TIME@G@[@@ 921 FORMAT(^0*ERROR*: YZ )@@G@@ CPU TIME LIMIT EXCEEDED IN TRANSIENT ANALYSIS ^@A@[@@ 1 ^AT TIME ZA )@@G@@= ^,1PE13.6/) @]@[@@ 930 NOGO=1@[@[@@C @A@[@@C FINISHED WITH TZB )@@G@@RANSIENT ANALYSIS @[@[@@C @A@[@@ 950 RSTATS(10)=RSTATS(10)+NUMNIT ZC )@@G@@@A@[@@ RSTATS(30)=RSTATS(30)+NUMTP @A@[@@ RSTATS(31)=RSTATS(ZD )@@G@@31)+NUMRTP @A@[@@ RSTATS(32)=RSTATS(32)+NUMNIT @B@[@@ IF (IDZE )@@G@@EBUG(20).NE.0) PAUSE 00002 @[@[@@C @ @[@@C RETURN UNNEEDED MEMORZF )@@G@@Y @[@[@@C @A@[@@ 1000 IF (MODE.EQ.2) GO TO 1010 @A@[@@ ZG )@@G@@IF (MODEDC.NE.3) GO TO 1100 @ @[@@ 1010 CALL CLRMEM(LVNIM1) @^@[@@ZH )@@G@@ CALL CLRMEM(LX0) @^@[@@ CALL CLRMEM(NDIAG)@^@[@@ CALL CZI )@@G@@LRMEM(LVN) @^@[@@ CALL CLRMEM(LX1) @^@[@@ CALL CLRMEM(LX2) ZJ )@@G@@@D@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.3)) GO TO 1100 @^@[@@ ZK )@@G@@CALL CLRMEM(LX3) @A@[@@ IF (MODE.EQ.1) GO TO 1100 @^@[@@ ZL )@@G@@CALL CLRMEM(LTD) @A@[@@ IF (IORD.EQ.1) GO TO 1100 @A@[@@ ZM )@@G@@IF (METHOD.EQ.1) GO TO 1100 @^@[@@ CALL CLRMEM(LX4) @A@[@@ ZN )@@G@@IF (IORD.EQ.2) GO TO 1100 @^@[@@ CALL CLRMEM(LX5) @A@[@@ ZO )@@G@@IF (IORD.EQ.3) GO TO 1100 @^@[@@ CALL CLRMEM(LX6) @A@[@@ ZP )@@G@@IF (IORD.EQ.4) GO TO 1100 @^@[@@ CALL CLRMEM(LX7) @^@[@@ 1100 ZQ )@@G@@CALL SECOND(T2) @B@[@@ RSTATS(LOCTIM)=RSTATS(LOCTIM)+T2-T1 @]@[@@ZR )@@G@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE COMCOF @[@[@@C ZS )@@G@@@G@[@@C THIS ROUTINE CALCULATES THE TIMESTEP-DEPENDENT TERMS USED INZT )@@G@@ THE @^@[@@C NUMERICAL INTEGRATION.@[@[@@C @G@[@@ COMMON /TABIZU )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEZV )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2ZW )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ZX )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, ZY )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,ZZ )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMAA )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEAB )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOAC )@@G@@SOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTAD )@@G@@O,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,AE )@@G@@IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEAF )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEAG )@@G@@(1),NODPLC(1),CVALUE(1))@ @[@@ DIMENSION GMAT(7,7) @[@[@@C AH )@@G@@@E@[@@C COMPUTE COEFFICIENTS FOR PARTICULAR INTEGRATION METHOD @[@[@@AI )@@G@@C @ @[@@ IF (METHOD.NE.1) GO TO 5@ @[@@ IF (IORD.EQ.1) GO AJ )@@G@@TO 5 @^@[@@C... TRAPEZOIDAL METHOD@^@[@@ AG(1)=2.0/DELTA @#@[@@AK )@@G@@ GO TO 200 @[@[@@C @A@[@@C CONSTRUCT GEAR COEFFICIENT MATRIXAL )@@G@@@[@[@@C @#@[@@ 5 ISTOP=IORD+1@ @[@@ CALL ZERO8(AG,ISTOP) AM )@@G@@@#@[@@ AG(2)=-1.0 @^@[@@ DO 10 I=1,ISTOP @^@[@@ GMAT(1AN )@@G@@,I)=1.0 @#@[@@ 10 CONTINUE @^@[@@ DO 20 I=2,ISTOP @^@[@@AO )@@G@@ GMAT(I,1)=0.0 @#@[@@ 20 CONTINUE @#@[@@ ARG=0.0 AP )@@G@@@^@[@@ DO 40 I=2,ISTOP @ @[@@ ARG=ARG+DELOLD(I-1) @#@[@@AQ )@@G@@ ARG1=1.0 @^@[@@ DO 30 J=2,ISTOP @^@[@@ ARG1=ARG1*ARAR )@@G@@G @^@[@@ GMAT(J,I)=ARG1 @#@[@@ 30 CONTINUE @#@[@@ 40 AS )@@G@@CONTINUE @[@[@@C @A@[@@C SOLVE FOR GEAR COEFFICIENTS AG(*)@[@[@@AT )@@G@@C @[@[@@C @^@[@@C LU DECOMPOSITION @[@[@@C @^@[@@ AU )@@G@@DO 70 I=2,ISTOP @#@[@@ JSTART=I+1 @A@[@@ IF (JSTART.GT.ISTOAV )@@G@@P) GO TO 70 @ @[@@ DO 60 J=JSTART,ISTOP @A@[@@ GMAT(J,I)=GMAW )@@G@@AT(J,I)/GMAT(I,I) @ @[@@ DO 50 K=JSTART,ISTOP @C@[@@ GMAT(JAX )@@G@@,K)=GMAT(J,K)-GMAT(J,I)*GMAT(I,K) @#@[@@ 50 CONTINUE @#@[@@ 60 AY )@@G@@CONTINUE @#@[@@ 70 CONTINUE @[@[@@C @^@[@@C FORWARD SUBSTITAZ )@@G@@UTION @[@[@@C @^@[@@ DO 90 I=2,ISTOP @#@[@@ JSTART=I+1 BA )@@G@@@A@[@@ IF (JSTART.GT.ISTOP) GO TO 90 @ @[@@ DO 80 J=JSTART,ISTBB )@@G@@OP @A@[@@ AG(J)=AG(J)-GMAT(J,I)*AG(I) @#@[@@ 80 CONTINUE BC )@@G@@@#@[@@ 90 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@BD )@@G@@C @C@[@@ AG(ISTOP)=AG(ISTOP)/GMAT(ISTOP,ISTOP) @#@[@@ BE )@@G@@IR=ISTOP @^@[@@ DO 110 I=2,ISTOP @#@[@@ JSTART=IR @#@[@@BF )@@G@@ IR=IR-1 @ @[@@ DO 100 J=JSTART,ISTOP @A@[@@ AG(IR)BG )@@G@@=AG(IR)-GMAT(IR,J)*AG(J)@#@[@@ 100 CONTINUE @A@[@@ AG(IR)=AG(IRBH )@@G@@)/GMAT(IR,IR) @#@[@@ 110 CONTINUE @[@[@@C @]@[@@C FINISHED BI )@@G@@@[@[@@C @]@[@@ 200 RETURN@]@[@@ END @ @[@@ SUBROUTINE TBJ )@@G@@RUNC(DELNEW)@[@[@@C @F@[@@C THIS ROUTINE DETERMINES THE NEW TRANBK )@@G@@SIENT STEPSIZE BY EITHER@G@[@@C CALLING TERR TO ESTIMATE THE LOCAL TRUNCBL )@@G@@ATION ERROR, OR BY CHECKING @G@[@@C ON THE NUMBER OF ITERATIONS NEEDEDBM )@@G@@ TO CONVERGE AT THE LAST TIMEPOINT. @[@[@@C @G@[@@ COMMON /CIRDBN )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUTBO )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIBP )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICABQ )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MBR )@@G@@ODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTBS )@@G@@IM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,BT )@@G@@NOGO,KEOF @F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FOBU )@@G@@RFRE,JTRFLG @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPBV )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOBW )@@G@@DPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ IF (LVLTIM.NE.0) GBX )@@G@@O TO 5@A@[@@ DELNEW=AMIN1(TSTEP,DELMAX) @]@[@@ RETURN@A@[@@BY )@@G@@ 5 IF (LVLTIM.NE.1) GO TO 10 @#@[@@ DELNEW=DELTA@A@[@@ BZ )@@G@@IF (ITERNO.GT.ITL3) RETURN @B@[@@ DELNEW=AMIN1(2.0*DELTA,TSTEP,DCA )@@G@@ELMAX)@]@[@@ RETURN@[@[@@C @#@[@@C CAPACITORS @[@[@@C CB )@@G@@@^@[@@ 10 DELNEW=1.0E20 @^@[@@ LOC=LOCATE(2) @ @[@@ 20 CC )@@G@@IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCT=NODPLC(LOC+8)@ @[@@ CALL TCD )@@G@@ERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 CE )@@G@@@[@[@@C @]@[@@C INDUCTORS@[@[@@C @^@[@@ 30 LOC=LOCATE(3) CF )@@G@@@ @[@@ 40 IF (LOC.EQ.0) GO TO 50 @ @[@@ LOCT=NODPLC(LOC+10) CG )@@G@@@ @[@@ CALL TERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@CH )@@G@@ GO TO 40 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 50 CI )@@G@@LOC=LOCATE(11) @ @[@@ 60 IF (LOC.EQ.0) GO TO 70 @ @[@@ LOCT=NCJ )@@G@@ODPLC(LOC+11) @ @[@@ CALL TERR(LOCT+3,DELNEW)@^@[@@ LOC=NOCK )@@G@@DPLC(LOC) @#@[@@ GO TO 60 @[@[@@C @]@[@@C BJTS @[@[@@CL )@@G@@C @^@[@@ 70 LOC=LOCATE(12) @ @[@@ 80 IF (LOC.EQ.0) GO TO 90 CM )@@G@@@ @[@@ LOCT=NODPLC(LOC+22) @ @[@@ CALL TERR(LOCT+8,DELNEW)CN )@@G@@@A@[@@ CALL TERR(LOCT+10,DELNEW) @A@[@@ CALL TERR(LOCT+12,CO )@@G@@DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@CP )@@G@@C @]@[@@C JFETS @[@[@@C @^@[@@ 90 LOC=LOCATE(13) @ @[@@CQ )@@G@@ 100 IF (LOC.EQ.0) GO TO 110 @ @[@@ LOCT=NODPLC(LOC+19) @ @[@@CR )@@G@@ CALL TERR(LOCT+9,DELNEW)@A@[@@ CALL TERR(LOCT+11,DELNEW) CS )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 100 @[@[@@C @]@[@@CT )@@G@@C MOSFETS @[@[@@C @^@[@@ 110 LOC=LOCATE(14) @ @[@@ 120 IF (LOCU )@@G@@C.EQ.0) GO TO 200 @ @[@@ LOCT=NODPLC(LOC+26) @A@[@@ CALL TCV )@@G@@ERR(LOCT+12,DELNEW) @A@[@@ CALL TERR(LOCT+14,DELNEW) @A@[@@CW )@@G@@ CALL TERR(LOCT+16,DELNEW) @A@[@@ CALL TERR(LOCT+18,DELNEWCX )@@G@@) @A@[@@ CALL TERR(LOCT+20,DELNEW) @^@[@@ LOC=NODPLC(LCY )@@G@@OC) @#@[@@ GO TO 120 @[@[@@C @D@[@@C DELTA IS ALLOWED ONLYCZ )@@G@@ TO DOUBLE AT EACH TIMEPOINT @[@[@@C @C@[@@ 200 DELNEW=AMIN1(2.0*DDA )@@G@@ELTA,DELNEW,DELMAX) @]@[@@ RETURN@]@[@@ END @A@[@@ DB )@@G@@SUBROUTINE TERR(LOCT,DELNEW) @[@[@@C @G@[@@C THIS ROUTINE ESTIMDC )@@G@@ATES THE LOCAL TRUNCATION ERROR FOR A PARTICULAR@G@[@@C CIRCUIT ELEMENT.DD )@@G@@ IT THEN COMPUTES THE APPROPRIATE STEPSIZE WHICH @#@[@@C SHOULD BE DE )@@G@@USED. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSADF )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICDG )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERDH )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQDI )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYDJ )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPDK )@@G@@OL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)DL )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXDM )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONDN )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1DO )@@G@@ GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ DP )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEDQ )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@DR )@@G@@C @[@[@@C @E@[@@ DIMENSION QCAP(1),CCAP(1),DIFF(8),DELTMP(7DS )@@G@@),COEF(6) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)DT )@@G@@) @F@[@@ DATA COEF / 5.000000000E-1, 2.222222222E-1, 1.36363636DU )@@G@@4E-1, @F@[@@ 1 9.600000000E-2, 7.299270073E-2, 5.83090379DV )@@G@@0E-2 /@A@[@@ DATA XTWELV / 8.333333333E-2 /@[@[@@C @[@[@@C DW )@@G@@@G@[@@ TOL=RELTOL*AMAX1(ABS(CCAP(LX0+LOCT)),ABS(CCAP(LX1+LOCT)))+ABDX )@@G@@STOL @F@[@@ CTOL=RELTOL*AMAX1(ABS(QCAP(LX0+LOCT)),ABS(QCAP(LX1+LOCDY )@@G@@T)), @^@[@@ 1 CHGTOL)/DELTA @ @[@@ TOL=AMAX1(TOL,CTOL) DZ )@@G@@@[@[@@C @A@[@@C DETERMINE DIVIDED DIFFERENCES @[@[@@C @A@[@@EA )@@G@@ GO TO (6,5,4,3,2,1), IORD @ @[@@ 1 DIFF(8)=QCAP(LX7+LOCT) EB )@@G@@@ @[@@ 2 DIFF(7)=QCAP(LX6+LOCT) @ @[@@ 3 DIFF(6)=QCAP(LX5+LOCT) EC )@@G@@@ @[@@ 4 DIFF(5)=QCAP(LX4+LOCT) @ @[@@ 5 DIFF(4)=QCAP(LX3+LOCT) ED )@@G@@@ @[@@ 6 DIFF(3)=QCAP(LX2+LOCT) @ @[@@ DIFF(2)=QCAP(LX1+LOCT) EE )@@G@@@ @[@@ DIFF(1)=QCAP(LX0+LOCT) @#@[@@ ISTOP=IORD+1@^@[@@ EF )@@G@@DO 10 I=1,ISTOP @ @[@@ DELTMP(I)=DELOLD(I) @#@[@@ 10 CONTINEG )@@G@@UE @^@[@@ 20 DO 30 I=1,ISTOP @C@[@@ DIFF(I)=(DIFF(I)-DIFF(I+EH )@@G@@1))/DELTMP(I) @#@[@@ 30 CONTINUE @^@[@@ ISTOP=ISTOP-1 EI )@@G@@@A@[@@ IF (ISTOP.EQ.0) GO TO 100 @^@[@@ DO 40 I=1,ISTOP EJ )@@G@@@B@[@@ DELTMP(I)=DELTMP(I+1)+DELOLD(I) @#@[@@ 40 CONTINUE EK )@@G@@@#@[@@ GO TO 20 @[@[@@C @B@[@@C DIFF(1) CONTAINS DIVIDED DIEL )@@G@@FFERENCE @[@[@@C @^@[@@ 100 CONST=COEF(IORD) @D@[@@ IF ((MEM )@@G@@ETHOD.EQ.1).AND.(IORD.EQ.2)) CONST=XTWELV @D@[@@ DEL=TRTOL*TOL/AMAXEN )@@G@@1(ABSTOL,CONST*ABS(DIFF(1))) @ @[@@ IF (IORD.EQ.1) GO TO 200@ @[@@EO )@@G@@ IF (IORD.GE.3) GO TO 150@^@[@@ DEL=SQRT(DEL) @#@[@@ EP )@@G@@GO TO 200 @A@[@@ 150 DEL=EXP(ALOG(DEL)/FLOAT(IORD))@ @[@@ 200 DELNEWEQ )@@G@@=AMIN1(DELNEW,DEL)@]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUER )@@G@@TINE SORUPD @[@[@@C @G@[@@C THIS ROUTINE UPDATES THE INDEPENDENTES )@@G@@ VOLTAGE AND CURRENT SOURCES @G@[@@C USED IN THE CIRCUIT. IT ALSO UPDAET )@@G@@TES THE LTD TABLE (WHICH CONTAINS @G@[@@C PREVIOUS (DELAYED) VALUES OFEU )@@G@@ THE SOURCES USED TO MODEL TRANSMISSION @]@[@@C LINES). @[@[@@C EV )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUEW )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,EX )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILEY )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWEZ )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,FA )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@FB )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, FC )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONFD )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1FE )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2FF )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,FG )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLFH )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@FI )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAFJ )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ FK )@@G@@DO 500 ID=9,10 @^@[@@ LOC=LOCATE(ID) @ @[@@ 10 IF (LOC.EQ.0FL )@@G@@) GO TO 500 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ LOCP=NODPLC(LOC+5)FM )@@G@@@ @[@@ ITYPE=NODPLC(LOC+4)+1 @C@[@@ GO TO (490,100,200,300,4FN )@@G@@00,450), ITYPE @[@[@@C @#@[@@C PULSE SOURCE @[@[@@C @^@[@@FO )@@G@@ 100 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ T1=VALFP )@@G@@UE(LOCP+3) @^@[@@ T2=VALUE(LOCP+4) @^@[@@ T3=VALUE(LOCP+5) FQ )@@G@@@^@[@@ T4=VALUE(LOCP+6) @ @[@@ PERIOD=VALUE(LOCP+7) @#@[@@FR )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.LE.0.0) GO TO 160 @B@[@@ 110 FS )@@G@@IF (TIME1.LT.T1+PERIOD) GO TO 120 @^@[@@ TIME1=TIME1-PERIOD@#@[@@FT )@@G@@ GO TO 110 @A@[@@ 120 IF (TIME1.LT.T4) GO TO 130 @^@[@@ FU )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 130 IF (TIME1.LT.T3) GFV )@@G@@O TO 140 @D@[@@ VALUE(LOCV+1)=V2+(TIME1-T3)*(V1-V2)/(T4-T3) FW )@@G@@@#@[@@ GO TO 490 @A@[@@ 140 IF (TIME1.LT.T2) GO TO 150 @^@[@@FX )@@G@@ VALUE(LOCV+1)=V2 @#@[@@ GO TO 490 @A@[@@ 150 IF (TIME1.LTFY )@@G@@.T1) GO TO 160 @D@[@@ VALUE(LOCV+1)=V1+(TIME1-T1)*(V2-V1)/(T2-T1FZ )@@G@@) @#@[@@ GO TO 490 @^@[@@ 160 VALUE(LOCV+1)=V1 @#@[@@ GA )@@G@@GO TO 490 @[@[@@C @^@[@@C SINUSOIDAL SOURCE @[@[@@C @^@[@@GB )@@G@@ 200 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ OMEG=VGC )@@G@@ALUE(LOCP+3)@^@[@@ T1=VALUE(LOCP+4) @ @[@@ THETA=VALUE(LOCP+5GD )@@G@@) @^@[@@ TIME1=TIME-T1 @A@[@@ IF (TIME1.GT.0.0) GO TO GE )@@G@@210 @^@[@@ VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 210 GF )@@G@@IF (THETA.NE.0.0) GO TO 220 @B@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEG*TGG )@@G@@IME1) @#@[@@ GO TO 490 @E@[@@ 220 VALUE(LOCV+1)=V1+V2*SIN(OMEG*TGH )@@G@@IME1)*EXP(-TIME1*THETA) @#@[@@ GO TO 490 @[@[@@C @^@[@@C EXPGI )@@G@@ONENTIAL SOURCE @[@[@@C @^@[@@ 300 V1=VALUE(LOCP+1) @^@[@@ GJ )@@G@@V2=VALUE(LOCP+2) @^@[@@ T1=VALUE(LOCP+3) @^@[@@ TAU1=VALUE(LGK )@@G@@OCP+4)@^@[@@ T2=VALUE(LOCP+5) @^@[@@ TAU2=VALUE(LOCP+6)@#@[@@GL )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.GT.T1) GO TO 310 @^@[@@ GM )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 310 IF (TIME1.GT.T2) GGN )@@G@@O TO 320 @E@[@@ VALUE(LOCV+1)=V1+(V2-V1)*(1.0-EXP((T1-TIME1)/TAUGO )@@G@@1)) @#@[@@ GO TO 490 @E@[@@ 320 VALUE(LOCV+1)=V1+(V2-V1)*(1.0-GP )@@G@@EXP((T1-TIME1)/TAU1)) @C@[@@ 1 +(V1-V2)*(1.0-EXP((T2-TIME1)/TAU2GQ )@@G@@)) @#@[@@ GO TO 490 @[@[@@C @ @[@@C PIECEWISE-LINEAR SOURGR )@@G@@CE @[@[@@C @^@[@@ 400 T1=VALUE(LOCP+1) @^@[@@ V1=VALUE(LOCGS )@@G@@P+2) @^@[@@ T2=VALUE(LOCP+3) @^@[@@ V2=VALUE(LOCP+4) @]@[@@GT )@@G@@ IKNT=4@A@[@@ 410 IF (TIME.LE.T2) GO TO 420 @]@[@@ T1=T2 GU )@@G@@@]@[@@ V1=V2 @ @[@@ T2=VALUE(LOCP+IKNT+1) @ @[@@ V2=VALGV )@@G@@UE(LOCP+IKNT+2) @#@[@@ IKNT=IKNT+2 @#@[@@ GO TO 410 @D@[@@GW )@@G@@ 420 VALUE(LOCV+1)=V1+((TIME-T1)/(T2-T1))*(V2-V1) @#@[@@ GO TO GX )@@G@@490 @[@[@@C @^@[@@C SINGLE-FREQUENCY FM @[@[@@C @^@[@@ 450 GY )@@G@@V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @ @[@@ OMEGC=VALUE(GZ )@@G@@LOCP+3) @^@[@@ XMOD=VALUE(LOCP+4)@ @[@@ OMEGS=VALUE(LOCP+5HA )@@G@@) @F@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEGC*TIME+XMOD*SIN(OMEGS*TIMEHB )@@G@@)) @^@[@@ 490 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @#@[@@ 500 HC )@@G@@CONTINUE @[@[@@C @A@[@@C UPDATE TRANSMISSION LINE SOURCES @[@[@@HD )@@G@@C @B@[@@ IF (JELCNT(17).EQ.0) GO TO 1000 @A@[@@ IF (MOHE )@@G@@DE.NE.2) GO TO 1000 @ @[@@ CALL SIZMEM(LTD,LTDSIZ) @^@[@@ HF )@@G@@NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LT.3) GO TO 900 @^@[@@ HG )@@G@@LOC=LOCATE(17) @ @[@@ 610 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NHH )@@G@@ODPLC(LOC+1)@^@[@@ TD=VALUE(LOCV+2) @^@[@@ BAKTIM=TIME-TD HI )@@G@@@A@[@@ IF (BAKTIM.LT.0.0) GO TO 640 @ @[@@ LTDPTR=NODPLC(LOC+HJ )@@G@@30) @#@[@@ ICNTR=2 @]@[@@ L1=LTD@#@[@@ L2=L1+NTLIN HK )@@G@@@#@[@@ L3=L2+NTLIN @^@[@@ T1=VALUE(L1+1) @^@[@@ T2=VALHL )@@G@@UE(L2+1) @^@[@@ 620 T3=VALUE(L3+1) @^@[@@ ICNTR=ICNTR+1 HM )@@G@@@A@[@@ IF (BAKTIM.LE.T3) GO TO 630 @A@[@@ IF (ICNTR.EQ.NUMTDHN )@@G@@) GO TO 900 @]@[@@ L1=L2 @]@[@@ L2=L3 @#@[@@ L3=L2+NTLIN HO )@@G@@@]@[@@ T1=T2 @]@[@@ T2=T3 @#@[@@ GO TO 620 @#@[@@ 630 HP )@@G@@DT1T2=T1-T2 @#@[@@ DT1T3=T1-T3 @#@[@@ DT2T3=T2-T3 @ @[@@ HQ )@@G@@TDNOM1=1.0/(DT1T2*DT1T3)@A@[@@ TDNOM2=-1.0/(DT1T2*DT2T3) @ @[@@HR )@@G@@ TDNOM3=1.0/(DT2T3*DT1T3)@^@[@@ DTT1=BAKTIM-T1 @^@[@@ HS )@@G@@DTT2=BAKTIM-T2 @^@[@@ DTT3=BAKTIM-T3 @ @[@@ TFACT1=DTT2*HT )@@G@@DTT3*TDNOM1 @ @[@@ TFACT2=DTT1*DTT3*TDNOM2 @ @[@@ TFACT3=DTT1*HU )@@G@@DTT2*TDNOM3 @G@[@@ VALUE(LOCV+3)=VALUE(L1+LTDPTR+0)*TFACT1+VALUE(L2HV )@@G@@+LTDPTR+0)*TFACT2 @A@[@@ 1 +VALUE(L3+LTDPTR+0)*TFACT3 @G@[@@ HW )@@G@@VALUE(LOCV+4)=VALUE(L1+LTDPTR+1)*TFACT1+VALUE(L2+LTDPTR+1)*TFACT2 @A@[@@HX )@@G@@ 1 +VALUE(L3+LTDPTR+1)*TFACT3 @^@[@@ 640 LOC=NODPLC(LOC) @#@[@@HY )@@G@@ GO TO 610 @[@[@@C @D@[@@C INTERNAL LOGIC ERROR: LESS THAN HZ )@@G@@3 ENTRIES IN LTD @[@[@@C @]@[@@ 900 NOGO=1@A@[@@ WRITE (6,901IA )@@G@@) NUMTD,ICNTR @F@[@@ 901 FORMAT(^0*ABORT*: INTERNAL SPICE ERROR: IB )@@G@@SORUPD: ^,2I5/) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 IC )@@G@@RETURN@]@[@@ END @ @[@@ SUBROUTINE ITER8(ITLIM) @[@[@@C ID )@@G@@@G@[@@C THIS ROUTINE DRIVES THE NEWTON-RAPHSON ITERATION TECHNIQUE UIE )@@G@@SED TO@C@[@@C SOLVE THE SET OF NONLINEAR CIRCUIT EQUATIONS. @[@[@@C IF )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUIG )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,IH )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILII )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWIJ )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,IK )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@IL )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, IM )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX IN )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NIO )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ IP )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@IQ )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@IR )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IIS )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITIT )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @A@[@@ COMMON /DEBUG/ IDEBUG(20IU )@@G@@) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)IV )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1IW )@@G@@),CVALUE(1))@[@[@@C @[@[@@C @#@[@@ IGOOF=0 @#@[@@ IX )@@G@@ITERNO=0 @#@[@@ NDRFLO=0 @#@[@@ NONCON=0 @[@[@@C IY )@@G@@@D@[@@C CONSTRUCT LINEAR EQUATIONS AND CHECK CONVERGENCE @[@[@@C IZ )@@G@@@#@[@@ 10 CALL LOAD @A@[@@ IF (IDEBUG(1).LE.0) GO TO 15 @ @[@@JA )@@G@@ CALL DMPMAT(8HITER8 ) @ @[@@ IDEBUG(1)=IDEBUG(1)-1 @G@[@@JB )@@G@@ 15 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 JC )@@G@@@^@[@@ ITERNO=ITERNO+1 @B@[@@ GO TO (20,30,40,50,50,50),INITJD )@@G@@F @A@[@@ 20 IF (NONCON.EQ.0) GO TO 300 @#@[@@ GO TO 100 JE )@@G@@@#@[@@ 30 INITF=3 @ @[@@ 40 IF (NONCON.EQ.0) INITF=1@#@[@@ JF )@@G@@GO TO 100 @#@[@@ 50 INITF=1 @[@[@@C @B@[@@C SOLVE EQUATIONSJG )@@G@@ FOR NEXT ITERATION @[@[@@C @A@[@@ 100 IF (ITERNO.GE.ITLIM) GO JH )@@G@@TO 200@A@[@@ IF (LVLCOD.EQ.2) GO TO 110 @#@[@@ CALL DCDCMP JI )@@G@@@#@[@@ CALL DCSOL @#@[@@ GO TO 120 @B@[@@ 110 CALL CODEXC(JJ )@@G@@NODPLC(MACINS+1),LVN) @A@[@@ 120 IF (IGOOF.EQ.0) GO TO 130 @^@[@@JK )@@G@@ NDRFLO=NDRFLO+1 @#@[@@ IGOOF=0 @^@[@@ 130 VALUE(LVN+1)JL )@@G@@=0.0 @#@[@@ NTEMP=NONCON@#@[@@ NONCON=0 @A@[@@ IF (NTJM )@@G@@EMP.GT.0) GO TO 150 @A@[@@ IF (ITERNO.EQ.1) GO TO 150 @^@[@@JN )@@G@@ DO 140 I=2,NUMNOD @ @[@@ VOLD=VALUE(LVNIM1+I) @^@[@@ JO )@@G@@VNEW=VALUE(LVN+I) @D@[@@ TOL=RELTOL*AMAX1(ABS(VOLD),ABS(VNEW))+VNTOJP )@@G@@L @B@[@@ IF (ABS(VOLD-VNEW).LE.TOL) GO TO 140@^@[@@ NONCONJQ )@@G@@=NONCON+1 @#@[@@ 140 CONTINUE @D@[@@ 150 CALL COPY8(VALUE(LVN+1),JR )@@G@@VALUE(LVNIM1+1),NSTOP) @#@[@@ GO TO 10 @[@[@@C @#@[@@C NO JS )@@G@@CONVERGENCE @[@[@@C @#@[@@ 200 IGOOF=1 @A@[@@ 300 IF (NDRFLO.EJT )@@G@@Q.0) GO TO 400 @ @[@@ WRITE (6,301) NDRFLO @E@[@@ 301 FORMATJU )@@G@@(^0WARNING: UNDERFLOW OCCURRED ^,I4,^ TIME(S)^)@[@[@@C @]@[@@C FINJV )@@G@@ISHED @[@[@@C @]@[@@ 400 RETURN@]@[@@ END @^@[@@ IDJW )@@G@@ENT CODEXC @^@[@@ ENTRY CODEXC @B@[@@ TITLE EXECUTEJX )@@G@@ MACHINE CODE @D@[@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISJY )@@G@@TERS @D@[@@COMPILER MICRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@[@@JZ )@@G@@SYSTEM SPACE 4@G@[@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATINGKA )@@G@@ SYSTEM IS NOT SCOPE @E@[@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTKB )@@G@@O FOR CALIDOSCOPE @#@[@@RUN SPACE 4@A@[@@RUN IFC EQ,*^COKC )@@G@@MPILER^*RUN*@^@[@@ASMARG OPSYN NIL @#@[@@RUN ENDIF @#@[@@KD )@@G@@FTN SPACE 4@A@[@@FTN IFC EQ,*^COMPILER^*FTN*@#@[@@ASMARGKE )@@G@@ MACRO N@^@[@@ LOCAL CNT @^@[@@ SB1 X1 KF )@@G@@@^@[@@ASMARG IFGT N,1 @#@[@@CNT SET 1@#@[@@ SBKG )@@G@@7 1@^@[@@ASMARG DUP N-1 @^@[@@CNT SET CNT+1 @^@[@@KH )@@G@@ SA1 A1+B7 @^@[@@ SB.CNT X1 @#@[@@ASMARG ENKI )@@G@@DD @#@[@@ASMARG ENDIF @#@[@@ASMARG ENDM @#@[@@FTN ENKJ )@@G@@DIF @A@[@@ TITLE THE REAL THING @C@[@@* CALL CODKK )@@G@@EXC(NODPLC(MACINS+1),LVN) @G@[@@* THIS ROUTINE INTERFACES THE FOKL )@@G@@RTRAN ROUTINES TO THE GENERATED @B@[@@* CODE PRODUCED BY SUBROUTINE KM )@@G@@CODGEN. @#@[@@ SPACE 1@C@[@@CODEXC BSS 1 KN )@@G@@ ENTRY/EXIT @#@[@@ SPACE 1@#@[@@ ASMARG 2@#@[@@KO )@@G@@ SPACE 1@F@[@@ SA1 CODEXC SIMULATE AN *KP )@@G@@RJ* INSTRUCTION @A@[@@ BX6 X1 .@B@[@@ KQ )@@G@@ SA6 B1 . DONE@D@[@@ SA1 B2 KR )@@G@@ SET UP LVN IN B6 @A@[@@ SB6 X1 .@#@[@@KS )@@G@@ SPACE 1@D@[@@ JP B1+1 GO EXECUTE THKT )@@G@@E CODE@#@[@@ SPACE 1@#@[@@ END @^@[@@ SUBROUKU )@@G@@TINE LOAD @[@[@@C @G@[@@C THIS ROUTINE ZEROES-OUT AND THEN LOAKV )@@G@@DS THE COEFFICIENT MATRIX. @G@[@@C THE ACTIVE DEVICES AND THE CONTROLKW )@@G@@LED SOURCES ARE LOADED BY SEPARATE @#@[@@C SUBROUTINES. @[@[@@C KX )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUKY )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,KZ )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILLA )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWLB )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LC )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@LD )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, LE )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONLF )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1LG )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2LH )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,LI )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLLJ )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLLK )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNLL )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /AC/ FSTART,FSTOPLM )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NLN )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPLO )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@LP )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ LQ )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))LR )@@G@@@[@[@@C @[@[@@C @A@[@@ DIMENSION QCAP(1),CCAP(1) @E@[@@LS )@@G@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)) @A@[@@ LT )@@G@@DIMENSION FIND(1),VIND(1) @E@[@@ EQUIVALENCE (FIND(1),VALUE(1))LU )@@G@@,(VIND(1),VALUE(2)) @[@[@@C @A@[@@C ZERO Y MATRIX AND CURRENT VLV )@@G@@ECTOR @[@[@@C @D@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP+NSTOP+NUT+NLLW )@@G@@T) @[@[@@C @]@[@@C RESISTORS@[@[@@C @^@[@@ LOC=LOCATE(1LX )@@G@@) @ @[@@ 20 IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCV=NODPLC(LOC+1)LY )@@G@@@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@LZ )@@G@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) MA )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LMB )@@G@@OC+4) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NOMC )@@G@@DPLC(LOC+5) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @^@[@@ LOC=NOMD )@@G@@DPLC(LOC) @#@[@@ GO TO 20 @[@[@@C @#@[@@C CAPACITORS ME )@@G@@@[@[@@C @^@[@@ 30 LOC=LOCATE(2) @D@[@@ IF ((MODE.EQ.1).ANMF )@@G@@D.(MODEDC.NE.2)) GO TO 100 @ @[@@ 40 IF (LOC.EQ.0) GO TO 100 @^@[@@MG )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ MH )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ LOCT=NODPLC(LOC+8)@D@[@@ VCAP=VMI )@@G@@ALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2) @ @[@@ IF (INITF.NE.6) GOMJ )@@G@@ TO 50@A@[@@ QCAP(LX0+LOCT)=QCAP(LX1+LOCT) @#@[@@ GO TO 60 MK )@@G@@@B@[@@ 50 QCAP(LX0+LOCT)=VALUE(LOCV+1)*VCAP @ @[@@ IF (INITF.NEML )@@G@@.5) GO TO 60@F@[@@ IF (NOSOLV.NE.0) QCAP(LX0+LOCT)=VALUE(LOCV+1)*VAMM )@@G@@LUE(LOCV+2) @A@[@@ QCAP(LX1+LOCT)=QCAP(LX0+LOCT) @ @[@@ 60 IF (MOMN )@@G@@DE.EQ.1) GO TO 90 @C@[@@ CALL INTGR8(GEQ,CEQ,VALUE(LOCV+1),LOCT) MO )@@G@@@ @[@@ IF (INITF.NE.5) GO TO 70@A@[@@ CCAP(LX1+LOCT)=CCAP(LX0+MP )@@G@@LOCT) @ @[@@ 70 LOCY=LYNL+NODPLC(LOC+4) @A@[@@ VALUE(LOCY)=VALUE(MQ )@@G@@LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=MR )@@G@@VALUE(LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ VALUE(MS )@@G@@LOCY)=VALUE(LOCY)-GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@ MT )@@G@@VALUE(LOCY)=VALUE(LOCY)-GEQ @C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODMU )@@G@@E1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@MV )@@G@@ 90 LOC=NODPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDMW )@@G@@UCTORS@[@[@@C @A@[@@ 100 IF (JELCNT(3).EQ.0) GO TO 400 @ @[@@ MX )@@G@@IF (MODE.EQ.1) GO TO 150@A@[@@ IF (INITF.EQ.6) GO TO 150 @^@[@@MY )@@G@@ LOC=LOCATE(3) @ @[@@ 110 IF (LOC.EQ.0) GO TO 120 @^@[@@ MZ )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+4)@ @[@@ LOCT=NODPLC(NA )@@G@@LOC+10) @D@[@@ FIND(LX0+LOCT)=VALUE(LOCV+1)*VALUE(LVNIM1+IPTR) NB )@@G@@@B@[@@ IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) @D@[@@ 1 FIND(LX0+NC )@@G@@LOCT)=VALUE(LOCV+1)*VALUE(LOCV+2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ND )@@G@@ GO TO 110 @^@[@@ 120 LOC=LOCATE(4) @ @[@@ 130 IF (LOC.EQ.0NE )@@G@@) GO TO 150 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ NL1=NODPLC(LOC+2) NF )@@G@@@^@[@@ NL2=NODPLC(LOC+3) @ @[@@ IPTR1=NODPLC(NL1+4) @ @[@@NG )@@G@@ IPTR2=NODPLC(NL2+4) @ @[@@ LOCT1=NODPLC(NL1+10) @ @[@@NH )@@G@@ LOCT2=NODPLC(NL2+10) @G@[@@ FIND(LX0+LOCT1)=FIND(LX0+LOCT1NI )@@G@@)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR2) @G@[@@ FIND(LX0+LOCT2)=FIND(LX0NJ )@@G@@+LOCT2)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR1) @^@[@@ LOC=NODPLC(LOC) NK )@@G@@@#@[@@ GO TO 130 @^@[@@ 150 LOC=LOCATE(3) @ @[@@ 160 IF (LONL )@@G@@C.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(NM )@@G@@LOC+4)@ @[@@ LOCT=NODPLC(LOC+10) @ @[@@ IF (MODE.NE.1) GO NN )@@G@@TO 200@#@[@@ VEQ=0.0 @#@[@@ REQ=0.0 @#@[@@ GO TO NO )@@G@@210 @A@[@@ 200 IF (INITF.NE.6) GO TO 205 @A@[@@ FIND(LX0+LOCNP )@@G@@T)=FIND(LX1+LOCT) @#@[@@ GO TO 210 @A@[@@ 205 IF (INITF.NE.5) GONQ )@@G@@ TO 210 @A@[@@ FIND(LX1+LOCT)=FIND(LX0+LOCT) @ @[@@ 210 IF (MONR )@@G@@DE.EQ.1) GO TO 250@C@[@@ CALL INTGR8(REQ,VEQ,VALUE(LOCV+1),LOCT) NS )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 250 @A@[@@ VIND(LX1+LOCT)=VINNT )@@G@@D(LX0+LOCT) @ @[@@ 250 VALUE(LVN+IPTR)=VEQ @ @[@@ LOCY=LYNL+NONU )@@G@@DPLC(LOC+9) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LNV )@@G@@OC+5) @^@[@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+6) NW )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @^@[@@NX )@@G@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) @^@[@@ NY )@@G@@VALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 160 NZ )@@G@@@[@[@@C @^@[@@C MUTUAL INDUCTANCES @[@[@@C @^@[@@ 300 LOC=LOOA )@@G@@CATE(4) @ @[@@ 310 IF (LOC.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(OB )@@G@@LOC+1)@ @[@@ REQ=AG(1)*VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC )@@G@@OC+4) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) OD )@@G@@@^@[@@ VALUE(LOCY)=-REQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ OE )@@G@@GO TO 310 @[@[@@C @A@[@@C NONLINEAR CONTROLLED SOURCES @[@[@@OF )@@G@@C @#@[@@ 400 CALL NLCSRC @[@[@@C @#@[@@C VOLTAGE SOURCES@[@[@@OG )@@G@@C @^@[@@ LOC=LOCATE(9) @ @[@@ 610 IF (LOC.EQ.0) GO TO 700 OH )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+6)@A@[@@ OI )@@G@@VALUE(LVN+IPTR)=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@OJ )@@G@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) OK )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOL )@@G@@OC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NOOM )@@G@@DPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @^@[@@ LOC=NOON )@@G@@DPLC(LOC) @#@[@@ GO TO 610 @[@[@@C @#@[@@C CURRENT SOURCESOO )@@G@@@[@[@@C @^@[@@ 700 LOC=LOCATE(10) @ @[@@ 710 IF (LOC.EQ.0) GO TOP )@@G@@O 800 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) OQ )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @^@[@@ VAL=VALUE(LOCV+1) @C@[@@OR )@@G@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-VAL @C@[@@ VALUE(LVN+NOOS )@@G@@DE2)=VALUE(LVN+NODE2)+VAL @^@[@@ LOC=NODPLC(LOC) @#@[@@ OT )@@G@@GO TO 710 @[@[@@C @ @[@@C CALL DEVICE MODEL ROUTINES @[@[@@C OU )@@G@@@#@[@@ 800 CALL DIODE @#@[@@ CALL BJT @#@[@@ CALL JFET OV )@@G@@@#@[@@ CALL MOSFET @[@[@@C @^@[@@C TRANSMISSION LINES @[@[@@OW )@@G@@C @^@[@@ LOC=LOCATE(17) @ @[@@ 910 IF (LOC.EQ.0) GO TO 1000OX )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ Z0=VALUE(LOCV+1) @#@[@@ OY )@@G@@Y0=1.0/Z0 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLCOZ )@@G@@(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLCPA )@@G@@(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ IBR2=NODPLC(LOC+9)PB )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+PC )@@G@@Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@^@[@@ VALUE(LOCY)=-Y0 PD )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@PE )@@G@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+Y0 PF )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@PG )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@^@[@@ VALUE(LOCY)=-Y0 @ @[@@ PH )@@G@@LOCY=LYNL+NODPLC(LOC+16)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LPI )@@G@@YNL+NODPLC(LOC+17)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NOPJ )@@G@@DPLC(LOC+18)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LYNL+NODPLC(LPK )@@G@@OC+19)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+20)PL )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@^@[@@PM )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+27)@^@[@@ PN )@@G@@VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@^@[@@ VALUE(PO )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@^@[@@ VALUE(LOCY)=PP )@@G@@-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+32)@^@[@@ VALUE(LOCY)=-Y0 PQ )@@G@@@ @[@@ IF (MODE.NE.1) GO TO 920@ @[@@ LOCY=LYNL+NODPLC(LOC+21)PR )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@^@[@@PS )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ PT )@@G@@VALUE(LOCY)=-(1.0-GMIN)*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@^@[@@PU )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+26)@^@[@@ PV )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(PW )@@G@@LOCY)=-(1.0-GMIN)*Z0 @#@[@@ GO TO 950 @A@[@@ 920 IF (INITF.NEPX )@@G@@.5) GO TO 930 @A@[@@ IF (NOSOLV.NE.0) GO TO 925 @E@[@@ PY )@@G@@VALUE(LOCV+3)=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VAPZ )@@G@@LUE(LVNIM1+IBR2)*Z0 @E@[@@ VALUE(LOCV+4)=VALUE(LVNIM1+NODE1)-VAQA )@@G@@LUE(LVNIM1+NODE2) @A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ QB )@@G@@GO TO 930 @D@[@@ 925 VALUE(LOCV+3)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 QC )@@G@@@D@[@@ VALUE(LOCV+4)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @A@[@@ 930 QD )@@G@@VALUE(LVN+IBR1)=VALUE(LOCV+3) @A@[@@ VALUE(LVN+IBR2)=VALUE(LOCV+4) QE )@@G@@@^@[@@ 950 LOC=NODPLC(LOC) @#@[@@ GO TO 910 @[@[@@C @ @[@@QF )@@G@@C REORDER RIGHT-HAND SIDE @[@[@@C @^@[@@ 1000 DO 1110 I=2,NSTOP QG )@@G@@@^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) QH )@@G@@@#@[@@ 1110 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+QI )@@G@@1),NSTOP) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURNQJ )@@G@@@]@[@@ END @^@[@@ SUBROUTINE NLCSRC @[@[@@C @F@[@@C QK )@@G@@THIS ROUTINE LOADS THE NONLINEAR CONTROLLED SOURCES INTO THE@^@[@@C COEFQL )@@G@@FICIENT MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,QM )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOQN )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NQO )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISQP )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0QQ )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5QR )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50QS )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IQT )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)QU )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXQV )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONQW )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1QX )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ QY )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@QZ )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@RA )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ RB )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))RC )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE-CONTROLLED CURRENT SOURCES @[@[@@RD )@@G@@C @^@[@@ LOC=LOCATE(5) @ @[@@ 10 IF (LOC.EQ.0) GO TO 100 RE )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) RF )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LNOD=NODPLC(LOC+6)@^@[@@ RG )@@G@@LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8) @B@[@@ CALL SRH )@@G@@IZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NODPLC(LOC+9)@ @[@@ RI )@@G@@LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LOC+11)@ @[@@ LOCT=NRJ )@@G@@ODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@ DO 20 I=1,NDIM RK )@@G@@@G@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),RL )@@G@@2, @#@[@@ 1 JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) RM )@@G@@@#@[@@ LOCT=LOCT+2 @#@[@@ LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(RN )@@G@@ICHECK,JCHECK) @#@[@@ 20 CONTINUE @D@[@@ CALL EVPOLY(COLD,0RO )@@G@@,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+12) @A@[@@RP )@@G@@ IF (ICHECK.EQ.0) GO TO 30 @ @[@@ IF (INITF.EQ.6) GO TO 30RQ )@@G@@@F@[@@ TOL=RELTOL*AMAX1(ABS(COLD),ABS(VALUE(LX0+LOCT)))+ABSTOL RR )@@G@@@D@[@@ IF (ABS(COLD-VALUE(LX0+LOCT)).LT.TOL) GO TO 40 @^@[@@ 30 RS )@@G@@NONCON=NONCON+1 @ @[@@ 40 VALUE(LX0+LOCT)=COLD @#@[@@ CEQ=CORT )@@G@@LD @^@[@@ DO 50 I=1,NDIM @D@[@@ CALL EVPOLY(GEQ,I,LCOEF,RU )@@G@@NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LORV )@@G@@CT)=GEQ @A@[@@ CEQ=CEQ-GEQ*VALUE(LARG+I) @ @[@@ LOCY=LRW )@@G@@YNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEQ @ @[@@ RX )@@G@@LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ @ @[@@RY )@@G@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ RZ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+SA )@@G@@GEQ @#@[@@ LMAT=LMAT+4 @#@[@@ 50 CONTINUE @C@[@@ VALUE(SB )@@G@@LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LSC )@@G@@VN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 10 SD )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@SE )@@G@@C @^@[@@ 100 LOC=LOCATE(6) @ @[@@ 110 IF (LOC.EQ.0) GO TO 200 SF )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) SG )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IPTR=NODPLC(LOC+6)@^@[@@ SH )@@G@@LNOD=NODPLC(LOC+7)@^@[@@ LMAT=NODPLC(LOC+8)@ @[@@ LCOEF=NODPLCSI )@@G@@(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOEF) @ @[@@ SJ )@@G@@LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11) @^@[@@ SK )@@G@@LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 @#@[@@ ICHECKSL )@@G@@=0 @^@[@@ DO 120 I=1,NDIM @G@[@@ CALL UPDATE(VALUE(LIC+I)SM )@@G@@,LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),2, @#@[@@ 1 JCHECK) @A@[@@SN )@@G@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 @#@[@@ SO )@@G@@LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 120 CONTINSP )@@G@@UE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@SQ )@@G@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.EQ.0) GO TO 130 SR )@@G@@@A@[@@ IF (INITF.EQ.6) GO TO 130 @E@[@@ TOL=RELTOL*AMAX1(ASS )@@G@@BS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABS(VOLT-VALUE(LX0+LST )@@G@@OCT)).LT.TOL) GO TO 140 @^@[@@ 130 NONCON=NONCON+1 @ @[@@ 140 VALUE(SU )@@G@@LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(LVNIM1+IPTR)@#@[@@SV )@@G@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ VALUE(SW )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ VALUE(LOCY)=SX )@@G@@-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ VALUE(LOCY)=+1.0 SY )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(LOCY)=-1.0 @#@[@@SZ )@@G@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ DO 150 I=1,NDIM TA )@@G@@@D@[@@ CALL EVPOLY(VGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ TB )@@G@@LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=VGAIN @A@[@@ VEQ=VEQ-VGAITC )@@G@@N*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(TD )@@G@@LOCY)=VALUE(LOCY)-VGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ TE )@@G@@VALUE(LOCY)=VALUE(LOCY)+VGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 150 CONTINTF )@@G@@UE @ @[@@ VALUE(LVN+IPTR)=VEQ @^@[@@ LOC=NODPLC(LOC) TG )@@G@@@#@[@@ GO TO 110 @[@[@@C @C@[@@C NONLINEAR CURRENT-CONTROLLETH )@@G@@D CURRENT SOURCES @[@[@@C @^@[@@ 200 LOC=LOCATE(7) @ @[@@ 210 TI )@@G@@IF (LOC.EQ.0) GO TO 300 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ TJ )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LVS=NOTK )@@G@@DPLC(LOC+6) @^@[@@ LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8TL )@@G@@) @B@[@@ CALL SIZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NTM )@@G@@ODPLC(LOC+9)@ @[@@ LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LTN )@@G@@OC+11)@ @[@@ LOCT=NODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@TO )@@G@@ DO 220 I=1,NDIM @^@[@@ IPTR=NODPLC(LVS+I)@ @[@@ IPTR=NTP )@@G@@ODPLC(IPTR+6) @D@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,IPTR,1,2,JCHTQ )@@G@@ECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 TR )@@G@@@A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 220 CONTINUE @D@[@@TS )@@G@@ CALL EVPOLY(CSRC,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NTT )@@G@@ODPLC(LOC+12) @A@[@@ IF (ICHECK.EQ.0) GO TO 230 @A@[@@ TU )@@G@@IF (INITF.EQ.6) GO TO 230 @F@[@@ TOL=RELTOL*AMAX1(ABS(CSRC),ABSTV )@@G@@(VALUE(LX0+LOCT)))+ABSTOL @D@[@@ IF (ABS(CSRC-VALUE(LX0+LOCT)).TW )@@G@@LT.TOL) GO TO 240 @^@[@@ 230 NONCON=NONCON+1 @ @[@@ 240 VALUE(LX0+LOTX )@@G@@CT)=CSRC @#@[@@ CEQ=CSRC @^@[@@ DO 250 I=1,NDIM @D@[@@TY )@@G@@ CALL EVPOLY(CGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LTZ )@@G@@OCT+2 @ @[@@ VALUE(LX0+LOCT)=CGAIN @A@[@@ CEQ=CEQ-CGAIN*VALUUA )@@G@@E(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=UB )@@G@@VALUE(LOCY)+CGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(UC )@@G@@LOCY)=VALUE(LOCY)-CGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 250 CONTINUE UD )@@G@@@C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(UE )@@G@@LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@UF )@@G@@ GO TO 210 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTUG )@@G@@AGE SOURCES @[@[@@C @^@[@@ 300 LOC=LOCATE(8) @ @[@@ 310 IF (LOUH )@@G@@C.EQ.0) GO TO 1000@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=UI )@@G@@NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IBR=NODPLC(LUJ )@@G@@OC+6) @^@[@@ LVS=NODPLC(LOC+7) @^@[@@ LMAT=NODPLC(LOC+8)@ @[@@UK )@@G@@ LCOEF=NODPLC(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOEUL )@@G@@F) @ @[@@ LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11UM )@@G@@) @^@[@@ LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 UN )@@G@@@#@[@@ ICHECK=0 @^@[@@ DO 320 I=1,NDIM @^@[@@ IPTR=NUO )@@G@@ODPLC(LVS+I)@ @[@@ IPTR=NODPLC(IPTR+6) @D@[@@ CALL UPDATE(UP )@@G@@VALUE(LIC+I),LOCT,IPTR,1,2,JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+UQ )@@G@@LOCT) @#@[@@ LOCT=LOCT+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) UR )@@G@@@#@[@@ 320 CONTINUE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,US )@@G@@NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.EUT )@@G@@Q.0) GO TO 330 @A@[@@ IF (INITF.EQ.6) GO TO 330 @E@[@@ UU )@@G@@TOL=RELTOL*AMAX1(ABS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABUV )@@G@@S(VOLT-VALUE(LX0+LOCT)).LT.TOL) GO TO 340 @^@[@@ 330 NONCON=NONCON+1 UW )@@G@@@ @[@@ 340 VALUE(LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(UX )@@G@@LVNIM1+IBR) @#@[@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)UY )@@G@@@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@UZ )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ VA )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(VB )@@G@@LOCY)=-1.0 @#@[@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ VC )@@G@@DO 350 I=1,NDIM @D@[@@ CALL EVPOLY(TRANSR,I,LCOEF,NCOEF,LARG,NDIMVD )@@G@@,LEXP)@#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=TRANSR @A@[@@VE )@@G@@ VEQ=VEQ-TRANSR*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+I)VF )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-TRANSR@#@[@@ 350 CONTINUE @^@[@@VG )@@G@@ VALUE(LVN+IBR)=VEQ@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO VH )@@G@@310 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@VI )@@G@@ END @E@[@@ SUBROUTINE UPDATE(VINIT,LOCT,NODE1,NODE2,NUPDA,IVJ )@@G@@CHECK)@[@[@@C @G@[@@C THIS ROUTINE UPDATES AND LIMITS THE CONTROVK )@@G@@LLING VARIABLES FOR THE @A@[@@C NONLINEAR CONTROLLED SOURCES. @[@[@@VL )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEVM )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IVN )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,VO )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIVP )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXVQ )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER VR )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEVS )@@G@@T, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IVT )@@G@@TERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALVU )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@VV )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C VW )@@G@@@#@[@@ ICHECK=0 @B@[@@ GO TO (40,10,40,20,30,50), INITF VX )@@G@@@#@[@@ 10 VNEW=VINIT @#@[@@ GO TO 80 @ @[@@ 20 VNEW=VALUE(LVY )@@G@@X0+LOCT) @#@[@@ GO TO 80 @ @[@@ 30 VNEW=VALUE(LX1+LOCT) VZ )@@G@@@#@[@@ GO TO 80 @D@[@@ 40 VNEW=VALUE(LVNIM1+NODE1)-VALUE(LVNIMWA )@@G@@1+NODE2) @#@[@@ GO TO 60 @E@[@@ 50 CALL COPY8(VALUE(LX1+LOCWB )@@G@@T),VALUE(LX0+LOCT),NUPDA) @ @[@@ XFACT=DELTA/DELOLD(2) @E@[@@WC )@@G@@ VNEW=(1.0+XFACT)*VALUE(LX1+LOCT)-XFACT*VALUE(LX2+LOCT)@A@[@@ 60 WD )@@G@@IF (ABS(VNEW).LE.1.0) GO TO 70@A@[@@ DELV=VNEW-VALUE(LX0+LOCT) WE )@@G@@@A@[@@ IF (ABS(DELV).LE.0.1) GO TO 70@C@[@@ VLIM=AMAX1(ABS(0.1WF )@@G@@*VALUE(LX0+LOCT)),0.1) @E@[@@ VNEW=VALUE(LX0+LOCT)+SIGN(AMIN1(ABS(WG )@@G@@DELV),VLIM),DELV) @#@[@@ GO TO 80 @#@[@@ 70 ICHECK=1 @ @[@@WH )@@G@@ 80 VALUE(LX0+LOCT)=VNEW @]@[@@ RETURN@]@[@@ END @F@[@@WI )@@G@@ SUBROUTINE EVPOLY(RESULT,ITYPE,LCOEF,NCOEF,LARG,NARG,LEXP) @[@[@@WJ )@@G@@C @G@[@@C THIS ROUTINE EVALUATES A POLYNOMIAL. LCOEF POINTS TO WK )@@G@@THE COEF- @G@[@@C FICIENTS, AND LARG POINTS TO THE VALUES OF THE POLYNWL )@@G@@OMIAL ARGUMENT(S).@[@[@@C @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@WM )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAWN )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ WO )@@G@@IF (ITYPE) 100,200,300 @[@[@@C @D@[@@C INTEGRATION (POLYNOMIAL *MUWP )@@G@@ST* BE ONE-DIMENSIONAL) @[@[@@C @#@[@@ 100 RESULT=0.0 @#@[@@ WQ )@@G@@ARG=1.0 @^@[@@ ARG1=VALUE(LARG+1)@^@[@@ DO 110 I=1,NCOEF WR )@@G@@@#@[@@ ARG=ARG*ARG1@C@[@@ RESULT=RESULT+VALUE(LCOEF+I)*ARG/FLOWS )@@G@@AT(I) @#@[@@ 110 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @A@[@@WT )@@G@@C EVALUATION OF THE POLYNOMIAL @[@[@@C @ @[@@ 200 RESULT=VALUEWU )@@G@@(LCOEF+1) @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@ CALL ZWV )@@G@@ERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 220 I=2,NCOEF @B@[@@ WW )@@G@@CALL NXTPWR(NODPLC(LEXP+1),NARG) @B@[@@ IF (VALUE(LCOEF+I).EQ.0.WX )@@G@@0) GO TO 220@#@[@@ ARG=1.0 @^@[@@ DO 210 J=1,NARG @D@[@@WY )@@G@@ CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)) @#@[@@ ARG=ARWZ )@@G@@G*VAL @#@[@@ 210 CONTINUE @B@[@@ RESULT=RESULT+VALUE(LCOEF+I)*AXA )@@G@@RG @#@[@@ 220 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @E@[@@XB )@@G@@C PARTIAL DERIVATIVE WITH RESPECT TO THE ITYPE*TH VARIABLE @[@[@@C XC )@@G@@@#@[@@ 300 RESULT=0.0 @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@XD )@@G@@ CALL ZERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 330 I=2,NCOEF XE )@@G@@@B@[@@ CALL NXTPWR(NODPLC(LEXP+1),NARG) @C@[@@ IF (NODPLC(LXF )@@G@@EXP+ITYPE).EQ.0) GO TO 330 @B@[@@ IF (VALUE(LCOEF+I).EQ.0.0) GO XG )@@G@@TO 330@#@[@@ ARG=1.0 @^@[@@ DO 320 J=1,NARG @A@[@@ XH )@@G@@IF (J.EQ.ITYPE) GO TO 310 @D@[@@ CALL EVTERM(VAL,VALUE(LARG+J),XI )@@G@@NODPLC(LEXP+J)) @#@[@@ ARG=ARG*VAL @#@[@@ GO TO 320 @D@[@@XJ )@@G@@ 310 CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)-1) @B@[@@ ARG=ARXK )@@G@@G*FLOAT(NODPLC(LEXP+J))*VAL @#@[@@ 320 CONTINUE @B@[@@ RESULTXL )@@G@@=RESULT+VALUE(LCOEF+I)*ARG @#@[@@ 330 CONTINUE @[@[@@C @]@[@@XM )@@G@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@ END @B@[@@ XN )@@G@@SUBROUTINE EVTERM(VAL,ARG,IEXP) @[@[@@C @D@[@@C THIS ROUTINEXO )@@G@@ EVALUATES ONE TERM OF A POLYNOMIAL.@[@[@@C @#@[@@ JEXP=IEXP+1 XP )@@G@@@ @[@@ IF (JEXP.GE.6) GO TO 60 @A@[@@ GO TO (10,20,30,40,50), XQ )@@G@@JEXP @#@[@@ 10 VAL=1.0 @#@[@@ GO TO 100 @#@[@@ 20 VAL=ARXR )@@G@@G @#@[@@ GO TO 100 @#@[@@ 30 VAL=ARG*ARG @#@[@@ GO TO XS )@@G@@100 @^@[@@ 40 VAL=ARG*ARG*ARG @#@[@@ GO TO 100 @#@[@@ 50 XT )@@G@@VAL=ARG*ARG @#@[@@ VAL=VAL*VAL @#@[@@ GO TO 100 @ @[@@ 60 XU )@@G@@IF (ARG.EQ.0.0) GO TO 70@B@[@@ ARGEXP=FLOAT(IEXP)*ALOG(ABS(ARG)) XV )@@G@@@A@[@@ IF (ARGEXP.LT.-200.0) GO TO 70@^@[@@ VAL=EXP(ARGEXP) XW )@@G@@@^@[@@ IMOD2=AND(IEXP,1) @A@[@@ IF (IMOD2.EQ.0) GO TO 100 XX )@@G@@@^@[@@ VAL=SIGN(VAL,ARG) @#@[@@ GO TO 100 @#@[@@ 70 VAL=0.XY )@@G@@0 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 100 RETURN@]@[@@XZ )@@G@@ END @A@[@@ SUBROUTINE NXTPWR(PWRSEQ,PDIM)@[@[@@C @F@[@@YA )@@G@@C THIS ROUTINE DETERMINES THE ^NEXT^ SET OF EXPONENTS FOR THE @B@[@@YB )@@G@@C DIFFERENT DIMENSIONS OF A POLYNOMIAL. @[@[@@C @A@[@@ INTEGEYC )@@G@@R PWRSEQ(1),PDIM,PSUM @[@[@@C @[@[@@C @ @[@@ IF (PDIM.EQ.YD )@@G@@1) GO TO 80 @]@[@@ K=PDIM@A@[@@ 10 IF (PWRSEQ(K).NE.0) GO TO 20 YE )@@G@@@]@[@@ K=K-1 @ @[@@ IF (K.NE.0) GO TO 10 @#@[@@ GO TO YF )@@G@@80 @ @[@@ 20 IF (K.EQ.PDIM) GO TO 30 @ @[@@ PWRSEQ(K)=PWRSEQ(KYG )@@G@@)-1 @A@[@@ PWRSEQ(K+1)=PWRSEQ(K+1)+1 @#@[@@ GO TO 100 YH )@@G@@@#@[@@ 30 KM1=K-1 @^@[@@ DO 40 I=1,KM1 @A@[@@ IF (PWYI )@@G@@RSEQ(I).NE.0) GO TO 50 @#@[@@ 40 CONTINUE @ @[@@ PWRSEQ(1)=PWYJ )@@G@@RSEQ(PDIM)+1@^@[@@ PWRSEQ(PDIM)=0 @#@[@@ GO TO 100 @]@[@@YK )@@G@@ 50 PSUM=1@]@[@@ K=PDIM@A@[@@ 60 IF (PWRSEQ(K-1).GE.1) GO TO 70YL )@@G@@@ @[@@ PSUM=PSUM+PWRSEQ(K) @#@[@@ PWRSEQ(K)=0 @]@[@@ YM )@@G@@K=K-1 @#@[@@ GO TO 60 @ @[@@ 70 PWRSEQ(K)=PWRSEQ(K)+PSUM@A@[@@YN )@@G@@ PWRSEQ(K-1)=PWRSEQ(K-1)-1 @#@[@@ GO TO 100 @ @[@@ 80 YO )@@G@@PWRSEQ(1)=PWRSEQ(1)+1 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@YP )@@G@@ 100 RETURN@]@[@@ END @C@[@@ SUBROUTINE INTGR8(GEQ,CEQ,CAPVYQ )@@G@@AL,LOCT) @[@[@@C @G@[@@C THIS ROUTINE PERFORMS THE ACTUAL NUMYR )@@G@@ERICAL INTEGRATION FOR EACH @#@[@@C CIRCUIT ELEMENT.@[@[@@C @G@[@@YS )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, YT )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEYU )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,YV )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQYW )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXYX )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ YY )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@YZ )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ZA )@@G@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ZB )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAZC )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ ZD )@@G@@DIMENSION QCAP(1),CCAP(1) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1))ZE )@@G@@,(CCAP(1),VALUE(2)) @[@[@@C @[@[@@C @A@[@@ IF (METHOD.EZF )@@G@@Q.2) GO TO 100 @[@[@@C @^@[@@C TRAPEZOIDAL ALGORITHM@[@[@@C ZG )@@G@@@ @[@@ IF (IORD.EQ.1) GO TO 100@A@[@@ CCAP(LX0+LOCT)=-CCAP(LX1ZH )@@G@@+LOCT)@D@[@@ 1 +2.0*(QCAP(LX0+LOCT)-QCAP(LX1+LOCT))/DELTA @D@[@@ZI )@@G@@ CEQ=-CCAP(LX1+LOCT)-2.0*QCAP(LX1+LOCT)/DELTA @#@[@@ GO TO ZJ )@@G@@200 @[@[@@C @#@[@@C GEARS ALGORITHM@[@[@@C @C@[@@ 100 GO TO ZK )@@G@@(110,120,130,140,150,160), IORD @F@[@@ 110 CCAP(LX0+LOCT)=AG(1)*QCAZL )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @#@[@@ GO TO 190 @F@[@@ 120 ZM )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @B@[@@ 1ZN )@@G@@ +AG(3)*QCAP(LX2+LOCT) @#@[@@ GO TO 190 @F@[@@ 130 ZO )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1ZP )@@G@@ +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @#@[@@ ZQ )@@G@@GO TO 190 @F@[@@ 140 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LZR )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LZS )@@G@@X3+LOCT) @B@[@@ 2 +AG(5)*QCAP(LX4+LOCT) @#@[@@ ZT )@@G@@GO TO 190 @F@[@@ 150 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LZU )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LZV )@@G@@X3+LOCT) @F@[@@ 2 +AG(5)*QCAP(LX4+LOCT)+AG(6)*QCAP(LZW )@@G@@X5+LOCT) @#@[@@ GO TO 190 @F@[@@ 160 CCAP(LX0+LOCT)=AG(1)*QCAZX )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1 +AG(3)*QCAZY )@@G@@P(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @F@[@@ 2 +AG(5)*QCAZZ )@@G@@P(LX4+LOCT)+AG(6)*QCAP(LX5+LOCT) @B@[@@ 3 +AG(7)*QCAAA )@@G@@P(LX6+LOCT) @C@[@@ 190 CEQ=CCAP(LX0+LOCT)-AG(1)*QCAP(LX0+LOCT) @^@[@@AB )@@G@@ 200 GEQ=AG(1)*CAPVAL @]@[@@ RETURN@]@[@@ END @D@[@@ AC )@@G@@SUBROUTINE PNJLIM(VNEW,VOLD,VT,VCRIT,ICHECK) @[@[@@C @G@[@@C AD )@@G@@THIS ROUTINE LIMITS THE CHANGE-PER-ITERATION OF DEVICE PN-JUNCTION@]@[@@AE )@@G@@C VOLTAGES. @[@[@@C @#@[@@ VLIM=VT+VT @^@[@@ DELV=VNEW-VOAF )@@G@@LD @B@[@@ IF (ABS(DELV).LE.VLIM) GO TO 30 @A@[@@ IF (VNAG )@@G@@EW.LE.VCRIT) GO TO 30 @A@[@@ IF (VOLD.LE.0.0) GO TO 20 @^@[@@AH )@@G@@ ARG=1.0+DELV/VT @ @[@@ IF (ARG.LE.0.0) GO TO 10@ @[@@ AI )@@G@@VNEW=VOLD+VT*ALOG(ARG) @#@[@@ GO TO 100 @#@[@@ 10 VNEW=VCRIT AJ )@@G@@@#@[@@ GO TO 100 @ @[@@ 20 VNEW=VT*ALOG(VNEW/VT) @#@[@@ AK )@@G@@GO TO 100 @#@[@@ 30 ICHECK=1 @[@[@@C @]@[@@C FINISHED @[@[@@AL )@@G@@C @]@[@@ 100 RETURN@]@[@@ END @^@[@@ SUBROUTINE DIODE AM )@@G@@@[@[@@C @F@[@@C THIS ROUTINE PROCESSES DIODES FOR DC AND TRANSIEAN )@@G@@NT ANALYSES.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTAO )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIAP )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,AQ )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEAR )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LAS )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUAT )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOAU )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMAV )@@G@@VS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNAW )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NOAX )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTAY )@@G@@NT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIAZ )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMONBA )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALBB )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C BC )@@G@@@[@[@@C @D@[@@ DIMENSION VDO(1),CDO(1),GDO(1),QD(1),CQD(1) BD )@@G@@@D@[@@ EQUIVALENCE (VDO(1),VALUE(1)),(CDO(1),VALUE(2)),@F@[@@ 1BE )@@G@@ (GDO(1),VALUE(3)),(QD(1),VALUE(4)),(CQD(1),VALUE(5)) @[@[@@C BF )@@G@@@[@[@@C @^@[@@ LOC=LOCATE(11) @ @[@@ 10 IF (LOC.EQ.0) RETUBG )@@G@@RN @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) BH )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) BI )@@G@@@^@[@@ LOCM=NODPLC(LOC+5)@^@[@@ IOFF=NODPLC(LOC+6)@ @[@@ BJ )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+11) @[@[@@C BK )@@G@@@^@[@@C DC MODEL PARAMETERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)BL )@@G@@@ @[@@ CSAT=VALUE(LOCM+1)*AREA @ @[@@ GSPR=VALUE(LOCM+2)*AREA BM )@@G@@@ @[@@ VTE=VALUE(LOCM+3)*VT @^@[@@ BV=VALUE(LOCM+13) @ @[@@BN )@@G@@ VCRIT=VALUE(LOCM+18) @[@[@@C @#@[@@C INITIALIZATION @[@[@@BO )@@G@@C @#@[@@ ICHECK=0 @B@[@@ GO TO (100,20,30,50,60,70),INIBP )@@G@@TF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 @^@[@@ VD=VALUE(LOCV+2) BQ )@@G@@@ @[@@ IF (VD.NE.0.0) GO TO 300@G@[@@ IF ((MODE.EQ.1).AND.(MODBR )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VD=VCRIT @#@[@@BS )@@G@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO TO 100@]@[@@ 40 VD=0.0BT )@@G@@@#@[@@ GO TO 300 @^@[@@ 50 VD=VDO(LX0+LOCT) @#@[@@ GO TO BU )@@G@@300 @^@[@@ 60 VD=VDO(LX1+LOCT) @#@[@@ GO TO 300 @ @[@@ 70 BV )@@G@@XFACT=DELTA/DELOLD(2) @A@[@@ VDO(LX0+LOCT)=VDO(LX1+LOCT) @D@[@@BW )@@G@@ VD=(1.0+XFACT)*VDO(LX1+LOCT)-XFACT*VDO(LX2+LOCT)@A@[@@ CDO(LXBX )@@G@@0+LOCT)=CDO(LX1+LOCT) @A@[@@ GDO(LX0+LOCT)=GDO(LX1+LOCT) @#@[@@BY )@@G@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTBZ )@@G@@AGE @[@[@@C @C@[@@ 100 VD=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE2)CA )@@G@@@ @[@@ 110 DELVD=VD-VDO(LX0+LOCT) @C@[@@ CDHAT=CDO(LX0+LOCT)+GDO(CB )@@G@@LX0+LOCT)*DELVD @[@[@@C @B@[@@C BYPASS IF SOLUTION HAS NOT CHANGECC )@@G@@D @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 @E@[@@ CD )@@G@@TOL=RELTOL*AMAX1(ABS(VD),ABS(VDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABCE )@@G@@S(DELVD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABCF )@@G@@S(CDO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL)CG )@@G@@ GO TO 200 @^@[@@ VD=VDO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) CH )@@G@@@^@[@@ GD=GDO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @ @[@@CI )@@G@@C LIMIT NEW JUNCTION VOLTAGE @[@[@@C @#@[@@ 200 VLIM=VTE+VTE@ @[@@CJ )@@G@@ IF (BV.EQ.0.0) GO TO 205@D@[@@ IF (VD.LT.AMIN1(0.0,-BV+10.0*VCK )@@G@@TE)) GO TO 210 @D@[@@ 205 CALL PNJLIM(VD,VDO(LX0+LOCT),VTE,VCRIT,ICHCL )@@G@@ECK) @#@[@@ GO TO 300 @^@[@@ 210 VDTEMP=-(VD+BV) @F@[@@ CM )@@G@@CALL PNJLIM(VDTEMP,-(VDO(LX0+LOCT)+BV),VTE,VCRIT,ICHECK) @^@[@@ CN )@@G@@VD=-(VDTEMP+BV) @[@[@@C @B@[@@C COMPUTE DC CURRENT AND DERIVITIVECO )@@G@@S @[@[@@C @ @[@@ 300 IF (VD.LT.0.0) GO TO 310@^@[@@ EVD=EXCP )@@G@@P(VD/VTE) @^@[@@ CD=CSAT*(EVD-1.0) @^@[@@ GD=CSAT*EVD/VTE CQ )@@G@@@#@[@@ GO TO 330 @ @[@@ 310 IF (BV.EQ.0) GO TO 315 @ @[@@ CR )@@G@@IF (VD.LT.-BV) GO TO 320@#@[@@ 315 GD=CSAT/VTE @#@[@@ CD=GD*VD CS )@@G@@@#@[@@ GO TO 330 @ @[@@ 320 EVREV=EXP(-(BV+VD)/VT) @A@[@@ CT )@@G@@CD=-CSAT*(EVREV-1.0+BV/VT) @^@[@@ GD=CSAT*EVREV/VT @ @[@@ 330 CU )@@G@@IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0))CV )@@G@@ GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO CW )@@G@@700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@CX )@@G@@ 500 TAU=VALUE(LOCM+4) @ @[@@ CZERO=VALUE(LOCM+5)*AREA@^@[@@ CY )@@G@@PB=VALUE(LOCM+6) @^@[@@ XM=VALUE(LOCM+7) @ @[@@ FCPB=VALUE(LCZ )@@G@@OCM+12) @A@[@@ IF (VD.GE.FCPB) GO TO 510 @^@[@@ ARG=1.DA )@@G@@0-VD/PB @ @[@@ SARG=EXP(-XM*ALOG(ARG)) @E@[@@ QD(LX0+LOCT)DB )@@G@@=TAU*CD+PB*CZERO*(1.0-ARG*SARG)/(1.0-XM) @ @[@@ CAPD=TAU*GD+CZERO*DC )@@G@@SARG @#@[@@ GO TO 520 @^@[@@ 510 F1=VALUE(LOCM+15) @^@[@@ DD )@@G@@F2=VALUE(LOCM+16) @^@[@@ F3=VALUE(LOCM+17) @^@[@@ CZOF2=CZERO/DE )@@G@@F2 @D@[@@ QD(LX0+LOCT)=TAU*CD+CZERO*F1+CZOF2*(F3*(VD-FCPB)@B@[@@DF )@@G@@ 1 +(XM/(PB+PB))*(VD*VD-FCPB*FCPB)) @B@[@@ CAPD=TAU*GD+CZOF2*DG )@@G@@(F3+XM*VD/PB) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS DH )@@G@@@[@[@@C @G@[@@ 520 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEDI )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ DJ )@@G@@VALUE(LX0+LOCT+4)=CAPD @#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRADK )@@G@@NSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 DL )@@G@@@A@[@@ QD(LX1+LOCT)=QD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEDM )@@G@@Q,CAPD,LOCT+3) @#@[@@ GD=GD+GEQ @ @[@@ CD=CD+CQD(LX0+LOCTDN )@@G@@) @A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQD(LX1+LOCTDO )@@G@@)=CQD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C DP )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO DQ )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 DR )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ DS )@@G@@IF (ABS(CDHAT-CD).LE.TOL) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@DT )@@G@@ 750 VDO(LX0+LOCT)=VD @^@[@@ CDO(LX0+LOCT)=CD @^@[@@ GDO(LXDU )@@G@@0+LOCT)=GD @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@C @^@[@@DV )@@G@@ 800 CDEQ=CD-GD*VD @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CDDW )@@G@@EQ @C@[@@ VALUE(LVN+NODE3)=VALUE(LVN+NODE3)-CDEQ @[@[@@C DX )@@G@@@#@[@@C LOAD MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+13)DY )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LDZ )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GD @ @[@@ LOCY=LYNL+NOEA )@@G@@DPLC(LOC+15)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GD+GSPR @ @[@@ EB )@@G@@LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@EC )@@G@@ LOCY=LYNL+NODPLC(LOC+8) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GD ED )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-EE )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(EF )@@G@@LOCY)-GD @^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@EG )@@G@@ END @^@[@@ SUBROUTINE BJT @[@[@@C @F@[@@C THIS REH )@@G@@OUTINE PROCESSES BJTS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@EI )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, EJ )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEEK )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,EL )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQEM )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXEN )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ EO )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@EP )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATEQ )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODER )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEES )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RET )@@G@@AD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHEU )@@G@@GTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ EV )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE EW )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSEX )@@G@@ION VBEO(1),VBCO(1),CCO(1),CBO(1),GPIO(1),GMUO(1),GMO(1), @E@[@@ 1EY )@@G@@ GOO(1),QBE(1),CQBE(1),QBC(1),CQBC(1),QCS(1),CQCS(1)@E@[@@ EQUIVAEZ )@@G@@LENCE (VBEO(1),VALUE(1)),(VBCO(1),VALUE(2)), @F@[@@ 1 (CCO(1),VFA )@@G@@ALUE(3)),(CBO(1),VALUE(4)),(GPIO(1),VALUE(5)), @F@[@@ 2 (GMUO(1),FB )@@G@@VALUE(6)),(GMO(1),VALUE(7)),(GOO(1),VALUE(8)), @F@[@@ 3 (QBE(1),VFC )@@G@@ALUE(9)),(CQBE(1),VALUE(10)),(QBC(1),VALUE(11)),@G@[@@ 4 (CQBC(1),FD )@@G@@VALUE(12)),(QCS(1),VALUE(13)),(CQCS(1),VALUE(14)) @[@[@@C @[@[@@FE )@@G@@C @^@[@@ LOC=LOCATE(12) @ @[@@ 10 IF (LOC.EQ.0) RETURN FF )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@FG )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@FH )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@FI )@@G@@ NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ FJ )@@G@@IOFF=NODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NFK )@@G@@ODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+22) @[@[@@C @^@[@@FL )@@G@@C DC MODEL PARAMTERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)@^@[@@FM )@@G@@ BFM=VALUE(LOCM+1) @^@[@@ BRM=VALUE(LOCM+2) @ @[@@ CSAT=VFN )@@G@@ALUE(LOCM+3)*AREA @ @[@@ GBPR=VALUE(LOCM+4)*AREA @ @[@@ GCPR=VFO )@@G@@ALUE(LOCM+5)*AREA @ @[@@ GEPR=VALUE(LOCM+6)*AREA @^@[@@ OVA=VAFP )@@G@@LUE(LOCM+7) @^@[@@ OVB=VALUE(LOCM+8) @ @[@@ OIK=VALUE(LOCM+9)/FQ )@@G@@AREA @^@[@@ C2=VALUE(LOCM+10) @ @[@@ VTE=VALUE(LOCM+11)*VT FR )@@G@@@ @[@@ OIKR=VALUE(LOCM+12)/AREA@^@[@@ C4=VALUE(LOCM+13) @ @[@@FS )@@G@@ VTC=VALUE(LOCM+14)*VT @ @[@@ VCRIT=VALUE(LOCM+37) @[@[@@FT )@@G@@C @#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@FU )@@G@@ GO TO (100,20,30,50,60,70),INITF @ @[@@ 20 IF (IOFF.NE.0) GO FV )@@G@@TO 40 @ @[@@ VBE=TYPE*VALUE(LOCV+2) @ @[@@ VCE=TYPE*VALUE(LOCFW )@@G@@V+3) @#@[@@ VBC=VBE-VCE @A@[@@ IF (VBE.NE.0.0) GO TO 300 FX )@@G@@@A@[@@ IF (VCE.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).ANFY )@@G@@D.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VBE=VCRIT FZ )@@G@@@#@[@@ VBC=0.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.GA )@@G@@0) GO TO 100@#@[@@ 40 VBE=0.0 @#@[@@ VBC=0.0 @#@[@@ GB )@@G@@GO TO 300 @^@[@@ 50 VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)GC )@@G@@@#@[@@ GO TO 300 @^@[@@ 60 VBE=VBEO(LX1+LOCT)@^@[@@ VBC=VBGD )@@G@@CO(LX1+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) GE )@@G@@@A@[@@ VBEO(LX0+LOCT)=VBEO(LX1+LOCT) @E@[@@ VBE=(1.0+XFACT)*VBGF )@@G@@EO(LX1+LOCT)-XFACT*VBEO(LX2+LOCT) @A@[@@ VBCO(LX0+LOCT)=VBCO(LX1+GG )@@G@@LOCT) @E@[@@ VBC=(1.0+XFACT)*VBCO(LX1+LOCT)-XFACT*VBCO(LX2+LOCT) GH )@@G@@@A@[@@ CCO(LX0+LOCT)=CCO(LX1+LOCT) @A@[@@ CBO(LX0+LOCT)=CBO(GI )@@G@@LX1+LOCT) @A@[@@ GPIO(LX0+LOCT)=GPIO(LX1+LOCT) @A@[@@ GMUO(LGJ )@@G@@X0+LOCT)=GMUO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@GK )@@G@@ GOO(LX0+LOCT)=GOO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C GL )@@G@@@B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 GM )@@G@@VBE=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE6)) @E@[@@ VBC=TYGN )@@G@@PE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE4)) @A@[@@ 110 DELVBE=VBE-VGO )@@G@@BEO(LX0+LOCT) @A@[@@ DELVBC=VBC-VBCO(LX0+LOCT) @F@[@@ GP )@@G@@CCHAT=CCO(LX0+LOCT)+(GMO(LX0+LOCT)+GOO(LX0+LOCT))*DELVBE @C@[@@ 1GQ )@@G@@ -(GOO(LX0+LOCT)+GMUO(LX0+LOCT))*DELVBC @G@[@@ CBHAT=CBO(LX0+LOCTGR )@@G@@)+GPIO(LX0+LOCT)*DELVBE+GMUO(LX0+LOCT)*DELVBC @[@[@@C @B@[@@C BYPGS )@@G@@ASS IF SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQGT )@@G@@.6) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VBE),ABS(VBEO(LX0+LOCGU )@@G@@T)))+VNTOL @B@[@@ IF (ABS(DELVBE).GE.TOL) GO TO 200 @E@[@@ GV )@@G@@TOL=RELTOL*AMAX1(ABS(VBC),ABS(VBCO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABGW )@@G@@S(DELVBC).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABGX )@@G@@S(CCO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CCHAT-CCO(LX0+LOCT)).GE.TOL)GY )@@G@@ GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBO(LX0+LOCT)))+GZ )@@G@@ABSTOL@D@[@@ IF (ABS(CBHAT-CBO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@HA )@@G@@ VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)@^@[@@ CC=CCOHB )@@G@@(LX0+LOCT) @^@[@@ CB=CBO(LX0+LOCT) @^@[@@ GPI=GPIO(LX0+LOCT)HC )@@G@@@^@[@@ GMU=GMUO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ HD )@@G@@GO=GOO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @A@[@@C LIMIT NONHE )@@G@@LINEAR BRANCH VOLTAGES @[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ HF )@@G@@CALL PNJLIM(VBE,VBEO(LX0+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(HG )@@G@@VBC,VBCO(LX0+LOCT),VT,VCRIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0HH )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVITIVES @[@[@@C HI )@@G@@@A@[@@ 300 IF (VBE.LE.0.0) GO TO 320 @^@[@@ EVBE=EXP(VBE/VT) HJ )@@G@@@ @[@@ CBE=CSAT*(EVBE-1.0) @^@[@@ GBE=CSAT*EVBE/VT @ @[@@HK )@@G@@ IF (C2.NE.0.0) GO TO 310@#@[@@ CBEN=0.0 @#@[@@ GBEN=0HL )@@G@@.0 @#@[@@ GO TO 350 @^@[@@ 310 EVBEN=EXP(VBE/VTE)@ @[@@ HM )@@G@@CBEN=C2*CSAT*(EVBEN-1.0)@ @[@@ GBEN=C2*CSAT*EVBEN/VTE @#@[@@ HN )@@G@@GO TO 350 @#@[@@ 320 GBE=CSAT/VT @#@[@@ CBE=GBE*VBE @^@[@@ HO )@@G@@GBEN=C2*CSAT/VTE @^@[@@ CBEN=GBEN*VBE @A@[@@ 350 IF (VBC.LE.0HP )@@G@@.0) GO TO 370 @^@[@@ EVBC=EXP(VBC/VT) @ @[@@ CBC=CSAT*(EVHQ )@@G@@BC-1.0) @^@[@@ GBC=CSAT*EVBC/VT @ @[@@ IF (C4.NE.0.0) GO HR )@@G@@TO 360@#@[@@ CBCN=0.0 @#@[@@ GBCN=0.0 @#@[@@ GO TO HS )@@G@@400 @^@[@@ 360 EVBCN=EXP(VBC/VTC)@ @[@@ CBCN=C4*CSAT*(EVBCN-1.0)HT )@@G@@@ @[@@ GBCN=C4*CSAT*EVBCN/VTC @#@[@@ GO TO 400 @#@[@@ 370 HU )@@G@@GBC=CSAT/VT @#@[@@ CBC=GBC*VBC @^@[@@ GBCN=C4*CSAT/VTC @^@[@@HV )@@G@@ CBCN=GBCN*VBC @[@[@@C @ @[@@C DETERMINE BASE CHARGE TERMSHW )@@G@@@[@[@@C @A@[@@ 400 Q1=1.0/(1.0-OVA*VBC-OVB*VBE) @A@[@@ IF (OIHX )@@G@@K.NE.0.0) GO TO 410 @A@[@@ IF (OIKR.NE.0.0) GO TO 410 @]@[@@HY )@@G@@ QB=Q1 @^@[@@ DQBDVE=Q1*QB*OVB @^@[@@ DQBDVC=Q1*QB*OVA HZ )@@G@@@#@[@@ GO TO 420 @ @[@@ 410 Q2=OIK*CBE+OIKR*CBC @ @[@@ IA )@@G@@SQARG=SQRT(1.0+4.0*Q2) @ @[@@ QB=Q1*(1.0+SQARG)/2.0 @B@[@@ IB )@@G@@DQBDVE=Q1*(QB*OVB+OIK*GBE/SQARG) @B@[@@ DQBDVC=Q1*(QB*OVA+OIKR*GIC )@@G@@BC/SQARG) @[@[@@C @B@[@@C DETERMINE DC INCREMENTAL CONDUCTANCES ID )@@G@@@[@[@@C @A@[@@ 420 CC=(CBE-CBC)/QB-CBC/BRM-CBCN @A@[@@ CB=CBEIE )@@G@@/BFM+CBEN+CBC/BRM+CBCN @^@[@@ GPI=GBE/BFM+GBEN @^@[@@ GMU=GBIF )@@G@@C/BRM+GBCN @B@[@@ GO=(GBC+(CBE-CBC)*DQBDVC/QB)/QB @B@[@@ IG )@@G@@GM=(GBE-(CBE-CBC)*DQBDVE/QB)/QB-GO @ @[@@ IF (MODE.NE.1) GO TO 500IH )@@G@@@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ II )@@G@@IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO 700 @[@[@@C @ @[@@IJ )@@G@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@ 500 TF=VALUE(LOCM+15) IK )@@G@@@^@[@@ TR=VALUE(LOCM+16) @ @[@@ CZBE=VALUE(LOCM+18)*AREA@^@[@@IL )@@G@@ PE=VALUE(LOCM+19) @^@[@@ XME=VALUE(LOCM+20)@ @[@@ CZBC=VIM )@@G@@ALUE(LOCM+21)*AREA@^@[@@ PC=VALUE(LOCM+22) @^@[@@ XMC=VALUE(LOIN )@@G@@CM+23)@ @[@@ FCPE=VALUE(LOCM+28) @A@[@@ IF (VBE.GE.FCPE) GIO )@@G@@O TO 510 @^@[@@ ARG=1.0-VBE/PE @ @[@@ SARG=EXP(-XME*ALOGIP )@@G@@(ARG))@E@[@@ QBE(LX0+LOCT)=TF*CBE+PE*CZBE*(1.0-ARG*SARG)/(1.0-XME) IQ )@@G@@@ @[@@ CAPBE=TF*GBE+CZBE*SARG @#@[@@ GO TO 520 @^@[@@ 510 IR )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCIS )@@G@@M+32) @^@[@@ CZBEF2=CZBE/F2 @E@[@@ QBE(LX0+LOCT)=TF*CBE+CZBIT )@@G@@E*F1+CZBEF2*(F3*(VBE-FCPE) @C@[@@ 1 +(XME/(PE+PE))*(VBE*VBE-FCPIU )@@G@@E*FCPE)) @B@[@@ CAPBE=TF*GBE+CZBEF2*(F3+XME*VBE/PE) @ @[@@ 520 IV )@@G@@FCPC=VALUE(LOCM+33) @A@[@@ IF (VBC.GE.FCPC) GO TO 530 @^@[@@IW )@@G@@ ARG=1.0-VBC/PC @ @[@@ SARG=EXP(-XMC*ALOG(ARG))@E@[@@ IX )@@G@@QBC(LX0+LOCT)=TR*CBC+PC*CZBC*(1.0-ARG*SARG)/(1.0-XMC) @ @[@@ CAPBC=IY )@@G@@TR*GBC+CZBC*SARG @#@[@@ GO TO 560 @^@[@@ 530 F1=VALUE(LOCM+34) IZ )@@G@@@^@[@@ F2=VALUE(LOCM+35) @^@[@@ F3=VALUE(LOCM+36) @^@[@@ JA )@@G@@CZBCF2=CZBC/F2 @E@[@@ QBC(LX0+LOCT)=TR*CBC+CZBC*F1+CZBCF2*(F3*(VJB )@@G@@BC-FCPC) @C@[@@ 1 +(XMC/(PC+PC))*(VBC*VBC-FCPC*FCPC)) @B@[@@JC )@@G@@ CAPBC=TR*GBC+CZBCF2*(F3+XMC*VBC/PC) @[@[@@C @A@[@@C STORE SMAJD )@@G@@LL-SIGNAL PARAMETERS @[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODJE )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GOJF )@@G@@ TO 600 @ @[@@ VALUE(LX0+LOCT+9)=CAPBE @ @[@@ VALUE(LX0+LOJG )@@G@@CT+11)=CAPBC@#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYJH )@@G@@SIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ JI )@@G@@QBE(LX1+LOCT)=QBE(LX0+LOCT) @A@[@@ QBC(LX1+LOCT)=QBC(LX0+LOCT) JJ )@@G@@@B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBE,LOCT+8) @#@[@@ GPI=GPI+GEQ JK )@@G@@@ @[@@ CB=CB+CQBE(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBJL )@@G@@C,LOCT+10) @#@[@@ GMU=GMU+GEQ @ @[@@ CB=CB+CQBC(LX0+LOCT) JM )@@G@@@ @[@@ CC=CC-CQBC(LX0+LOCT) @A@[@@ IF (INITF.NE.5) GO TO 70JN )@@G@@0 @A@[@@ CQBE(LX1+LOCT)=CQBE(LX0+LOCT) @A@[@@ CQBC(LX1+LOCJO )@@G@@T)=CQBC(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C JP )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO JQ )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 JR )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABS(CC))+ABSTOL @B@[@@ JS )@@G@@IF (ABS(CCHAT-CC).GT.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CBHJT )@@G@@AT),ABS(CB))+ABSTOL @B@[@@ IF (ABS(CBHAT-CB).LE.TOL) GO TO 750 JU )@@G@@@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBEO(LX0+LOCT)=VBE@^@[@@ JV )@@G@@VBCO(LX0+LOCT)=VBC@^@[@@ CCO(LX0+LOCT)=CC @^@[@@ CBO(LX0+LOCTJW )@@G@@)=CB @^@[@@ GPIO(LX0+LOCT)=GPI@^@[@@ GMUO(LX0+LOCT)=GMU@^@[@@JX )@@G@@ GMO(LX0+LOCT)=GM @^@[@@ GOO(LX0+LOCT)=GO @[@[@@C @ @[@@JY )@@G@@C LINEAR SUBSTRATE CAPACITOR @[@[@@C @ @[@@ 800 IF (MODE.NE.1) GO JZ )@@G@@TO 810@#@[@@ GCCS=0.0 @#@[@@ CEQCS=0.0 @#@[@@ GO TO KA )@@G@@900 @ @[@@ 810 CCS=VALUE(LOCM+17)*AREA @A@[@@ IF (INITF.NE.6) GOKB )@@G@@ TO 820 @A@[@@ QCS(LX0+LOCT)=QCS(LX1+LOCT) @#@[@@ GO TO KC )@@G@@830 @C@[@@ 820 QCS(LX0+LOCT)=CCS*VALUE(LVNIM1+NODE4) @A@[@@ KD )@@G@@IF (INITF.NE.5) GO TO 830 @A@[@@ QCS(LX1+LOCT)=QCS(LX0+LOCT) KE )@@G@@@B@[@@ 830 CALL INTGR8(GCCS,CEQCS,CCS,LOCT+12) @A@[@@ IF (INITF.NEKF )@@G@@.5) GO TO 900 @A@[@@ CQCS(LX1+LOCT)=CQCS(LX0+LOCT) @[@[@@C KG )@@G@@@A@[@@C LOAD CURRENT EXCITATION VECTOR @[@[@@C @C@[@@ 900 CEQBE=KH )@@G@@TYPE*(CC+CB-VBE*(GM+GO+GPI)+VBC*GO) @C@[@@ CEQBC=TYPE*(-CC+VBE*(GM+KI )@@G@@GO)-VBC*(GMU+GO)) @D@[@@ VALUE(LVN+NODE4)=VALUE(LVN+NODE4)-CEQCS+CEKJ )@@G@@QBC @D@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODE5)-CEQBE-CEQBC @C@[@@KK )@@G@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CEQBE @[@[@@C @#@[@@C LOAKL )@@G@@D Y MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ KM )@@G@@VALUE(LOCY)=VALUE(LOCY)+GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@A@[@@KN )@@G@@ VALUE(LOCY)=VALUE(LOCY)+GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+26)KO )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEPR @ @[@@ LOCY=LYNL+NODPLC(LKP )@@G@@OC+27)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GMU+GO+GCPR+GCCS @ @[@@ KQ )@@G@@LOCY=LYNL+NODPLC(LOC+28)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GBPR+GPI+GMUKR )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+29)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+KS )@@G@@GPI+GEPR+GM+GO @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(KT )@@G@@LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ KU )@@G@@VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@KV )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)KW )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LKX )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU+GM@ @[@@ LOCY=LYNL+NOKY )@@G@@DPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GM-GO @ @[@@ LOCY=LKZ )@@G@@YNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ LA )@@G@@LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU @ @[@@LB )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GPI LC )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-LD )@@G@@GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(LE )@@G@@LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@A@[@@ VALUE(LOCY)=LF )@@G@@VALUE(LOCY)-GPI-GM@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 LG )@@G@@@]@[@@ END @B@[@@ SUBROUTINE FETLIM(VNEW,VOLD,VTO) @[@[@@LH )@@G@@C @G@[@@C THIS ROUTINE LIMITS THE PER-ITERATION CHANGE OF FET VOLI )@@G@@LTAGES. @[@[@@C @[@[@@C @D@[@@C THREE REGIONS OF OPERATLJ )@@G@@ION ARE IDENTIFIED: @[@[@@C @C@[@@C V < VTO LK )@@G@@ DEFINITELY OFF@E@[@@C VTO @ V @ VTO+3.5 OFF OR ON DEPELL )@@G@@NDING ON VBS@C@[@@C VTO+3.5 < V DEFINITELY ON @[@[@@LM )@@G@@C @A@[@@ VTSTHI=ABS(2.0*(VOLD-VTO))+2.0@ @[@@ VTSTLO=VTSTHLN )@@G@@I/2.0+2.0 @#@[@@ VTOX=VTO+3.5@^@[@@ DELV=VNEW-VOLD @[@[@@LO )@@G@@C @A@[@@ IF (VOLD.LT.VTO) GO TO 300 @A@[@@ IF (VOLD.LT.LP )@@G@@VTOX) GO TO 200 @[@[@@C @]@[@@C ON ... @[@[@@C @A@[@@ LQ )@@G@@IF (DELV.GT.0.0) GO TO 120 @#@[@@C... GOING OFF @A@[@@ IF (VNLR )@@G@@EW.LT.VTOX) GO TO 110 @A@[@@ IF (-DELV.LE.VTSTLO) GO TO 500@^@[@@LS )@@G@@ VNEW=VOLD-VTSTLO @#@[@@ GO TO 500 @ @[@@ 110 VNEW=AMAX1(VLT )@@G@@NEW,VTO+2.0)@#@[@@ GO TO 500 @#@[@@C... STAYING ON @A@[@@ 120 LU )@@G@@IF (DELV.LT.VTSTHI) GO TO 500 @^@[@@ VNEW=VOLD+VTSTHI @#@[@@ LV )@@G@@GO TO 500 @[@[@@C @^@[@@C MIDDLE REGION ... @[@[@@C @A@[@@LW )@@G@@ 200 IF (DELV.GT.0.0) GO TO 210 @#@[@@C... DECREASING @ @[@@ LX )@@G@@VNEW=AMAX1(VNEW,VTO-0.5)@#@[@@ GO TO 500 @#@[@@C... INCREASING LY )@@G@@@ @[@@ 210 VNEW=AMIN1(VNEW,VTO+4.0)@#@[@@ GO TO 500 @[@[@@C LZ )@@G@@@]@[@@C OFF ... @[@[@@C @A@[@@ 300 IF (DELV.GT.0.0) GO TO 310 MA )@@G@@@A@[@@ IF (-DELV.LE.VTSTHI) GO TO 500@^@[@@ VNEW=VOLD-VTSTHI MB )@@G@@@#@[@@ GO TO 500 @^@[@@ 310 VTEMP=VTO+0.5 @A@[@@ IF (VNMC )@@G@@EW.GT.VTEMP) GO TO 320 @A@[@@ IF (DELV.LE.VTSTLO) GO TO 500 @^@[@@MD )@@G@@ VNEW=VOLD+VTSTLO @#@[@@ GO TO 500 @#@[@@ 320 VNEW=VTEMP ME )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 500 RETURN@]@[@@ MF )@@G@@END @^@[@@ SUBROUTINE JFET @[@[@@C @F@[@@C THIS ROUTINEMG )@@G@@ PROCESSES JFETS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@ MH )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@MI )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, MJ )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFMK )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACML )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,MM )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONMN )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1MO )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMMP )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEMQ )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOMR )@@G@@SOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLMS )@@G@@TZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EMT )@@G@@PS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEMU )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEMV )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VGMW )@@G@@SO(1),VGDO(1),CGO(1),CDO(1),CGDO(1),GMO(1),GDSO(1), @D@[@@ 1 GGSMX )@@G@@O(1),GGDO(1),QGS(1),CQGS(1),QGD(1),CQGD(1)@E@[@@ EQUIVALENCE (VGSO(MY )@@G@@1),VALUE( 1)),(VGDO(1),VALUE( 2)), @E@[@@ 1 (CGO (1),VALMZ )@@G@@UE( 3)),(CDO (1),VALUE( 4)), @E@[@@ 2 (CGDO(1),VALUE( 5)NA )@@G@@),(GMO (1),VALUE( 6)), @E@[@@ 3 (GDSO(1),VALUE( 7)),(GGSNB )@@G@@O(1),VALUE( 8)), @E@[@@ 4 (GGDO(1),VALUE( 9)),(QGS (1),VNC )@@G@@ALUE(10)), @E@[@@ 5 (CQGS(1),VALUE(11)),(QGD (1),VALUE(1ND )@@G@@2)), @B@[@@ 6 (CQGD(1),VALUE(13)) @[@[@@C @[@[@@NE )@@G@@C @^@[@@ LOC=LOCATE(13) @ @[@@ 10 IF (LOC.EQ.0) RETURN NF )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@NG )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@NH )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @^@[@@NI )@@G@@ LOCM=NODPLC(LOC+7)@^@[@@ IOFF=NODPLC(LOC+8)@ @[@@ TYPE=NNJ )@@G@@ODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NNK )@@G@@ODPLC(LOC+19) @[@[@@C @^@[@@C DC MODEL PARAMETERS @[@[@@C NL )@@G@@@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ VTO=VALUE(LOCM+1) @ @[@@ NM )@@G@@BETA=VALUE(LOCM+2)*AREA @ @[@@ XLAMB=VALUE(LOCM+3) @ @[@@ NN )@@G@@GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VALUE(LOCM+5)*AREA @ @[@@ NO )@@G@@CSAT=VALUE(LOCM+9)*AREA @ @[@@ VCRIT=VALUE(LOCM+16) @[@[@@C NP )@@G@@@#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@ NQ )@@G@@GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 NR )@@G@@@ @[@@ VDS=TYPE*VALUE(LOCV+2) @ @[@@ VGS=TYPE*VALUE(LOCV+3) NS )@@G@@@#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 @A@[@@NT )@@G@@ IF (VGS.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODNU )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VGS=-1.0 @#@[@@NV )@@G@@ VGD=-1.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO NW )@@G@@TO 100@#@[@@ 40 VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO NX )@@G@@300 @^@[@@ 50 VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@NY )@@G@@ GO TO 300 @^@[@@ 60 VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1NZ )@@G@@+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@OA )@@G@@ VGSO(LX0+LOCT)=VGSO(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1OB )@@G@@+LOCT)-XFACT*VGSO(LX2+LOCT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) OC )@@G@@@E@[@@ VGD=(1.0+XFACT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@OD )@@G@@ CGO(LX0+LOCT)=CGO(LX1+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(LX1+LOOE )@@G@@CT) @A@[@@ CGDO(LX0+LOCT)=CGDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCTOF )@@G@@)=GMO(LX1+LOCT) @A@[@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @A@[@@ OG )@@G@@GGSO(LX0+LOCT)=GGSO(LX1+LOCT) @A@[@@ GGDO(LX0+LOCT)=GGDO(LX1+LOCT) OH )@@G@@@#@[@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCOI )@@G@@H VOLTAGES @[@[@@C @E@[@@ 100 VGS=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(OJ )@@G@@LVNIM1+NODE5)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1OK )@@G@@+NODE4)) @A@[@@ 110 DELVGS=VGS-VGSO(LX0+LOCT) @A@[@@ DELVGDOL )@@G@@=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGS-DELVGD @G@[@@ OM )@@G@@CGHAT=CGO(LX0+LOCT)+GGDO(LX0+LOCT)*DELVGD+GGSO(LX0+LOCT)*DELVGS @G@[@@ON )@@G@@ CDHAT=CDO(LX0+LOCT)+GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS OO )@@G@@@A@[@@ 1 -GGDO(LX0+LOCT)*DELVGD @[@[@@C @B@[@@C BYPASS IFOP )@@G@@ SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GOOQ )@@G@@ TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VOR )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=REOS )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVOT )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CGO(OU )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CGHAT-CGO(LX0+LOCT)).GE.TOL) GO TOOV )@@G@@ 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(LX0+LOCT)))+ABSTOLOW )@@G@@@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@ OX )@@G@@VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD OY )@@G@@@^@[@@ CG=CGO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) @^@[@@ OZ )@@G@@CGD=CGDO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ GDS=GDSO(LX0PA )@@G@@+LOCT)@^@[@@ GGS=GGSO(LX0+LOCT)@^@[@@ GGD=GGDO(LX0+LOCT)@#@[@@PB )@@G@@ GO TO 900 @[@[@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES PC )@@G@@@[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ CALL PNJLIM(VGS,VGSO(LX0PD )@@G@@+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(VGD,VGDO(LX0+LOCT),VT,VCPE )@@G@@RIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0@B@[@@ CALL FETLIM(PF )@@G@@VGS,VGSO(LX0+LOCT),VTO) @B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VTO) PG )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVATIVES @[@[@@C PH )@@G@@@#@[@@ 300 VDS=VGS-VGD @A@[@@ IF (VGS.GT.0.0) GO TO 310 @#@[@@PI )@@G@@ GGS=CSAT/VT @#@[@@ CG=GGS*VGS @#@[@@ GO TO 320 @^@[@@PJ )@@G@@ 310 EVGS=EXP(VGS/VT) @^@[@@ GGS=CSAT*EVGS/VT @^@[@@ CG=CSAPK )@@G@@T*(EVGS-1.0)@A@[@@ 320 IF (VGD.GT.0.0) GO TO 330 @#@[@@ GGD=CSPL )@@G@@AT/VT @#@[@@ CGD=GGD*VGD @#@[@@ GO TO 340 @^@[@@ 330 EVGD=EPM )@@G@@XP(VGD/VT) @^@[@@ GGD=CSAT*EVGD/VT @ @[@@ CGD=CSAT*(EVGD-1.0PN )@@G@@) @#@[@@ 340 CG=CG+CGD @[@[@@C @E@[@@C COMPUTE DRAIN CURRENTPO )@@G@@ AND DERIVITIVES FOR NORMAL MODE @[@[@@C @A@[@@ 400 IF (VDS.LT.0PP )@@G@@.0) GO TO 450 @#@[@@ VGST=VGS-VTO@[@[@@C @ @[@@C NORMAL MOPQ )@@G@@DE, CUTOFF REGION @[@[@@C @A@[@@ IF (VGST.GT.0.0) GO TO 410 PR )@@G@@@#@[@@ CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GDS=0.0 @#@[@@PS )@@G@@ GO TO 490 @[@[@@C @A@[@@C NORMAL MODE, SATURATION REGION PT )@@G@@@[@[@@C @A@[@@ 410 BETAP=BETA*(1.0+XLAMB*VDS) @^@[@@ TWOB=BPU )@@G@@ETAP+BETAP @A@[@@ IF (VGST.GT.VDS) GO TO 420 @ @[@@ CDRAINPV )@@G@@=BETAP*VGST*VGST @#@[@@ GM=TWOB*VGST@ @[@@ GDS=XLAMB*BETA*VGSPW )@@G@@T*VGST@#@[@@ GO TO 490 @[@[@@C @ @[@@C NORMAL MODE, LINEAR RPX )@@G@@EGION @[@[@@C @B@[@@ 420 CDRAIN=BETAP*VDS*(VGST+VGST-VDS) @#@[@@PY )@@G@@ GM=TWOB*VDS @E@[@@ GDS=TWOB*(VGST-VDS)+XLAMB*BETA*VDS*(VGST+VPZ )@@G@@GST-VDS) @#@[@@ GO TO 490 @[@[@@C @E@[@@C COMPUTE DRAIN CQA )@@G@@URRENT AND DERIVITIVES FOR INVERSE MODE @[@[@@C @#@[@@ 450 VGDT=VQB )@@G@@GD-VTO@[@[@@C @ @[@@C INVERSE MODE, CUTOFF REGION@[@[@@C @A@[@@QC )@@G@@ IF (VGDT.GT.0.0) GO TO 460 @#@[@@ CDRAIN=0.0 @]@[@@ QD )@@G@@GM=0.0@#@[@@ GDS=0.0 @#@[@@ GO TO 490 @[@[@@C @A@[@@QE )@@G@@C INVERSE MODE, SATURATION REGION @[@[@@C @A@[@@ 460 BETAP=BETA*(QF )@@G@@1.0-XLAMB*VDS) @^@[@@ TWOB=BETAP+BETAP @A@[@@ IF (VGDT.GT.QG )@@G@@-VDS) GO TO 470 @ @[@@ CDRAIN=-BETAP*VGDT*VGDT @^@[@@ GM=-TWQH )@@G@@OB*VGDT @A@[@@ GDS=XLAMB*BETA*VGDT*VGDT-GM @#@[@@ GO TO QI )@@G@@490 @[@[@@C @ @[@@C INVERSE MODE, LINEAR REGION@[@[@@C @B@[@@QJ )@@G@@ 470 CDRAIN=BETAP*VDS*(VGDT+VGDT+VDS) @#@[@@ GM=TWOB*VDS @D@[@@QK )@@G@@ GDS=TWOB*VGDT-XLAMB*BETA*VDS*(VGDT+VGDT+VDS) @[@[@@C @B@[@@QL )@@G@@C COMPUTE EQUIVALENT DRAIN CURRENT SOURCE@[@[@@C @^@[@@ 490 CD=CDRQM )@@G@@AIN-CGD @ @[@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.QN )@@G@@EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 50QO )@@G@@0 @#@[@@ GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENQP )@@G@@TS @[@[@@C @ @[@@ 500 CZGS=VALUE(LOCM+6)*AREA @ @[@@ CZGD=VQQ )@@G@@ALUE(LOCM+7)*AREA @^@[@@ PHIB=VALUE(LOCM+8)@^@[@@ TWOP=PHIB+PHQR )@@G@@IB @ @[@@ FCPB=VALUE(LOCM+12) @^@[@@ FCPB2=FCPB*FCPB QS )@@G@@@^@[@@ F1=VALUE(LOCM+13) @^@[@@ F2=VALUE(LOCM+14) @^@[@@ QT )@@G@@F3=VALUE(LOCM+15) @^@[@@ CZGSF2=CZGS/F2 @^@[@@ CZGDF2=CZGD/QU )@@G@@F2 @A@[@@ IF (VGS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.QV )@@G@@0-VGS/PHIB) @B@[@@ QGS(LX0+LOCT)=TWOP*CZGS*(1.0-SARG) @^@[@@ QW )@@G@@CAPGS=CZGS/SARG @#@[@@ GO TO 520 @D@[@@ 510 QGS(LX0+LOCT)=CZGSQX )@@G@@*F1+CZGSF2*(F3*(VGS-FCPB) @B@[@@ 1 +(VGS*VGS-FCPB2)/(TWOP+TWOPQY )@@G@@)) @A@[@@ CAPGS=CZGSF2*(F3+VGS/TWOP) @A@[@@ 520 IF (VGD.GE.FQZ )@@G@@CPB) GO TO 530 @ @[@@ SARG=SQRT(1.0-VGD/PHIB) @B@[@@ QGD(LXRA )@@G@@0+LOCT)=TWOP*CZGD*(1.0-SARG) @^@[@@ CAPGD=CZGD/SARG @#@[@@ RB )@@G@@GO TO 560 @D@[@@ 530 QGD(LX0+LOCT)=CZGD*F1+CZGDF2*(F3*(VGD-FCPB) RC )@@G@@@B@[@@ 1 +(VGD*VGD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPGD=CZGDF2RD )@@G@@*(F3+VGD/TWOP) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS RE )@@G@@@[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NERF )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ RG )@@G@@VALUE(LX0+LOCT+9)=CAPGS @ @[@@ VALUE(LX0+LOCT+11)=CAPGD@#@[@@ RH )@@G@@GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@RI )@@G@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ QGS(LX1+LOCT)=QGS(LX0+LORJ )@@G@@CT) @A@[@@ QGD(LX1+LOCT)=QGD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(RK )@@G@@GEQ,CEQ,CAPGS,LOCT+9) @#@[@@ GGS=GGS+GEQ @ @[@@ CG=CG+CQGS(LRL )@@G@@X0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPGD,LOCT+11) @#@[@@ RM )@@G@@GGD=GGD+GEQ @ @[@@ CG=CG+CQGD(LX0+LOCT) @ @[@@ CD=CD-CQGD(LRN )@@G@@X0+LOCT) @ @[@@ CGD=CGD+CQGD(LX0+LOCT) @A@[@@ IF (INITF.NERO )@@G@@.5) GO TO 700 @A@[@@ CQGS(LX1+LOCT)=CQGS(LX0+LOCT) @A@[@@ RP )@@G@@CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE RQ )@@G@@@[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IORR )@@G@@FF.EQ.0) GO TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GRS )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CG))+ABSTOL RT )@@G@@@B@[@@ IF (ABS(CGHAT-CG).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*ARU )@@G@@MAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ IF (ABS(CDHAT-CD).LE.TOLRV )@@G@@) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VGSO(LX0+LOCT)=VGSRW )@@G@@@^@[@@ VGDO(LX0+LOCT)=VGD@^@[@@ CGO(LX0+LOCT)=CG @^@[@@ RX )@@G@@CDO(LX0+LOCT)=CD @^@[@@ CGDO(LX0+LOCT)=CGD@^@[@@ GMO(LX0+LOCTRY )@@G@@)=GM @^@[@@ GDSO(LX0+LOCT)=GDS@^@[@@ GGSO(LX0+LOCT)=GGS@^@[@@RZ )@@G@@ GGDO(LX0+LOCT)=GGD@[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@SA )@@G@@C @ @[@@ 900 CEQGD=TYPE*(CGD-GGD*VGD)@A@[@@ CEQGS=TYPE*((CG-CGSB )@@G@@D)-GGS*VGS) @B@[@@ CDREQ=TYPE*((CD+CGD)-GDS*VDS-GM*VGS)@D@[@@ SC )@@G@@VALUE(LVN+NODE2)=VALUE(LVN+NODE2)-CEQGS-CEQGD @D@[@@ VALUE(LVN+NOSD )@@G@@DE4)=VALUE(LVN+NODE4)-CDREQ+CEQGD @D@[@@ VALUE(LVN+NODE5)=VALUE(LSE )@@G@@VN+NODE5)+CDREQ+CEQGS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C SF )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+SG )@@G@@GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@B@[@@ VALUE(LOCY)=VALUE(SH )@@G@@LOCY)+GGD+GGS @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ VALUE(SI )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@B@[@@ SJ )@@G@@VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+24)SK )@@G@@@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR+GDS+GM+GGS @ @[@@ LOCY=LSL )@@G@@YNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ SM )@@G@@LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGD @ @[@@SN )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGS SO )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-SP )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(SQ )@@G@@LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=SR )@@G@@VALUE(LOCY)+GM-GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(SS )@@G@@LOCY)=VALUE(LOCY)-GDS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ ST )@@G@@VALUE(LOCY)=VALUE(LOCY)-GGS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@SU )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+18)SV )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS @^@[@@ 1000 LOC=NODPLC(LOC) SW )@@G@@@#@[@@ GO TO 10 @]@[@@ END @^@[@@ SUBROUTINE MOSFET SX )@@G@@@[@[@@C @G@[@@C THIS ROUTINE PROCESSES MOSFETS FOR DC AND TRANSISY )@@G@@ENT ANALYSES. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,SZ )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOTA )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NTB )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISTC )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0TD )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5TE )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50TF )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,ITG )@@G@@BR,NUMVS @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,TH )@@G@@XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,TI )@@G@@GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1TJ )@@G@@,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUTK )@@G@@B,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELTL )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METTM )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@TN )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, TO )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX TP )@@G@@@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@TQ )@@G@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALTR )@@G@@UE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VBDO(1),VBSO(1),VGSOTS )@@G@@(1),VGDO(1),CDO(1),CBSO(1),CBDO(1), @G@[@@ 1 GMO(1),GDSO(1),GMBSO(TT )@@G@@1),GBDO(1),GBSO(1),QBD(1),CQBD(1),QBS(1), @F@[@@ 2 CQBS(1),QGS(1),TU )@@G@@CQGS(1),QGD(1),CQGD(1),QGB(1),CQGB(1) @E@[@@ EQUIVALENCE (VBDO TV )@@G@@(1),VALUE( 1)),(VBSO (1),VALUE( 2)),@E@[@@ 1 (VGSO (1),VATW )@@G@@LUE( 3)),(VGDO (1),VALUE( 4)),@E@[@@ 2 (CDO (1),VALUE( 5TX )@@G@@)),(CBSO (1),VALUE( 6)),@E@[@@ 3 (CBDO (1),VALUE( 7)),(GMTY )@@G@@O (1),VALUE( 8)),@E@[@@ 4 (GDSO (1),VALUE( 9)),(GMBSO(1)TZ )@@G@@,VALUE(10)),@E@[@@ 5 (GBDO (1),VALUE(11)),(GBSO (1),VALUEUA )@@G@@(12)),@E@[@@ 6 (QBD (1),VALUE(13)),(CQBD (1),VALUE(14)),UB )@@G@@@E@[@@ 7 (QBS (1),VALUE(15)),(CQBS (1),VALUE(16)),@E@[@@UC )@@G@@ 8 (QGS (1),VALUE(17)),(CQGS (1),VALUE(18)),@E@[@@ 9UD )@@G@@ (QGD (1),VALUE(19)),(CQGD (1),VALUE(20)),@E@[@@ A UE )@@G@@ (QGB (1),VALUE(21)),(CQGB (1),VALUE(22)) @[@[@@C @[@[@@C UF )@@G@@@^@[@@ LOC=LOCATE(14) @ @[@@ 10 IF (LOC.EQ.0) RETURN @^@[@@UG )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ UH )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ UI )@@G@@NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ UJ )@@G@@NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ IOFF=NUK )@@G@@ODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(UL )@@G@@LOCM+1) @ @[@@ LOCT=NODPLC(LOC+26) @[@[@@C @^@[@@C DC UM )@@G@@MODEL PARAMETERS @[@[@@C @^@[@@ XJ=VALUE(LOCM+19) @C@[@@ UN )@@G@@XL=VALUE(LOCV+1)-2.0*VALUE(LOCM+20)*XJ @^@[@@ XW=VALUE(LOCV+2) UO )@@G@@@ @[@@ DEVMOD=VALUE(LOCV+8) @ @[@@ VTO=TYPE*VALUE(LOCM+1) UP )@@G@@@ @[@@ VINIT=VALUE(LOCM+33) @ @[@@ CSAT=VALUE(LOCM+15) UQ )@@G@@@^@[@@ AD=VALUE(LOCV+3) @^@[@@ AS=VALUE(LOCV+4) @^@[@@ UR )@@G@@CDSAT=CSAT*AD @^@[@@ CSSAT=CSAT*AS @^@[@@ GDPR=VALUE(LUS )@@G@@OCM+6)@^@[@@ GSPR=VALUE(LOCM+7)@ @[@@ COVLGS=VALUE(LOCM+8)*XW UT )@@G@@@ @[@@ COVLGD=VALUE(LOCM+9)*XW @ @[@@ COVLGB=VALUE(LOCM+10)*XLUU )@@G@@@^@[@@ LEV=VALUE(LOCM+36)@ @[@@ IF (LEV.GT.2) GO TO 15 @[@[@@UV )@@G@@C @A@[@@C MOS1 AND MOS2 MODEL PARAMETERS@[@[@@C @ @[@@ UW )@@G@@BETA=VALUE(LOCM+2)*XW/XL@ @[@@ GAMMA=VALUE(LOCM+3) @^@[@@ UX )@@G@@PHI=VALUE(LOCM+4) @ @[@@ XLAMDA=VALUE(LOCM+5) @^@[@@ COX=VAUY )@@G@@LUE(LOCM+13)@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ XNFS=VALUE(LUZ )@@G@@OCM+18) @^@[@@ VBP=VALUE(LOCM+24)@ @[@@ UEXP=VALUE(LOCM+25VA )@@G@@) @ @[@@ UTRA=VALUE(LOCM+26) @ @[@@ VBI=TYPE*VALUE(LOCVB )@@G@@M+34) @^@[@@ XD=VALUE(LOCM+35) @#@[@@ GO TO 18 @[@[@@C VC )@@G@@@ @[@@C E-B MODEL PARAMETERS @[@[@@C @ @[@@ 15 BETA=VALUE(LVD )@@G@@OCM+2)*XW/XL@^@[@@ COX=VALUE(LOCM+13)@^@[@@ TOX=VALUE(LOCM+37)VE )@@G@@@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ UFB=TYPE*VALUE(LOCM+34) VF )@@G@@@ @[@@ ALPHA=VALUE(LOCM+35) @ @[@@ VALPHA=VALUE(LOCM+38) VG )@@G@@@ @[@@ ALPHAF=VALUE(LOCM+39) @ @[@@ TAHPLA=VALUE(LOCM+40) VH )@@G@@@ @[@@ AHPLA2=VALUE(LOCM+41) @ @[@@ UPHIB=VALUE(LOCM+42) VI )@@G@@@ @[@@ SCATT=VALUE(LOCM+43)/XL @[@[@@C @#@[@@C INITIALIZATION VJ )@@G@@@[@[@@C @#@[@@ 18 CONTINUE @]@[@@ KCAP=0@#@[@@ ICHECKVK )@@G@@=0 @B@[@@ GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOVL )@@G@@FF.NE.0) GO TO 40 @ @[@@ VDS=TYPE*VALUE(LOCV+5) @ @[@@ VGS=TYVM )@@G@@PE*VALUE(LOCV+6) @ @[@@ VBS=TYPE*VALUE(LOCV+7) @#@[@@ VBD=VBVN )@@G@@S-VDS @#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 VO )@@G@@@A@[@@ IF (VGS.NE.0.0) GO TO 300 @A@[@@ IF (VBS.NE.0.0) GOVP )@@G@@ TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEVQ )@@G@@.0)) GO TO 300 @#@[@@ VBS=VINIT @#@[@@ VBD=VINIT @#@[@@VR )@@G@@ VGS=VTO @#@[@@ VGD=VTO @#@[@@ GO TO 300 @ @[@@VS )@@G@@ 30 IF (IOFF.EQ.0) GO TO 100@#@[@@ 40 VBS=0.0 @#@[@@ VBD=0.VT )@@G@@0 @#@[@@ VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO VU )@@G@@300 @^@[@@ 50 VBS=VBSO(LX0+LOCT)@^@[@@ VBD=VBDO(LX0+LOCT)@^@[@@VV )@@G@@ VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ GO TO VW )@@G@@300 @^@[@@ 60 VBS=VBSO(LX1+LOCT)@^@[@@ VBD=VBDO(LX1+LOCT)@^@[@@VX )@@G@@ VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1+LOCT)@#@[@@ GO TO VY )@@G@@300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@ VBSO(LX0+LOCT)=VBSVZ )@@G@@O(LX1+LOCT) @E@[@@ VBS=(1.0+XFACT)*VBSO(LX1+LOCT)-XFACT*VBSO(LX2+LOWA )@@G@@CT) @A@[@@ VBDO(LX0+LOCT)=VBDO(LX1+LOCT) @E@[@@ VBD=(1.0+XFAWB )@@G@@CT)*VBDO(LX1+LOCT)-XFACT*VBDO(LX2+LOCT) @A@[@@ VGSO(LX0+LOCT)=VGSWC )@@G@@O(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1+LOCT)-XFACT*VGSO(LX2+LOWD )@@G@@CT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) @E@[@@ VGD=(1.0+XFAWE )@@G@@CT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(WF )@@G@@LX1+LOCT) @A@[@@ CBSO(LX0+LOCT)=CBSO(LX1+LOCT) @A@[@@ CBDO(LWG )@@G@@X0+LOCT)=CBDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@WH )@@G@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @B@[@@ GMBSO(LX0+LOCT)=GMBSO(LXWI )@@G@@1+LOCT) @A@[@@ GBDO(LX0+LOCT)=GBDO(LX1+LOCT) @A@[@@ GBSO(LWJ )@@G@@X0+LOCT)=GBSO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C @B@[@@C COMWK )@@G@@PUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 VBS=TYPE*(VAWL )@@G@@LUE(LVNIM1+NODE4)-VALUE(LVNIM1+NODE6)) @E@[@@ VBD=TYPE*(VALUE(LVWM )@@G@@NIM1+NODE4)-VALUE(LVNIM1+NODE5)) @E@[@@ VGS=TYPE*(VALUE(LVNIM1+NWN )@@G@@ODE2)-VALUE(LVNIM1+NODE6)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-WO )@@G@@VALUE(LVNIM1+NODE5)) @A@[@@ 110 DELVBS=VBS-VBSO(LX0+LOCT) @A@[@@WP )@@G@@ DELVBD=VBD-VBDO(LX0+LOCT) @A@[@@ DELVGS=VGS-VGSO(LX0+LOCTWQ )@@G@@) @A@[@@ DELVGD=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGWR )@@G@@S-DELVGD @A@[@@ IF (DEVMOD.LT.0.0) GO TO 120 @G@[@@ CDHAT=WS )@@G@@CDO(LX0+LOCT)-GBDO(LX0+LOCT)*DELVBD+GMBSO(LX0+LOCT)*DELVBS @D@[@@ 1WT )@@G@@ +GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS @#@[@@ GO TO 130 WU )@@G@@@F@[@@ 120 CDHAT=CDO(LX0+LOCT)-(GBDO(LX0+LOCT)-GMBSO(LX0+LOCT))*DELVBD WV )@@G@@@D@[@@ 1 -GMO(LX0+LOCT)*DELVGD+GDSO(LX0+LOCT)*DELVDS @F@[@@ 130 WW )@@G@@CBHAT=CBSO(LX0+LOCT)+CBDO(LX0+LOCT)+GBDO(LX0+LOCT)*DELVBD @A@[@@ 1WX )@@G@@ +GBSO(LX0+LOCT)*DELVBS @[@[@@C @B@[@@C BYPASS IF SOLUTION HAWY )@@G@@S NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 WZ )@@G@@@E@[@@ TOL=RELTOL*AMAX1(ABS(VBS),ABS(VBSO(LX0+LOCT)))+VNTOL @B@[@@XA )@@G@@ IF (ABS(DELVBS).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(AXB )@@G@@BS(VBD),ABS(VBDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVBD).GE.TOL) XC )@@G@@GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VXD )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=REXE )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVXF )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(XG )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TOXH )@@G@@ 200 @G@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBSO(LX0+LOCT)+CBDO(LXXI )@@G@@0+LOCT))) @#@[@@ 1 +ABSTOL @G@[@@ IF (ABS(CBHAT-(CBSO(LX0+XJ )@@G@@LOCT)+CBDO(LX0+LOCT))).GE.TOL) GO TO 200 @^@[@@ VBD=VBDO(LX0+LOCT)XK )@@G@@@^@[@@ VBS=VBSO(LX0+LOCT)@^@[@@ VGS=VGSO(LX0+LOCT)@^@[@@ XL )@@G@@VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD @#@[@@ VGB=VGS-VBS @^@[@@XM )@@G@@ CD=CDO(LX0+LOCT) @^@[@@ CBS=CBSO(LX0+LOCT)@^@[@@ CBD=CBXN )@@G@@DO(LX0+LOCT)@ @[@@ CDRAIN=DEVMOD*(CD+CBD) @^@[@@ GM=GMO(LX0+LXO )@@G@@OCT) @^@[@@ GDS=GDSO(LX0+LOCT)@ @[@@ GMBS=GMBSO(LX0+LOCT) XP )@@G@@@^@[@@ GBD=GBDO(LX0+LOCT)@^@[@@ GBS=GBSO(LX0+LOCT)@]@[@@ XQ )@@G@@KCAP=1@ @[@@ IF (LEV.GT.2) GO TO 400 @#@[@@ GO TO 800 @[@[@@XR )@@G@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES @[@[@@C @ @[@@ 200 XS )@@G@@VON=TYPE*VALUE(LOCV+9) @B@[@@ CALL FETLIM(VGS,VGSO(LX0+LOCT),VON) XT )@@G@@@B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VON) @#@[@@ VDS=VGS-VGD XU )@@G@@@A@[@@ IF (VDS.LT.0.0) GO TO 210 @B@[@@ VCRIT=VT*ALOG(VT/(XV )@@G@@ROOT2*CSSAT)) @D@[@@ CALL PNJLIM(VBS,VBSO(LX0+LOCT),VT,VCRIT,ICXW )@@G@@HECK) @#@[@@ VBD=VBS-VDS @#@[@@ GO TO 300 @B@[@@ 210 VCRIT=XX )@@G@@VT*ALOG(VT/(ROOT2*CDSAT)) @D@[@@ CALL PNJLIM(VBD,VBDO(LX0+LOCT)XY )@@G@@,VT,VCRIT,ICHECK) @#@[@@ VBS=VBD+VDS @[@[@@C @B@[@@C DETERMINEXZ )@@G@@ DC CURRENT AND DERIVATIVES @[@[@@C @#@[@@ 300 VDS=VGS-VGD @#@[@@YA )@@G@@ VGB=VGS-VBS @A@[@@ IF (VBS.GT.0.0) GO TO 310 @#@[@@ YB )@@G@@GBS=CSSAT/VT@#@[@@ CBS=GBS*VBS @#@[@@ GBS=GBS+GMIN@#@[@@ YC )@@G@@GO TO 320 @^@[@@ 310 EVBS=EXP(VBS/VT) @ @[@@ GBS=CSSAT*EVBS/VT+YD )@@G@@GMIN @ @[@@ CBS=CSSAT*(EVBS-1.0) @A@[@@ 320 IF (VBD.GT.0.0) GOYE )@@G@@ TO 330 @#@[@@ GBD=CDSAT/VT@#@[@@ CBD=GBD*VBD @#@[@@ YF )@@G@@GBD=GBD+GMIN@#@[@@ GO TO 400 @^@[@@ 330 EVBD=EXP(VBD/VT) @ @[@@YG )@@G@@ GBD=CDSAT*EVBD/VT+GMIN @ @[@@ CBD=CDSAT*(EVBD-1.0) @[@[@@YH )@@G@@C @B@[@@C COMPUTE DRAIN CURRENT AND DERIVATIVES @[@[@@C @A@[@@YI )@@G@@ 400 IF (VDS.LT.0.0) GO TO 450 @[@[@@C @#@[@@C NORMAL MODE YJ )@@G@@@[@[@@C @#@[@@ DEVMOD=1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD YK )@@G@@@ @[@@ GO TO (405,410,445),LEV @ @[@@ 405 CALL MOSEQ1(VDS,VBS,VGS)YL )@@G@@@#@[@@ GO TO 460 @ @[@@ 410 CALL MOSEQ2(VDS,VBS,VGS)@#@[@@ YM )@@G@@GO TO 460 @A@[@@ 445 CALL ELMNSY(VDS,VBS,VGS,KCAP) @#@[@@ GO TO YN )@@G@@460 @[@[@@C @#@[@@C INVERSE MODE @[@[@@C @#@[@@ 450 DEVMODYO )@@G@@=-1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD @ @[@@ GO TO (452,453,455YP )@@G@@),LEV @A@[@@ 452 CALL MOSEQ1(-VDS,VBD,VGD) @#@[@@ GO TO 460 YQ )@@G@@@A@[@@ 453 CALL MOSEQ2(-VDS,VBD,VGD) @#@[@@ GO TO 460 @A@[@@YR )@@G@@ 455 CALL ELMNSY(-VDS,VBD,VGD,KCAP)@#@[@@ 460 CONTINUE @ @[@@ YS )@@G@@IF (KCAP.EQ.1) GO TO 800@ @[@@ VALUE(LOCV+9)=TYPE*VON @A@[@@ YT )@@G@@VALUE(LOCV+10)=TYPE*VDSAT @[@[@@C @B@[@@C COMPUTE EQUIVALENT DRYU )@@G@@AIN CURRENT SOURCE@[@[@@C @ @[@@ 490 CD=DEVMOD*CDRAIN-CBD @ @[@@YV )@@G@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.YW )@@G@@NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ YX )@@G@@GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C YY )@@G@@@ @[@@ 500 CZBD=VALUE(LOCM+11)*AD @ @[@@ CZBS=VALUE(LOCM+12)*AS YZ )@@G@@@ @[@@ PHIB=VALUE(LOCM+14) @^@[@@ TWOP=PHIB+PHIB @ @[@@ZA )@@G@@ FCPB=VALUE(LOCM+29) @^@[@@ FCPB2=FCPB*FCPB @^@[@@ ZB )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCZC )@@G@@M+32) @^@[@@ CZBSF2=CZBS/F2 @^@[@@ CZBDF2=CZBD/F2 @A@[@@ZD )@@G@@ IF (VBS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.0-VBS/PHIB) ZE )@@G@@@B@[@@ QBS(LX0+LOCT)=TWOP*CZBS*(1.0-SARG) @^@[@@ CAPBS=CZBS/SZF )@@G@@ARG @#@[@@ GO TO 520 @D@[@@ 510 QBS(LX0+LOCT)=CZBS*F1+CZBSF2*(ZG )@@G@@F3*(VBS-FCPB) @B@[@@ 1 +(VBS*VBS-FCPB2)/(TWOP+TWOP)) @A@[@@ZH )@@G@@ CAPBS=CZBSF2*(F3+VBS/TWOP) @A@[@@ 520 IF (VBD.GE.FCPB) GO TO 5ZI )@@G@@30 @ @[@@ SARG=SQRT(1.0-VBD/PHIB) @B@[@@ QBD(LX0+LOCT)=TWOPZJ )@@G@@*CZBD*(1.0-SARG) @^@[@@ CAPBD=CZBD/SARG @#@[@@ GO TO 560 ZK )@@G@@@D@[@@ 530 QBD(LX0+LOCT)=CZBD*F1+CZBDF2*(F3*(VBD-FCPB) @B@[@@ 1ZL )@@G@@ +(VBD*VBD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPBD=CZBDF2*(F3+VBD/TWOZM )@@G@@P) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS @[@[@@C ZN )@@G@@@G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 7ZO )@@G@@00 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ VALUE(LX0+LOZP )@@G@@CT+12)=CAPBD@ @[@@ VALUE(LX0+LOCT+14)=CAPBS@#@[@@ GO TO 810 ZQ )@@G@@@[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INZR )@@G@@ITF.NE.5) GO TO 610 @A@[@@ QBD(LX1+LOCT)=QBD(LX0+LOCT) @A@[@@ZS )@@G@@ QBS(LX1+LOCT)=QBS(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBZT )@@G@@D,LOCT+12) @#@[@@ GBD=GBD+GEQ @ @[@@ CBD=CBD+CQBD(LX0+LOCT) ZU )@@G@@@ @[@@ CD=CD-CQBD(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBZV )@@G@@S,LOCT+14) @#@[@@ GBS=GBS+GEQ @ @[@@ CBS=CBS+CQBS(LX0+LOCT) ZW )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQBD(LX1+LOCT)=CQBZX )@@G@@D(LX0+LOCT) @A@[@@ CQBS(LX1+LOCT)=CQBS(LX0+LOCT) @[@[@@C @^@[@@ZY )@@G@@C CHECK CONVERGENCE @[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 71ZZ )@@G@@0 @ @[@@ IF (IOFF.NE.0) GO TO 750@A@[@@ 710 IF (ICHECK.EQ.0) GAA )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL AB )@@G@@@B@[@@ IF (ABS(CDHAT-CD).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AAC )@@G@@MAX1(ABS(CBHAT),ABS(CBS+CBD))+ABSTOL@C@[@@ IF (ABS(CBHAT-(CBS+CBD))AD )@@G@@.LE.TOL) GO TO 750@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBDO(LX0+LOCAE )@@G@@T)=VBD@^@[@@ VBSO(LX0+LOCT)=VBS@^@[@@ VGSO(LX0+LOCT)=VGS@^@[@@AF )@@G@@ VGDO(LX0+LOCT)=VGD@^@[@@ CDO(LX0+LOCT)=CD @^@[@@ CBSO(LAG )@@G@@X0+LOCT)=CBS@^@[@@ CBDO(LX0+LOCT)=CBD@^@[@@ GMO(LX0+LOCT)=GM AH )@@G@@@^@[@@ GDSO(LX0+LOCT)=GDS@ @[@@ GMBSO(LX0+LOCT)=GMBS @^@[@@AI )@@G@@ GBDO(LX0+LOCT)=GBD@^@[@@ GBSO(LX0+LOCT)=GBS@[@[@@C @B@[@@AJ )@@G@@C LINEAR CAPACITANCES CGS, CGD, AND CGB @[@[@@C @ @[@@ 800 IF (MOAK )@@G@@DE.NE.1) GO TO 810@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TOAL )@@G@@ 810 @#@[@@ GCGS=0.0 @#@[@@ CEQGS=0.0 @#@[@@ GCGD=0AM )@@G@@.0 @#@[@@ CEQGD=0.0 @#@[@@ GCGB=0.0 @#@[@@ CEQGB=AN )@@G@@0.0 @#@[@@ GO TO 900 @^@[@@ 810 COX=COX*XL*XW @ @[@@ AO )@@G@@VON=TYPE*VALUE(LOCV+9) @#@[@@ VGS1=VGS @#@[@@ VGD1=VGD AP )@@G@@@#@[@@ VGB1=VGS-VBS@C@[@@ IF ((MODE.NE.2).OR.(INITF.EQ.5)) GO AQ )@@G@@TO 811@ @[@@ VGS1=VGSO(LX1+LOCT) @ @[@@ VGD1=VGDO(LX1+LOCTAR )@@G@@) @ @[@@ VGB1=VGS1-VBSO(LX1+LOCT)@A@[@@ 811 IF (DEVMOD.LT.0.0)AS )@@G@@ GO TO 813 @G@[@@ CALL MOSCAP (VGS1,VGD1,VGB1,VGS,VGD,VGB,COVLGS,CAT )@@G@@OVLGD,COVLGB, @B@[@@ 1 CGS1,CGD1,CGB1,CGS,CGD,CGB) @#@[@@AU )@@G@@ GO TO 816 @G@[@@ 813 CALL MOSCAP (VGD1,VGS1,VGB1,VGD,VGS,VGB,COAV )@@G@@VLGD,COVLGS,COVLGB, @B@[@@ 1 CGD1,CGS1,CGB1,CGD,CGS,CGB) AW )@@G@@@^@[@@ 816 CGS=0.5*(CGS+CGS1)@^@[@@ CGD=0.5*(CGD+CGD1)@^@[@@ AX )@@G@@CGB=0.5*(CGB+CGB1)@ @[@@ IF(MODE.NE.1) GO TO 818 @A@[@@ IF (INAY )@@G@@ITF.NE.4) GO TO 818 @ @[@@ VALUE(LX0+LOCT+16)=CGS @ @[@@ AZ )@@G@@VALUE(LX0+LOCT+18)=CGD @ @[@@ VALUE(LX0+LOCT+20)=CGB @#@[@@ BA )@@G@@GO TO 1000 @A@[@@ 818 IF (INITF.NE.6) GO TO 820 @F@[@@ QGS(LXBB )@@G@@0+LOCT)=(1.0+XFACT)*QGS(LX1+LOCT)-XFACT*QGS(LX2+LOCT) @F@[@@ QGD(LXBC )@@G@@0+LOCT)=(1.0+XFACT)*QGD(LX1+LOCT)-XFACT*QGD(LX2+LOCT) @F@[@@ QGB(LXBD )@@G@@0+LOCT)=(1.0+XFACT)*QGB(LX1+LOCT)-XFACT*QGB(LX2+LOCT) @#@[@@ GO TO BE )@@G@@830 @A@[@@ 820 QGS(LX0+LOCT)=(VGS-VGS1)*CGS @A@[@@ QGD(LX0+LOCTBF )@@G@@)=(VGD-VGD1)*CGD @A@[@@ QGB(LX0+LOCT)=(VGB-VGB1)*CGB @C@[@@ BG )@@G@@IF((MODE.NE.2).OR.(INITF.EQ.5))GO TO 825 @C@[@@ QGS(LX0+LOCT)=QGS(BH )@@G@@LX0+LOCT)+QGS(LX1+LOCT) @C@[@@ QGD(LX0+LOCT)=QGD(LX0+LOCT)+QGD(LX1+BI )@@G@@LOCT) @C@[@@ QGB(LX0+LOCT)=QGB(LX0+LOCT)+QGB(LX1+LOCT) @G@[@@ 825 BJ )@@G@@IF((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @A@[@@BK )@@G@@ IF (INITF.NE.5) GO TO 830 @ @[@@ QGS(LX0+LOCT)=CGS*VGS BL )@@G@@@ @[@@ QGD(LX0+LOCT)=CGD*VGD @ @[@@ QGB(LX0+LOCT)=CGB*VGB BM )@@G@@@A@[@@ QGS(LX1+LOCT)=QGS(LX0+LOCT) @A@[@@ QGD(LX1+LOCT)=QGD(BN )@@G@@LX0+LOCT) @A@[@@ QGB(LX1+LOCT)=QGB(LX0+LOCT) @B@[@@ 830 IF(CGSBO )@@G@@.EQ.0.0)VALUE(LX0+LOCT+17)=0.0@B@[@@ IF(CGD.EQ.0.0)VALUE(LX0+LOCT+1BP )@@G@@9)=0.0@B@[@@ IF(CGB.EQ.0.0)VALUE(LX0+LOCT+21)=0.0@B@[@@ CALL IBQ )@@G@@NTGR8(GCGS,CEQGS,CGS,LOCT+16) @B@[@@ CALL INTGR8(GCGD,CEQGD,CGD,LOCBR )@@G@@T+18) @B@[@@ CALL INTGR8(GCGB,CEQGB,CGB,LOCT+20) @C@[@@ CEQGS=BS )@@G@@CEQGS-GCGS*VGS+AG(1)*QGS(LX0+LOCT) @C@[@@ CEQGD=CEQGD-GCGD*VGD+AG(BT )@@G@@1)*QGD(LX0+LOCT) @C@[@@ CEQGB=CEQGB-GCGB*VGB+AG(1)*QGB(LX0+LOCT) BU )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 900 @A@[@@ CQGS(LX1+LOCT)=CQGBV )@@G@@S(LX0+LOCT) @A@[@@ CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @A@[@@ CQGB(LBW )@@G@@X1+LOCT)=CQGB(LX0+LOCT) @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@BX )@@G@@C @B@[@@ 900 CEQBS=TYPE*(CBS-(GBS-GMIN)*VBS) @B@[@@ CEQBD=BY )@@G@@TYPE*(CBD-(GBD-GMIN)*VBD) @^@[@@ CEQGS=TYPE*CEQGS @^@[@@ BZ )@@G@@CEQGD=TYPE*CEQGD @^@[@@ CEQGB=TYPE*CEQGB @#@[@@ XNRM=1.0 CA )@@G@@@#@[@@ XREV=0.0 @A@[@@ IF (DEVMOD.LT.0.0) GO TO 910 @D@[@@CB )@@G@@ CDREQ=TYPE*(CDRAIN-GDS*VDS-GM*VGS-GMBS*VBS) @#@[@@ GO TO CC )@@G@@920 @#@[@@ 910 XNRM=0.0 @#@[@@ XREV=1.0 @D@[@@ CDREQ=CD )@@G@@-TYPE*(CDRAIN-GDS*(-VDS)-GM*VGD-GMBS*VBD) @E@[@@ 920 VALUE(LVN+NODE2)=VCE )@@G@@ALUE(LVN+NODE2)-CEQGS-CEQGD-CEQGB @E@[@@ VALUE(LVN+NODE4)=VALUE(LCF )@@G@@VN+NODE4)-CEQBS-CEQBD+CEQGB @E@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODCG )@@G@@E5)-CDREQ+CEQGD+CEQBD @E@[@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CDCH )@@G@@REQ+CEQGS+CEQBS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C @ @[@@CI )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR CJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+CK )@@G@@GCGD+GCGS+GCGB @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(CL )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+30)@B@[@@ CM )@@G@@VALUE(LOCY)=VALUE(LOCY)+GBD+GBS+GCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+31)CN )@@G@@@F@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GBD+GCGD+XREV*(GM+GMBS) CO )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@F@[@@ VALUE(LOCY)=VALUE(LOCY)+CP )@@G@@GSPR+GDS+GBS+GCGS+XNRM*(GM+GMBS) @ @[@@ LOCY=LYNL+NODPLC(LOC+10)CQ )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LCR )@@G@@OC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB @ @[@@ LOCY=LYNL+NOCS )@@G@@DPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGD @ @[@@ LOCY=LCT )@@G@@YNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGS @ @[@@ CU )@@G@@LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@CV )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB CW )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-CX )@@G@@GBD @ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(CY )@@G@@LOCY)-GBS @ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=CZ )@@G@@VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@D@[@@ VALUE(DA )@@G@@LOCY)=VALUE(LOCY)-GCGD+(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LDB )@@G@@OC+20)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBD+(XNRM-XREV)*GMBS @ @[@@DC )@@G@@ LOCY=LYNL+NODPLC(LOC+21)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XNDD )@@G@@RM*(GM+GMBS)@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@D@[@@ VALUE(LOCY)=DE )@@G@@VALUE(LOCY)-GCGS-(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LOC+23)DF )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LDG )@@G@@OC+24)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBS-(XNRM-XREV)*GMBS @ @[@@DH )@@G@@ LOCY=LYNL+NODPLC(LOC+25)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XRDI )@@G@@EV*(GM+GMBS)@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@DJ )@@G@@ END @A@[@@ SUBROUTINE MOSEQ1(VDS,VBS,VGS)@[@[@@C @F@[@@DK )@@G@@C THIS ROUTINE EVALUATES THE DRAIN CURRENT AND ITS DERIVATIVES@D@[@@DL )@@G@@C USING THE SHICHMAN-HODGES MODEL FOR MOSFETS @[@[@@C @G@[@@DM )@@G@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, DN )@@G@@@E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@DO )@@G@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, DP )@@G@@@G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEDQ )@@G@@V @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNDR )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NODS )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTDT )@@G@@NT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIDU )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@C @F@[@@DV )@@G@@C COMPUTE THRESHOLD VOLTAGE VON AND SATURATION VOLTAGE VDSAT @[@[@@DW )@@G@@C @A@[@@ IF (VBS.GT.0.0) GO TO 102 @^@[@@ SARG=SQRT(PHDX )@@G@@I-VBS)@#@[@@ GO TO 104 @^@[@@ 102 SARG=SQRT(PHI) @A@[@@ DY )@@G@@SARG=SARG-VBS/(SARG+SARG) @ @[@@ SARG=AMAX1(0.0,SARG) @^@[@@DZ )@@G@@ 104 VON=VBI+GAMMA*SARG@#@[@@ VGST=VGS-VON@ @[@@ VDSAT=AMAX1(EA )@@G@@VGST,0.0) @ @[@@ ARG=GAMMA/(SARG+SARG) @A@[@@ IF (VGST.GT.EB )@@G@@0.0) GO TO 110 @[@[@@C @^@[@@C CUTOFF REGION @[@[@@C EC )@@G@@@#@[@@ CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GDS=0.0 @#@[@@ED )@@G@@ GMBS=0.0 @#@[@@ GO TO 300 @[@[@@C @^@[@@C SATURAEE )@@G@@TION REGION @[@[@@C @A@[@@ 110 BETAP=BETA*(1.0+XLAMDA*VDS) @A@[@@EF )@@G@@ IF (VGST.GT.VDS) GO TO 120 @A@[@@ CDRAIN=BETAP*VGST*VGST/2EG )@@G@@.0 @^@[@@ GM=BETAP*VGST @A@[@@ GDS=XLAMDA*BETA*VGST*VGSEH )@@G@@T/2.0 @#@[@@ GMBS=GM*ARG @#@[@@ GO TO 300 @[@[@@C @^@[@@EI )@@G@@C LINEAR REGION @[@[@@C @B@[@@ 120 CDRAIN=BETAP*VDS*(VGST-VEJ )@@G@@DS/2.0) @#@[@@ GM=BETAP*VDS@E@[@@ GDS=BETAP*(VGST-VDS)+XLAEK )@@G@@MDA*BETA*VDS*(VGST-VDS/2.0) @#@[@@ GMBS=GM*ARG @[@[@@C @]@[@@EL )@@G@@C RETURN@[@[@@C @]@[@@ 300 RETURN@]@[@@ END @A@[@@ EM )@@G@@SUBROUTINE MOSEQ2(VDS,VBS,VGS)@[@[@@C @G@[@@C THIS ROUTINE EVALUEN )@@G@@ATES THE DRAIN CURRENT AND ITS DERIVATIVES FOR @]@[@@C MOSFETS. @[@[@@EO )@@G@@C @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,EP )@@G@@XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDEQ )@@G@@RAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATTER )@@G@@,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETADES )@@G@@,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)ET )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOEU )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ EV )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@EW )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@EX )@@G@@C @A@[@@C COMPUTE SOME USEFUL QUANTITIES @[@[@@C @A@[@@ EY )@@G@@IF (VBS.GT.0.0) GO TO 110 @^@[@@ SARG=SQRT(PHI-VBS)@^@[@@ EZ )@@G@@TSARG=SARG+SARG @ @[@@ BARG=SQRT(PHI+VDS-VBS) @#@[@@ GO TO FA )@@G@@200 @^@[@@ 110 SARG=SQRT(PHI) @A@[@@ SARG=SARG-VBS/(SARG+SARGFB )@@G@@) @ @[@@ SARG=AMAX1(SARG,0.0) @^@[@@ TSARG=SARG+SARG FC )@@G@@@^@[@@ BARG=SQRT(PHI+VDS)@A@[@@ BARG=BARG-VBS/(BARG+BARG) FD )@@G@@@ @[@@ BARG=AMAX1(BARG,0.0) @[@[@@C @A@[@@C CALCULATE THRESFE )@@G@@HOLD VOLTAGE (VON)@[@[@@C @ @[@@ 200 IF (XJ.LE.0.0) GO TO 210@A@[@@FF )@@G@@ IF (GAMMA.LE.0.0) GO TO 210 @A@[@@ ARG=SQRT(1.0+XD*TSARG/XJFG )@@G@@) @B@[@@ GAMMAD=GAMMA*(1.0-XJ*(ARG-1.0)/XL) @A@[@@ DGDVBSFH )@@G@@=GAMMA*XD/(XL*TSARG*ARG)@#@[@@ GO TO 220 @#@[@@ 210 GAMMAD=GAMMAFI )@@G@@@#@[@@ DGDVBS=0.0 @ @[@@ 220 VON=VBI+GAMMAD*SARG @#@[@@ FJ )@@G@@VDSAT=0.0 @#@[@@ VGST=VGS-VON@A@[@@ IF (XNFS.EQ.0.0) GO TO 2FK )@@G@@30 @A@[@@ IF (COX.EQ.0.0) GO TO 230 @D@[@@ VON=VON+VT*(FL )@@G@@1.0+CHARGE*XNFS/COX+GAMMAD/TSARG) @#@[@@ VGST=VGS-VON@#@[@@ FM )@@G@@GO TO 300 @A@[@@ 230 IF (VGS.GT.VON) GO TO 300 @[@[@@C @#@[@@FN )@@G@@C CUTOFF REGION @[@[@@C @#@[@@ GDS=0.0 @#@[@@ GO TO FO )@@G@@1100 @[@[@@C @B@[@@C COMPUTE SOME MORE USEFUL QUANTITIES @[@[@@FP )@@G@@C @ @[@@ 300 SARG3=SARG*SARG*SARG @A@[@@ BODY=BARG*BARG*BARFQ )@@G@@G-SARG3 @ @[@@ GDBDV=GAMMAD*(SARG-BARG)@B@[@@ DODVBS=SARG*FR )@@G@@DGDVBS-GAMMAD/TSARG @A@[@@ IF (XNFS.EQ.0.0) GO TO 400 @A@[@@FS )@@G@@ IF (COX.EQ.0.0) GO TO 400 @E@[@@ DODVBS=DODVBS+VT*(DGDVBSFT )@@G@@/TSARG-GAMMAD/(4.0*SARG3)) @[@[@@C @D@[@@C EVALUATE SATURATION VFU )@@G@@OLTAGE AND ITS DERIVATIVES @[@[@@C @A@[@@ 400 IF (GAMMAD.LE.0.0)FV )@@G@@ GO TO 410 @ @[@@ GAMMD2=GAMMAD*GAMMAD @ @[@@ ARGV=VGS-VBIFW )@@G@@+PHI-VBS @A@[@@ IF (ARGV.LE.0.0) GO TO 420 @A@[@@ ARG=SQFX )@@G@@RT(1.0+4.0*ARGV/GAMMD2) @B@[@@ VDSAT=VGS-VBI+GAMMD2*(1.0-ARG)/2.0 FY )@@G@@@ @[@@ VDSAT=AMAX1(VDSAT,0.0) @^@[@@ DSDVGS=1.0-1.0/ARG@G@[@@FZ )@@G@@ DSDVBS=(GAMMAD*(1.0-ARG)+2.0*ARGV/(GAMMAD*ARG))*DGDVBS+1.0/ARG GA )@@G@@@#@[@@ GO TO 500 @ @[@@ 410 VDSAT=AMAX1(VGS-VBI,0.0)@#@[@@ GB )@@G@@DSDVGS=1.0 @#@[@@ DSDVBS=0.0 @#@[@@ GO TO 500 @#@[@@ 420 GC )@@G@@DSDVGS=0.0 @#@[@@ DSDVBS=0.0 @[@[@@C @D@[@@C EVALUATE EFFECTGD )@@G@@IVE MOBILITY AND ITS DERIVATIVES @[@[@@C @A@[@@ 500 IF (COX.LE.0GE )@@G@@.0) GO TO 510 @B@[@@ UDENOM=VGST-UTRA*AMIN1(VDS,VDSAT) @A@[@@GF )@@G@@ IF (UDENOM.LE.VBP) GO TO 510 @B@[@@ UFACT=EXP(UEXP*ALOG(VBP/GG )@@G@@UDENOM)) @A@[@@ DUDVGS=-UFACT*UEXP/UDENOM @ @[@@ DUDVDSGH )@@G@@=-DUDVGS*UTRA @#@[@@ DUDVBS=0.0 @#@[@@ GO TO 600 @#@[@@GI )@@G@@ 510 UFACT=1.0 @#@[@@ DUDVGS=0.0 @#@[@@ DUDVDS=0.0 @#@[@@GJ )@@G@@ DUDVBS=0.0 @[@[@@C @E@[@@C EVALUATE EFFECTIVE CHANNEL LENGTHGK )@@G@@ AND ITS DERIVATIVES @[@[@@C @A@[@@ 600 IF (VDS.EQ.0.0) GO TO 61GL )@@G@@0 @A@[@@ IF (XLAMDA.GT.0.0) GO TO 610 @A@[@@ IF (XNSUB.EQGM )@@G@@.0.0) GO TO 610 @ @[@@ ARGV=(VDS-VDSAT)/4.0 @A@[@@ SARGV=GN )@@G@@SQRT(1.0+ARGV*ARGV) @ @[@@ ARG=SQRT(ARGV+SARGV) @^@[@@ GO )@@G@@XLFACT=XD/(XL*VDS)@^@[@@ XLAMDA=XLFACT*ARG @A@[@@ DLDSAT=-XLFAGP )@@G@@CT*ARG/(8.0*SARGV)@A@[@@ DLDVGS=-VDS*DLDSAT*DSDVGS @A@[@@ GQ )@@G@@DLDVDS=-XLAMDA/VDS-DLDSAT @A@[@@ DLDVBS=-VDS*DLDSAT*DSDVBS GR )@@G@@@#@[@@ GO TO 620 @#@[@@ 610 DLDVGS=0.0 @#@[@@ DLDVDS=0.0 GS )@@G@@@#@[@@ DLDVBS=0.0 @ @[@@ 620 CLFACT=1.0-XLAMDA*VDS @A@[@@ GT )@@G@@DLDVDS=-XLAMDA-VDS*DLDVDS @[@[@@C @B@[@@C EVALUATE EFFECTIVE BEGU )@@G@@TA (EFFECTIVE KP) @[@[@@C @ @[@@ BETA1=BETA*UFACT/CLFACT @[@[@@GV )@@G@@C @D@[@@C TEST FOR MODE OF OPERATION AND BRANCH APPROPRIATELY@[@[@@GW )@@G@@C @A@[@@ IF (VDS.NE.0.0) GO TO 730 @A@[@@ IF (VGS.GT.VGX )@@G@@ON) GO TO 720 @D@[@@ IF ((XNFS.NE.0.0).AND.(COX.NE.0.0)) GO TO GY )@@G@@710 @#@[@@ GDS=0.0 @#@[@@ GO TO 1100 @A@[@@ 710 VFACT=GZ )@@G@@VON-VBI-GAMMAD*SARG @B@[@@ GDS=BETA1*VFACT*EXP((VGS-VON)/VFACT)HA )@@G@@@#@[@@ GO TO 1100 @B@[@@ 720 GDS=BETA1*(VGS-VBI-GAMMAD*SARG) HB )@@G@@@#@[@@ GO TO 1100 @[@[@@C @[@[@@C @A@[@@ 730 IF (VGS.GT.VHC )@@G@@ON) GO TO 900 @[@[@@C @^@[@@C SUBTHRESHOLD REGION @[@[@@C HD )@@G@@@E@[@@C CALCULATE SATURATION VOLTAGE AND ITS DERIVATIVES AT VON @[@[@@HE )@@G@@C @A@[@@ IF (GAMMAD.LE.0.0) GO TO 810 @ @[@@ GAMMD2=GAMMAHF )@@G@@D*GAMMAD @ @[@@ ARGV=VON-VBI+PHI-VBS @A@[@@ ARG=SQRT(1.0HG )@@G@@+4.0*ARGV/GAMMD2) @#@[@@ GO TO 820 @#@[@@ 810 ARG=0.0 @#@[@@HH )@@G@@ GAMMD2=0.0 @B@[@@ 820 VSATON=VON-VBI+GAMMD2*(1.0-ARG)/2.0 @A@[@@HI )@@G@@ IF (VSATON.GT.0.0) GO TO 830 @#@[@@ GDS=0.0 @#@[@@ HJ )@@G@@GO TO 1100 @ @[@@ 830 VDSON=AMIN1(VSATON,VDS) @A@[@@ IF (VBS.GT.0HK )@@G@@.0) GO TO 840 @ @[@@ BARG=SQRT(PHI+VDSON-VBS)@#@[@@ GO TO HL )@@G@@850 @ @[@@ 840 BARG=SQRT(PHI+VDSON) @A@[@@ BARG=BARG-VBS/(BARHM )@@G@@G+BARG) @A@[@@ 850 BODY=BARG*BARG*BARG-SARG3 @ @[@@ GDBDV=HN )@@G@@GAMMAD*(SARG-BARG)@D@[@@ CDSON=(VON-VBI-VDSON/2.0)*VDSON-GAMMAD*BODHO )@@G@@Y/1.5 @B@[@@ DIDVDS=VON-VBI-VDSON-GAMMAD*BARG @C@[@@ DIDVBSHP )@@G@@=DODVBS*VDSON-DGDVBS*BODY/1.5-GDBDV @[@[@@C @D@[@@C EVALUATE SUBTHRHQ )@@G@@ESHOLD CURRENT AND ITS DERIVATIVES @[@[@@C @^@[@@ VFACT=CDSON/HR )@@G@@VDSON @ @[@@ ARGEXP=(VGS-VON)/VFACT @ @[@@ BETA2=BETA1*EXP(ARHS )@@G@@GEXP) @^@[@@ CDRAIN=BETA2*CDSON@B@[@@ IF (CDRAIN.GE.1.0E-15) GHT )@@G@@O TO 860 @#@[@@ GDS=0.0 @#@[@@ GO TO 1100 @C@[@@ 860 HU )@@G@@ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) @ @[@@ GM=ARG+CDRAIN/VFACHV )@@G@@T @C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @G@[@@ HW )@@G@@GMBS=ARG-CDRAIN*(DODVBS/VFACT-ARGEXP*DIDVBS/CDSON)+BETA2*DIDVBS @A@[@@HX )@@G@@ GDS=-CDRAIN*DLDVDS/CLFACT @A@[@@ IF (VDS.GT.VSATON) GO TOHY )@@G@@ 2000 @F@[@@ GDS=GDS+CDRAIN*(DUDVDS/UFACT-ARGEXP*(DIDVDS-VFACT)/CDSHZ )@@G@@ON) @^@[@@ 1 +BETA2*DIDVDS @#@[@@ GO TO 2000 @[@[@@C IA )@@G@@@[@[@@C @A@[@@ 900 IF (VDS.GT.VDSAT) GO TO 1000 @[@[@@C @#@[@@IB )@@G@@C LINEAR REGION @[@[@@C @E@[@@ CDRAIN=BETA1*((VGS-VBI-VDS/2.0IC )@@G@@)*VDS-GAMMAD*BODY/1.5) @C@[@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFAID )@@G@@CT) @^@[@@ GM=ARG+BETA1*VDS @C@[@@ ARG=CDRAIN*(DUDVDS/UFACTIE )@@G@@-DLDVDS/CLFACT) @C@[@@ GDS=ARG+BETA1*(VGS-VBI-VDS-GAMMAD*BARG) IF )@@G@@@C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @C@[@@ GMBS=AIG )@@G@@RG-BETA1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@ GO TO 2000 @[@[@@C IH )@@G@@@^@[@@C SATURATION REGION @[@[@@C @A@[@@ 1000 IF (VBS.GT.0.0) GOII )@@G@@ TO 1010 @ @[@@ BARG=SQRT(PHI+VDSAT-VBS)@#@[@@ GO TO 1020 IJ )@@G@@@ @[@@ 1010 BARG=SQRT(PHI+VDSAT) @A@[@@ BARG=BARG-VBS/(BARG+BARGIK )@@G@@) @A@[@@ 1020 BODY=BARG*BARG*BARG-SARG3 @ @[@@ GDBDV=GAMMADIL )@@G@@*(SARG-BARG)@F@[@@ CDRAIN=BETA1*((VGS-VBI-VDSAT/2.0)*VDSAT-GAMMAD*BIM )@@G@@ODY/1.5) @C@[@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) @^@[@@IN )@@G@@ GM=ARG+BETA1*VDSAT@A@[@@ GDS=-CDRAIN*DLDVDS/CLFACT @C@[@@IO )@@G@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @C@[@@ GMBS=ARG-BETIP )@@G@@A1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@ GO TO 2000 @[@[@@C @^@[@@IQ )@@G@@C FINISH SPECIAL CASES @[@[@@C @#@[@@ 1100 CDRAIN=0.0 @]@[@@ IR )@@G@@GM=0.0@#@[@@ GMBS=0.0 @[@[@@C @]@[@@C FINISHED @[@[@@C IS )@@G@@@]@[@@ 2000 RETURN@]@[@@ END @B@[@@ SUBROUTINE ELMNSY (VDS,VIT )@@G@@BS,VGS,KCAP)@[@[@@C @G@[@@C THIS SUBROUTINE EVALUATES THE DRAIN CUIU )@@G@@RRENT AND ITS DERIVATIVES @G@[@@C FOR MOSFET, BASED ON THE THEORY IV )@@G@@DEVELOPED BY EL-MANSY AND BOOTHROYD @[@[@@C @G@[@@ COMMON /MOSAIW )@@G@@RG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAIX )@@G@@MDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPIY )@@G@@HAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,IZ )@@G@@TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ JA )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@JB )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@JC )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLJD )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNJE )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @^@[@@ BETA0=BETA*VALPHA @^@[@@JF )@@G@@ BETA1=BETA0*VALPHA@ @[@@ VSCATT=VALPHA*SCATT @ @[@@ JG )@@G@@AHPLA=TAHPLA+TAHPLA @^@[@@ UPHIS=UPHIB+UPHIB @[@[@@C @^@[@@JH )@@G@@C NORMALIZE VOLTAGES @[@[@@C @^@[@@ UGS=VGS/VT-UFB @#@[@@JI )@@G@@ UDS=VDS/VT @#@[@@ UBS=VBS/VT @ @[@@ UBS=AMIN1(UBS,UPHIJJ )@@G@@S) @^@[@@ UDS=AMAX1(UDS,0.0)@#@[@@ UGB=UGS-UBS @^@[@@ JK )@@G@@ONEUGB=1.0-UGB @B@[@@ UTH=UPHIS+SQRT(UPHIS-UBS)/ALPHA @^@[@@JL )@@G@@ VON=(UTH+UFB)*VT @[@[@@C @C@[@@C DEFINE SUBTHRESHOLD VOLTAGJM )@@G@@E BY FUDGE FACTOR @[@[@@C @#@[@@ UTHSUB=UBS @A@[@@ FUDGE=JN )@@G@@UPHIB-50.0/UPHIB-UBS @A@[@@ IF (FUDGE.LE.0.0) GO TO 10 @B@[@@JO )@@G@@ UTHSUB=FUDGE+UBS+SQRT(FUDGE)/ALPHA @A@[@@ 10 IF (UGS.LE.UTHSUB)JP )@@G@@ GO TO 15 @ @[@@ IF (VDS.LE.0.0) GO TO 17@#@[@@ GO TO 20 JQ )@@G@@@[@[@@C @#@[@@C CUTOFF REGION @[@[@@C @#@[@@ 15 CDRAIN=0.0 JR )@@G@@@#@[@@ GDS=0.0 @]@[@@ GM=0.0@#@[@@ GMBS=0.0 @#@[@@JS )@@G@@ VDSAT=0.0 @#@[@@ GO TO 1000 @[@[@@C @ @[@@C SPECIAJT )@@G@@L CASE FOR VDS=0.0@[@[@@C @#@[@@ 17 CONTINUE @A@[@@ PINCH=JU )@@G@@-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)JV )@@G@@@#@[@@ ETAD=ETAS @B@[@@ GDS=BETA0*(ETAD+AHPLA-UGB/ETAD) JW )@@G@@@]@[@@ GM=0.0@#@[@@ GMBS=0.0 @#@[@@ CDRAIN=0.0 @#@[@@JX )@@G@@ VDSAT=0.0 @#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRANSISTJY )@@G@@OR IS ON @[@[@@C @A@[@@ 20 PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@JZ )@@G@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)@B@[@@ CALL EXPEQN (PINCHKA )@@G@@,UGS,UGB,UDS,ETAD)@^@[@@ ETAS2=ETAS*ETAS @^@[@@ ETAD2=ETAD*EKB )@@G@@TAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22=ETAD2/2.0 @^@[@@KC )@@G@@ ETSINV=1.0/ETAS @^@[@@ ETDINV=1.0/ETAD @^@[@@ ALGES=KD )@@G@@ALOG(ETAS) @^@[@@ ALGED=ALOG(ETAD) @B@[@@ SVAL=ETAS22+ALPHAFKE )@@G@@*ETAS+ONEUGB*ALGES@B@[@@ DVAL=ETAD22+ALPHAF*ETAD+ONEUGB*ALGED@^@[@@KF )@@G@@ CD1=SVAL-DVAL @ @[@@ IF (KCAP.EQ.1) RETURN @ @[@@ KG )@@G@@IF (CD1.LE.0.0) GO TO 15@[@[@@C @G@[@@C BRANCH DIRECTLY TO LINEAKH )@@G@@R REGION IF CHANNEL LENGTH MODULATION IS @ @[@@C VERY UNLIKELY TO HKI )@@G@@APPEN @[@[@@C @#@[@@ ISCATT=0 @C@[@@ IF ((CD1*BETA1*XL/KJ )@@G@@XW).LE.1.0E-11) GO TO 50@#@[@@ ISCATT=1 @ @[@@ IF (UDS.LT.UKK )@@G@@BS) GO TO 50@ @[@@ IF (UGS.GT.UTH) GO TO 60@[@[@@C @ @[@@C PSKL )@@G@@EUDO-SATURATION VOLTAGE @[@[@@C @#@[@@ 50 VDSAT=VDS @#@[@@ KM )@@G@@GO TO 70 @[@[@@C @D@[@@C DEFINE SATURATION VOLTAGE BY EMPIRICALKN )@@G@@ FACTOR @[@[@@C @#@[@@ 60 TOXL=TOX/XL @^@[@@ SATFAC=1.0/(KO )@@G@@1.05 @D@[@@ 1 +TOXL*(5.0+0.05*(ETAS-PINCH)*AHPLA)) @G@[@@KP )@@G@@C 1 +TOXL*(5.0+0.05*SQRT(ALPHA*50.0)*(ETAS-PINCH)*AHPLA)) KQ )@@G@@@B@[@@ ETASAT=ETAS+(PINCH-ETAS)*SATFAC @A@[@@ IF (ETASAT.LKR )@@G@@E.0.0) GO TO 50 @ @[@@ ETALPH=ETASAT/ALPHA @ @[@@ ETADS2KS )@@G@@=ETASAT*ETASAT @ @[@@ USATX=ETADS2+ETALPH-UGB @B@[@@ UDSAT=KT )@@G@@-ETALPH-UPHIS+UGS-ALOG(USATX) @^@[@@ VDSAT=UDSAT*VT @A@[@@ KU )@@G@@IF (UDS.GT.UDSAT) GO TO 200 @[@[@@C @G@[@@C CALCULATE DRAIN CURRKV )@@G@@ENT AND TRANSCONDUCTANCES FOR LINEAR REGION @ @[@@C AND WEAK INVERKW )@@G@@SION CASE @[@[@@C @#@[@@ 70 CONTINUE @^@[@@ CDRAIN=BETA1KX )@@G@@*CD1 @B@[@@ GDS=BETA0*(ETAD+AHPLA-UGB/ETAD) @ @[@@ ETAIVDKY )@@G@@=ETSINV-ETDINV @ @[@@ ETAF=(ALGES-ALGED)/ALPHA@C@[@@ GM=BETKZ )@@G@@A0*((ETAS-ETAD)+ONEUGB*ETAIVD-ETAF) @A@[@@ GMBS=-BETA0*(ETAIVD-ETAFLA )@@G@@) @A@[@@ IF (ISCATT.EQ.0) GO TO 1000 @[@[@@C @C@[@@C MOLB )@@G@@DIFIED BY SCATTERING LIMITED VELOCITY @[@[@@C @#@[@@ 80 CONTINLC )@@G@@UE @ @[@@ SFACT=VSCATT*(ETAS-ETAD)@B@[@@ IF (SFACT.LT.1.0E-LD )@@G@@7) GO TO 1000 @ @[@@ SFACT=1.0/(1.0+SFACT) @ @[@@ CDRAINLE )@@G@@=CDRAIN*SFACT @A@[@@ GDS=(GDS-CDRAIN*SCATT)*SFACT @#@[@@ LF )@@G@@GM=GM*SFACT @^@[@@ GMBS=GMBS*SFACT @#@[@@ GO TO 1000 @[@[@@LG )@@G@@C @^@[@@C SATURATION REGION @[@[@@C @#@[@@ 200 INDEX=1 LH )@@G@@@A@[@@ ASATF2=SATFAC*SATFAC*AHPLA @#@[@@ ETADS=ETASAT@D@[@@LI )@@G@@ 250 DSVAL=ETADS2/2.0+ALPHAF*ETADS+ONEUGB*ALOG(ETADS)@ @[@@ CDSAT=LJ )@@G@@BETA1*(SVAL-DSVAL)@B@[@@ GDSAT=BETA0*(ETADS+AHPLA-UGB/ETADS) @B@[@@LK )@@G@@ SFACT=1.0/(1.0+VSCATT*(ETAS-ETADS)) @^@[@@ CDSAT=CDSAT*SFACT LL )@@G@@@B@[@@ GDSAT=(GDSAT-CDSAT*SCATT)*SFACT @A@[@@ IF (GDSAT.LTLM )@@G@@.0.0) GO TO 50 @^@[@@ EFFXL=XL/SFACT @E@[@@ XLSAT=(TOX+TLN )@@G@@OX)*EPSSIL/EPSOX*(ALPHA*UGB-PINCH)/PINCH @A@[@@ IF (XLSAT.LE.0.0) LO )@@G@@GO TO 50 @ @[@@ ASAT=SQRT(XLSAT*TOX) @ @[@@ ESAT=CDSAT/(LP )@@G@@GDSAT*EFFXL)@ @[@@ EASAT=VT/(ESAT*ASAT) @D@[@@ ARG1=BETA*(1LQ )@@G@@.0+UGB/ETADS2)+(SCATT+SCATT)*GDSAT @D@[@@ ARG1=(VT+VT)*(1.0/EFFXL/LR )@@G@@ESAT+ARG1*SFACT/GDSAT) @ @[@@ ARG2=ARG1/(EASAT+EASAT) @^@[@@ LS )@@G@@UDEL=UDS-UDSAT @^@[@@ ARG3=EASAT*UDEL @A@[@@ ARG4=ARG3*ARLT )@@G@@G3+ARG1*UDEL+1.0 @A@[@@ IF (ARG4.LE.0.0) GO TO 50 @^@[@@ LU )@@G@@SQARG=SQRT(ARG4) @B@[@@ SATARG=(SQARG+ARG3+ARG2)/(1.0+ARG2) @B@[@@LV )@@G@@ RATIO=EXP(ASAT/EFFXL*ALOG(SATARG)) @^@[@@ CDRAIN=CDSAT*RATIOLW )@@G@@@[@[@@C @C@[@@C INITIALIZATION FOR TRANSCONDUCTANCE LOOP @[@[@@LX )@@G@@C @A@[@@ GO TO (300,400,500), INDEX @ @[@@ 300 GDSOLD=GDSATLY )@@G@@*RATIO/SQARG@#@[@@ CDOLD=CDRAIN@#@[@@ ETASO=ETAS @#@[@@ LZ )@@G@@PINCHO=PINCH@#@[@@ UGSO=UGS @#@[@@ UGBO=UGB @#@[@@ MA )@@G@@UBSO=UBS @#@[@@ DELU=0.02 @#@[@@ DELV=DELU*VT@[@[@@C MB )@@G@@@^@[@@C UGS ---> UGS+DELU @[@[@@C @#@[@@ INDEX=2 @B@[@@MC )@@G@@ BUFF1=ETAS2+ETASO/ALPHA+1.0-UGBO @ @[@@ BUFF2=BUFF1+ETASO/MD )@@G@@TAHPLA@A@[@@ DETAS=(ALPHA*BUFF1/BUFF2)*DELU@B@[@@ DPINCH=0.5/(ME )@@G@@PINCHO+TAHPLA)*DELU @C@[@@ DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASAMF )@@G@@TF2 @F@[@@C DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASATF2*SQRT(ALPHA*50.MG )@@G@@0) @F@[@@ DETADS=DETAS+(DPINCH-DETAS)*SATFAC+(PINCHO-ETASO)*DSATMH )@@G@@FC @^@[@@ ETAS=ETASO+DETAS @ @[@@ PINCH=PINCHO+DPINCH MI )@@G@@@ @[@@ ETADS=ETASAT+DETADS @^@[@@ UGS=UGSO+DELU @^@[@@MJ )@@G@@ UGB=UGBO+DELU @^@[@@ ONEUGB=1.0-UGB @D@[@@ SVAL=EMK )@@G@@TAS*ETAS/2.0+ALPHAF*ETAS+ONEUGB*ALOG(ETAS)@^@[@@ ETADS2=ETADS*ETADSML )@@G@@@^@[@@ ETALPH=ETADS/ALPHA@ @[@@ USATX=ETADS2+ETALPH-UGB @B@[@@MM )@@G@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(USATX) @#@[@@ GO TO 250 @ @[@@MN )@@G@@ 400 GM=(CDRAIN-CDOLD)/DELV @[@[@@C @D@[@@C SKIP THE CALCULATIMO )@@G@@ON OF GMSB IF UBS.GE.UPHIS @[@[@@C @A@[@@ IF (UBS.LT.UPHIS) MP )@@G@@GO TO 420 @#@[@@ GMBS=0.0 @#@[@@ GO TO 900 @[@[@@C MQ )@@G@@@^@[@@C UBS ---> UBS+DELU @[@[@@C @#@[@@ 420 CONTINUE @#@[@@MR )@@G@@ INDEX=3 @D@[@@ DETAS=-ALPHA/(ETAS2+ALPHAF*ETASO+1.0-UGBO)MS )@@G@@*DELU @^@[@@ DPINCH=-DPINCH @C@[@@ DSATFC=-TOXL*0.05*(DETASMT )@@G@@-DPINCH)*ASATF2 @F@[@@C DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASATF2*SQMU )@@G@@RT(ALPHA*50.0) @F@[@@ DETADS=DETAS+(DPINCH-DETAS)*SATFAC+(PINCHOMV )@@G@@-ETASO)*DSATFC @^@[@@ ETAS=ETASO+DETAS @ @[@@ PINCH=PINCHOMW )@@G@@+DPINCH @ @[@@ ETADS=ETASAT+DETADS @#@[@@ UGS=UGSO MX )@@G@@@^@[@@ UGB=UGBO-DELU @^@[@@ UBS=UBSO+DELU @^@[@@ MY )@@G@@ONEUGB=1.0-UGB @D@[@@ SVAL=ETAS*ETAS/2.0+ALPHAF*ETAS+ONEUGB*ALOGMZ )@@G@@(ETAS)@^@[@@ ETADS2=ETADS*ETADS@^@[@@ ETALPH=ETADS/ALPHA@ @[@@NA )@@G@@ USATX=ETADS2+ETALPH-UGB @B@[@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(UNB )@@G@@SATX) @#@[@@ GO TO 250 @ @[@@ 500 GMBS=(CDRAIN-CDOLD)/DELV@[@[@@NC )@@G@@C @#@[@@C RESTORE DATA @[@[@@C @#@[@@ 900 CONTINUE @#@[@@ND )@@G@@ CDRAIN=CDOLD@#@[@@ GDS=GDSOLD @#@[@@ ETAS=ETASO @[@[@@NE )@@G@@C @]@[@@C FINISHED@[@[@@C @#@[@@ 1000 CONTINUE @]@[@@ NF )@@G@@RETURN@]@[@@ END @C@@@@ SUBROUTINE EXPEQN (PINCH,UGS,UGB,UXSNG )@@G@@,ETAX)@[@@@@C @G@@@@C THIS SUBROUTINE SOLVE THE EXPONENTIAL EQUATINH )@@G@@ON IN EL-MANSY^S MOSFET @^@@@@C MODEL BY ITERATION @[@@@@C @ @@@[NI )@@G@@ IMPLICIT REAL*8(A-H,O-Z)@ @@@] INCLUDE F.MOSARG,LIST @^@]@[NJ )@@G@@@ADD *SPICE.EXPEQND @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,CNK )@@G@@OX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDNL )@@G@@SAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHANM )@@G@@,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFBNN )@@G@@,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @]@@@@ K=0 @^@@@@ UPHIS=NO )@@G@@UPHIB+UPHIB @A@@@@ BOUND=ALPHA*(UGS-UPHIS-UXS) @A@@@@ IF (PINP )@@G@@NCH.GT.BOUND) GO TO 5 @[@@@@C @^@@@@C STRONG INVERSION @[@@@@NQ )@@G@@C @A@@@@ ARG=BOUND*BOUND-UXS-UPHIS @^@#@@ ARG=AMAX1(1.NR )@@G@@0,ARG)@ @@@# ARG=DMAX1(1.D0,ARG) @A@#@@ ETAX=BOUND-ALPHA*ANS )@@G@@LOG(ARG) @A@@@# ETAX=BOUND-ALPHA*DLOG(ARG) @#@@@@ GO TO NT )@@G@@10 @[@@@@C @#@@@@C WEAK INVERSION@[@@@@C @#@@@@ 5 ETAX=PNU )@@G@@INCH @[@@@@C @#@@@@C ITERATION @[@@@@C @]@@@@ 10 K=K+1 NV )@@G@@@ @@@@ EXPT=(BOUND-ETAX)/ALPHA @D@#@@ IF (ABS(EXPT).GT.227.0) NW )@@G@@EXPT=SIGN(227.0,EXPT) @E@@@# IF (DABS(EXPT).GT.227.D0) EXPT=DSIGNNX )@@G@@(227.D0,EXPT) @^@@@@ EXPT=EXP(EXPT) @B@@@@ FVAL=ETAX*ETNY )@@G@@AX+ETAX/ALPHA-UGB-EXPT @B@#@@ DVAL=ETAX+ETAX+(1.0+EXPT)/ALPHA NZ )@@G@@@B@@@# DVAL=ETAX+ETAX+(1.D0+EXPT)/ALPHA @A@#@@ DDVAL=2.0-EXOA )@@G@@PT/ALPHA/ALPHA @A@@@# DDVAL=2.D0-EXPT/ALPHA/ALPHA @^@@@@ OB )@@G@@RVAL=FVAL/DVAL @A@@@@ RVAL=RVAL+RVAL*RVAL*DDVAL/DVAL@^@@@@ OC )@@G@@ETAX=ETAX-RVAL @B@#@@ IF (ABS(RVAL).LT.1.0E-6) GO TO 1000 @B@@@#OD )@@G@@ IF (DABS(RVAL).LT.1.0D-6) GO TO 1000@ @@@@ IF (K.LT.5) GO TO OE )@@G@@10 @[@@@@C @]@@@@C FINISH @[@@@@C @]@@@@ 1000 RETURN@]@@@@OF )@@G@@ END @G@[@@ SUBROUTINE MOSCAP (VGS0,VGD0,VGB0,VGS1,VGD1,VGB1OG )@@G@@,COVLGS,COVLGD, @C@[@@ 1 COVLGB,CGS0,CGD0,CGB0,CGS1,CGD1,CGB1)OH )@@G@@@[@[@@C @G@[@@C THIS ROUTINE COMPUTES THE MOSFET OVERLAP CAPACITOI )@@G@@ANCES AS FUNCTIONS@A@[@@C OF THE DEVICE TERMINAL VOLTAGES. @[@[@@C OJ )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEOK )@@G@@T, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IOL )@@G@@TERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /MOSARG/ GAOM )@@G@@MMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTON )@@G@@RA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAOO )@@G@@HPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AIOP )@@G@@ON,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ COMMONOQ )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1OR )@@G@@ GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@C OS )@@G@@@ @[@@ IF (LEV.GT.2) GO TO 500 @[@[@@C @[@[@@C @A@[@@C MEOT )@@G@@YER^S MOSFET CAPACITANCE MODEL@[@[@@C @#@[@@ INDEX=1 @#@[@@OU )@@G@@ VGS=VGS1 @#@[@@ VGD=VGD1 @#@[@@ VGB=VGB1 @#@[@@OV )@@G@@ 10 VDS=VGS-VGD @#@[@@ VGST=VGS-VON@A@[@@ IF (VGST.GT.-PHI) OW )@@G@@GO TO 100 @^@[@@ CGB=COX+COVLGB @#@[@@ CGD=COVLGD @#@[@@OX )@@G@@ CGS=COVLGS @#@[@@ GO TO 430 @[@[@@C @[@[@@C @B@[@@OY )@@G@@ 100 IF (VGST.GT.-PHI/2.0) GO TO 200 @ @[@@ CGB=-VGST*COX/PHI+OZ )@@G@@COVLGB@#@[@@ CGD=COVLGD @#@[@@ CGS=COVLGS @#@[@@ GO TO PA )@@G@@430 @[@[@@C @[@[@@C @A@[@@ 200 IF (VGST.GT.0.0) GO TO 300 PB )@@G@@@ @[@@ CGB=-VGST*COX/PHI+COVLGB@#@[@@ CGD=COVLGD @C@[@@ PC )@@G@@CGS=COX/(0.75*PHI)*VGST+COX/1.5+COVLGS @#@[@@ GO TO 430 @[@[@@PD )@@G@@C @[@[@@C @A@[@@ 300 IF (VGST.GT.VDS) GO TO 400 @#@[@@ PE )@@G@@CGB=COVLGB @#@[@@ CGD=COVLGD @^@[@@ CGS=COX/1.5+COVLGS@#@[@@PF )@@G@@ GO TO 430 @[@[@@C @[@[@@C @^@[@@ 400 VGSTO=VGS-VON PG )@@G@@@ @[@@ VGDTO=VGD-VON-1.0E-12 @B@[@@ VGSDT2=(VGSTO+VGDTO)*(VGPH )@@G@@STO+VGDTO) @D@[@@ CGD=COX*(1.0-VGSTO*VGSTO/VGSDT2)/1.5+COVLGD PI )@@G@@@D@[@@ CGS=COX*(1.0-VGDTO*VGDTO/VGSDT2)/1.5+COVLGS @#@[@@ PJ )@@G@@CGB=COVLGB @[@[@@C @[@[@@C @ @[@@ 430 GO TO (440,560), INDEX PK )@@G@@@#@[@@ 440 INDEX=2 @#@[@@ CGS1=CGS @#@[@@ CGD1=CGD PL )@@G@@@#@[@@ CGB1=CGB @#@[@@ VGS=VGS0 @#@[@@ VGD=VGD0 PM )@@G@@@#@[@@ VGB=VGB0 @#@[@@ GO TO 10 @[@[@@C @A@[@@C CAPN )@@G@@PACITANCE MODEL OF E-B THEORY @[@[@@C @#@[@@ 500 CONTINUE @^@[@@PO )@@G@@ UPHIS=UPHIB+UPHIB @^@[@@ UGS1=VGS1/VT-UFB @^@[@@ UGD1=VPP )@@G@@GD1/VT-UFB @^@[@@ UGB1=VGB1/VT-UFB @C@[@@ IF ((UGS1-UGB1).GTPQ )@@G@@.UPHIS) UGB1=UGS1-UPHIS @^@[@@ UGS0=VGS0/VT-UFB @^@[@@ UGD0=VPR )@@G@@GD0/VT-UFB @^@[@@ UGB0=VGB0/VT-UFB @C@[@@ IF ((UGS0-UGB0).GTPS )@@G@@.UPHIS) UGB0=UGS0-UPHIS @[@[@@C @[@[@@C @#@[@@ INDEX=1 PT )@@G@@@#@[@@ UGS=UGS1 @#@[@@ UGD=UGD1 @#@[@@ UGB=UGB1 PU )@@G@@@#@[@@ UBS=UGS-UGB @#@[@@ UDS=UGS-UGD @A@[@@ IF (UGS.GT.UPV )@@G@@THSUB) GO TO 515 @[@[@@C @#@[@@C CUTOFF REGION @[@[@@C @#@[@@PW )@@G@@ 510 CONTINUE @#@[@@ CGS=COVLGS @#@[@@ CGD=COVLGD @ @[@@PX )@@G@@ UGBB=AMAX1(UGB,0.0) @^@[@@ ARG=ABS(UGB)/UPHIS@ @[@@ PY )@@G@@ARG=AMIN1(ARG,100.0) @A@[@@ CGB=COX/(SQRT(1.0+UGBB/AHPLA2)@B@[@@PZ )@@G@@ 1 +ROOT2*ALPHA*EXP(-ARG))+COVLGB @#@[@@ GO TO 540 @[@[@@QA )@@G@@C @^@[@@C SET THE FLAG KVDS @[@[@@C @#@[@@ 515 CONTINUE QB )@@G@@@]@[@@ KVDS=0@A@[@@ IF (UDS.GE.1.0E-4) GO TO 502 @#@[@@ QC )@@G@@UDS=1.0E-4 @]@[@@ KVDS=1@#@[@@ 502 CONTINUE @^@[@@ UTH=VOQD )@@G@@N/VT-UFB @A@[@@ IF (UGS.GE.UTH) GO TO 525 @[@[@@C @^@[@@QE )@@G@@C WEAK INVERSION CASE @[@[@@C @#@[@@ 505 CONTINUE @#@[@@ QF )@@G@@CYS=COVLGS @#@[@@ CYD=COVLGD @^@[@@ UGBY=UTHSUB-UBS @ @[@@QG )@@G@@ UGBB=AMAX1(UGBY,0.0) @ @[@@ ARG=ABS(UGBY)/UPHIS @ @[@@QH )@@G@@ ARG=AMIN1(ARG,100.0) @F@[@@ CYB=COX/(SQRT(1.0+UGBB/AHPLA2)QI )@@G@@+ROOT2*ALPHA*EXP(-ARG))+COVLGB@[@[@@C @#@[@@ UGBX=UTH-UBS@B@[@@QJ )@@G@@ PINCH=-TAHPLA+SQRT(AHPLA2+UGBX) @C@[@@ CALL EXPEQN (PINCHQK )@@G@@,UTH,UGBX,UDS,ETAD) @C@[@@ CALL EXPEQN (PINCH,UTH,UGBX,0.0,ETASQL )@@G@@) @^@[@@ ONEUGB=1.0-UGBX @^@[@@ ETAS2=ETAS*ETAS @^@[@@QM )@@G@@ ETAD2=ETAD*ETAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22QN )@@G@@=ETAD2/2.0 @ @[@@ ALGESD=ALOG(ETAS/ETAD) @^@[@@ ESALPH=ETAS/QO )@@G@@ALPHA @^@[@@ EDALPH=ETAD/ALPHA @D@[@@ SMVAL=ETAS2*ETAS/3.0+ALPQP )@@G@@HAF*ETAS22+ONEUGB*ETAS @D@[@@ DMVAL=ETAD2*ETAD/3.0+ALPHAF*ETAD22+OQQ )@@G@@NEUGB*ETAD @^@[@@ XMVAL=SMVAL-DMVAL @E@[@@ CD1=(ETAS22-ETAD22QR )@@G@@)+ALPHAF*(ETAS-ETAD)+ONEUGB*ALGESD @#@[@@ CD2=CD1*CD1 @F@[@@ QS )@@G@@CXS=COX*(ETAS2+ESALPH-UGBX)*(CD1-XMVAL/ETAS)/CD2+COVLGS @F@[@@ QT )@@G@@CXD=COX*(ETAD2+EDALPH-UGBX)*(-CD1+XMVAL/ETAD)/CD2+COVLGD @C@[@@ QU )@@G@@ARG=XMVAL*(1.0/ETAS-1.0/ETAD-ALGESD/ALPHA)@D@[@@ CXB=COX*(-CD1*(ESAQV )@@G@@LPH-EDALPH)-ARG)/CD2+COVLGB @[@[@@C @A@[@@ DEL=(UGS-UTHSUB)/(QW )@@G@@UTH-UTHSUB) @ @[@@ CGS=CYS+(CXS-CYS)*DEL @ @[@@ CGD=CYD+(CXDQX )@@G@@-CYD)*DEL @ @[@@ CGB=CYB+(CXB-CYB)*DEL @#@[@@ GO TO 540 QY )@@G@@@[@[@@C @ @[@@C SPECIAL CASE FOR VDS=0.0 @[@[@@C @#@[@@ 525 QZ )@@G@@CONTINUE @ @[@@ IF (KVDS.EQ.0) GO TO 530@A@[@@ PINCH=-TAHPLRA )@@G@@A+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)@[@[@@RB )@@G@@C @^@[@@C TRANSISTOR IS ON @[@[@@C @#@[@@ 530 CONTINUE RC )@@G@@@^@[@@ ONEUGB=1.0-UGB @^@[@@ ETAS2=ETAS*ETAS @^@[@@ RD )@@G@@ETAD2=ETAD*ETAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22=ETAD2RE )@@G@@/2.0 @^@[@@ ESALPH=ETAS/ALPHA @^@[@@ EDALPH=ETAD/ALPHA @ @[@@RF )@@G@@ ALGESD=ALOG(ETAS/ETAD) @^@[@@ IF (KVDS.EQ.1) @F@[@@ 1RG )@@G@@ CD1=(ETAS22-ETAD22)+ALPHAF*(ETAS-ETAD)+ONEUGB*ALGESD @D@[@@ RH )@@G@@SMVAL=ETAS2*ETAS/3.0+ALPHAF*ETAS22+ONEUGB*ETAS @D@[@@ DMVAL=ETAD2*RI )@@G@@ETAD/3.0+ALPHAF*ETAD22+ONEUGB*ETAD @^@[@@ XMVAL=SMVAL-DMVAL @#@[@@RJ )@@G@@ CD2=CD1*CD1 @E@[@@ CGS=COX*(ETAS2+ESALPH-UGB)*(CD1-XMVAL/ETASRK )@@G@@)/CD2+COVLGS@F@[@@ CGD=COX*(ETAD2+ESALPH-UGB)*(-CD1+XMVAL/ETAD)/CD2RL )@@G@@+COVLGD @C@[@@ ARG=XMVAL*(1.0/ETAS-1.0/ETAD-ALGESD/ALPHA)@D@[@@RM )@@G@@ CGB=COX*(-CD1*(ESALPH-EDALPH)-ARG)/CD2+COVLGB @[@[@@C @[@[@@RN )@@G@@C @#@[@@ 540 CONTINUE @ @[@@ CGS=AMAX1(CGS,1.0E-30) @ @[@@RO )@@G@@ CGD=AMAX1(CGD,1.0E-30) @ @[@@ CGB=AMAX1(CGB,1.0E-30) @ @[@@RP )@@G@@ GO TO (550,560), INDEX @[@[@@C @#@[@@ 550 INDEX=2 @#@[@@RQ )@@G@@ CGS1=CGS @#@[@@ CGD1=CGD @#@[@@ CGB1=CGB @#@[@@RR )@@G@@ UGS=UGS0 @#@[@@ UGD=UGD0 @#@[@@ UGB=UGB0 @#@[@@RS )@@G@@ UDS=UGS-UGD @#@[@@ UBS=UGS-UGB @#@[@@ UTHSUB=UBS @A@[@@RT )@@G@@ FUDGE=UPHIB-50.0/UPHIB-UBS @A@[@@ IF (FUDGE.LE.0.0) GO TO RU )@@G@@555 @B@[@@ UTHSUB=FUDGE+UBS+SQRT(FUDGE)/ALPHA @A@[@@ 555 IF (UGRV )@@G@@S.LE.UTHSUB) GO TO 510 @ @[@@ UDS=AMAX1(UDS,1.0E-4) @]@[@@ RW )@@G@@KVDS=1@#@[@@ UTH=UPHIS @D@[@@ IF (UPHIS.GT.UBS) UTH=UTH+SQRTRX )@@G@@(UPHIS-UBS)/ALPHA @A@[@@ IF (UGS.LT.UTH) GO TO 505 @A@[@@ RY )@@G@@PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,0.0RZ )@@G@@,ETAS)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)@#@[@@ GO TO SA )@@G@@530 @[@[@@C @[@[@@C @#@[@@ 560 CGS0=CGS @#@[@@ CGD0=CSB )@@G@@GD @#@[@@ CGB0=CGB @[@[@@C @]@[@@C FINISHED @[@[@@C SC )@@G@@@]@[@@ 1000 RETURN@]@[@@ END @#@[@@ OVERLAY(5,0)@#@[@@ SD )@@G@@PROGRAM DCOP@[@[@@C @G@[@@C THIS ROUTINE PRINTS OUT THE OPERATINSE )@@G@@G POINTS OF THE NONLINEAR @^@[@@C CIRCUIT ELEMENTS. @[@[@@C SF )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUSG )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,SH )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILSI )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWSJ )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,SK )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@SL )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, SM )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONSN )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1SO )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2SP )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,RSQ )@@G@@OOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRSR )@@G@@TOL,CHGTOL,EPS0,EPSSIL,EPSOX @F@[@@ COMMON /MISCEL/ APROG(3),ATIMESS )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ST )@@G@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, SU )@@G@@@^@[@@ 1 KOVAR,KIDOUT @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCRSV )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,SW )@@G@@NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,ISX )@@G@@PZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@ SY )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLESZ )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@TA )@@G@@C @[@[@@C @ @[@@ DIMENSION OPTITL(4) @C@[@@ DIMENSTB )@@G@@ION ANAM(12),AV1(12),AI1(12),REQ(12)@C@[@@ DIMENSION AMOD(12),CD(12TC )@@G@@),VD(12),CAP(12) @G@[@@ DIMENSION CB(12),CC(12),VBE(12),VBC(12),VCTD )@@G@@E(12),GM(12),RPI(12), @E@[@@ 1 RO(12),CPI(12),CMU(12),BETADC(12)TE )@@G@@,BETAAC(12),FT(12)@E@[@@ DIMENSION VGS(12),VDS(12),GDS(12),CGS(12),TF )@@G@@CGD(12) @C@[@@ DIMENSION VBS(12),CBD(12),CBS(12),CGB(12) @A@[@@TG )@@G@@ DIMENSION VTH(12),VDSAT(12) @^@[@@ DIMENSION GMBS(12)@G@[@@TH )@@G@@ DATA OPTITL / 8HOPERATIN, 8HG POINT , 8HINFORMAT, 8HION / TI )@@G@@@G@[@@ DATA AV,AVD,AVBE,AVBC,AVCE,AVGS,AVDS,AVBS / 1HV,2HVD,3HVBE,3TJ )@@G@@HVBC, @A@[@@ 1 3HVCE,3HVGS,3HVDS,3HVBS / @F@[@@ DATA ACNTRV,TK )@@G@@ACNTRI,ASRCV,ASRCI,ATRANG,ATRANR,AVGAIN,AIGAIN /@E@[@@ 1 8HV-CONTRTL )@@G@@L, 8HI-CONTRL, 8HV-SOURCE, 8HI-SOURCE, @E@[@@ 2 8HTRANS-G , 8HTTM )@@G@@RANS-R , 8HV GAIN , 8HI GAIN / @C@[@@ DATA AI,AID,AIB,AIC / 1HTN )@@G@@I,2HID,2HIB,2HIC /@C@[@@ DATA AREQ,ARPI,ARO / 3HREQ,3HRPI,2HRO / TO )@@G@@@G@[@@ DATA ACAP,ACPI,ACMU,ACGS,ACGD,ACBD,ACBS / 3HCAP,3HCPI,3HCMU,TP )@@G@@3HCGS,@ @[@@ 1 3HCGD,3HCBD,3HCBS / @ @[@@ DATA ACGB / 3HCGB TQ )@@G@@/ @B@[@@ DATA AVTH, AVDSAT / 3HVTH, 5HVDSAT /@A@[@@ DATA ATR )@@G@@GM,AGDS / 2HGM,3HGDS / @ @[@@ DATA AGMBS / 4HGMBS / @C@[@@ TS )@@G@@DATA ABETAD,ABETAA / 6HBETADC,6HBETAAC / @^@[@@ DATA AFT / 2HFT / TT )@@G@@@[@[@@C @E@[@@C COMPUTE VOLTAGE SOURCE CURRENTS AND POWER DISSIPATITU )@@G@@ON @[@[@@C @^@[@@ CALL SECOND(T1) @G@[@@ IF ((MODE.EQTV )@@G@@.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 700 @#@[@@ POWER=TW )@@G@@0.0 @A@[@@ IF (JELCNT(9).EQ.0) GO TO 50 @#@[@@ ITITLE=0 TX )@@G@@@E@[@@ 11 FORMAT (////5X,*VOLTAGE SOURCE CURRENTS*//5X,*NAME*, @^@[@@TY )@@G@@ 1 7X,*CURRENT*/) @^@[@@ LOC=LOCATE(9) @ @[@@ 20 IF (LOTZ )@@G@@C.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(UA )@@G@@LOC+6)@ @[@@ CREAL=VALUE(LVNIM1+IPTR)@B@[@@ POWER=POWER-CREAL*UB )@@G@@VALUE(LOCV+1) @A@[@@ IF (ITITLE.EQ.0) WRITE (6,11) @#@[@@ UC )@@G@@ITITLE=1 @A@[@@ WRITE (6,21) VALUE(LOCV),CREAL@A@[@@ 21 FORMATUD )@@G@@ (/5X,A8,1X,1PE10.3) @^@[@@ 30 LOC=NODPLC(LOC) @#@[@@ GO TO UE )@@G@@20 @^@[@@ 50 LOC=LOCATE(10) @ @[@@ 60 IF (LOC.EQ.0) GO TO 90 UF )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@UG )@@G@@ NODE2=NODPLC(LOC+3) @A@[@@ POWER=POWER-VALUE(LOCV+1) UH )@@G@@@D@[@@ 1 *(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2)) @^@[@@ UI )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 60 @^@[@@ 90 WRITE (6,91) POWERUJ )@@G@@@F@[@@ 91 FORMAT (//5X,*TOTAL POWER DISSIPATION *,1PE9.2,* WATTS*) UK )@@G@@@[@[@@C @A@[@@C SMALL SIGNAL DEVICE PARAMETERS @[@[@@C @F@[@@UL )@@G@@ NUMDEV=JELCNT(5)+JELCNT(6)+JELCNT(7)+JELCNT(8)+JELCNT(11) @B@[@@UM )@@G@@ 1 +JELCNT(12)+JELCNT(13)+JELCNT(14)@A@[@@ IF (NUMDEV.EQ.0) GUN )@@G@@O TO 600 @A@[@@ CALL TITLE(0,LWIDTH,1,OPTITL) @^@[@@ KNTLIMUO )@@G@@=LWIDTH/11 @[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED CURRENT SOUP )@@G@@URCES @[@[@@C @A@[@@ IF (JELCNT(5).EQ.0) GO TO 175 @#@[@@ UQ )@@G@@ITITLE=0 @F@[@@ 111 FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED CURRENT SUR )@@G@@OURCES^) @^@[@@ LOC=LOCATE(5) @]@[@@ KNTR=0@ @[@@ 120 US )@@G@@IF (LOC.EQ.0) GO TO 140 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(UT )@@G@@LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+12) @ @[@@ ANAM(KNTR)=VALUE(LUU )@@G@@OCV) @ @[@@ AI1(KNTR)=VALUE(LOCT) @A@[@@ IF (KNTR.GE.KNTLIMUV )@@G@@) GO TO 150 @^@[@@ 130 LOC=NODPLC(LOC) @#@[@@ GO TO 120 @ @[@@UW )@@G@@ 140 IF (KNTR.EQ.0) GO TO 175@A@[@@ 150 IF (ITITLE.EQ.0) WRITE (6,111)UX )@@G@@@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) UY )@@G@@@B@[@@ 151 FORMAT(1H0,/,1H0,/,11X,12(2X,A8)) @ @[@@ 161 FORMAT(1H0,AUZ )@@G@@8,12F10.3) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) @ @[@@VA )@@G@@ 171 FORMAT(1H0,A8,1P12E10.2)@]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0VB )@@G@@) GO TO 130 @[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOVC )@@G@@URCES @[@[@@C @A@[@@ 175 IF (JELCNT(6).EQ.0) GO TO 186 @#@[@@ VD )@@G@@ITITLE=0 @F@[@@ 176 FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED VOLTAGE SVE )@@G@@OURCES^) @^@[@@ LOC=LOCATE(6) @]@[@@ KNTR=0@ @[@@ 178 VF )@@G@@IF (LOC.EQ.0) GO TO 182 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(VG )@@G@@LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+13) @ @[@@ ANAM(KNTR)=VALUE(LVH )@@G@@OCV) @ @[@@ AV1(KNTR)=VALUE(LOCT) @ @[@@ AI1(KNTR)=VALUE(LOVI )@@G@@CT+1) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 184 @^@[@@ 180 LOC=NODPLC(LVJ )@@G@@OC) @#@[@@ GO TO 178 @ @[@@ 182 IF (KNTR.EQ.0) GO TO 186@A@[@@VK )@@G@@ 184 IF (ITITLE.EQ.0) WRITE (6,176)@#@[@@ ITITLE=1 @B@[@@ VL )@@G@@WRITE (6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,161) ASRCV,(AV1VM )@@G@@(I),I=1,KNTR) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) VN )@@G@@@]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 180 @[@[@@C @C@[@@VO )@@G@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES @[@[@@C @A@[@@ 186 VP )@@G@@IF (JELCNT(7).EQ.0) GO TO 196 @#@[@@ ITITLE=0 @F@[@@ 187 FORMATVQ )@@G@@(1H0,/,^0**** CURRENT-CONTROLLED CURRENT SOURCES^) @^@[@@ LOC=LOVR )@@G@@CATE(7) @]@[@@ KNTR=0@ @[@@ 188 IF (LOC.EQ.0) GO TO 192 @#@[@@VS )@@G@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LX0+NODVT )@@G@@PLC(LOC+12) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AI1(KNTR)=VAVU )@@G@@LUE(LOCT) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 194 @^@[@@ 190 LOC=NOVV )@@G@@DPLC(LOC) @#@[@@ GO TO 188 @ @[@@ 192 IF (KNTR.EQ.0) GO TO 196VW )@@G@@@A@[@@ 194 IF (ITITLE.EQ.0) WRITE (6,187)@#@[@@ ITITLE=1 @B@[@@VX )@@G@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,171) ASRCVY )@@G@@I,(AI1(I),I=1,KNTR) @]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TVZ )@@G@@O 190 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES WA )@@G@@@[@[@@C @A@[@@ 196 IF (JELCNT(8).EQ.0) GO TO 210 @#@[@@ ITITLEWB )@@G@@=0 @F@[@@ 197 FORMAT(1H0,/,^0**** CURRENT-CONTROLLED VOLTAGE SOURCESWC )@@G@@^) @^@[@@ LOC=LOCATE(8) @]@[@@ KNTR=0@ @[@@ 198 IF (LOWD )@@G@@C.EQ.0) GO TO 202 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)WE )@@G@@@ @[@@ LOCT=LX0+NODPLC(LOC+13) @ @[@@ ANAM(KNTR)=VALUE(LOCV) WF )@@G@@@ @[@@ AV1(KNTR)=VALUE(LOCT) @ @[@@ AI1(KNTR)=VALUE(LOCT+1) WG )@@G@@@A@[@@ IF (KNTR.GE.KNTLIM) GO TO 204 @^@[@@ 200 LOC=NODPLC(LOC) WH )@@G@@@#@[@@ GO TO 198 @ @[@@ 202 IF (KNTR.EQ.0) GO TO 210@A@[@@ 204 WI )@@G@@IF (ITITLE.EQ.0) WRITE (6,197)@#@[@@ ITITLE=1 @B@[@@ WRITE WJ )@@G@@(6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,161) ASRCV,(AV1(I),I=WK )@@G@@1,KNTR) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) @]@[@@WL )@@G@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 200 @[@[@@C @]@[@@C DIOWM )@@G@@DES @[@[@@C @A@[@@ 210 IF (JELCNT(11).EQ.0) GO TO 300@#@[@@ WN )@@G@@ITITLE=0 @A@[@@ 211 FORMAT(1H0,/,^0**** DIODES^) @^@[@@ LOC=LOWO )@@G@@CATE(11) @]@[@@ KNTR=0@ @[@@ 220 IF (LOC.EQ.0) GO TO 240 @#@[@@WP )@@G@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLCWQ )@@G@@(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @^@[@@ LOCM=NODPLC(WR )@@G@@LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOWS )@@G@@C+11) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LWT )@@G@@OCM) @ @[@@ CD(KNTR)=VALUE(LOCT+1) @D@[@@ VD(KNTR)=VALUE(LVNWU )@@G@@IM1+NODE1)-VALUE(LVNIM1+NODE2)@A@[@@ IF (MODEDC.NE.1) GO TO 225 WV )@@G@@@A@[@@ REQ(KNTR)=1.0/VALUE(LOCT+2) @ @[@@ CAP(KNTR)=VALUE(LOWW )@@G@@CT+4) @A@[@@ 225 IF (KNTR.GE.KNTLIM) GO TO 250 @^@[@@ 230 LOC=NODPLC(LWX )@@G@@OC) @#@[@@ GO TO 220 @ @[@@ 240 IF (KNTR.EQ.0) GO TO 300@A@[@@WY )@@G@@ 250 IF (ITITLE.EQ.0) WRITE (6,211)@#@[@@ ITITLE=1 @B@[@@ WZ )@@G@@WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE (6,251) (AMOD(I),IXA )@@G@@=1,KNTR) @A@[@@ 251 FORMAT(^0MODEL ^,12(2X,A8)) @B@[@@ WRITE XB )@@G@@(6,171) AID,(CD(I),I=1,KNTR) @B@[@@ WRITE (6,161) AVD,(VD(I),I=1,KXC )@@G@@NTR) @A@[@@ IF (MODEDC.NE.1) GO TO 260 @B@[@@ WRITE (6,171XD )@@G@@) AREQ,(REQ(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACAP,(CAP(I),I=1,KNTR)XE )@@G@@@]@[@@ 260 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 230 @[@[@@C @A@[@@XF )@@G@@C BIPOLAR JUNCTION TRANSISTORS @[@[@@C @A@[@@ 300 IF (JELCNT(1XG )@@G@@2).EQ.0) GO TO 400@#@[@@ ITITLE=0 @E@[@@ 301 FORMAT(1H0,/,^0***XH )@@G@@* BIPOLAR JUNCTION TRANSISTORS^) @^@[@@ LOC=LOCATE(12) @]@[@@XI )@@G@@ KNTR=0@ @[@@ 320 IF (LOC.EQ.0) GO TO 340 @#@[@@ KNTR=KNTR+1 XJ )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@XK )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@XL )@@G@@ LOCM=NODPLC(LOC+8)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ XM )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ XN )@@G@@ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LOCM) @A@[@@ XO )@@G@@CB(KNTR)=TYPE*VALUE(LOCT+3) @A@[@@ CC(KNTR)=TYPE*VALUE(LOCT+2) XP )@@G@@@E@[@@ VBE(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@XQ )@@G@@ VBC(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE1) @A@[@@ XR )@@G@@VCE(KNTR)=VBE(KNTR)-VBC(KNTR) @G@[@@ BETADC(KNTR)=CC(KNTR)/SIGN(AMAXS )@@G@@X1(ABS(CB(KNTR)),1.0E-20),CB(KNTR)) @A@[@@ IF (MODEDC.NE.1) GO TO 3XT )@@G@@25 @A@[@@ RPI(KNTR)=1.0/VALUE(LOCT+4) @ @[@@ GM(KNTR)=VALXU )@@G@@UE(LOCT+6) @A@[@@ RO(KNTR)=1.0/VALUE(LOCT+7) @ @[@@ CPI(KNXV )@@G@@TR)=VALUE(LOCT+9) @ @[@@ CMU(KNTR)=VALUE(LOCT+11)@B@[@@ BETAACXW )@@G@@(KNTR)=GM(KNTR)*RPI(KNTR) @F@[@@ FT(KNTR)=GM(KNTR)/(TWOPI*AMAX1XX )@@G@@(CPI(KNTR)+CMU(KNTR),1.0E-20))@A@[@@ 325 IF (KNTR.GE.KNTLIM) GO TO 350 XY )@@G@@@^@[@@ 330 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @ @[@@ 340 IF (KNXZ )@@G@@TR.EQ.0) GO TO 400@A@[@@ 350 IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ YA )@@G@@ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ YB )@@G@@WRITE (6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AIB,(CB(I)YC )@@G@@,I=1,KNTR) @B@[@@ WRITE (6,171) AIC,(CC(I),I=1,KNTR) @B@[@@ YD )@@G@@WRITE (6,161) AVBE,(VBE(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVBC,(VBC(YE )@@G@@I),I=1,KNTR)@B@[@@ WRITE (6,161) AVCE,(VCE(I),I=1,KNTR)@C@[@@ YF )@@G@@WRITE (6,161) ABETAD,(BETADC(I),I=1,KNTR) @A@[@@ IF (MODEDC.NE.1) GYG )@@G@@O TO 360 @B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ YH )@@G@@WRITE (6,171) ARPI,(RPI(I),I=1,KNTR)@B@[@@ WRITE (6,171) ARO,(RO(I)YI )@@G@@,I=1,KNTR) @B@[@@ WRITE (6,171) ACPI,(CPI(I),I=1,KNTR)@B@[@@ YJ )@@G@@WRITE (6,171) ACMU,(CMU(I),I=1,KNTR)@C@[@@ WRITE (6,161) ABETAA,(BEYK )@@G@@TAAC(I),I=1,KNTR) @B@[@@ WRITE (6,171) AFT,(FT(I),I=1,KNTR) @]@[@@YL )@@G@@ 360 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 330 @[@[@@C @]@[@@C JFEYM )@@G@@TS @[@[@@C @A@[@@ 400 IF (JELCNT(13).EQ.0) GO TO 500@#@[@@ YN )@@G@@ITITLE=0 @A@[@@ 401 FORMAT(1H0,/,^0**** JFETS^) @^@[@@ LOC=LOYO )@@G@@CATE(13) @]@[@@ KNTR=0@ @[@@ 420 IF (LOC.EQ.0) GO TO 440 @#@[@@YP )@@G@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLCYQ )@@G@@(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLCYR )@@G@@(LOC+4) @^@[@@ LOCM=NODPLC(LOC+7)@ @[@@ TYPE=NODPLC(LOCM+2YS )@@G@@) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOYT )@@G@@C+19) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LYU )@@G@@OCM) @D@[@@ CD(KNTR)=TYPE*(VALUE(LOCT+3)-VALUE(LOCT+4)) @E@[@@YV )@@G@@ VGS(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@ YW )@@G@@VDS(KNTR)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3) @A@[@@ IF (MOYX )@@G@@DEDC.NE.1) GO TO 425 @ @[@@ GM(KNTR)=VALUE(LOCT+5) @ @[@@ YY )@@G@@GDS(KNTR)=VALUE(LOCT+6) @ @[@@ CGS(KNTR)=VALUE(LOCT+9) @ @[@@ YZ )@@G@@CGD(KNTR)=VALUE(LOCT+11)@A@[@@ 425 IF (KNTR.GE.KNTLIM) GO TO 450 @^@[@@ZA )@@G@@ 430 LOC=NODPLC(LOC) @#@[@@ GO TO 420 @ @[@@ 440 IF (KNTR.EQ.ZB )@@G@@0) GO TO 500@A@[@@ 450 IF (ITITLE.EQ.0) WRITE (6,401)@#@[@@ ITITLEZC )@@G@@=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE ZD )@@G@@(6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AID,(CD(I),I=1,KZE )@@G@@NTR) @B@[@@ WRITE (6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ WRITE ZF )@@G@@(6,161) AVDS,(VDS(I),I=1,KNTR)@A@[@@ IF (MODEDC.NE.1) GO TO 460 ZG )@@G@@@B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE (6,171ZH )@@G@@) AGDS,(GDS(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGS,(CGS(I),I=1,KNTR)ZI )@@G@@@B@[@@ WRITE (6,171) ACGD,(CGD(I),I=1,KNTR)@]@[@@ 460 KNTR=0@ @[@@ZJ )@@G@@ IF (LOC.NE.0) GO TO 430 @[@[@@C @]@[@@C MOSFETS @[@[@@C ZK )@@G@@@A@[@@ 500 IF (JELCNT(14).EQ.0) GO TO 600@#@[@@ ITITLE=0 @A@[@@ZL )@@G@@ 501 FORMAT(1H0,/,^0**** MOSFETS^) @^@[@@ LOC=LOCATE(14) @]@[@@ZM )@@G@@ KNTR=0@ @[@@ 520 IF (LOC.EQ.0) GO TO 540 @#@[@@ KNTR=KNTR+1 ZN )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ZO )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ZP )@@G@@ NODE4=NODPLC(LOC+5) @^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ ZQ )@@G@@TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ ZR )@@G@@LOCT=LX0+NODPLC(LOC+26) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ ZS )@@G@@AMOD(KNTR)=VALUE(LOCM) @A@[@@ CD(KNTR)=TYPE*VALUE(LOCT+4) @E@[@@ZT )@@G@@ VGS(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@ ZU )@@G@@VDS(KNTR)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3) @E@[@@ VBS(KNZV )@@G@@TR)=VALUE(LVNIM1+NODE4)-VALUE(LVNIM1+NODE3) @A@[@@ IF (MODEDC.NZW )@@G@@E.1) GO TO 525 @ @[@@ VTH(KNTR)=VALUE(LOCV+9) @A@[@@ VDSAT(ZX )@@G@@KNTR)=VALUE(LOCV+10) @ @[@@ GM(KNTR)=VALUE(LOCT+7) @ @[@@ ZY )@@G@@GDS(KNTR)=VALUE(LOCT+8) @ @[@@ GMBS(KNTR)=VALUE(LOCT+9)@ @[@@ ZZ )@@G@@CBD(KNTR)=VALUE(LOCT+12)@ @[@@ CBS(KNTR)=VALUE(LOCT+14)@ @[@@ AA )@@G@@CGS(KNTR)=VALUE(LOCT+16)@ @[@@ CGD(KNTR)=VALUE(LOCT+18)@ @[@@ AB )@@G@@CGB(KNTR)=VALUE(LOCT+20)@A@[@@ 525 IF (KNTR.GE.KNTLIM) GO TO 550 @^@[@@AC )@@G@@ 530 LOC=NODPLC(LOC) @#@[@@ GO TO 520 @ @[@@ 540 IF (KNTR.EQ.AD )@@G@@0) GO TO 600@A@[@@ 550 IF (ITITLE.EQ.0) WRITE (6,501)@#@[@@ ITITLEAE )@@G@@=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE AF )@@G@@(6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AID,(CD(I),I=1,KAG )@@G@@NTR) @B@[@@ WRITE (6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ WRITE AH )@@G@@(6,161) AVDS,(VDS(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVBS,(VBS(I),I=1AI )@@G@@,KNTR)@A@[@@ IF (MODEDC.NE.1) GO TO 560 @B@[@@ WRITE (6,161AJ )@@G@@) AVTH,(VTH(I),I=1,KNTR)@C@[@@ WRITE (6,161) AVDSAT,(VDSAT(I),I=1,KAK )@@G@@NTR) @B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE AL )@@G@@(6,171) AGDS,(GDS(I),I=1,KNTR)@C@[@@ WRITE (6,171) AGMBS,(GMBS(I),IAM )@@G@@=1,KNTR) @B@[@@ WRITE (6,171) ACBD,(CBD(I),I=1,KNTR)@B@[@@ AN )@@G@@WRITE (6,171) ACBS,(CBS(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGS,(CGS(AO )@@G@@I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGD,(CGD(I),I=1,KNTR)@B@[@@ AP )@@G@@WRITE (6,171) ACGB,(CGB(I),I=1,KNTR)@]@[@@ 560 KNTR=0@ @[@@ IF (LOAQ )@@G@@C.NE.0) GO TO 530 @[@[@@C @ @[@@C OPERATING POINT ANALYSES @[@[@@AR )@@G@@C @A@[@@ 600 IF (MODEDC.NE.1) GO TO 700 @A@[@@ IF (KINEL.EQAS )@@G@@.0) GO TO 610 @#@[@@ CALL SSTF @A@[@@ 610 IF (NSENS.EQ.0) GOAT )@@G@@ TO 700 @#@[@@ CALL SENCAL @[@[@@C @]@[@@C FINISHED @[@[@@AU )@@G@@C @A@[@@ 700 IF (MODEDC.EQ.2) GO TO 710 @B@[@@ IF ((JACFLG+AV )@@G@@JPZFLG).NE.0) GO TO 705 @ @[@@ CALL CLRMEM(LVNIM1) @^@[@@ AW )@@G@@CALL CLRMEM(LX0) @^@[@@ 705 CALL CLRMEM(LVN) @^@[@@ CALL CLRMEM(AX )@@G@@NDIAG)@^@[@@ 710 CALL SECOND(T2) @A@[@@ RSTATS(5)=RSTATS(5)+T2-TAY )@@G@@1 @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE SSTF AZ )@@G@@@[@[@@C @F@[@@C THIS ROUTINE COMPUTES THE VALUE OF THE SMALL-SIGBA )@@G@@NAL TRANSFER@A@[@@C FUNCTION SPECIFIED BY THE USER. @[@[@@C @G@[@@BB )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, BC )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEBD )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,BE )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQBF )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXBG )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ BH )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@BI )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /FLAGBJ )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLBK )@@G@@COD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMONBL )@@G@@ /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1BM )@@G@@ KOVAR,KIDOUT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEBN )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEBO )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ DIMENSION STBP )@@G@@RING(5),SAVE(3) @B@[@@ DATA ASLASH, ABLNK / 1H/, 1H / @[@[@@BQ )@@G@@C @F@[@@C SETUP CURRENT VECTOR FOR INPUT RESISTANCE AND TRANSFER FUBR )@@G@@NCTION@[@[@@C @A@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP)@ @[@@ BS )@@G@@IF (KIDIN.EQ.10) GO TO 5@ @[@@C... VOLTAGE SOURCE INPUT @ @[@@ BT )@@G@@IPTRI=NODPLC(KINEL+6) @ @[@@ VALUE(LVN+IPTRI)=+1.0 @#@[@@ BU )@@G@@GO TO 10 @ @[@@C... CURRENT SOURCE INPUT @ @[@@ 5 NOPOSI=NODPLBV )@@G@@C(KINEL+2) @ @[@@ NONEGI=NODPLC(KINEL+3) @ @[@@ VALUE(LVN+NOBW )@@G@@POSI)=-1.0 @ @[@@ VALUE(LVN+NONEGI)=+1.0 @[@[@@C @E@[@@C LU BX )@@G@@DECOMPOSE AND SOLVE THE SYSTEM OF CIRCUIT EQUATIONS @[@[@@C @A@[@@BY )@@G@@C... REORDER THE RIGHT-HAND SIDE @^@[@@ 10 DO 15 I=2,NSTOP @^@[@@BZ )@@G@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) @#@[@@CA )@@G@@ 15 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+1),NSTCB )@@G@@OP) @#@[@@ 20 CALL DCDCMP @#@[@@ CALL DCSOL @^@[@@ VALUE(CC )@@G@@LVN+1)=0.0 @[@[@@C @ @[@@C EVALUATE TRANSFER FUNCTION @[@[@@C CD )@@G@@@B@[@@ IF (NODPLC(KOVAR+5).NE.0) GO TO 30 @^@[@@C... VOLTAGE OUTPCE )@@G@@UT @ @[@@ NOPOSO=NODPLC(KOVAR+2) @ @[@@ NONEGO=NODPLC(KOVACF )@@G@@R+3) @C@[@@ TRFN=VALUE(LVN+NOPOSO)-VALUE(LVN+NONEGO) @#@[@@ CG )@@G@@GO TO 40 @C@[@@C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) @ @[@@CH )@@G@@ 30 IPTRO=NODPLC(KOVAR+2) @ @[@@ IPTRO=NODPLC(IPTRO+6) @ @[@@CI )@@G@@ TRFN=VALUE(LVN+IPTRO) @[@[@@C @ @[@@C EVALUATE INPUT RESISTCJ )@@G@@ANCE @[@[@@C @ @[@@ 40 IF (KIDIN.EQ.9) GO TO 50@ @[@@C... CURRENCK )@@G@@T SOURCE INPUT @C@[@@ ZIN=VALUE(LVN+NONEGI)-VALUE(LVN+NOPOSI) CL )@@G@@@#@[@@ GO TO 70 @ @[@@C... VOLTAGE SOURCE INPUT @ @[@@ 50 CM )@@G@@CREAL=VALUE(LVN+IPTRI) @B@[@@ IF (ABS(CREAL).GE.1.0E-20) GO TO 60 CN )@@G@@@#@[@@ ZIN=1.0E20 @#@[@@ GO TO 70 @^@[@@ 60 ZIN=-1.0/CRECO )@@G@@AL @[@[@@C @C@[@@C SETUP CURRENT VECTOR FOR OUTPUT RESISTANCE CP )@@G@@@[@[@@C @A@[@@ 70 CALL ZERO8(VALUE(LVN+1),NSTOP)@B@[@@ IF (NOCQ )@@G@@DPLC(KOVAR+5).NE.0) GO TO 80 @^@[@@C... VOLTAGE OUTPUT @ @[@@ CR )@@G@@VALUE(LVN+NOPOSO)=-1.0 @ @[@@ VALUE(LVN+NONEGO)=+1.0 @#@[@@ CS )@@G@@GO TO 90 @C@[@@ 80 IF (NODPLC(KOVAR+2).NE.KINEL) GO TO 85 @#@[@@CT )@@G@@ ZOUT=ZIN @#@[@@ GO TO 200 @C@[@@C... CURRENT OUTPUT (THCU )@@G@@ROUGH VOLTAGE SOURCE) @ @[@@ 85 VALUE(LVN+IPTRO)=+1.0 @[@[@@C CV )@@G@@@C@[@@C PERFORM NEW FORWARD AND BACKWARD SUBSTITUTION@[@[@@C @A@[@@CW )@@G@@C... REORDER THE RIGHT-HAND SIDE @^@[@@ 90 DO 95 I=2,NSTOP @^@[@@CX )@@G@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) @#@[@@CY )@@G@@ 95 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+1),NSTCZ )@@G@@OP) @#@[@@ CALL DCSOL @^@[@@ VALUE(LVN+1)=0.0 @[@[@@C DA )@@G@@@ @[@@C EVALUATE OUTPUT RESISTANCE @[@[@@C @B@[@@ 100 IF (NODPLC(KDB )@@G@@OVAR+5).NE.0) GO TO 110 @^@[@@C... VOLTAGE OUTPUT @C@[@@ ZOUT=VDC )@@G@@ALUE(LVN+NONEGO)-VALUE(LVN+NOPOSO) @#@[@@ GO TO 200 @C@[@@C... DD )@@G@@CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) @ @[@@ 110 CREAL=VALUE(LVN+IPDE )@@G@@TRO) @B@[@@ IF (ABS(CREAL).GE.1.0E-20) GO TO 120@#@[@@ ZOUT=1DF )@@G@@.0E20 @#@[@@ GO TO 200 @^@[@@ 120 ZOUT=-1.0/CREAL @[@[@@C DG )@@G@@@#@[@@C PRINT RESULTS @[@[@@C @#@[@@ 200 DO 210 I=1,5@^@[@@ DH )@@G@@STRING(I)=ABLNK @#@[@@ 210 CONTINUE @]@[@@ IPOS=1@B@[@@ DI )@@G@@CALL OUTNAM(KOVAR,1,STRING,IPOS) @A@[@@ CALL COPY8(STRING,SAVE,3DJ )@@G@@) @B@[@@ CALL MOVE(STRING,IPOS,ASLASH,1,1) @#@[@@ IPOS=IDK )@@G@@POS+1 @ @[@@ LOCV=NODPLC(KINEL+1) @^@[@@ ANAM=VALUE(LOCV) DL )@@G@@@B@[@@ CALL MOVE(STRING,IPOS,ANAM,1,8) @D@[@@ WRITE (6,231DM )@@G@@) STRING,TRFN,ANAM,ZIN,SAVE,ZOUT @E@[@@ 231 FORMAT(////,^0**** SMALLDN )@@G@@-SIGNAL CHARACTERISTICS^//, @A@[@@ 1 1H0,5X,5A8,3H = ,1PE10.3,/,DO )@@G@@@E@[@@ 2 1H0,5X,^INPUT RESISTANCE AT ^,A8,12X,3H = ,E10.3,/,@E@[@@DP )@@G@@ 3 1H0,5X,^OUTPUT RESISTANCE AT ^,2A8,A3,3H = ,E10.3) @]@[@@ DQ )@@G@@RETURN@]@[@@ END @^@[@@ SUBROUTINE SENCAL @[@[@@C @G@[@@DR )@@G@@C THIS ROUTINE COMPUTES THE DC SENSITIVITIES OF CIRCUIT ELEMENTS DS )@@G@@@B@[@@C WITH RESPECT TO USER SPECIFIED OUTPUTS. @[@[@@C @G@[@@ DT )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@DU )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, DV )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFDW )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACDX )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,DY )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONDZ )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1EA )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEB )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEEC )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOED )@@G@@SOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),EE )@@G@@RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /FLAGEF )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLEG )@@G@@COD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMONEH )@@G@@ /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1EI )@@G@@ KOVAR,KIDOUT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEEJ )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEEK )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ DIMENSION STEL )@@G@@RING(5),SENTIT(4) @G@[@@ DATA ALSRS,ALSIS,ALSN,ALSRB,ALSRC,ALSRE / EM )@@G@@2HRS,2HIS,1HN,2HRB,2HRC,@#@[@@ 1 2HRE / @G@[@@ DATA ALSBF,AEN )@@G@@LSC2,ALSBR,ALSC4,ALSNE,ALSNC,ALSIK,ALSIKR,ALSVA,ALSVB @F@[@@ 1 / 2EO )@@G@@HBF,2HC2,2HBR,2HC4,2HNE,2HNC,2HIK,3HIKR,2HVA,2HVB / @G@[@@ DATA SEP )@@G@@ENTIT / 8HDC SENSI, 8HTIVITY A, 8HNALYSIS , 8H / @^@[@@ EQ )@@G@@DATA ABLNK / 1H /@[@[@@C @[@[@@C @ @[@@ IF (KINEL.NE.0) GOER )@@G@@ TO 8 @#@[@@ 4 CALL DCDCMP @[@[@@C @[@[@@C @^@[@@ 8 DO 100ES )@@G@@0 N=1,NSENS @[@[@@C @A@[@@C PREPARE ADJOINT EXCITATION VECTOR@[@[@@ET )@@G@@C @A@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP)@ @[@@ LOCS=NODPLC(EU )@@G@@ISENS+N) @ @[@@ IOUTYP=NODPLC(LOCS+5) @A@[@@ IF (IOUTYP.NEV )@@G@@E.0) GO TO 10 @^@[@@C... VOLTAGE OUTPUT @ @[@@ NOPOSO=NODPLEW )@@G@@C(LOCS+2) @ @[@@ NONEGO=NODPLC(LOCS+3) @ @[@@ VALUE(LVN+NOEX )@@G@@POSO)=-1.0 @ @[@@ VALUE(LVN+NONEGO)=+1.0 @#@[@@ GO TO 20 EY )@@G@@@C@[@@C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) @ @[@@ 10 IPTRO=EZ )@@G@@NODPLC(LOCS+2) @ @[@@ IPTRO=NODPLC(IPTRO+6) @ @[@@ VALUE(FA )@@G@@LVN+IPTRO)=-1.0 @[@[@@C @G@[@@C OBTAIN ADJOINT SOLUTION BY DOING FB )@@G@@FORWARD/BACKWARD SUBSTITUTION ON @A@[@@C THE TRANSPOSE OF THE Y MATRFC )@@G@@IX @[@[@@C @#@[@@ 20 CALL ASOL @^@[@@ VALUE(LVN+1)=0.0 FD )@@G@@@[@[@@C @E@[@@C REAL SOLUTION IN LVNIM1; ADJOINT SOLUTION IN LVN .FE )@@G@@.. @[@[@@C @A@[@@ CALL TITLE(0,LWIDTH,1,SENTIT) @]@[@@ FF )@@G@@IPOS=1@B@[@@ CALL OUTNAM(LOCS,1,STRING,IPOS) @B@[@@ CALL MFG )@@G@@OVE(STRING,IPOS,ABLNK,1,7) @^@[@@ JSTOP=(IPOS+6)/8 @B@[@@ FH )@@G@@WRITE (6,36) (STRING(J),J=1,JSTOP) @C@[@@ 36 FORMAT(^0DC SENSITIVITIEFI )@@G@@S OF OUTPUT ^,5A8)@#@[@@ WRITE (6,41)@G@[@@ 41 FORMAT(1H0,8X,*ELEFJ )@@G@@MENT*,9X,*ELEMENT*,7X,*ELEMENT*,7X,*NORMALIZED*/@G@[@@ 1 10X,*NAMEFK )@@G@@*,12X,*VALUE*,6X,*SENSITIVITY SENSITIVITY*/35X, @B@[@@ 2 * (FL )@@G@@VOLTS/UNIT) (VOLTS/PERCENT)*/)@[@[@@C @]@[@@C RESISTORS@[@[@@C FM )@@G@@@^@[@@ LOC=LOCATE(1) @ @[@@ 100 IF (LOC.EQ.0) GO TO 110 @^@[@@FN )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ FO )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ VAL=1.0/VALUE(LOCV+1) @D@[@@ FP )@@G@@SENS=-(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2))*@F@[@@ 1 (VALUEFQ )@@G@@(LVN +NODE1)-VALUE(LVN +NODE2))/(VAL*VAL) @ @[@@ SENSN=VAL*SEFR )@@G@@NS/100.0 @C@[@@ WRITE (6,101) VALUE(LOCV),VAL,SENS,SENSN @D@[@@FS )@@G@@ 101 FORMAT(10X,A8,4X,1PE10.3,5X,E10.3,5X,E10.3) @^@[@@ 105 LOC=NOFT )@@G@@DPLC(LOC) @#@[@@ GO TO 100 @[@[@@C @#@[@@C VOLTAGE SOURCESFU )@@G@@@[@[@@C @^@[@@ 110 LOC=LOCATE(9) @ @[@@ 140 IF (LOC.EQ.0) GO TFV )@@G@@O 150 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) @ @[@@FW )@@G@@ IPTRV=NODPLC(LOC+6) @ @[@@ SENS=-VALUE(LVN+IPTRV) @ @[@@FX )@@G@@ SENSN=VAL*SENS/100.0 @C@[@@ WRITE (6,101) VALUE(LOCV),VAL,FY )@@G@@SENS,SENSN @^@[@@ 145 LOC=NODPLC(LOC) @#@[@@ GO TO 140 @[@[@@FZ )@@G@@C @#@[@@C CURRENT SOURCES@[@[@@C @^@[@@ 150 LOC=LOCATE(10) GA )@@G@@@ @[@@ 160 IF (LOC.EQ.0) GO TO 170 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@GB )@@G@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @^@[@@GC )@@G@@ VAL=VALUE(LOCV+1) @C@[@@ SENS=VALUE(LVN+NODE1)-VALUE(LVN+NODEGD )@@G@@2) @ @[@@ SENSN=VAL*SENS/100.0 @C@[@@ WRITE (6,101) VALUGE )@@G@@E(LOCV),VAL,SENS,SENSN @^@[@@ 165 LOC=NODPLC(LOC) @#@[@@ GO TO GF )@@G@@160 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 170 LOC=LOCATE(1GG )@@G@@1) @ @[@@ 180 IF (LOC.EQ.0) GO TO 210 @^@[@@ LOCV=NODPLC(LOC+1)GH )@@G@@@A@[@@ WRITE (6,181) VALUE(LOCV) @^@[@@ 181 FORMAT(1X,A8) GI )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) GJ )@@G@@@ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+5)@ @[@@GK )@@G@@ LOCM=NODPLC(LOCM+1) @^@[@@ AREA=VALUE(LOCV+1)@[@[@@C GL )@@G@@@ @[@@C SERIES RESISTANCE (RS) @[@[@@C @ @[@@ VAL=VALUE(LOGM )@@G@@CM+2)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 190 @ @[@@ WRITE GN )@@G@@(6,186) ALSRS @C@[@@ 186 FORMAT(10X,A8,5X,2H0.,13X,2H0.,13X,2H0.) GO )@@G@@@#@[@@ GO TO 200 @#@[@@ 190 VAL=1.0/VAL @D@[@@ SENS=-(VALUEGP )@@G@@(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3))*@F@[@@ 1 (VALUE(LVN +NODEGQ )@@G@@1)-VALUE(LVN +NODE3))/(VAL*VAL) @ @[@@ SENSN=VAL*SENS/100.0 GR )@@G@@@B@[@@ WRITE (6,101) ALSRS,VAL,SENS,SENSN @[@[@@C @^@[@@C INTGS )@@G@@RINSIC PARAMETERS @[@[@@C @ @[@@ 200 CSAT=VALUE(LOCM+1)*AREA @^@[@@GT )@@G@@ XN=VALUE(LOCM+3) @D@[@@ VBE=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1GU )@@G@@+NODE2) @#@[@@ VTE=XN*VT @^@[@@ EVBE=EXP(VBE/VTE) @C@[@@GV )@@G@@ VABE=VALUE(LVN+NODE3)-VALUE(LVN+NODE2) @[@[@@C @ @[@@C SATGW )@@G@@URATION CURRENT (IS) @[@[@@C @ @[@@ SENS=VABE*(EVBE-1.0) GX )@@G@@@ @[@@ SENSN=CSAT*SENS/100.0 @B@[@@ WRITE (6,101) ALSIS,CSATGY )@@G@@,SENS,SENSN @[@[@@C @^@[@@C IDEALITY FACTOR (N) @[@[@@C @B@[@@GZ )@@G@@ SENS=-VABE*(CSAT/XN)*(VBE/VTE)*EVBE @B@[@@ IF (ABS(SENS).LT.1HA )@@G@@.0E-50) SENS=0.0 @ @[@@ SENSN=XN*SENS/100.0 @B@[@@ WRITE HB )@@G@@(6,101) ALSN,XN,SENS,SENSN @^@[@@ 205 LOC=NODPLC(LOC) @#@[@@ HC )@@G@@GO TO 180 @[@[@@C @A@[@@C BIPOLAR JUNCTION TRANSISTORS @[@[@@HD )@@G@@C @^@[@@ 210 LOC=LOCATE(12) @ @[@@ 220 IF (LOC.EQ.0) GO TO 1000HE )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@A@[@@ WRITE (6,181) VALUE(LOCV) HF )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) HG )@@G@@@ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5) HH )@@G@@@ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7) HI )@@G@@@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@HJ )@@G@@ LOCM=NODPLC(LOCM+1) @^@[@@ AREA=VALUE(LOCV+1)@[@[@@C HK )@@G@@@^@[@@C BASE RESISTANCE (RB) @[@[@@C @ @[@@ VAL=VALUE(LOCM+4)*HL )@@G@@AREA @A@[@@ IF (VAL.NE.0.0) GO TO 230 @ @[@@ WRITE (6,186HM )@@G@@) ALSRB @#@[@@ GO TO 240 @#@[@@ 230 VAL=1.0/VAL @D@[@@ HN )@@G@@SENS=-(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE5))*@F@[@@ 1 (VALUEHO )@@G@@(LVN +NODE2)-VALUE(LVN +NODE5))/(VAL*VAL) @ @[@@ SENSN=VAL*SEHP )@@G@@NS/100.0 @B@[@@ WRITE (6,101) ALSRB,VAL,SENS,SENSN @[@[@@C HQ )@@G@@@ @[@@C COLLECTOR RESISTANCE (RC) @[@[@@C @ @[@@ 240 VAL=VALUE(LOHR )@@G@@CM+5)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 250 @ @[@@ WRITE HS )@@G@@(6,186) ALSRC @#@[@@ GO TO 260 @#@[@@ 250 VAL=1.0/VAL @D@[@@HT )@@G@@ SENS=-(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE4))*@F@[@@ 1 HU )@@G@@(VALUE(LVN +NODE1)-VALUE(LVN +NODE4))/(VAL*VAL) @ @[@@ SENSN=HV )@@G@@VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSRC,VAL,SENS,SENSN @[@[@@HW )@@G@@C @ @[@@C EMITTER RESISTANCE (RE) @[@[@@C @ @[@@ 260 VAL=VAHX )@@G@@LUE(LOCM+6)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 270 @ @[@@ HY )@@G@@WRITE (6,186) ALSRE @#@[@@ GO TO 280 @#@[@@ 270 VAL=1.0/VAL HZ )@@G@@@D@[@@ SENS=-(VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE6))*@F@[@@ 1IA )@@G@@ (VALUE(LVN +NODE3)-VALUE(LVN +NODE6))/(VAL*VAL) @ @[@@ IB )@@G@@SENSN=VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSRE,VAL,SENS,SENSN IC )@@G@@@[@[@@C @^@[@@C INTRINSIC PARAMETERS @[@[@@C @^@[@@ 280 BF=VALID )@@G@@UE(LOCM+1) @^@[@@ BR=VALUE(LOCM+2) @ @[@@ CSAT=VALUE(LOCM+3)IE )@@G@@*AREA @^@[@@ OVA=VALUE(LOCM+7) @^@[@@ OVB=VALUE(LOCM+8) @ @[@@IF )@@G@@ OIK=VALUE(LOCM+9)/AREA @^@[@@ C2=VALUE(LOCM+10) @^@[@@ IG )@@G@@XNE=VALUE(LOCM+11)@#@[@@ VTE=XNE*VT @ @[@@ OIKR=VALUE(LOCM+12IH )@@G@@)/AREA@^@[@@ C4=VALUE(LOCM+13) @^@[@@ XNC=VALUE(LOCM+14)@#@[@@II )@@G@@ VTC=XNC*VT @E@[@@ VBE=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1IJ )@@G@@+NODE6)) @E@[@@ VBC=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE4IK )@@G@@)) @D@[@@ VABE=TYPE*(VALUE(LVN+NODE5)-VALUE(LVN+NODE6)) @D@[@@IL )@@G@@ VABC=TYPE*(VALUE(LVN+NODE5)-VALUE(LVN+NODE4)) @^@[@@ VACE=VIM )@@G@@ABE-VABC @A@[@@ IF (VBE.LE.0.0) GO TO 320 @^@[@@ EVBE=EIN )@@G@@XP(VBE/VT) @ @[@@ CBE=CSAT*(EVBE-1.0) @^@[@@ GBE=CSAT*EVBIO )@@G@@E/VT @ @[@@ IF (C2.NE.0.0) GO TO 310@#@[@@ CBEN=0.0 @#@[@@IP )@@G@@ GBEN=0.0 @#@[@@ GO TO 350 @^@[@@ 310 EVBEN=EXP(VBE/VTE)IQ )@@G@@@ @[@@ CBEN=C2*CSAT*(EVBEN-1.0)@ @[@@ GBEN=C2*CSAT*EVBEN/VTE IR )@@G@@@#@[@@ GO TO 350 @#@[@@ 320 GBE=CSAT/VT @#@[@@ CBE=GBE*VBE IS )@@G@@@^@[@@ GBEN=C2*CSAT/VTE @^@[@@ CBEN=GBEN*VBE @A@[@@ 350 IT )@@G@@IF (VBC.LE.0.0) GO TO 370 @^@[@@ EVBC=EXP(VBC/VT) @ @[@@ IU )@@G@@CBC=CSAT*(EVBC-1.0) @^@[@@ GBC=CSAT*EVBC/VT @ @[@@ IF (C4IV )@@G@@.NE.0.0) GO TO 360@#@[@@ CBCN=0.0 @#@[@@ GBCN=0.0 @#@[@@IW )@@G@@ GO TO 400 @^@[@@ 360 EVBCN=EXP(VBC/VTC)@ @[@@ CBCN=C4*CSATIX )@@G@@*(EVBCN-1.0)@ @[@@ GBCN=C4*CSAT*EVBCN/VTC @#@[@@ GO TO 400 IY )@@G@@@#@[@@ 370 GBC=CSAT/VT @#@[@@ CBC=GBC*VBC @^@[@@ GBCN=C4*CSATIZ )@@G@@/VTC @^@[@@ CBCN=GBCN*VBC @A@[@@ 400 Q1=1.0/(1.0-OVA*VBC-OVB*JA )@@G@@VBE) @ @[@@ Q2=OIK*CBE+OIKR*CBC @ @[@@ SQARG=SQRT(1.0+4.0JB )@@G@@*Q2) @ @[@@ QB=Q1*(1.0+SQARG)/2.0 @ @[@@ DQB=(CBE-CBC)/(QB*JC )@@G@@QB) @ @[@@ SQARG=SQRT(1.0+4.0*Q2) @B@[@@ DQ1=DQB*(1.0+SQARGJD )@@G@@)+(Q1*Q1)/2.0 @^@[@@ DQ2=Q1*DQB/SQARG @[@[@@C @^@[@@C COMJE )@@G@@PUTE SENSITIVITIES@[@[@@C @]@[@@C... BF @^@[@@ SENS=-VABE*CJF )@@G@@BE/BF @ @[@@ SENSN=BF*SENS/100.0 @B@[@@ WRITE (6,101) ALSBJG )@@G@@F,BF,SENS,SENSN @]@[@@C... C2 @ @[@@ IF (C2.NE.0.0) GO TO 430JH )@@G@@@ @[@@ WRITE (6,186) ALSC2 @#@[@@ GO TO 440 @^@[@@ 430 JI )@@G@@SENS=VABE*CBEN/C2 @ @[@@ SENSN=C2*SENS/100.0 @B@[@@ WRITE JJ )@@G@@(6,101) ALSC2,C2,SENS,SENSN @]@[@@C... BR @^@[@@ 440 SENS=-VABC*CJK )@@G@@BC/BR @ @[@@ SENSN=BR*SENS/100.0 @B@[@@ WRITE (6,101) ALSBJL )@@G@@R,BR,SENS,SENSN @]@[@@C... C4 @ @[@@ IF (C4.NE.0.0) GO TO 450JM )@@G@@@ @[@@ WRITE (6,186) ALSC4 @#@[@@ GO TO 460 @^@[@@ 450 JN )@@G@@SENS=VABC*CBCN/C4 @ @[@@ SENSN=C4*SENS/100.0 @B@[@@ WRITE JO )@@G@@(6,101) ALSC4,C4,SENS,SENSN @]@[@@C... IS @D@[@@ 460 SENS=(VABE*(JP )@@G@@CBE/BF+CBEN)+VABC*(CBC/BR+CBCN) @A@[@@ 1 +VACE*(DQB*QB-DQ2*Q2)JQ )@@G@@)/CSAT@ @[@@ SENSN=CSAT*SENS/100.0 @B@[@@ WRITE (6,101) ALSIJR )@@G@@S,CSAT,SENS,SENSN @]@[@@C... NE @ @[@@ SENS=-VABE*GBEN*VBE/XNE JS )@@G@@@ @[@@ SENSN=XNE*SENS/100.0 @B@[@@ WRITE (6,101) ALSNE,XNE,JT )@@G@@SENS,SENSN @]@[@@C... NC @ @[@@ SENS=-VABC*GBCN*VBC/XNC @ @[@@JU )@@G@@ SENSN=XNC*SENS/100.0 @B@[@@ WRITE (6,101) ALSNC,XNC,SENS,SJV )@@G@@ENSN @]@[@@C... IK @A@[@@ IF (OIK.NE.0.0) GO TO 470 @ @[@@JW )@@G@@ WRITE (6,186) ALSIK @#@[@@ GO TO 480 @#@[@@ 470 VAL=1.JX )@@G@@0/OIK @A@[@@ SENS=VACE*DQ2*CBE/(VAL*VAL) @ @[@@ SENSN=VAL*SEJY )@@G@@NS/100.0 @B@[@@ WRITE (6,101) ALSIK,VAL,SENS,SENSN @]@[@@C... JZ )@@G@@IKR @A@[@@ 480 IF (OIKR.NE.0.0) GO TO 490 @ @[@@ WRITE (6,186KA )@@G@@) ALSIKR @#@[@@ GO TO 500 @#@[@@ 490 VAL=1.0/OIKR@A@[@@ KB )@@G@@SENS=VACE*DQ2*CBC/(VAL*VAL) @ @[@@ SENSN=VAL*SENS/100.0 @B@[@@KC )@@G@@ WRITE (6,101) ALSIKR,VAL,SENS,SENSN @]@[@@C... VA @A@[@@ 500 KD )@@G@@IF (OVA.NE.0.0) GO TO 510 @ @[@@ WRITE (6,186) ALSVA @#@[@@KE )@@G@@ GO TO 520 @#@[@@ 510 VA=1.0/OVA @A@[@@ SENS=VACE*DQ1*VBC/KF )@@G@@(VA*VA) @ @[@@ SENSN=VA*SENS/100.0 @B@[@@ WRITE (6,101KG )@@G@@) ALSVA,VA,SENS,SENSN @]@[@@C... VB @A@[@@ 520 IF (OVB.NE.0.0) GOKH )@@G@@ TO 530 @ @[@@ WRITE (6,186) ALSVB @#@[@@ GO TO 540 KI )@@G@@@#@[@@ 530 VB=1.0/OVB @A@[@@ SENS=VACE*DQ1*VBE/(VB*VB) @ @[@@KJ )@@G@@ SENSN=VB*SENS/100.0 @B@[@@ WRITE (6,101) ALSVB,VB,SENS,SEKK )@@G@@NSN @[@[@@C @[@[@@C @^@[@@ 540 LOC=NODPLC(LOC) @#@[@@ KL )@@G@@GO TO 220 @[@[@@C @]@[@@C FINISHED @[@[@@C @#@[@@ 1000 CONTINKM )@@G@@UE @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE ASOL KN )@@G@@@[@[@@C @G@[@@C THIS ROUTINE EVALUATES THE ADJOINT CIRCUIT RESPOKO )@@G@@NSE BY DOING A @G@[@@C FORWARD/BACKWARD SUBSTITUTION ON THE TRANSPOSEKP )@@G@@ OF THE COEFFICIENT @]@[@@C MATRIX. @[@[@@C @G@[@@ COMMONKQ )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1KR )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@KS )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, KT )@@G@@@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVKU )@@G@@NIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDKV )@@G@@0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDKW )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUTKX )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ COMMON /BLANK/ VALUE(64)KY )@@G@@@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ KZ )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @^@[@@C FORWARD SLA )@@G@@UBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSTOP @ @[@@ IO=NODLB )@@G@@PLC(IORDER+I) @C@[@@ VALUE(LVN+IO)=VALUE(LVN+IO)/VALUE(LYNL+IO)LC )@@G@@@ @[@@ JSTART=NODPLC(IUR+I) @ @[@@ JSTOP=NODPLC(IUR+I+1)-1 LD )@@G@@@A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @B@[@@ IF (VALUE(LVN+IO).LE )@@G@@EQ.0.0) GO TO 20 @ @[@@ DO 10 J=JSTART,JSTOP @^@[@@ JO=NODLF )@@G@@PLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) @E@[@@ VALUE(LVN+JOLG )@@G@@)=VALUE(LVN+JO)-VALUE(LYU+J)*VALUE(LVN+IO)@#@[@@ 10 CONTINUE @#@[@@LH )@@G@@ 20 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@C LI )@@G@@@#@[@@ K=NSTOP+1 @^@[@@ DO 40 I=2,NSTOP @]@[@@ K=K-1 LJ )@@G@@@ @[@@ IO=NODPLC(IORDER+K) @ @[@@ JSTART=NODPLC(ILC+K) LK )@@G@@@ @[@@ JSTOP=NODPLC(ILC+K+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO LL )@@G@@TO 40 @ @[@@ DO 30 J=JSTART,JSTOP @^@[@@ JO=NODPLC(ILR+J) LM )@@G@@@ @[@@ JO=NODPLC(IORDER+JO) @E@[@@ VALUE(LVN+IO)=VALUE(LVN+LN )@@G@@IO)-VALUE(LYL+J)*VALUE(LVN+JO)@#@[@@ 30 CONTINUE @#@[@@ 40 CONTINLO )@@G@@UE @[@[@@C @ @[@@C REORDER RIGHT-HAND SIDE @[@[@@C @^@[@@LP )@@G@@ DO 50 I=2,NSTOP @^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(LQ )@@G@@NDIAG+I)=VALUE(LVN+J) @#@[@@ 50 CONTINUE @D@[@@ CALL COPY8(VLR )@@G@@ALUE(NDIAG+1),VALUE(LVN+1),NSTOP) @[@[@@C @]@[@@C FINISHED @[@[@@LS )@@G@@C @]@[@@ RETURN@]@[@@ END @#@[@@ OVERLAY(6,0)@#@[@@LT )@@G@@ PROGRAM ACAN@[@[@@C @D@[@@C THIS ROUTINE DRIVES THE SMALL-LU )@@G@@SIGNAL ANALYSES. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,LV )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOLW )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NLX )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISLY )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0LZ )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5MA )@@G@@ LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATEMB )@@G@@,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ MC )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@MD )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATME )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODMF )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMG )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTNMH )@@G@@,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4MI )@@G@@,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,RMJ )@@G@@OOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRMK )@@G@@TOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCRML )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,MM )@@G@@NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IMN )@@G@@PZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@G@[@@ MO )@@G@@COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,@G@[@@MP )@@G@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPU, MQ )@@G@@@C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@[@@ COMMONMR )@@G@@ /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ MS )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE MT )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ LOGICAMU )@@G@@L MEMPTR @[@[@@C @^@[@@C ALLOCATE STORAGE @[@[@@C @^@[@@MV )@@G@@ CALL SECOND(T1) @B@[@@ CALL GETMEM(NDIAGC,NSTOP+NSTOP) MW )@@G@@@C@[@@ CALL GETMEM(LVNC,2*(NSTOP+NSTOP+NUT+NLT)) @#@[@@ NANDD=MX )@@G@@0 @ @[@@ IF (MODAC.NE.1) GO TO 20@A@[@@ IF (IDIST.NE.0) CAMY )@@G@@LL DINIT @A@[@@ IF (INOISE.EQ.0) GO TO 10 @ @[@@ IF (IDMZ )@@G@@IST.EQ.0) GO TO 10@#@[@@ NANDD=1 @A@[@@ CALL GETMEM(LVNCT,NA )@@G@@2*NSTOP) @ @[@@ 10 CALL GETMEM(LOUTPT,0) @#@[@@ 20 CALL CRUNCH NB )@@G@@@B@[@@ IF (NANDD.NE.0) LVNCTC=(LVNCT+1)/2 @^@[@@ NDIAG=(NDIAGNC )@@G@@C+1)/2@^@[@@ LVN=(LVNC+1)/2 @^@[@@ LYNL=LVN+NSTOP @^@[@@ND )@@G@@ LYU=LYNL+NSTOP @#@[@@ LYL=LYU+NUT @#@[@@ ICALC=0 NE )@@G@@@A@[@@ IF (MODAC.NE.1) GO TO 600 @C@[@@ NUMOUT=JELCNT(43)+NF )@@G@@JELCNT(44)+JELCNT(45)+1 @#@[@@ FREQ=FSTART @[@[@@C @D@[@@C LOANG )@@G@@D Y MATRIX AND C VECTOR, SOLVE FOR V VECTOR @[@[@@C @#@[@@ 100 NH )@@G@@CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 900 NI )@@G@@@^@[@@ OMEGA=TWOPI*FREQ @#@[@@ CALL ACLOAD @A@[@@ IF (IDNJ )@@G@@EBUG(2).LE.0) GO TO 110 @ @[@@ CALL DMPMAT(8HACAN ) @ @[@@ NK )@@G@@IDEBUG(2)=IDEBUG(2)-1 @#@[@@ 110 CALL ACDCMP @#@[@@ CALL ACSOL NL )@@G@@@ @[@@ CVALUE(LVN+1)=(0.0,0.0) @A@[@@ IF (IGOOF.EQ.0) GO TO 20NM )@@G@@0 @ @[@@ WRITE (6,121) IGOOF,FREQ@G@[@@ 121 FORMAT(^0WARNING: NN )@@G@@ UNDERFLOW ^,I4,^ TIME(S) IN AC ANALYSIS AT FREQ@^@[@@ 1 = ^,1PE9.3,NO )@@G@@^ HZ^)@#@[@@ IGOOF=0 @[@[@@C @#@[@@C STORE OUTPUTS @[@[@@NP )@@G@@C @A@[@@ 200 CALL EXTMEM(LOUTPT,2*NUMOUT) @A@[@@ LOCO=(LOUTPTNQ )@@G@@+1)/2+ICALC*NUMOUT@^@[@@ ICALC=ICALC+1 @B@[@@ CVALUE(LOCO+NR )@@G@@1)=CMPLX(FREQ,OMEGA) @^@[@@ LOC=LOCATE(43) @ @[@@ 310 IF (LONS )@@G@@C.EQ.0) GO TO 400 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO 320 @ @[@@NT )@@G@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @^@[@@NU )@@G@@ ISEQ=NODPLC(LOC+4)@E@[@@ CVALUE(LOCO+ISEQ)=CVALUE(LVN+NODE1)-NV )@@G@@CVALUE(LVN+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 NW )@@G@@@^@[@@ 320 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(IPTR+6) @^@[@@NX )@@G@@ ISEQ=NODPLC(LOC+4)@B@[@@ CVALUE(LOCO+ISEQ)=CVALUE(LVN+IPTR) NY )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@C @A@[@@NZ )@@G@@C NOISE AND DISTORTION ANALYSES @[@[@@C @A@[@@ 400 IF (NANDD.EQOA )@@G@@.0) GO TO 410 @E@[@@ CALL COPY16(CVALUE(LVN+1),CVALUE(LVNCTC+1)OB )@@G@@,NSTOP) @B@[@@ 410 IF (INOISE.NE.0) CALL NOISE(LOCO) @A@[@@ OC )@@G@@IF (NANDD.EQ.0) GO TO 420 @E@[@@ CALL COPY16(CVALUE(LVNCTC+1),COD )@@G@@VALUE(LVN+1),NSTOP) @B@[@@ 420 IF (IDIST.NE.0) CALL DISTO(LOCO) OE )@@G@@@[@[@@C @^@[@@C INCREMENT FREQUENCY @[@[@@C @B@[@@ 500 IF (ICOF )@@G@@ALC.GE.JACFLG) GO TO 1000 @A@[@@ IF (IDFREQ.GE.3) GO TO 510 OG )@@G@@@^@[@@ FREQ=FREQ*FINCR @#@[@@ GO TO 100 @^@[@@ 510 FREQ=FOH )@@G@@REQ+FINCR @#@[@@ GO TO 100 @[@[@@C @^@[@@C POLE/ZERO ANALYOI )@@G@@SIS @[@[@@C @#@[@@ 600 CALL PZAN @#@[@@ GO TO 1000 @[@[@@OJ )@@G@@C @]@[@@C FINISHED @[@[@@C @^@[@@ 900 WRITE (6,901) @G@[@@OK )@@G@@ 901 FORMAT(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... ANALYSIS STOPPED^/)OL )@@G@@@]@[@@ NOGO=1@A@[@@ 1000 IF (JPZFLG.EQ.0) GO TO 1010 @A@[@@ OM )@@G@@IF (MODAC.NE.3) GO TO 1020 @ @[@@ 1010 CALL CLRMEM(LVNIM1) @^@[@@ON )@@G@@ CALL CLRMEM(LX0) @^@[@@ 1020 CALL CLRMEM(LVNC) @ @[@@ CALL COO )@@G@@LRMEM(NDIAGC) @B@[@@ IF (MEMPTR(LD0)) CALL CLRMEM(LD0) @B@[@@OP )@@G@@ IF (MEMPTR(LD1)) CALL CLRMEM(LD1) @C@[@@ IF (MEMPTR(LVNCT))OQ )@@G@@ CALL CLRMEM(LVNCT) @[@[@@C @[@[@@C @^@[@@ CALL SECOND(OR )@@G@@T2) @A@[@@ RSTATS(7)=RSTATS(7)+T2-T1 @A@[@@ RSTATS(8)=RSOS )@@G@@TATS(8)+ICALC @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUOT )@@G@@TINE PZAN @[@[@@C @D@[@@C THIS ROUTINE DRIVES THE POLE/ZERO COU )@@G@@OMPUTATION. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTOV )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIOW )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,OX )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEOY )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LOZ )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUPA )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)PB )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOPC )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ PD )@@G@@COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@PE )@@G@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@PF )@@G@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@PG )@@G@@ 3 IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEPH )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEPI )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ DIMENSION APPJ )@@G@@ZTIT(4) @G@[@@ DATA APZTIT / 8HPOLE/ZER, 8HO ANALYS, 8HIS PK )@@G@@, 8H / @[@[@@C @[@[@@C @A@[@@ IF (MODAC.EQ.3) GOPL )@@G@@ TO 400 @A@[@@ CALL TITLE(0,72,1,APZTIT) @[@[@@C @#@[@@PM )@@G@@C POLE ANALYSIS @[@[@@C @ @[@@ CALL GETMEM(LPOL,0) @ @[@@PN )@@G@@ GO TO (110,120), JPZTYP @ @[@@ 110 CALL MULLER(LPOL,XD,0) @#@[@@PO )@@G@@ GO TO 200 @ @[@@ 120 CALL PZADJ(LPOL,XD,0) @[@[@@C @#@[@@PP )@@G@@C PRINT POLES @[@[@@C @ @[@@ 200 CALL SIZMEM(LPOL,NPOL) @ @[@@PQ )@@G@@ IF (NPOL.EQ.0) GO TO 220@^@[@@ WRITE (6,206) @F@[@@ 206 PR )@@G@@FORMAT(^0 POLES (RAD/SEC)^,/,^0 REAL^,11X,^IMAG^,/)@#@[@@ PS )@@G@@NPOL=NPOL/2 @^@[@@ IPOL=(LPOL+1)/2 @C@[@@ WRITE (6,211) (CVAPT )@@G@@LUE(IPOL+I),I=1,NPOL) @ @[@@ 211 FORMAT(1PE14.6,E15.6) @#@[@@ PU )@@G@@GO TO 230 @^@[@@ 220 WRITE (6,221) @A@[@@ 221 FORMAT(^0NO POLES PV )@@G@@FOUND^) @#@[@@ 230 GO TO 1000 @[@[@@C @#@[@@C ZERO ANALYSIS PW )@@G@@@[@[@@C @ @[@@ 400 CALL GETMEM(LZER,0) @ @[@@ GO TO (410,4PX )@@G@@20), JPZTYP @ @[@@ 410 CALL MULLER(LZER,XN,1) @#@[@@ GO TO 500 PY )@@G@@@ @[@@ 420 CALL PZADJ(LZER,XN,1) @[@[@@C @#@[@@C PRINT ZEROS PZ )@@G@@@[@[@@C @ @[@@ 500 CALL SIZMEM(LZER,NZER) @ @[@@ IF (NZER.EQ.QA )@@G@@0) GO TO 520@^@[@@ WRITE (6,506) @F@[@@ 506 FORMAT(^0 ZERQB )@@G@@OS (RAD/SEC)^,/,^0 REAL^,11X,^IMAG^,/)@#@[@@ NZER=NZER/2 @^@[@@QC )@@G@@ IZER=(LZER+1)/2 @C@[@@ WRITE (6,211) (CVALUE(IZER+I),I=1,NZQD )@@G@@ER) @#@[@@ GO TO 600 @^@[@@ 520 WRITE (6,521) @A@[@@ 521 QE )@@G@@FORMAT(^0NO ZEROS FOUND^) @[@[@@C @A@[@@C COMPUTE AND PRINT POLQF )@@G@@E/ZERO CHECK@[@[@@C @#@[@@ 600 CONTINUE @^@[@@ CALL CLRMEM(QG )@@G@@LPOL) @^@[@@ CALL CLRMEM(LZER) @[@[@@C @]@[@@C FINISHED @[@[@@QH )@@G@@C @]@[@@ 1000 RETURN@]@[@@ END @B@[@@ SUBROUTINE MULLER(QI )@@G@@LROOT,XCOEF,IFLAG)@[@[@@C @G@[@@C THIS SUBROUTINE USES THE MULLQJ )@@G@@ER ALGORITHM TO FIND THE ROOTS OF @ @[@@C THE NETWORK DETERMINANT. QK )@@G@@@[@[@@C @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNQL )@@G@@ODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS QM )@@G@@@G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMQN )@@G@@PTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KQO )@@G@@EOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHAQP )@@G@@RGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPQQ )@@G@@SSIL,EPSOX @A@[@@ COMMON /DEBUG/ IDEBUG(20) @G@[@@ COMMONQR )@@G@@ /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,@G@[@@ 1QS )@@G@@ IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPU, @C@[@@QT )@@G@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @ @[@@ COMMON /BLANQU )@@G@@K/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)QV )@@G@@@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@QW )@@G@@C @^@[@@ DIMENSION ANAL(2) @ @[@@ COMPLEX X,X0,X1,X2,X3 QX )@@G@@@A@[@@ COMPLEX FX,FX0,FX1,FX2,FX3 @C@[@@ COMPLEX DX,DX0X1,DQY )@@G@@X1X2,XLAMB,DELTA,A,B,C @A@[@@ COMPLEX DROOT,DENOM,DENOM1 @ @[@@QZ )@@G@@ COMPLEX TMP1,TMP2,TMP3 @[@[@@C @A@[@@ DATA ANAL / 4HPOLERA )@@G@@, 4HZERO / @[@[@@C @[@[@@C @#@[@@ XMAX=1.0E20 @#@[@@ RB )@@G@@PZTOL=1.0E-6@#@[@@ PZABS=1.0E-6@#@[@@ NMAX=50 @[@[@@C RC )@@G@@@[@[@@C @#@[@@ NROOT=0 @#@[@@ NPASS=1 @[@[@@C RD )@@G@@@A@[@@C INITIALIZE INTERATION PROCESS @[@[@@C @^@[@@ 100 X2=(+1RE )@@G@@.763E-3,0.0)@^@[@@ X1=(-1.391E-5,0.0)@^@[@@ X0=(-1.271E00,0.0)RF )@@G@@@C@[@@ 150 CALL CALDET(X2,FX2,LROOT,NROOT,IFLAG) @C@[@@ CALL CRG )@@G@@ALDET(X1,FX1,LROOT,NROOT,IFLAG) @C@[@@ CALL CALDET(X0,FX0,LROOTRH )@@G@@,NROOT,IFLAG) @]@[@@ 170 ITR=3 @F@[@@ 175 IF ((CABS(FX0-FX2)+CABS(RI )@@G@@FX0-FX1)).GE.PZTOL*ABS(REAL(FX0))) @#@[@@ 1 GO TO 200@#@[@@ RJ )@@G@@X3=100.0*X0 @C@[@@ CALL CALDET(X3,FX3,LROOT,NROOT,IFLAG) @F@[@@RK )@@G@@ IF ((CABS(FX0-FX3)+CABS(FX0-FX1)).LT.PZTOL*ABS(REAL(FX0))) @^@[@@RL )@@G@@ 1 GO TO 1000 @[@[@@C @E@[@@C COMPUTE INTERPOLATION POLYNRM )@@G@@OMIAL COEFFICIENTS A, B, AND C@[@[@@C @B@[@@ 200 IF (NROOT.GT.NUMNORN )@@G@@D) GO TO 1000 @#@[@@ DX0X1=X0-X1 @#@[@@ DX1X2=X1-X2 @^@[@@RO )@@G@@ XLAMB=DX0X1/DX1X2 @^@[@@ DELTA=1.0+XLAMB @[@[@@C @ @[@@RP )@@G@@ TMP1=FX2*XLAMB*XLAMB @^@[@@ TMP2=FX1*DELTA @^@[@@ RQ )@@G@@TMP3=FX0*XLAMB @[@[@@C @ @[@@ A=TMP1-TMP2*XLAMB+TMP3 @A@[@@RR )@@G@@ B=TMP1-(TMP2-FX0)*DELTA+TMP3 @#@[@@ C=FX0*DELTA @G@[@@C*****RS )@@G@@******************** DIAGNOSTIC WRITE ************************ @ @[@@RT )@@G@@ IF (IDEBUG(3).GT.0) @ @[@@ 1 WRITE (6,994) A,B,C @D@[@@RU )@@G@@ 994 FORMAT(^ *DEBUG*: MULLER: A,B,C = ^,1P6E15.6) @G@[@@C***********RV )@@G@@******************************************************** @[@[@@C RW )@@G@@@A@[@@C FIND SMALLEST ZERO OF POLYNOMIAL @[@[@@C @ @[@@ DROOT=RX )@@G@@CSQRT(B*B-4.0*A*C)@^@[@@ DENOM=B+DROOT @^@[@@ DENOM1=B-DRORY )@@G@@OT @D@[@@ IF (CABS(DENOM1).GT.CABS(DENOM)) DENOM=DENOM1 @[@[@@RZ )@@G@@C @G@[@@C************************* DIAGNOSTIC WRITE ****************SA )@@G@@******** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@ 1 WRITE (6,SB )@@G@@995) DENOM,DX0X1 @E@[@@ 995 FORMAT(^ *DEBUG*: MULLER: DENOM, DX0X1 =SC )@@G@@ ^,1P4E15.6)@G@[@@C*****************************************************SD )@@G@@************** @^@[@@ XLAMB=-2.0*C/DENOM@^@[@@ DX=XLAMB*DX0SE )@@G@@X1 @#@[@@ X=X0+DX @F@[@@C********************** DIAGNOSTIC WSF )@@G@@RITE *********************** @ @[@@ IF (IDEBUG(3).GT.0) @ @[@@SG )@@G@@ 1 WRITE (6,991) X0,DX,X@E@[@@ 991 FORMAT(^ *DEBUG*: MULLER: X0SH )@@G@@,DX,X = ^,1P6E15.6) @F@[@@C*****************************************SI )@@G@@********************** @[@[@@C @^@[@@C CONVERGENCE TESTS @[@[@@SJ )@@G@@C @B@[@@ XMAG=ABS(REAL(X))+ABS(AIMAG(X)) @A@[@@ IF (XMSK )@@G@@AG.GE.XMAX) GO TO 800 @B@[@@ DXMAG=ABS(REAL(DX))+ABS(AIMAG(DX)) SL )@@G@@@D@[@@ IF (DXMAG.LE.PZTOL*AMAX1(XMAG,PZABS)) GO TO 300 @[@[@@C SM )@@G@@@B@[@@C NO CONVERGENCE -- CONTINUE TO ITERATE @[@[@@C @A@[@@ SN )@@G@@IF (ITR.GE.NMAX) GO TO 910 @#@[@@ ITR=ITR+1 @B@[@@ CALL CSO )@@G@@ALDET(X,FX,LROOT,NROOT,IFLAG) @#@[@@ FX2=FX1 @]@[@@ X2=X1 SP )@@G@@@#@[@@ FX1=FX0 @]@[@@ X1=X0 @]@[@@ FX0=FX@]@[@@ SQ )@@G@@X0=X @#@[@@ GO TO 175 @[@[@@C @B@[@@C CONVERGED TO A ROOT -SR )@@G@@- STORE IT AWAY @[@[@@C @#@[@@ 300 XR=REAL(X) @#@[@@ XI=AIMSS )@@G@@AG(X) @B@[@@ IF (ABS(XI).LE.PZTOL*ABS(XR)) XI=0.0@B@[@@ IF (ABST )@@G@@S(XR).LE.PZTOL*ABS(XI)) XR=0.0@^@[@@ NROOT=NROOT+1 @ @[@@ SU )@@G@@CALL EXTMEM(LROOT,2) @^@[@@ LOC=(LROOT+1)/2 @A@[@@ CVALUESV )@@G@@(LOC+NROOT)=CMPLX(XR,XI)@F@[@@C********************** DIAGNOSTIC WRITE *SW )@@G@@********************** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@ 1SX )@@G@@ WRITE (6,992) NROOT,XR,XI @F@[@@ 992 FORMAT(^ *DEBUG*: MULLER: NRSY )@@G@@OOT,XR,XI = ^,I4,1P2E15.6) @F@[@@C***********************************SZ )@@G@@**************************** @[@[@@C @B@[@@C ADD ANOTHER CONJUGATETA )@@G@@ ROOT IF (XI.NE.0)@[@[@@C @ @[@@ IF (XI.EQ.0.0) GO TO 400@]@[@@TB )@@G@@ XI=-XI@^@[@@ NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,TC )@@G@@2) @^@[@@ LOC=(LROOT+1)/2 @A@[@@ CVALUE(LOC+NROOT)=CMPLX(TD )@@G@@XR,XI)@F@[@@C********************** DIAGNOSTIC WRITE *******************TE )@@G@@**** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@ 1 WRITE (6,993) NTF )@@G@@ROOT,XR,XI @F@[@@ 993 FORMAT(^ *DEBUG*: MULLER: NROOT,XR,XI = ^,I4,1TG )@@G@@P2E15.6) @F@[@@C*****************************************************TH )@@G@@********** @[@[@@C @ @[@@C GO AFTER THE NEXT ROOT @[@[@@C TI )@@G@@@^@[@@ 400 FX2=FX2/(X2-X) @^@[@@ FX1=FX1/(X1-X) @^@[@@ TJ )@@G@@FX0=FX0/(X0-X) @[@[@@C @^@[@@C CHECK CPU TIME LIMIT @[@[@@C TK )@@G@@@#@[@@ CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GTL )@@G@@O TO 920 @#@[@@ GO TO 170 @[@[@@C @D@[@@C MAXIMUM MAGNITUTM )@@G@@DE EXCEEDED -- TRY LOOP ONCE MORE @[@[@@C @A@[@@ 800 IF (NPASS.GETN )@@G@@.2) GO TO 900 @^@[@@ NPASS=NPASS+1 @#@[@@ GO TO 100 TO )@@G@@@[@[@@C @]@[@@C ERRORS @[@[@@C @B@[@@ 900 WRITE (6,901) ANALTP )@@G@@(IFLAG+1),XMAX @F@[@@ 901 FORMAT(^0WARNING: ^,A4,^ ANALYSIS STOPPEDTQ )@@G@@ -- MAG(X) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ GO TO 1000 TR )@@G@@@B@[@@ 910 WRITE (6,911) ANAL(IFLAG+1),NMAX @F@[@@ 911 FORMAT(^0WARTS )@@G@@NING: ^,A4,^ ANALYSIS STOPPED -- ITERNO > ^, @#@[@@ 1 I6,/) TT )@@G@@@#@[@@ GO TO 1000 @^@[@@ 920 WRITE (6,921) @G@[@@ 921 FORMATTU )@@G@@(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... POLE/ZERO ANALYSIS^@^@[@@ 1TV )@@G@@ ,^ STOPPED^/) @]@[@@ NOGO=1@[@[@@C @]@[@@C FINISHED @[@[@@TW )@@G@@C @^@[@@ 1000 XCOEF=REAL(FX0) @]@[@@ RETURN@]@[@@ END TX )@@G@@@B@[@@ SUBROUTINE PZADJ(LROOT,XCOEFF,IFLAG)@[@[@@C @F@[@@C TY )@@G@@ THIS SUBROUTINE USES THE ADJOINT NETOWRK ALGORITHM TO FIND @B@[@@C THE TZ )@@G@@ROOTS OF THE NETWORK DETERMINANT. @[@[@@C @G@[@@ COMMON /TABIUA )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEUB )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2UC )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@UD )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, UE )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,UF )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOUG )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NUH )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IUI )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITUJ )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /AC/ FSTART,FSTOPUK )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NUL )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPUM )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@A@[@@UN )@@G@@ COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)UO )@@G@@@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ UP )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@UQ )@@G@@ COMPLEX S1,S2,F1,F2 @#@[@@ COMPLEX POLE@E@[@@ COMPLEUR )@@G@@X SPARM,SOLD1,SOLD2,ZERO,DERIV,FNORM,FOLD1,FOLD2@^@[@@ DIMENSION S(US )@@G@@2) @C@[@@ EQUIVALENCE (S(1),SPARM),(S(2),SIMAG) @[@[@@C UT )@@G@@@A@[@@C INITIALIZE FOR ITERATION @[@[@@C @#@[@@ NROOT=UU )@@G@@0 @]@[@@ ITER=0@#@[@@ IMAX=50 @#@[@@ FTOL=1.0E-10UV )@@G@@@#@[@@ ETOL=1.0E-10@#@[@@ SMAX=1.0E20 @ @[@@ SOLD1=(-3.14UW )@@G@@159,0.0) @ @[@@ SOLD2=(-8.765E-5,0.0) @ @[@@ SPARM=(1.234UX )@@G@@E-3,0.0) @[@[@@C @C@[@@C CHECK IF THERE ARE ANY POLES OR ZERUY )@@G@@OS @[@[@@C @C@[@@ CALL CALDET (SOLD1,FOLD1,LROOT,0,IFLAG) UZ )@@G@@@C@[@@ CALL CALDET (SOLD2,FOLD2,LROOT,0,IFLAG) @C@[@@ CALL CVA )@@G@@ALDET (SPARM,FNORM,LROOT,0,IFLAG) @F@[@@ IF ( (CABS(FOLD1-FOLD2)+VB )@@G@@CABS(FOLD2-FNORM)).GT.ETOL) GO TO 5 @^@[@@ SOLD1=SOLD1*1.0E2 @C@[@@VC )@@G@@ CALL CALDET (SOLD1,FOLD1,LROOT,0,IFLAG) @G@[@@ IF ( (CABS(FVD )@@G@@OLD1-FOLD2)+CABS(FOLD2-FNORM)).LE.ETOL) GO TO 3400 @A@[@@ 5 IF (IFVE )@@G@@LAG.EQ.0) GO TO 2000 @[@[@@C @#@[@@C ZERO ANALYSIS @[@[@@C VF )@@G@@@A@[@@ CALL GETMEM (NORM,NSTOP+NSTOP)@[@[@@C @D@[@@C LOAD Y-MAVG )@@G@@TRIX AND SOLVE FOR THE NOMINAL V-VECTOR @[@[@@C @ @[@@ 30 CALL PVH )@@G@@ZLOAD (SPARM) @#@[@@ CALL ACDCMP @#@[@@ CALL ACSOL @ @[@@VI )@@G@@ CVALUE(LVN+1)=(0.0,0.0) @ @[@@ IF (IGOOF.EQ.0) GO TO 38@^@[@@VJ )@@G@@ WRITE (6,35) IGOOF@F@[@@ 35 FORMAT(^0WARNING: UNDERFLOW ^,I4,^ VK )@@G@@TIME(S) IN POLE/ZERO ^, @^@[@@ 1 ^ANALYSIS^) @#@[@@ IGOOF=VL )@@G@@0 @[@[@@C @ @[@@C STORE NORMINAL V-VECTOR@[@[@@C @^@[@@VM )@@G@@ 38 LVNM=(NORM+1)/2 @D@[@@ CALL COPY16 (CVALUE(LVN+1),CVALUE(LVVN )@@G@@NM+1),NSTOP)@[@[@@C @E@[@@C PREPARE THE EXCITATION VECTOR FOR AVO )@@G@@DJOINT MATRIX @[@[@@C @B@[@@ CALL ZERO16 (CVALUE(LVN+1),NSTVP )@@G@@OP) @ @[@@ KFLAG=NODPLC(IPZOUT+5) @ @[@@ IF (KFLAG.EQ.0) GOVQ )@@G@@ TO 40@[@[@@C @^@[@@C CURRENT OUTPUT @[@[@@C @ @[@@ VR )@@G@@IPTR=NODPLC(IPZOUT+2) @^@[@@ IBR=NODPLC(IPTR+6)@ @[@@ CVALUEVS )@@G@@(LVN+IBR)=+1.0 @#@[@@ GO TO 50 @[@[@@C @^@[@@C VOLTAVT )@@G@@GE OUTPUT @[@[@@C @ @[@@ 40 NODE1=NODPLC(IPZOUT+2) @ @[@@ VU )@@G@@NODE2=NODPLC(IPZOUT+3) @ @[@@ CVALUE(LVN+NODE1)=-1.0 @ @[@@ VV )@@G@@CVALUE(LVN+NODE2)=+1.0 @[@[@@C @B@[@@C SOLVE V-VECTOR FOR ADJOVW )@@G@@INT NETWORK @[@[@@C @#@[@@ 50 CALL ACASOL @ @[@@ CVALUE(LVN+1VX )@@G@@)=(0.0,0.0) @ @[@@ IF (IGOOF.EQ.0) GO TO 60@^@[@@ WRITE(6,35) VY )@@G@@IGOOF @#@[@@ IGOOF=0 @[@[@@C @F@[@@C CALCULATE THE DERVZ )@@G@@IVATIVE WITH RESPECT TO THE S-PARAMETER @[@[@@C @^@[@@ 60 DERIV=WA )@@G@@(0.0,0.0) @[@[@@C @#@[@@C CAPACITANCE@[@[@@C @^@[@@ WB )@@G@@LOC=LOCATE(2) @ @[@@ 110 IF (LOC.EQ.0) GO TO 200 @^@[@@ LOCV=NWC )@@G@@ODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLCWD )@@G@@(LOC+3) @G@[@@ DERIV=DERIV+VALUE(LOCV+1)*(CVALUE(LVN+NODE1)-CVAWE )@@G@@LUE(LVN+NODE2)) @D@[@@ 1 *(CVALUE(LVNM+NODE1)-CVALUE(LVNM+NODE2)WF )@@G@@) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 110 @[@[@@C WG )@@G@@@#@[@@C INDUCTORS @[@[@@C @^@[@@ 200 LOC=LOCATE(3) @ @[@@WH )@@G@@ 210 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ WI )@@G@@NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @G@[@@ WJ )@@G@@DERIV=DERIV+VALUE(LOCV+1)*(CVALUE(LVN+NODE1)-CVALUE(LVN+NODE2)) @D@[@@WK )@@G@@ 1 *(CVALUE(LVNM+NODE1)-CVALUE(LVNM+NODE2)) @^@[@@ LOC=NOWL )@@G@@DPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @^@[@@C MUTUAL INDUWM )@@G@@CTORS @[@[@@C @^@[@@ 300 LOC=LOCATE(4) @ @[@@ 310 IF (LOC.EQ.0WN )@@G@@) GO TO 400 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ LOC1=NODPLC(LOC+2)WO )@@G@@@ @[@@ NODE11=NODPLC(LOC1+2) @ @[@@ NODE12=NODPLC(LOC1+3) WP )@@G@@@^@[@@ LOC2=NODPLC(LOC+3)@ @[@@ NODE21=NODPLC(LOC2+2) @ @[@@WQ )@@G@@ NODE22=NODPLC(LOC2+3) @^@[@@ VALM=VALUE(LOCV+1)@F@[@@ WR )@@G@@DERIV=DERIV+VALM*(CVALUE(LVN+NODE11)-CVALUE(LVN+NODE12)) @D@[@@ 1WS )@@G@@ *(CVALUE(LVNM+NODE11)-CVALUE(LVNM+NODE12)) @F@[@@ DERIV=DERIV+WT )@@G@@VALM*(CVALUE(LVN+NODE21)-CVALUE(LVN+NODE22)) @D@[@@ 1 *(CVALUE(WU )@@G@@LVNM+NODE21)-CVALUE(LVNM+NODE22)) @^@[@@ LOC=NODPLC(LOC) @#@[@@WV )@@G@@ GO TO 310 @[@[@@C @#@[@@C DIODES @[@[@@C @^@[@@WW )@@G@@ 400 LOC=LOCATE(11) @ @[@@ 410 IF (LOC.EQ.0) GO TO 500 @ @[@@ WX )@@G@@LOCT=LX0+NODPLC(LOC+11) @ @[@@ NODEN=NODPLC(LOC+3) @ @[@@ WY )@@G@@NODEP=NODPLC(LOC+4) @G@[@@ DERIV=DERIV+VALUE(LOCT+4)*(CVALUE(LVWZ )@@G@@N+NODEP)-CVALUE(LVN+NODEN)) @D@[@@ 1 *(CVALUE(LVNM+NODEP)-CVALUEXA )@@G@@(LVNM+NODEN)) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 410 XB )@@G@@@[@[@@C @]@[@@C BJT @[@[@@C @^@[@@ 500 LOC=LOCATE(12) XC )@@G@@@ @[@@ 510 IF (LOC.EQ.0) GO TO 600 @ @[@@ LOCT=LX0+NODPLC(LOC+22) XD )@@G@@@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ NODEC=NODPLC(LOC+5) @ @[@@XE )@@G@@ NODEB=NODPLC(LOC+6) @ @[@@ NODEE=NODPLC(LOC+7) @G@[@@XF )@@G@@ DERIV=DERIV+VALUE(LOCT+9)*(CVALUE(LVN+NODEB)-CVALUE(LVN+NODEE)) XG )@@G@@@D@[@@ 1 *(CVALUE(LVNM+NODEB)-CVALUE(LVNM+NODEE)) @G@[@@ XH )@@G@@DERIV=DERIV+VALUE(LOCT+11)*(CVALUE(LVN+NODEB)-CVALUE(LVN+NODEC)) @D@[@@XI )@@G@@ 1 *(CVALUE(LVNM+NODEB)-CVALUE(LVNM+NODEC)) @G@[@@ DERIV=XJ )@@G@@DERIV+VALUE(LOCM+17)*CVALUE(LVN+NODEC)*CVALUE(LVN+NODEC) @^@[@@ XK )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 510 @[@[@@C @]@[@@C JFET XL )@@G@@@[@[@@C @^@[@@ 600 LOC=LOCATE(13) @ @[@@ 610 IF (LOC.EQ.0) GO TXM )@@G@@O 700 @ @[@@ LOCT=LX0+NODPLC(LOC+19) @ @[@@ NODEG=NODPLC(LOC+3XN )@@G@@) @ @[@@ NODED=NODPLC(LOC+5) @ @[@@ NODES=NODPLC(LOC+6XO )@@G@@) @G@[@@ DERIV=DERIV+VALUE(LOCT+9)*(CVALUE(LVN+NODEG)-CVALUE(LVXP )@@G@@N+NODES)) @D@[@@ 1 *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODES)) XQ )@@G@@@G@[@@ DERIV=DERIV+VALUE(LOCT+11)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODXR )@@G@@ED)) @D@[@@ 1 *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODED)) @^@[@@XS )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 610 @[@[@@C @#@[@@C XT )@@G@@ MOSFET @[@[@@C @^@[@@ 700 LOC=LOCATE(14) @ @[@@ 710 IF (LOXU )@@G@@C.EQ.0) GO TO 750 @ @[@@ LOCT=LX0+NODPLC(LOC+26) @ @[@@ NODEG=XV )@@G@@NODPLC(LOC+3) @ @[@@ NODEB=NODPLC(LOC+5) @ @[@@ NODED=XW )@@G@@NODPLC(LOC+6) @ @[@@ NODES=NODPLC(LOC+7) @G@[@@ DERIV=XX )@@G@@DERIV+VALUE(LOCT+16)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODES)) @D@[@@ 1XY )@@G@@ *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODES)) @G@[@@ DERIV=DERIV+XZ )@@G@@VALUE(LOCT+18)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODED)) @C@[@@ 1 *(CYA )@@G@@VALUE(LVNM+NODEG)-CVALUE(LVN+NODED))@G@[@@ DERIV=DERIV+VALUE(LOCT+2YB )@@G@@0)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODEB)) @D@[@@ 1 *(CVALUE(LVNM+NYC )@@G@@ODEG)-CVALUE(LVNM+NODEB)) @G@[@@ DERIV=DERIV+VALUE(LOCT+12)*(CVYD )@@G@@ALUE(LVN+NODEB)-CVALUE(LVN+NODED)) @D@[@@ 1 *(CVALUE(LVNM+NODEB)-YE )@@G@@CVALUE(LVNM+NODED)) @G@[@@ DERIV=DERIV+VALUE(LOCT+14)*(CVALUE(LYF )@@G@@VN+NODEB)-CVALUE(LVN+NODES)) @D@[@@ 1 *(CVALUE(LVNM+NODEB)-CVALUEYG )@@G@@(LVNM+NODES)) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 710 YH )@@G@@@[@[@@C @A@[@@C FORMULATE THE TRANSFER FUNCTION @[@[@@C @ @[@@YI )@@G@@ 750 CALL SIZMEM(LPOL,NPOLE) @A@[@@ IF (NPOLE.EQ.0) GO TO 800 YJ )@@G@@@^@[@@ NPOLE=NPOLE/2 @^@[@@ LOCP=(LPOL+1)/2 @^@[@@ YK )@@G@@DO 790 I=1,NPOLE @ @[@@ POLE=CVALUE(LOCP+I) @G@[@@ IF ((RYL )@@G@@EAL(SPARM).EQ.REAL(POLE)).AND.(AIMAG(SPARM).EQ.AIMAG(POLE)))@^@[@@ 1YM )@@G@@ GO TO 1200 @ @[@@ FNORM=FNORM/(SPARM-POLE)@#@[@@ 790 CONTINYN )@@G@@UE @[@[@@C @F@[@@C NORMALIZE THE TRANSFER FUNCTION AND DERIVYO )@@G@@ATIVE BY THE ZEROS@[@[@@C @A@[@@ 800 IF (NROOT.EQ.0) GO TO 900 YP )@@G@@@^@[@@ LOCR=(LROOT+1)/2 @^@[@@ DO 850 I=1,NROOT @ @[@@ YQ )@@G@@ZERO=CVALUE(LOCR+I) @A@[@@ IF (SPARM.EQ.ZERO) GO TO 1100 @ @[@@YR )@@G@@ FNORM=FNORM/(SPARM-ZERO)@B@[@@ 850 DERIV=(DERIV-FNORM)/(SPARM-ZERYS )@@G@@O) @[@[@@C @^@[@@C CHECK CONVERGENCE@[@[@@C @B@[@@ 900 YT )@@G@@IF (CABS(FNORM).LE.FTOL) GO TO 1100 @[@[@@C @A@[@@C EXTRAPOLATEYU )@@G@@ NEXT S-PARAMETER @[@[@@C @^@[@@ 1000 SERROR=FNORM/DERIV@^@[@@ YV )@@G@@SPARM=SPARM-SERROR@F@[@@C************************* DIAGNOSTIC WRITE ****YW )@@G@@******************@ @[@@ IF (IDEBUG(4).GT.0) @C@[@@ 1 WRIYX )@@G@@TE (6,9901) ITER,SPARM,SERROR,FNORM @F@[@@ 9901 FORMAT(^ *DEBUG*: PZADJYY )@@G@@: ITER, SPARM, SERROR, FNORM = ^,/,@^@[@@ 1 1X,I4,1P6E15.6)@F@[@@YZ )@@G@@C*****************************************************************@#@[@@ZA )@@G@@ ITER=ITER+1 @B@[@@ IF (CABS(SPARM).GT.SMAX) GO TO 1010 @A@[@@ZB )@@G@@ IF (ITER.LT.IMAX) GO TO 30 @ @[@@ WRITE (6,1005) ITER ZC )@@G@@@F@[@@ 1005 FORMAT(^0WARNING: NO CONVERGENCE IN ZERO ANALYSIS AFTER ^, ZD )@@G@@@ @[@@ 1 I4,^ ITERATIONS^,/) @#@[@@ GO TO 3400 @ @[@@ 1010 ZE )@@G@@WRITE (6,1015) SMAX @F@[@@ 1015 FORMAT(^0WARNING: ZERO ANALYSIS STOZF )@@G@@PPED -- MAG(S) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ GO TO ZG )@@G@@3400 @[@[@@C @#@[@@C ZERO FOUND @[@[@@C @^@[@@ 1100 NROOT=ZH )@@G@@NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ LOCR=(LROOT+ZI )@@G@@1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@[@[@@C @D@[@@C NORMAZJ )@@G@@LIZE THE REFERENCE TRANSFER FUNCTIONS @[@[@@C @A@[@@ FOLD1=ZK )@@G@@FOLD1/(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) @[@[@@ZL )@@G@@C @B@[@@C TAKE THE CONJUGATE OF COMPLEX ROOT @[@[@@C @A@[@@ZM )@@G@@ IF (SIMAG.EQ.0) GO TO 1200 @#@[@@ SIMAG=-SIMAG@^@[@@ ZN )@@G@@NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ LOCR=(ZO )@@G@@LROOT+1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@A@[@@ FOLD1=FOLD1/ZP )@@G@@(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) @[@[@@C ZQ )@@G@@@ @[@@C CHECK FOR FURTHER ZEROS@[@[@@C @C@[@@ 1200 IF (CABS(FOLZR )@@G@@D1-FOLD2).LT.ETOL) GO TO 1400 @[@[@@C @C@[@@C EXTRAPOLATE S-PARZS )@@G@@AMETER FOR NEW ZEROS @[@[@@C @^@[@@ SPARM=SPARM*10.0 @]@[@@ZT )@@G@@ ITER=0@#@[@@ GO TO 30 @[@[@@C @#@[@@C FINISHED ZU )@@G@@@[@[@@C @#@[@@ 1400 CONTINUE @[@[@@C @ @[@@C RELEASE UNNEEDEZV )@@G@@D MEMORY @[@[@@C @^@[@@ CALL CLRMEM(NORM) @#@[@@ GO TO ZW )@@G@@3400 @[@[@@C @D@[@@C POLE ANALYSIS : USE SECANT ITERATION METHZX )@@G@@OD @[@[@@C @#@[@@ 2000 S1=SOLD1 @#@[@@ F1=FOLD1 @#@[@@ZY )@@G@@ S2=SOLD2 @#@[@@ F2=FOLD2 @ @[@@ DERIV=(F2-F1)/(S2-ZZ )@@G@@S1) @^@[@@ SPARM=S2-F2/DERIV @D@[@@ 2010 CALL CALDET (SPARM,FNORMAA )@@G@@,LROOT,NROOT,IFLAG) @A@[@@ DERIV=(FNORM-F2)/(SPARM-S2) @[@[@@AB )@@G@@C @^@[@@C CHECK CONVERGENCE@[@[@@C @ @[@@ SERROR = FNOAC )@@G@@RM/DERIV @B@[@@ IF ( CABS(FNORM).LE.FTOL) GO TO 3100@[@[@@C AD )@@G@@@A@[@@C EXTRAPOLATE NEXT S-PARAMETER @[@[@@C @F@[@@C***********AE )@@G@@************** DIAGNOSTIC WRITE **********************@ @[@@ IF (IDAF )@@G@@EBUG(4).GT.0) @C@[@@ 1 WRITE (6,9902) ITER,SPARM,FNORM,DERIV AG )@@G@@@F@[@@ 9902 FORMAT(^ *DEBUG*: PZADJ: ITER, SPARM, FNORM, DERIV = ^,/, AH )@@G@@@^@[@@ 1 1X,I4,1P6E15.6)@F@[@@C***********************************AI )@@G@@******************************@]@[@@ 3000 S1=S2 @]@[@@ F1=F2 @#@[@@AJ )@@G@@ S2=SPARM @#@[@@ F2=FNORM @ @[@@ SPARM=SPARM-FNORM/AK )@@G@@DERIV @#@[@@ ITER=ITER+1 @B@[@@ IF (CABS(FNORM).LT.FTOL) GO TOAL )@@G@@ 3100 @B@[@@ IF (CABS(SPARM).GT.SMAX) GO TO 3010 @A@[@@ IF (ITAM )@@G@@ER.LT.IMAX) GO TO 2010 @ @[@@ WRITE (6,3005) ITER @F@[@@ 3005 AN )@@G@@FORMAT(^0WARNING: POLE ANALYSIS STOPPED -- ITERATION ^, @A@[@@ 1AO )@@G@@ ^COUNT EXCEEDED ^,I5,/) @#@[@@ GO TO 3400 @ @[@@ 3010 WRITE AP )@@G@@(6,3015) SMAX @F@[@@ 3015 FORMAT(^0WARNING: POLE ANALYSIS STOPPED -AQ )@@G@@- MAG(S) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ GO TO 3400 AR )@@G@@@[@[@@C @#@[@@C POLE FOUND @[@[@@C @^@[@@ 3100 NROOT=NROOT+AS )@@G@@1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ LOCR=(LROOT+1)/2 AT )@@G@@@ @[@@ CVALUE(LOCR+NROOT)=SPARM@[@[@@C @C@[@@C NORMALIZE RAU )@@G@@EFERENCE TRANSFER FUNCTIONS @[@[@@C @A@[@@ FOLD1=FOLD1/(SOLD1AV )@@G@@-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) @^@[@@ F1=F1/AW )@@G@@(S1-SPARM) @[@[@@C @B@[@@C TAKE THE CONJUGATE OF COMPLEX POLE AX )@@G@@@[@[@@C @A@[@@ IF (SIMAG.EQ.0) GO TO 3200 @#@[@@ SIMAG=AY )@@G@@-SIMAG@^@[@@ NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) AZ )@@G@@@^@[@@ LOCR=(LROOT+1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@A@[@@BA )@@G@@ FOLD1=FOLD1/(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARMBB )@@G@@) @^@[@@ F1=F1/(S1-SPARM) @[@[@@C @ @[@@C CHECK FOR FBC )@@G@@UTHER POLES @F@[@@ 3200 IF ( (CABS(FOLD1-FOLD2)+CABS(FOLD2-F1)).LT.ETOL BD )@@G@@)GO TO 3400 @[@[@@C @C@[@@C EXTRAPOLATE S-PARAMETER FOR NEW POLBE )@@G@@E @[@[@@C @ @[@@ 3300 SPARM=SPARM*(-10.0,0.0) @]@[@@ ITER=0BF )@@G@@@#@[@@ GO TO 2010 @[@[@@C @#@[@@C FINISHED @[@[@@C BG )@@G@@@^@[@@ 3400 XCOEFF=REAL(FOLD1)@]@[@@ RETURN@]@[@@ END @C@[@@BH )@@G@@ SUBROUTINE CALDET(X,FX,LROOT,NROOT,IFLAG) @[@[@@C @F@[@@C BI )@@G@@ THIS SUBROUTINE CALCULATES THE COMPLEX DETERMINANT AT S=X. @[@[@@C BJ )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUBK )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,BL )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILBM )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWBN )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,BO )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@BP )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, BQ )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONBR )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1BS )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ BT )@@G@@COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@BU )@@G@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@BV )@@G@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@BW )@@G@@ 3 IPIMAT(4)@A@[@@ COMMON /DEBUG/ IDEBUG(20) @ @[@@ BX )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEBY )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@BZ )@@G@@C @[@[@@C @^@[@@ COMPLEX X,FX,DET @[@[@@C @#@[@@C LOACA )@@G@@D THE MATRIX@[@[@@C @^@[@@ CALL PZLOAD(X) @[@[@@C @C@[@@CB )@@G@@C IFLAG=1 => ZERO COMPUTATION -- COPY OVER RHS @[@[@@C @A@[@@ CC )@@G@@IF (IFLAG.EQ.0) GO TO 150 @A@[@@ IF (IPZITP.EQ.10) GO TO 110 CD )@@G@@@ @[@@ LOCY=LYNL+IPZLOC(1) @^@[@@ CVALUE(LOCY)=1.0 @#@[@@CE )@@G@@ GO TO 150 @ @[@@ 110 LOCY=LYNL+IPZLOC(1) @^@[@@ CVALUECF )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+IPZLOC(2) @^@[@@ CVALUE(LOCY)CG )@@G@@=+1.0 @[@[@@C @E@[@@C CALCULATE DETERMINANT BY FIRST DOING AN LU DECH )@@G@@COMPOSITION @[@[@@C @A@[@@ 150 IF (IDEBUG(6).LE.0) GO TO 200 @ @[@@CI )@@G@@ CALL DMPMAT(8HCALDET ) @ @[@@ IDEBUG(6)=IDEBUG(6)-1 @#@[@@CJ )@@G@@ 200 IGOOF=0 @#@[@@ CALL ACDCMP @A@[@@ IF (IGOOF.EQ.0) GOCK )@@G@@ TO 210 @ @[@@ WRITE (6,201) IGOOF @F@[@@ 201 FORMAT(^0WARCL )@@G@@NING: UNDERFLOW ^,I4,^ TIME(S) IN POLE/ZERO ^, @^@[@@ 1 ^ANALYSISCM )@@G@@^) @#@[@@ IGOOF=0 @[@[@@C @G@[@@C NOW, THE DETERMINANT CN )@@G@@IS SIMPLY THE PRODUCT OF THE DIAGONAL TERMS @[@[@@C @^@[@@ 210 CO )@@G@@DET=(1.0,0.0) @^@[@@ DO 220 I=2,NSTOP @A@[@@ ISPOT=LYNL+NCP )@@G@@ODPLC(IORDER+I) @ @[@@ DET=DET*CVALUE(ISPOT) @#@[@@ 220 CONTINCQ )@@G@@UE @G@[@@C*************************************** DIAGNOSTIC WRITE **CR )@@G@@************@A@[@@ IF (IDEBUG(7).LE.0) GO TO 300 @ @[@@ IDEBUGCS )@@G@@(7)=IDEBUG(7)-1 @^@[@@ DO 260 I=2,NSTOP @A@[@@ ISPOT=LYNL+NCT )@@G@@ODPLC(IORDER+I) @B@[@@ WRITE (6,992) I,I,CVALUE(ISPOT) @G@[@@CU )@@G@@ 992 FORMAT(^ *DEBUG*: CALDET - (^,I3,^,^,I3,^) MATRIX ENTRY IN U = ^,CV )@@G@@@#@[@@ 1 1P2E15.6)@#@[@@ 260 CONTINUE @G@[@@C*****************CW )@@G@@******************************************************@[@[@@C @A@[@@CX )@@G@@C DIVIDE OUT ANY PREVIOUS ROOTS @[@[@@C @A@[@@ 300 IF (NROOT.EQCY )@@G@@.0) GO TO 400 @^@[@@ LOC=(LROOT+1)/2 @^@[@@ DO 310 I=1,NCZ )@@G@@ROOT @A@[@@ DET=DET/(X-CVALUE(LOC+I)) @#@[@@ 310 CONTINUE DA )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 400 FX=DET@F@[@@C*****DB )@@G@@***************** DIAGNOSTIC WRITE *********************** @ @[@@ DC )@@G@@IF (IDEBUG(5).GT.0) @ @[@@ 1 WRITE (6,991) X,FX @D@[@@ 991 DD )@@G@@FORMAT(^ *DEBUG*: CALDET: X,FX = ^,1P4E15.6) @F@[@@C*****************DE )@@G@@********************************************** @]@[@@ RETURN@]@[@@DF )@@G@@ END @ @[@@ SUBROUTINE PZLOAD(S) @[@[@@C @G@[@@C DG )@@G@@THIS ROUTINE ZEROES-OUT AND THEN LOADS THE COMPLEX COEFFICIENT @]@[@@DH )@@G@@C MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTDI )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIDJ )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,DK )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEDL )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LDM )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUDN )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODO )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMDP )@@G@@VS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNDQ )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NODR )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /AC/ DS )@@G@@FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INODT )@@G@@ISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZDU )@@G@@IN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIDV )@@G@@MAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)DW )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1DX )@@G@@),CVALUE(1))@[@[@@C @[@[@@C @F@[@@ COMPLEX CVAL,S,XCEQ,XCCSDY )@@G@@,XCPI,XCMU,XGS,XGD,XCGS,XCGD,XCGB, @#@[@@ 1 XBD,XBS @[@[@@C DZ )@@G@@@A@[@@C ZERO Y MATRIX AND CURRENT VECTOR @[@[@@C @D@[@@ CALL ZEA )@@G@@ERO16(CVALUE(LVN+1),NSTOP+NSTOP+NUT+NLT) @[@[@@C @]@[@@C RESISTORSEB )@@G@@@[@[@@C @^@[@@ LOC=LOCATE(1) @ @[@@ 20 IF (LOC.EQ.0) GO TEC )@@G@@O 30 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ED )@@G@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL EE )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCYEF )@@G@@)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @A@[@@ CVALUE(LOCY)=CVALUEG )@@G@@E(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ CVALUE(LOCY)EH )@@G@@=CVALUE(LOCY)-VAL @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 EI )@@G@@@[@[@@C @#@[@@C CAPACITORS @[@[@@C @^@[@@ 30 LOC=LOCATE(2EJ )@@G@@) @ @[@@ 40 IF (LOC.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(LOC+1)EK )@@G@@@ @[@@ CVAL=VALUE(LOCV+1)*S @ @[@@ LOCY=LYNL+NODPLC(LOC+4) EL )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NODPLC(LEM )@@G@@OC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NOEN )@@G@@DPLC(LOC+5) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@ @[@@ LOCY=LEO )@@G@@YNL+NODPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@^@[@@ EP )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDUCTORSEQ )@@G@@@[@[@@C @^@[@@ 50 LOC=LOCATE(3) @ @[@@ 60 IF (LOC.EQ.0) GO TER )@@G@@O 70 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ CVAL=VALUE(LOCV+1)*S ES )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+9) @^@[@@ CVALUE(LOCY)=-CVAL@ @[@@ET )@@G@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ EU )@@G@@LOCY=LYNL+NODPLC(LOC+6) @^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LEV )@@G@@YNL+NODPLC(LOC+7) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NOEW )@@G@@DPLC(LOC+8) @^@[@@ CVALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LOC) EX )@@G@@@#@[@@ GO TO 60 @[@[@@C @^@[@@C MUTUAL INDUCTORS @[@[@@EY )@@G@@C @^@[@@ 70 LOC=LOCATE(4) @ @[@@ 80 IF (LOC.EQ.0) GO TO 90 EZ )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ CVAL=VALUE(LOCV+1)*S @ @[@@FA )@@G@@ LOCY=LYNL+NODPLC(LOC+4) @^@[@@ CVALUE(LOCY)=-CVAL@ @[@@ FB )@@G@@LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=-CVAL@^@[@@ LOC=NOFC )@@G@@DPLC(LOC) @#@[@@ GO TO 80 @[@[@@C @C@[@@C NONLINEAR VOLTAFD )@@G@@GE CONTROLLED CURRENT SOURCES @[@[@@C @^@[@@ 90 LOC=LOCATE(5) FE )@@G@@@ @[@@ 95 IF (LOC.EQ.0) GO TO 100 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@FF )@@G@@ LMAT=NODPLC(LOC+7)@A@[@@ LOCT=LX0+NODPLC(LOC+12)+2 @^@[@@FG )@@G@@ DO 97 I=1,NDIM @^@[@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LFH )@@G@@OCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ CVALUE(LOCY)=CVALUFI )@@G@@E(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ CVALUE(LOCY)FJ )@@G@@=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@ CVALUEFK )@@G@@(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@A@[@@ FL )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+4 @#@[@@ 97 CONTINFM )@@G@@UE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 95 @[@[@@C FN )@@G@@@C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@C @^@[@@FO )@@G@@ 100 LOC=LOCATE(6) @ @[@@ 105 IF (LOC.EQ.0) GO TO 110 @^@[@@ FP )@@G@@NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ LOCT=LX0+NODFQ )@@G@@PLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ CVALUEFR )@@G@@(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ CVALUE(LOCY)FS )@@G@@=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUE(LOCY)=+1.0 FT )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)=-1.0 @#@[@@FU )@@G@@ LMAT=LMAT+4 @^@[@@ DO 107 I=1,NDIM @^@[@@ VAL=VALUE(LOFV )@@G@@CT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@FW )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)FX )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+2 @#@[@@FY )@@G@@ 107 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 105 FZ )@@G@@@[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES @[@[@@GA )@@G@@C @^@[@@ 110 LOC=LOCATE(7) @ @[@@ 115 IF (LOC.EQ.0) GO TO 120 GB )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+7)@A@[@@ GC )@@G@@LOCT=LX0+NODPLC(LOC+12)+2 @^@[@@ DO 117 I=1,NDIM @^@[@@ GD )@@G@@VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LGE )@@G@@MAT+1)@^@[@@ CVALUE(LOCY)=+VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)GF )@@G@@@^@[@@ CVALUE(LOCY)=-VAL @#@[@@ LMAT=LMAT+2 @#@[@@ 117 CONTINGG )@@G@@UE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 115 @[@[@@C GH )@@G@@@C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@[@@C @^@[@@GI )@@G@@ 120 LOC=LOCATE(8) @ @[@@ 125 IF (LOC.EQ.0) GO TO 140 @^@[@@ GJ )@@G@@NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ LOCT=LX0+NODGK )@@G@@PLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ CVALUEGL )@@G@@(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ CVALUE(LOCY)GM )@@G@@=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUE(LOCY)=+1.0 GN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)=-1.0 @#@[@@GO )@@G@@ LMAT=LMAT+4 @^@[@@ DO 127 I=1,NDIM @^@[@@ VAL=VALUE(LOGP )@@G@@CT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+I)@A@[@@GQ )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @#@[@@ 127 CONTINUE @^@[@@ GR )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 125 @[@[@@C @#@[@@C VOLTAGE SGS )@@G@@OURCES@[@[@@C @^@[@@ 140 LOC=LOCATE(9) @ @[@@ 150 IF (LOC.EQ.0GT )@@G@@) GO TO 160 @^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CVAL=CMPLX(VALUE(LGU )@@G@@OCV+2),VALUE(LOCV+3)) @^@[@@ IPTR=NODPLC(LOC+6)@ @[@@ CVALUEGV )@@G@@(LVN+IPTR)=CVAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ CVALUEGW )@@G@@(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) @A@[@@ GX )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@GY )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+10)GZ )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @^@[@@ LOC=NODPLC(LOC) HA )@@G@@@#@[@@ GO TO 150 @[@[@@C @#@[@@C CURRENT SOURCES@[@[@@C HB )@@G@@@^@[@@ 160 LOC=LOCATE(10) @ @[@@ 170 IF (LOC.EQ.0) GO TO 200 @^@[@@HC )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ HD )@@G@@NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CMPLX(VALUE(LOCV+2),VALUE(LOCV+HE )@@G@@3)) @C@[@@ CVALUE(LVN+NODE1)=CVALUE(LVN+NODE1)-CVAL @C@[@@ HF )@@G@@CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)+CVAL @^@[@@ LOC=NODPLC(LOC) HG )@@G@@@#@[@@ GO TO 170 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@HH )@@G@@ 200 LOC=LOCATE(11) @ @[@@ 210 IF (LOC.EQ.0) GO TO 250 @^@[@@ HI )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(HJ )@@G@@LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOHK )@@G@@C+11) @ @[@@ GSPR=VALUE(LOCM+2)*AREA @^@[@@ GEQ=VALUE(LOCT+2) HL )@@G@@@ @[@@ XCEQ=VALUE(LOCT+4)*S @ @[@@ LOCY=LYNL+NODPLC(LOC+13)HM )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LHN )@@G@@OC+14)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEQ+XCEQ @ @[@@ LOCY=LHO )@@G@@YNL+NODPLC(LOC+15)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEQ+GSPR+XCEQ HP )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCYHQ )@@G@@)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+8) @B@[@@ CVALUE(LOCY)=CVALUHR )@@G@@E(LOCY)-GEQ-XCEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ CVALUEHS )@@G@@(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@B@[@@ HT )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GEQ-XCEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@HU )@@G@@ GO TO 210 @[@[@@C @]@[@@C BJTS @[@[@@C @[@[@@C*** HV )@@G@@@A@[@@C*** CHECK MODS FOR GROUP DELAY @[@[@@C*** @^@[@@ 250 LOC=LOHW )@@G@@CATE(12) @ @[@@ 260 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(HX )@@G@@LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@HY )@@G@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@HZ )@@G@@ GBPR=VALUE(LOCM+4)*AREA @ @[@@ GCPR=VALUE(LOCM+5)*AREA @ @[@@IA )@@G@@ GEPR=VALUE(LOCM+6)*AREA @A@[@@ XCCS=VALUE(LOCM+17)*AREA*S IB )@@G@@@^@[@@ GPI=VALUE(LOCT+4) @^@[@@ GMU=VALUE(LOCT+5) @^@[@@ IC )@@G@@GM=VALUE(LOCT+6) @^@[@@ GO=VALUE(LOCT+7) @ @[@@ XCPI=VALUE(LID )@@G@@OCT+9)*S @ @[@@ XCMU=VALUE(LOCT+11)*S @ @[@@ LOCY=LYNL+NOIE )@@G@@DPLC(LOC+24)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GCPR@ @[@@ LOCY=LIF )@@G@@YNL+NODPLC(LOC+25)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GBPR@ @[@@ IG )@@G@@LOCY=LYNL+NODPLC(LOC+26)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEPR@ @[@@IH )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GMU+II )@@G@@GO+GCPR+XCMU+XCCS @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@D@[@@ CVALUEIJ )@@G@@(LOCY)=CVALUE(LOCY)+GBPR+GPI+GMU+XCPI+XCMU@ @[@@ LOCY=LYNL+NODPLC(LIK )@@G@@OC+29)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GPI+GEPR+GM+GO+XCPI @ @[@@IL )@@G@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GCPRIM )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYIN )@@G@@)-GBPR@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUIO )@@G@@E(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)IP )@@G@@=CVALUE(LOCY)-GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@C@[@@ CVALUEIQ )@@G@@(LOCY)=CVALUE(LOCY)-(GMU-GM)-XCMU @ @[@@ LOCY=LYNL+NODPLC(LOC+15)IR )@@G@@@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GM-GO @ @[@@ LOCY=LYNL+NOIS )@@G@@DPLC(LOC+16)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @[@@ LOCY=LIT )@@G@@YNL+NODPLC(LOC+17)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GMU-XCMU @ @[@@IU )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GPI-IV )@@G@@XCPI @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ CVALUE(LOCY)=CVALUIW )@@G@@E(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ CVALUE(LOCY)IX )@@G@@=CVALUE(LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@C@[@@ CVALUEIY )@@G@@(LOCY)=CVALUE(LOCY)-(GPI+GM)-XCPI @^@[@@ LOC=NODPLC(LOC) @#@[@@IZ )@@G@@ GO TO 260 @[@[@@C @]@[@@C JFETS @[@[@@C @^@[@@ 300 JA )@@G@@LOC=LOCATE(13) @ @[@@ 310 IF (LOC.EQ.0) GO TO 350 @^@[@@ LOCV=NJB )@@G@@ODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+7)JC )@@G@@@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+19) JD )@@G@@@ @[@@ GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VALUE(LOCM+5)*AREA JE )@@G@@@^@[@@ GM=VALUE(LOCT+5) @^@[@@ GDS=VALUE(LOCT+6) @^@[@@ JF )@@G@@GGS=VALUE(LOCT+7) @ @[@@ XGS=VALUE(LOCT+9)*S @^@[@@ GGD=VAJG )@@G@@LUE(LOCT+8) @ @[@@ XGD=VALUE(LOCT+11)*S @ @[@@ LOCY=LYNL+NOJH )@@G@@DPLC(LOC+20)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR@ @[@@ LOCY=LJI )@@G@@YNL+NODPLC(LOC+21)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GGD+GGS+XGD+XGS JJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYJK )@@G@@)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+23)@C@[@@ CVALUE(LOCY)=CVALUJL )@@G@@E(LOCY)+GDPR+GDS+GGD+XGD@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@D@[@@ JM )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GSPR+GDS+GM+GGS+XGS @ @[@@ LOCY=LYNL+NOJN )@@G@@DPLC(LOC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LJO )@@G@@YNL+NODPLC(LOC+10)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GGD-XGD @ @[@@JP )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GGS-JQ )@@G@@XGS @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUJR )@@G@@E(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)JS )@@G@@=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@C@[@@ CVALUEJT )@@G@@(LOCY)=CVALUE(LOCY)-(GGD-GM)-XGD @ @[@@ LOCY=LYNL+NODPLC(LOC+15)JU )@@G@@@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-GM @ @[@@ LOCY=LYNL+NOJV )@@G@@DPLC(LOC+16)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-(GGS+GM)-XGS @ @[@@JW )@@G@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPRJX )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYJY )@@G@@)-GDS @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@C JZ )@@G@@@]@[@@C MOSFETS @[@[@@C @^@[@@ 350 LOC=LOCATE(14) @ @[@@ 360 KA )@@G@@IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ DEVMODKB )@@G@@=VALUE(LOCV+5) @#@[@@ XNRM=1.0 @#@[@@ XREV=0.0 @A@[@@KC )@@G@@ IF (DEVMOD.GE.0.0) GO TO 370 @#@[@@ XNRM=0.0 @#@[@@ KD )@@G@@XREV=1.0 @^@[@@ 370 LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1KE )@@G@@) @ @[@@ LOCT=LX0+NODPLC(LOC+26) @^@[@@ GDPR=VALUE(LOCM+6)KF )@@G@@@^@[@@ GSPR=VALUE(LOCM+7)@ @[@@ XCGS=VALUE(LOCT+16)*S @ @[@@KG )@@G@@ XCGD=VALUE(LOCT+18)*S @ @[@@ XCGB=VALUE(LOCT+20)*S @^@[@@KH )@@G@@ GM=VALUE(LOCT+7) @^@[@@ GDS=VALUE(LOCT+8) @^@[@@ GMBS=VKI )@@G@@ALUE(LOCT+9)@^@[@@ GBD=VALUE(LOCT+10)@ @[@@ XBD=VALUE(LOCT+12)KJ )@@G@@*S @^@[@@ GBS=VALUE(LOCT+11)@ @[@@ XBS=VALUE(LOCT+14)*S KK )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYKL )@@G@@)+GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@C@[@@ CVALUE(LOCY)=CVALUKM )@@G@@E(LOCY)+XCGD+XCGS+XCGB @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ KN )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+30)@D@[@@KO )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GBD+GBS+XBD+XBS+XCGB @ @[@@ LOCY=LKP )@@G@@YNL+NODPLC(LOC+31)@G@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR+GDS+GBD+XREKQ )@@G@@V*(GM+GMBS)+XCGD+XBD @ @[@@ LOCY=LYNL+NODPLC(LOC+32)@G@[@@ KR )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GSPR+GDS+GBS+XNRM*(GM+GMBS)+XCGS+XBS @ @[@@KS )@@G@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPRKT )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYKU )@@G@@)-XCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUKV )@@G@@E(LOCY)-XCGD@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)KW )@@G@@=CVALUE(LOCY)-XCGS@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@A@[@@ CVALUEKX )@@G@@(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ KY )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-XCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@B@[@@KZ )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GBD-XBD @ @[@@ LOCY=LYNL+NODPLC(LLA )@@G@@OC+17)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBS-XBS @ @[@@ LOCY=LLB )@@G@@YNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LC )@@G@@LOCY=LYNL+NODPLC(LOC+19)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+(XNRM-XREVLD )@@G@@)*GM-XCGD @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@E@[@@ CVALUE(LOCY)LE )@@G@@=CVALUE(LOCY)-(GBD-(XNRM-XREV)*GMBS)-XBD @ @[@@ LOCY=LYNL+NODPLC(LLF )@@G@@OC+21)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) @ @[@@LG )@@G@@ LOCY=LYNL+NODPLC(LOC+22)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-(XNRLH )@@G@@M-XREV)*GM-XCGS @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@A@[@@ CVALUELI )@@G@@(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@E@[@@ LJ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GBS+(XNRM-XREV)*GMBS-XBS @ @[@@ LOCY=LLK )@@G@@YNL+NODPLC(LOC+25)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XREV*(GM+GMBLL )@@G@@S) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 360 @[@[@@C LM )@@G@@@^@[@@C POLE/ZERO EQUATIONS @[@[@@C @A@[@@ 1000 IF (MODAC.EQ.2) GOLN )@@G@@ TO 1100 @[@[@@C @^@[@@C... INPUT EQUATION @[@[@@C @A@[@@LO )@@G@@ IF (IPZITP.NE.41) GO TO 1010 @ @[@@ LOCY=LYNL+IPIMAT(1) LP )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+IPIMAT(2LQ )@@G@@) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+IPLR )@@G@@IMAT(3) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LLS )@@G@@YNL+IPIMAT(4) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @[@[@@C LT )@@G@@@^@[@@C... OUTPUT EQUATION @[@[@@C @ @[@@ 1010 LOCY=LYNL+IPOMAT(1LU )@@G@@) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @C@[@@ IF (NODPLC(ILV )@@G@@PZOUT+5).NE.0) GO TO 1100 @ @[@@ LOCY=LYNL+IPOMAT(2) @A@[@@LW )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @[@[@@C @ @[@@C REORDER RIGHT-HLX )@@G@@AND SIDE @[@[@@C @^@[@@ 1100 DO 1110 I=2,NSTOP @^@[@@ J=NODPLY )@@G@@LC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 1110 CONTINLZ )@@G@@UE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@[@@MA )@@G@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURN@]@[@@ END MB )@@G@@@^@[@@ SUBROUTINE ACDCMP @[@[@@C @G@[@@C THIS ROUTINE PERFOMC )@@G@@RMS AN LU FACTORIZATION OF THE CIRCUIT EQUATION @^@[@@C COEFFICIENT MATRMD )@@G@@IX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAME )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICMF )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERMG )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQMH )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYMI )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPMJ )@@G@@OL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNMK )@@G@@ODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS ML )@@G@@@G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMMM )@@G@@PTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KMN )@@G@@EOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHAMO )@@G@@RGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPMP )@@G@@SSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPMQ )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOMR )@@G@@DPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ DO 100 I=2,NSTOP MS )@@G@@@ @[@@ IO=NODPLC(IORDER+I) @F@[@@ GDIAG=ABS(REAL(CVALUE(LYMT )@@G@@NL+IO)))+ABS(AIMAG(CVALUE(LYNL+IO)))@A@[@@ IF (GDIAG.GE.GMIN) GO TOMU )@@G@@ 10 @B@[@@ CVALUE(LYNL+IO)=CMPLX(GMIN,0.0) @^@[@@ IGOOF=MV )@@G@@IGOOF+1 @ @[@@ 10 JSTART=NODPLC(ILC+I) @ @[@@ JSTOP=NODPLCMW )@@G@@(ILC+I+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 100@ @[@@ DO 90 MX )@@G@@J=JSTART,JSTOP @D@[@@ CVALUE(LYL+J)=CVALUE(LYL+J)/CVALUE(LYNL+IOMY )@@G@@) @^@[@@ ICOL=NODPLC(ILR+J)@ @[@@ KSTART=NODPLC(IUR+I) MZ )@@G@@@ @[@@ KSTOP=NODPLC(IUR+I+1)-1 @A@[@@ IF (KSTART.GT.KSTOP) GO NA )@@G@@TO 90 @ @[@@ DO 80 K=KSTART,KSTOP @^@[@@ IROW=NODPLC(IUC+K)NB )@@G@@@ @[@@ IF (ICOL-IROW) 20,60,40 @[@[@@C @C@[@@C FIND (ICOL,IROWNC )@@G@@) MATRIX TERM (UPPER TRIANGLE)@[@[@@C @ @[@@ 20 L=NODPLC(IUR+ICOL+ND )@@G@@1) @]@[@@ 30 L=L-1 @B@[@@ IF (NODPLC(IUC+L).NE.IROW) GO TO 30 NE )@@G@@@#@[@@ ISPOT=LYU+L @#@[@@ GO TO 70 @[@[@@C @C@[@@C FINNF )@@G@@D (ICOL,IROW) MATRIX TERM (LOWER TRIANGLE)@[@[@@C @ @[@@ 40 L=NODPNG )@@G@@LC(ILC+IROW+1) @]@[@@ 50 L=L-1 @B@[@@ IF (NODPLC(ILR+L).NE.ICONH )@@G@@L) GO TO 50 @#@[@@ ISPOT=LYL+L @#@[@@ GO TO 70 @[@[@@C NI )@@G@@@B@[@@C FIND (ICOL,IROW) MATRIX TERM (DIAGONAL)@[@[@@C @A@[@@ 60 NJ )@@G@@ISPOT=LYNL+NODPLC(IORDER+IROW)@[@[@@C @F@[@@ 70 CVALUE(ISPOT)=CVALNK )@@G@@UE(ISPOT)-CVALUE(LYL+J)*CVALUE(LYU+K) @#@[@@ 80 CONTINUE @#@[@@NL )@@G@@ 90 CONTINUE @#@[@@ 100 CONTINUE @]@[@@ RETURN@]@[@@ NM )@@G@@END @^@[@@ SUBROUTINE ACSOL @[@[@@C @G@[@@C THIS ROUTINENN )@@G@@ SOLVES THE CIRCUIT EQUATIONS BY PERFORMING A FORWARD @G@[@@C AND BACKWANO )@@G@@RD SUBSTITUTION USING THE PREVIOUSLY-COMPUTED LU FACTORS. @[@[@@C NP )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUNQ )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,NR )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILNS )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWNT )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,NU )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@NV )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, NW )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ COMMONNX )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALNY )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C NZ )@@G@@@^@[@@C FORWARD SUBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSTOP OA )@@G@@@ @[@@ JSTART=NODPLC(ILC+I) @ @[@@ JSTOP=NODPLC(ILC+I+1)-1 OB )@@G@@@A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @ @[@@ IO=NODPLC(IORDER+IOC )@@G@@) @C@[@@ IF (REAL(CVALUE(LVN+IO)).NE.0.0) GO TO 5 @C@[@@ OD )@@G@@IF (AIMAG(CVALUE(LVN+IO)).EQ.0.0) GO TO 20@ @[@@ 5 DO 10 J=JSTART,JSTOE )@@G@@OP @^@[@@ JO=NODPLC(ILR+J) @ @[@@ JO=NODPLC(IORDER+JO) OF )@@G@@@F@[@@ CVALUE(LVN+JO)=CVALUE(LVN+JO)-CVALUE(LYL+J)*CVALUE(LVN+IO) OG )@@G@@@#@[@@ 10 CONTINUE @#@[@@ 20 CONTINUE @[@[@@C @^@[@@C BACOH )@@G@@K SUBSTITUTION @[@[@@C @#@[@@ K=NSTOP+1 @^@[@@ DO 50 OI )@@G@@I=2,NSTOP @]@[@@ K=K-1 @ @[@@ IO=NODPLC(IORDER+K) @ @[@@OJ )@@G@@ JSTART=NODPLC(IUR+K) @ @[@@ JSTOP=NODPLC(IUR+K+1)-1 @A@[@@OK )@@G@@ IF (JSTART.GT.JSTOP) GO TO 40 @ @[@@ DO 30 J=JSTART,JSTOP OL )@@G@@@^@[@@ JO=NODPLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) @F@[@@OM )@@G@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)-CVALUE(LYU+J)*CVALUE(LVN+JO) @#@[@@ON )@@G@@ 30 CONTINUE @D@[@@ 40 CVALUE(LVN+IO)=CVALUE(LVN+IO)/CVALUE(LYNL+OO )@@G@@IO) @#@[@@ 50 CONTINUE @]@[@@ RETURN@]@[@@ END @^@[@@OP )@@G@@ SUBROUTINE ACLOAD @[@[@@C @G@[@@C THIS ROUTINE ZEROES-OUT OQ )@@G@@AND THEN LOADS THE COMPLEX COEFFICIENT @]@[@@C MATRIX. @[@[@@C OR )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUOS )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,OT )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILOU )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWOV )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,OW )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@OX )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, OY )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONOZ )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1PA )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2PB )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,PC )@@G@@REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,PD )@@G@@IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,PE )@@G@@IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@ COMMONPF )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALPG )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C PH )@@G@@@[@[@@C @#@[@@ COMPLEX CVAL@[@[@@C @A@[@@C ZERO Y MATRIX API )@@G@@ND CURRENT VECTOR @[@[@@C @D@[@@ CALL ZERO16(CVALUE(LVN+1),NSTOPJ )@@G@@P+NSTOP+NUT+NLT) @[@[@@C @]@[@@C RESISTORS@[@[@@C @^@[@@ PK )@@G@@LOC=LOCATE(1) @ @[@@ 20 IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCV=NPL )@@G@@ODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LPM )@@G@@OC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NOPN )@@G@@DPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @[@@ LOCY=LPO )@@G@@YNL+NODPLC(LOC+4) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ PP )@@G@@LOCY=LYNL+NODPLC(LOC+5) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @^@[@@PQ )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 @[@[@@C @#@[@@C CAPPR )@@G@@ACITORS @[@[@@C @^@[@@ 30 LOC=LOCATE(2) @ @[@@ 40 IF (LOPS )@@G@@C.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CMPLX(0PT )@@G@@.0,OMEGA*VALUE(LOCV+1)) @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @A@[@@ PU )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@PV )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+5) PW )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@ @[@@ LOCY=LYNL+NODPLC(LPX )@@G@@OC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@^@[@@ LOC=NODPLC(LPY )@@G@@OC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDUCTORS@[@[@@C PZ )@@G@@@^@[@@ 50 LOC=LOCATE(3) @ @[@@ 60 IF (LOC.EQ.0) GO TO 70 @^@[@@QA )@@G@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCV+1)) QB )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+9) @^@[@@ CVALUE(LOCY)=-CVAL@ @[@@QC )@@G@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ QD )@@G@@LOCY=LYNL+NODPLC(LOC+6) @^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LQE )@@G@@YNL+NODPLC(LOC+7) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NOQF )@@G@@DPLC(LOC+8) @^@[@@ CVALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LOC) QG )@@G@@@#@[@@ GO TO 60 @[@[@@C @^@[@@C MUTUAL INDUCTORS @[@[@@QH )@@G@@C @^@[@@ 70 LOC=LOCATE(4) @ @[@@ 80 IF (LOC.EQ.0) GO TO 90 QI )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCQJ )@@G@@V+1)) @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @^@[@@ CVALUE(LOCY)=-CVALQK )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=-CVAL@^@[@@QL )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@C @C@[@@C NONQM )@@G@@LINEAR VOLTAGE CONTROLLED CURRENT SOURCES @[@[@@C @^@[@@ 90 LOC=LOQN )@@G@@CATE(5) @ @[@@ 95 IF (LOC.EQ.0) GO TO 100 @^@[@@ NDIM=NODPLC(QO )@@G@@LOC+4)@^@[@@ LMAT=NODPLC(LOC+7)@A@[@@ LOCT=LX0+NODPLC(LOC+12)+QP )@@G@@2 @^@[@@ DO 97 I=1,NDIM @^@[@@ VAL=VALUE(LOCT) @#@[@@QQ )@@G@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ CVALUEQR )@@G@@(LOCY)=CVALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ QS )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@QT )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)QU )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+4 @#@[@@QV )@@G@@ 97 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 95 QW )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@QX )@@G@@C @^@[@@ 100 LOC=LOCATE(6) @ @[@@ 105 IF (LOC.EQ.0) GO TO 110 QY )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ QZ )@@G@@LOCT=LX0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@RA )@@G@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ RB )@@G@@CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUERC )@@G@@(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)RD )@@G@@=-1.0 @#@[@@ LMAT=LMAT+4 @^@[@@ DO 107 I=1,NDIM @^@[@@ RE )@@G@@VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LRF )@@G@@MAT+1)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NORG )@@G@@DPLC(LMAT+2)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LRH )@@G@@MAT+2 @#@[@@ 107 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ RI )@@G@@GO TO 105 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED CURRENT SORJ )@@G@@URCES @[@[@@C @^@[@@ 110 LOC=LOCATE(7) @ @[@@ 115 IF (LOC.EQ.0RK )@@G@@) GO TO 120 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+7)RL )@@G@@@A@[@@ LOCT=LX0+NODPLC(LOC+12)+2 @^@[@@ DO 117 I=1,NDIM RM )@@G@@@^@[@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LRN )@@G@@YNL+NODPLC(LMAT+1)@^@[@@ CVALUE(LOCY)=+VAL @ @[@@ LOCY=LYNL+NORO )@@G@@DPLC(LMAT+2)@^@[@@ CVALUE(LOCY)=-VAL @#@[@@ LMAT=LMAT+2 @#@[@@RP )@@G@@ 117 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 115 RQ )@@G@@@[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@[@@RR )@@G@@C @^@[@@ 120 LOC=LOCATE(8) @ @[@@ 125 IF (LOC.EQ.0) GO TO 140 RS )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ RT )@@G@@LOCT=LX0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@RU )@@G@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ RV )@@G@@CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUERW )@@G@@(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)RX )@@G@@=-1.0 @#@[@@ LMAT=LMAT+4 @^@[@@ DO 127 I=1,NDIM @^@[@@ RY )@@G@@VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LRZ )@@G@@MAT+I)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @#@[@@ 127 CONTINUE SA )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 125 @[@[@@C @#@[@@SB )@@G@@C VOLTAGE SOURCES@[@[@@C @^@[@@ 140 LOC=LOCATE(9) @ @[@@ 150 SC )@@G@@IF (LOC.EQ.0) GO TO 160 @^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CVAL=CSD )@@G@@MPLX(VALUE(LOCV+2),VALUE(LOCV+3)) @^@[@@ IPTR=NODPLC(LOC+6)@ @[@@SE )@@G@@ CVALUE(LVN+IPTR)=CVAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@SF )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) SG )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LSH )@@G@@OC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NOSI )@@G@@DPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @^@[@@ LOC=NOSJ )@@G@@DPLC(LOC) @#@[@@ GO TO 150 @[@[@@C @#@[@@C CURRENT SOURCESSK )@@G@@@[@[@@C @^@[@@ 160 LOC=LOCATE(10) @ @[@@ 170 IF (LOC.EQ.0) GO TSL )@@G@@O 200 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) SM )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CMPLX(VALUE(LOCV+2)SN )@@G@@,VALUE(LOCV+3)) @C@[@@ CVALUE(LVN+NODE1)=CVALUE(LVN+NODE1)-CVAL SO )@@G@@@C@[@@ CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)+CVAL @^@[@@ LOC=NOSP )@@G@@DPLC(LOC) @#@[@@ GO TO 170 @[@[@@C @]@[@@C DIODES @[@[@@SQ )@@G@@C @^@[@@ 200 LOC=LOCATE(11) @ @[@@ 210 IF (LOC.EQ.0) GO TO 250 SR )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ SS )@@G@@LOCM=NODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LST )@@G@@X0+NODPLC(LOC+11) @ @[@@ GSPR=VALUE(LOCM+2)*AREA @^@[@@ GEQ=VASU )@@G@@LUE(LOCT+2) @ @[@@ XCEQ=VALUE(LOCT+4)*OMEGA@ @[@@ LOCY=LYNL+NOSV )@@G@@DPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LSW )@@G@@YNL+NODPLC(LOC+14)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GEQ,XCEQ) SX )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@D@[@@ CVALUE(LOCY)=CVALUE(LOCYSY )@@G@@)+CMPLX(GEQ+GSPR,XCEQ) @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ SZ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+8) @C@[@@TA )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GEQ,XCEQ) @ @[@@ LOCY=LYNL+NOTB )@@G@@DPLC(LOC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LTC )@@G@@YNL+NODPLC(LOC+10)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GEQ,XCEQ) TD )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @]@[@@TE )@@G@@C BJTS @[@[@@C @^@[@@ 250 LOC=LOCATE(12) @ @[@@ 260 IF (LOTF )@@G@@C.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LTG )@@G@@OCV+1)@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) TH )@@G@@@ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ GBPR=VALUE(LOCM+4)*AREA TI )@@G@@@ @[@@ GCPR=VALUE(LOCM+5)*AREA @ @[@@ GEPR=VALUE(LOCM+6)*AREA TJ )@@G@@@A@[@@ XCCS=VALUE(LOCM+17)*AREA*OMEGA@^@[@@ GPI=VALUE(LOCT+4) TK )@@G@@@^@[@@ GMU=VALUE(LOCT+5) @^@[@@ GM=VALUE(LOCT+6) @^@[@@ TL )@@G@@GO=VALUE(LOCT+7) @#@[@@ XGM=0.0 @^@[@@ TD=VALUE(LOCM+29) TM )@@G@@@ @[@@ IF (TD.EQ.0.0) GO TO 270@#@[@@ ARG=TD*OMEGA@#@[@@ TN )@@G@@GM=GM+GO @^@[@@ XGM=-GM*SIN(ARG) @^@[@@ GM=GM*COS(ARG)-GO TO )@@G@@@ @[@@ 270 XCPI=VALUE(LOCT+9)*OMEGA@A@[@@ XCMU=VALUE(LOCT+11)*OMEGTP )@@G@@A @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ CVALUE(LOCY)=CVALUTQ )@@G@@E(LOCY)+GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+25)@A@[@@ CVALUE(LOCY)TR )@@G@@=CVALUE(LOCY)+GBPR@ @[@@ LOCY=LYNL+NODPLC(LOC+26)@A@[@@ CVALUETS )@@G@@(LOCY)=CVALUE(LOCY)+GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@E@[@@ TT )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GMU+GO+GCPR,XCMU+XCCS)@ @[@@ LOCY=LTU )@@G@@YNL+NODPLC(LOC+28)@F@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBPR+GPI+GTV )@@G@@MU,XCPI+XCMU) @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@F@[@@ CVALUETW )@@G@@(LOCY)=CVALUE(LOCY)+CMPLX(GPI+GEPR+GM+GO,XCPI+XGM) @ @[@@ LOCY=LTX )@@G@@YNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GCPR@ @[@@ TY )@@G@@LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @[@@TZ )@@G@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GEPRUA )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYUB )@@G@@)-GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@D@[@@ CVALUE(LOCY)=CVALUUC )@@G@@E(LOCY)-CMPLX(GMU-GM,XCMU-XGM)@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@C@[@@UD )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GM+GO,XGM)@ @[@@ LOCY=LYNL+NOUE )@@G@@DPLC(LOC+16)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @[@@ LOCY=LUF )@@G@@YNL+NODPLC(LOC+17)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GMU,XCMU) UG )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+18)@C@[@@ CVALUE(LOCY)=CVALUE(LOCYUH )@@G@@)-CMPLX(GPI,XCPI) @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ CVALUEUI )@@G@@(LOCY)=CVALUE(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ UJ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@D@[@@UK )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GPI+GM,XCPI+XGM)@^@[@@ LOC=NOUL )@@G@@DPLC(LOC) @#@[@@ GO TO 260 @[@[@@C @]@[@@C JFETS @[@[@@UM )@@G@@C @^@[@@ 300 LOC=LOCATE(13) @ @[@@ 310 IF (LOC.EQ.0) GO TO 350 UN )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ UO )@@G@@LOCM=NODPLC(LOC+7)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LUP )@@G@@X0+NODPLC(LOC+19) @ @[@@ GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VUQ )@@G@@ALUE(LOCM+5)*AREA @^@[@@ GM=VALUE(LOCT+5) @^@[@@ GDS=VALUE(LOUR )@@G@@CT+6) @^@[@@ GGS=VALUE(LOCT+7) @ @[@@ XGS=VALUE(LOCT+9)*OMEGA US )@@G@@@^@[@@ GGD=VALUE(LOCT+8) @ @[@@ XGD=VALUE(LOCT+11)*OMEGA@ @[@@UT )@@G@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPRUU )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+21)@D@[@@ CVALUE(LOCY)=CVALUE(LOCYUV )@@G@@)+CMPLX(GGD+GGS,XGD+XGS)@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ UW )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+23)@E@[@@UX )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GDPR+GDS+GGD,XGD) @ @[@@ UY )@@G@@LOCY=LYNL+NODPLC(LOC+24)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GSPRUZ )@@G@@+GDS+GM+GGS,XGS) @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ CVALUEVA )@@G@@(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@C@[@@ VB )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGD,XGD) @ @[@@ LOCY=LYNL+NODPLC(LVC )@@G@@OC+11)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGS,XGS) @ @[@@ VD )@@G@@LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@VE )@@G@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPRVF )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@D@[@@ CVALUE(LOCY)=CVALUE(LOCYVG )@@G@@)-CMPLX(GGD-GM,XGD) @ @[@@ LOCY=LYNL+NODPLC(LOC+15)@B@[@@ VH )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GDS-GM @ @[@@ LOCY=LYNL+NODPLC(LOC+16)VI )@@G@@@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGS+GM,XGS) @ @[@@ VJ )@@G@@LOCY=LYNL+NODPLC(LOC+17)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@VK )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS VL )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@C @]@[@@VM )@@G@@C MOSFETS @[@[@@C @^@[@@ 350 LOC=LOCATE(14) @ @[@@ 360 IF (LOVN )@@G@@C.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ DEVMOD=VALUEVO )@@G@@(LOCV+8) @#@[@@ XNRM=1.0 @#@[@@ XREV=0.0 @A@[@@ VP )@@G@@IF (DEVMOD.GE.0.0) GO TO 370 @#@[@@ XNRM=0.0 @#@[@@ XREV=1VQ )@@G@@.0 @^@[@@ 370 LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) VR )@@G@@@ @[@@ LOCT=LX0+NODPLC(LOC+26) @^@[@@ GDPR=VALUE(LOCM+6)@^@[@@VS )@@G@@ GSPR=VALUE(LOCM+7)@A@[@@ XCGS=VALUE(LOCT+16)*OMEGA @A@[@@VT )@@G@@ XCGD=VALUE(LOCT+18)*OMEGA @A@[@@ XCGB=VALUE(LOCT+20)*OMEGVU )@@G@@A @^@[@@ GM=VALUE(LOCT+7) @^@[@@ GDS=VALUE(LOCT+8) @^@[@@VV )@@G@@ GMBS=VALUE(LOCT+9)@^@[@@ GBD=VALUE(LOCT+10)@ @[@@ XBD=VAVW )@@G@@LUE(LOCT+12)*OMEGA@^@[@@ GBS=VALUE(LOCT+11)@ @[@@ XBS=VALUE(LOVX )@@G@@CT+14)*OMEGA@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ CVALUE(LOCY)VY )@@G@@=CVALUE(LOCY)+GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@E@[@@ CVALUEVZ )@@G@@(LOCY)=CVALUE(LOCY)+CMPLX(0.0,XCGD+XCGS+XCGB) @ @[@@ LOCY=LYNL+NOWA )@@G@@DPLC(LOC+29)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LWB )@@G@@YNL+NODPLC(LOC+30)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBD+GBS,XBWC )@@G@@D+XBS+XCGB) @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@F@[@@ CVALUE(LOCY)WD )@@G@@=CVALUE(LOCY)+CMPLX(GDPR+GDS+GBD+XREV*(GM+GMBS),@#@[@@ 1 XCGD+XBD)WE )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@F@[@@ CVALUE(LOCY)=CVALUE(LOCYWF )@@G@@)+CMPLX(GSPR+GDS+GBS+XNRM*(GM+GMBS),@#@[@@ 1 XCGS+XBS)@ @[@@ WG )@@G@@LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@WH )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLWI )@@G@@X(0.0,XCGB) @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@C@[@@ CVALUE(LOCY)WJ )@@G@@=CVALUE(LOCY)-CMPLX(0.0,XCGD) @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@C@[@@WK )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGS) @ @[@@ LOCY=LYNL+NOWL )@@G@@DPLC(LOC+14)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LWM )@@G@@YNL+NODPLC(LOC+15)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGB) WN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@C@[@@ CVALUE(LOCY)=CVALUE(LOCYWO )@@G@@)-CMPLX(GBD,XBD) @ @[@@ LOCY=LYNL+NODPLC(LOC+17)@C@[@@ CVALUEWP )@@G@@(LOCY)=CVALUE(LOCY)-CMPLX(GBS,XBS) @ @[@@ LOCY=LYNL+NODPLC(LOC+18)WQ )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LWR )@@G@@OC+19)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX((XNRM-XREV)*GM,-XCGD) WS )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@F@[@@ CVALUE(LOCY)=CVALUE(LOCYWT )@@G@@)-CMPLX(GBD-(XNRM-XREV)*GMBS,XBD) @ @[@@ LOCY=LYNL+NODPLC(LOC+21)WU )@@G@@@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) @ @[@@ WV )@@G@@LOCY=LYNL+NODPLC(LOC+22)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX((XNRWW )@@G@@M-XREV)*GM,XCGS) @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@A@[@@ CVALUEWX )@@G@@(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@F@[@@ WY )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GBS+(XNRM-XREV)*GMBS,XBS) @ @[@@ WZ )@@G@@LOCY=LYNL+NODPLC(LOC+25)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XREV*(XA )@@G@@GM+GMBS) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 360 @[@[@@XB )@@G@@C @^@[@@C TRANSMISSION LINES @[@[@@C @^@[@@ 400 LOC=LOCATE(1XC )@@G@@7) @ @[@@ 410 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NODPLC(LOC+1)XD )@@G@@@^@[@@ Z0=VALUE(LOCV+1) @#@[@@ Y0=1.0/Z0 @^@[@@ TD=VALXE )@@G@@UE(LOCV+2) @^@[@@ ARG=-OMEGA*TD @A@[@@ CVAL=CMPLX(COS(ARGXF )@@G@@),SIN(ARG)) @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)XG )@@G@@=CVALUE(LOCY)+Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@^@[@@ CVALUEXH )@@G@@(LOCY)=-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@^@[@@ CVALUE(LOCY)XI )@@G@@=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUXJ )@@G@@E(LOCY)+Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+14)@^@[@@ CVALUE(LOCY)XK )@@G@@=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+15)@^@[@@ CVALUE(LOCY)=-Y0 XL )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@^@[@@ CVALUE(LOCY)=+Y0 @ @[@@XM )@@G@@ LOCY=LYNL+NODPLC(LOC+17)@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ XN )@@G@@LOCY=LYNL+NODPLC(LOC+18)@^@[@@ CVALUE(LOCY)=+Y0 @ @[@@ LOCY=LXO )@@G@@YNL+NODPLC(LOC+19)@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NOXP )@@G@@DPLC(LOC+20)@^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LXQ )@@G@@OC+21)@^@[@@ CVALUE(LOCY)=-CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+22)XR )@@G@@@^@[@@ CVALUE(LOCY)=+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+23)@^@[@@XS )@@G@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@ @[@@ XT )@@G@@CVALUE(LOCY)=-CVAL*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@^@[@@ XU )@@G@@CVALUE(LOCY)=-CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+26)@^@[@@ CVALUEXV )@@G@@(LOCY)=+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@^@[@@ CVALUE(LOCY)XW )@@G@@=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@^@[@@ CVALUE(LOCY)=+1.0 XX )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+29)@ @[@@ CVALUE(LOCY)=-CVAL*Z0 XY )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+31)@^@[@@ CVALUE(LOCY)=-Y0 @ @[@@XZ )@@G@@ LOCY=LYNL+NODPLC(LOC+32)@^@[@@ CVALUE(LOCY)=-Y0 @^@[@@ YA )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 410 @[@[@@C @ @[@@C REORDER RYB )@@G@@IGHT-HAND SIDE @[@[@@C @^@[@@ 1000 DO 1110 I=2,NSTOP @^@[@@ YC )@@G@@J=NODPLC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 1110 YD )@@G@@CONTINUE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)YE )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURN@]@[@@ YF )@@G@@END @ @[@@ SUBROUTINE NOISE(LOCO) @[@[@@C @G@[@@C THIS RYG )@@G@@OUTINE COMPUTES THE NOISE DUE TO VARIOUS CIRCUIT ELEMENTS. @[@[@@C YH )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUYI )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,YJ )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILYK )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWYL )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,YM )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@YN )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, YO )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONYP )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1YQ )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2YR )@@G@@ ITEMNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATEYS )@@G@@,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ YT )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@YU )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@YV )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, YW )@@G@@@F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, YX )@@G@@@F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), YY )@@G@@@#@[@@ 3 IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ YZ )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE ZA )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSZB )@@G@@ION VNO1(12),VNO2(12),VNO3(12),VNO4(12),VNO5(12),VNO6(12) @C@[@@ ZC )@@G@@DIMENSION VNTOT(12),ANAM(12),STRING(5) @ @[@@ DIMENSION TITLN(4)ZD )@@G@@,V(2) @^@[@@ COMPLEX CVAL,C(1) @A@[@@ EQUIVALENCE (C(1),V(1),CZE )@@G@@VAL) @C@[@@ EQUIVALENCE (V(1),VREAL),(V(2),VIMAG) @G@[@@ ZF )@@G@@DATA TITLN / 8HNOISE AN, 8HALYSIS , 8H , 8H / @G@[@@ZG )@@G@@ DATA ALSRB,ALSRC,ALSRE,ALSRS,ALSRD / 2HRB,2HRC,2HRE,2HRS,2HRD / ZH )@@G@@@E@[@@ DATA ALSIB,ALSIC,ALSID,ALSFN / 2HIB,2HIC,2HID,2HFN / @ @[@@ZI )@@G@@ DATA ALSTOT / 5HTOTAL / @A@[@@ DATA ASLASH,ABLNK / 1H/, 1H /ZJ )@@G@@@[@[@@C @[@[@@C @#@[@@ NPRNT=0 @^@[@@ FREQ=OMEGA/TZK )@@G@@WOPI @ @[@@ IF (ICALC.GE.2) GO TO 10@ @[@@ FOURKT=4.0*CHARGE*ZL )@@G@@VT @^@[@@ TWOQ=2.0*CHARGE @ @[@@ NOPOSO=NODPLC(NOSOUT+2) ZM )@@G@@@ @[@@ NONEGO=NODPLC(NOSOUT+3) @^@[@@ KNTLIM=LWIDTH/11 @#@[@@ZN )@@G@@ NKNTR=1 @A@[@@ 10 IF (NOSPRT.EQ.0) GO TO 30 @A@[@@ ZO )@@G@@IF (NKNTR.GT.ICALC) GO TO 30 @#@[@@ NPRNT=1 @^@[@@ NKNTR=ZP )@@G@@NKNTR+NOSPRT@A@[@@ CALL TITLE(0,LWIDTH,1,TITLN) @^@[@@ WRITE ZQ )@@G@@(6,16) FREQ @C@[@@ 16 FORMAT(^0 FREQUENCY = ^,1PE10.3,^ HZ^/)@[@[@@ZR )@@G@@C @A@[@@C OBTAIN ADJOINT CIRCUIT SOLUTION @[@[@@C @#@[@@ 30 ZS )@@G@@VNRMS=0.0 @C@[@@ CVAL=CVALUE(LVN+NOPOSO)-CVALUE(LVN+NONEGO)@B@[@@ZT )@@G@@ VOUT=SQRT(VREAL*VREAL+VIMAG*VIMAG) @ @[@@ VOUT=AMAX1(VOUT,1.ZU )@@G@@0E-20)@B@[@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) @ @[@@ CVALUEZV )@@G@@(LVN+NOPOSO)=-1.0 @ @[@@ CVALUE(LVN+NONEGO)=+1.0 @#@[@@ CALL AZW )@@G@@CASOL @ @[@@ CVALUE(LVN+1)=(0.0,0.0) @[@[@@C @]@[@@C RESISTORSZX )@@G@@@[@[@@C @A@[@@ IF (JELCNT(1).EQ.0) GO TO 200 @#@[@@ ITITLEZY )@@G@@=0 @F@[@@ 91 FORMAT(//^0**** RESISTOR SQUARED NOISE VOLTAGES (SQ V/ZZ )@@G@@HZ)^) @^@[@@ 100 LOC=LOCATE(1) @]@[@@ KNTR=0@ @[@@ 110 IF (LOAA )@@G@@C.EQ.0) GO TO 130 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)AB )@@G@@@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2) AC )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CVALUE(LVN+NODE1)-CAD )@@G@@VALUE(LVN+NODE2) @F@[@@ VNTOT(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURAE )@@G@@KT*VALUE(LOCV+1) @ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ IF (KNAF )@@G@@TR.GE.KNTLIM) GO TO 140 @^@[@@ 120 LOC=NODPLC(LOC) @#@[@@ GO TO AG )@@G@@110 @ @[@@ 130 IF (KNTR.EQ.0) GO TO 200@A@[@@ 140 IF (NPRNT.EQ.0) GOAH )@@G@@ TO 160 @A@[@@ IF (ITITLE.EQ.0) WRITE (6,91) @#@[@@ ITITLEAI )@@G@@=1 @B@[@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @A@[@@ 141 FORMATAJ )@@G@@(////,11X,12(2X,A8)) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KAK )@@G@@NTR) @ @[@@ 151 FORMAT(1H0,A8,1P12E10.3)@]@[@@ 160 KNTR=0@ @[@@ AL )@@G@@IF (LOC.NE.0) GO TO 120 @[@[@@C @]@[@@C DIODES @[@[@@C @A@[@@AM )@@G@@ 200 IF (JELCNT(11).EQ.0) GO TO 300@#@[@@ ITITLE=0 @F@[@@ 201 AN )@@G@@FORMAT(//^0**** DIODE SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@[@@ 210 AO )@@G@@LOC=LOCATE(11) @]@[@@ KNTR=0@ @[@@ 220 IF (LOC.EQ.0) GO TO 240 AP )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ ANAM(KAQ )@@G@@NTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=AR )@@G@@NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NAS )@@G@@ODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(AT )@@G@@LOC+11) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ FNK=VALUE(LOCM+10)AU )@@G@@@^@[@@ FNA=VALUE(LOCM+11)@[@[@@C @^@[@@C OHMIC RESISTANCE AV )@@G@@@[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE3) @G@[@@AW )@@G@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+2)*AREA AX )@@G@@@[@[@@C @B@[@@C JUNCTION SHOT NOISE AND FLICKER NOISE @[@[@@C AY )@@G@@@C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE2) @A@[@@ VTEMP=AZ )@@G@@VREAL*VREAL+VIMAG*VIMAG @C@[@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+1)),1.0BA )@@G@@E-20) @A@[@@ VNO2(KNTR)=VTEMP*TWOQ*ARG @D@[@@ VNO3(KNTR)=VBB )@@G@@TEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @D@[@@ VNTOT(KNTR)=VNO1(KNTR)+VBC )@@G@@NO2(KNTR)+VNO3(KNTR) @ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ BD )@@G@@IF (KNTR.GE.KNTLIM) GO TO 250 @^@[@@ 230 LOC=NODPLC(LOC) @#@[@@ BE )@@G@@GO TO 220 @ @[@@ 240 IF (KNTR.EQ.0) GO TO 300@A@[@@ 250 IF (NPRNT.EQBF )@@G@@.0) GO TO 260 @A@[@@ IF (ITITLE.EQ.0) WRITE (6,201)@#@[@@ BG )@@G@@ITITLE=1 @B@[@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @C@[@@ BH )@@G@@WRITE (6,151) ALSRS,(VNO1(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSIBI )@@G@@D,(VNO2(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO3(I),I=1,KNTBJ )@@G@@R) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@ 260 BK )@@G@@KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 230 @[@[@@C @A@[@@C BIPOLAR JBL )@@G@@UNCTION TRANSISTORS @[@[@@C @A@[@@ 300 IF (JELCNT(12).EQ.0) GO BM )@@G@@TO 400@#@[@@ ITITLE=0 @G@[@@ 301 FORMAT(//^0**** TRANSISTOR SQUBN )@@G@@ARED NOISE VOLTAGES (SQ V/HZ)^) @^@[@@ 310 LOC=LOCATE(12) @]@[@@BO )@@G@@ KNTR=0@ @[@@ 320 IF (LOC.EQ.0) GO TO 340 @#@[@@ KNTR=KNTR+1 BP )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@BQ )@@G@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@BR )@@G@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5) @ @[@@BS )@@G@@ NODE5=NODPLC(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7) @^@[@@BT )@@G@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ BU )@@G@@LOCT=NODPLC(LOC+22) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ FNK=VABV )@@G@@LUE(LOCM+26)@^@[@@ FNA=VALUE(LOCM+27)@[@[@@C @^@[@@C EXTRINSICBW )@@G@@ RESISTANCES@[@[@@C @^@[@@C... BASE RESISTANCE @C@[@@ CVAL=CBX )@@G@@VALUE(LVN+NODE2)-CVALUE(LVN+NODE5) @G@[@@ VNO1(KNTR)=(VREAL*VREAL+BY )@@G@@VIMAG*VIMAG)*FOURKT*VALUE(LOCM+4)*AREA @ @[@@C... COLLECTOR RESISTANBZ )@@G@@CE @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE4) @G@[@@ CA )@@G@@VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA @^@[@@CB )@@G@@C... EMITTER RESISTANCE@C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NOCC )@@G@@DE6) @G@[@@ VNO3(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCMCD )@@G@@+6)*AREA @[@[@@C @C@[@@C BASE CURRENT SHOT NOISE AND FLICKER NOICE )@@G@@SE @[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NODE6) CF )@@G@@@A@[@@ VTEMP=VREAL*VREAL+VIMAG*VIMAG @C@[@@ ARG=AMAX1(ABS(VALUCG )@@G@@E(LX0+LOCT+3)),1.0E-20) @A@[@@ VNO4(KNTR)=VTEMP*TWOQ*ARG @D@[@@CH )@@G@@ VNO5(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @[@[@@C @A@[@@CI )@@G@@C COLLECTOR CURRENT SHOT NOISE @[@[@@C @C@[@@ CVAL=CVALUE(CJ )@@G@@LVN+NODE4)-CVALUE(LVN+NODE6) @G@[@@ VNO6(KNTR)=(VREAL*VREAL+VIMAG*CK )@@G@@VIMAG)*TWOQ*ABS(VALUE(LX0+LOCT+2)) @G@[@@ VNTOT(KNTR)=VNO1(KNTR)+VCL )@@G@@NO2(KNTR)+VNO3(KNTR)+VNO4(KNTR)+VNO5(KNTR)@^@[@@ 1 +VNO6(KNTR) CM )@@G@@@ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ IF (KNTR.GE.KNTLIM) GO TCN )@@G@@O 350 @^@[@@ 330 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @ @[@@ 340 CO )@@G@@IF (KNTR.EQ.0) GO TO 400@A@[@@ 350 IF (NPRNT.EQ.0) GO TO 360 @A@[@@CP )@@G@@ IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ ITITLE=1 @B@[@@ CQ )@@G@@WRITE (6,141) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRB,(VNOCR )@@G@@1(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRC,(VNO2(I),I=1,KNTR) CS )@@G@@@C@[@@ WRITE (6,151) ALSRE,(VNO3(I),I=1,KNTR) @C@[@@ WRITE CT )@@G@@(6,151) ALSIB,(VNO4(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSIC,(VNOCU )@@G@@6(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO5(I),I=1,KNTR) CV )@@G@@@C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@ 360 KNTR=0CW )@@G@@@ @[@@ IF (LOC.NE.0) GO TO 330 @[@[@@C @]@[@@C JFETS @[@[@@CX )@@G@@C @A@[@@ 400 IF (JELCNT(13).EQ.0) GO TO 500@#@[@@ ITITLE=0 CY )@@G@@@F@[@@ 401 FORMAT(//^0**** JFET SQUARED NOISE VOLTAGES (SQ V/HZ)^) CZ )@@G@@@^@[@@ 410 LOC=LOCATE(13) @]@[@@ KNTR=0@ @[@@ 420 IF (LOC.EQ.0DA )@@G@@) GO TO 440 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@DB )@@G@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@DC )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@DD )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @^@[@@DE )@@G@@ LOCM=NODPLC(LOC+7)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ DF )@@G@@LOCT=NODPLC(LOC+19) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ FNK=VADG )@@G@@LUE(LOCM+10)@^@[@@ FNA=VALUE(LOCM+11)@[@[@@C @^@[@@C EXTRINSICDH )@@G@@ RESISTANCES@[@[@@C @^@[@@C... DRAIN RESISTANCE @C@[@@ CVAL=CDI )@@G@@VALUE(LVN+NODE1)-CVALUE(LVN+NODE4) @G@[@@ VNO1(KNTR)=(VREAL*VREAL+DJ )@@G@@VIMAG*VIMAG)*FOURKT*VALUE(LOCM+4)*AREA @^@[@@C... SOURCE RESISTANCE DK )@@G@@@C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE5) @G@[@@ VNO2(KDL )@@G@@NTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA @[@[@@C DM )@@G@@@C@[@@C DRAIN CURRENT SHOT NOISE AND FLICKER NOISE @[@[@@C @C@[@@DN )@@G@@ CVAL=CVALUE(LVN+NODE4)-CVALUE(LVN+NODE5) @A@[@@ VTEMP=VREAL*DO )@@G@@VREAL+VIMAG*VIMAG @E@[@@ VNO3(KNTR)=VTEMP*FOURKT*2.0*ABS(VALUE(LX0+DP )@@G@@LOCT+5))/3.0@C@[@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+3)),1.0E-20) @D@[@@DQ )@@G@@ VNO4(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @F@[@@ VNTOT(DR )@@G@@KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) @ @[@@ VNRMS=DS )@@G@@VNRMS+VNTOT(KNTR) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 450 @^@[@@ 430 DT )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 420 @ @[@@ 440 IF (KNTR.EQ.0) GO DU )@@G@@TO 500@A@[@@ 450 IF (NPRNT.EQ.0) GO TO 460 @A@[@@ IF (ITITLE.EDV )@@G@@Q.0) WRITE (6,401)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,141) (ANADW )@@G@@M(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) DX )@@G@@@C@[@@ WRITE (6,151) ALSRS,(VNO2(I),I=1,KNTR) @C@[@@ WRITE DY )@@G@@(6,151) ALSID,(VNO3(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNODZ )@@G@@4(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) EA )@@G@@@]@[@@ 460 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 430 @[@[@@C @]@[@@EB )@@G@@C MOSFETS @[@[@@C @A@[@@ 500 IF (JELCNT(14).EQ.0) GO TO 600@#@[@@EC )@@G@@ ITITLE=0 @F@[@@ 501 FORMAT(//^0**** MOSFET SQUARED NOISE VOLTAED )@@G@@GES (SQ V/HZ)^) @^@[@@ 510 LOC=LOCATE(14) @]@[@@ KNTR=0@ @[@@EE )@@G@@ 520 IF (LOC.EQ.0) GO TO 540 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NEF )@@G@@ODPLC(LOC+1)@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLCEG )@@G@@(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLCEH )@@G@@(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLCEI )@@G@@(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(EJ )@@G@@LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) @E@[@@ XL=VALUE(LOCV+1)-2EK )@@G@@.0*VALUE(LOCM+20)*VALUE(LOCM+19) @^@[@@ XW=VALUE(LOCV+2) @ @[@@EL )@@G@@ COX=VALUE(LOCM+13)*XW*XL@ @[@@ LOCT=NODPLC(LOC+26) @^@[@@EM )@@G@@ FNK=VALUE(LOCM+27)@^@[@@ FNA=VALUE(LOCM+28)@#@[@@ FNB=1.EN )@@G@@0 @[@[@@C @^@[@@C EXTRINSIC RESISTANCES@[@[@@C @^@[@@C... EO )@@G@@DRAIN RESISTANCE @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE5) EP )@@G@@@F@[@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+6) EQ )@@G@@@^@[@@C... SOURCE RESISTANCE @C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(ER )@@G@@LVN+NODE6) @F@[@@ VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUES )@@G@@E(LOCM+7) @[@[@@C @C@[@@C DRAIN CURRENT SHOT NOISE AND FLICKER NOET )@@G@@ISE @[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NODE6) EU )@@G@@@A@[@@ VTEMP=VREAL*VREAL+VIMAG*VIMAG @E@[@@ VNO3(KNTR)=VTEMP*FEV )@@G@@OURKT*ABS(VALUE(LX0+LOCT+7))/1.5 @C@[@@ ARG=AMAX1(ABS(VALUE(LX0+EW )@@G@@LOCT+4)),1.0E-20) @C@[@@ VNO4(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG)) EX )@@G@@@A@[@@ 1 /(EXP(FNB*ALOG(FREQ))*COX) @F@[@@ VNTOT(KNTR)=VNO1(KEY )@@G@@NTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) @ @[@@ VNRMS=VNRMS+VNTOT(EZ )@@G@@KNTR) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 550 @^@[@@ 530 LOC=NODPLC(LFA )@@G@@OC) @#@[@@ GO TO 520 @ @[@@ 540 IF (KNTR.EQ.0) GO TO 600@A@[@@FB )@@G@@ 550 IF (NPRNT.EQ.0) GO TO 560 @A@[@@ IF (ITITLE.EQ.0) WRITE (FC )@@G@@6,501)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,141) (ANAM(I),I=1,KNTFD )@@G@@R) @C@[@@ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) @C@[@@ FE )@@G@@WRITE (6,151) ALSRS,(VNO2(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSIFF )@@G@@D,(VNO3(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO4(I),I=1,KNTFG )@@G@@R) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@ 560 FH )@@G@@KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 530 @[@[@@C @B@[@@C COMPUTE EFI )@@G@@QUIVALENT INPUT NOISE VOLTAGE @[@[@@C @^@[@@ 600 VNOUT=SQRT(VNRMS) FJ )@@G@@@^@[@@ VNIN=VNOUT/VOUT @A@[@@ IF (NPRNT.EQ.0) GO TO 620 FK )@@G@@@#@[@@ DO 610 I=1,5@^@[@@ STRING(I)=ABLNK @#@[@@ 610 CONTINFL )@@G@@UE @#@[@@ IOUTYP=1 @]@[@@ IPOS=1@C@[@@ CALL OUTNAM(FM )@@G@@NOSOUT,IOUTYP,STRING,IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ASLASH,1FN )@@G@@,1) @#@[@@ IPOS=IPOS+1 @ @[@@ LOCV=NODPLC(NOSIN+1) @^@[@@FO )@@G@@ ANAM1=VALUE(LOCV) @B@[@@ CALL MOVE(STRING,IPOS,ANAM1,1,8) FP )@@G@@@D@[@@ WRITE (6,611) VNRMS,VNOUT,STRING,VOUT,ANAM1,VNIN@#@[@@ 611 FQ )@@G@@FORMAT(////,@G@[@@ 1 ^0**** TOTAL OUTPUT NOISE VOLTAGE^,9X,^= ^,1PFR )@@G@@E10.3,^ SQ V/HZ^/,@B@[@@ 2 1H0,40X,^= ^,E10.3,^ V/RT HZ^/, @C@[@@FS )@@G@@ 3 ^0 TRANSFER FUNCTION VALUE:^/, @A@[@@ 4 1H0,7X,4AFT )@@G@@8,A1,^= ^,E10.3,/,@G@[@@ 5 ^0 EQUIVALENT INPUT NOISE AT ^,A8,^FU )@@G@@ = ^,E10.3,^ /RT HZ^) @[@[@@C @^@[@@C SAVE NOISE OUTPUTS @[@[@@FV )@@G@@C @^@[@@ 620 LOC=LOCATE(44) @ @[@@ 630 IF (LOC.EQ.0) GO TO 1000FW )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ IF (NODPLC(LOC+5).NE.2) GO TO FX )@@G@@640 @ @[@@ CVALUE(LOCO+ISEQ)=VNOUT @#@[@@ GO TO 650 @ @[@@FY )@@G@@ 640 CVALUE(LOCO+ISEQ)=VNIN @^@[@@ 650 LOC=NODPLC(LOC) @#@[@@ FZ )@@G@@GO TO 630 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 RETURNGA )@@G@@@]@[@@ END @^@[@@ SUBROUTINE ACASOL @[@[@@C @G@[@@C GB )@@G@@THIS ROUTINE EVALUATES THE RESPONSE OF THE ADJOINT CIRCUIT BY @G@[@@GC )@@G@@C DOING A FORWARD/BACKWARD SUBSTITUTION STEP USING THE TRANSPOSE OF THE GD )@@G@@@B@[@@C CIRCUIT EQUATION COEFFICIENT MATRIX. @[@[@@C @G@[@@ GE )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@GF )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, GG )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFGH )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACGI )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,GJ )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONGK )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1GL )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ COMMON /BLANK/ VALGM )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@GN )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @G@[@@C EVAGO )@@G@@LUATES ADJOINT RESPONSE BY DOING FORWARD/BACKWARD SUBSTITUTION ON @A@[@@GP )@@G@@C THE TRANSPOSE OF THE Y MATRIX @[@[@@C @[@[@@C @^@[@@C FORGQ )@@G@@WARD SUBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSTOP @ @[@@ GR )@@G@@IO=NODPLC(IORDER+I) @D@[@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)/CVALUEGS )@@G@@(LYNL+IO) @ @[@@ JSTART=NODPLC(IUR+I) @ @[@@ JSTOP=NODPLCGT )@@G@@(IUR+I+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @C@[@@ IF (REGU )@@G@@AL(CVALUE(LVN+IO)).NE.0.0) GO TO 5 @C@[@@ IF (AIMAG(CVALUE(LVN+IO)GV )@@G@@).EQ.0.0) GO TO 20@ @[@@ 5 DO 10 J=JSTART,JSTOP @^@[@@ JO=NODGW )@@G@@PLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) @F@[@@ CVALUE(LVN+JGX )@@G@@O)=CVALUE(LVN+JO)-CVALUE(LYU+J)*CVALUE(LVN+IO) @#@[@@ 10 CONTINUE GY )@@G@@@#@[@@ 20 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@GZ )@@G@@C @#@[@@ K=NSTOP+1 @^@[@@ DO 40 I=2,NSTOP @]@[@@ HA )@@G@@K=K-1 @ @[@@ IO=NODPLC(IORDER+K) @ @[@@ JSTART=NODPLC(ILC+HB )@@G@@K) @ @[@@ JSTOP=NODPLC(ILC+K+1)-1 @A@[@@ IF (JSTART.GT.JSTOHC )@@G@@P) GO TO 40 @ @[@@ DO 30 J=JSTART,JSTOP @^@[@@ JO=NODPLC(ILHD )@@G@@R+J) @ @[@@ JO=NODPLC(IORDER+JO) @F@[@@ CVALUE(LVN+IO)=CVAHE )@@G@@LUE(LVN+IO)-CVALUE(LYL+J)*CVALUE(LVN+JO) @#@[@@ 30 CONTINUE @#@[@@HF )@@G@@ 40 CONTINUE @[@[@@C @ @[@@C REORDER RIGHT-HAND SIDE @[@[@@HG )@@G@@C @^@[@@ DO 50 I=2,NSTOP @^@[@@ J=NODPLC(ISWAP+I) @A@[@@HH )@@G@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 50 CONTINUE @D@[@@ HI )@@G@@CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@[@@C @]@[@@C FINHJ )@@G@@ISHED @[@[@@C @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUHK )@@G@@TINE DINIT @[@[@@C @G@[@@C THIS ROUTINE PERFORMS STORAGE-ALLOCAHL )@@G@@TION AND ONE-TIME COMPUTATION @D@[@@C NEEDED TO DO THE SMALL-SIGNAL DISTHM )@@G@@ORTION ANALYSIS. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,HN )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOHO )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NHP )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISHQ )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0HR )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5HS )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50HT )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IHU )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)HV )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXHW )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONHX )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1HY )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @[@@ HZ )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEIA )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@IB )@@G@@C @[@[@@C @ @[@@ CALL GETMEM(LD0,NDIST) @A@[@@ CALL GIC )@@G@@ETMEM(LD1,2*(5*NSTOP)) @[@[@@C @A@[@@C BIPOLAR JUNCTION TRANSISTORID )@@G@@S @[@[@@C @^@[@@ LOC=LOCATE(12) @ @[@@ 100 IF (LOC.EQ.0IE )@@G@@) GO TO 200 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)IF )@@G@@@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@IG )@@G@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ LOCD=LD0+NODPLC(LOC+23) @ @[@@IH )@@G@@ CSAT=VALUE(LOCM+3)*AREA @^@[@@ OVA=VALUE(LOCM+7) @^@[@@ II )@@G@@TF=VALUE(LOCM+15) @^@[@@ TR=VALUE(LOCM+16) @ @[@@ CZBE=VALUE(LIJ )@@G@@OCM+18)*AREA@ @[@@ CZBC=VALUE(LOCM+21)*AREA@^@[@@ PE=VALUE(LOCIK )@@G@@M+19) @^@[@@ XME=VALUE(LOCM+20)@^@[@@ PC=VALUE(LOCM+22) @^@[@@IL )@@G@@ XMC=VALUE(LOCM+23)@ @[@@ FCPE=VALUE(LOCM+28) @ @[@@ IM )@@G@@FCPC=VALUE(LOCM+33) @^@[@@ VBE=VALUE(LOCT) @^@[@@ VBC=VAIN )@@G@@LUE(LOCT+1) @^@[@@ GPI=VALUE(LOCT+4) @^@[@@ GO=VALUE(LOCT+7) IO )@@G@@@^@[@@ GM=VALUE(LOCT+6) @^@[@@ GMU=VALUE(LOCT+5) @A@[@@ IP )@@G@@IF (VBE.GT.0.0) GO TO 110 @#@[@@ EVBE=1.0 @^@[@@ CBE=CSIQ )@@G@@AT*VBE/VT @#@[@@ GO TO 120 @^@[@@ 110 EVBE=EXP(VBE/VT) @ @[@@IR )@@G@@ CBE=CSAT*(EVBE-1.0) @A@[@@ 120 IF (VBC.GT.0.0) GO TO 130 IS )@@G@@@#@[@@ EVBC=1.0 @^@[@@ CBC=CSAT*VBC/VT @^@[@@ ARG=1.IT )@@G@@0-VBC/PC @#@[@@ GO TO 140 @^@[@@ 130 EVBC=EXP(VBC/VT) @ @[@@IU )@@G@@ CBC=CSAT*(EVBC-1.0) @A@[@@ 140 IF (VBE.GE.FCPE) GO TO 150 IV )@@G@@@^@[@@ ARG=1.0-VBE/PE @ @[@@ SARG=EXP(XME*ALOG(ARG)) @^@[@@IW )@@G@@ CJEO=CZBE/SARG @#@[@@ ARGBE=PE-VBE@ @[@@ CJE1=XME*CJEIX )@@G@@O/ARGBE @A@[@@ CJE2=XME*(1.0+XME)*CJE1/ARGBE @#@[@@ GO TO IY )@@G@@160 @B@[@@ 150 DENOM=EXP((1.0+XME)*ALOG(1.0-FCPE)) @ @[@@ CJE1=CIZ )@@G@@ZBE*XME/(DENOM*PE)@#@[@@ CJE2=0.0 @A@[@@ 160 IF (VBC.GE.FCPC) GJA )@@G@@O TO 170 @^@[@@ ARG=1.0-VBC/PC @ @[@@ SARG=EXP(XMC*ALOG(JB )@@G@@ARG)) @^@[@@ CJCO=CZBC/SARG @#@[@@ ARGBC=PC-VBC@ @[@@ JC )@@G@@CJC1=XMC*CJCO/ARGBC @A@[@@ CJC2=XMC*(1.0+XMC)*CJC1/ARGBC @#@[@@JD )@@G@@ GO TO 180 @B@[@@ 170 DENOM=EXP((1.0+XMC)*ALOG(1.0-FCPC)) @ @[@@JE )@@G@@ CJC1=CZBC*XMC/(DENOM*PC)@#@[@@ CJC2=0.0 @#@[@@ 180 TWOVT=JF )@@G@@VT+VT @B@[@@ GO2=(-GO+CSAT*(EVBE+EVBC)*OVA)/TWOVT@A@[@@ GMO2=(JG )@@G@@CBE+CSAT)*OVA/VT-2.0*GO2@A@[@@ GM2=(GM+GO)/TWOVT-GMO2-GO2 @^@[@@JH )@@G@@ GMU2=GMU/TWOVT @ @[@@ IF (VBC.LE.0.0) GMU2=0.0@^@[@@ JI )@@G@@GPI2=GPI/TWOVT @ @[@@ IF (VBE.LE.0.0) GPI2=0.0@ @[@@ CBO=TFJJ )@@G@@*CSAT*EVBE/VT @ @[@@ CBOR=TR*CSAT*EVBC/VT @#@[@@ CB1=CBJK )@@G@@O/VT @#@[@@ CB1R=CBOR/VT@#@[@@ TRIVT=3.0*VT@C@[@@ GO3=-(JL )@@G@@GO2+(CBC+CSAT)*OVA/TWOVT)/TRIVT @^@[@@ GMO23=-3.0*GO3 @C@[@@JM )@@G@@ GM2O3=-GMO23+(CBE+CSAT)*OVA/(VT*TWOVT) @B@[@@ GM3=(GM2-(CBJN )@@G@@E-CBC)*OVA/TWOVT)/TRIVT @^@[@@ GMU3=GMU2/TRIVT @^@[@@ GPI3=GJO )@@G@@PI2/TRIVT @^@[@@ CB2=CB1/TWOVT @^@[@@ CB2R=CB1R/TWOVT JP )@@G@@@^@[@@ VALUE(LOCD)=CJE1 @^@[@@ VALUE(LOCD+1)=CJE2@^@[@@ JQ )@@G@@VALUE(LOCD+2)=CJC1@^@[@@ VALUE(LOCD+3)=CJC2@^@[@@ VALUE(LOCD+4JR )@@G@@)=GO2 @^@[@@ VALUE(LOCD+5)=GMO2@^@[@@ VALUE(LOCD+6)=GM2 @^@[@@JS )@@G@@ VALUE(LOCD+7)=GMU2@^@[@@ VALUE(LOCD+8)=GPI2@^@[@@ VALUE(JT )@@G@@LOCD+9)=CBO @ @[@@ VALUE(LOCD+10)=CBOR @^@[@@ VALUE(LOCD+1JU )@@G@@1)=CB1@ @[@@ VALUE(LOCD+12)=CB1R @^@[@@ VALUE(LOCD+13)=GO3JV )@@G@@@ @[@@ VALUE(LOCD+14)=GMO23 @ @[@@ VALUE(LOCD+15)=GM2O3 JW )@@G@@@^@[@@ VALUE(LOCD+16)=GM3@ @[@@ VALUE(LOCD+17)=GMU3 @ @[@@JX )@@G@@ VALUE(LOCD+18)=GPI3 @^@[@@ VALUE(LOCD+19)=CB2@ @[@@ JY )@@G@@VALUE(LOCD+20)=CB2R @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO JZ )@@G@@100 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 200 LOC=LOCATE(1KA )@@G@@1) @ @[@@ 210 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)KB )@@G@@@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+5)@ @[@@ KC )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@ KD )@@G@@LOCD=LD0+NODPLC(LOC+12) @ @[@@ CSAT=VALUE(LOCM+1)*AREA @ @[@@ KE )@@G@@VTE=VALUE(LOCM+3)*VT @^@[@@ TAU=VALUE(LOCM+4) @ @[@@ CZERO=KF )@@G@@VALUE(LOCM+5)*AREA@^@[@@ PHIB=VALUE(LOCM+6)@^@[@@ XM=VALUE(LOCKG )@@G@@M+7) @ @[@@ FCPB=VALUE(LOCM+12) @^@[@@ VD=VALUE(LOCT) KH )@@G@@@^@[@@ GEQ=VALUE(LOCT+2) @#@[@@ EVD=1.0 @A@[@@ IF (VDKI )@@G@@.GE.0.0) EVD=EXP(VD/VTE)@A@[@@ IF (VD.GE.FCPB) GO TO 220 @^@[@@KJ )@@G@@ ARG=1.0-VD/PHIB @ @[@@ SARG=EXP(XM*ALOG(ARG)) @^@[@@ KK )@@G@@CDJO=CZERO/SARG @#@[@@ ARGD=PHIB-VD@^@[@@ CDJ1=XM*CDJO/ARGD KL )@@G@@@A@[@@ CDJ2=XM*(1.0+XM)*CDJ1/ARGD @#@[@@ GO TO 230 @B@[@@KM )@@G@@ 220 DENOM=EXP((1.0+XM)*ALOG(1.0-FCPB)) @A@[@@ CDJ1=CZERO*XM/(DENKN )@@G@@OM*PHIB) @#@[@@ CDJ2=0.0 @ @[@@ 230 CDBO=TAU*CSAT*EVD/VTE KO )@@G@@@^@[@@ CDB1=CDBO/VTE @^@[@@ TWOVTE=2.0*VTE @^@[@@ KP )@@G@@GEQ2=GEQ/TWOVTE @ @[@@ IF (VD.LE.0.0) GEQ2=0.0 @^@[@@ TRIVTEKQ )@@G@@=3.0*VTE @^@[@@ GEQ3=GEQ2/TRIVTE @^@[@@ CDB2=CDB1/TWOVTE KR )@@G@@@^@[@@ VALUE(LOCD)=CDJ1 @^@[@@ VALUE(LOCD+1)=CDJ2@^@[@@ KS )@@G@@VALUE(LOCD+2)=CDBO@^@[@@ VALUE(LOCD+3)=CDB1@^@[@@ VALUE(LOCD+4KT )@@G@@)=GEQ2@^@[@@ VALUE(LOCD+5)=GEQ3@^@[@@ VALUE(LOCD+6)=CDB2@^@[@@KU )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @]@[@@C FINKV )@@G@@ISHED @[@[@@C @]@[@@ 300 RETURN@]@[@@ END @ @[@@ SUBROUKW )@@G@@TINE DISTO(LOCO) @[@[@@C @F@[@@C THIS ROUTINE PERFORMS THE SMALKX )@@G@@L-SIGNAL DISTORTION ANALYSIS. @[@[@@C @G@[@@ COMMON /TABINF/ IEKY )@@G@@LMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSEKZ )@@G@@NS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNLA )@@G@@ODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3LB )@@G@@ NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@LC )@@G@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, LD )@@G@@@ @[@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3)LE )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE LF )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NLG )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ LH )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@LI )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@LJ )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLLK )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNLL )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /FLAGS/ IPRNTA,IPLM )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ILN )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /AC/ FSTARTLO )@@G@@,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOLP )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZLQ )@@G@@ITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)LR )@@G@@@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@LS )@@G@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALLT )@@G@@UE(1))@[@[@@C @[@[@@C @G@[@@ COMPLEX DIFVN1,DIFVN2,DIFVN3,DLU )@@G@@IFVI1,DIFVI2,DIFVI3,DSGO2,DSGM2, @G@[@@ 1 DSGMU2,DSGPI2,DSCB1,DLV )@@G@@SCB1R,DSCJE1,DSCJC1,DISTO1,DISTO2,DISTO3, @G@[@@ 2 DSGMO2,DGM2O3,DLW )@@G@@GMO23,BEW,CEW,BCW,BE2W,CE2W,BC2W,BEW2,CEW2, @G@[@@ 3 BCW2,BEW1LX )@@G@@2,CEW12,BCW12,DSCDB1,DSCDJ1,DSG2,CVABE,CVABC,CVACE, @^@[@@ 4 CVOLY )@@G@@UT,CVDIST @ @[@@ DIMENSION DISTIT(4) @ @[@@ DIMENSION VDLZ )@@G@@O(2,12) @^@[@@ COMPLEX CVDO(12) @A@[@@ EQUIVALENCE (CVDO(MA )@@G@@1),VDO(1,1))@G@[@@ DATA DISTIT / 8HDISTORTI, 8HON ANALY, 8HSIS MB )@@G@@, 8H / @[@[@@C @[@[@@C @^@[@@ ICVW1=(LD1+1)/2 MC )@@G@@@^@[@@ ICV2W1=ICVW1+NSTOP@^@[@@ ICVW2=ICV2W1+NSTOP@^@[@@ MD )@@G@@ICVW12=ICVW2+NSTOP@ @[@@ ICVADJ=ICVW12+NSTOP @#@[@@ IPRNT=ME )@@G@@0 @ @[@@ IF (ICALC.GE.2) GO TO 10@ @[@@ IDNP=NODPLC(IDIST+MF )@@G@@2) @ @[@@ IDNN=NODPLC(IDIST+3) @ @[@@ LOCV=NODPLC(IDIST+MG )@@G@@1) @ @[@@ RLOAD=1.0/VALUE(LOCV+1) @]@[@@ KNTR=1@ @[@@ 10 MH )@@G@@IF (IDPRT.EQ.0) GO TO 30@A@[@@ IF (KNTR.GT.ICALC) GO TO 30 @#@[@@MI )@@G@@ IPRNT=1 @^@[@@ KNTR=KNTR+IDPRT @A@[@@ CALL TITLE(0MJ )@@G@@,LWIDTH,1,DISTIT) @A@[@@ 30 FREQ1=REAL(CVALUE(LOCO+1)) @^@[@@ MK )@@G@@FREQ2=SKW2*FREQ1 @D@[@@ CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW1+1),ML )@@G@@NSTOP)@D@[@@ CVOUT=CVALUE(ICVW1+IDNP)-CVALUE(ICVW1+IDNN) @A@[@@MM )@@G@@ CALL MAGPHS(CVOUT,OMAG,OPHASE)@[@[@@C @A@[@@C BEGIN THE DISTOMN )@@G@@RTION ANALYSIS @[@[@@C @^@[@@ DO 1000 KDISTO=1,7@^@[@@ MO )@@G@@CVDIST=(0.0,0.0) @D@[@@ GO TO (1000,110,120,130,140,160,170),KDISTMP )@@G@@O @^@[@@ 110 FREQD=2.0*FREQ1 @C@[@@ ARG=SQRT(2.0*RLOAD*REFPRMQ )@@G@@L)/(OMAG*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 @C@[@@ MR )@@G@@WRITE (6,111) FREQ1,FREQD,OMAG,OPHASE @G@[@@ 111 FORMAT (///5X,*2NDMS )@@G@@ HARMONIC DISTORTION*,30X,*FREQ1 = *,1PE9.2, @F@[@@ 1 * HZ*//5MT )@@G@@X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X, @B@[@@ 2 *MAG *,E9MU )@@G@@.3,3X,*PHS *,0PF7.2) @#@[@@ GO TO 200 @^@[@@ 120 FREQD=3.0*FRMV )@@G@@EQ1 @C@[@@ ARG=2.0*RLOAD*REFPRL/(OMAG*OMAG*OMAG) @A@[@@ MW )@@G@@IF (IPRNT.EQ.0) GO TO 200 @C@[@@ WRITE (6,121) FREQ1,FREQD,OMAGMX )@@G@@,OPHASE @G@[@@ 121 FORMAT (1H1,4X,*3RD HARMONIC DISTORTION*,30X,*FRMY )@@G@@EQ1 = *,1PE9.2, @F@[@@ 1 * HZ*//5X,*DISTORTION FREQUENCY *,E9.MZ )@@G@@2,* HZ*,16X, @B@[@@ 2 *MAG *,E9.3,3X,*PHS *,0PF7.2) @#@[@@NA )@@G@@ GO TO 200 @#@[@@ 130 FREQD=FREQ2 @#@[@@ GO TO 200 @^@[@@NB )@@G@@ 140 FREQD=FREQ1-FREQ2 @D@[@@ ARG=SQRT(2.0*RLOAD*REFPRL)*SPW2/(OMANC )@@G@@G*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 @F@[@@ WRITE ND )@@G@@(6,151) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @G@[@@ 151 FORMATNE )@@G@@ (1H1,4X,*2ND ORDER INTERMODULATION DIFFERENCE COMPONENT*, @F@[@@ 1NF )@@G@@ 7X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*// @E@[@@ 2NG )@@G@@ 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@[@@ 3 E9.NH )@@G@@3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@[@@ GO TO NI )@@G@@200 @^@[@@ 160 FREQD=FREQ1+FREQ2 @D@[@@ ARG=SQRT(2.0*RLOAD*REFPRNJ )@@G@@L)*SPW2/(OMAG*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 @F@[@@NK )@@G@@ WRITE (6,161) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @F@[@@NL )@@G@@ 161 FORMAT (1H1,4X,*2ND ORDER INTERMODULATION SUM COMPONENT*, @F@[@@NM )@@G@@ 1 14X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*//@E@[@@NN )@@G@@ 2 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@[@@ 3NO )@@G@@ E9.3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@[@@ NP )@@G@@GO TO 200 @ @[@@ 170 FREQD=2.0*FREQ1-FREQ2 @C@[@@ ARG=2.0*RLOANQ )@@G@@D*REFPRL*SPW2/(OMAG*OMAG*OMAG)@A@[@@ IF (IPRNT.EQ.0) GO TO 200 NR )@@G@@@F@[@@ WRITE (6,171) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS NS )@@G@@@G@[@@ 171 FORMAT (1H1,4X,*3RD ORDER INTERMODULATION DIFFERENCE COMPONENT )@@G@@NT*, @F@[@@ 1 7X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* NU )@@G@@HZ*// @E@[@@ 2 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,NV )@@G@@@F@[@@ 3 E9.3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) NW )@@G@@@[@[@@C @ @[@@C LOAD AND DECOMPOSE Y MATRIX@[@[@@C @^@[@@ 200 NX )@@G@@OMEGA=TWOPI*FREQD @#@[@@ IGOOF=0 @#@[@@ CALL ACLOAD @#@[@@NY )@@G@@ CALL ACDCMP @A@[@@ IF (IGOOF.EQ.0) GO TO 220 @A@[@@ NZ )@@G@@WRITE (6,211) IGOOF,FREQD @G@[@@ 211 FORMAT(^0WARNING: UNDERFLOW ^OA )@@G@@,I4,^ TIME(S) IN DISTORTION ANALYSIS@A@[@@ 1 AT FREQ = ^,1PE9.3,^ HZOB )@@G@@^) @#@[@@ IGOOF=0 @A@[@@ 220 IF (KDISTO.EQ.4) GO TO 710 OC )@@G@@@[@[@@C @ @[@@C OBTAIN ADJOINT SOLUTION @[@[@@C @B@[@@ OD )@@G@@CALL ZERO16(CVALUE(LVN+1),NSTOP) @ @[@@ CVALUE(LVN+IDNP)=-1.0 OE )@@G@@@ @[@@ CVALUE(LVN+IDNN)=+1.0 @#@[@@ CALL ACASOL @ @[@@ OF )@@G@@CVALUE(LVN+1)=(0.0,0.0) @E@[@@ CALL COPY16(CVALUE(LVN+1),CVALUE(ICVOG )@@G@@ADJ+1),NSTOP) @B@[@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) @[@[@@OH )@@G@@C @]@[@@C BJTS @[@[@@C @A@[@@ IF (JELCNT(12).EQ.0) GO OI )@@G@@TO 500@#@[@@ ITITLE=0 @G@[@@ 301 FORMAT (////1X,*BJT DISTORTIONOJ )@@G@@ COMPONENTS*//1X,*NAME*,11X,*GM*, @G@[@@ 1 8X,*GPI*,7X,*GO*,8X,*OK )@@G@@GMU*,6X,*GMO2*,7X,*CB*,8X,*CBR*,7X,*CJE*, @ @[@@ 2 7X,*CJC*,6X,*TOOL )@@G@@TAL*) @G@[@@ 311 FORMAT (////1X,*BJT DISTORTION COMPONENTS*//1X,*NAME*,OM )@@G@@11X,*GM*, @G@[@@ 1 8X,*GPI*,7X,*GO*,8X,*GMU*,6X,*GMO2*,7X,*CB*,8ON )@@G@@X,*CBR*,7X,*CJE*, @D@[@@ 2 7X,*CJC*,6X,*GM203*,5X,*GMO23*,5X,*TOTAOO )@@G@@L*) @^@[@@ 320 LOC=LOCATE(12) @ @[@@ 330 IF (LOC.EQ.0) GO TO 500 OP )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@OQ )@@G@@ LOCD=LD0+NODPLC(LOC+23) @ @[@@ NODE1=NODPLC(LOC+5) @ @[@@OR )@@G@@ NODE2=NODPLC(LOC+6) @ @[@@ NODE3=NODPLC(LOC+7) @^@[@@OS )@@G@@ CJE1=VALUE(LOCD) @^@[@@ CJE2=VALUE(LOCD+1)@^@[@@ CJC1=VOT )@@G@@ALUE(LOCD+2)@^@[@@ CJC2=VALUE(LOCD+3)@^@[@@ GO2=VALUE(LOCD+4) OU )@@G@@@^@[@@ GMO2=VALUE(LOCD+5)@^@[@@ GM2=VALUE(LOCD+6) @^@[@@ OV )@@G@@GMU2=VALUE(LOCD+7)@^@[@@ GPI2=VALUE(LOCD+8)@^@[@@ CB1=VALUE(LOOW )@@G@@CD+11)@ @[@@ CB1R=VALUE(LOCD+12) @^@[@@ GO3=VALUE(LOCD+13)OX )@@G@@@ @[@@ GMO23=VALUE(LOCD+14) @ @[@@ GM2O3=VALUE(LOCD+15) OY )@@G@@@^@[@@ GM3=VALUE(LOCD+16)@ @[@@ GMU3=VALUE(LOCD+17) @ @[@@OZ )@@G@@ GPI3=VALUE(LOCD+18) @^@[@@ CB2=VALUE(LOCD+19)@ @[@@ PA )@@G@@CB2R=VALUE(LOCD+20) @D@[@@ BEW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1PB )@@G@@+NODE3) @D@[@@ CEW=CVALUE(ICVW1+NODE1)-CVALUE(ICVW1+NODE3) PC )@@G@@@D@[@@ BCW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1+NODE1) @A@[@@ PD )@@G@@IF (KDISTO.EQ.2) GO TO 370 @D@[@@ BE2W=CVALUE(ICV2W1+NODE2)-CVALPE )@@G@@UE(ICV2W1+NODE3) @D@[@@ CE2W=CVALUE(ICV2W1+NODE1)-CVALUE(ICV2W1+NOPF )@@G@@DE3) @D@[@@ BC2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE1) @A@[@@PG )@@G@@ IF (KDISTO.EQ.3) GO TO 380 @D@[@@ BEW2=CVALUE(ICVW2+NODE2)PH )@@G@@-CVALUE(ICVW2+NODE3) @D@[@@ CEW2=CVALUE(ICVW2+NODE1)-CVALUE(ICVWPI )@@G@@2+NODE3) @D@[@@ BCW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODE1) PJ )@@G@@@A@[@@ IF (KDISTO.EQ.5) GO TO 390 @A@[@@ IF (KDISTO.EQ.6) GPK )@@G@@O TO 400 @D@[@@ BEW12=CVALUE(ICVW12+NODE2)-CVALUE(ICVW12+NODE3) PL )@@G@@@D@[@@ CEW12=CVALUE(ICVW12+NODE1)-CVALUE(ICVW12+NODE3) @D@[@@ PM )@@G@@BCW12=CVALUE(ICVW12+NODE2)-CVALUE(ICVW12+NODE1) @#@[@@ GO TO 410 PN )@@G@@@[@[@@C @A@[@@C CALCULATE HD2 CURRENT GENERATORS @[@[@@C @^@[@@PO )@@G@@ 370 DIFVN1=0.5*CEW*CEW@^@[@@ DIFVN2=0.5*BEW*BEW@^@[@@ DIFVN3PP )@@G@@=0.5*BCW*BCW@ @[@@ DSGMO2=GMO2*0.5*BEW*CEW @#@[@@ GO TO 420 PQ )@@G@@@[@[@@C @A@[@@C CALCULATE HD3 CURRENT GENERATORS @[@[@@C @ @[@@PR )@@G@@ 380 DIFVI1=0.50*CEW*CE2W @ @[@@ DIFVN1=0.25*CEW*CEW*CEW @ @[@@PS )@@G@@ DIFVI2=0.50*BEW*BE2W @ @[@@ DIFVN2=0.25*BEW*BEW*BEW @ @[@@PT )@@G@@ DIFVI3=0.50*BCW*BC2W @ @[@@ DIFVN3=0.25*BCW*BCW*BCW @B@[@@PU )@@G@@ DSGMO2=GMO2*(BEW*CE2W+BE2W*CEW)*0.5 @#@[@@ GO TO 430 @[@[@@PV )@@G@@C @A@[@@C CALCULATE IM2D CURRENT GENERATORS@[@[@@C @ @[@@ 390 PW )@@G@@DIFVN1=CEW*CONJG(CEW2) @ @[@@ DIFVN2=BEW*CONJG(BEW2) @ @[@@ PX )@@G@@DIFVN3=BCW*CONJG(BCW2) @E@[@@ DSGMO2=GMO2*0.5*(BEW*CONJG(CEW2)+CEWPY )@@G@@*CONJG(BEW2)) @#@[@@ GO TO 420 @[@[@@C @A@[@@C CALCULATEPZ )@@G@@ IM2S CURRENT GENERATORS@[@[@@C @^@[@@ 400 DIFVN1=CEW*CEW2 @^@[@@QA )@@G@@ DIFVN2=BEW*BEW2 @^@[@@ DIFVN3=BCW*BCW2 @B@[@@ DSGMO2QB )@@G@@=GMO2*0.5*(BEW*CEW2+BEW2*CEW) @#@[@@ GO TO 420 @[@[@@C @A@[@@QC )@@G@@C CALCULATE IM3 CURRENT GENERATORS @[@[@@C @C@[@@ 410 DIFVI1=0.5*(QD )@@G@@CE2W*CONJG(CEW2)+CEW*CEW12) @C@[@@ DIFVI2=0.5*(BE2W*CONJG(BEW2)+BQE )@@G@@EW*BEW12) @C@[@@ DIFVI3=0.5*(BC2W*CONJG(BCW2)+BCW*BCW12) @B@[@@QF )@@G@@ DIFVN1=CEW*CEW*CONJG(CEW2)*0.75 @B@[@@ DIFVN2=BEW*BEW*CONQG )@@G@@JG(BEW2)*0.75 @B@[@@ DIFVN3=BCW*BCW*CONJG(BCW2)*0.75 @G@[@@QH )@@G@@ DSGMO2=GMO2*0.5*(CONJG(BEW2)*CE2W+BEW*CEW12+CONJG(CEW2)*BE2W+ QI )@@G@@@^@[@@ 1 CEW*BEW12) @#@[@@ GO TO 430 @[@[@@C @^@[@@QJ )@@G@@ 420 DSGO2=GO2*DIFVN1 @^@[@@ DSGM2=GM2*DIFVN2 @^@[@@ DSGMU2QK )@@G@@=GMU2*DIFVN3@^@[@@ DSGPI2=GPI2*DIFVN2@E@[@@ DSCB1=0.5*CB1*OMEGQL )@@G@@A*CMPLX(-AIMAG(DIFVN2),REAL(DIFVN2))@F@[@@ DSCB1R=0.5*CB1R*OMEGA*CMQM )@@G@@PLX(-AIMAG(DIFVN3),REAL(DIFVN3)) @F@[@@ DSCJE1=0.5*CJE1*OMEGA*CMQN )@@G@@PLX(-AIMAG(DIFVN2),REAL(DIFVN2)) @F@[@@ DSCJC1=0.5*CJC1*OMEGA*CMQO )@@G@@PLX(-AIMAG(DIFVN3),REAL(DIFVN3)) @#@[@@ GO TO 440 @[@[@@C QP )@@G@@@B@[@@ 430 DSGO2=2.0*GO2*DIFVI1+GO3*DIFVN1 @B@[@@ DSGM2=2.0*GMQQ )@@G@@2*DIFVI2+GM3*DIFVN2 @B@[@@ DSGMU2=2.0*GMU2*DIFVI3+GMU3*DIFVN3 QR )@@G@@@B@[@@ DSGPI2=2.0*GPI2*DIFVI2+GPI3*DIFVN2 @C@[@@ DSCB1=OMEGA*QS )@@G@@(CB1*DIFVI2+CB2*DIFVN2/3.0) @C@[@@ DSCB1=CMPLX(-AIMAG(DSCB1),REALQT )@@G@@(DSCB1)) @C@[@@ DSCB1R=OMEGA*(CB1R*DIFVI3+CB2R*DIFVN3/3.0)@C@[@@QU )@@G@@ DSCB1R=CMPLX(-AIMAG(DSCB1R),REAL(DSCB1R)) @C@[@@ DSCJE1=OMEGAQV )@@G@@*(CJE1*DIFVI2+CJE2*DIFVN2/3.0)@C@[@@ DSCJE1=CMPLX(-AIMAG(DSCJE1),REQW )@@G@@AL(DSCJE1)) @C@[@@ DSCJC1=OMEGA*(CJC1*DIFVI3+CJC2*DIFVN3/3.0)@C@[@@QX )@@G@@ DSCJC1=CMPLX(-AIMAG(DSCJC1),REAL(DSCJC1)) @[@[@@C @D@[@@C DETQY )@@G@@ERMINE CONTRIBUTION OF EACH DISTORTION SOURCE @[@[@@C @D@[@@ 440 QZ )@@G@@CVABE=CVALUE(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE3) @D@[@@ CVABC=CVALUERA )@@G@@(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE1) @D@[@@ CVACE=CVALUE(ICVADJ+NODERB )@@G@@1)-CVALUE(ICVADJ+NODE3) @A@[@@ DISTO1=DSGM2+DSGO2+DSGMO2 @A@[@@RC )@@G@@ DISTO2=DSGPI2+DSCB1+DSCJE1 @A@[@@ DISTO3=DSGMU2+DSCB1R+DSCRD )@@G@@JC1 @ @[@@ CVDO(1)=DSGM2*CVACE*ARG @ @[@@ CVDO(2)=DSGPI2*CVARE )@@G@@BE*ARG@ @[@@ CVDO(3)=DSGO2*CVACE*ARG @ @[@@ CVDO(4)=DSGMU2*CVARF )@@G@@BC*ARG@ @[@@ CVDO(5)=DSGMO2*CVACE*ARG@ @[@@ CVDO(6)=DSCB1*CVABRG )@@G@@E*ARG @ @[@@ CVDO(7)=DSCB1R*CVABC*ARG@ @[@@ CVDO(8)=DSCJE1*CVARH )@@G@@BE*ARG@ @[@@ CVDO(9)=DSCJC1*CVABC*ARG@A@[@@ IF (KDISTO.EQ.3) GRI )@@G@@O TO 450 @A@[@@ IF (KDISTO.EQ.7) GO TO 460 @G@[@@ CVDO(1RJ )@@G@@0)=CVDO(1)+CVDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @^@[@@ 1RK )@@G@@ CVDO(8)+CVDO(9)@ @[@@ CVDIST=CVDIST+CVDO(10) @A@[@@ IF (IPRL )@@G@@RNT.EQ.0) GO TO 480 @^@[@@ DO 445 J=1,10 @A@[@@ CALL MRM )@@G@@AGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@[@@ 445 RN )@@G@@CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ ITITLERO )@@G@@=1 @D@[@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,10) @A@[@@RP )@@G@@ 446 FORMAT(1H0,A8,*MAG*,1P12E10.3)@B@[@@ WRITE (6,447) (VDO(2,J),RQ )@@G@@J=1,10) @B@[@@ 447 FORMAT(9X,*PHS*,12(1X,F7.2,2X)) @#@[@@ RR )@@G@@GO TO 480 @A@[@@ 450 DGM2O3=GM2O3*CEW*BEW*BEW*0.25 @A@[@@ DGMO23RS )@@G@@=GMO23*BEW*CEW*CEW*0.25 @#@[@@ GO TO 470 @G@[@@ 460 DGM2O3=GM2O3RT )@@G@@*(0.5*BEW*CONJG(BEW2)*CEW+0.25*BEW*BEW*CONJG(CEW2)) @G@[@@ DGMO23RU )@@G@@=GMO23*(0.5*CEW*CONJG(CEW2)*BEW+0.25*CEW*CEW*CONJG(BEW2)) @A@[@@ 470 RV )@@G@@DISTO1=DISTO1+DGM2O3+DGMO23 @A@[@@ CVDO(10)=DGM2O3*CVACE*ARG RW )@@G@@@A@[@@ CVDO(11)=DGMO23*CVACE*ARG @G@[@@ CVDO(12)=CVDO(1)+CRX )@@G@@VDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @B@[@@ 1 CVDO(8)+CRY )@@G@@VDO(9)+CVDO(10)+CVDO(11)@ @[@@ CVDIST=CVDIST+CVDO(12) @A@[@@ RZ )@@G@@IF (IPRNT.EQ.0) GO TO 480 @^@[@@ DO 475 J=1,12 @A@[@@ SA )@@G@@CALL MAGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@[@@SB )@@G@@ 475 CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (6,311)@#@[@@ SC )@@G@@ITITLE=1 @D@[@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,12) SD )@@G@@@B@[@@ WRITE (6,447) (VDO(2,J),J=1,12) @E@[@@ 480 CVALUE(LVN+NSE )@@G@@ODE1)=CVALUE(LVN+NODE1)-DISTO1+DISTO3 @E@[@@ CVALUE(LVN+NODE2)=SF )@@G@@CVALUE(LVN+NODE2)-DISTO2-DISTO3 @E@[@@ CVALUE(LVN+NODE3)=CVALUESG )@@G@@(LVN+NODE3)+DISTO1+DISTO2 @^@[@@ LOC=NODPLC(LOC) @#@[@@ SH )@@G@@GO TO 330 @[@[@@C @^@[@@C JUNCTION DIODES @[@[@@C @A@[@@SI )@@G@@ 500 IF (JELCNT(11).EQ.0) GO TO 700@#@[@@ ITITLE=0 @F@[@@ 501 SJ )@@G@@FORMAT (////1X,*DIODE DISTORTION COMPONENTS*//1X,*NAME*, @C@[@@ 1SK )@@G@@ 11X,*GEQ*,7X,*CB*,8X,*CJ*,7X,*TOTAL*) @^@[@@ 510 LOC=LOCATE(11) SL )@@G@@@ @[@@ 520 IF (LOC.EQ.0) GO TO 700 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@SM )@@G@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@SN )@@G@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+5)@ @[@@ SO )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@ SP )@@G@@LOCD=LD0+NODPLC(LOC+12) @^@[@@ CDJ1=VALUE(LOCD) @^@[@@ CDJ2=VSQ )@@G@@ALUE(LOCD+1)@^@[@@ CDB1=VALUE(LOCD+3)@^@[@@ GEQ2=VALUE(LOCD+4)SR )@@G@@@^@[@@ GEQ3=VALUE(LOCD+5)@^@[@@ CDB2=VALUE(LOCD+6)@D@[@@ SS )@@G@@BEW=CVALUE(ICVW1+NODE3)-CVALUE(ICVW1+NODE2) @A@[@@ IF (KDISTO.EST )@@G@@Q.2) GO TO 540 @D@[@@ BE2W=CVALUE(ICV2W1+NODE3)-CVALUE(ICV2W1+NOSU )@@G@@DE2) @A@[@@ IF (KDISTO.EQ.3) GO TO 550 @D@[@@ BEW2=CVALUE(SV )@@G@@ICVW2+NODE3)-CVALUE(ICVW2+NODE2) @A@[@@ IF (KDISTO.EQ.5) GO TO 5SW )@@G@@60 @A@[@@ IF (KDISTO.EQ.6) GO TO 570 @D@[@@ BEW12=CVALUESX )@@G@@(ICVW12+NODE3)-CVALUE(ICVW12+NODE2) @#@[@@ GO TO 580 @[@[@@C SY )@@G@@@B@[@@C CALCULATE HD2 CURRENT GENERATORS @[@[@@C @^@[@@ 540 SZ )@@G@@DIFVN1=0.5*BEW*BEW@#@[@@ GO TO 590 @[@[@@C @B@[@@C CALCULATA )@@G@@TE HD3 CURRENT GENERATORS @[@[@@C @ @[@@ 550 DIFVI1=0.5*BEW*BE2TB )@@G@@W @ @[@@ DIFVN1=0.25*BEW*BEW*BEW @#@[@@ GO TO 600 @[@[@@TC )@@G@@C @B@[@@C CALCULATE IM2D CURRENT GENERATORS @[@[@@C @ @[@@TD )@@G@@ 560 DIFVN1=BEW*CONJG(BEW2) @#@[@@ GO TO 590 @[@[@@C @B@[@@TE )@@G@@C CALCULATE IM2S CURRENT GENERATORS @[@[@@C @^@[@@ 570 DIFVN1TF )@@G@@=BEW*BEW2 @#@[@@ GO TO 590 @[@[@@C @B@[@@C CALCULATE IM3TG )@@G@@ CURRENT GENERATORS @[@[@@C @C@[@@ 580 DIFVI1=0.5*(BE2W*CONJG(BTH )@@G@@EW2)+BEW*BEW12) @B@[@@ DIFVN1=BEW*BEW*CONJG(BEW2)*0.75 @#@[@@TI )@@G@@ GO TO 600 @^@[@@ 590 DSG2=GEQ2*DIFVN1 @F@[@@ DSCDB1=0.5*CTJ )@@G@@DB1*OMEGA*CMPLX(-AIMAG(DIFVN1),REAL(DIFVN1)) @F@[@@ DSCDJ1=0.5*CTK )@@G@@DJ1*OMEGA*CMPLX(-AIMAG(DIFVN1),REAL(DIFVN1)) @#@[@@ GO TO 610 TL )@@G@@@[@[@@C @B@[@@ 600 DSG2=2.0*GEQ2*DIFVI1+GEQ3*DIFVN1 @C@[@@ TM )@@G@@DSCDB1=OMEGA*(CDB1*DIFVI1+CDB2*DIFVN1/3.0)@C@[@@ DSCDB1=CMPLX(-AIMATN )@@G@@G(DSCDB1),REAL(DSCDB1)) @C@[@@ DSCDJ1=OMEGA*(CDJ1*DIFVI1+CDJ2*DIFVNTO )@@G@@1/3.0)@C@[@@ DSCDJ1=CMPLX(-AIMAG(DSCDJ1),REAL(DSCDJ1)) @[@[@@C TP )@@G@@@D@[@@C DETERMINE CONTRIBUTION OF EACH DISTORTION SOURCE @[@[@@C TQ )@@G@@@D@[@@ 610 CVABE=CVALUE(ICVADJ+NODE3)-CVALUE(ICVADJ+NODE2) @A@[@@ TR )@@G@@DISTO1=DSG2+DSCDB1+DSCDJ1 @ @[@@ CVDO(1)=DSG2*CVABE*ARG @ @[@@TS )@@G@@ CVDO(2)=DSCDB1*CVABE*ARG@ @[@@ CVDO(3)=DSCDJ1*CVABE*ARG@B@[@@TT )@@G@@ CVDO(4)=CVDO(1)+CVDO(2)+CVDO(3) @ @[@@ CVDIST=CVDIST+CVDOTU )@@G@@(4) @A@[@@ IF (IPRNT.EQ.0) GO TO 680 @#@[@@ DO 670 J=1,4TV )@@G@@@A@[@@ CALL MAGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLX(XMAGTW )@@G@@,XPHS)@#@[@@ 670 CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (6,501)TX )@@G@@@#@[@@ ITITLE=1 @C@[@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),TY )@@G@@J=1,4)@A@[@@ WRITE (6,447) (VDO(2,J),J=1,4)@C@[@@ 680 CVALUE(LVN+NTZ )@@G@@ODE2)=CVALUE(LVN+NODE2)+DISTO1@C@[@@ CVALUE(LVN+NODE3)=CVALUE(LVN+NUA )@@G@@ODE3)-DISTO1@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 520 @[@[@@UB )@@G@@C @C@[@@C OBTAIN TOTAL DISTORTION SOLUTION IF NECESSARY@[@[@@C UC )@@G@@@D@[@@ 700 GO TO (1000,710,790,710,710,840,860),KDISTO @A@[@@ 710 UD )@@G@@IF (KDISTO.EQ.4) GO TO 730 @^@[@@ DO 720 I=2,NSTOP @^@[@@ UE )@@G@@J=NODPLC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 720 UF )@@G@@CONTINUE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)UG )@@G@@@#@[@@ 730 CALL ACSOL @ @[@@ CVALUE(LVN+1)=(0.0,0.0) @[@[@@C UH )@@G@@@B@[@@C STORE SOLUTION, PRINT AND STORE ANSWERS@[@[@@C @D@[@@ 760 UI )@@G@@GO TO (1000,770,790,800,820,840,860),KDISTO @E@[@@ 770 CALL COPY16(UJ )@@G@@CVALUE(LVN+1),CVALUE(ICV2W1+1),NSTOP) @B@[@@ CALL MAGPHS(CVDISTUK )@@G@@,O2MAG,O2PHS) @A@[@@ IF (IPRNT.EQ.0) GO TO 900 @ @[@@ UL )@@G@@O2LOG=20.0*ALOG10(O2MAG)@B@[@@ WRITE (6,781) O2MAG,O2PHS,O2LOG UM )@@G@@@G@[@@ 781 FORMAT (///5X,*HD2 MAGNITUDE *,1PE10.3,5X,*PHASE *,0PFUN )@@G@@7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)@#@[@@ GO TO 900 @B@[@@UO )@@G@@ 790 CALL MAGPHS(CVDIST,O3MAG,O3PHS) @A@[@@ IF (IPRNT.EQ.0) GOUP )@@G@@ TO 900 @ @[@@ O3LOG=20.0*ALOG10(O3MAG)@B@[@@ WRITE (6,791UQ )@@G@@) O3MAG,O3PHS,O3LOG @G@[@@ 791 FORMAT (///5X,*HD3 MAGNITUDE *,UR )@@G@@1PE10.3,5X,*PHASE *,0PF7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)@#@[@@US )@@G@@ GO TO 900 @D@[@@ 800 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW2+1),UT )@@G@@NSTOP)@D@[@@ CVOUT=CVALUE(ICVW2+IDNP)-CVALUE(ICVW2+IDNN) @B@[@@UU )@@G@@ CALL MAGPHS(CVOUT,OW2MAG,OW2PHS) @#@[@@ GO TO 1000 @E@[@@UV )@@G@@ 820 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW12+1),NSTOP) @B@[@@ 840 UW )@@G@@CALL MAGPHS(CVDIST,O12MAG,O12PHS) @A@[@@ IF (IPRNT.EQ.0) GO TO 90UX )@@G@@0 @A@[@@ O12LOG=20.0*ALOG10(O12MAG) @A@[@@ IF (KDISTO.EUY )@@G@@Q.6) GO TO 850 @B@[@@ WRITE (6,841) O12MAG,O12PHS,O12LOG @G@[@@UZ )@@G@@ 841 FORMAT (///5X,*IM2D MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, VA )@@G@@@ @[@@ 1 5X,*= *,F7.2,* DB*)@#@[@@ GO TO 900 @B@[@@ 850 VB )@@G@@WRITE (6,851) O12MAG,O12PHS,O12LOG @G@[@@ 851 FORMAT (///5X,*IM2S MVC )@@G@@AGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @[@@ 1 5X,*= *,F7.2,*VD )@@G@@ DB*)@#@[@@ GO TO 900 @B@[@@ 860 CALL MAGPHS(CVDIST,O21MAG,O21PVE )@@G@@HS) @A@[@@ IF (IPRNT.EQ.0) GO TO 900 @A@[@@ O21LOG=20.0*VF )@@G@@ALOG10(O21MAG) @B@[@@ WRITE (6,861) O21MAG,O21PHS,O21LOG @G@[@@VG )@@G@@ 861 FORMAT (///5X,*IM3 MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, VH )@@G@@@ @[@@ 1 5X,*= *,F7.2,* DB*)@D@[@@ CMA=ABS(4.0*O21MAG*COS((VI )@@G@@O21PHS-OPHASE)/RAD)) @ @[@@ CMA=AMAX1(CMA,1.0E-20) @D@[@@ VJ )@@G@@CMP=ABS(4.0*O21MAG*SIN((O21PHS-OPHASE)/RAD)) @ @[@@ CMP=AMAX1(CMVK )@@G@@P,1.0E-20) @ @[@@ CMALOG=20.0*ALOG10(CMA) @ @[@@ CMPLOG=20.0*VL )@@G@@ALOG10(CMP) @^@[@@ WRITE (6,866) @F@[@@ 866 FORMAT (////5X,*APVM )@@G@@PROXIMATE CROSS MODULATION COMPONENTS*) @ @[@@ WRITE (6,871) CMA,VN )@@G@@CMALOG@G@[@@ 871 FORMAT (/5X,*CMA MAGNITUDE *,1PE10.3,24X,*= *,0PVO )@@G@@F7.2,* DB*)@ @[@@ WRITE (6,881) CMP,CMPLOG@G@[@@ 881 FORMAT (/5X,VP )@@G@@*CMP MAGNITUDE *,1PE10.3,24X,*= *,0PF7.2,* DB*)@[@[@@C @ @[@@VQ )@@G@@C SAVE DISTORTION OUTPUTS @[@[@@C @^@[@@ 900 IFLAG=KDISTO+2 VR )@@G@@@A@[@@ IF (IFLAG.GE.7) IFLAG=IFLAG-1 @^@[@@ LOC=LOCATE(45) VS )@@G@@@ @[@@ 910 IF (LOC.EQ.0) GO TO 1000@C@[@@ IF (NODPLC(LOC+5).NE.IFLVT )@@G@@AG) GO TO 920 @^@[@@ ISEQ=NODPLC(LOC+4)@ @[@@ CVALUE(LOCO+VU )@@G@@ISEQ)=CVDIST@^@[@@ 920 LOC=NODPLC(LOC) @#@[@@ GO TO 910 @#@[@@VV )@@G@@ 1000 CONTINUE @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 2000 VW )@@G@@RETURN@]@[@@ END @#@[@@ OVERLAY(7,0)@^@[@@ PROGRAM OVTPVX )@@G@@VT @[@[@@C @G@[@@C THIS ROUTINE GENERATES THE REQUESTED TABULVY )@@G@@AR LISTINGS OF ANALYSIS @E@[@@C RESULTS. IT CALLS PLOT TO GENERATE LINEVZ )@@G@@-PRINTER PLOTS. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,WA )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOWB )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NWC )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISWD )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0WE )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5WF )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50WG )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IWH )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)WI )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXWJ )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONWK )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1WL )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@[@@ WM )@@G@@COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1WN )@@G@@ IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVWO )@@G@@FLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @G@[@@ WP )@@G@@COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@WQ )@@G@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@WR )@@G@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@WS )@@G@@ 3 IPIMAT(4)@F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDWT )@@G@@MAX,FORFRE,JTRFLG @G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,WU )@@G@@XINCR,ITAB(8),ITYPE(8), @C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGWV )@@G@@T @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)WW )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1WX )@@G@@),CVALUE(1))@[@[@@C @#@[@@ COMPLEX CVAL@ @[@@ DIMENSION PRWY )@@G@@FORM(3) @ @[@@ DIMENSION SUBTIT(4,3) @G@[@@ DATA SUBTIT WZ )@@G@@/ 8HDC TRANS, 8HFER CURV, 8HES , 8H , @G@[@@ 1 XA )@@G@@ 8HTRANSIEN, 8HT ANALYS, 8HIS , 8H , @G@[@@ 2XB )@@G@@ 8HAC ANALY, 8HSIS , 8H , 8H / @E@[@@XC )@@G@@ DATA PRFORM / 8H(1PE11.3, 8H,2X,8E00, 8H.00) / @A@[@@ XD )@@G@@DATA APER,RPRN / 1H., 1H) / @[@[@@C @^@[@@ CALL SECOND(T1) XE )@@G@@@A@[@@ IF (ICALC.LE.0) GO TO 1000 @#@[@@ CALL CRUNCH @A@[@@XF )@@G@@ IF (NOGO.LT.0) GO TO 1000 @[@[@@C @F@[@@C CONSTRUCT FORMAXG )@@G@@T STATEMENT TO BE USED FOR PRINTING THE OUTPUTS @[@[@@C @ @[@@ XH )@@G@@IFRACT=MAX0(NUMDGT-1,0) @^@[@@ IFWDTH=IFRACT+9 @#@[@@ IPOS=1XI )@@G@@5 @B@[@@ CALL ALFNUM(IFWDTH,PRFORM,IPOS) @B@[@@ CALL MXJ )@@G@@OVE(PRFORM,IPOS,APER,1,1) @#@[@@ IPOS=IPOS+1 @B@[@@ CALL AXK )@@G@@LFNUM(IFRACT,PRFORM,IPOS) @B@[@@ CALL MOVE(PRFORM,IPOS,RPRN,1,1XL )@@G@@) @[@[@@C @B@[@@ NOPRLN=MIN0(8,(LWIDTH-12)/IFWDTH) @[@[@@XM )@@G@@C @ @[@@ IF (MODE-2) 5,10,300 @ @[@@ 5 NUMOUT=JELCNT(41)+XN )@@G@@1 @#@[@@ GO TO 15 @ @[@@ 10 NUMOUT=JELCNT(42)+1 @[@[@@XO )@@G@@C @B@[@@C DC AND TRANSIENT ANALYSIS PRINTING @[@[@@C @ @[@@XP )@@G@@ 15 LOC=LOCATE(30+MODE) @ @[@@ 20 IF (LOC.EQ.0) GO TO 200 @B@[@@XQ )@@G@@ KNTR=MIN0(NOPRLN,NODPLC(LOC+3)) @ @[@@ IF (KNTR.LE.0) GO XR )@@G@@TO 120@C@[@@ CALL TITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ XS )@@G@@CALL SETPRN(LOC) @[@[@@C @^@[@@C GET BUFFER SPACE @[@[@@C XT )@@G@@@ @[@@ CALL GETMEM(LOCX,NPOINT)@A@[@@ CALL GETMEM(LOCY,KNTR*NPXU )@@G@@OINT) @[@[@@C @^@[@@C INTERPOLATE OUTPUTS @[@[@@C @A@[@@ XV )@@G@@CALL NTRPL8(LOCX,LOCY,NUMPNT) @[@[@@C @#@[@@C PRINT OUTPUTS @[@[@@XW )@@G@@C @^@[@@ DO 100 I=1,NUMPNT @^@[@@ XVAR=VALUE(LOCX+I)@#@[@@XX )@@G@@ LOCYT=LOCY @^@[@@ DO 50 K=1,KNTR @ @[@@ YVAR(K)=VALUXY )@@G@@E(LOCYT+I) @^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 50 CONTINUE @C@[@@XZ )@@G@@ WRITE (6,PRFORM) XVAR,(YVAR(K),K=1,KNTR) @#@[@@ 100 CONTINUE YA )@@G@@@^@[@@ WRITE (6,111) @#@[@@ 111 FORMAT(1HY) @^@[@@ CALL CYB )@@G@@LRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @^@[@@ 120 LOC=NODPLC(LOC) YC )@@G@@@#@[@@ GO TO 20 @[@[@@C @B@[@@C DC AND TRANSIENT ANALYSIS PYD )@@G@@LOTTING @[@[@@C @ @[@@ 200 LOC=LOCATE(35+MODE) @ @[@@ 210 YE )@@G@@IF (LOC.EQ.0) GO TO 250 @^@[@@ KNTR=NODPLC(LOC+3)@ @[@@ IF (KNYF )@@G@@TR.LE.0) GO TO 220@^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CALL TITLE(1YG )@@G@@,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPLT(LOC) @[@[@@C YH )@@G@@@^@[@@C GET BUFFER SPACE @[@[@@C @ @[@@ CALL GETMEM(LOCX,NYI )@@G@@POINT)@A@[@@ CALL GETMEM(LOCY,KNTR*NPOINT) @[@[@@C @C@[@@C INTYJ )@@G@@ERPOLATE OUTPUTS AND LOAD PLOT BUFFERS @[@[@@C @A@[@@ CALL NYK )@@G@@TRPL8(LOCX,LOCY,NUMPNT) @B@[@@ CALL PLOT(NUMPNT,LOCX,LOCY,LOCV) YL )@@G@@@^@[@@ CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @^@[@@ 220 YM )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @^@[@@C FOURIER AYN )@@G@@NALYSIS @[@[@@C @A@[@@ 250 IF (MODE.EQ.1) GO TO 1000 @A@[@@YO )@@G@@ IF (NFOUR.EQ.0) GO TO 1000 @A@[@@ IF (NOGO.NE.0) GO TO 100YP )@@G@@0 @#@[@@ CALL FOURAN @#@[@@ GO TO 1000 @[@[@@C @^@[@@YQ )@@G@@C AC ANALYSIS PRINTING @[@[@@C @C@[@@ 300 NUMOUT=JELCNT(43)+JELCNTYR )@@G@@(44)+JELCNT(45)+1 @^@[@@ DO 599 ID=33,35 @^@[@@ LOC=LOCATE(IYS )@@G@@D) @ @[@@ 320 IF (LOC.EQ.0) GO TO 599 @B@[@@ KNTR=MIN0(NOPRLN,NYT )@@G@@ODPLC(LOC+3)) @ @[@@ IF (KNTR.LE.0) GO TO 595@C@[@@ CALL TYU )@@G@@ITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPRN(LOC) @[@[@@YV )@@G@@C @^@[@@C PRINT AC OUTPUTS @[@[@@C @^@[@@ LOUT=(LOUTPTYW )@@G@@+1)/2 @^@[@@ DO 590 I=1,ICALC @A@[@@ XVAR=REAL(CVALUE(LOUT+1)YX )@@G@@) @^@[@@ DO 500 K=1,KNTR @#@[@@ ISEQ=ITAB(K)@ @[@@ YY )@@G@@ISEQ=NODPLC(ISEQ+4) @ @[@@ CVAL=CVALUE(LOUT+ISEQ) @^@[@@ YZ )@@G@@KTYPE=ITYPE(K) @C@[@@ GO TO (450,450,430,440,450,450), KTYPE ZA )@@G@@@^@[@@ 430 YVAR(K)=REAL(CVAL)@#@[@@ GO TO 500 @ @[@@ 440 YVAR(KZB )@@G@@)=AIMAG(CVAL) @#@[@@ GO TO 500 @A@[@@ 450 CALL MAGPHS(CVAL,XZC )@@G@@MAG,XPHS) @C@[@@ GO TO (460,460,430,440,470,465), KTYPE @#@[@@ZD )@@G@@ 460 YVAR(K)=XMAG@#@[@@ GO TO 500 @A@[@@ 465 YVAR(K)=20.0*ALOG1ZE )@@G@@0(XMAG) @#@[@@ GO TO 500 @#@[@@ 470 YVAR(K)=XPHS@#@[@@ 500 ZF )@@G@@CONTINUE @^@[@@ LOUT=LOUT+NUMOUT @C@[@@ 580 WRITE (6,PRFORM) XZG )@@G@@VAR,(YVAR(K),K=1,KNTR) @#@[@@ 590 CONTINUE @^@[@@ WRITE (6,111ZH )@@G@@) @^@[@@ 595 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @#@[@@ 599 ZI )@@G@@CONTINUE @[@[@@C @^@[@@C AC ANALYSIS PLOTTING @[@[@@C @^@[@@ZJ )@@G@@ DO 760 ID=38,40 @^@[@@ LOC=LOCATE(ID) @ @[@@ 610 IF (LOZK )@@G@@C.EQ.0) GO TO 760 @^@[@@ KNTR=NODPLC(LOC+3)@ @[@@ IF (KNTR.LE.ZL )@@G@@0) GO TO 750@^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CALL TITLE(1,LWIDTZM )@@G@@H,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPLT(LOC) @[@[@@C @ @[@@ZN )@@G@@ CALL GETMEM(LOCX,ICALC) @A@[@@ CALL GETMEM(LOCY,KNTR*ICALC) ZO )@@G@@@[@[@@C @^@[@@C LOAD PLOT BUFFERS @[@[@@C @^@[@@ LOUT=(ZP )@@G@@LOUTPT+1)/2 @^@[@@ DO 710 I=1,ICALC @A@[@@ XVAR=REAL(CVALUE(LZQ )@@G@@OUT+1)) @#@[@@ LOCYT=LOCY @^@[@@ DO 700 K=1,KNTR @#@[@@ZR )@@G@@ ISEQ=ITAB(K)@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ CVAL=CZS )@@G@@VALUE(LOUT+ISEQ) @^@[@@ KTYPE=ITYPE(K) @C@[@@ GO TO (670,6ZT )@@G@@70,650,660,670,670), KTYPE @^@[@@ 650 YVR=REAL(CVAL) @#@[@@ ZU )@@G@@GO TO 695 @^@[@@ 660 YVR=AIMAG(CVAL) @#@[@@ GO TO 695 @A@[@@ZV )@@G@@ 670 CALL MAGPHS(CVAL,XMAG,XPHS) @C@[@@ GO TO (680,680,650,660,6ZW )@@G@@90,685), KTYPE @^@[@@ 680 YVR=ALOG10(XMAG) @#@[@@ GO TO 695 ZX )@@G@@@ @[@@ 685 YVR=20.0*ALOG10(XMAG) @#@[@@ GO TO 695 @#@[@@ 690 ZY )@@G@@YVR=XPHS @^@[@@ 695 VALUE(LOCYT+I)=YVR@^@[@@ LOCYT=LOCYT+ICALC ZZ )@@G@@@#@[@@ 700 CONTINUE @^@[@@ VALUE(LOCX+I)=XVAR@^@[@@ LOUT=LAA )@@G@@OUT+NUMOUT @#@[@@ 710 CONTINUE @B@[@@ CALL PLOT(ICALC,LOCX,LOCAB )@@G@@Y,LOCV) @^@[@@ CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) AC )@@G@@@^@[@@ 750 LOC=NODPLC(LOC) @#@[@@ GO TO 610 @#@[@@ 760 CONTINAD )@@G@@UE @[@[@@C @]@[@@C FINISHED @[@[@@C @ @[@@ 1000 CALL CLRMEM(AE )@@G@@LOUTPT) @^@[@@ CALL SECOND(T2) @A@[@@ RSTATS(11)=RSTATS(AF )@@G@@11)+T2-T1 @]@[@@ RETURN@]@[@@ END @B@[@@ SUBROUTINE NAG )@@G@@TRPL8(LOCX,LOCY,NUMPNT) @[@[@@C @G@[@@C THIS ROUTINE INTERPOLATEAH )@@G@@S THE ANALYSIS DATA TO OBTAIN THE VALUES @G@[@@C PRINTED AND/OR PLOTTEDAI )@@G@@, USING LAGRANGIAN INTERPOLATION WITH A POLYNO- @^@[@@C MIAL OF DEGREE 2AJ )@@G@@. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAAK )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICAL )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERAM )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQAN )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYAO )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPAP )@@G@@OL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)AQ )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXAR )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONAS )@@G@@ /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@[@@ 1AT )@@G@@ ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMON /BLANK/ VALAU )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@AV )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C AW )@@G@@@#@[@@ XVAR=XSTART @^@[@@ XVTOL=XINCR*1.0E-5@#@[@@ IPPNT=AX )@@G@@0 @#@[@@ ICPNT=3 @#@[@@ LOCO1=LOUTPT@^@[@@ LOCO2=AY )@@G@@LOCO1+NUMOUT@^@[@@ LOCO3=LOCO2+NUMOUT@ @[@@ IF (ICALC.LE.2) GOAZ )@@G@@ TO 50@^@[@@ 10 X1=VALUE(LOCO1+1) @^@[@@ X2=VALUE(LOCO2+1) @^@[@@BA )@@G@@ X3=VALUE(LOCO3+1) @#@[@@ DX1X2=X1-X2 @#@[@@ DX1X3=X1-X3 BB )@@G@@@#@[@@ DX2X3=X2-X3 @ @[@@ XDNOM1=1.0/(DX1X2*DX1X3)@A@[@@ BC )@@G@@XDNOM2=-1.0/(DX1X2*DX2X3) @ @[@@ XDNOM3=1.0/(DX2X3*DX1X3)@A@[@@BD )@@G@@ 20 IF (XINCR.LT.0.0) GO TO 24 @B@[@@ IF (XVAR.LE.(X3+XVTOL)) BE )@@G@@GO TO 30 @#@[@@ GO TO 28 @B@[@@ 24 IF (XVAR.GE.(X3+XVTOL)) BF )@@G@@GO TO 30 @A@[@@ 28 IF (ICPNT.GE.ICALC) GO TO 100 @^@[@@ ICPNT=BG )@@G@@ICPNT+1 @#@[@@ LOCO1=LOCO2 @#@[@@ LOCO2=LOCO3 @^@[@@ BH )@@G@@LOCO3=LOCO2+NUMOUT@#@[@@ GO TO 10 @^@[@@ 30 IPPNT=IPPNT+1 BI )@@G@@@ @[@@ VALUE(LOCX+IPPNT)=XVAR @#@[@@ DXX1=XVAR-X1@#@[@@ BJ )@@G@@DXX2=XVAR-X2@#@[@@ DXX3=XVAR-X3@ @[@@ XFACT1=DXX2*DXX3*XDNOM1 BK )@@G@@@ @[@@ XFACT2=DXX1*DXX3*XDNOM2 @ @[@@ XFACT3=DXX1*DXX2*XDNOM3 BL )@@G@@@#@[@@ LOCYT=LOCY @^@[@@ DO 40 I=1,KNTR @#@[@@ ISEQ=IBM )@@G@@TAB(I)@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ V1=VALUE(LOCO1+ISEBN )@@G@@Q) @ @[@@ V2=VALUE(LOCO2+ISEQ) @ @[@@ V3=VALUE(LOCO3+ISEBO )@@G@@Q) @B@[@@ YVR=V1*XFACT1+V2*XFACT2+V3*XFACT3 @C@[@@ TOL=AMBP )@@G@@IN1(ABS(V1),ABS(V2),ABS(V3))*1.0E-10@A@[@@ IF (ABS(YVR).LE.TOL) YVRBQ )@@G@@=0.0 @ @[@@ VALUE(LOCYT+IPPNT)=YVR @^@[@@ LOCYT=LOCYT+NPOINTBR )@@G@@@#@[@@ 40 CONTINUE @A@[@@ IF (IPPNT.GE.NPOINT) GO TO 100@A@[@@BS )@@G@@ XVAR=XSTART+FLOAT(IPPNT)*XINCR@C@[@@ IF (ABS(XVAR).GE.ABS(XVTBT )@@G@@OL)) GO TO 20 @#@[@@ XVAR=0.0 @#@[@@ GO TO 20 @[@[@@BU )@@G@@C @A@[@@C SPECIAL HANDLING IF ICALC @ 2 @[@[@@C @ @[@@ 50 BV )@@G@@IF (ICALC.EQ.2) GO TO 70@E@[@@C... ICALC=1; JUST COPY OVER THE SINGLE BW )@@G@@POINT AND RETURN @#@[@@ IPPNT=1 @ @[@@ VALUE(LOCX+IPPNT)=BX )@@G@@XVAR @#@[@@ LOCYT=LOCY @^@[@@ DO 60 I=1,KNTR @#@[@@ BY )@@G@@ISEQ=ITAB(I)@ @[@@ ISEQ=NODPLC(ISEQ+4) @B@[@@ VALUE(LOCYT+BZ )@@G@@IPPNT)=VALUE(LOCO1+ISEQ)@^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 60 CONTINCA )@@G@@UE @#@[@@ GO TO 100 @B@[@@C... ICALC=2; LINEAR INTERPOLATIONCB )@@G@@ USED @^@[@@ 70 X1=VALUE(LOCO1+1) @^@[@@ X2=VALUE(LOCO2+1) @A@[@@CC )@@G@@ 80 IF (XINCR.LT.0.0) GO TO 84 @A@[@@ IF (XVAR.GT.X2) GO TO 10CD )@@G@@0 @#@[@@ GO TO 88 @A@[@@ 84 IF (XVAR.LT.X2) GO TO 100 CE )@@G@@@^@[@@ 88 IPPNT=IPPNT+1 @ @[@@ VALUE(LOCX+IPPNT)=XVAR @#@[@@CF )@@G@@ LOCYT=LOCY @^@[@@ DO 90 I=1,KNTR @#@[@@ ISEQ=ITAB(I)CG )@@G@@@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ V1=VALUE(LOCO1+ISEQ) CH )@@G@@@ @[@@ V2=VALUE(LOCO2+ISEQ) @B@[@@ YVR=V1+((XVAR-X1)/(X2-X1CI )@@G@@))*(V2-V1) @B@[@@ TOL=AMIN1(ABS(V1),ABS(V2))*1.0E-10 @A@[@@ CJ )@@G@@IF (ABS(YVR).LE.TOL) YVR=0.0 @ @[@@ VALUE(LOCYT+IPPNT)=YVR @^@[@@CK )@@G@@ LOCYT=LOCYT+NPOINT@#@[@@ 90 CONTINUE @A@[@@ IF (IPPNT.GECL )@@G@@.NPOINT) GO TO 100@A@[@@ XVAR=XSTART+FLOAT(IPPNT)*XINCR@C@[@@ CM )@@G@@IF (ABS(XVAR).GE.ABS(XVTOL)) GO TO 80 @#@[@@ XVAR=0.0 @#@[@@CN )@@G@@ GO TO 80 @[@[@@C @]@[@@C RETURN @[@[@@C @#@[@@ 100 CO )@@G@@NUMPNT=IPPNT@]@[@@ RETURN@]@[@@ END @ @[@@ SUBROUTINE SCP )@@G@@ETPRN(LOC) @[@[@@C @G@[@@C THIS ROUTINE FORMATS THE COLUMN HEADCQ )@@G@@ERS FOR TABULAR LISTINGS OF @^@[@@C OUTPUT VARIABLES. @[@[@@C CR )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUCS )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,CT )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILCU )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWCV )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,CW )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@CX )@@G@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, CY )@@G@@@F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,CZ )@@G@@@ @[@@ 2 ITEMNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3)DA )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE DB )@@G@@@G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KDC )@@G@@IDIN, @^@[@@ 1 KOVAR,KIDOUT @G@[@@ COMMON /AC/ FSTART,FSTOPDD )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NDE )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPDF )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@F@[@@DG )@@G@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@DH )@@G@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), DI )@@G@@@C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMONDJ )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALDK )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C DL )@@G@@@E@[@@ DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / @[@[@@DM )@@G@@C @C@[@@C SET LIMITS DEPENDING UPON THE ANALYSIS MODE @[@[@@C DN )@@G@@@ @[@@ IF (MODE-2) 10,20,30 @^@[@@ 10 XSTART=TCSTAR @#@[@@DO )@@G@@ XINCR=TCINCR@^@[@@ NPOINT=ICVFLG @ @[@@ LOCE=NODPLC(DP )@@G@@ITCELM+1) @^@[@@ ASWEEP=VALUE(LOCE)@#@[@@ GO TO 40 @^@[@@DQ )@@G@@ 20 XSTART=TSTART @#@[@@ XINCR=TSTEP @^@[@@ NPOINT=JTRFLDR )@@G@@G @^@[@@ ASWEEP=ATIMEX @#@[@@ GO TO 40 @^@[@@ 30 DS )@@G@@XSTART=FSTART @#@[@@ XINCR=FINCR @#@[@@ NPOINT=ICALC@#@[@@DT )@@G@@ ASWEEP=AFREQ@[@[@@C @C@[@@C CONSTRUCT AND PRINT THE OUTPUT VADU )@@G@@RIABLE NAMES@[@[@@C @#@[@@ 40 LOCT=LOC+2 @]@[@@ IPOS=1@^@[@@DV )@@G@@ NPOS=IPOS+NUMDGT+8@^@[@@ DO 90 I=1,KNTR @#@[@@ LOCT=LDW )@@G@@OCT+2 @ @[@@ ITAB(I)=NODPLC(LOCT) @ @[@@ ITYPE(I)=NODPLC(LODX )@@G@@CT+1) @C@[@@ CALL OUTNAM(ITAB(I),ITYPE(I),STRING,IPOS) @A@[@@ DY )@@G@@IF (IPOS.GE.NPOS) GO TO 70 @^@[@@ DO 60 J=IPOS,NPOS @A@[@@ DZ )@@G@@CALL MOVE(STRING,J,ABLNK,1,1) @#@[@@ 60 CONTINUE @#@[@@ IPOS=NEA )@@G@@POS @#@[@@ GO TO 80 @B@[@@ 70 CALL MOVE(STRING,IPOS,ABLNK,1,EB )@@G@@1) @#@[@@ IPOS=IPOS+1 @^@[@@ 80 NPOS=NPOS+NUMDGT+8@#@[@@ 90 EC )@@G@@CONTINUE @B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@ ED )@@G@@JSTOP=(IPOS+6)/8 @C@[@@ WRITE (6,91) ASWEEP,(STRING(J),J=1,JSTOP) EE )@@G@@@A@[@@ 91 FORMAT(/3X,A8,5X,14A8,A4) @^@[@@ WRITE (6,101) EF )@@G@@@^@[@@ 101 FORMAT(1HX/1H ) @]@[@@ RETURN@]@[@@ END @ @[@@EG )@@G@@ SUBROUTINE SETPLT(LOC) @[@[@@C @G@[@@C THIS ROUTINE GENEREH )@@G@@ATES THE ^LEGEND^ SUBHEADING USED TO IDENTIFY @D@[@@C INDIVIDUAL TRACEEI )@@G@@S ON MULTI-TRACE LINE-PRINTER PLOTS.@[@[@@C @G@[@@ COMMON /TABIEJ )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEEK )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2EL )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@EM )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, EN )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,EO )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMEP )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEEQ )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOER )@@G@@SOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),ES )@@G@@RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /DC/ ET )@@G@@TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVEU )@@G@@AR,KIDOUT @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,EV )@@G@@JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,EW )@@G@@JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPEX )@@G@@ZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@F@[@@ COMMON /TRAN/ TSTEEY )@@G@@P,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@ COMMON /OUTINF/ STEZ )@@G@@RING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@[@@ 1 ILOGY(8),FA )@@G@@NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@FB )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAFC )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @ @[@@ DIMENSION LOFD )@@G@@GOPT(6) @B@[@@ DATA LOGOPT / 2, 2, 1, 1, 1, 1 / @E@[@@ FE )@@G@@DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / @A@[@@ DATA PFF )@@G@@LTSYM / 8H+*\&'?<> / @[@[@@C @C@[@@C SET LIMITS DEPENDING UPON TFG )@@G@@HE ANALYSIS MODE @[@[@@C @ @[@@ IF (MODE-2) 10,20,30 @^@[@@FH )@@G@@ 10 XSTART=TCSTAR @#@[@@ XINCR=TCINCR@^@[@@ NPOINT=ICVFLFI )@@G@@G @ @[@@ LOCE=NODPLC(ITCELM+1) @^@[@@ ASWEEP=VALUE(LOCE)FJ )@@G@@@#@[@@ GO TO 40 @^@[@@ 20 XSTART=TSTART @#@[@@ XINCR=FK )@@G@@TSTEP @^@[@@ NPOINT=JTRFLG @^@[@@ ASWEEP=ATIMEX @#@[@@FL )@@G@@ GO TO 40 @^@[@@ 30 XSTART=FSTART @#@[@@ XINCR=FINCR FM )@@G@@@#@[@@ NPOINT=ICALC@#@[@@ ASWEEP=AFREQ@[@[@@C @G@[@@C CONFN )@@G@@STRUCT AND PRINT THE OUTPUT VARIABLES WITH CORRESPONDING PLOT @]@[@@FO )@@G@@C SYMBOLS@[@[@@C @#@[@@ 40 LOCT=LOC+2 @ @[@@ IF (KNTR.EQ.FP )@@G@@1) GO TO 80 @#@[@@ WRITE (6,41)@ @[@@ 41 FORMAT(^0LEGEND:^/) FQ )@@G@@@^@[@@ DO 70 I=1,KNTR @#@[@@ LOCT=LOCT+2 @ @[@@ ITAB(IFR )@@G@@)=NODPLC(LOCT) @ @[@@ IOUTYP=NODPLC(LOCT+1) @^@[@@ ITYPE(FS )@@G@@I)=IOUTYP @#@[@@ ILOGY(I)=1 @ @[@@ IF (MODE.LE.2) GO TO 50 FT )@@G@@@ @[@@ ILOGY(I)=LOGOPT(IOUTYP) @]@[@@ 50 IPOS=1@C@[@@ CALL OFU )@@G@@UTNAM(ITAB(I),ITYPE(I),STRING,IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ABFV )@@G@@LNK,1,7) @^@[@@ JSTOP=(IPOS+6)/8 @A@[@@ CALL MOVE(ACHAR,1,FW )@@G@@PLTSYM,I,1) @C@[@@ WRITE (6,61) ACHAR,(STRING(J),J=1,JSTOP) @ @[@@FX )@@G@@ 61 FORMAT(1X,A1,2H: ,5A8) @#@[@@ 70 CONTINUE @ @[@@ 80 IF (KNFY )@@G@@TR.GE.2) GO TO 90 @ @[@@ ITAB(1)=NODPLC(LOC+4) @ @[@@ IOUTYPFZ )@@G@@=NODPLC(LOC+5) @^@[@@ ITYPE(1)=IOUTYP @#@[@@ ILOGY(1)=1 GA )@@G@@@ @[@@ IF (MODE.LE.2) GO TO 90 @ @[@@ ILOGY(1)=LOGOPT(IOUTYP) GB )@@G@@@]@[@@ 90 IPOS=1@C@[@@ CALL OUTNAM(ITAB(1),ITYPE(1),STRING,IPOS) GC )@@G@@@B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@ JSTOP=(IPOS+GD )@@G@@6)/8 @C@[@@ WRITE (6,101) ASWEEP,(STRING(J),J=1,JSTOP)@ @[@@ 101 GE )@@G@@FORMAT(1HX/3X,A8,4X,5A8)@]@[@@ RETURN@]@[@@ END @C@[@@ GF )@@G@@SUBROUTINE PLOT(NUMPNT,LOCX,LOCY,LOCV) @[@[@@C @D@[@@C THIS RGG )@@G@@OUTINE GENERATES THE LINE-PRINTER PLOTS. @[@[@@C @F@[@@ COMMONGH )@@G@@ /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIGI )@@G@@DTH,LWIDTH,NOPAGE @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)GJ )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOGK )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ GL )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@GM )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@GN )@@G@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), GO )@@G@@@C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMONGP )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALGQ )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C GR )@@G@@@[@[@@C @#@[@@ INTEGER XOR @C@[@@ DIMENSION YCOOR(5,8),ICOGS )@@G@@OR(8),DELPLT(8) @C@[@@ DIMENSION AGRAPH(13),APLOT(13),ISPOT(5) GT )@@G@@@B@[@@ DIMENSION ASYM(2),PMIN(8),JCOOR(8) @B@[@@ DATA ISPOT /GU )@@G@@ 1, 26, 51, 76, 101 / @C@[@@ DATA ABLNK, ALETX, APER / 1H , 1HX, GV )@@G@@1H. / @F@[@@ DATA ASYM1, ASYM2, ARPRN / 8H(-------, 8H--------, 1H)GW )@@G@@ / @A@[@@ DATA PLTSYM / 8H+*\&'?<> / @[@[@@C @[@[@@C GX )@@G@@@A@[@@ IF (NUMPNT.LE.0) GO TO 400 @#@[@@ DO 5 I=1,13 @^@[@@GY )@@G@@ AGRAPH(I)=ABLNK @#@[@@ 5 CONTINUE @#@[@@ DO 7 I=1,5 GZ )@@G@@@B@[@@ CALL MOVE(AGRAPH,ISPOT(I),APER,1,1) @#@[@@ 7 CONTINUE HA )@@G@@@#@[@@ LOCYT=LOCY @#@[@@ LSPOT=LOCV-1@#@[@@ MLTSCL=0 HB )@@G@@@B@[@@ IF (VALUE(LOCV).EQ.0.0) MLTSCL=1 @^@[@@ DO 235 K=1,KHC )@@G@@NTR @^@[@@ LSPOT=LSPOT+2 @^@[@@ YMIN=VALUE(LSPOT) @ @[@@HD )@@G@@ YMAX=VALUE(LSPOT+1) @A@[@@ IF (YMIN.NE.0.0) GO TO 10 HE )@@G@@@A@[@@ IF (YMAX.NE.0.0) GO TO 10 @#@[@@ GO TO 100 @ @[@@HF )@@G@@ 10 YMIN1=AMIN1(YMIN,YMAX) @ @[@@ YMAX1=AMAX1(YMIN,YMAX) @A@[@@HG )@@G@@ 30 IF (ILOGY(K).EQ.1) GO TO 40 @B@[@@ YMIN1=ALOG10(AMAX1(YMIN1HH )@@G@@,1.0E-20)) @B@[@@ YMAX1=ALOG10(AMAX1(YMAX1,1.0E-20)) @B@[@@ HI )@@G@@DEL=AMAX1(YMAX1-YMIN1,0.0001)/4.0 @#@[@@ GO TO 50 @B@[@@ 40 HJ )@@G@@DEL=AMAX1(YMAX1-YMIN1,1.0E-20)/4.0 @#@[@@ 50 YMIN=YMIN1 @#@[@@ HK )@@G@@YMAX=YMAX1 @#@[@@ GO TO 200 @[@[@@C @A@[@@C DETERMINE MAX AHL )@@G@@ND MIN VALUES @[@[@@C @ @[@@ 100 YMAX1=VALUE(LOCYT+1) @#@[@@HM )@@G@@ YMIN1=YMAX1 @A@[@@ IF (NUMPNT.EQ.1) GO TO 150 @^@[@@ HN )@@G@@DO 110 I=2,NUMPNT @B@[@@ YMIN1=AMIN1(YMIN1,VALUE(LOCYT+I)) @B@[@@HO )@@G@@ YMAX1=AMAX1(YMAX1,VALUE(LOCYT+I)) @#@[@@ 110 CONTINUE @[@[@@HP )@@G@@C @]@[@@C SCALING @[@[@@C @C@[@@ 150 CALL SCALE(YMIN1,YMAX1,4HQ )@@G@@,YMIN,YMAX,DEL) @[@[@@C @^@[@@C DETERMINE COORDINATES@[@[@@C HR )@@G@@@^@[@@ 200 YCOOR(1,K)=YMIN @#@[@@ PMIN(K)=YMIN@^@[@@ SMALL=HS )@@G@@DEL*1.0E-4 @D@[@@ IF (ABS(YCOOR(1,K)).LE.SMALL) YCOOR(1,K)=0.0 HT )@@G@@@#@[@@ DO 210 I=1,4@A@[@@ YCOOR(I+1,K)=YCOOR(I,K)+DEL @D@[@@HU )@@G@@ IF (ABS(YCOOR(I+1,K)).LE.SMALL) YCOOR(I+1,K)=0.0@#@[@@ 210 CONTINHV )@@G@@UE @A@[@@ IF (ILOGY(K).EQ.1) GO TO 230 @#@[@@ DO 220 I=1,5HW )@@G@@@B@[@@ 220 YCOOR(I,K)=EXP(XLOG10*YCOOR(I,K)) @^@[@@ 230 DELPLT(K)=DEHX )@@G@@L/25.0@^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 235 CONTINUE @[@[@@C HY )@@G@@@ @[@@C COUNT DISTINCT COORDINATES @[@[@@C @#@[@@ ICOOR(1)=1 HZ )@@G@@@#@[@@ JCOOR(1)=1 @#@[@@ NUMCOR=1 @ @[@@ IF (KNTR.EQ.IA )@@G@@1) GO TO 290@^@[@@ DO 250 I=2,KNTR @^@[@@ DO 245 J=1,NUMCOR IB )@@G@@@#@[@@ L=JCOOR(J) @G@[@@C... COORDINATES ARE *EQUAL* IF THE MOST IC )@@G@@SIGNIFICANT 24 BITS AGREE @#@[@@ DO 240 K=1,5@B@[@@ Y1=ANDID )@@G@@(YCOOR(K,L),COMPL(7777 7777B))@B@[@@ Y2=AND(YCOOR(K,I),COMPL(7777 7IE )@@G@@777B))@A@[@@ IF (XOR(Y1,Y2).NE.0) GO TO 245@#@[@@ 240 CONTINUE IF )@@G@@@#@[@@ ICOOR(I)=L @#@[@@ GO TO 250 @#@[@@ 245 CONTINUE IG )@@G@@@#@[@@ ICOOR(I)=I @^@[@@ NUMCOR=NUMCOR+1 @^@[@@ JCOOR(IH )@@G@@NUMCOR)=I @#@[@@ 250 CONTINUE @[@[@@C @^@[@@C PRINT COORDINATII )@@G@@ES @[@[@@C @^@[@@ 260 DO 280 I=1,NUMCOR @^@[@@ ASYM(1)=ASYMIJ )@@G@@1 @^@[@@ ASYM(2)=ASYM2 @]@[@@ IPOS=2@^@[@@ DO 270IK )@@G@@ J=1,KNTR @B@[@@ IF (ICOOR(J).NE.JCOOR(I)) GO TO 270 @B@[@@ IL )@@G@@CALL MOVE(ASYM,IPOS,PLTSYM,J,1) @#@[@@ IPOS=IPOS+1 @#@[@@ 270 IM )@@G@@CONTINUE @A@[@@ CALL MOVE(ASYM,IPOS,ARPRN,1,1)@#@[@@ K=JCOOIN )@@G@@R(I) @C@[@@ WRITE (6,271) ASYM,(YCOOR(J,K),J=1,5) @F@[@@ 271 IO )@@G@@FORMAT(/1HX,2A8,4H----,1PE12.3,4(15X,E10.3)/26X,51(2H -)) @#@[@@ 280 IP )@@G@@CONTINUE @#@[@@ GO TO 300 @B@[@@ 290 WRITE (6,291) (YCOOR(J,1IQ )@@G@@),J=1,5) @E@[@@ 291 FORMAT(/1HX,20X,1PE12.3,4(15X,E10.3)/26X,51(2H -IR )@@G@@)) @[@[@@C @]@[@@C PLOTTING @[@[@@C @#@[@@ 300 ASPOT=ABLNK IS )@@G@@@^@[@@ DO 320 I=1,NUMPNT @^@[@@ XVAR=VALUE(LOCX+I)@#@[@@ IT )@@G@@LOCYT=LOCY @A@[@@ CALL COPY8(AGRAPH,APLOT,13) @^@[@@ DO 310IU )@@G@@ K=1,KNTR @^@[@@ YVR=VALUE(LOCYT+I)@^@[@@ KTMP=ICOOR(K) IV )@@G@@@^@[@@ YMIN1=PMIN(KTMP) @C@[@@ JPOINT=IFIX((YVR-YMIN1)/DELPLTIW )@@G@@(K)+0.5)+1 @A@[@@ IF (JPOINT.LE.0) GO TO 306 @A@[@@ IF (JPIX )@@G@@OINT.GE.102) GO TO 306 @B@[@@ CALL MOVE(ASPOT,1,APLOT,JPOINT,1) IY )@@G@@@A@[@@ IF (ASPOT.EQ.ABLNK) GO TO 303 @A@[@@ IF (ASPOT.EQ.APER)IZ )@@G@@ GO TO 303 @B@[@@ CALL MOVE(APLOT,JPOINT,ALETX,1,1) @#@[@@ JA )@@G@@GO TO 306 @B@[@@ 303 CALL MOVE(APLOT,JPOINT,PLTSYM,K,1) @^@[@@ 306 JB )@@G@@LOCYT=LOCYT+NPOINT@#@[@@ 310 CONTINUE @^@[@@ YVR=VALUE(LOCY+I) JC )@@G@@@A@[@@ IF (ILOGY(1).EQ.1) GO TO 315 @ @[@@ YVR=EXP(XLOG10*YVRJD )@@G@@) @A@[@@ 315 WRITE (6,316) XVAR,YVR,APLOT @B@[@@ 316 FORMAT(1X,1PJE )@@G@@E10.3,3X,E10.3,3X,13A8) @#@[@@ 320 CONTINUE @[@[@@C @]@[@@C FINJF )@@G@@ISHED @[@[@@C @^@[@@ WRITE (6,331) @ @[@@ 331 FORMAT(26X,5JG )@@G@@1(2H -)//) @#@[@@ GO TO 500 @[@[@@C @#@[@@C TOO FEW POINTS JH )@@G@@@[@[@@C @^@[@@ 400 WRITE (6,401) @E@[@@ 401 FORMAT(^0WARNING: JI )@@G@@ TOO FEW POINTS FOR PLOTTING^/) @^@[@@ 500 WRITE (6,501) @#@[@@JJ )@@G@@ 501 FORMAT(1HY) @]@[@@ RETURN@]@[@@ END @D@[@@ SUBROUJK )@@G@@TINE SCALE(XMIN,XMAX,N,XMINP,XMAXP,DEL) @[@[@@C @G@[@@C THIS RJL )@@G@@OUTINE DETERMINES THE ^OPTIMAL^ SCALE TO USE FOR THE PLOT OF@^@[@@C SOMEJM )@@G@@ OUTPUT VARIABLE. @[@[@@C @[@[@@C @G@[@@C ADAPTED FROM ALGORITHJN )@@G@@M 463 OF ^COLLECTED ALGORITHMS OF THE CACM^ @[@[@@C @G@[@@ JO )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@JP )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @#@[@@JQ )@@G@@ INTEGER XOR @^@[@@ DIMENSION VINT(5) @B@[@@ DATA VINT / JR )@@G@@1.0,2.0,5.0,10.0,20.0 / @ @[@@ DATA EPS / 1.0E-12 / @[@[@@C JS )@@G@@@[@[@@C @A@[@@C... TRAP TOO-SMALL DATA SPREAD @B@[@@ TMIN=AJT )@@G@@ND(XMIN,COMPL(777 777 777B)) @B@[@@ TMAX=AND(XMAX,COMPL(777 777 77JU )@@G@@7B)) @B@[@@ IF (XOR(TMIN,TMAX).NE.0) GO TO 10 @ @[@@ IF (XMJV )@@G@@IN.GE.0.0) GO TO 5@^@[@@ XMAX=0.5*XMIN+EPS @^@[@@ XMIN=1.5*XMIJW )@@G@@N-EPS @#@[@@ GO TO 10 @^@[@@ 5 XMAX=1.5*XMIN+EPS @^@[@@ JX )@@G@@XMIN=0.5*XMIN-EPS @E@[@@C... FIND APPROXIMATE INTERVAL SIZE, NORMALIZEDJY )@@G@@ TO "1,10! @ @[@@ 10 A=(XMAX-XMIN)/FLOAT(N) @ @[@@ NAL=IFIX(ALOJZ )@@G@@G10(A)) @ @[@@ IF (A.LT.1.0) NAL=NAL-1 @A@[@@ XFACT=EXP(XLKA )@@G@@OG10*FLOAT(NAL)) @#@[@@ B=A/XFACT @C@[@@C... FIND CLOSEST PERMIKB )@@G@@SSIBLE INTERVAL SIZE @#@[@@ DO 20 I=1,3 @B@[@@ IF (B.LT.(VIKC )@@G@@NT(I)+EPS)) GO TO 30 @#@[@@ 20 CONTINUE @]@[@@ I=4 @ @[@@KD )@@G@@C... COMPUTE INTERVAL SIZE @^@[@@ 30 DEL=VINT(I)*XFACT @#@[@@ KE )@@G@@FM1=XMIN/DEL@]@[@@ M1=FM1@ @[@@ IF (FM1.LT.0.0) M1=M1-1 @C@[@@KF )@@G@@ IF (ABS(FLOAT(M1)+1.0-FM1).LT.EPS) M1=M1+1@C@[@@C... COMPUTE NEW KG )@@G@@MAXIMUM AND MINIMUM LIMITS @ @[@@ XMINP=DEL*FLOAT(M1) @#@[@@KH )@@G@@ FM2=XMAX/DEL@#@[@@ M2=FM2+1.0 @A@[@@ IF (FM2.LT.(-1.0))KI )@@G@@ M2=M2-1 @C@[@@ IF (ABS(FM2+1.0-FLOAT(M2)).LT.EPS) M2=M2-1@ @[@@KJ )@@G@@ XMAXP=DEL*FLOAT(M2) @#@[@@ NP=M2-M1 @B@[@@C... CHECK KK )@@G@@WHETHER ANOTHER LOOP REQUIRED @ @[@@ IF (NP.LE.N) GO TO 40 @]@[@@KL )@@G@@ I=I+1 @#@[@@ GO TO 30 @E@[@@C... DO FINAL ADJUSTMENTS ANDKM )@@G@@ CORRECT FOR ROUNDOFF ERROR(S)@#@[@@ 40 NX=(N-NP)/2 @C@[@@ XMINP=KN )@@G@@AMIN1(XMIN,XMINP-FLOAT(NX)*DEL) @B@[@@ XMAXP=AMAX1(XMAX,XMINP+FKO )@@G@@LOAT(N)*DEL)@]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE FKP )@@G@@OURAN @[@[@@C @G@[@@C THIS ROUTINE DETERMINES THE FOURIER COEFFIKQ )@@G@@CIENTS OF A TRANSIENT @^@[@@C ANALYSIS WAVEFORM. @[@[@@C @G@[@@KR )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, KS )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEKT )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,KU )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQKV )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXKW )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ KX )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@KY )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /FLAGKZ )@@G@@S/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLLA )@@G@@COD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@[@@ COMMONLB )@@G@@ /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWILC )@@G@@DTH,LWIDTH,NOPAGE @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)LD )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOLE )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ LF )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@LG )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @F@[@@LH )@@G@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@LI )@@G@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), LJ )@@G@@@C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMONLK )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALLL )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C LM )@@G@@@[@[@@C @A@[@@ DIMENSION SINCO(9),COSCO(9) @ @[@@ DIMENSLN )@@G@@ION FORTIT(4) @G@[@@ DATA FORTIT / 8HFOURIER , 8HANALYSIS, 8H LO )@@G@@ , 8H / @^@[@@ DATA ABLNK / 1H /@[@[@@C @[@[@@LP )@@G@@C @^@[@@ FORPRD=1.0/FORFRE @ @[@@ XSTART=TSTOP-FORPRD LQ )@@G@@@]@[@@ KNTR=1@#@[@@ XN=101.0 @^@[@@ XINCR=FORPRD/XN LR )@@G@@@#@[@@ NPOINT=XN @ @[@@ CALL GETMEM(LOCX,NPOINT)@ @[@@ LS )@@G@@CALL GETMEM(LOCY,NPOINT)@ @[@@ DO 105 NKNT=1,NFOUR @A@[@@ LT )@@G@@ITAB(1)=NODPLC(IFOUR+NKNT) @^@[@@ KFROUT=ITAB(1) @A@[@@ LU )@@G@@CALL NTRPL8(LOCX,LOCY,NUMPNT) @#@[@@ DCCO=0.0 @ @[@@ CALL ZLV )@@G@@ERO8(SINCO,9) @ @[@@ CALL ZERO8(COSCO,9) @#@[@@ LOCT=LLW )@@G@@OCY+1 @]@[@@ IPNT=0@ @[@@ 10 YVR=VALUE(LOCT+IPNT) @^@[@@ LX )@@G@@DCCO=DCCO+YVR @A@[@@ FORFAC=FLOAT(IPNT)*TWOPI/XN @#@[@@ LY )@@G@@ARG=0.0 @#@[@@ DO 20 K=1,9 @^@[@@ ARG=ARG+FORFAC @A@[@@LZ )@@G@@ SINCO(K)=SINCO(K)+YVR*SIN(ARG)@A@[@@ COSCO(K)=COSCO(K)+YVR*COMA )@@G@@S(ARG)@#@[@@ 20 CONTINUE @#@[@@ IPNT=IPNT+1 @A@[@@ IF (IPMB )@@G@@NT.NE.NPOINT) GO TO 10 @#@[@@ DCCO=DCCO/XN@^@[@@ FORFAC=2.0/XMC )@@G@@N @#@[@@ DO 30 K=1,9 @ @[@@ SINCO(K)=SINCO(K)*FORFAC@ @[@@MD )@@G@@ COSCO(K)=COSCO(K)*FORFAC@#@[@@ 30 CONTINUE @A@[@@ CALL TME )@@G@@ITLE(0,72,1,FORTIT) @]@[@@ IPOS=1@B@[@@ CALL OUTNAM(KFROUTMF )@@G@@,1,STRING,IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@MG )@@G@@ JSTOP=(IPOS+6)/8 @B@[@@ WRITE (6,61) (STRING(J),J=1,JSTOP) MH )@@G@@@F@[@@ 61 FORMAT(^ FOURIER COMPONENTS OF TRANSIENT RESPONSE ^,5A8///) MI )@@G@@@^@[@@ WRITE (6,71) DCCO @B@[@@ 71 FORMAT(^0DC COMPONENT =^,1PE12MJ )@@G@@.3/, @G@[@@ 1 ^0HARMONIC FREQUENCY FOURIER NORMALIZED MK )@@G@@PHASE NO@#@[@@ 2RMALIZED^/, @G@[@@ 3 ^ NO (HZ) ML )@@G@@ COMPONENT COMPONENT (DEG) PHA@#@[@@ 4SE (DEG)^//)@]@[@@MM )@@G@@ IKNT=1@#@[@@ FREQ1=FORFRE@#@[@@ XNHARM=1.0 @E@[@@ MN )@@G@@CALL MAGPHS(CMPLX(SINCO(1),COSCO(1)),XNORM,PNORM) @#@[@@ PHASENMO )@@G@@=0.0 @E@[@@ WRITE (6,81) IKNT,FREQ1,XNORM,XNHARM,PNORM,PHASEN MP )@@G@@@D@[@@ 81 FORMAT(I6,1PE15.3,E12.3,0PF13.6,F10.3,F12.3/) @#@[@@ MQ )@@G@@THD=0.0 @^@[@@ DO 90 IKNT=2,9 @ @[@@ FREQ1=FLOAT(IKNT)*MR )@@G@@FORFRE@E@[@@ CALL MAGPHS(CMPLX(SINCO(IKNT),COSCO(IKNT)),HARM,PHASE)MS )@@G@@@^@[@@ XNHARM=HARM/XNORM @^@[@@ PHASEN=PHASE-PNORM@ @[@@ MT )@@G@@THD=THD+XNHARM*XNHARM @D@[@@ WRITE (6,81) IKNT,FREQ1,HARM,XNHARM,MU )@@G@@PHASE,PHASEN@#@[@@ 90 CONTINUE @ @[@@ THD=100.0*SQRT(THD) MV )@@G@@@^@[@@ WRITE (6,101) THD @G@[@@ 101 FORMAT (//5X,*TOTAL HARMONIC DMW )@@G@@ISTORTION = *,F12.6,* PERCENT*) @#@[@@ 105 CONTINUE @^@[@@ MX )@@G@@CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @]@[@@ 110 RETURN@]@[@@MY )@@G@@ END ___ @ @[@@ 10 YMIN1=AMIN1(YMIN,Y*[S@@@*SDFF*@^@[@@ MZ )@@G@@PROGRAM DCTRAN @[@[@@C @G@[@@C THIS ROUTINE CONTROLS THE DC TNA )@@G@@RANSFER CURVE, DC OPERATING POINT, @G@[@@C AND TRANSIENT ANALYSES. THENB )@@G@@ VARIABLES MODE AND MODEDC (DEFINED BELOW)@C@[@@C DETERMINE EXACTLY WHICNC )@@G@@H ANALYSIS IS PERFORMED.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,IND )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFONE )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSNF )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMONG )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4NH )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@NI )@@G@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3),ATIMENJ )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@NK )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, NL )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONNM )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1NN )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2NO )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,NP )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLNQ )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINNR )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @F@[@@NS )@@G@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@NT )@@G@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,NU )@@G@@@G@[@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPUNV )@@G@@, @C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@[@@ NW )@@G@@COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@NX )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVANY )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ NZ )@@G@@DIMENSION SUBTIT(4,2) @A@[@@ DIMENSION AVHDR(3),AVFRM(4) @D@[@@OA )@@G@@ DATA AVHDR / 8H( (2X,A4, 8H,3X,A7,3, 5HX)//) / @F@[@@ DATA AOB )@@G@@VFRM / 8H( (1H ,A, 8H1,I3,1H), 8H,F10.4,3, 4HX)/) / @C@[@@ DATA AOC )@@G@@NODE, AVLTG / 4HNODE, 7HVOLTAGE / @G@[@@ DATA SUBTIT / 8HSMALL SIOD )@@G@@, 8HGNAL BIA, 8HS SOLUTI, 8HON , @G@[@@ 1 8HINOE )@@G@@ITIAL , 8HTRANSIEN, 8HT SOLUTI, 8HON / @^@[@@ DATA LPRN /1OF )@@G@@H(/ @[@[@@C @G@[@@C THE VARIABLES *MODE*, *MODEDC*, AND *INITOG )@@G@@F* ARE USED BY SPICE TO @G@[@@C KEEP TRACK OF THE STATE OF THE ANALYSIS.OH )@@G@@ THE VALUES OF THESE FLAGS @D@[@@C (AND THE CORRESPONDING MEANINGS) AOI )@@G@@RE AS FOLLOWS: @[@[@@C @A@[@@C FLAG VALUE MEANING OJ )@@G@@@A@[@@C ---- ----- ------- @[@[@@C @G@[@@C MODOK )@@G@@E 1 DC ANALYSIS (SUBTYPE DEFINED BY *MODEDC*) @C@[@@C OL )@@G@@ 2 TRANSIENT ANALYSIS @D@[@@C 3 OM )@@G@@ AC ANALYSIS (SMALL SIGNAL) @[@[@@C @C@[@@C MODEDC 1 ON )@@G@@ DC OPERATING POINT @G@[@@C 2 INITIAL OPERATINOO )@@G@@G POINT FOR TRANSIENT ANALYSIS@E@[@@C 3 DC TRANSFEOP )@@G@@R CURVE COMPUTATION @[@[@@C @G@[@@C INITF 1 CONVOQ )@@G@@ERGE WITH ^OFF^ DEVICES ALLOWED TO FLOAT @D@[@@C 2 OR )@@G@@ INITIALIZE JUNCTION VOLTAGES@F@[@@C 3 CONVERGE WOS )@@G@@ITH ^OFF^ DEVICES HELD ^OFF^ @E@[@@C 4 STORE SMALOT )@@G@@L-SIGNAL PARAMETERS AWAY@F@[@@C 5 FIRST TIMEPOINT OU )@@G@@IN TRANSIENT ANALYSIS @B@[@@C 6 PREDICTION STEP OV )@@G@@@[@[@@C @D@[@@C NOTE: *MODEDC* IS ONLY SIGNIFICANT IF *MODE* = 1. OW )@@G@@@[@[@@C @[@[@@C @#@[@@C INITIALIZE @[@[@@C @^@[@@ OX )@@G@@CALL SECOND(T1) @#@[@@ LOCTIM=5 @^@[@@C... SET UP FORMAT OY )@@G@@@ @[@@ NVPRLN=4+(LWIDTH-72)/19 @A@[@@ NVPRLN=MIN0(NVPRLN,NCNODOZ )@@G@@S-1) @]@[@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVFRM,IPOS)@]@[@@PA )@@G@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVHDR,IPOS)@^@[@@C... ALLOCAPB )@@G@@TE STORAGE @ @[@@ IF (MODE.EQ.2) GO TO 5 @A@[@@ CALL GETMEM(PC )@@G@@LVNIM1,NSTOP) @ @[@@ CALL GETMEM(NDIAG,NSTOP)@B@[@@ CALL GPD )@@G@@ETMEM(LVN,NSTOP+NSTOP+NUT+NLT)@ @[@@ CALL GETMEM(LX0,NXTRM) @A@[@@PE )@@G@@ IF (MODEDC.NE.3) GO TO 15 @ @[@@ 5 CALL GETMEM(LX1,NXTRM) PF )@@G@@@ @[@@ CALL GETMEM(LX2,NXTRM) @ @[@@ IF (MODE.EQ.2) GO TO 7 PG )@@G@@@A@[@@ IF (MODEDC.EQ.3) GO TO 10 @ @[@@ 7 CALL GETMEM(LX3,NXPH )@@G@@TRM) @ @[@@ 10 IF (MODE.NE.2) GO TO 12 @^@[@@ CALL GETMEM(LTD,0)PI )@@G@@@ @[@@ 12 CALL GETMEM(LOUTPT,0) @#@[@@ 15 CALL CRUNCH @^@[@@ PJ )@@G@@LYNL=LVN+NSTOP @^@[@@ LYU=LYNL+NSTOP @#@[@@ LYL=LYU+NUT PK )@@G@@@ @[@@ 20 IF (MODE.EQ.2) GO TO 500@#@[@@ TIME=0.0 @#@[@@ PL )@@G@@AG(1)=0.0 @#@[@@ CALL SORUPD @A@[@@ IF (MODEDC.EQ.3) GO TO 3PM )@@G@@00 @[@[@@C @A@[@@C .... SINGLE POINT DC ANALYSIS @[@[@@C PN )@@G@@@[@[@@C @ @[@@C COMPUTE DC OPERATING POINT @[@[@@C @#@[@@ 100 PO )@@G@@INITF=2 @^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(6)=RSTATS(6PP )@@G@@)+ITERNO @A@[@@ IF (IGOOF.NE.0) GO TO 150 @A@[@@ IF (MOPQ )@@G@@DEDC.NE.1) GO TO 120 @#@[@@ INITF=4 @#@[@@ CALL DIODE PR )@@G@@@#@[@@ CALL BJT @#@[@@ CALL JFET @#@[@@ CALL MOSFET PS )@@G@@@[@[@@C @^@[@@C PRINT OPERATING POINT@[@[@@C @G@[@@ 120 IF ((MPT )@@G@@ODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @C@[@@ PU )@@G@@CALL TITLE(-1,LWIDTH,1,SUBTIT(1,MODEDC)) @C@[@@ WRITE (6,AVHDR) (APV )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+PW )@@G@@I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ GO TO 1000 @[@[@@C @#@[@@PX )@@G@@C NO CONVERGENCE @[@[@@C @]@[@@ 150 NOGO=1@^@[@@ WRITE (6,151PY )@@G@@) @G@[@@ 151 FORMAT(^1*ERROR*: NO CONVERGENCE IN DC ANALYSIS^/^0LAPZ )@@G@@ST NODE VOL^@^@[@@ 1 ^TAGES:^/) @C@[@@ WRITE (6,AVHDR) (AQA )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+QB )@@G@@I),VALUE(LVNIM1+I),I=2,NUNODS)@#@[@@ GO TO 1000 @[@[@@C @ @[@@QC )@@G@@C .... DC TRANSFER CURVES @[@[@@C @ @[@@ 300 NUMOUT=JELCNT(41)+QD )@@G@@1 @ @[@@ LOCS=NODPLC(ITCELM+1) @ @[@@ TEMVAL=VALUE(LOCS+QE )@@G@@1) @#@[@@ DELTA=TCINCR@#@[@@ DO 310 I=1,7@^@[@@ DELOLDQF )@@G@@(I)=DELTA @#@[@@ 310 CONTINUE @ @[@@ VALUE(LOCS+1)=TCSTAR QG )@@G@@@#@[@@ ICALC=0 @#@[@@ LOCTIM=3 @#@[@@ 340 INITF=2 QH )@@G@@@^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(4)=RSTATS(4)+ITERNO QI )@@G@@@D@[@@ CALL COPY8(VALUE(LX0+1),VALUE(LX1+1),NXTRM) @D@[@@ QJ )@@G@@CALL COPY8(VALUE(LX0+1),VALUE(LX2+1),NXTRM) @A@[@@ IF (IGOOF.NEQK )@@G@@.0) GO TO 450 @#@[@@ GO TO 360 @#@[@@ 350 CALL GETCJE @D@[@@QL )@@G@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 460 @#@[@@ INITF=QM )@@G@@6 @^@[@@ CALL ITER8(ITL2) @A@[@@ RSTATS(4)=RSTATS(4)+ITERQN )@@G@@NO @A@[@@ IF (IGOOF.NE.0) GO TO 340 @[@[@@C @#@[@@C STOQO )@@G@@RE OUTPUTS @[@[@@C @A@[@@ 360 CALL EXTMEM(LOUTPT,NUMOUT) @ @[@@QP )@@G@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+1 @A@[@@ QQ )@@G@@VALUE(LOCO+1)=VALUE(LOCS+1) @^@[@@ LOC=LOCATE(41) @ @[@@ 370 QR )@@G@@IF (LOC.EQ.0) GO TO 400 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO 380 QS )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) QT )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LVNIM1+QU )@@G@@NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ QV )@@G@@GO TO 370 @^@[@@ 380 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(IPTR+6QW )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VALUE(LQX )@@G@@VNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 370 @[@[@@QY )@@G@@C @ @[@@C INCREMENT SOURCE VALUE @[@[@@C @A@[@@ 400 IF (ICQZ )@@G@@ALC.GE.ICVFLG) GO TO 490@ @[@@ CALL PTRMEM(LX2,ITEMP) @ @[@@ RA )@@G@@CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LX1) @ @[@@ RB )@@G@@CALL PTRMEM(ITEMP,LX0) @C@[@@ VALUE(LOCS+1)=TCSTAR+FLOAT(ICALC)*DERC )@@G@@LTA @#@[@@ GO TO 350 @[@[@@C @#@[@@C NO CONVERGENCE @[@[@@RD )@@G@@C @ @[@@ 450 LOCE=NODPLC(ITCELM+1) @C@[@@ WRITE (6,451) VALURE )@@G@@E(LOCE),VALUE(LOCS+1) @G@[@@ 451 FORMAT(^1*ERROR*: NO CONVERGENCE INRF )@@G@@ DC TRANSFER CURVES AT ^,A8, @C@[@@ 1 ^ = ^,1PE10.3/^0LAST NODE VRG )@@G@@OLTAGES:^/) @C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@RH )@@G@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)RI )@@G@@@#@[@@ GO TO 470 @^@[@@ 460 WRITE (6,461) @G@[@@ 461 FORMATRJ )@@G@@(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... ANALYSIS STOPPED^/)@]@[@@ 470 RK )@@G@@NOGO=1@[@[@@C @A@[@@C FINISHED WITH DC TRANSFER CURVES @[@[@@C RL )@@G@@@ @[@@ 490 VALUE(LOCS+1)=TEMVAL @#@[@@ GO TO 1000 @[@[@@C RM )@@G@@@ @[@@C .... TRANSIENT ANALYSIS @[@[@@C @ @[@@ 500 NUMOUT=JELCNRN )@@G@@T(42)+1 @#@[@@ INITF=5 @]@[@@ IORD=1@#@[@@ LOCTIMRO )@@G@@=9 @#@[@@ ICALC=0 @#@[@@ NUMTP=0 @#@[@@ NUMRTPRP )@@G@@=0 @#@[@@ NUMNIT=0 @#@[@@ TIME=0.0 @#@[@@ IBKFLGRQ )@@G@@=1 @#@[@@ NBKPT=1 @#@[@@ DELTA=TSTEP @#@[@@ DO 510RR )@@G@@ I=1,7@^@[@@ DELOLD(I)=DELTA @#@[@@ 510 CONTINUE @ @[@@ RS )@@G@@DELMIN=1.0E-9*TSTEP @B@[@@ IF (IDEBUG(20).NE.0) PAUSE 00001 RT )@@G@@@#@[@@ GO TO 650 @[@[@@C @E@[@@C INCREMENT TIME, UPDATE SOURRU )@@G@@CES, AND SOLVE NEXT TIMEPOINT @[@[@@C @^@[@@ 600 TIME=TIME+DELTA RV )@@G@@@#@[@@ CALL SORUPD @ @[@@ IF (NOGO.NE.0) GO TO 950@#@[@@ RW )@@G@@CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 920 RX )@@G@@@A@[@@ IF (NUMNIT.GE.ITL5) GO TO 905 @#@[@@ CALL COMCOF @ @[@@RY )@@G@@ IF (INITF.NE.5) INITF=6 @#@[@@ ITRLIM=ITL4 @D@[@@ IF ((NRZ )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) ITRLIM=ITL1 @^@[@@ CALL ITER8(ITRLIM)SA )@@G@@@ @[@@ NUMNIT=NUMNIT+ITERNO @^@[@@ NUMTP=NUMTP+1 @A@[@@SB )@@G@@ IF (NUMTP.NE.1) GO TO 605 @D@[@@ CALL COPY8(VALUE(LX1+1),SC )@@G@@VALUE(LX2+1),NXTRM) @D@[@@ CALL COPY8(VALUE(LX1+1),VALUE(LX3+1)SD )@@G@@,NXTRM) @A@[@@ 605 IF (IGOOF.EQ.0) GO TO 610 @#@[@@ JORD=ISE )@@G@@ORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMEM(LX7) SF )@@G@@@B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ IF (JORD.GE.SG )@@G@@3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METHOD.NE.1)) CSH )@@G@@ALL CLRMEM(LX4) @#@[@@ IGOOF=0 @^@[@@ TIME=TIME-DELTA SI )@@G@@@^@[@@ DELTA=DELTA/8.0 @#@[@@ GO TO 620 @#@[@@ 610 DELNEWSJ )@@G@@=DELTA@A@[@@ IF (NUMTP.EQ.1) GO TO 630 @^@[@@ CALL TRUNC(DSK )@@G@@ELNEW)@B@[@@ IF (DELNEW.GE.(0.9*DELTA)) GO TO 630@^@[@@ TIME=TSL )@@G@@IME-DELTA @#@[@@ DELTA=DELNEW@^@[@@ 620 NUMRTP=NUMRTP+1 @#@[@@SM )@@G@@ IBKFLG=0 @^@[@@ DELOLD(1)=DELTA @A@[@@ IF (DELTA.GESN )@@G@@.DELMIN) GO TO 600@^@[@@ TIME=TIME+DELTA @#@[@@ GO TO 900 SO )@@G@@@B@[@@ 630 CALL COPY8(DELOLD(1),DELOLD(2),6) @#@[@@ DELTA=DELNEWSP )@@G@@@^@[@@ DELOLD(1)=DELTA @[@[@@C @B@[@@C DETERMINE ORDER OF INSQ )@@G@@TEGRATION METHOD @[@[@@C @B@[@@C... SKIP IF TRAPEZOIDAL ALGORITHM SR )@@G@@USED @D@[@@ IF ((METHOD.EQ.1).AND.(IORD.EQ.2)) GO TO 650 @A@[@@SS )@@G@@ IF (NUMTP.EQ.1) GO TO 650 @#@[@@ ORDRAT=1.05 @ @[@@ ST )@@G@@IF (IORD.GT.1) GO TO 635@]@[@@ IORD=2@^@[@@ CALL TRUNC(DELNEW)SU )@@G@@@]@[@@ IORD=1@C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 SV )@@G@@@A@[@@ IF (MAXORD.LE.1) GO TO 650 @]@[@@ IORD=2@A@[@@ SW )@@G@@IF (METHOD.EQ.1) GO TO 650 @ @[@@ CALL GETMEM(LX4,NXTRM) @#@[@@SX )@@G@@ GO TO 650 @A@[@@ 635 IF (IORD.LT.MAXORD) GO TO 640 @#@[@@ SY )@@G@@IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=IORD+1 @C@[@@SZ )@@G@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 @#@[@@ GO TO 642 TA )@@G@@@#@[@@ 640 IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=ITB )@@G@@ORD+1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 645 @#@[@@ 642 TC )@@G@@IORD=IORD-1 @B@[@@ IF (IORD.EQ.1) CALL CLRMEM(LX4) @B@[@@ TD )@@G@@IF (IORD.EQ.2) CALL CLRMEM(LX5) @B@[@@ IF (IORD.EQ.3) CALL CLRMTE )@@G@@EM(LX6) @B@[@@ IF (IORD.EQ.4) CALL CLRMEM(LX7) @#@[@@ TF )@@G@@GO TO 650 @#@[@@ 645 IORD=IORD+1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@TG )@@G@@ IORD=IORD-1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 TH )@@G@@@#@[@@ IORD=IORD+1 @C@[@@ IF (IORD.EQ.2) CALL GETMEM(LX4,NXTRMTI )@@G@@) @C@[@@ IF (IORD.EQ.3) CALL GETMEM(LX5,NXTRM) @C@[@@ TJ )@@G@@IF (IORD.EQ.4) CALL GETMEM(LX6,NXTRM) @C@[@@ IF (IORD.EQ.5) CALTK )@@G@@L GETMEM(LX7,NXTRM) @[@[@@C @#@[@@C STORE OUTPUTS @[@[@@C TL )@@G@@@C@[@@ 650 IF ((TIME+DELTA).LT.0.99*TSTART) GO TO 685@D@[@@ IF ((NTM )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) GO TO 685 @A@[@@ CALL EXTMEM(LOUTPTTN )@@G@@,NUMOUT) @ @[@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+TO )@@G@@1 @^@[@@ VALUE(LOCO+1)=TIME@^@[@@ LOC=LOCATE(42) @ @[@@TP )@@G@@ 670 IF (LOC.EQ.0) GO TO 685 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO TQ )@@G@@680 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3TR )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LTS )@@G@@VNIM1+NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@TT )@@G@@ GO TO 670 @^@[@@ 680 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(TU )@@G@@IPTR+6) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VTV )@@G@@ALUE(LVNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 670 TW )@@G@@@[@[@@C @B@[@@C UPDATE TRANSMISSION LINE DELAY TABLE @[@[@@C TX )@@G@@@A@[@@ 685 IF (JELCNT(17).EQ.0) GO TO 694@ @[@@ CALL SIZMEM(LTD,LTTY )@@G@@DSIZ) @^@[@@ NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LE.3) GO TO 68TZ )@@G@@9 @^@[@@ BAKTIM=TIME-TDMAX @A@[@@ IF (BAKTIM.LT.0.0) GO TOUA )@@G@@ 689 @#@[@@ LCNTR=0 @#@[@@ LTEMP=LTD @^@[@@ DO 686UB )@@G@@ I=1,NUMTD @C@[@@ IF (VALUE(LTEMP+1).GE.BAKTIM) GO TO 687 @^@[@@UC )@@G@@ LTEMP=LTEMP+NTLIN @^@[@@ LCNTR=LCNTR+1 @#@[@@ 686 CONTINUD )@@G@@UE @#@[@@ GO TO 689 @A@[@@ 687 IF (LCNTR.LE.2) GO TO 689 UE )@@G@@@^@[@@ LCNTR=LCNTR-2 @^@[@@ NWORDS=LCNTR*NTLIN@ @[@@ UF )@@G@@LTEMP=LTEMP-NTLIN-NTLIN @E@[@@ CALL COPY8(VALUE(LTEMP+1),VALUE(LTD+UG )@@G@@1),LTDSIZ-NWORDS) @ @[@@ CALL RELMEM(LTD,NWORDS) @ @[@@ CALL SUH )@@G@@IZMEM(LTD,LTDSIZ) @ @[@@ 689 CALL EXTMEM(LTD,NTLIN) @^@[@@ LTDPTRUI )@@G@@=LTD+LTDSIZ @ @[@@ VALUE(LTDPTR+1)=TIME @^@[@@ LOC=LOCATE(1UJ )@@G@@7) @ @[@@ 690 IF (LOC.EQ.0) GO TO 693 @^@[@@ LOCV=NODPLC(LOC+1)UK )@@G@@@^@[@@ Z0=VALUE(LOCV+1) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@UL )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@UM )@@G@@ NODE4=NODPLC(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ UN )@@G@@IBR2=NODPLC(LOC+9)@A@[@@ LSPOT=NODPLC(LOC+30)+LTDPTR @D@[@@ UO )@@G@@IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) GO TO 691 @E@[@@ VALUE(LSPOT)UP )@@G@@=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VALUE(LVNIM1+IUQ )@@G@@BR2)*Z0 @E@[@@ VALUE(LSPOT+1)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+UR )@@G@@NODE2)@A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ GO TO 692 US )@@G@@@D@[@@ 691 VALUE(LSPOT)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 @D@[@@ UT )@@G@@VALUE(LSPOT+1)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @^@[@@ 692 LOC=NODPLC(LUU )@@G@@OC) @#@[@@ GO TO 690 @[@[@@C @G@[@@C ADD TWO *FAKE* BACKPOUV )@@G@@INTS TO LTD FOR INTERPOLATION NEAR TIME=0.0 @[@[@@C @A@[@@ 693 UW )@@G@@IF (NUMTD.NE.0) GO TO 694 @A@[@@ CALL EXTMEM(LTD,NTLIN+NTLIN) UX )@@G@@@E@[@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+NTLIN+1),NTLIN) @E@[@@UY )@@G@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+2*NTLIN+1),NTLIN) @A@[@@ UZ )@@G@@VALUE(LTD+2*NTLIN+1)=TIME @A@[@@ VALUE(LTD+NTLIN+1)=TIME-DELTA VA )@@G@@@A@[@@ VALUE(LTD+1)=TIME-DELTA-DELTA @[@[@@C @ @[@@C ROTATE STVB )@@G@@ATE VECTOR STORAGE@[@[@@C @C@[@@ 694 GO TO (710,706,702,698,696,696VC )@@G@@), IORD @ @[@@ 696 CALL PTRMEM(LX7,ITEMP) @ @[@@ CALL PTRMEM(VD )@@G@@LX6,LX7) @#@[@@ GO TO 700 @ @[@@ 698 CALL PTRMEM(LX6,ITEMP) VE )@@G@@@ @[@@ 700 CALL PTRMEM(LX5,LX6) @#@[@@ GO TO 704 @ @[@@ 702 VF )@@G@@CALL PTRMEM(LX5,ITEMP) @ @[@@ 704 CALL PTRMEM(LX4,LX5) @#@[@@ VG )@@G@@GO TO 708 @A@[@@ 706 IF (METHOD.EQ.1) GO TO 710 @ @[@@ CALL PVH )@@G@@TRMEM(LX4,ITEMP) @ @[@@ 708 CALL PTRMEM(LX3,LX4) @#@[@@ GO TO VI )@@G@@712 @ @[@@ 710 CALL PTRMEM(LX3,ITEMP) @ @[@@ 712 CALL PTRMEM(LX2,LXVJ )@@G@@3) @ @[@@ CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LXVK )@@G@@1) @ @[@@ CALL PTRMEM(ITEMP,LX0) @[@[@@C @^@[@@C CHECK BREVL )@@G@@AKPOINTS @[@[@@C @A@[@@ 750 IF (IBKFLG.EQ.0) GO TO 760 @#@[@@VM )@@G@@ JORD=IORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMVN )@@G@@EM(LX7) @B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ VO )@@G@@IF (JORD.GE.3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METVP )@@G@@HOD.NE.1)) CALL CLRMEM(LX4) @#@[@@ IBKFLG=0 @^@[@@ NBKPT=VQ )@@G@@NBKPT+1 @A@[@@ IF (NBKPT.GT.NUMBKP) GO TO 950@C@[@@ TEMP=AVR )@@G@@MIN1(TSTEP,VALUE(LSBKPT+NBKPT)-TIME)@B@[@@ DELTA=AMIN1(DELTA,0.1*TEVS )@@G@@MP,DELMAX) @B@[@@ IF (NUMTP.EQ.0) DELTA=DELTA/10.0 @^@[@@ VT )@@G@@DELOLD(1)=DELTA @#@[@@ GO TO 600 @A@[@@ 760 DEL1=VALUE(LSBKPT+VU )@@G@@NBKPT)-TIME @B@[@@ IF ((1.01*DELTA).LE.DEL1) GO TO 600 @#@[@@ VV )@@G@@IBKFLG=1 @#@[@@ DELTA=DEL1 @^@[@@ DELOLD(1)=DELTA @#@[@@VW )@@G@@ GO TO 600 @[@[@@C @ @[@@C TRANSIENT ANALYSIS FAILED @[@[@@VX )@@G@@C @^@[@@ 900 WRITE (6,901) @G@[@@ 901 FORMAT(^1*ERROR*: INTERVY )@@G@@NAL TIMESTEP TOO SMALL IN TRANSIENT ANALYS@]@[@@ 1IS^/) @#@[@@ VZ )@@G@@GO TO 910 @^@[@@ 905 WRITE (6,906) @G@[@@ 906 FORMAT(^1*ERROR*: WA )@@G@@ ITERATION LIMIT EXCEEDED IN TRANSIENT ANALYSIS^@]@[@@ 1/) @B@[@@WB )@@G@@ 910 WRITE (6,911) TIME,DELTA,NUMNIT @G@[@@ 911 FORMAT(1H0,10X,^TIWC )@@G@@ME = ^,1PE12.5,^; DELTA = ^,E12.5,^; NUMNIT = @]@[@@ 1^,I6/)@^@[@@WD )@@G@@ WRITE (6,916) @B@[@@ 916 FORMAT(1H0/^0LAST NODE VOLTAGES:^/) WE )@@G@@@C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE WF )@@G@@(6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ WG )@@G@@GO TO 930 @^@[@@ 920 WRITE (6,921) TIME@G@[@@ 921 FORMAT(^0*ERROR*: WH )@@G@@ CPU TIME LIMIT EXCEEDED IN TRANSIENT ANALYSIS ^@A@[@@ 1 ^AT TIME WI )@@G@@= ^,1PE13.6/) @]@[@@ 930 NOGO=1@[@[@@C @A@[@@C FINISHED WITH TWJ )@@G@@RANSIENT ANALYSIS @[@[@@C @A@[@@ 950 RSTATS(10)=RSTATS(10)+NUMNIT WK )@@G@@@A@[@@ RSTATS(30)=RSTATS(30)+NUMTP @A@[@@ RSTATS(31)=RSTATS(WL )@@G@@31)+NUMRTP @A@[@@ RSTATS(32)=RSTATS(32)+NUMNIT @B@[@@ IF (IDWM )@@G@@EBUG(20).NE.0) PAUSE 00002 @[@[@@C @ @[@@C RETURN UNNEEDED MEMORWN )@@G@@Y @[@[@@C @A@[@@ 1000 IF (MODE.EQ.2) GO TO 1010 @A@[@@ WO )@@G@@IF (MODEDC.NE.3) GO TO 1100 @ @[@@ 1010 CALL CLRMEM(LVNIM1) @^@[@@WP )@@G@@ CALL CLRMEM(LX0) @^@[@@ CALL CLRMEM(NDIAG)@^@[@@ CALL CWQ )@@G@@LRMEM(LVN) @^@[@@ CALL CLRMEM(LX1) @^@[@@ CALL CLRMEM(LX2) WR )@@G@@@D@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.3)) GO TO 1100 @^@[@@ WS )@@G@@CALL CLRMEM(LX3) @A@[@@ IF (MODE.EQ.1) GO TO 1100 @^@[@@ WT )@@G@@CALL CLRMEM(LTD) @A@[@@ IF (IORD.EQ.1) GO TO 1100 @A@[@@ WU )@@G@@IF (METHOD.EQ.1) GO TO 1100 @^@[@@ CALL CLRMEM(LX4) @A@[@@ WV )@@G@@IF (IORD.EQ.2) GO TO 1100 @^@[@@ CALL CLRMEM(LX5) @A@[@@ WW )@@G@@IF (IORD.EQ.3) GO TO 1100 @^@[@@ CALL CLRMEM(LX6) @A@[@@ WX )@@G@@IF (IORD.EQ.4) GO TO 1100 @^@[@@ CALL CLRMEM(LX7) @^@[@@ 1100 WY )@@G@@CALL SECOND(T2) @B@[@@ RSTATS(LOCTIM)=RSTATS(LOCTIM)+T2-T1 @]@[@@WZ )@@G@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE COMCOF @[@[@@C XA )@@G@@@G@[@@C THIS ROUTINE CALCULATES THE TIMESTEP-DEPENDENT TERMS USED INXB )@@G@@ THE @^@[@@C NUMERICAL INTEGRATION.@[@[@@C @G@[@@ COMMON /TABIXC )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEXD )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2XE )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@XF )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, XG )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,XH )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMXI )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEXJ )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOXK )@@G@@SOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTXL )@@G@@O,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,XM )@@G@@IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEXN )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEXO )@@G@@(1),NODPLC(1),CVALUE(1))@ @[@@ DIMENSION GMAT(7,7) @[@[@@C XP )@@G@@@E@[@@C COMPUTE COEFFICIENTS FOR PARTICULAR INTEGRATION METHOD @[@[@@XQ )@@G@@C @ @[@@ IF (METHOD.NE.1) GO TO 5@ @[@@ IF (IORD.EQ.1) GO XR )@@G@@TO 5 @^@[@@C... TRAPEZOIDAL METHOD@^@[@@ AG(1)=2.0/DELTA @#@[@@XS )@@G@@ GO TO 200 @[@[@@C @A@[@@C CONSTRUCT GEAR COEFFICIENT MATRIXXT )@@G@@@[@[@@C @#@[@@ 5 ISTOP=IORD+1@ @[@@ CALL ZERO8(AG,ISTOP) XU )@@G@@@#@[@@ AG(2)=-1.0 @^@[@@ DO 10 I=1,ISTOP @^@[@@ GMAT(1XV )@@G@@,I)=1.0 @#@[@@ 10 CONTINUE @^@[@@ DO 20 I=2,ISTOP @^@[@@XW )@@G@@ GMAT(I,1)=0.0 @#@[@@ 20 CONTINUE @#@[@@ ARG=0.0 XX )@@G@@@^@[@@ DO 40 I=2,ISTOP @ @[@@ ARG=ARG+DELOLD(I-1) @#@[@@XY )@@G@@ ARG1=1.0 @^@[@@ DO 30 J=2,ISTOP @^@[@@ ARG1=ARG1*ARXZ )@@G@@G @^@[@@ GMAT(J,I)=ARG1 @#@[@@ 30 CONTINUE @#@[@@ 40 YA )@@G@@CONTINUE @[@[@@C @A@[@@C SOLVE FOR GEAR COEFFICIENTS AG(*)@[@[@@YB )@@G@@C @[@[@@C @^@[@@C LU DECOMPOSITION @[@[@@C @^@[@@ YC )@@G@@DO 70 I=2,ISTOP @#@[@@ JSTART=I+1 @A@[@@ IF (JSTART.GT.ISTOYD )@@G@@P) GO TO 70 @ @[@@ DO 60 J=JSTART,ISTOP @A@[@@ GMAT(J,I)=GMYE )@@G@@AT(J,I)/GMAT(I,I) @ @[@@ DO 50 K=JSTART,ISTOP @C@[@@ GMAT(JYF )@@G@@,K)=GMAT(J,K)-GMAT(J,I)*GMAT(I,K) @#@[@@ 50 CONTINUE @#@[@@ 60 YG )@@G@@CONTINUE @#@[@@ 70 CONTINUE @[@[@@C @^@[@@C FORWARD SUBSTITYH )@@G@@UTION @[@[@@C @^@[@@ DO 90 I=2,ISTOP @#@[@@ JSTART=I+1 YI )@@G@@@A@[@@ IF (JSTART.GT.ISTOP) GO TO 90 @ @[@@ DO 80 J=JSTART,ISTYJ )@@G@@OP @A@[@@ AG(J)=AG(J)-GMAT(J,I)*AG(I) @#@[@@ 80 CONTINUE YK )@@G@@@#@[@@ 90 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@YL )@@G@@C @C@[@@ AG(ISTOP)=AG(ISTOP)/GMAT(ISTOP,ISTOP) @#@[@@ YM )@@G@@IR=ISTOP @^@[@@ DO 110 I=2,ISTOP @#@[@@ JSTART=IR @#@[@@YN )@@G@@ IR=IR-1 @ @[@@ DO 100 J=JSTART,ISTOP @A@[@@ AG(IR)YO )@@G@@=AG(IR)-GMAT(IR,J)*AG(J)@#@[@@ 100 CONTINUE @A@[@@ AG(IR)=AG(IRYP )@@G@@)/GMAT(IR,IR) @#@[@@ 110 CONTINUE @[@[@@C @]@[@@C FINISHED YQ )@@G@@@[@[@@C @]@[@@ 200 RETURN@]@[@@ END @ @[@@ SUBROUTINE TYR )@@G@@RUNC(DELNEW)@[@[@@C @F@[@@C THIS ROUTINE DETERMINES THE NEW TRANYS )@@G@@SIENT STEPSIZE BY EITHER@G@[@@C CALLING TERR TO ESTIMATE THE LOCAL TRUNCYT )@@G@@ATION ERROR, OR BY CHECKING @G@[@@C ON THE NUMBER OF ITERATIONS NEEDEDYU )@@G@@ TO CONVERGE AT THE LAST TIMEPOINT. @[@[@@C @G@[@@ COMMON /CIRDYV )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUTYW )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIYX )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICAYY )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MYZ )@@G@@ODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTZA )@@G@@IM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,ZB )@@G@@NOGO,KEOF @F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FOZC )@@G@@RFRE,JTRFLG @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPZD )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOZE )@@G@@DPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ IF (LVLTIM.NE.0) GZF )@@G@@O TO 5@A@[@@ DELNEW=AMIN1(TSTEP,DELMAX) @]@[@@ RETURN@A@[@@ZG )@@G@@ 5 IF (LVLTIM.NE.1) GO TO 10 @#@[@@ DELNEW=DELTA@A@[@@ ZH )@@G@@IF (ITERNO.GT.ITL3) RETURN @B@[@@ DELNEW=AMIN1(2.0*DELTA,TSTEP,DZI )@@G@@ELMAX)@]@[@@ RETURN@[@[@@C @#@[@@C CAPACITORS @[@[@@C ZJ )@@G@@@^@[@@ 10 DELNEW=1.0E20 @^@[@@ LOC=LOCATE(2) @ @[@@ 20 ZK )@@G@@IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCT=NODPLC(LOC+8)@ @[@@ CALL TZL )@@G@@ERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 ZM )@@G@@@[@[@@C @]@[@@C INDUCTORS@[@[@@C @^@[@@ 30 LOC=LOCATE(3) ZN )@@G@@@ @[@@ 40 IF (LOC.EQ.0) GO TO 50 @ @[@@ LOCT=NODPLC(LOC+10) ZO )@@G@@@ @[@@ CALL TERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ZP )@@G@@ GO TO 40 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 50 ZQ )@@G@@LOC=LOCATE(11) @ @[@@ 60 IF (LOC.EQ.0) GO TO 70 @ @[@@ LOCT=NZR )@@G@@ODPLC(LOC+11) @ @[@@ CALL TERR(LOCT+3,DELNEW)@^@[@@ LOC=NOZS )@@G@@DPLC(LOC) @#@[@@ GO TO 60 @[@[@@C @]@[@@C BJTS @[@[@@ZT )@@G@@C @^@[@@ 70 LOC=LOCATE(12) @ @[@@ 80 IF (LOC.EQ.0) GO TO 90 ZU )@@G@@@ @[@@ LOCT=NODPLC(LOC+22) @ @[@@ CALL TERR(LOCT+8,DELNEW)ZV )@@G@@@A@[@@ CALL TERR(LOCT+10,DELNEW) @A@[@@ CALL TERR(LOCT+12,ZW )@@G@@DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@ZX )@@G@@C @]@[@@C JFETS @[@[@@C @^@[@@ 90 LOC=LOCATE(13) @ @[@@ZY )@@G@@ 100 IF (LOC.EQ.0) GO TO 110 @ @[@@ LOCT=NODPLC(LOC+19) @ @[@@ZZ )@@G@@ CALL TERR(LOCT+9,DELNEW)@A@[@@ CALL TERR(LOCT+11,DELNEW) AA )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 100 @[@[@@C @]@[@@AB )@@G@@C MOSFETS @[@[@@C @^@[@@ 110 LOC=LOCATE(14) @ @[@@ 120 IF (LOAC )@@G@@C.EQ.0) GO TO 200 @ @[@@ LOCT=NODPLC(LOC+26) @A@[@@ CALL TAD )@@G@@ERR(LOCT+12,DELNEW) @A@[@@ CALL TERR(LOCT+14,DELNEW) @A@[@@AE )@@G@@ CALL TERR(LOCT+16,DELNEW) @A@[@@ CALL TERR(LOCT+18,DELNEWAF )@@G@@) @A@[@@ CALL TERR(LOCT+20,DELNEW) @^@[@@ LOC=NODPLC(LAG )@@G@@OC) @#@[@@ GO TO 120 @[@[@@C @D@[@@C DELTA IS ALLOWED ONLYAH )@@G@@ TO DOUBLE AT EACH TIMEPOINT @[@[@@C @C@[@@ 200 DELNEW=AMIN1(2.0*DAI )@@G@@ELTA,DELNEW,DELMAX) @]@[@@ RETURN@]@[@@ END @A@[@@ AJ )@@G@@SUBROUTINE TERR(LOCT,DELNEW) @[@[@@C @G@[@@C THIS ROUTINE ESTIMAK )@@G@@ATES THE LOCAL TRUNCATION ERROR FOR A PARTICULAR@G@[@@C CIRCUIT ELEMENT.AL )@@G@@ IT THEN COMPUTES THE APPROPRIATE STEPSIZE WHICH @#@[@@C SHOULD BE AM )@@G@@USED. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAAN )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICAO )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERAP )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQAQ )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYAR )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPAS )@@G@@OL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)AT )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXAU )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONAV )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1AW )@@G@@ GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ AX )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEAY )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@AZ )@@G@@C @[@[@@C @E@[@@ DIMENSION QCAP(1),CCAP(1),DIFF(8),DELTMP(7BA )@@G@@),COEF(6) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)BB )@@G@@) @F@[@@ DATA COEF / 5.000000000E-1, 2.222222222E-1, 1.36363636BC )@@G@@4E-1, @F@[@@ 1 9.600000000E-2, 7.299270073E-2, 5.83090379BD )@@G@@0E-2 /@A@[@@ DATA XTWELV / 8.333333333E-2 /@[@[@@C @[@[@@C BE )@@G@@@G@[@@ TOL=RELTOL*AMAX1(ABS(CCAP(LX0+LOCT)),ABS(CCAP(LX1+LOCT)))+ABBF )@@G@@STOL @F@[@@ CTOL=RELTOL*AMAX1(ABS(QCAP(LX0+LOCT)),ABS(QCAP(LX1+LOCBG )@@G@@T)), @^@[@@ 1 CHGTOL)/DELTA @ @[@@ TOL=AMAX1(TOL,CTOL) BH )@@G@@@[@[@@C @A@[@@C DETERMINE DIVIDED DIFFERENCES @[@[@@C @A@[@@BI )@@G@@ GO TO (6,5,4,3,2,1), IORD @ @[@@ 1 DIFF(8)=QCAP(LX7+LOCT) BJ )@@G@@@ @[@@ 2 DIFF(7)=QCAP(LX6+LOCT) @ @[@@ 3 DIFF(6)=QCAP(LX5+LOCT) BK )@@G@@@ @[@@ 4 DIFF(5)=QCAP(LX4+LOCT) @ @[@@ 5 DIFF(4)=QCAP(LX3+LOCT) BL )@@G@@@ @[@@ 6 DIFF(3)=QCAP(LX2+LOCT) @ @[@@ DIFF(2)=QCAP(LX1+LOCT) BM )@@G@@@ @[@@ DIFF(1)=QCAP(LX0+LOCT) @#@[@@ ISTOP=IORD+1@^@[@@ BN )@@G@@DO 10 I=1,ISTOP @ @[@@ DELTMP(I)=DELOLD(I) @#@[@@ 10 CONTINBO )@@G@@UE @^@[@@ 20 DO 30 I=1,ISTOP @C@[@@ DIFF(I)=(DIFF(I)-DIFF(I+BP )@@G@@1))/DELTMP(I) @#@[@@ 30 CONTINUE @^@[@@ ISTOP=ISTOP-1 BQ )@@G@@@A@[@@ IF (ISTOP.EQ.0) GO TO 100 @^@[@@ DO 40 I=1,ISTOP BR )@@G@@@B@[@@ DELTMP(I)=DELTMP(I+1)+DELOLD(I) @#@[@@ 40 CONTINUE BS )@@G@@@#@[@@ GO TO 20 @[@[@@C @B@[@@C DIFF(1) CONTAINS DIVIDED DIBT )@@G@@FFERENCE @[@[@@C @^@[@@ 100 CONST=COEF(IORD) @D@[@@ IF ((MBU )@@G@@ETHOD.EQ.1).AND.(IORD.EQ.2)) CONST=XTWELV @D@[@@ DEL=TRTOL*TOL/AMAXBV )@@G@@1(ABSTOL,CONST*ABS(DIFF(1))) @ @[@@ IF (IORD.EQ.1) GO TO 200@ @[@@BW )@@G@@ IF (IORD.GE.3) GO TO 150@^@[@@ DEL=SQRT(DEL) @#@[@@ BX )@@G@@GO TO 200 @A@[@@ 150 DEL=EXP(ALOG(DEL)/FLOAT(IORD))@ @[@@ 200 DELNEWBY )@@G@@=AMIN1(DELNEW,DEL)@]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUBZ )@@G@@TINE SORUPD @[@[@@C @G@[@@C THIS ROUTINE UPDATES THE INDEPENDENTCA )@@G@@ VOLTAGE AND CURRENT SOURCES @G@[@@C USED IN THE CIRCUIT. IT ALSO UPDACB )@@G@@TES THE LTD TABLE (WHICH CONTAINS @G@[@@C PREVIOUS (DELAYED) VALUES OFCC )@@G@@ THE SOURCES USED TO MODEL TRANSMISSION @]@[@@C LINES). @[@[@@C CD )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUCE )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,CF )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILCG )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWCH )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,CI )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@CJ )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, CK )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONCL )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1CM )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2CN )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,CO )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLCP )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@CQ )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVACR )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ CS )@@G@@DO 500 ID=9,10 @^@[@@ LOC=LOCATE(ID) @ @[@@ 10 IF (LOC.EQ.0CT )@@G@@) GO TO 500 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ LOCP=NODPLC(LOC+5)CU )@@G@@@ @[@@ ITYPE=NODPLC(LOC+4)+1 @C@[@@ GO TO (490,100,200,300,4CV )@@G@@00,450), ITYPE @[@[@@C @#@[@@C PULSE SOURCE @[@[@@C @^@[@@CW )@@G@@ 100 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ T1=VALCX )@@G@@UE(LOCP+3) @^@[@@ T2=VALUE(LOCP+4) @^@[@@ T3=VALUE(LOCP+5) CY )@@G@@@^@[@@ T4=VALUE(LOCP+6) @ @[@@ PERIOD=VALUE(LOCP+7) @#@[@@CZ )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.LE.0.0) GO TO 160 @B@[@@ 110 DA )@@G@@IF (TIME1.LT.T1+PERIOD) GO TO 120 @^@[@@ TIME1=TIME1-PERIOD@#@[@@DB )@@G@@ GO TO 110 @A@[@@ 120 IF (TIME1.LT.T4) GO TO 130 @^@[@@ DC )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 130 IF (TIME1.LT.T3) GDD )@@G@@O TO 140 @D@[@@ VALUE(LOCV+1)=V2+(TIME1-T3)*(V1-V2)/(T4-T3) DE )@@G@@@#@[@@ GO TO 490 @A@[@@ 140 IF (TIME1.LT.T2) GO TO 150 @^@[@@DF )@@G@@ VALUE(LOCV+1)=V2 @#@[@@ GO TO 490 @A@[@@ 150 IF (TIME1.LTDG )@@G@@.T1) GO TO 160 @D@[@@ VALUE(LOCV+1)=V1+(TIME1-T1)*(V2-V1)/(T2-T1DH )@@G@@) @#@[@@ GO TO 490 @^@[@@ 160 VALUE(LOCV+1)=V1 @#@[@@ DI )@@G@@GO TO 490 @[@[@@C @^@[@@C SINUSOIDAL SOURCE @[@[@@C @^@[@@DJ )@@G@@ 200 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ OMEG=VDK )@@G@@ALUE(LOCP+3)@^@[@@ T1=VALUE(LOCP+4) @ @[@@ THETA=VALUE(LOCP+5DL )@@G@@) @^@[@@ TIME1=TIME-T1 @A@[@@ IF (TIME1.GT.0.0) GO TO DM )@@G@@210 @^@[@@ VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 210 DN )@@G@@IF (THETA.NE.0.0) GO TO 220 @B@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEG*TDO )@@G@@IME1) @#@[@@ GO TO 490 @E@[@@ 220 VALUE(LOCV+1)=V1+V2*SIN(OMEG*TDP )@@G@@IME1)*EXP(-TIME1*THETA) @#@[@@ GO TO 490 @[@[@@C @^@[@@C EXPDQ )@@G@@ONENTIAL SOURCE @[@[@@C @^@[@@ 300 V1=VALUE(LOCP+1) @^@[@@ DR )@@G@@V2=VALUE(LOCP+2) @^@[@@ T1=VALUE(LOCP+3) @^@[@@ TAU1=VALUE(LDS )@@G@@OCP+4)@^@[@@ T2=VALUE(LOCP+5) @^@[@@ TAU2=VALUE(LOCP+6)@#@[@@DT )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.GT.T1) GO TO 310 @^@[@@ DU )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 310 IF (TIME1.GT.T2) GDV )@@G@@O TO 320 @E@[@@ VALUE(LOCV+1)=V1+(V2-V1)*(1.0-EXP((T1-TIME1)/TAUDW )@@G@@1)) @#@[@@ GO TO 490 @E@[@@ 320 VALUE(LOCV+1)=V1+(V2-V1)*(1.0-DX )@@G@@EXP((T1-TIME1)/TAU1)) @C@[@@ 1 +(V1-V2)*(1.0-EXP((T2-TIME1)/TAU2DY )@@G@@)) @#@[@@ GO TO 490 @[@[@@C @ @[@@C PIECEWISE-LINEAR SOURDZ )@@G@@CE @[@[@@C @^@[@@ 400 T1=VALUE(LOCP+1) @^@[@@ V1=VALUE(LOCEA )@@G@@P+2) @^@[@@ T2=VALUE(LOCP+3) @^@[@@ V2=VALUE(LOCP+4) @]@[@@EB )@@G@@ IKNT=4@A@[@@ 410 IF (TIME.LE.T2) GO TO 420 @]@[@@ T1=T2 EC )@@G@@@]@[@@ V1=V2 @ @[@@ T2=VALUE(LOCP+IKNT+1) @ @[@@ V2=VALED )@@G@@UE(LOCP+IKNT+2) @#@[@@ IKNT=IKNT+2 @#@[@@ GO TO 410 @D@[@@EE )@@G@@ 420 VALUE(LOCV+1)=V1+((TIME-T1)/(T2-T1))*(V2-V1) @#@[@@ GO TO EF )@@G@@490 @[@[@@C @^@[@@C SINGLE-FREQUENCY FM @[@[@@C @^@[@@ 450 EG )@@G@@V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @ @[@@ OMEGC=VALUE(EH )@@G@@LOCP+3) @^@[@@ XMOD=VALUE(LOCP+4)@ @[@@ OMEGS=VALUE(LOCP+5EI )@@G@@) @F@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEGC*TIME+XMOD*SIN(OMEGS*TIMEEJ )@@G@@)) @^@[@@ 490 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @#@[@@ 500 EK )@@G@@CONTINUE @[@[@@C @A@[@@C UPDATE TRANSMISSION LINE SOURCES @[@[@@EL )@@G@@C @B@[@@ IF (JELCNT(17).EQ.0) GO TO 1000 @A@[@@ IF (MOEM )@@G@@DE.NE.2) GO TO 1000 @ @[@@ CALL SIZMEM(LTD,LTDSIZ) @^@[@@ EN )@@G@@NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LT.3) GO TO 900 @^@[@@ EO )@@G@@LOC=LOCATE(17) @ @[@@ 610 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NEP )@@G@@ODPLC(LOC+1)@^@[@@ TD=VALUE(LOCV+2) @^@[@@ BAKTIM=TIME-TD EQ )@@G@@@A@[@@ IF (BAKTIM.LT.0.0) GO TO 640 @ @[@@ LTDPTR=NODPLC(LOC+ER )@@G@@30) @#@[@@ ICNTR=2 @]@[@@ L1=LTD@#@[@@ L2=L1+NTLIN ES )@@G@@@#@[@@ L3=L2+NTLIN @^@[@@ T1=VALUE(L1+1) @^@[@@ T2=VALET )@@G@@UE(L2+1) @^@[@@ 620 T3=VALUE(L3+1) @^@[@@ ICNTR=ICNTR+1 EU )@@G@@@A@[@@ IF (BAKTIM.LE.T3) GO TO 630 @A@[@@ IF (ICNTR.EQ.NUMTDEV )@@G@@) GO TO 900 @]@[@@ L1=L2 @]@[@@ L2=L3 @#@[@@ L3=L2+NTLIN EW )@@G@@@]@[@@ T1=T2 @]@[@@ T2=T3 @#@[@@ GO TO 620 @#@[@@ 630 EX )@@G@@DT1T2=T1-T2 @#@[@@ DT1T3=T1-T3 @#@[@@ DT2T3=T2-T3 @ @[@@ EY )@@G@@TDNOM1=1.0/(DT1T2*DT1T3)@A@[@@ TDNOM2=-1.0/(DT1T2*DT2T3) @ @[@@EZ )@@G@@ TDNOM3=1.0/(DT2T3*DT1T3)@^@[@@ DTT1=BAKTIM-T1 @^@[@@ FA )@@G@@DTT2=BAKTIM-T2 @^@[@@ DTT3=BAKTIM-T3 @ @[@@ TFACT1=DTT2*FB )@@G@@DTT3*TDNOM1 @ @[@@ TFACT2=DTT1*DTT3*TDNOM2 @ @[@@ TFACT3=DTT1*FC )@@G@@DTT2*TDNOM3 @G@[@@ VALUE(LOCV+3)=VALUE(L1+LTDPTR+0)*TFACT1+VALUE(L2FD )@@G@@+LTDPTR+0)*TFACT2 @A@[@@ 1 +VALUE(L3+LTDPTR+0)*TFACT3 @G@[@@ FE )@@G@@VALUE(LOCV+4)=VALUE(L1+LTDPTR+1)*TFACT1+VALUE(L2+LTDPTR+1)*TFACT2 @A@[@@FF )@@G@@ 1 +VALUE(L3+LTDPTR+1)*TFACT3 @^@[@@ 640 LOC=NODPLC(LOC) @#@[@@FG )@@G@@ GO TO 610 @[@[@@C @D@[@@C INTERNAL LOGIC ERROR: LESS THAN FH )@@G@@3 ENTRIES IN LTD @[@[@@C @]@[@@ 900 NOGO=1@A@[@@ WRITE (6,901FI )@@G@@) NUMTD,ICNTR @F@[@@ 901 FORMAT(^0*ABORT*: INTERNAL SPICE ERROR: FJ )@@G@@SORUPD: ^,2I5/) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 FK )@@G@@RETURN@]@[@@ END @ @[@@ SUBROUTINE ITER8(ITLIM) @[@[@@C FL )@@G@@@G@[@@C THIS ROUTINE DRIVES THE NEWTON-RAPHSON ITERATION TECHNIQUE UFM )@@G@@SED TO@C@[@@C SOLVE THE SET OF NONLINEAR CIRCUIT EQUATIONS. @[@[@@C FN )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUFO )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,FP )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILFQ )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWFR )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,FS )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@FT )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, FU )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX FV )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NFW )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ FX )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@FY )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@FZ )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IGA )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITGB )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @A@[@@ COMMON /DEBUG/ IDEBUG(20GC )@@G@@) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)GD )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1GE )@@G@@),CVALUE(1))@[@[@@C @[@[@@C @#@[@@ IGOOF=0 @#@[@@ GF )@@G@@ITERNO=0 @#@[@@ NDRFLO=0 @#@[@@ NONCON=0 @[@[@@C GG )@@G@@@D@[@@C CONSTRUCT LINEAR EQUATIONS AND CHECK CONVERGENCE @[@[@@C GH )@@G@@@#@[@@ 10 CALL LOAD @A@[@@ IF (IDEBUG(1).LE.0) GO TO 15 @ @[@@GI )@@G@@ CALL DMPMAT(8HITER8 ) @ @[@@ IDEBUG(1)=IDEBUG(1)-1 @G@[@@GJ )@@G@@ 15 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 GK )@@G@@@^@[@@ ITERNO=ITERNO+1 @B@[@@ GO TO (20,30,40,50,50,50),INITGL )@@G@@F @A@[@@ 20 IF (NONCON.EQ.0) GO TO 300 @#@[@@ GO TO 100 GM )@@G@@@#@[@@ 30 INITF=3 @ @[@@ 40 IF (NONCON.EQ.0) INITF=1@#@[@@ GN )@@G@@GO TO 100 @#@[@@ 50 INITF=1 @[@[@@C @B@[@@C SOLVE EQUATIONSGO )@@G@@ FOR NEXT ITERATION @[@[@@C @A@[@@ 100 IF (ITERNO.GE.ITLIM) GO GP )@@G@@TO 200@A@[@@ IF (LVLCOD.EQ.2) GO TO 110 @#@[@@ CALL DCDCMP GQ )@@G@@@#@[@@ CALL DCSOL @#@[@@ GO TO 120 @B@[@@ 110 CALL CODEXC(GR )@@G@@NODPLC(MACINS+1),LVN) @A@[@@ 120 IF (IGOOF.EQ.0) GO TO 130 @^@[@@GS )@@G@@ NDRFLO=NDRFLO+1 @#@[@@ IGOOF=0 @^@[@@ 130 VALUE(LVN+1)GT )@@G@@=0.0 @#@[@@ NTEMP=NONCON@#@[@@ NONCON=0 @A@[@@ IF (NTGU )@@G@@EMP.GT.0) GO TO 150 @A@[@@ IF (ITERNO.EQ.1) GO TO 150 @^@[@@GV )@@G@@ DO 140 I=2,NUMNOD @ @[@@ VOLD=VALUE(LVNIM1+I) @^@[@@ GW )@@G@@VNEW=VALUE(LVN+I) @D@[@@ TOL=RELTOL*AMAX1(ABS(VOLD),ABS(VNEW))+VNTOGX )@@G@@L @B@[@@ IF (ABS(VOLD-VNEW).LE.TOL) GO TO 140@^@[@@ NONCONGY )@@G@@=NONCON+1 @#@[@@ 140 CONTINUE @D@[@@ 150 CALL COPY8(VALUE(LVN+1),GZ )@@G@@VALUE(LVNIM1+1),NSTOP) @#@[@@ GO TO 10 @[@[@@C @#@[@@C NO HA )@@G@@CONVERGENCE @[@[@@C @#@[@@ 200 IGOOF=1 @A@[@@ 300 IF (NDRFLO.EHB )@@G@@Q.0) GO TO 400 @ @[@@ WRITE (6,301) NDRFLO @E@[@@ 301 FORMATHC )@@G@@(^0WARNING: UNDERFLOW OCCURRED ^,I4,^ TIME(S)^)@[@[@@C @]@[@@C FINHD )@@G@@ISHED @[@[@@C @]@[@@ 400 RETURN@]@[@@ END @^@[@@ IDHE )@@G@@ENT CODEXC @^@[@@ ENTRY CODEXC @B@[@@ TITLE EXECUTEHF )@@G@@ MACHINE CODE @D@[@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISHG )@@G@@TERS @D@[@@COMPILER MICRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@[@@HH )@@G@@SYSTEM SPACE 4@G@[@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATINGHI )@@G@@ SYSTEM IS NOT SCOPE @E@[@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTHJ )@@G@@O FOR CALIDOSCOPE @#@[@@RUN SPACE 4@A@[@@RUN IFC EQ,*^COHK )@@G@@MPILER^*RUN*@^@[@@ASMARG OPSYN NIL @#@[@@RUN ENDIF @#@[@@HL )@@G@@FTN SPACE 4@A@[@@FTN IFC EQ,*^COMPILER^*FTN*@#@[@@ASMARGHM )@@G@@ MACRO N@^@[@@ LOCAL CNT @^@[@@ SB1 X1 HN )@@G@@@^@[@@ASMARG IFGT N,1 @#@[@@CNT SET 1@#@[@@ SBHO )@@G@@7 1@^@[@@ASMARG DUP N-1 @^@[@@CNT SET CNT+1 @^@[@@HP )@@G@@ SA1 A1+B7 @^@[@@ SB.CNT X1 @#@[@@ASMARG ENHQ )@@G@@DD @#@[@@ASMARG ENDIF @#@[@@ASMARG ENDM @#@[@@FTN ENHR )@@G@@DIF @A@[@@ TITLE THE REAL THING @C@[@@* CALL CODHS )@@G@@EXC(NODPLC(MACINS+1),LVN) @G@[@@* THIS ROUTINE INTERFACES THE FOHT )@@G@@RTRAN ROUTINES TO THE GENERATED @B@[@@* CODE PRODUCED BY SUBROUTINE HU )@@G@@CODGEN. @#@[@@ SPACE 1@C@[@@CODEXC BSS 1 HV )@@G@@ ENTRY/EXIT @#@[@@ SPACE 1@#@[@@ ASMARG 2@#@[@@HW )@@G@@ SPACE 1@F@[@@ SA1 CODEXC SIMULATE AN *HX )@@G@@RJ* INSTRUCTION @A@[@@ BX6 X1 .@B@[@@ HY )@@G@@ SA6 B1 . DONE@D@[@@ SA1 B2 HZ )@@G@@ SET UP LVN IN B6 @A@[@@ SB6 X1 .@#@[@@IA )@@G@@ SPACE 1@D@[@@ JP B1+1 GO EXECUTE THIB )@@G@@E CODE@#@[@@ SPACE 1@#@[@@ END @^@[@@ SUBROUIC )@@G@@TINE LOAD @[@[@@C @G@[@@C THIS ROUTINE ZEROES-OUT AND THEN LOAID )@@G@@DS THE COEFFICIENT MATRIX. @G@[@@C THE ACTIVE DEVICES AND THE CONTROLIE )@@G@@LED SOURCES ARE LOADED BY SEPARATE @#@[@@C SUBROUTINES. @[@[@@C IF )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUIG )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,IH )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILII )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWIJ )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,IK )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@IL )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, IM )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONIN )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1IO )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2IP )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IQ )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLIR )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLIS )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNIT )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /AC/ FSTART,FSTOPIU )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NIV )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPIW )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@IX )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ IY )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))IZ )@@G@@@[@[@@C @[@[@@C @A@[@@ DIMENSION QCAP(1),CCAP(1) @E@[@@JA )@@G@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)) @A@[@@ JB )@@G@@DIMENSION FIND(1),VIND(1) @E@[@@ EQUIVALENCE (FIND(1),VALUE(1))JC )@@G@@,(VIND(1),VALUE(2)) @[@[@@C @A@[@@C ZERO Y MATRIX AND CURRENT VJD )@@G@@ECTOR @[@[@@C @D@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP+NSTOP+NUT+NLJE )@@G@@T) @[@[@@C @]@[@@C RESISTORS@[@[@@C @^@[@@ LOC=LOCATE(1JF )@@G@@) @ @[@@ 20 IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCV=NODPLC(LOC+1)JG )@@G@@@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@JH )@@G@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) JI )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LJJ )@@G@@OC+4) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NOJK )@@G@@DPLC(LOC+5) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @^@[@@ LOC=NOJL )@@G@@DPLC(LOC) @#@[@@ GO TO 20 @[@[@@C @#@[@@C CAPACITORS JM )@@G@@@[@[@@C @^@[@@ 30 LOC=LOCATE(2) @D@[@@ IF ((MODE.EQ.1).ANJN )@@G@@D.(MODEDC.NE.2)) GO TO 100 @ @[@@ 40 IF (LOC.EQ.0) GO TO 100 @^@[@@JO )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ JP )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ LOCT=NODPLC(LOC+8)@D@[@@ VCAP=VJQ )@@G@@ALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2) @ @[@@ IF (INITF.NE.6) GOJR )@@G@@ TO 50@A@[@@ QCAP(LX0+LOCT)=QCAP(LX1+LOCT) @#@[@@ GO TO 60 JS )@@G@@@B@[@@ 50 QCAP(LX0+LOCT)=VALUE(LOCV+1)*VCAP @ @[@@ IF (INITF.NEJT )@@G@@.5) GO TO 60@F@[@@ IF (NOSOLV.NE.0) QCAP(LX0+LOCT)=VALUE(LOCV+1)*VAJU )@@G@@LUE(LOCV+2) @A@[@@ QCAP(LX1+LOCT)=QCAP(LX0+LOCT) @ @[@@ 60 IF (MOJV )@@G@@DE.EQ.1) GO TO 90 @C@[@@ CALL INTGR8(GEQ,CEQ,VALUE(LOCV+1),LOCT) JW )@@G@@@ @[@@ IF (INITF.NE.5) GO TO 70@A@[@@ CCAP(LX1+LOCT)=CCAP(LX0+JX )@@G@@LOCT) @ @[@@ 70 LOCY=LYNL+NODPLC(LOC+4) @A@[@@ VALUE(LOCY)=VALUE(JY )@@G@@LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=JZ )@@G@@VALUE(LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ VALUE(KA )@@G@@LOCY)=VALUE(LOCY)-GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@ KB )@@G@@VALUE(LOCY)=VALUE(LOCY)-GEQ @C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODKC )@@G@@E1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@KD )@@G@@ 90 LOC=NODPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDKE )@@G@@UCTORS@[@[@@C @A@[@@ 100 IF (JELCNT(3).EQ.0) GO TO 400 @ @[@@ KF )@@G@@IF (MODE.EQ.1) GO TO 150@A@[@@ IF (INITF.EQ.6) GO TO 150 @^@[@@KG )@@G@@ LOC=LOCATE(3) @ @[@@ 110 IF (LOC.EQ.0) GO TO 120 @^@[@@ KH )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+4)@ @[@@ LOCT=NODPLC(KI )@@G@@LOC+10) @D@[@@ FIND(LX0+LOCT)=VALUE(LOCV+1)*VALUE(LVNIM1+IPTR) KJ )@@G@@@B@[@@ IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) @D@[@@ 1 FIND(LX0+KK )@@G@@LOCT)=VALUE(LOCV+1)*VALUE(LOCV+2) @^@[@@ LOC=NODPLC(LOC) @#@[@@KL )@@G@@ GO TO 110 @^@[@@ 120 LOC=LOCATE(4) @ @[@@ 130 IF (LOC.EQ.0KM )@@G@@) GO TO 150 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ NL1=NODPLC(LOC+2) KN )@@G@@@^@[@@ NL2=NODPLC(LOC+3) @ @[@@ IPTR1=NODPLC(NL1+4) @ @[@@KO )@@G@@ IPTR2=NODPLC(NL2+4) @ @[@@ LOCT1=NODPLC(NL1+10) @ @[@@KP )@@G@@ LOCT2=NODPLC(NL2+10) @G@[@@ FIND(LX0+LOCT1)=FIND(LX0+LOCT1KQ )@@G@@)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR2) @G@[@@ FIND(LX0+LOCT2)=FIND(LX0KR )@@G@@+LOCT2)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR1) @^@[@@ LOC=NODPLC(LOC) KS )@@G@@@#@[@@ GO TO 130 @^@[@@ 150 LOC=LOCATE(3) @ @[@@ 160 IF (LOKT )@@G@@C.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(KU )@@G@@LOC+4)@ @[@@ LOCT=NODPLC(LOC+10) @ @[@@ IF (MODE.NE.1) GO KV )@@G@@TO 200@#@[@@ VEQ=0.0 @#@[@@ REQ=0.0 @#@[@@ GO TO KW )@@G@@210 @A@[@@ 200 IF (INITF.NE.6) GO TO 205 @A@[@@ FIND(LX0+LOCKX )@@G@@T)=FIND(LX1+LOCT) @#@[@@ GO TO 210 @A@[@@ 205 IF (INITF.NE.5) GOKY )@@G@@ TO 210 @A@[@@ FIND(LX1+LOCT)=FIND(LX0+LOCT) @ @[@@ 210 IF (MOKZ )@@G@@DE.EQ.1) GO TO 250@C@[@@ CALL INTGR8(REQ,VEQ,VALUE(LOCV+1),LOCT) LA )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 250 @A@[@@ VIND(LX1+LOCT)=VINLB )@@G@@D(LX0+LOCT) @ @[@@ 250 VALUE(LVN+IPTR)=VEQ @ @[@@ LOCY=LYNL+NOLC )@@G@@DPLC(LOC+9) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LLD )@@G@@OC+5) @^@[@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+6) LE )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @^@[@@LF )@@G@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) @^@[@@ LG )@@G@@VALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 160 LH )@@G@@@[@[@@C @^@[@@C MUTUAL INDUCTANCES @[@[@@C @^@[@@ 300 LOC=LOLI )@@G@@CATE(4) @ @[@@ 310 IF (LOC.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(LJ )@@G@@LOC+1)@ @[@@ REQ=AG(1)*VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LLK )@@G@@OC+4) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) LL )@@G@@@^@[@@ VALUE(LOCY)=-REQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ LM )@@G@@GO TO 310 @[@[@@C @A@[@@C NONLINEAR CONTROLLED SOURCES @[@[@@LN )@@G@@C @#@[@@ 400 CALL NLCSRC @[@[@@C @#@[@@C VOLTAGE SOURCES@[@[@@LO )@@G@@C @^@[@@ LOC=LOCATE(9) @ @[@@ 610 IF (LOC.EQ.0) GO TO 700 LP )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+6)@A@[@@ LQ )@@G@@VALUE(LVN+IPTR)=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@LR )@@G@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) LS )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LLT )@@G@@OC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NOLU )@@G@@DPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @^@[@@ LOC=NOLV )@@G@@DPLC(LOC) @#@[@@ GO TO 610 @[@[@@C @#@[@@C CURRENT SOURCESLW )@@G@@@[@[@@C @^@[@@ 700 LOC=LOCATE(10) @ @[@@ 710 IF (LOC.EQ.0) GO TLX )@@G@@O 800 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) LY )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @^@[@@ VAL=VALUE(LOCV+1) @C@[@@LZ )@@G@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-VAL @C@[@@ VALUE(LVN+NOMA )@@G@@DE2)=VALUE(LVN+NODE2)+VAL @^@[@@ LOC=NODPLC(LOC) @#@[@@ MB )@@G@@GO TO 710 @[@[@@C @ @[@@C CALL DEVICE MODEL ROUTINES @[@[@@C MC )@@G@@@#@[@@ 800 CALL DIODE @#@[@@ CALL BJT @#@[@@ CALL JFET MD )@@G@@@#@[@@ CALL MOSFET @[@[@@C @^@[@@C TRANSMISSION LINES @[@[@@ME )@@G@@C @^@[@@ LOC=LOCATE(17) @ @[@@ 910 IF (LOC.EQ.0) GO TO 1000MF )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ Z0=VALUE(LOCV+1) @#@[@@ MG )@@G@@Y0=1.0/Z0 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLCMH )@@G@@(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLCMI )@@G@@(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ IBR2=NODPLC(LOC+9)MJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+MK )@@G@@Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@^@[@@ VALUE(LOCY)=-Y0 ML )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@MM )@@G@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+Y0 MN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@MO )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@^@[@@ VALUE(LOCY)=-Y0 @ @[@@ MP )@@G@@LOCY=LYNL+NODPLC(LOC+16)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LMQ )@@G@@YNL+NODPLC(LOC+17)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NOMR )@@G@@DPLC(LOC+18)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LYNL+NODPLC(LMS )@@G@@OC+19)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+20)MT )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@^@[@@MU )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+27)@^@[@@ MV )@@G@@VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@^@[@@ VALUE(MW )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@^@[@@ VALUE(LOCY)=MX )@@G@@-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+32)@^@[@@ VALUE(LOCY)=-Y0 MY )@@G@@@ @[@@ IF (MODE.NE.1) GO TO 920@ @[@@ LOCY=LYNL+NODPLC(LOC+21)MZ )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@^@[@@NA )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ NB )@@G@@VALUE(LOCY)=-(1.0-GMIN)*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@^@[@@NC )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+26)@^@[@@ ND )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(NE )@@G@@LOCY)=-(1.0-GMIN)*Z0 @#@[@@ GO TO 950 @A@[@@ 920 IF (INITF.NENF )@@G@@.5) GO TO 930 @A@[@@ IF (NOSOLV.NE.0) GO TO 925 @E@[@@ NG )@@G@@VALUE(LOCV+3)=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VANH )@@G@@LUE(LVNIM1+IBR2)*Z0 @E@[@@ VALUE(LOCV+4)=VALUE(LVNIM1+NODE1)-VANI )@@G@@LUE(LVNIM1+NODE2) @A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ NJ )@@G@@GO TO 930 @D@[@@ 925 VALUE(LOCV+3)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 NK )@@G@@@D@[@@ VALUE(LOCV+4)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @A@[@@ 930 NL )@@G@@VALUE(LVN+IBR1)=VALUE(LOCV+3) @A@[@@ VALUE(LVN+IBR2)=VALUE(LOCV+4) NM )@@G@@@^@[@@ 950 LOC=NODPLC(LOC) @#@[@@ GO TO 910 @[@[@@C @ @[@@NN )@@G@@C REORDER RIGHT-HAND SIDE @[@[@@C @^@[@@ 1000 DO 1110 I=2,NSTOP NO )@@G@@@^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) NP )@@G@@@#@[@@ 1110 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+NQ )@@G@@1),NSTOP) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURNNR )@@G@@@]@[@@ END @^@[@@ SUBROUTINE NLCSRC @[@[@@C @F@[@@C NS )@@G@@THIS ROUTINE LOADS THE NONLINEAR CONTROLLED SOURCES INTO THE@^@[@@C COEFNT )@@G@@FICIENT MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NU )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFONV )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NNW )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISNX )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0NY )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5NZ )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50OA )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IOB )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)OC )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXOD )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONOE )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1OF )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ OG )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@OH )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@OI )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ OJ )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))OK )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE-CONTROLLED CURRENT SOURCES @[@[@@OL )@@G@@C @^@[@@ LOC=LOCATE(5) @ @[@@ 10 IF (LOC.EQ.0) GO TO 100 OM )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) ON )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LNOD=NODPLC(LOC+6)@^@[@@ OO )@@G@@LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8) @B@[@@ CALL SOP )@@G@@IZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NODPLC(LOC+9)@ @[@@ OQ )@@G@@LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LOC+11)@ @[@@ LOCT=NOR )@@G@@ODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@ DO 20 I=1,NDIM OS )@@G@@@G@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),OT )@@G@@2, @#@[@@ 1 JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) OU )@@G@@@#@[@@ LOCT=LOCT+2 @#@[@@ LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(OV )@@G@@ICHECK,JCHECK) @#@[@@ 20 CONTINUE @D@[@@ CALL EVPOLY(COLD,0OW )@@G@@,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+12) @A@[@@OX )@@G@@ IF (ICHECK.EQ.0) GO TO 30 @ @[@@ IF (INITF.EQ.6) GO TO 30OY )@@G@@@F@[@@ TOL=RELTOL*AMAX1(ABS(COLD),ABS(VALUE(LX0+LOCT)))+ABSTOL OZ )@@G@@@D@[@@ IF (ABS(COLD-VALUE(LX0+LOCT)).LT.TOL) GO TO 40 @^@[@@ 30 PA )@@G@@NONCON=NONCON+1 @ @[@@ 40 VALUE(LX0+LOCT)=COLD @#@[@@ CEQ=COPB )@@G@@LD @^@[@@ DO 50 I=1,NDIM @D@[@@ CALL EVPOLY(GEQ,I,LCOEF,PC )@@G@@NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOPD )@@G@@CT)=GEQ @A@[@@ CEQ=CEQ-GEQ*VALUE(LARG+I) @ @[@@ LOCY=LPE )@@G@@YNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEQ @ @[@@ PF )@@G@@LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ @ @[@@PG )@@G@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ PH )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+PI )@@G@@GEQ @#@[@@ LMAT=LMAT+4 @#@[@@ 50 CONTINUE @C@[@@ VALUE(PJ )@@G@@LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LPK )@@G@@VN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 10 PL )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@PM )@@G@@C @^@[@@ 100 LOC=LOCATE(6) @ @[@@ 110 IF (LOC.EQ.0) GO TO 200 PN )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) PO )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IPTR=NODPLC(LOC+6)@^@[@@ PP )@@G@@LNOD=NODPLC(LOC+7)@^@[@@ LMAT=NODPLC(LOC+8)@ @[@@ LCOEF=NODPLCPQ )@@G@@(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOEF) @ @[@@ PR )@@G@@LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11) @^@[@@ PS )@@G@@LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 @#@[@@ ICHECKPT )@@G@@=0 @^@[@@ DO 120 I=1,NDIM @G@[@@ CALL UPDATE(VALUE(LIC+I)PU )@@G@@,LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),2, @#@[@@ 1 JCHECK) @A@[@@PV )@@G@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 @#@[@@ PW )@@G@@LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 120 CONTINPX )@@G@@UE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@PY )@@G@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.EQ.0) GO TO 130 PZ )@@G@@@A@[@@ IF (INITF.EQ.6) GO TO 130 @E@[@@ TOL=RELTOL*AMAX1(AQA )@@G@@BS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABS(VOLT-VALUE(LX0+LQB )@@G@@OCT)).LT.TOL) GO TO 140 @^@[@@ 130 NONCON=NONCON+1 @ @[@@ 140 VALUE(QC )@@G@@LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(LVNIM1+IPTR)@#@[@@QD )@@G@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ VALUE(QE )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ VALUE(LOCY)=QF )@@G@@-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ VALUE(LOCY)=+1.0 QG )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(LOCY)=-1.0 @#@[@@QH )@@G@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ DO 150 I=1,NDIM QI )@@G@@@D@[@@ CALL EVPOLY(VGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ QJ )@@G@@LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=VGAIN @A@[@@ VEQ=VEQ-VGAIQK )@@G@@N*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(QL )@@G@@LOCY)=VALUE(LOCY)-VGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ QM )@@G@@VALUE(LOCY)=VALUE(LOCY)+VGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 150 CONTINQN )@@G@@UE @ @[@@ VALUE(LVN+IPTR)=VEQ @^@[@@ LOC=NODPLC(LOC) QO )@@G@@@#@[@@ GO TO 110 @[@[@@C @C@[@@C NONLINEAR CURRENT-CONTROLLEQP )@@G@@D CURRENT SOURCES @[@[@@C @^@[@@ 200 LOC=LOCATE(7) @ @[@@ 210 QQ )@@G@@IF (LOC.EQ.0) GO TO 300 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ QR )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LVS=NOQS )@@G@@DPLC(LOC+6) @^@[@@ LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8QT )@@G@@) @B@[@@ CALL SIZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NQU )@@G@@ODPLC(LOC+9)@ @[@@ LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LQV )@@G@@OC+11)@ @[@@ LOCT=NODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@QW )@@G@@ DO 220 I=1,NDIM @^@[@@ IPTR=NODPLC(LVS+I)@ @[@@ IPTR=NQX )@@G@@ODPLC(IPTR+6) @D@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,IPTR,1,2,JCHQY )@@G@@ECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 QZ )@@G@@@A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 220 CONTINUE @D@[@@RA )@@G@@ CALL EVPOLY(CSRC,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NRB )@@G@@ODPLC(LOC+12) @A@[@@ IF (ICHECK.EQ.0) GO TO 230 @A@[@@ RC )@@G@@IF (INITF.EQ.6) GO TO 230 @F@[@@ TOL=RELTOL*AMAX1(ABS(CSRC),ABSRD )@@G@@(VALUE(LX0+LOCT)))+ABSTOL @D@[@@ IF (ABS(CSRC-VALUE(LX0+LOCT)).RE )@@G@@LT.TOL) GO TO 240 @^@[@@ 230 NONCON=NONCON+1 @ @[@@ 240 VALUE(LX0+LORF )@@G@@CT)=CSRC @#@[@@ CEQ=CSRC @^@[@@ DO 250 I=1,NDIM @D@[@@RG )@@G@@ CALL EVPOLY(CGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LRH )@@G@@OCT+2 @ @[@@ VALUE(LX0+LOCT)=CGAIN @A@[@@ CEQ=CEQ-CGAIN*VALURI )@@G@@E(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=RJ )@@G@@VALUE(LOCY)+CGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(RK )@@G@@LOCY)=VALUE(LOCY)-CGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 250 CONTINUE RL )@@G@@@C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(RM )@@G@@LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@RN )@@G@@ GO TO 210 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTRO )@@G@@AGE SOURCES @[@[@@C @^@[@@ 300 LOC=LOCATE(8) @ @[@@ 310 IF (LORP )@@G@@C.EQ.0) GO TO 1000@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=RQ )@@G@@NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IBR=NODPLC(LRR )@@G@@OC+6) @^@[@@ LVS=NODPLC(LOC+7) @^@[@@ LMAT=NODPLC(LOC+8)@ @[@@RS )@@G@@ LCOEF=NODPLC(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOERT )@@G@@F) @ @[@@ LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11RU )@@G@@) @^@[@@ LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 RV )@@G@@@#@[@@ ICHECK=0 @^@[@@ DO 320 I=1,NDIM @^@[@@ IPTR=NRW )@@G@@ODPLC(LVS+I)@ @[@@ IPTR=NODPLC(IPTR+6) @D@[@@ CALL UPDATE(RX )@@G@@VALUE(LIC+I),LOCT,IPTR,1,2,JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+RY )@@G@@LOCT) @#@[@@ LOCT=LOCT+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) RZ )@@G@@@#@[@@ 320 CONTINUE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,SA )@@G@@NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.ESB )@@G@@Q.0) GO TO 330 @A@[@@ IF (INITF.EQ.6) GO TO 330 @E@[@@ SC )@@G@@TOL=RELTOL*AMAX1(ABS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABSD )@@G@@S(VOLT-VALUE(LX0+LOCT)).LT.TOL) GO TO 340 @^@[@@ 330 NONCON=NONCON+1 SE )@@G@@@ @[@@ 340 VALUE(LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(SF )@@G@@LVNIM1+IBR) @#@[@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)SG )@@G@@@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@SH )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ SI )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(SJ )@@G@@LOCY)=-1.0 @#@[@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ SK )@@G@@DO 350 I=1,NDIM @D@[@@ CALL EVPOLY(TRANSR,I,LCOEF,NCOEF,LARG,NDIMSL )@@G@@,LEXP)@#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=TRANSR @A@[@@SM )@@G@@ VEQ=VEQ-TRANSR*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+I)SN )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-TRANSR@#@[@@ 350 CONTINUE @^@[@@SO )@@G@@ VALUE(LVN+IBR)=VEQ@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO SP )@@G@@310 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@SQ )@@G@@ END @E@[@@ SUBROUTINE UPDATE(VINIT,LOCT,NODE1,NODE2,NUPDA,ISR )@@G@@CHECK)@[@[@@C @G@[@@C THIS ROUTINE UPDATES AND LIMITS THE CONTROSS )@@G@@LLING VARIABLES FOR THE @A@[@@C NONLINEAR CONTROLLED SOURCES. @[@[@@ST )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITESU )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ISV )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,SW )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDISX )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXSY )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER SZ )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFETA )@@G@@T, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITB )@@G@@TERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALTC )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@TD )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C TE )@@G@@@#@[@@ ICHECK=0 @B@[@@ GO TO (40,10,40,20,30,50), INITF TF )@@G@@@#@[@@ 10 VNEW=VINIT @#@[@@ GO TO 80 @ @[@@ 20 VNEW=VALUE(LTG )@@G@@X0+LOCT) @#@[@@ GO TO 80 @ @[@@ 30 VNEW=VALUE(LX1+LOCT) TH )@@G@@@#@[@@ GO TO 80 @D@[@@ 40 VNEW=VALUE(LVNIM1+NODE1)-VALUE(LVNIMTI )@@G@@1+NODE2) @#@[@@ GO TO 60 @E@[@@ 50 CALL COPY8(VALUE(LX1+LOCTJ )@@G@@T),VALUE(LX0+LOCT),NUPDA) @ @[@@ XFACT=DELTA/DELOLD(2) @E@[@@TK )@@G@@ VNEW=(1.0+XFACT)*VALUE(LX1+LOCT)-XFACT*VALUE(LX2+LOCT)@A@[@@ 60 TL )@@G@@IF (ABS(VNEW).LE.1.0) GO TO 70@A@[@@ DELV=VNEW-VALUE(LX0+LOCT) TM )@@G@@@A@[@@ IF (ABS(DELV).LE.0.1) GO TO 70@C@[@@ VLIM=AMAX1(ABS(0.1TN )@@G@@*VALUE(LX0+LOCT)),0.1) @E@[@@ VNEW=VALUE(LX0+LOCT)+SIGN(AMIN1(ABS(TO )@@G@@DELV),VLIM),DELV) @#@[@@ GO TO 80 @#@[@@ 70 ICHECK=1 @ @[@@TP )@@G@@ 80 VALUE(LX0+LOCT)=VNEW @]@[@@ RETURN@]@[@@ END @F@[@@TQ )@@G@@ SUBROUTINE EVPOLY(RESULT,ITYPE,LCOEF,NCOEF,LARG,NARG,LEXP) @[@[@@TR )@@G@@C @G@[@@C THIS ROUTINE EVALUATES A POLYNOMIAL. LCOEF POINTS TO TS )@@G@@THE COEF- @G@[@@C FICIENTS, AND LARG POINTS TO THE VALUES OF THE POLYNTT )@@G@@OMIAL ARGUMENT(S).@[@[@@C @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@TU )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVATV )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ TW )@@G@@IF (ITYPE) 100,200,300 @[@[@@C @D@[@@C INTEGRATION (POLYNOMIAL *MUTX )@@G@@ST* BE ONE-DIMENSIONAL) @[@[@@C @#@[@@ 100 RESULT=0.0 @#@[@@ TY )@@G@@ARG=1.0 @^@[@@ ARG1=VALUE(LARG+1)@^@[@@ DO 110 I=1,NCOEF TZ )@@G@@@#@[@@ ARG=ARG*ARG1@C@[@@ RESULT=RESULT+VALUE(LCOEF+I)*ARG/FLOUA )@@G@@AT(I) @#@[@@ 110 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @A@[@@UB )@@G@@C EVALUATION OF THE POLYNOMIAL @[@[@@C @ @[@@ 200 RESULT=VALUEUC )@@G@@(LCOEF+1) @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@ CALL ZUD )@@G@@ERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 220 I=2,NCOEF @B@[@@ UE )@@G@@CALL NXTPWR(NODPLC(LEXP+1),NARG) @B@[@@ IF (VALUE(LCOEF+I).EQ.0.UF )@@G@@0) GO TO 220@#@[@@ ARG=1.0 @^@[@@ DO 210 J=1,NARG @D@[@@UG )@@G@@ CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)) @#@[@@ ARG=ARUH )@@G@@G*VAL @#@[@@ 210 CONTINUE @B@[@@ RESULT=RESULT+VALUE(LCOEF+I)*AUI )@@G@@RG @#@[@@ 220 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @E@[@@UJ )@@G@@C PARTIAL DERIVATIVE WITH RESPECT TO THE ITYPE*TH VARIABLE @[@[@@C UK )@@G@@@#@[@@ 300 RESULT=0.0 @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@UL )@@G@@ CALL ZERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 330 I=2,NCOEF UM )@@G@@@B@[@@ CALL NXTPWR(NODPLC(LEXP+1),NARG) @C@[@@ IF (NODPLC(LUN )@@G@@EXP+ITYPE).EQ.0) GO TO 330 @B@[@@ IF (VALUE(LCOEF+I).EQ.0.0) GO UO )@@G@@TO 330@#@[@@ ARG=1.0 @^@[@@ DO 320 J=1,NARG @A@[@@ UP )@@G@@IF (J.EQ.ITYPE) GO TO 310 @D@[@@ CALL EVTERM(VAL,VALUE(LARG+J),UQ )@@G@@NODPLC(LEXP+J)) @#@[@@ ARG=ARG*VAL @#@[@@ GO TO 320 @D@[@@UR )@@G@@ 310 CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)-1) @B@[@@ ARG=ARUS )@@G@@G*FLOAT(NODPLC(LEXP+J))*VAL @#@[@@ 320 CONTINUE @B@[@@ RESULTUT )@@G@@=RESULT+VALUE(LCOEF+I)*ARG @#@[@@ 330 CONTINUE @[@[@@C @]@[@@UU )@@G@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@ END @B@[@@ UV )@@G@@SUBROUTINE EVTERM(VAL,ARG,IEXP) @[@[@@C @D@[@@C THIS ROUTINEUW )@@G@@ EVALUATES ONE TERM OF A POLYNOMIAL.@[@[@@C @#@[@@ JEXP=IEXP+1 UX )@@G@@@ @[@@ IF (JEXP.GE.6) GO TO 60 @A@[@@ GO TO (10,20,30,40,50), UY )@@G@@JEXP @#@[@@ 10 VAL=1.0 @#@[@@ GO TO 100 @#@[@@ 20 VAL=ARUZ )@@G@@G @#@[@@ GO TO 100 @#@[@@ 30 VAL=ARG*ARG @#@[@@ GO TO VA )@@G@@100 @^@[@@ 40 VAL=ARG*ARG*ARG @#@[@@ GO TO 100 @#@[@@ 50 VB )@@G@@VAL=ARG*ARG @#@[@@ VAL=VAL*VAL @#@[@@ GO TO 100 @ @[@@ 60 VC )@@G@@IF (ARG.EQ.0.0) GO TO 70@B@[@@ ARGEXP=FLOAT(IEXP)*ALOG(ABS(ARG)) VD )@@G@@@A@[@@ IF (ARGEXP.LT.-200.0) GO TO 70@^@[@@ VAL=EXP(ARGEXP) VE )@@G@@@^@[@@ IMOD2=AND(IEXP,1) @A@[@@ IF (IMOD2.EQ.0) GO TO 100 VF )@@G@@@^@[@@ VAL=SIGN(VAL,ARG) @#@[@@ GO TO 100 @#@[@@ 70 VAL=0.VG )@@G@@0 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 100 RETURN@]@[@@VH )@@G@@ END @A@[@@ SUBROUTINE NXTPWR(PWRSEQ,PDIM)@[@[@@C @F@[@@VI )@@G@@C THIS ROUTINE DETERMINES THE ^NEXT^ SET OF EXPONENTS FOR THE @B@[@@VJ )@@G@@C DIFFERENT DIMENSIONS OF A POLYNOMIAL. @[@[@@C @A@[@@ INTEGEVK )@@G@@R PWRSEQ(1),PDIM,PSUM @[@[@@C @[@[@@C @ @[@@ IF (PDIM.EQ.VL )@@G@@1) GO TO 80 @]@[@@ K=PDIM@A@[@@ 10 IF (PWRSEQ(K).NE.0) GO TO 20 VM )@@G@@@]@[@@ K=K-1 @ @[@@ IF (K.NE.0) GO TO 10 @#@[@@ GO TO VN )@@G@@80 @ @[@@ 20 IF (K.EQ.PDIM) GO TO 30 @ @[@@ PWRSEQ(K)=PWRSEQ(KVO )@@G@@)-1 @A@[@@ PWRSEQ(K+1)=PWRSEQ(K+1)+1 @#@[@@ GO TO 100 VP )@@G@@@#@[@@ 30 KM1=K-1 @^@[@@ DO 40 I=1,KM1 @A@[@@ IF (PWVQ )@@G@@RSEQ(I).NE.0) GO TO 50 @#@[@@ 40 CONTINUE @ @[@@ PWRSEQ(1)=PWVR )@@G@@RSEQ(PDIM)+1@^@[@@ PWRSEQ(PDIM)=0 @#@[@@ GO TO 100 @]@[@@VS )@@G@@ 50 PSUM=1@]@[@@ K=PDIM@A@[@@ 60 IF (PWRSEQ(K-1).GE.1) GO TO 70VT )@@G@@@ @[@@ PSUM=PSUM+PWRSEQ(K) @#@[@@ PWRSEQ(K)=0 @]@[@@ VU )@@G@@K=K-1 @#@[@@ GO TO 60 @ @[@@ 70 PWRSEQ(K)=PWRSEQ(K)+PSUM@A@[@@VV )@@G@@ PWRSEQ(K-1)=PWRSEQ(K-1)-1 @#@[@@ GO TO 100 @ @[@@ 80 VW )@@G@@PWRSEQ(1)=PWRSEQ(1)+1 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@VX )@@G@@ 100 RETURN@]@[@@ END @C@[@@ SUBROUTINE INTGR8(GEQ,CEQ,CAPVVY )@@G@@AL,LOCT) @[@[@@C @G@[@@C THIS ROUTINE PERFORMS THE ACTUAL NUMVZ )@@G@@ERICAL INTEGRATION FOR EACH @#@[@@C CIRCUIT ELEMENT.@[@[@@C @G@[@@WA )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, WB )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEWC )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,WD )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQWE )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXWF )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ WG )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@WH )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@WI )@@G@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@WJ )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAWK )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ WL )@@G@@DIMENSION QCAP(1),CCAP(1) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1))WM )@@G@@,(CCAP(1),VALUE(2)) @[@[@@C @[@[@@C @A@[@@ IF (METHOD.EWN )@@G@@Q.2) GO TO 100 @[@[@@C @^@[@@C TRAPEZOIDAL ALGORITHM@[@[@@C WO )@@G@@@ @[@@ IF (IORD.EQ.1) GO TO 100@A@[@@ CCAP(LX0+LOCT)=-CCAP(LX1WP )@@G@@+LOCT)@D@[@@ 1 +2.0*(QCAP(LX0+LOCT)-QCAP(LX1+LOCT))/DELTA @D@[@@WQ )@@G@@ CEQ=-CCAP(LX1+LOCT)-2.0*QCAP(LX1+LOCT)/DELTA @#@[@@ GO TO WR )@@G@@200 @[@[@@C @#@[@@C GEARS ALGORITHM@[@[@@C @C@[@@ 100 GO TO WS )@@G@@(110,120,130,140,150,160), IORD @F@[@@ 110 CCAP(LX0+LOCT)=AG(1)*QCAWT )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @#@[@@ GO TO 190 @F@[@@ 120 WU )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @B@[@@ 1WV )@@G@@ +AG(3)*QCAP(LX2+LOCT) @#@[@@ GO TO 190 @F@[@@ 130 WW )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1WX )@@G@@ +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @#@[@@ WY )@@G@@GO TO 190 @F@[@@ 140 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LWZ )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LXA )@@G@@X3+LOCT) @B@[@@ 2 +AG(5)*QCAP(LX4+LOCT) @#@[@@ XB )@@G@@GO TO 190 @F@[@@ 150 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LXC )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LXD )@@G@@X3+LOCT) @F@[@@ 2 +AG(5)*QCAP(LX4+LOCT)+AG(6)*QCAP(LXE )@@G@@X5+LOCT) @#@[@@ GO TO 190 @F@[@@ 160 CCAP(LX0+LOCT)=AG(1)*QCAXF )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1 +AG(3)*QCAXG )@@G@@P(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @F@[@@ 2 +AG(5)*QCAXH )@@G@@P(LX4+LOCT)+AG(6)*QCAP(LX5+LOCT) @B@[@@ 3 +AG(7)*QCAXI )@@G@@P(LX6+LOCT) @C@[@@ 190 CEQ=CCAP(LX0+LOCT)-AG(1)*QCAP(LX0+LOCT) @^@[@@XJ )@@G@@ 200 GEQ=AG(1)*CAPVAL @]@[@@ RETURN@]@[@@ END @D@[@@ XK )@@G@@SUBROUTINE PNJLIM(VNEW,VOLD,VT,VCRIT,ICHECK) @[@[@@C @G@[@@C XL )@@G@@THIS ROUTINE LIMITS THE CHANGE-PER-ITERATION OF DEVICE PN-JUNCTION@]@[@@XM )@@G@@C VOLTAGES. @[@[@@C @#@[@@ VLIM=VT+VT @^@[@@ DELV=VNEW-VOXN )@@G@@LD @B@[@@ IF (ABS(DELV).LE.VLIM) GO TO 30 @A@[@@ IF (VNXO )@@G@@EW.LE.VCRIT) GO TO 30 @A@[@@ IF (VOLD.LE.0.0) GO TO 20 @^@[@@XP )@@G@@ ARG=1.0+DELV/VT @ @[@@ IF (ARG.LE.0.0) GO TO 10@ @[@@ XQ )@@G@@VNEW=VOLD+VT*ALOG(ARG) @#@[@@ GO TO 100 @#@[@@ 10 VNEW=VCRIT XR )@@G@@@#@[@@ GO TO 100 @ @[@@ 20 VNEW=VT*ALOG(VNEW/VT) @#@[@@ XS )@@G@@GO TO 100 @#@[@@ 30 ICHECK=1 @[@[@@C @]@[@@C FINISHED @[@[@@XT )@@G@@C @]@[@@ 100 RETURN@]@[@@ END @^@[@@ SUBROUTINE DIODE XU )@@G@@@[@[@@C @F@[@@C THIS ROUTINE PROCESSES DIODES FOR DC AND TRANSIEXV )@@G@@NT ANALYSES.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTXW )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIXX )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,XY )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEXZ )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYA )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUYB )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOYC )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMYD )@@G@@VS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNYE )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NOYF )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTYG )@@G@@NT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIYH )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMONYI )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALYJ )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C YK )@@G@@@[@[@@C @D@[@@ DIMENSION VDO(1),CDO(1),GDO(1),QD(1),CQD(1) YL )@@G@@@D@[@@ EQUIVALENCE (VDO(1),VALUE(1)),(CDO(1),VALUE(2)),@F@[@@ 1YM )@@G@@ (GDO(1),VALUE(3)),(QD(1),VALUE(4)),(CQD(1),VALUE(5)) @[@[@@C YN )@@G@@@[@[@@C @^@[@@ LOC=LOCATE(11) @ @[@@ 10 IF (LOC.EQ.0) RETUYO )@@G@@RN @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) YP )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) YQ )@@G@@@^@[@@ LOCM=NODPLC(LOC+5)@^@[@@ IOFF=NODPLC(LOC+6)@ @[@@ YR )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+11) @[@[@@C YS )@@G@@@^@[@@C DC MODEL PARAMETERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)YT )@@G@@@ @[@@ CSAT=VALUE(LOCM+1)*AREA @ @[@@ GSPR=VALUE(LOCM+2)*AREA YU )@@G@@@ @[@@ VTE=VALUE(LOCM+3)*VT @^@[@@ BV=VALUE(LOCM+13) @ @[@@YV )@@G@@ VCRIT=VALUE(LOCM+18) @[@[@@C @#@[@@C INITIALIZATION @[@[@@YW )@@G@@C @#@[@@ ICHECK=0 @B@[@@ GO TO (100,20,30,50,60,70),INIYX )@@G@@TF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 @^@[@@ VD=VALUE(LOCV+2) YY )@@G@@@ @[@@ IF (VD.NE.0.0) GO TO 300@G@[@@ IF ((MODE.EQ.1).AND.(MODYZ )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VD=VCRIT @#@[@@ZA )@@G@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO TO 100@]@[@@ 40 VD=0.0ZB )@@G@@@#@[@@ GO TO 300 @^@[@@ 50 VD=VDO(LX0+LOCT) @#@[@@ GO TO ZC )@@G@@300 @^@[@@ 60 VD=VDO(LX1+LOCT) @#@[@@ GO TO 300 @ @[@@ 70 ZD )@@G@@XFACT=DELTA/DELOLD(2) @A@[@@ VDO(LX0+LOCT)=VDO(LX1+LOCT) @D@[@@ZE )@@G@@ VD=(1.0+XFACT)*VDO(LX1+LOCT)-XFACT*VDO(LX2+LOCT)@A@[@@ CDO(LXZF )@@G@@0+LOCT)=CDO(LX1+LOCT) @A@[@@ GDO(LX0+LOCT)=GDO(LX1+LOCT) @#@[@@ZG )@@G@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTZH )@@G@@AGE @[@[@@C @C@[@@ 100 VD=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE2)ZI )@@G@@@ @[@@ 110 DELVD=VD-VDO(LX0+LOCT) @C@[@@ CDHAT=CDO(LX0+LOCT)+GDO(ZJ )@@G@@LX0+LOCT)*DELVD @[@[@@C @B@[@@C BYPASS IF SOLUTION HAS NOT CHANGEZK )@@G@@D @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 @E@[@@ ZL )@@G@@TOL=RELTOL*AMAX1(ABS(VD),ABS(VDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABZM )@@G@@S(DELVD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABZN )@@G@@S(CDO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL)ZO )@@G@@ GO TO 200 @^@[@@ VD=VDO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) ZP )@@G@@@^@[@@ GD=GDO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @ @[@@ZQ )@@G@@C LIMIT NEW JUNCTION VOLTAGE @[@[@@C @#@[@@ 200 VLIM=VTE+VTE@ @[@@ZR )@@G@@ IF (BV.EQ.0.0) GO TO 205@D@[@@ IF (VD.LT.AMIN1(0.0,-BV+10.0*VZS )@@G@@TE)) GO TO 210 @D@[@@ 205 CALL PNJLIM(VD,VDO(LX0+LOCT),VTE,VCRIT,ICHZT )@@G@@ECK) @#@[@@ GO TO 300 @^@[@@ 210 VDTEMP=-(VD+BV) @F@[@@ ZU )@@G@@CALL PNJLIM(VDTEMP,-(VDO(LX0+LOCT)+BV),VTE,VCRIT,ICHECK) @^@[@@ ZV )@@G@@VD=-(VDTEMP+BV) @[@[@@C @B@[@@C COMPUTE DC CURRENT AND DERIVITIVEZW )@@G@@S @[@[@@C @ @[@@ 300 IF (VD.LT.0.0) GO TO 310@^@[@@ EVD=EXZX )@@G@@P(VD/VTE) @^@[@@ CD=CSAT*(EVD-1.0) @^@[@@ GD=CSAT*EVD/VTE ZY )@@G@@@#@[@@ GO TO 330 @ @[@@ 310 IF (BV.EQ.0) GO TO 315 @ @[@@ ZZ )@@G@@IF (VD.LT.-BV) GO TO 320@#@[@@ 315 GD=CSAT/VTE @#@[@@ CD=GD*VD AA )@@G@@@#@[@@ GO TO 330 @ @[@@ 320 EVREV=EXP(-(BV+VD)/VT) @A@[@@ AB )@@G@@CD=-CSAT*(EVREV-1.0+BV/VT) @^@[@@ GD=CSAT*EVREV/VT @ @[@@ 330 AC )@@G@@IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0))AD )@@G@@ GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO AE )@@G@@700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@AF )@@G@@ 500 TAU=VALUE(LOCM+4) @ @[@@ CZERO=VALUE(LOCM+5)*AREA@^@[@@ AG )@@G@@PB=VALUE(LOCM+6) @^@[@@ XM=VALUE(LOCM+7) @ @[@@ FCPB=VALUE(LAH )@@G@@OCM+12) @A@[@@ IF (VD.GE.FCPB) GO TO 510 @^@[@@ ARG=1.AI )@@G@@0-VD/PB @ @[@@ SARG=EXP(-XM*ALOG(ARG)) @E@[@@ QD(LX0+LOCT)AJ )@@G@@=TAU*CD+PB*CZERO*(1.0-ARG*SARG)/(1.0-XM) @ @[@@ CAPD=TAU*GD+CZERO*AK )@@G@@SARG @#@[@@ GO TO 520 @^@[@@ 510 F1=VALUE(LOCM+15) @^@[@@ AL )@@G@@F2=VALUE(LOCM+16) @^@[@@ F3=VALUE(LOCM+17) @^@[@@ CZOF2=CZERO/AM )@@G@@F2 @D@[@@ QD(LX0+LOCT)=TAU*CD+CZERO*F1+CZOF2*(F3*(VD-FCPB)@B@[@@AN )@@G@@ 1 +(XM/(PB+PB))*(VD*VD-FCPB*FCPB)) @B@[@@ CAPD=TAU*GD+CZOF2*AO )@@G@@(F3+XM*VD/PB) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS AP )@@G@@@[@[@@C @G@[@@ 520 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEAQ )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ AR )@@G@@VALUE(LX0+LOCT+4)=CAPD @#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRAAS )@@G@@NSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 AT )@@G@@@A@[@@ QD(LX1+LOCT)=QD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEAU )@@G@@Q,CAPD,LOCT+3) @#@[@@ GD=GD+GEQ @ @[@@ CD=CD+CQD(LX0+LOCTAV )@@G@@) @A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQD(LX1+LOCTAW )@@G@@)=CQD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C AX )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO AY )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 AZ )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ BA )@@G@@IF (ABS(CDHAT-CD).LE.TOL) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@BB )@@G@@ 750 VDO(LX0+LOCT)=VD @^@[@@ CDO(LX0+LOCT)=CD @^@[@@ GDO(LXBC )@@G@@0+LOCT)=GD @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@C @^@[@@BD )@@G@@ 800 CDEQ=CD-GD*VD @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CDBE )@@G@@EQ @C@[@@ VALUE(LVN+NODE3)=VALUE(LVN+NODE3)-CDEQ @[@[@@C BF )@@G@@@#@[@@C LOAD MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+13)BG )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LBH )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GD @ @[@@ LOCY=LYNL+NOBI )@@G@@DPLC(LOC+15)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GD+GSPR @ @[@@ BJ )@@G@@LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@BK )@@G@@ LOCY=LYNL+NODPLC(LOC+8) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GD BL )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-BM )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(BN )@@G@@LOCY)-GD @^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@BO )@@G@@ END @^@[@@ SUBROUTINE BJT @[@[@@C @F@[@@C THIS RBP )@@G@@OUTINE PROCESSES BJTS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@BQ )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, BR )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEBS )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,BT )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQBU )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXBV )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ BW )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@BX )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATBY )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODBZ )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITECA )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RCB )@@G@@AD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHCC )@@G@@GTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ CD )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE CE )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSCF )@@G@@ION VBEO(1),VBCO(1),CCO(1),CBO(1),GPIO(1),GMUO(1),GMO(1), @E@[@@ 1CG )@@G@@ GOO(1),QBE(1),CQBE(1),QBC(1),CQBC(1),QCS(1),CQCS(1)@E@[@@ EQUIVACH )@@G@@LENCE (VBEO(1),VALUE(1)),(VBCO(1),VALUE(2)), @F@[@@ 1 (CCO(1),VCI )@@G@@ALUE(3)),(CBO(1),VALUE(4)),(GPIO(1),VALUE(5)), @F@[@@ 2 (GMUO(1),CJ )@@G@@VALUE(6)),(GMO(1),VALUE(7)),(GOO(1),VALUE(8)), @F@[@@ 3 (QBE(1),VCK )@@G@@ALUE(9)),(CQBE(1),VALUE(10)),(QBC(1),VALUE(11)),@G@[@@ 4 (CQBC(1),CL )@@G@@VALUE(12)),(QCS(1),VALUE(13)),(CQCS(1),VALUE(14)) @[@[@@C @[@[@@CM )@@G@@C @^@[@@ LOC=LOCATE(12) @ @[@@ 10 IF (LOC.EQ.0) RETURN CN )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@CO )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@CP )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@CQ )@@G@@ NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ CR )@@G@@IOFF=NODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NCS )@@G@@ODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+22) @[@[@@C @^@[@@CT )@@G@@C DC MODEL PARAMTERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)@^@[@@CU )@@G@@ BFM=VALUE(LOCM+1) @^@[@@ BRM=VALUE(LOCM+2) @ @[@@ CSAT=VCV )@@G@@ALUE(LOCM+3)*AREA @ @[@@ GBPR=VALUE(LOCM+4)*AREA @ @[@@ GCPR=VCW )@@G@@ALUE(LOCM+5)*AREA @ @[@@ GEPR=VALUE(LOCM+6)*AREA @^@[@@ OVA=VACX )@@G@@LUE(LOCM+7) @^@[@@ OVB=VALUE(LOCM+8) @ @[@@ OIK=VALUE(LOCM+9)/CY )@@G@@AREA @^@[@@ C2=VALUE(LOCM+10) @ @[@@ VTE=VALUE(LOCM+11)*VT CZ )@@G@@@ @[@@ OIKR=VALUE(LOCM+12)/AREA@^@[@@ C4=VALUE(LOCM+13) @ @[@@DA )@@G@@ VTC=VALUE(LOCM+14)*VT @ @[@@ VCRIT=VALUE(LOCM+37) @[@[@@DB )@@G@@C @#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@DC )@@G@@ GO TO (100,20,30,50,60,70),INITF @ @[@@ 20 IF (IOFF.NE.0) GO DD )@@G@@TO 40 @ @[@@ VBE=TYPE*VALUE(LOCV+2) @ @[@@ VCE=TYPE*VALUE(LOCDE )@@G@@V+3) @#@[@@ VBC=VBE-VCE @A@[@@ IF (VBE.NE.0.0) GO TO 300 DF )@@G@@@A@[@@ IF (VCE.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).ANDG )@@G@@D.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VBE=VCRIT DH )@@G@@@#@[@@ VBC=0.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.DI )@@G@@0) GO TO 100@#@[@@ 40 VBE=0.0 @#@[@@ VBC=0.0 @#@[@@ DJ )@@G@@GO TO 300 @^@[@@ 50 VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)DK )@@G@@@#@[@@ GO TO 300 @^@[@@ 60 VBE=VBEO(LX1+LOCT)@^@[@@ VBC=VBDL )@@G@@CO(LX1+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) DM )@@G@@@A@[@@ VBEO(LX0+LOCT)=VBEO(LX1+LOCT) @E@[@@ VBE=(1.0+XFACT)*VBDN )@@G@@EO(LX1+LOCT)-XFACT*VBEO(LX2+LOCT) @A@[@@ VBCO(LX0+LOCT)=VBCO(LX1+DO )@@G@@LOCT) @E@[@@ VBC=(1.0+XFACT)*VBCO(LX1+LOCT)-XFACT*VBCO(LX2+LOCT) DP )@@G@@@A@[@@ CCO(LX0+LOCT)=CCO(LX1+LOCT) @A@[@@ CBO(LX0+LOCT)=CBO(DQ )@@G@@LX1+LOCT) @A@[@@ GPIO(LX0+LOCT)=GPIO(LX1+LOCT) @A@[@@ GMUO(LDR )@@G@@X0+LOCT)=GMUO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@DS )@@G@@ GOO(LX0+LOCT)=GOO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C DT )@@G@@@B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 DU )@@G@@VBE=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE6)) @E@[@@ VBC=TYDV )@@G@@PE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE4)) @A@[@@ 110 DELVBE=VBE-VDW )@@G@@BEO(LX0+LOCT) @A@[@@ DELVBC=VBC-VBCO(LX0+LOCT) @F@[@@ DX )@@G@@CCHAT=CCO(LX0+LOCT)+(GMO(LX0+LOCT)+GOO(LX0+LOCT))*DELVBE @C@[@@ 1DY )@@G@@ -(GOO(LX0+LOCT)+GMUO(LX0+LOCT))*DELVBC @G@[@@ CBHAT=CBO(LX0+LOCTDZ )@@G@@)+GPIO(LX0+LOCT)*DELVBE+GMUO(LX0+LOCT)*DELVBC @[@[@@C @B@[@@C BYPEA )@@G@@ASS IF SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQEB )@@G@@.6) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VBE),ABS(VBEO(LX0+LOCEC )@@G@@T)))+VNTOL @B@[@@ IF (ABS(DELVBE).GE.TOL) GO TO 200 @E@[@@ ED )@@G@@TOL=RELTOL*AMAX1(ABS(VBC),ABS(VBCO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABEE )@@G@@S(DELVBC).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABEF )@@G@@S(CCO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CCHAT-CCO(LX0+LOCT)).GE.TOL)EG )@@G@@ GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBO(LX0+LOCT)))+EH )@@G@@ABSTOL@D@[@@ IF (ABS(CBHAT-CBO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@EI )@@G@@ VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)@^@[@@ CC=CCOEJ )@@G@@(LX0+LOCT) @^@[@@ CB=CBO(LX0+LOCT) @^@[@@ GPI=GPIO(LX0+LOCT)EK )@@G@@@^@[@@ GMU=GMUO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ EL )@@G@@GO=GOO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @A@[@@C LIMIT NONEM )@@G@@LINEAR BRANCH VOLTAGES @[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ EN )@@G@@CALL PNJLIM(VBE,VBEO(LX0+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(EO )@@G@@VBC,VBCO(LX0+LOCT),VT,VCRIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0EP )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVITIVES @[@[@@C EQ )@@G@@@A@[@@ 300 IF (VBE.LE.0.0) GO TO 320 @^@[@@ EVBE=EXP(VBE/VT) ER )@@G@@@ @[@@ CBE=CSAT*(EVBE-1.0) @^@[@@ GBE=CSAT*EVBE/VT @ @[@@ES )@@G@@ IF (C2.NE.0.0) GO TO 310@#@[@@ CBEN=0.0 @#@[@@ GBEN=0ET )@@G@@.0 @#@[@@ GO TO 350 @^@[@@ 310 EVBEN=EXP(VBE/VTE)@ @[@@ EU )@@G@@CBEN=C2*CSAT*(EVBEN-1.0)@ @[@@ GBEN=C2*CSAT*EVBEN/VTE @#@[@@ EV )@@G@@GO TO 350 @#@[@@ 320 GBE=CSAT/VT @#@[@@ CBE=GBE*VBE @^@[@@ EW )@@G@@GBEN=C2*CSAT/VTE @^@[@@ CBEN=GBEN*VBE @A@[@@ 350 IF (VBC.LE.0EX )@@G@@.0) GO TO 370 @^@[@@ EVBC=EXP(VBC/VT) @ @[@@ CBC=CSAT*(EVEY )@@G@@BC-1.0) @^@[@@ GBC=CSAT*EVBC/VT @ @[@@ IF (C4.NE.0.0) GO EZ )@@G@@TO 360@#@[@@ CBCN=0.0 @#@[@@ GBCN=0.0 @#@[@@ GO TO FA )@@G@@400 @^@[@@ 360 EVBCN=EXP(VBC/VTC)@ @[@@ CBCN=C4*CSAT*(EVBCN-1.0)FB )@@G@@@ @[@@ GBCN=C4*CSAT*EVBCN/VTC @#@[@@ GO TO 400 @#@[@@ 370 FC )@@G@@GBC=CSAT/VT @#@[@@ CBC=GBC*VBC @^@[@@ GBCN=C4*CSAT/VTC @^@[@@FD )@@G@@ CBCN=GBCN*VBC @[@[@@C @ @[@@C DETERMINE BASE CHARGE TERMSFE )@@G@@@[@[@@C @A@[@@ 400 Q1=1.0/(1.0-OVA*VBC-OVB*VBE) @A@[@@ IF (OIFF )@@G@@K.NE.0.0) GO TO 410 @A@[@@ IF (OIKR.NE.0.0) GO TO 410 @]@[@@FG )@@G@@ QB=Q1 @^@[@@ DQBDVE=Q1*QB*OVB @^@[@@ DQBDVC=Q1*QB*OVA FH )@@G@@@#@[@@ GO TO 420 @ @[@@ 410 Q2=OIK*CBE+OIKR*CBC @ @[@@ FI )@@G@@SQARG=SQRT(1.0+4.0*Q2) @ @[@@ QB=Q1*(1.0+SQARG)/2.0 @B@[@@ FJ )@@G@@DQBDVE=Q1*(QB*OVB+OIK*GBE/SQARG) @B@[@@ DQBDVC=Q1*(QB*OVA+OIKR*GFK )@@G@@BC/SQARG) @[@[@@C @B@[@@C DETERMINE DC INCREMENTAL CONDUCTANCES FL )@@G@@@[@[@@C @A@[@@ 420 CC=(CBE-CBC)/QB-CBC/BRM-CBCN @A@[@@ CB=CBEFM )@@G@@/BFM+CBEN+CBC/BRM+CBCN @^@[@@ GPI=GBE/BFM+GBEN @^@[@@ GMU=GBFN )@@G@@C/BRM+GBCN @B@[@@ GO=(GBC+(CBE-CBC)*DQBDVC/QB)/QB @B@[@@ FO )@@G@@GM=(GBE-(CBE-CBC)*DQBDVE/QB)/QB-GO @ @[@@ IF (MODE.NE.1) GO TO 500FP )@@G@@@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ FQ )@@G@@IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO 700 @[@[@@C @ @[@@FR )@@G@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@ 500 TF=VALUE(LOCM+15) FS )@@G@@@^@[@@ TR=VALUE(LOCM+16) @ @[@@ CZBE=VALUE(LOCM+18)*AREA@^@[@@FT )@@G@@ PE=VALUE(LOCM+19) @^@[@@ XME=VALUE(LOCM+20)@ @[@@ CZBC=VFU )@@G@@ALUE(LOCM+21)*AREA@^@[@@ PC=VALUE(LOCM+22) @^@[@@ XMC=VALUE(LOFV )@@G@@CM+23)@ @[@@ FCPE=VALUE(LOCM+28) @A@[@@ IF (VBE.GE.FCPE) GFW )@@G@@O TO 510 @^@[@@ ARG=1.0-VBE/PE @ @[@@ SARG=EXP(-XME*ALOGFX )@@G@@(ARG))@E@[@@ QBE(LX0+LOCT)=TF*CBE+PE*CZBE*(1.0-ARG*SARG)/(1.0-XME) FY )@@G@@@ @[@@ CAPBE=TF*GBE+CZBE*SARG @#@[@@ GO TO 520 @^@[@@ 510 FZ )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCGA )@@G@@M+32) @^@[@@ CZBEF2=CZBE/F2 @E@[@@ QBE(LX0+LOCT)=TF*CBE+CZBGB )@@G@@E*F1+CZBEF2*(F3*(VBE-FCPE) @C@[@@ 1 +(XME/(PE+PE))*(VBE*VBE-FCPGC )@@G@@E*FCPE)) @B@[@@ CAPBE=TF*GBE+CZBEF2*(F3+XME*VBE/PE) @ @[@@ 520 GD )@@G@@FCPC=VALUE(LOCM+33) @A@[@@ IF (VBC.GE.FCPC) GO TO 530 @^@[@@GE )@@G@@ ARG=1.0-VBC/PC @ @[@@ SARG=EXP(-XMC*ALOG(ARG))@E@[@@ GF )@@G@@QBC(LX0+LOCT)=TR*CBC+PC*CZBC*(1.0-ARG*SARG)/(1.0-XMC) @ @[@@ CAPBC=GG )@@G@@TR*GBC+CZBC*SARG @#@[@@ GO TO 560 @^@[@@ 530 F1=VALUE(LOCM+34) GH )@@G@@@^@[@@ F2=VALUE(LOCM+35) @^@[@@ F3=VALUE(LOCM+36) @^@[@@ GI )@@G@@CZBCF2=CZBC/F2 @E@[@@ QBC(LX0+LOCT)=TR*CBC+CZBC*F1+CZBCF2*(F3*(VGJ )@@G@@BC-FCPC) @C@[@@ 1 +(XMC/(PC+PC))*(VBC*VBC-FCPC*FCPC)) @B@[@@GK )@@G@@ CAPBC=TR*GBC+CZBCF2*(F3+XMC*VBC/PC) @[@[@@C @A@[@@C STORE SMAGL )@@G@@LL-SIGNAL PARAMETERS @[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODGM )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GOGN )@@G@@ TO 600 @ @[@@ VALUE(LX0+LOCT+9)=CAPBE @ @[@@ VALUE(LX0+LOGO )@@G@@CT+11)=CAPBC@#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYGP )@@G@@SIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ GQ )@@G@@QBE(LX1+LOCT)=QBE(LX0+LOCT) @A@[@@ QBC(LX1+LOCT)=QBC(LX0+LOCT) GR )@@G@@@B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBE,LOCT+8) @#@[@@ GPI=GPI+GEQ GS )@@G@@@ @[@@ CB=CB+CQBE(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBGT )@@G@@C,LOCT+10) @#@[@@ GMU=GMU+GEQ @ @[@@ CB=CB+CQBC(LX0+LOCT) GU )@@G@@@ @[@@ CC=CC-CQBC(LX0+LOCT) @A@[@@ IF (INITF.NE.5) GO TO 70GV )@@G@@0 @A@[@@ CQBE(LX1+LOCT)=CQBE(LX0+LOCT) @A@[@@ CQBC(LX1+LOCGW )@@G@@T)=CQBC(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C GX )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO GY )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 GZ )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABS(CC))+ABSTOL @B@[@@ HA )@@G@@IF (ABS(CCHAT-CC).GT.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CBHHB )@@G@@AT),ABS(CB))+ABSTOL @B@[@@ IF (ABS(CBHAT-CB).LE.TOL) GO TO 750 HC )@@G@@@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBEO(LX0+LOCT)=VBE@^@[@@ HD )@@G@@VBCO(LX0+LOCT)=VBC@^@[@@ CCO(LX0+LOCT)=CC @^@[@@ CBO(LX0+LOCTHE )@@G@@)=CB @^@[@@ GPIO(LX0+LOCT)=GPI@^@[@@ GMUO(LX0+LOCT)=GMU@^@[@@HF )@@G@@ GMO(LX0+LOCT)=GM @^@[@@ GOO(LX0+LOCT)=GO @[@[@@C @ @[@@HG )@@G@@C LINEAR SUBSTRATE CAPACITOR @[@[@@C @ @[@@ 800 IF (MODE.NE.1) GO HH )@@G@@TO 810@#@[@@ GCCS=0.0 @#@[@@ CEQCS=0.0 @#@[@@ GO TO HI )@@G@@900 @ @[@@ 810 CCS=VALUE(LOCM+17)*AREA @A@[@@ IF (INITF.NE.6) GOHJ )@@G@@ TO 820 @A@[@@ QCS(LX0+LOCT)=QCS(LX1+LOCT) @#@[@@ GO TO HK )@@G@@830 @C@[@@ 820 QCS(LX0+LOCT)=CCS*VALUE(LVNIM1+NODE4) @A@[@@ HL )@@G@@IF (INITF.NE.5) GO TO 830 @A@[@@ QCS(LX1+LOCT)=QCS(LX0+LOCT) HM )@@G@@@B@[@@ 830 CALL INTGR8(GCCS,CEQCS,CCS,LOCT+12) @A@[@@ IF (INITF.NEHN )@@G@@.5) GO TO 900 @A@[@@ CQCS(LX1+LOCT)=CQCS(LX0+LOCT) @[@[@@C HO )@@G@@@A@[@@C LOAD CURRENT EXCITATION VECTOR @[@[@@C @C@[@@ 900 CEQBE=HP )@@G@@TYPE*(CC+CB-VBE*(GM+GO+GPI)+VBC*GO) @C@[@@ CEQBC=TYPE*(-CC+VBE*(GM+HQ )@@G@@GO)-VBC*(GMU+GO)) @D@[@@ VALUE(LVN+NODE4)=VALUE(LVN+NODE4)-CEQCS+CEHR )@@G@@QBC @D@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODE5)-CEQBE-CEQBC @C@[@@HS )@@G@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CEQBE @[@[@@C @#@[@@C LOAHT )@@G@@D Y MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ HU )@@G@@VALUE(LOCY)=VALUE(LOCY)+GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@A@[@@HV )@@G@@ VALUE(LOCY)=VALUE(LOCY)+GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+26)HW )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEPR @ @[@@ LOCY=LYNL+NODPLC(LHX )@@G@@OC+27)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GMU+GO+GCPR+GCCS @ @[@@ HY )@@G@@LOCY=LYNL+NODPLC(LOC+28)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GBPR+GPI+GMUHZ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+29)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+IA )@@G@@GPI+GEPR+GM+GO @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(IB )@@G@@LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ IC )@@G@@VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ID )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)IE )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LIF )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU+GM@ @[@@ LOCY=LYNL+NOIG )@@G@@DPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GM-GO @ @[@@ LOCY=LIH )@@G@@YNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ II )@@G@@LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU @ @[@@IJ )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GPI IK )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-IL )@@G@@GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(IM )@@G@@LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@A@[@@ VALUE(LOCY)=IN )@@G@@VALUE(LOCY)-GPI-GM@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 IO )@@G@@@]@[@@ END @B@[@@ SUBROUTINE FETLIM(VNEW,VOLD,VTO) @[@[@@IP )@@G@@C @G@[@@C THIS ROUTINE LIMITS THE PER-ITERATION CHANGE OF FET VOIQ )@@G@@LTAGES. @[@[@@C @[@[@@C @D@[@@C THREE REGIONS OF OPERATIR )@@G@@ION ARE IDENTIFIED: @[@[@@C @C@[@@C V < VTO IS )@@G@@ DEFINITELY OFF@E@[@@C VTO @ V @ VTO+3.5 OFF OR ON DEPEIT )@@G@@NDING ON VBS@C@[@@C VTO+3.5 < V DEFINITELY ON @[@[@@IU )@@G@@C @A@[@@ VTSTHI=ABS(2.0*(VOLD-VTO))+2.0@ @[@@ VTSTLO=VTSTHIV )@@G@@I/2.0+2.0 @#@[@@ VTOX=VTO+3.5@^@[@@ DELV=VNEW-VOLD @[@[@@IW )@@G@@C @A@[@@ IF (VOLD.LT.VTO) GO TO 300 @A@[@@ IF (VOLD.LT.IX )@@G@@VTOX) GO TO 200 @[@[@@C @]@[@@C ON ... @[@[@@C @A@[@@ IY )@@G@@IF (DELV.GT.0.0) GO TO 120 @#@[@@C... GOING OFF @A@[@@ IF (VNIZ )@@G@@EW.LT.VTOX) GO TO 110 @A@[@@ IF (-DELV.LE.VTSTLO) GO TO 500@^@[@@JA )@@G@@ VNEW=VOLD-VTSTLO @#@[@@ GO TO 500 @ @[@@ 110 VNEW=AMAX1(VJB )@@G@@NEW,VTO+2.0)@#@[@@ GO TO 500 @#@[@@C... STAYING ON @A@[@@ 120 JC )@@G@@IF (DELV.LT.VTSTHI) GO TO 500 @^@[@@ VNEW=VOLD+VTSTHI @#@[@@ JD )@@G@@GO TO 500 @[@[@@C @^@[@@C MIDDLE REGION ... @[@[@@C @A@[@@JE )@@G@@ 200 IF (DELV.GT.0.0) GO TO 210 @#@[@@C... DECREASING @ @[@@ JF )@@G@@VNEW=AMAX1(VNEW,VTO-0.5)@#@[@@ GO TO 500 @#@[@@C... INCREASING JG )@@G@@@ @[@@ 210 VNEW=AMIN1(VNEW,VTO+4.0)@#@[@@ GO TO 500 @[@[@@C JH )@@G@@@]@[@@C OFF ... @[@[@@C @A@[@@ 300 IF (DELV.GT.0.0) GO TO 310 JI )@@G@@@A@[@@ IF (-DELV.LE.VTSTHI) GO TO 500@^@[@@ VNEW=VOLD-VTSTHI JJ )@@G@@@#@[@@ GO TO 500 @^@[@@ 310 VTEMP=VTO+0.5 @A@[@@ IF (VNJK )@@G@@EW.GT.VTEMP) GO TO 320 @A@[@@ IF (DELV.LE.VTSTLO) GO TO 500 @^@[@@JL )@@G@@ VNEW=VOLD+VTSTLO @#@[@@ GO TO 500 @#@[@@ 320 VNEW=VTEMP JM )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 500 RETURN@]@[@@ JN )@@G@@END @^@[@@ SUBROUTINE JFET @[@[@@C @F@[@@C THIS ROUTINEJO )@@G@@ PROCESSES JFETS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@ JP )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@JQ )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, JR )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFJS )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACJT )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,JU )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONJV )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1JW )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMJX )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEJY )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOJZ )@@G@@SOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLKA )@@G@@TZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EKB )@@G@@PS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEKC )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEKD )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VGKE )@@G@@SO(1),VGDO(1),CGO(1),CDO(1),CGDO(1),GMO(1),GDSO(1), @D@[@@ 1 GGSKF )@@G@@O(1),GGDO(1),QGS(1),CQGS(1),QGD(1),CQGD(1)@E@[@@ EQUIVALENCE (VGSO(KG )@@G@@1),VALUE( 1)),(VGDO(1),VALUE( 2)), @E@[@@ 1 (CGO (1),VALKH )@@G@@UE( 3)),(CDO (1),VALUE( 4)), @E@[@@ 2 (CGDO(1),VALUE( 5)KI )@@G@@),(GMO (1),VALUE( 6)), @E@[@@ 3 (GDSO(1),VALUE( 7)),(GGSKJ )@@G@@O(1),VALUE( 8)), @E@[@@ 4 (GGDO(1),VALUE( 9)),(QGS (1),VKK )@@G@@ALUE(10)), @E@[@@ 5 (CQGS(1),VALUE(11)),(QGD (1),VALUE(1KL )@@G@@2)), @B@[@@ 6 (CQGD(1),VALUE(13)) @[@[@@C @[@[@@KM )@@G@@C @^@[@@ LOC=LOCATE(13) @ @[@@ 10 IF (LOC.EQ.0) RETURN KN )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@KO )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@KP )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @^@[@@KQ )@@G@@ LOCM=NODPLC(LOC+7)@^@[@@ IOFF=NODPLC(LOC+8)@ @[@@ TYPE=NKR )@@G@@ODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NKS )@@G@@ODPLC(LOC+19) @[@[@@C @^@[@@C DC MODEL PARAMETERS @[@[@@C KT )@@G@@@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ VTO=VALUE(LOCM+1) @ @[@@ KU )@@G@@BETA=VALUE(LOCM+2)*AREA @ @[@@ XLAMB=VALUE(LOCM+3) @ @[@@ KV )@@G@@GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VALUE(LOCM+5)*AREA @ @[@@ KW )@@G@@CSAT=VALUE(LOCM+9)*AREA @ @[@@ VCRIT=VALUE(LOCM+16) @[@[@@C KX )@@G@@@#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@ KY )@@G@@GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 KZ )@@G@@@ @[@@ VDS=TYPE*VALUE(LOCV+2) @ @[@@ VGS=TYPE*VALUE(LOCV+3) LA )@@G@@@#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 @A@[@@LB )@@G@@ IF (VGS.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODLC )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VGS=-1.0 @#@[@@LD )@@G@@ VGD=-1.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO LE )@@G@@TO 100@#@[@@ 40 VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO LF )@@G@@300 @^@[@@ 50 VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@LG )@@G@@ GO TO 300 @^@[@@ 60 VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1LH )@@G@@+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@LI )@@G@@ VGSO(LX0+LOCT)=VGSO(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1LJ )@@G@@+LOCT)-XFACT*VGSO(LX2+LOCT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) LK )@@G@@@E@[@@ VGD=(1.0+XFACT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@LL )@@G@@ CGO(LX0+LOCT)=CGO(LX1+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(LX1+LOLM )@@G@@CT) @A@[@@ CGDO(LX0+LOCT)=CGDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCTLN )@@G@@)=GMO(LX1+LOCT) @A@[@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @A@[@@ LO )@@G@@GGSO(LX0+LOCT)=GGSO(LX1+LOCT) @A@[@@ GGDO(LX0+LOCT)=GGDO(LX1+LOCT) LP )@@G@@@#@[@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCLQ )@@G@@H VOLTAGES @[@[@@C @E@[@@ 100 VGS=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LR )@@G@@LVNIM1+NODE5)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1LS )@@G@@+NODE4)) @A@[@@ 110 DELVGS=VGS-VGSO(LX0+LOCT) @A@[@@ DELVGDLT )@@G@@=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGS-DELVGD @G@[@@ LU )@@G@@CGHAT=CGO(LX0+LOCT)+GGDO(LX0+LOCT)*DELVGD+GGSO(LX0+LOCT)*DELVGS @G@[@@LV )@@G@@ CDHAT=CDO(LX0+LOCT)+GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS LW )@@G@@@A@[@@ 1 -GGDO(LX0+LOCT)*DELVGD @[@[@@C @B@[@@C BYPASS IFLX )@@G@@ SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GOLY )@@G@@ TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VLZ )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=REMA )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVMB )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CGO(MC )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CGHAT-CGO(LX0+LOCT)).GE.TOL) GO TOMD )@@G@@ 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(LX0+LOCT)))+ABSTOLME )@@G@@@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@ MF )@@G@@VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD MG )@@G@@@^@[@@ CG=CGO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) @^@[@@ MH )@@G@@CGD=CGDO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ GDS=GDSO(LX0MI )@@G@@+LOCT)@^@[@@ GGS=GGSO(LX0+LOCT)@^@[@@ GGD=GGDO(LX0+LOCT)@#@[@@MJ )@@G@@ GO TO 900 @[@[@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES MK )@@G@@@[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ CALL PNJLIM(VGS,VGSO(LX0ML )@@G@@+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(VGD,VGDO(LX0+LOCT),VT,VCMM )@@G@@RIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0@B@[@@ CALL FETLIM(MN )@@G@@VGS,VGSO(LX0+LOCT),VTO) @B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VTO) MO )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVATIVES @[@[@@C MP )@@G@@@#@[@@ 300 VDS=VGS-VGD @A@[@@ IF (VGS.GT.0.0) GO TO 310 @#@[@@MQ )@@G@@ GGS=CSAT/VT @#@[@@ CG=GGS*VGS @#@[@@ GO TO 320 @^@[@@MR )@@G@@ 310 EVGS=EXP(VGS/VT) @^@[@@ GGS=CSAT*EVGS/VT @^@[@@ CG=CSAMS )@@G@@T*(EVGS-1.0)@A@[@@ 320 IF (VGD.GT.0.0) GO TO 330 @#@[@@ GGD=CSMT )@@G@@AT/VT @#@[@@ CGD=GGD*VGD @#@[@@ GO TO 340 @^@[@@ 330 EVGD=EMU )@@G@@XP(VGD/VT) @^@[@@ GGD=CSAT*EVGD/VT @ @[@@ CGD=CSAT*(EVGD-1.0MV )@@G@@) @#@[@@ 340 CG=CG+CGD @[@[@@C @E@[@@C COMPUTE DRAIN CURRENTMW )@@G@@ AND DERIVITIVES FOR NORMAL MODE @[@[@@C @A@[@@ 400 IF (VDS.LT.0MX )@@G@@.0) GO TO 450 @#@[@@ VGST=VGS-VTO@[@[@@C @ @[@@C NORMAL MOMY )@@G@@DE, CUTOFF REGION @[@[@@C @A@[@@ IF (VGST.GT.0.0) GO TO 410 MZ )@@G@@@#@[@@ CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GDS=0.0 @#@[@@NA )@@G@@ GO TO 490 @[@[@@C @A@[@@C NORMAL MODE, SATURATION REGION NB )@@G@@@[@[@@C @A@[@@ 410 BETAP=BETA*(1.0+XLAMB*VDS) @^@[@@ TWOB=BNC )@@G@@ETAP+BETAP @A@[@@ IF (VGST.GT.VDS) GO TO 420 @ @[@@ CDRAINND )@@G@@=BETAP*VGST*VGST @#@[@@ GM=TWOB*VGST@ @[@@ GDS=XLAMB*BETA*VGSNE )@@G@@T*VGST@#@[@@ GO TO 490 @[@[@@C @ @[@@C NORMAL MODE, LINEAR RNF )@@G@@EGION @[@[@@C @B@[@@ 420 CDRAIN=BETAP*VDS*(VGST+VGST-VDS) @#@[@@NG )@@G@@ GM=TWOB*VDS @E@[@@ GDS=TWOB*(VGST-VDS)+XLAMB*BETA*VDS*(VGST+VNH )@@G@@GST-VDS) @#@[@@ GO TO 490 @[@[@@C @E@[@@C COMPUTE DRAIN CNI )@@G@@URRENT AND DERIVITIVES FOR INVERSE MODE @[@[@@C @#@[@@ 450 VGDT=VNJ )@@G@@GD-VTO@[@[@@C @ @[@@C INVERSE MODE, CUTOFF REGION@[@[@@C @A@[@@NK )@@G@@ IF (VGDT.GT.0.0) GO TO 460 @#@[@@ CDRAIN=0.0 @]@[@@ NL )@@G@@GM=0.0@#@[@@ GDS=0.0 @#@[@@ GO TO 490 @[@[@@C @A@[@@NM )@@G@@C INVERSE MODE, SATURATION REGION @[@[@@C @A@[@@ 460 BETAP=BETA*(NN )@@G@@1.0-XLAMB*VDS) @^@[@@ TWOB=BETAP+BETAP @A@[@@ IF (VGDT.GT.NO )@@G@@-VDS) GO TO 470 @ @[@@ CDRAIN=-BETAP*VGDT*VGDT @^@[@@ GM=-TWNP )@@G@@OB*VGDT @A@[@@ GDS=XLAMB*BETA*VGDT*VGDT-GM @#@[@@ GO TO NQ )@@G@@490 @[@[@@C @ @[@@C INVERSE MODE, LINEAR REGION@[@[@@C @B@[@@NR )@@G@@ 470 CDRAIN=BETAP*VDS*(VGDT+VGDT+VDS) @#@[@@ GM=TWOB*VDS @D@[@@NS )@@G@@ GDS=TWOB*VGDT-XLAMB*BETA*VDS*(VGDT+VGDT+VDS) @[@[@@C @B@[@@NT )@@G@@C COMPUTE EQUIVALENT DRAIN CURRENT SOURCE@[@[@@C @^@[@@ 490 CD=CDRNU )@@G@@AIN-CGD @ @[@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.NV )@@G@@EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 50NW )@@G@@0 @#@[@@ GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENNX )@@G@@TS @[@[@@C @ @[@@ 500 CZGS=VALUE(LOCM+6)*AREA @ @[@@ CZGD=VNY )@@G@@ALUE(LOCM+7)*AREA @^@[@@ PHIB=VALUE(LOCM+8)@^@[@@ TWOP=PHIB+PHNZ )@@G@@IB @ @[@@ FCPB=VALUE(LOCM+12) @^@[@@ FCPB2=FCPB*FCPB OA )@@G@@@^@[@@ F1=VALUE(LOCM+13) @^@[@@ F2=VALUE(LOCM+14) @^@[@@ OB )@@G@@F3=VALUE(LOCM+15) @^@[@@ CZGSF2=CZGS/F2 @^@[@@ CZGDF2=CZGD/OC )@@G@@F2 @A@[@@ IF (VGS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.OD )@@G@@0-VGS/PHIB) @B@[@@ QGS(LX0+LOCT)=TWOP*CZGS*(1.0-SARG) @^@[@@ OE )@@G@@CAPGS=CZGS/SARG @#@[@@ GO TO 520 @D@[@@ 510 QGS(LX0+LOCT)=CZGSOF )@@G@@*F1+CZGSF2*(F3*(VGS-FCPB) @B@[@@ 1 +(VGS*VGS-FCPB2)/(TWOP+TWOPOG )@@G@@)) @A@[@@ CAPGS=CZGSF2*(F3+VGS/TWOP) @A@[@@ 520 IF (VGD.GE.FOH )@@G@@CPB) GO TO 530 @ @[@@ SARG=SQRT(1.0-VGD/PHIB) @B@[@@ QGD(LXOI )@@G@@0+LOCT)=TWOP*CZGD*(1.0-SARG) @^@[@@ CAPGD=CZGD/SARG @#@[@@ OJ )@@G@@GO TO 560 @D@[@@ 530 QGD(LX0+LOCT)=CZGD*F1+CZGDF2*(F3*(VGD-FCPB) OK )@@G@@@B@[@@ 1 +(VGD*VGD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPGD=CZGDF2OL )@@G@@*(F3+VGD/TWOP) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS OM )@@G@@@[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEON )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ OO )@@G@@VALUE(LX0+LOCT+9)=CAPGS @ @[@@ VALUE(LX0+LOCT+11)=CAPGD@#@[@@ OP )@@G@@GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@OQ )@@G@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ QGS(LX1+LOCT)=QGS(LX0+LOOR )@@G@@CT) @A@[@@ QGD(LX1+LOCT)=QGD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(OS )@@G@@GEQ,CEQ,CAPGS,LOCT+9) @#@[@@ GGS=GGS+GEQ @ @[@@ CG=CG+CQGS(LOT )@@G@@X0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPGD,LOCT+11) @#@[@@ OU )@@G@@GGD=GGD+GEQ @ @[@@ CG=CG+CQGD(LX0+LOCT) @ @[@@ CD=CD-CQGD(LOV )@@G@@X0+LOCT) @ @[@@ CGD=CGD+CQGD(LX0+LOCT) @A@[@@ IF (INITF.NEOW )@@G@@.5) GO TO 700 @A@[@@ CQGS(LX1+LOCT)=CQGS(LX0+LOCT) @A@[@@ OX )@@G@@CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE OY )@@G@@@[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOOZ )@@G@@FF.EQ.0) GO TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GPA )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CG))+ABSTOL PB )@@G@@@B@[@@ IF (ABS(CGHAT-CG).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*APC )@@G@@MAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ IF (ABS(CDHAT-CD).LE.TOLPD )@@G@@) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VGSO(LX0+LOCT)=VGSPE )@@G@@@^@[@@ VGDO(LX0+LOCT)=VGD@^@[@@ CGO(LX0+LOCT)=CG @^@[@@ PF )@@G@@CDO(LX0+LOCT)=CD @^@[@@ CGDO(LX0+LOCT)=CGD@^@[@@ GMO(LX0+LOCTPG )@@G@@)=GM @^@[@@ GDSO(LX0+LOCT)=GDS@^@[@@ GGSO(LX0+LOCT)=GGS@^@[@@PH )@@G@@ GGDO(LX0+LOCT)=GGD@[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@PI )@@G@@C @ @[@@ 900 CEQGD=TYPE*(CGD-GGD*VGD)@A@[@@ CEQGS=TYPE*((CG-CGPJ )@@G@@D)-GGS*VGS) @B@[@@ CDREQ=TYPE*((CD+CGD)-GDS*VDS-GM*VGS)@D@[@@ PK )@@G@@VALUE(LVN+NODE2)=VALUE(LVN+NODE2)-CEQGS-CEQGD @D@[@@ VALUE(LVN+NOPL )@@G@@DE4)=VALUE(LVN+NODE4)-CDREQ+CEQGD @D@[@@ VALUE(LVN+NODE5)=VALUE(LPM )@@G@@VN+NODE5)+CDREQ+CEQGS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C PN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+PO )@@G@@GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@B@[@@ VALUE(LOCY)=VALUE(PP )@@G@@LOCY)+GGD+GGS @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ VALUE(PQ )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@B@[@@ PR )@@G@@VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+24)PS )@@G@@@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR+GDS+GM+GGS @ @[@@ LOCY=LPT )@@G@@YNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ PU )@@G@@LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGD @ @[@@PV )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGS PW )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-PX )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(PY )@@G@@LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=PZ )@@G@@VALUE(LOCY)+GM-GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(QA )@@G@@LOCY)=VALUE(LOCY)-GDS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ QB )@@G@@VALUE(LOCY)=VALUE(LOCY)-GGS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@QC )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+18)QD )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS @^@[@@ 1000 LOC=NODPLC(LOC) QE )@@G@@@#@[@@ GO TO 10 @]@[@@ END @^@[@@ SUBROUTINE MOSFET QF )@@G@@@[@[@@C @G@[@@C THIS ROUTINE PROCESSES MOSFETS FOR DC AND TRANSIQG )@@G@@ENT ANALYSES. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,QH )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOQI )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NQJ )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISQK )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0QL )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5QM )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50QN )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IQO )@@G@@BR,NUMVS @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,QP )@@G@@XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,QQ )@@G@@GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1QR )@@G@@,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUQS )@@G@@B,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELQT )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METQU )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@QV )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, QW )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX QX )@@G@@@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@QY )@@G@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALQZ )@@G@@UE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VBDO(1),VBSO(1),VGSORA )@@G@@(1),VGDO(1),CDO(1),CBSO(1),CBDO(1), @G@[@@ 1 GMO(1),GDSO(1),GMBSO(RB )@@G@@1),GBDO(1),GBSO(1),QBD(1),CQBD(1),QBS(1), @F@[@@ 2 CQBS(1),QGS(1),RC )@@G@@CQGS(1),QGD(1),CQGD(1),QGB(1),CQGB(1) @E@[@@ EQUIVALENCE (VBDO RD )@@G@@(1),VALUE( 1)),(VBSO (1),VALUE( 2)),@E@[@@ 1 (VGSO (1),VARE )@@G@@LUE( 3)),(VGDO (1),VALUE( 4)),@E@[@@ 2 (CDO (1),VALUE( 5RF )@@G@@)),(CBSO (1),VALUE( 6)),@E@[@@ 3 (CBDO (1),VALUE( 7)),(GMRG )@@G@@O (1),VALUE( 8)),@E@[@@ 4 (GDSO (1),VALUE( 9)),(GMBSO(1)RH )@@G@@,VALUE(10)),@E@[@@ 5 (GBDO (1),VALUE(11)),(GBSO (1),VALUERI )@@G@@(12)),@E@[@@ 6 (QBD (1),VALUE(13)),(CQBD (1),VALUE(14)),RJ )@@G@@@E@[@@ 7 (QBS (1),VALUE(15)),(CQBS (1),VALUE(16)),@E@[@@RK )@@G@@ 8 (QGS (1),VALUE(17)),(CQGS (1),VALUE(18)),@E@[@@ 9RL )@@G@@ (QGD (1),VALUE(19)),(CQGD (1),VALUE(20)),@E@[@@ A RM )@@G@@ (QGB (1),VALUE(21)),(CQGB (1),VALUE(22)) @[@[@@C @[@[@@C RN )@@G@@@^@[@@ LOC=LOCATE(14) @ @[@@ 10 IF (LOC.EQ.0) RETURN @^@[@@RO )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ RP )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ RQ )@@G@@NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ RR )@@G@@NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ IOFF=NRS )@@G@@ODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(RT )@@G@@LOCM+1) @ @[@@ LOCT=NODPLC(LOC+26) @[@[@@C @^@[@@C DC RU )@@G@@MODEL PARAMETERS @[@[@@C @^@[@@ XJ=VALUE(LOCM+19) @C@[@@ RV )@@G@@XL=VALUE(LOCV+1)-2.0*VALUE(LOCM+20)*XJ @^@[@@ XW=VALUE(LOCV+2) RW )@@G@@@ @[@@ DEVMOD=VALUE(LOCV+8) @ @[@@ VTO=TYPE*VALUE(LOCM+1) RX )@@G@@@ @[@@ VINIT=VALUE(LOCM+33) @ @[@@ CSAT=VALUE(LOCM+15) RY )@@G@@@^@[@@ AD=VALUE(LOCV+3) @^@[@@ AS=VALUE(LOCV+4) @^@[@@ RZ )@@G@@CDSAT=CSAT*AD @^@[@@ CSSAT=CSAT*AS @^@[@@ GDPR=VALUE(LSA )@@G@@OCM+6)@^@[@@ GSPR=VALUE(LOCM+7)@ @[@@ COVLGS=VALUE(LOCM+8)*XW SB )@@G@@@ @[@@ COVLGD=VALUE(LOCM+9)*XW @ @[@@ COVLGB=VALUE(LOCM+10)*XLSC )@@G@@@^@[@@ LEV=VALUE(LOCM+36)@ @[@@ IF (LEV.GT.2) GO TO 15 @[@[@@SD )@@G@@C @A@[@@C MOS1 AND MOS2 MODEL PARAMETERS@[@[@@C @ @[@@ SE )@@G@@BETA=VALUE(LOCM+2)*XW/XL@ @[@@ GAMMA=VALUE(LOCM+3) @^@[@@ SF )@@G@@PHI=VALUE(LOCM+4) @ @[@@ XLAMDA=VALUE(LOCM+5) @^@[@@ COX=VASG )@@G@@LUE(LOCM+13)@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ XNFS=VALUE(LSH )@@G@@OCM+18) @^@[@@ VBP=VALUE(LOCM+24)@ @[@@ UEXP=VALUE(LOCM+25SI )@@G@@) @ @[@@ UTRA=VALUE(LOCM+26) @ @[@@ VBI=TYPE*VALUE(LOCSJ )@@G@@M+34) @^@[@@ XD=VALUE(LOCM+35) @#@[@@ GO TO 18 @[@[@@C SK )@@G@@@ @[@@C E-B MODEL PARAMETERS @[@[@@C @ @[@@ 15 BETA=VALUE(LSL )@@G@@OCM+2)*XW/XL@^@[@@ COX=VALUE(LOCM+13)@^@[@@ TOX=VALUE(LOCM+37)SM )@@G@@@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ UFB=TYPE*VALUE(LOCM+34) SN )@@G@@@ @[@@ ALPHA=VALUE(LOCM+35) @ @[@@ VALPHA=VALUE(LOCM+38) SO )@@G@@@ @[@@ ALPHAF=VALUE(LOCM+39) @ @[@@ TAHPLA=VALUE(LOCM+40) SP )@@G@@@ @[@@ AHPLA2=VALUE(LOCM+41) @ @[@@ UPHIB=VALUE(LOCM+42) SQ )@@G@@@ @[@@ SCATT=VALUE(LOCM+43)/XL @[@[@@C @#@[@@C INITIALIZATION SR )@@G@@@[@[@@C @#@[@@ 18 CONTINUE @]@[@@ KCAP=0@#@[@@ ICHECKSS )@@G@@=0 @B@[@@ GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOST )@@G@@FF.NE.0) GO TO 40 @ @[@@ VDS=TYPE*VALUE(LOCV+5) @ @[@@ VGS=TYSU )@@G@@PE*VALUE(LOCV+6) @ @[@@ VBS=TYPE*VALUE(LOCV+7) @#@[@@ VBD=VBSV )@@G@@S-VDS @#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 SW )@@G@@@A@[@@ IF (VGS.NE.0.0) GO TO 300 @A@[@@ IF (VBS.NE.0.0) GOSX )@@G@@ TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NESY )@@G@@.0)) GO TO 300 @#@[@@ VBS=VINIT @#@[@@ VBD=VINIT @#@[@@SZ )@@G@@ VGS=VTO @#@[@@ VGD=VTO @#@[@@ GO TO 300 @ @[@@TA )@@G@@ 30 IF (IOFF.EQ.0) GO TO 100@#@[@@ 40 VBS=0.0 @#@[@@ VBD=0.TB )@@G@@0 @#@[@@ VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO TC )@@G@@300 @^@[@@ 50 VBS=VBSO(LX0+LOCT)@^@[@@ VBD=VBDO(LX0+LOCT)@^@[@@TD )@@G@@ VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ GO TO TE )@@G@@300 @^@[@@ 60 VBS=VBSO(LX1+LOCT)@^@[@@ VBD=VBDO(LX1+LOCT)@^@[@@TF )@@G@@ VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1+LOCT)@#@[@@ GO TO TG )@@G@@300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@ VBSO(LX0+LOCT)=VBSTH )@@G@@O(LX1+LOCT) @E@[@@ VBS=(1.0+XFACT)*VBSO(LX1+LOCT)-XFACT*VBSO(LX2+LOTI )@@G@@CT) @A@[@@ VBDO(LX0+LOCT)=VBDO(LX1+LOCT) @E@[@@ VBD=(1.0+XFATJ )@@G@@CT)*VBDO(LX1+LOCT)-XFACT*VBDO(LX2+LOCT) @A@[@@ VGSO(LX0+LOCT)=VGSTK )@@G@@O(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1+LOCT)-XFACT*VGSO(LX2+LOTL )@@G@@CT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) @E@[@@ VGD=(1.0+XFATM )@@G@@CT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(TN )@@G@@LX1+LOCT) @A@[@@ CBSO(LX0+LOCT)=CBSO(LX1+LOCT) @A@[@@ CBDO(LTO )@@G@@X0+LOCT)=CBDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@TP )@@G@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @B@[@@ GMBSO(LX0+LOCT)=GMBSO(LXTQ )@@G@@1+LOCT) @A@[@@ GBDO(LX0+LOCT)=GBDO(LX1+LOCT) @A@[@@ GBSO(LTR )@@G@@X0+LOCT)=GBSO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C @B@[@@C COMTS )@@G@@PUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 VBS=TYPE*(VATT )@@G@@LUE(LVNIM1+NODE4)-VALUE(LVNIM1+NODE6)) @E@[@@ VBD=TYPE*(VALUE(LVTU )@@G@@NIM1+NODE4)-VALUE(LVNIM1+NODE5)) @E@[@@ VGS=TYPE*(VALUE(LVNIM1+NTV )@@G@@ODE2)-VALUE(LVNIM1+NODE6)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-TW )@@G@@VALUE(LVNIM1+NODE5)) @A@[@@ 110 DELVBS=VBS-VBSO(LX0+LOCT) @A@[@@TX )@@G@@ DELVBD=VBD-VBDO(LX0+LOCT) @A@[@@ DELVGS=VGS-VGSO(LX0+LOCTTY )@@G@@) @A@[@@ DELVGD=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGTZ )@@G@@S-DELVGD @A@[@@ IF (DEVMOD.LT.0.0) GO TO 120 @G@[@@ CDHAT=UA )@@G@@CDO(LX0+LOCT)-GBDO(LX0+LOCT)*DELVBD+GMBSO(LX0+LOCT)*DELVBS @D@[@@ 1UB )@@G@@ +GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS @#@[@@ GO TO 130 UC )@@G@@@F@[@@ 120 CDHAT=CDO(LX0+LOCT)-(GBDO(LX0+LOCT)-GMBSO(LX0+LOCT))*DELVBD UD )@@G@@@D@[@@ 1 -GMO(LX0+LOCT)*DELVGD+GDSO(LX0+LOCT)*DELVDS @F@[@@ 130 UE )@@G@@CBHAT=CBSO(LX0+LOCT)+CBDO(LX0+LOCT)+GBDO(LX0+LOCT)*DELVBD @A@[@@ 1UF )@@G@@ +GBSO(LX0+LOCT)*DELVBS @[@[@@C @B@[@@C BYPASS IF SOLUTION HAUG )@@G@@S NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 UH )@@G@@@E@[@@ TOL=RELTOL*AMAX1(ABS(VBS),ABS(VBSO(LX0+LOCT)))+VNTOL @B@[@@UI )@@G@@ IF (ABS(DELVBS).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(AUJ )@@G@@BS(VBD),ABS(VBDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVBD).GE.TOL) UK )@@G@@GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VUL )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=REUM )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVUN )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(UO )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TOUP )@@G@@ 200 @G@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBSO(LX0+LOCT)+CBDO(LXUQ )@@G@@0+LOCT))) @#@[@@ 1 +ABSTOL @G@[@@ IF (ABS(CBHAT-(CBSO(LX0+UR )@@G@@LOCT)+CBDO(LX0+LOCT))).GE.TOL) GO TO 200 @^@[@@ VBD=VBDO(LX0+LOCT)US )@@G@@@^@[@@ VBS=VBSO(LX0+LOCT)@^@[@@ VGS=VGSO(LX0+LOCT)@^@[@@ UT )@@G@@VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD @#@[@@ VGB=VGS-VBS @^@[@@UU )@@G@@ CD=CDO(LX0+LOCT) @^@[@@ CBS=CBSO(LX0+LOCT)@^@[@@ CBD=CBUV )@@G@@DO(LX0+LOCT)@ @[@@ CDRAIN=DEVMOD*(CD+CBD) @^@[@@ GM=GMO(LX0+LUW )@@G@@OCT) @^@[@@ GDS=GDSO(LX0+LOCT)@ @[@@ GMBS=GMBSO(LX0+LOCT) UX )@@G@@@^@[@@ GBD=GBDO(LX0+LOCT)@^@[@@ GBS=GBSO(LX0+LOCT)@]@[@@ UY )@@G@@KCAP=1@ @[@@ IF (LEV.GT.2) GO TO 400 @#@[@@ GO TO 800 @[@[@@UZ )@@G@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES @[@[@@C @ @[@@ 200 VA )@@G@@VON=TYPE*VALUE(LOCV+9) @B@[@@ CALL FETLIM(VGS,VGSO(LX0+LOCT),VON) VB )@@G@@@B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VON) @#@[@@ VDS=VGS-VGD VC )@@G@@@A@[@@ IF (VDS.LT.0.0) GO TO 210 @B@[@@ VCRIT=VT*ALOG(VT/(VD )@@G@@ROOT2*CSSAT)) @D@[@@ CALL PNJLIM(VBS,VBSO(LX0+LOCT),VT,VCRIT,ICVE )@@G@@HECK) @#@[@@ VBD=VBS-VDS @#@[@@ GO TO 300 @B@[@@ 210 VCRIT=VF )@@G@@VT*ALOG(VT/(ROOT2*CDSAT)) @D@[@@ CALL PNJLIM(VBD,VBDO(LX0+LOCT)VG )@@G@@,VT,VCRIT,ICHECK) @#@[@@ VBS=VBD+VDS @[@[@@C @B@[@@C DETERMINEVH )@@G@@ DC CURRENT AND DERIVATIVES @[@[@@C @#@[@@ 300 VDS=VGS-VGD @#@[@@VI )@@G@@ VGB=VGS-VBS @A@[@@ IF (VBS.GT.0.0) GO TO 310 @#@[@@ VJ )@@G@@GBS=CSSAT/VT@#@[@@ CBS=GBS*VBS @#@[@@ GBS=GBS+GMIN@#@[@@ VK )@@G@@GO TO 320 @^@[@@ 310 EVBS=EXP(VBS/VT) @ @[@@ GBS=CSSAT*EVBS/VT+VL )@@G@@GMIN @ @[@@ CBS=CSSAT*(EVBS-1.0) @A@[@@ 320 IF (VBD.GT.0.0) GOVM )@@G@@ TO 330 @#@[@@ GBD=CDSAT/VT@#@[@@ CBD=GBD*VBD @#@[@@ VN )@@G@@GBD=GBD+GMIN@#@[@@ GO TO 400 @^@[@@ 330 EVBD=EXP(VBD/VT) @ @[@@VO )@@G@@ GBD=CDSAT*EVBD/VT+GMIN @ @[@@ CBD=CDSAT*(EVBD-1.0) @[@[@@VP )@@G@@C @B@[@@C COMPUTE DRAIN CURRENT AND DERIVATIVES @[@[@@C @A@[@@VQ )@@G@@ 400 IF (VDS.LT.0.0) GO TO 450 @[@[@@C @#@[@@C NORMAL MODE VR )@@G@@@[@[@@C @#@[@@ DEVMOD=1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD VS )@@G@@@ @[@@ GO TO (405,410,445),LEV @ @[@@ 405 CALL MOSEQ1(VDS,VBS,VGS)VT )@@G@@@#@[@@ GO TO 460 @ @[@@ 410 CALL MOSEQ2(VDS,VBS,VGS)@#@[@@ VU )@@G@@GO TO 460 @A@[@@ 445 CALL ELMNSY(VDS,VBS,VGS,KCAP) @#@[@@ GO TO VV )@@G@@460 @[@[@@C @#@[@@C INVERSE MODE @[@[@@C @#@[@@ 450 DEVMODVW )@@G@@=-1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD @ @[@@ GO TO (452,453,455VX )@@G@@),LEV @A@[@@ 452 CALL MOSEQ1(-VDS,VBD,VGD) @#@[@@ GO TO 460 VY )@@G@@@A@[@@ 453 CALL MOSEQ2(-VDS,VBD,VGD) @#@[@@ GO TO 460 @A@[@@VZ )@@G@@ 455 CALL ELMNSY(-VDS,VBD,VGD,KCAP)@#@[@@ 460 CONTINUE @ @[@@ WA )@@G@@IF (KCAP.EQ.1) GO TO 800@ @[@@ VALUE(LOCV+9)=TYPE*VON @A@[@@ WB )@@G@@VALUE(LOCV+10)=TYPE*VDSAT @[@[@@C @B@[@@C COMPUTE EQUIVALENT DRWC )@@G@@AIN CURRENT SOURCE@[@[@@C @ @[@@ 490 CD=DEVMOD*CDRAIN-CBD @ @[@@WD )@@G@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.WE )@@G@@NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ WF )@@G@@GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C WG )@@G@@@ @[@@ 500 CZBD=VALUE(LOCM+11)*AD @ @[@@ CZBS=VALUE(LOCM+12)*AS WH )@@G@@@ @[@@ PHIB=VALUE(LOCM+14) @^@[@@ TWOP=PHIB+PHIB @ @[@@WI )@@G@@ FCPB=VALUE(LOCM+29) @^@[@@ FCPB2=FCPB*FCPB @^@[@@ WJ )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCWK )@@G@@M+32) @^@[@@ CZBSF2=CZBS/F2 @^@[@@ CZBDF2=CZBD/F2 @A@[@@WL )@@G@@ IF (VBS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.0-VBS/PHIB) WM )@@G@@@B@[@@ QBS(LX0+LOCT)=TWOP*CZBS*(1.0-SARG) @^@[@@ CAPBS=CZBS/SWN )@@G@@ARG @#@[@@ GO TO 520 @D@[@@ 510 QBS(LX0+LOCT)=CZBS*F1+CZBSF2*(WO )@@G@@F3*(VBS-FCPB) @B@[@@ 1 +(VBS*VBS-FCPB2)/(TWOP+TWOP)) @A@[@@WP )@@G@@ CAPBS=CZBSF2*(F3+VBS/TWOP) @A@[@@ 520 IF (VBD.GE.FCPB) GO TO 5WQ )@@G@@30 @ @[@@ SARG=SQRT(1.0-VBD/PHIB) @B@[@@ QBD(LX0+LOCT)=TWOPWR )@@G@@*CZBD*(1.0-SARG) @^@[@@ CAPBD=CZBD/SARG @#@[@@ GO TO 560 WS )@@G@@@D@[@@ 530 QBD(LX0+LOCT)=CZBD*F1+CZBDF2*(F3*(VBD-FCPB) @B@[@@ 1WT )@@G@@ +(VBD*VBD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPBD=CZBDF2*(F3+VBD/TWOWU )@@G@@P) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS @[@[@@C WV )@@G@@@G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 7WW )@@G@@00 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ VALUE(LX0+LOWX )@@G@@CT+12)=CAPBD@ @[@@ VALUE(LX0+LOCT+14)=CAPBS@#@[@@ GO TO 810 WY )@@G@@@[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INWZ )@@G@@ITF.NE.5) GO TO 610 @A@[@@ QBD(LX1+LOCT)=QBD(LX0+LOCT) @A@[@@XA )@@G@@ QBS(LX1+LOCT)=QBS(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBXB )@@G@@D,LOCT+12) @#@[@@ GBD=GBD+GEQ @ @[@@ CBD=CBD+CQBD(LX0+LOCT) XC )@@G@@@ @[@@ CD=CD-CQBD(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBXD )@@G@@S,LOCT+14) @#@[@@ GBS=GBS+GEQ @ @[@@ CBS=CBS+CQBS(LX0+LOCT) XE )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQBD(LX1+LOCT)=CQBXF )@@G@@D(LX0+LOCT) @A@[@@ CQBS(LX1+LOCT)=CQBS(LX0+LOCT) @[@[@@C @^@[@@XG )@@G@@C CHECK CONVERGENCE @[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 71XH )@@G@@0 @ @[@@ IF (IOFF.NE.0) GO TO 750@A@[@@ 710 IF (ICHECK.EQ.0) GXI )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL XJ )@@G@@@B@[@@ IF (ABS(CDHAT-CD).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AXK )@@G@@MAX1(ABS(CBHAT),ABS(CBS+CBD))+ABSTOL@C@[@@ IF (ABS(CBHAT-(CBS+CBD))XL )@@G@@.LE.TOL) GO TO 750@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBDO(LX0+LOCXM )@@G@@T)=VBD@^@[@@ VBSO(LX0+LOCT)=VBS@^@[@@ VGSO(LX0+LOCT)=VGS@^@[@@XN )@@G@@ VGDO(LX0+LOCT)=VGD@^@[@@ CDO(LX0+LOCT)=CD @^@[@@ CBSO(LXO )@@G@@X0+LOCT)=CBS@^@[@@ CBDO(LX0+LOCT)=CBD@^@[@@ GMO(LX0+LOCT)=GM XP )@@G@@@^@[@@ GDSO(LX0+LOCT)=GDS@ @[@@ GMBSO(LX0+LOCT)=GMBS @^@[@@XQ )@@G@@ GBDO(LX0+LOCT)=GBD@^@[@@ GBSO(LX0+LOCT)=GBS@[@[@@C @B@[@@XR )@@G@@C LINEAR CAPACITANCES CGS, CGD, AND CGB @[@[@@C @ @[@@ 800 IF (MOXS )@@G@@DE.NE.1) GO TO 810@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TOXT )@@G@@ 810 @#@[@@ GCGS=0.0 @#@[@@ CEQGS=0.0 @#@[@@ GCGD=0XU )@@G@@.0 @#@[@@ CEQGD=0.0 @#@[@@ GCGB=0.0 @#@[@@ CEQGB=XV )@@G@@0.0 @#@[@@ GO TO 900 @^@[@@ 810 COX=COX*XL*XW @ @[@@ XW )@@G@@VON=TYPE*VALUE(LOCV+9) @#@[@@ VGS1=VGS @#@[@@ VGD1=VGD XX )@@G@@@#@[@@ VGB1=VGS-VBS@C@[@@ IF ((MODE.NE.2).OR.(INITF.EQ.5)) GO XY )@@G@@TO 811@ @[@@ VGS1=VGSO(LX1+LOCT) @ @[@@ VGD1=VGDO(LX1+LOCTXZ )@@G@@) @ @[@@ VGB1=VGS1-VBSO(LX1+LOCT)@A@[@@ 811 IF (DEVMOD.LT.0.0)YA )@@G@@ GO TO 813 @G@[@@ CALL MOSCAP (VGS1,VGD1,VGB1,VGS,VGD,VGB,COVLGS,CYB )@@G@@OVLGD,COVLGB, @B@[@@ 1 CGS1,CGD1,CGB1,CGS,CGD,CGB) @#@[@@YC )@@G@@ GO TO 816 @G@[@@ 813 CALL MOSCAP (VGD1,VGS1,VGB1,VGD,VGS,VGB,COYD )@@G@@VLGD,COVLGS,COVLGB, @B@[@@ 1 CGD1,CGS1,CGB1,CGD,CGS,CGB) YE )@@G@@@^@[@@ 816 CGS=0.5*(CGS+CGS1)@^@[@@ CGD=0.5*(CGD+CGD1)@^@[@@ YF )@@G@@CGB=0.5*(CGB+CGB1)@ @[@@ IF(MODE.NE.1) GO TO 818 @A@[@@ IF (INYG )@@G@@ITF.NE.4) GO TO 818 @ @[@@ VALUE(LX0+LOCT+16)=CGS @ @[@@ YH )@@G@@VALUE(LX0+LOCT+18)=CGD @ @[@@ VALUE(LX0+LOCT+20)=CGB @#@[@@ YI )@@G@@GO TO 1000 @A@[@@ 818 IF (INITF.NE.6) GO TO 820 @F@[@@ QGS(LXYJ )@@G@@0+LOCT)=(1.0+XFACT)*QGS(LX1+LOCT)-XFACT*QGS(LX2+LOCT) @F@[@@ QGD(LXYK )@@G@@0+LOCT)=(1.0+XFACT)*QGD(LX1+LOCT)-XFACT*QGD(LX2+LOCT) @F@[@@ QGB(LXYL )@@G@@0+LOCT)=(1.0+XFACT)*QGB(LX1+LOCT)-XFACT*QGB(LX2+LOCT) @#@[@@ GO TO YM )@@G@@830 @A@[@@ 820 QGS(LX0+LOCT)=(VGS-VGS1)*CGS @A@[@@ QGD(LX0+LOCTYN )@@G@@)=(VGD-VGD1)*CGD @A@[@@ QGB(LX0+LOCT)=(VGB-VGB1)*CGB @C@[@@ YO )@@G@@IF((MODE.NE.2).OR.(INITF.EQ.5))GO TO 825 @C@[@@ QGS(LX0+LOCT)=QGS(YP )@@G@@LX0+LOCT)+QGS(LX1+LOCT) @C@[@@ QGD(LX0+LOCT)=QGD(LX0+LOCT)+QGD(LX1+YQ )@@G@@LOCT) @C@[@@ QGB(LX0+LOCT)=QGB(LX0+LOCT)+QGB(LX1+LOCT) @G@[@@ 825 YR )@@G@@IF((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @A@[@@YS )@@G@@ IF (INITF.NE.5) GO TO 830 @ @[@@ QGS(LX0+LOCT)=CGS*VGS YT )@@G@@@ @[@@ QGD(LX0+LOCT)=CGD*VGD @ @[@@ QGB(LX0+LOCT)=CGB*VGB YU )@@G@@@A@[@@ QGS(LX1+LOCT)=QGS(LX0+LOCT) @A@[@@ QGD(LX1+LOCT)=QGD(YV )@@G@@LX0+LOCT) @A@[@@ QGB(LX1+LOCT)=QGB(LX0+LOCT) @B@[@@ 830 IF(CGSYW )@@G@@.EQ.0.0)VALUE(LX0+LOCT+17)=0.0@B@[@@ IF(CGD.EQ.0.0)VALUE(LX0+LOCT+1YX )@@G@@9)=0.0@B@[@@ IF(CGB.EQ.0.0)VALUE(LX0+LOCT+21)=0.0@B@[@@ CALL IYY )@@G@@NTGR8(GCGS,CEQGS,CGS,LOCT+16) @B@[@@ CALL INTGR8(GCGD,CEQGD,CGD,LOCYZ )@@G@@T+18) @B@[@@ CALL INTGR8(GCGB,CEQGB,CGB,LOCT+20) @C@[@@ CEQGS=ZA )@@G@@CEQGS-GCGS*VGS+AG(1)*QGS(LX0+LOCT) @C@[@@ CEQGD=CEQGD-GCGD*VGD+AG(ZB )@@G@@1)*QGD(LX0+LOCT) @C@[@@ CEQGB=CEQGB-GCGB*VGB+AG(1)*QGB(LX0+LOCT) ZC )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 900 @A@[@@ CQGS(LX1+LOCT)=CQGZD )@@G@@S(LX0+LOCT) @A@[@@ CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @A@[@@ CQGB(LZE )@@G@@X1+LOCT)=CQGB(LX0+LOCT) @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@ZF )@@G@@C @B@[@@ 900 CEQBS=TYPE*(CBS-(GBS-GMIN)*VBS) @B@[@@ CEQBD=ZG )@@G@@TYPE*(CBD-(GBD-GMIN)*VBD) @^@[@@ CEQGS=TYPE*CEQGS @^@[@@ ZH )@@G@@CEQGD=TYPE*CEQGD @^@[@@ CEQGB=TYPE*CEQGB @#@[@@ XNRM=1.0 ZI )@@G@@@#@[@@ XREV=0.0 @A@[@@ IF (DEVMOD.LT.0.0) GO TO 910 @D@[@@ZJ )@@G@@ CDREQ=TYPE*(CDRAIN-GDS*VDS-GM*VGS-GMBS*VBS) @#@[@@ GO TO ZK )@@G@@920 @#@[@@ 910 XNRM=0.0 @#@[@@ XREV=1.0 @D@[@@ CDREQ=ZL )@@G@@-TYPE*(CDRAIN-GDS*(-VDS)-GM*VGD-GMBS*VBD) @E@[@@ 920 VALUE(LVN+NODE2)=VZM )@@G@@ALUE(LVN+NODE2)-CEQGS-CEQGD-CEQGB @E@[@@ VALUE(LVN+NODE4)=VALUE(LZN )@@G@@VN+NODE4)-CEQBS-CEQBD+CEQGB @E@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODZO )@@G@@E5)-CDREQ+CEQGD+CEQBD @E@[@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CDZP )@@G@@REQ+CEQGS+CEQBS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C @ @[@@ZQ )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR ZR )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+ZS )@@G@@GCGD+GCGS+GCGB @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(ZT )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+30)@B@[@@ ZU )@@G@@VALUE(LOCY)=VALUE(LOCY)+GBD+GBS+GCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+31)ZV )@@G@@@F@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GBD+GCGD+XREV*(GM+GMBS) ZW )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@F@[@@ VALUE(LOCY)=VALUE(LOCY)+ZX )@@G@@GSPR+GDS+GBS+GCGS+XNRM*(GM+GMBS) @ @[@@ LOCY=LYNL+NODPLC(LOC+10)ZY )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LZZ )@@G@@OC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB @ @[@@ LOCY=LYNL+NOAA )@@G@@DPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGD @ @[@@ LOCY=LAB )@@G@@YNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGS @ @[@@ AC )@@G@@LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@AD )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB AE )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-AF )@@G@@GBD @ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(AG )@@G@@LOCY)-GBS @ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=AH )@@G@@VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@D@[@@ VALUE(AI )@@G@@LOCY)=VALUE(LOCY)-GCGD+(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LAJ )@@G@@OC+20)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBD+(XNRM-XREV)*GMBS @ @[@@AK )@@G@@ LOCY=LYNL+NODPLC(LOC+21)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XNAL )@@G@@RM*(GM+GMBS)@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@D@[@@ VALUE(LOCY)=AM )@@G@@VALUE(LOCY)-GCGS-(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LOC+23)AN )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LAO )@@G@@OC+24)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBS-(XNRM-XREV)*GMBS @ @[@@AP )@@G@@ LOCY=LYNL+NODPLC(LOC+25)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XRAQ )@@G@@EV*(GM+GMBS)@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@AR )@@G@@ END @A@@@@ SUBROUTINE MOSEQ1(VDS,VBS,VGS)@[@@@@C @F@@@@AS )@@G@@C THIS ROUTINE EVALUATES THE DRAIN CURRENT AND ITS DERIVATIVES@D@@@@AT )@@G@@C USING THE SHICHMAN-HODGES MODEL FOR MOSFETS @[@@@@C @ @@@[AU )@@G@@ IMPLICIT REAL*8(A-H,O-Z)@ @@@] INCLUDE F.MOSARG,LIST @ @@@]AV )@@G@@ INCLUDE F.STATUS,LIST @ @@@] INCLUDE F.KNSTNT,LIST @^@]@[AW )@@G@@@ADD,P *SPICE.MOSEQ1D@G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,CAX )@@G@@OX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDAY )@@G@@SAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHAAZ )@@G@@,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFBBA )@@G@@,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIBB )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICABC )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MBD )@@G@@ODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHABE )@@G@@RGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPBF )@@G@@SSIL,EPSOX @[@@@@C @F@@@@C COMPUTE THRESHOLD VOLTAGE VON AND SABG )@@G@@TURATION VOLTAGE VDSAT @[@@@@C @A@#@@ IF (VBS.GT.0.0) GO TO 10BH )@@G@@2 @A@@@# IF (VBS.GT.0.D0) GO TO 102 @^@#@@ SARG=SQRT(PHBI )@@G@@I-VBS)@ @@@# SARG=DSQRT(PHI-VBS) @#@@@@ GO TO 104 @^@#@@BJ )@@G@@ 102 SARG=SQRT(PHI) @^@@@# 102 SARG=DSQRT(PHI) @A@@@@ SARG=SBK )@@G@@ARG-VBS/(SARG+SARG) @ @#@@ SARG=AMAX1(0.0,SARG) @ @@@# BL )@@G@@SARG=DMAX1(0.D0,SARG) @^@@@@ 104 VON=VBI+GAMMA*SARG@#@@@@ VGST=VBM )@@G@@GS-VON@ @#@@ VDSAT=AMAX1(VGST,0.0) @ @@@# VDSAT=DMAX1(VGST,0BN )@@G@@.D0) @ @@@@ ARG=GAMMA/(SARG+SARG) @A@#@@ IF (VGST.GT.0.0) GBO )@@G@@O TO 110 @A@@@# IF (VGST.GT.0.D0) GO TO 110 @[@@@@C @^@@@@BP )@@G@@C CUTOFF REGION @[@@@@C @#@#@@ CDRAIN=0.0 @#@@@# BQ )@@G@@CDRAIN=0.D0 @]@#@@ GM=0.0@#@@@# GM=0.D0 @#@#@@ GDS=0.BR )@@G@@0 @#@@@# GDS=0.D0 @#@#@@ GMBS=0.0 @#@@@# GMBS=0BS )@@G@@.D0 @#@@@@ GO TO 300 @[@@@@C @^@@@@C SATURATION REGION BT )@@G@@@[@@@@C @A@^@@ 110 BETAP=BETA*(1.0+XLAMDA*VDS) @A@@@^ 110 BETAP=BU )@@G@@BETA*(1.D0+XLAMDA*VDS) @A@@@@ IF (VGST.GT.VDS) GO TO 120 @A@#@@BV )@@G@@ CDRAIN=BETAP*VGST*VGST/2.0 @A@@@# CDRAIN=BETAP*VGST*VGST/2BW )@@G@@.D0 @^@@@@ GM=BETAP*VGST @A@#@@ GDS=XLAMDA*BETA*VGST*VGSBX )@@G@@T/2.0 @A@@@# GDS=XLAMDA*BETA*VGST*VGST/2.D0@#@@@@ GMBS=GM*ARG BY )@@G@@@#@@@@ GO TO 300 @[@@@@C @^@@@@C LINEAR REGION @[@@@@BZ )@@G@@C @B@#@@ 120 CDRAIN=BETAP*VDS*(VGST-VDS/2.0) @B@@@# 120 CDRAINCA )@@G@@=BETAP*VDS*(VGST-VDS/2.D0) @#@@@@ GM=BETAP*VDS@E@#@@ GDS=BECB )@@G@@TAP*(VGST-VDS)+XLAMDA*BETA*VDS*(VGST-VDS/2.0) @E@@@# GDS=BETAP*(VCC )@@G@@GST-VDS)+XLAMDA*BETA*VDS*(VGST-VDS/2.D0) @#@@@@ GMBS=GM*ARG @[@@@@CD )@@G@@C @]@@@@C RETURN@[@@@@C @]@@@@ 300 RETURN@]@@@[ END CE )@@G@@@]@[@@ END @A@[@@ SUBROUTINE MOSEQ2(VDS,VBS,VGS)@[@[@@C CF )@@G@@@G@[@@C THIS ROUTINE EVALUATES THE DRAIN CURRENT AND ITS DERIVATIVESCG )@@G@@ FOR @]@[@@C MOSFETS. @[@[@@C @G@[@@ COMMON /MOSARG/ GAMMA,BECH )@@G@@TA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXCI )@@G@@P,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,ACJ )@@G@@HPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BIOCK )@@G@@N,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /STATCL )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODCM )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITECN )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RCO )@@G@@AD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHCP )@@G@@GTOL,EPS0,EPSSIL,EPSOX @[@[@@C @A@[@@C COMPUTE SOME USEFUL QUANTITCQ )@@G@@IES @[@[@@C @A@[@@ IF (VBS.GT.0.0) GO TO 110 @^@[@@ CR )@@G@@SARG=SQRT(PHI-VBS)@^@[@@ TSARG=SARG+SARG @ @[@@ BARG=SQRT(PHCS )@@G@@I+VDS-VBS) @#@[@@ GO TO 200 @^@[@@ 110 SARG=SQRT(PHI) @A@[@@CT )@@G@@ SARG=SARG-VBS/(SARG+SARG) @ @[@@ SARG=AMAX1(SARG,0.0) CU )@@G@@@^@[@@ TSARG=SARG+SARG @^@[@@ BARG=SQRT(PHI+VDS)@A@[@@ CV )@@G@@BARG=BARG-VBS/(BARG+BARG) @ @[@@ BARG=AMAX1(BARG,0.0) @[@[@@CW )@@G@@C @A@[@@C CALCULATE THRESHOLD VOLTAGE (VON)@[@[@@C @ @[@@ 200 CX )@@G@@IF (XJ.LE.0.0) GO TO 210@A@[@@ IF (GAMMA.LE.0.0) GO TO 210 @A@[@@CY )@@G@@ ARG=SQRT(1.0+XD*TSARG/XJ) @B@[@@ GAMMAD=GAMMA*(1.0-XJ*(ARCZ )@@G@@G-1.0)/XL) @A@[@@ DGDVBS=GAMMA*XD/(XL*TSARG*ARG)@#@[@@ GO TO DA )@@G@@220 @#@[@@ 210 GAMMAD=GAMMA@#@[@@ DGDVBS=0.0 @ @[@@ 220 VON=VBDB )@@G@@I+GAMMAD*SARG @#@[@@ VDSAT=0.0 @#@[@@ VGST=VGS-VON@A@[@@DC )@@G@@ IF (XNFS.EQ.0.0) GO TO 230 @A@[@@ IF (COX.EQ.0.0) GO TO 23DD )@@G@@0 @D@[@@ VON=VON+VT*(1.0+CHARGE*XNFS/COX+GAMMAD/TSARG) @#@[@@DE )@@G@@ VGST=VGS-VON@#@[@@ GO TO 300 @A@[@@ 230 IF (VGS.GT.VON) GODF )@@G@@ TO 300 @[@[@@C @#@[@@C CUTOFF REGION @[@[@@C @#@[@@ DG )@@G@@GDS=0.0 @#@[@@ GO TO 1100 @[@[@@C @B@[@@C COMPUTE SOME MODH )@@G@@RE USEFUL QUANTITIES @[@[@@C @ @[@@ 300 SARG3=SARG*SARG*SARG DI )@@G@@@A@[@@ BODY=BARG*BARG*BARG-SARG3 @ @[@@ GDBDV=GAMMAD*(SARGDJ )@@G@@-BARG)@B@[@@ DODVBS=SARG*DGDVBS-GAMMAD/TSARG @A@[@@ IF (XNDK )@@G@@FS.EQ.0.0) GO TO 400 @A@[@@ IF (COX.EQ.0.0) GO TO 400 @E@[@@DL )@@G@@ DODVBS=DODVBS+VT*(DGDVBS/TSARG-GAMMAD/(4.0*SARG3)) @[@[@@C DM )@@G@@@D@[@@C EVALUATE SATURATION VOLTAGE AND ITS DERIVATIVES @[@[@@C DN )@@G@@@A@[@@ 400 IF (GAMMAD.LE.0.0) GO TO 410 @ @[@@ GAMMD2=GAMMAD*GAMMDO )@@G@@AD @ @[@@ ARGV=VGS-VBI+PHI-VBS @A@[@@ IF (ARGV.LE.0.0) GDP )@@G@@O TO 420 @A@[@@ ARG=SQRT(1.0+4.0*ARGV/GAMMD2) @B@[@@ VDSAT=DQ )@@G@@VGS-VBI+GAMMD2*(1.0-ARG)/2.0 @ @[@@ VDSAT=AMAX1(VDSAT,0.0) @^@[@@DR )@@G@@ DSDVGS=1.0-1.0/ARG@G@[@@ DSDVBS=(GAMMAD*(1.0-ARG)+2.0*ARGV/(GDS )@@G@@AMMAD*ARG))*DGDVBS+1.0/ARG @#@[@@ GO TO 500 @ @[@@ 410 VDSAT=DT )@@G@@AMAX1(VGS-VBI,0.0)@#@[@@ DSDVGS=1.0 @#@[@@ DSDVBS=0.0 @#@[@@DU )@@G@@ GO TO 500 @#@[@@ 420 DSDVGS=0.0 @#@[@@ DSDVBS=0.0 @[@[@@DV )@@G@@C @D@[@@C EVALUATE EFFECTIVE MOBILITY AND ITS DERIVATIVES @[@[@@DW )@@G@@C @A@[@@ 500 IF (COX.LE.0.0) GO TO 510 @B@[@@ UDENOM=VGST-DX )@@G@@UTRA*AMIN1(VDS,VDSAT) @A@[@@ IF (UDENOM.LE.VBP) GO TO 510 @B@[@@DY )@@G@@ UFACT=EXP(UEXP*ALOG(VBP/UDENOM)) @A@[@@ DUDVGS=-UFACT*UEXPDZ )@@G@@/UDENOM @ @[@@ DUDVDS=-DUDVGS*UTRA @#@[@@ DUDVBS=0.0 EA )@@G@@@#@[@@ GO TO 600 @#@[@@ 510 UFACT=1.0 @#@[@@ DUDVGS=0.0 EB )@@G@@@#@[@@ DUDVDS=0.0 @#@[@@ DUDVBS=0.0 @[@[@@C @E@[@@C EVAEC )@@G@@LUATE EFFECTIVE CHANNEL LENGTH AND ITS DERIVATIVES @[@[@@C @A@[@@ED )@@G@@ 600 IF (VDS.EQ.0.0) GO TO 610 @A@[@@ IF (XLAMDA.GT.0.0) GO TOEE )@@G@@ 610 @A@[@@ IF (XNSUB.EQ.0.0) GO TO 610 @ @[@@ ARGV=(VDS-VDEF )@@G@@SAT)/4.0 @A@[@@ SARGV=SQRT(1.0+ARGV*ARGV) @ @[@@ ARG=SQEG )@@G@@RT(ARGV+SARGV) @^@[@@ XLFACT=XD/(XL*VDS)@^@[@@ XLAMDA=XLFACEH )@@G@@T*ARG @A@[@@ DLDSAT=-XLFACT*ARG/(8.0*SARGV)@A@[@@ DLDVGS=-VDS*EI )@@G@@DLDSAT*DSDVGS @A@[@@ DLDVDS=-XLAMDA/VDS-DLDSAT @A@[@@ EJ )@@G@@DLDVBS=-VDS*DLDSAT*DSDVBS @#@[@@ GO TO 620 @#@[@@ 610 DLDVGSEK )@@G@@=0.0 @#@[@@ DLDVDS=0.0 @#@[@@ DLDVBS=0.0 @ @[@@ 620 CLFACTEL )@@G@@=1.0-XLAMDA*VDS @A@[@@ DLDVDS=-XLAMDA-VDS*DLDVDS @[@[@@C EM )@@G@@@B@[@@C EVALUATE EFFECTIVE BETA (EFFECTIVE KP) @[@[@@C @ @[@@ EN )@@G@@BETA1=BETA*UFACT/CLFACT @[@[@@C @D@[@@C TEST FOR MODE OF OPERATION EO )@@G@@AND BRANCH APPROPRIATELY@[@[@@C @A@[@@ IF (VDS.NE.0.0) GO TO 73EP )@@G@@0 @A@[@@ IF (VGS.GT.VON) GO TO 720 @D@[@@ IF ((XNFS.NEEQ )@@G@@.0.0).AND.(COX.NE.0.0)) GO TO 710 @#@[@@ GDS=0.0 @#@[@@ ER )@@G@@GO TO 1100 @A@[@@ 710 VFACT=VON-VBI-GAMMAD*SARG @B@[@@ GDS=BEES )@@G@@TA1*VFACT*EXP((VGS-VON)/VFACT)@#@[@@ GO TO 1100 @B@[@@ 720 GDS=BEET )@@G@@TA1*(VGS-VBI-GAMMAD*SARG) @#@[@@ GO TO 1100 @[@[@@C @[@[@@EU )@@G@@C @A@[@@ 730 IF (VGS.GT.VON) GO TO 900 @[@[@@C @^@[@@C SUBEV )@@G@@THRESHOLD REGION @[@[@@C @E@[@@C CALCULATE SATURATION VOLTAGE AND EW )@@G@@ITS DERIVATIVES AT VON @[@[@@C @A@[@@ IF (GAMMAD.LE.0.0) GO TOEX )@@G@@ 810 @ @[@@ GAMMD2=GAMMAD*GAMMAD @ @[@@ ARGV=VON-VBI+PHI-VEY )@@G@@BS @A@[@@ ARG=SQRT(1.0+4.0*ARGV/GAMMD2) @#@[@@ GO TO 820 EZ )@@G@@@#@[@@ 810 ARG=0.0 @#@[@@ GAMMD2=0.0 @B@[@@ 820 VSATON=VON-VFA )@@G@@BI+GAMMD2*(1.0-ARG)/2.0 @A@[@@ IF (VSATON.GT.0.0) GO TO 830 @#@[@@FB )@@G@@ GDS=0.0 @#@[@@ GO TO 1100 @ @[@@ 830 VDSON=AMIN1(VSATONFC )@@G@@,VDS) @A@[@@ IF (VBS.GT.0.0) GO TO 840 @ @[@@ BARG=SQRT(PHFD )@@G@@I+VDSON-VBS)@#@[@@ GO TO 850 @ @[@@ 840 BARG=SQRT(PHI+VDSON) FE )@@G@@@A@[@@ BARG=BARG-VBS/(BARG+BARG) @A@[@@ 850 BODY=BARG*BARG*BARFF )@@G@@G-SARG3 @ @[@@ GDBDV=GAMMAD*(SARG-BARG)@D@[@@ CDSON=(VON-VFG )@@G@@BI-VDSON/2.0)*VDSON-GAMMAD*BODY/1.5 @B@[@@ DIDVDS=VON-VBI-VDSON-GAMFH )@@G@@MAD*BARG @C@[@@ DIDVBS=DODVBS*VDSON-DGDVBS*BODY/1.5-GDBDV @[@[@@FI )@@G@@C @D@[@@C EVALUATE SUBTHRESHOLD CURRENT AND ITS DERIVATIVES @[@[@@FJ )@@G@@C @^@[@@ VFACT=CDSON/VDSON @ @[@@ ARGEXP=(VGS-VON)/VFACT FK )@@G@@@ @[@@ BETA2=BETA1*EXP(ARGEXP) @^@[@@ CDRAIN=BETA2*CDSON@B@[@@FL )@@G@@ IF (CDRAIN.GE.1.0E-15) GO TO 860 @#@[@@ GDS=0.0 @#@[@@FM )@@G@@ GO TO 1100 @C@[@@ 860 ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) FN )@@G@@@ @[@@ GM=ARG+CDRAIN/VFACT @C@[@@ ARG=CDRAIN*(DUDVBS/UFACTFO )@@G@@-DLDVBS/CLFACT) @G@[@@ GMBS=ARG-CDRAIN*(DODVBS/VFACT-ARGEXP*DIDVBFP )@@G@@S/CDSON)+BETA2*DIDVBS @A@[@@ GDS=-CDRAIN*DLDVDS/CLFACT @A@[@@FQ )@@G@@ IF (VDS.GT.VSATON) GO TO 2000 @F@[@@ GDS=GDS+CDRAIN*(DUDVDS/UFR )@@G@@FACT-ARGEXP*(DIDVDS-VFACT)/CDSON) @^@[@@ 1 +BETA2*DIDVDS @#@[@@FS )@@G@@ GO TO 2000 @[@[@@C @[@[@@C @A@[@@ 900 IF (VDS.GT.VDSAT) FT )@@G@@GO TO 1000 @[@[@@C @#@[@@C LINEAR REGION @[@[@@C @E@[@@ FU )@@G@@CDRAIN=BETA1*((VGS-VBI-VDS/2.0)*VDS-GAMMAD*BODY/1.5) @C@[@@ ARG=CDFV )@@G@@RAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) @^@[@@ GM=ARG+BETA1*VDS @C@[@@FW )@@G@@ ARG=CDRAIN*(DUDVDS/UFACT-DLDVDS/CLFACT) @C@[@@ GDS=ARG+BETAFX )@@G@@1*(VGS-VBI-VDS-GAMMAD*BARG) @C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBFY )@@G@@S/CLFACT) @C@[@@ GMBS=ARG-BETA1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@FZ )@@G@@ GO TO 2000 @[@[@@C @^@[@@C SATURATION REGION @[@[@@C GA )@@G@@@A@[@@ 1000 IF (VBS.GT.0.0) GO TO 1010 @ @[@@ BARG=SQRT(PHI+VDSAGB )@@G@@T-VBS)@#@[@@ GO TO 1020 @ @[@@ 1010 BARG=SQRT(PHI+VDSAT) @A@[@@GC )@@G@@ BARG=BARG-VBS/(BARG+BARG) @A@[@@ 1020 BODY=BARG*BARG*BARG-SARGGD )@@G@@3 @ @[@@ GDBDV=GAMMAD*(SARG-BARG)@F@[@@ CDRAIN=BETA1*((VGSGE )@@G@@-VBI-VDSAT/2.0)*VDSAT-GAMMAD*BODY/1.5) @C@[@@ ARG=CDRAIN*(DUDVGSGF )@@G@@/UFACT-DLDVGS/CLFACT) @^@[@@ GM=ARG+BETA1*VDSAT@A@[@@ GDS=-CGG )@@G@@DRAIN*DLDVDS/CLFACT @C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFAGH )@@G@@CT) @C@[@@ GMBS=ARG-BETA1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@ GI )@@G@@GO TO 2000 @[@[@@C @^@[@@C FINISH SPECIAL CASES @[@[@@C @#@[@@GJ )@@G@@ 1100 CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GMBS=0.0 @[@[@@C GK )@@G@@@]@[@@C FINISHED @[@[@@C @]@[@@ 2000 RETURN@]@[@@ END @B@[@@GL )@@G@@ SUBROUTINE ELMNSY (VDS,VBS,VGS,KCAP)@[@[@@C @G@[@@C THIS SUBGM )@@G@@ROUTINE EVALUATES THE DRAIN CURRENT AND ITS DERIVATIVES @G@[@@C FOGN )@@G@@R MOSFET, BASED ON THE THEORY DEVELOPED BY EL-MANSY AND BOOTHROYD @[@[@@GO )@@G@@C @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,GP )@@G@@XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDGQ )@@G@@RAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATTGR )@@G@@,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETADGS )@@G@@,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)GT )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOGU )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ GV )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@GW )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @^@[@@GX )@@G@@ BETA0=BETA*VALPHA @^@[@@ BETA1=BETA0*VALPHA@ @[@@ VSCATTGY )@@G@@=VALPHA*SCATT @ @[@@ AHPLA=TAHPLA+TAHPLA @^@[@@ UPHIS=GZ )@@G@@UPHIB+UPHIB @[@[@@C @^@[@@C NORMALIZE VOLTAGES @[@[@@C @^@[@@HA )@@G@@ UGS=VGS/VT-UFB @#@[@@ UDS=VDS/VT @#@[@@ UBS=VBS/VT HB )@@G@@@ @[@@ UBS=AMIN1(UBS,UPHIS) @^@[@@ UDS=AMAX1(UDS,0.0)@#@[@@HC )@@G@@ UGB=UGS-UBS @^@[@@ ONEUGB=1.0-UGB @B@[@@ UTH=UPHIS+SQHD )@@G@@RT(UPHIS-UBS)/ALPHA @^@[@@ VON=(UTH+UFB)*VT @[@[@@C @C@[@@HE )@@G@@C DEFINE SUBTHRESHOLD VOLTAGE BY FUDGE FACTOR @[@[@@C @#@[@@ HF )@@G@@UTHSUB=UBS @A@[@@ FUDGE=UPHIB-50.0/UPHIB-UBS @A@[@@ IF (FUHG )@@G@@DGE.LE.0.0) GO TO 10 @B@[@@ UTHSUB=FUDGE+UBS+SQRT(FUDGE)/ALPHA HH )@@G@@@A@[@@ 10 IF (UGS.LE.UTHSUB) GO TO 15 @ @[@@ IF (VDS.LE.0.0) GOHI )@@G@@ TO 17@#@[@@ GO TO 20 @[@[@@C @#@[@@C CUTOFF REGION @[@[@@HJ )@@G@@C @#@[@@ 15 CDRAIN=0.0 @#@[@@ GDS=0.0 @]@[@@ GM=0.0HK )@@G@@@#@[@@ GMBS=0.0 @#@[@@ VDSAT=0.0 @#@[@@ GO TO 1000 HL )@@G@@@[@[@@C @ @[@@C SPECIAL CASE FOR VDS=0.0@[@[@@C @#@[@@ 17 HM )@@G@@CONTINUE @A@[@@ PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EHN )@@G@@XPEQN (PINCH,UGS,UGB,0.0,ETAS)@#@[@@ ETAD=ETAS @B@[@@ GDS=BEHO )@@G@@TA0*(ETAD+AHPLA-UGB/ETAD) @]@[@@ GM=0.0@#@[@@ GMBS=0.0 HP )@@G@@@#@[@@ CDRAIN=0.0 @#@[@@ VDSAT=0.0 @#@[@@ GO TO 1000 HQ )@@G@@@[@[@@C @^@[@@C TRANSISTOR IS ON @[@[@@C @A@[@@ 20 PINCH=HR )@@G@@-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)HS )@@G@@@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)@^@[@@ ETAS2=ETAS*EHT )@@G@@TAS @^@[@@ ETAD2=ETAD*ETAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@HU )@@G@@ ETAD22=ETAD2/2.0 @^@[@@ ETSINV=1.0/ETAS @^@[@@ ETDINVHV )@@G@@=1.0/ETAD @^@[@@ ALGES=ALOG(ETAS) @^@[@@ ALGED=ALOG(ETAD) HW )@@G@@@B@[@@ SVAL=ETAS22+ALPHAF*ETAS+ONEUGB*ALGES@B@[@@ DVAL=ETAD22+HX )@@G@@ALPHAF*ETAD+ONEUGB*ALGED@^@[@@ CD1=SVAL-DVAL @ @[@@ IF (KCHY )@@G@@AP.EQ.1) RETURN @ @[@@ IF (CD1.LE.0.0) GO TO 15@[@[@@C @G@[@@HZ )@@G@@C BRANCH DIRECTLY TO LINEAR REGION IF CHANNEL LENGTH MODULATION IS IA )@@G@@@ @[@@C VERY UNLIKELY TO HAPPEN @[@[@@C @#@[@@ ISCATT=0 IB )@@G@@@C@[@@ IF ((CD1*BETA1*XL/XW).LE.1.0E-11) GO TO 50@#@[@@ ISCATTIC )@@G@@=1 @ @[@@ IF (UDS.LT.UBS) GO TO 50@ @[@@ IF (UGS.GT.UTH) GOID )@@G@@ TO 60@[@[@@C @ @[@@C PSEUDO-SATURATION VOLTAGE @[@[@@C @#@[@@IE )@@G@@ 50 VDSAT=VDS @#@[@@ GO TO 70 @[@[@@C @D@[@@C DEFINE SIF )@@G@@ATURATION VOLTAGE BY EMPIRICAL FACTOR @[@[@@C @#@[@@ 60 TOXL=TIG )@@G@@OX/XL @^@[@@ SATFAC=1.0/(1.05 @D@[@@ 1 +TOXL*(5.0+0.IH )@@G@@05*(ETAS-PINCH)*AHPLA)) @G@[@@C 1 +TOXL*(5.0+0.05*SQRT(ALPHII )@@G@@A*50.0)*(ETAS-PINCH)*AHPLA)) @B@[@@ ETASAT=ETAS+(PINCH-ETAS)*SATFAIJ )@@G@@C @A@[@@ IF (ETASAT.LE.0.0) GO TO 50 @ @[@@ ETALPH=ETASAIK )@@G@@T/ALPHA @ @[@@ ETADS2=ETASAT*ETASAT @ @[@@ USATX=ETADS2IL )@@G@@+ETALPH-UGB @B@[@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(USATX) @^@[@@ IM )@@G@@VDSAT=UDSAT*VT @A@[@@ IF (UDS.GT.UDSAT) GO TO 200 @[@[@@C IN )@@G@@@G@[@@C CALCULATE DRAIN CURRENT AND TRANSCONDUCTANCES FOR LINEAR REGIOIO )@@G@@N @ @[@@C AND WEAK INVERSION CASE @[@[@@C @#@[@@ 70 CONTINIP )@@G@@UE @^@[@@ CDRAIN=BETA1*CD1 @B@[@@ GDS=BETA0*(ETAD+AHPLA-UGIQ )@@G@@B/ETAD) @ @[@@ ETAIVD=ETSINV-ETDINV @ @[@@ ETAF=(ALGES-IR )@@G@@ALGED)/ALPHA@C@[@@ GM=BETA0*((ETAS-ETAD)+ONEUGB*ETAIVD-ETAF) @A@[@@IS )@@G@@ GMBS=-BETA0*(ETAIVD-ETAF) @A@[@@ IF (ISCATT.EQ.0) GO TO 1IT )@@G@@000 @[@[@@C @C@[@@C MODIFIED BY SCATTERING LIMITED VELOCITY IU )@@G@@@[@[@@C @#@[@@ 80 CONTINUE @ @[@@ SFACT=VSCATT*(ETAS-ETAD)IV )@@G@@@B@[@@ IF (SFACT.LT.1.0E-7) GO TO 1000 @ @[@@ SFACT=1.0/(1IW )@@G@@.0+SFACT) @ @[@@ CDRAIN=CDRAIN*SFACT @A@[@@ GDS=(GDS-CDRIX )@@G@@AIN*SCATT)*SFACT @#@[@@ GM=GM*SFACT @^@[@@ GMBS=GMBS*SFACT IY )@@G@@@#@[@@ GO TO 1000 @[@[@@C @^@[@@C SATURATION REGION @[@[@@IZ )@@G@@C @#@[@@ 200 INDEX=1 @A@[@@ ASATF2=SATFAC*SATFAC*AHPLA JA )@@G@@@#@[@@ ETADS=ETASAT@D@[@@ 250 DSVAL=ETADS2/2.0+ALPHAF*ETADS+ONEUGBJB )@@G@@*ALOG(ETADS)@ @[@@ CDSAT=BETA1*(SVAL-DSVAL)@B@[@@ GDSAT=BETA0*JC )@@G@@(ETADS+AHPLA-UGB/ETADS) @B@[@@ SFACT=1.0/(1.0+VSCATT*(ETAS-ETADS)) JD )@@G@@@^@[@@ CDSAT=CDSAT*SFACT @B@[@@ GDSAT=(GDSAT-CDSAT*SCATT)*SFACJE )@@G@@T @A@[@@ IF (GDSAT.LT.0.0) GO TO 50 @^@[@@ EFFXL=XL/SFAJF )@@G@@CT @E@[@@ XLSAT=(TOX+TOX)*EPSSIL/EPSOX*(ALPHA*UGB-PINCH)/PINCH JG )@@G@@@A@[@@ IF (XLSAT.LE.0.0) GO TO 50 @ @[@@ ASAT=SQRT(XLSAT*TOJH )@@G@@X) @ @[@@ ESAT=CDSAT/(GDSAT*EFFXL)@ @[@@ EASAT=VT/(ESAT*ASAJI )@@G@@T) @D@[@@ ARG1=BETA*(1.0+UGB/ETADS2)+(SCATT+SCATT)*GDSAT @D@[@@JJ )@@G@@ ARG1=(VT+VT)*(1.0/EFFXL/ESAT+ARG1*SFACT/GDSAT) @ @[@@ ARG2=AJK )@@G@@RG1/(EASAT+EASAT) @^@[@@ UDEL=UDS-UDSAT @^@[@@ ARG3=EASAT*UJL )@@G@@DEL @A@[@@ ARG4=ARG3*ARG3+ARG1*UDEL+1.0 @A@[@@ IF (ARG4.LE.JM )@@G@@0.0) GO TO 50 @^@[@@ SQARG=SQRT(ARG4) @B@[@@ SATARG=(SQARJN )@@G@@G+ARG3+ARG2)/(1.0+ARG2) @B@[@@ RATIO=EXP(ASAT/EFFXL*ALOG(SATARG)) JO )@@G@@@^@[@@ CDRAIN=CDSAT*RATIO@[@[@@C @C@[@@C INITIALIZATION FOR TJP )@@G@@RANSCONDUCTANCE LOOP @[@[@@C @A@[@@ GO TO (300,400,500), INDJQ )@@G@@EX @ @[@@ 300 GDSOLD=GDSAT*RATIO/SQARG@#@[@@ CDOLD=CDRAIN@#@[@@JR )@@G@@ ETASO=ETAS @#@[@@ PINCHO=PINCH@#@[@@ UGSO=UGS @#@[@@JS )@@G@@ UGBO=UGB @#@[@@ UBSO=UBS @#@[@@ DELU=0.02 @#@[@@JT )@@G@@ DELV=DELU*VT@[@[@@C @^@[@@C UGS ---> UGS+DELU @[@[@@C JU )@@G@@@#@[@@ INDEX=2 @B@[@@ BUFF1=ETAS2+ETASO/ALPHA+1.0-UGBO JV )@@G@@@ @[@@ BUFF2=BUFF1+ETASO/TAHPLA@A@[@@ DETAS=(ALPHA*BUFF1/BUFF2JW )@@G@@)*DELU@B@[@@ DPINCH=0.5/(PINCHO+TAHPLA)*DELU @C@[@@ DSATFCJX )@@G@@=-TOXL*0.05*(DETAS-DPINCH)*ASATF2 @F@[@@C DSATFC=-TOXL*0.05*(DETASJY )@@G@@-DPINCH)*ASATF2*SQRT(ALPHA*50.0) @F@[@@ DETADS=DETAS+(DPINCH-DETJZ )@@G@@AS)*SATFAC+(PINCHO-ETASO)*DSATFC @^@[@@ ETAS=ETASO+DETAS @ @[@@KA )@@G@@ PINCH=PINCHO+DPINCH @ @[@@ ETADS=ETASAT+DETADS @^@[@@KB )@@G@@ UGS=UGSO+DELU @^@[@@ UGB=UGBO+DELU @^@[@@ ONEUGBKC )@@G@@=1.0-UGB @D@[@@ SVAL=ETAS*ETAS/2.0+ALPHAF*ETAS+ONEUGB*ALOG(ETAS)KD )@@G@@@^@[@@ ETADS2=ETADS*ETADS@^@[@@ ETALPH=ETADS/ALPHA@ @[@@ KE )@@G@@USATX=ETADS2+ETALPH-UGB @B@[@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(USATX) KF )@@G@@@#@[@@ GO TO 250 @ @[@@ 400 GM=(CDRAIN-CDOLD)/DELV @[@[@@C KG )@@G@@@D@[@@C SKIP THE CALCULATION OF GMSB IF UBS.GE.UPHIS @[@[@@C KH )@@G@@@A@[@@ IF (UBS.LT.UPHIS) GO TO 420 @#@[@@ GMBS=0.0 @#@[@@KI )@@G@@ GO TO 900 @[@[@@C @^@[@@C UBS ---> UBS+DELU @[@[@@C KJ )@@G@@@#@[@@ 420 CONTINUE @#@[@@ INDEX=3 @D@[@@ DETAS=-ALPHAKK )@@G@@/(ETAS2+ALPHAF*ETASO+1.0-UGBO)*DELU @^@[@@ DPINCH=-DPINCH @C@[@@KL )@@G@@ DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASATF2 @F@[@@C DSATFC=-TOXLKM )@@G@@*0.05*(DETAS-DPINCH)*ASATF2*SQRT(ALPHA*50.0) @F@[@@ DETADS=DETASKN )@@G@@+(DPINCH-DETAS)*SATFAC+(PINCHO-ETASO)*DSATFC @^@[@@ ETAS=ETASO+DKO )@@G@@ETAS @ @[@@ PINCH=PINCHO+DPINCH @ @[@@ ETADS=ETASAT+DETADKP )@@G@@S @#@[@@ UGS=UGSO @^@[@@ UGB=UGBO-DELU @^@[@@ KQ )@@G@@UBS=UBSO+DELU @^@[@@ ONEUGB=1.0-UGB @D@[@@ SVAL=ETAS*ETKR )@@G@@AS/2.0+ALPHAF*ETAS+ONEUGB*ALOG(ETAS)@^@[@@ ETADS2=ETADS*ETADS@^@[@@KS )@@G@@ ETALPH=ETADS/ALPHA@ @[@@ USATX=ETADS2+ETALPH-UGB @B@[@@ KT )@@G@@UDSAT=-ETALPH-UPHIS+UGS-ALOG(USATX) @#@[@@ GO TO 250 @ @[@@ 500 KU )@@G@@GMBS=(CDRAIN-CDOLD)/DELV@[@[@@C @#@[@@C RESTORE DATA @[@[@@C KV )@@G@@@#@[@@ 900 CONTINUE @#@[@@ CDRAIN=CDOLD@#@[@@ GDS=GDSOLD KW )@@G@@@#@[@@ ETAS=ETASO @[@[@@C @]@[@@C FINISHED@[@[@@C @#@[@@KX )@@G@@ 1000 CONTINUE @]@[@@ RETURN@]@[@@ END @C@[@@ SUBROUKY )@@G@@TINE EXPEQN (PINCH,UGS,UGB,UXS,ETAX)@[@[@@C @G@[@@C THIS SUBROUTINKZ )@@G@@E SOLVE THE EXPONENTIAL EQUATION IN EL-MANSY^S MOSFET @^@[@@C MODEL BYLA )@@G@@ ITERATION @[@[@@C @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,CLB )@@G@@OX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDLC )@@G@@SAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHALD )@@G@@,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFBLE )@@G@@,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @]@[@@ K=0 @^@[@@ UPHIS=LF )@@G@@UPHIB+UPHIB @A@[@@ BOUND=ALPHA*(UGS-UPHIS-UXS) @A@[@@ IF (PILG )@@G@@NCH.GT.BOUND) GO TO 5 @[@[@@C @^@[@@C STRONG INVERSION @[@[@@LH )@@G@@C @A@[@@ ARG=BOUND*BOUND-UXS-UPHIS @^@[@@ ARG=AMAX1(1.LI )@@G@@0,ARG)@A@[@@ ETAX=BOUND-ALPHA*ALOG(ARG) @#@[@@ GO TO 10 LJ )@@G@@@[@[@@C @#@[@@C WEAK INVERSION@[@[@@C @#@[@@ 5 ETAX=PINCH LK )@@G@@@[@[@@C @#@[@@C ITERATION @[@[@@C @]@[@@ 10 K=K+1 @ @[@@LL )@@G@@ EXPT=(BOUND-ETAX)/ALPHA @D@[@@ IF (ABS(EXPT).GT.227.0) EXPT=SLM )@@G@@IGN(227.0,EXPT) @^@[@@ EXPT=EXP(EXPT) @B@[@@ FVAL=ETAX*ETLN )@@G@@AX+ETAX/ALPHA-UGB-EXPT @B@[@@ DVAL=ETAX+ETAX+(1.0+EXPT)/ALPHA LO )@@G@@@A@[@@ DDVAL=2.0-EXPT/ALPHA/ALPHA @^@[@@ RVAL=FVAL/DVAL LP )@@G@@@A@[@@ RVAL=RVAL+RVAL*RVAL*DDVAL/DVAL@^@[@@ ETAX=ETAX-RVAL LQ )@@G@@@B@[@@ IF (ABS(RVAL).LT.1.0E-6) GO TO 1000 @ @[@@ IF (K.LT.5) LR )@@G@@GO TO 10 @[@[@@C @]@[@@C FINISH @[@[@@C @]@[@@ 1000 RETURNLS )@@G@@@]@[@@ END @G@[@@ SUBROUTINE MOSCAP (VGS0,VGD0,VGB0,VGS1,VGDLT )@@G@@1,VGB1,COVLGS,COVLGD, @C@[@@ 1 COVLGB,CGS0,CGD0,CGB0,CGS1,CGD1LU )@@G@@,CGB1)@[@[@@C @G@[@@C THIS ROUTINE COMPUTES THE MOSFET OVERLAP CLV )@@G@@APACITANCES AS FUNCTIONS@A@[@@C OF THE DEVICE TERMINAL VOLTAGES. @[@[@@LW )@@G@@C @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNLX )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NOLY )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /MOSALZ )@@G@@RG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMA )@@G@@MDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPMB )@@G@@HAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,MC )@@G@@TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ MD )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ME )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@MF )@@G@@C @ @[@@ IF (LEV.GT.2) GO TO 500 @[@[@@C @[@[@@C @A@[@@MG )@@G@@C MEYER^S MOSFET CAPACITANCE MODEL@[@[@@C @#@[@@ INDEX=1 MH )@@G@@@#@[@@ VGS=VGS1 @#@[@@ VGD=VGD1 @#@[@@ VGB=VGB1 MI )@@G@@@#@[@@ 10 VDS=VGS-VGD @#@[@@ VGST=VGS-VON@A@[@@ IF (VGST.GT.MJ )@@G@@-PHI) GO TO 100 @^@[@@ CGB=COX+COVLGB @#@[@@ CGD=COVLGD MK )@@G@@@#@[@@ CGS=COVLGS @#@[@@ GO TO 430 @[@[@@C @[@[@@C ML )@@G@@@B@[@@ 100 IF (VGST.GT.-PHI/2.0) GO TO 200 @ @[@@ CGB=-VGST*COMM )@@G@@X/PHI+COVLGB@#@[@@ CGD=COVLGD @#@[@@ CGS=COVLGS @#@[@@ MN )@@G@@GO TO 430 @[@[@@C @[@[@@C @A@[@@ 200 IF (VGST.GT.0.0) GO TO 3MO )@@G@@00 @ @[@@ CGB=-VGST*COX/PHI+COVLGB@#@[@@ CGD=COVLGD @C@[@@MP )@@G@@ CGS=COX/(0.75*PHI)*VGST+COX/1.5+COVLGS @#@[@@ GO TO 430 MQ )@@G@@@[@[@@C @[@[@@C @A@[@@ 300 IF (VGST.GT.VDS) GO TO 400 @#@[@@MR )@@G@@ CGB=COVLGB @#@[@@ CGD=COVLGD @^@[@@ CGS=COX/1.5+COVLGSMS )@@G@@@#@[@@ GO TO 430 @[@[@@C @[@[@@C @^@[@@ 400 VGSTO=VGS-VOMT )@@G@@N @ @[@@ VGDTO=VGD-VON-1.0E-12 @B@[@@ VGSDT2=(VGSTO+VGDTMU )@@G@@O)*(VGSTO+VGDTO) @D@[@@ CGD=COX*(1.0-VGSTO*VGSTO/VGSDT2)/1.5+COVLGMV )@@G@@D @D@[@@ CGS=COX*(1.0-VGDTO*VGDTO/VGSDT2)/1.5+COVLGS @#@[@@MW )@@G@@ CGB=COVLGB @[@[@@C @[@[@@C @ @[@@ 430 GO TO (440,560), IMX )@@G@@NDEX @#@[@@ 440 INDEX=2 @#@[@@ CGS1=CGS @#@[@@ CGD1=CMY )@@G@@GD @#@[@@ CGB1=CGB @#@[@@ VGS=VGS0 @#@[@@ VGD=VGMZ )@@G@@D0 @#@[@@ VGB=VGB0 @#@[@@ GO TO 10 @[@[@@C @A@[@@NA )@@G@@C CAPACITANCE MODEL OF E-B THEORY @[@[@@C @#@[@@ 500 CONTINUE NB )@@G@@@^@[@@ UPHIS=UPHIB+UPHIB @^@[@@ UGS1=VGS1/VT-UFB @^@[@@ NC )@@G@@UGD1=VGD1/VT-UFB @^@[@@ UGB1=VGB1/VT-UFB @C@[@@ IF ((UGS1-UGND )@@G@@B1).GT.UPHIS) UGB1=UGS1-UPHIS @^@[@@ UGS0=VGS0/VT-UFB @^@[@@ NE )@@G@@UGD0=VGD0/VT-UFB @^@[@@ UGB0=VGB0/VT-UFB @C@[@@ IF ((UGS0-UGNF )@@G@@B0).GT.UPHIS) UGB0=UGS0-UPHIS @[@[@@C @[@[@@C @#@[@@ INDEX=NG )@@G@@1 @#@[@@ UGS=UGS1 @#@[@@ UGD=UGD1 @#@[@@ UGB=UGNH )@@G@@B1 @#@[@@ UBS=UGS-UGB @#@[@@ UDS=UGS-UGD @A@[@@ IF (UGNI )@@G@@S.GT.UTHSUB) GO TO 515 @[@[@@C @#@[@@C CUTOFF REGION @[@[@@C NJ )@@G@@@#@[@@ 510 CONTINUE @#@[@@ CGS=COVLGS @#@[@@ CGD=COVLGD NK )@@G@@@ @[@@ UGBB=AMAX1(UGB,0.0) @^@[@@ ARG=ABS(UGB)/UPHIS@ @[@@NL )@@G@@ ARG=AMIN1(ARG,100.0) @A@[@@ CGB=COX/(SQRT(1.0+UGBB/AHPLA2)NM )@@G@@@B@[@@ 1 +ROOT2*ALPHA*EXP(-ARG))+COVLGB @#@[@@ GO TO 540 NN )@@G@@@[@[@@C @^@[@@C SET THE FLAG KVDS @[@[@@C @#@[@@ 515 CONTINNO )@@G@@UE @]@[@@ KVDS=0@A@[@@ IF (UDS.GE.1.0E-4) GO TO 502 @#@[@@NP )@@G@@ UDS=1.0E-4 @]@[@@ KVDS=1@#@[@@ 502 CONTINUE @^@[@@ NQ )@@G@@UTH=VON/VT-UFB @A@[@@ IF (UGS.GE.UTH) GO TO 525 @[@[@@C NR )@@G@@@^@[@@C WEAK INVERSION CASE @[@[@@C @#@[@@ 505 CONTINUE @#@[@@NS )@@G@@ CYS=COVLGS @#@[@@ CYD=COVLGD @^@[@@ UGBY=UTHSUB-UBS NT )@@G@@@ @[@@ UGBB=AMAX1(UGBY,0.0) @ @[@@ ARG=ABS(UGBY)/UPHIS NU )@@G@@@ @[@@ ARG=AMIN1(ARG,100.0) @F@[@@ CYB=COX/(SQRT(1.0+UGBB/ANV )@@G@@HPLA2)+ROOT2*ALPHA*EXP(-ARG))+COVLGB@[@[@@C @#@[@@ UGBX=UTH-UBSNW )@@G@@@B@[@@ PINCH=-TAHPLA+SQRT(AHPLA2+UGBX) @C@[@@ CALL EXPEQN NX )@@G@@(PINCH,UTH,UGBX,UDS,ETAD) @C@[@@ CALL EXPEQN (PINCH,UTH,UGBX,0.NY )@@G@@0,ETAS) @^@[@@ ONEUGB=1.0-UGBX @^@[@@ ETAS2=ETAS*ETAS NZ )@@G@@@^@[@@ ETAD2=ETAD*ETAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ OA )@@G@@ETAD22=ETAD2/2.0 @ @[@@ ALGESD=ALOG(ETAS/ETAD) @^@[@@ ESALPHOB )@@G@@=ETAS/ALPHA @^@[@@ EDALPH=ETAD/ALPHA @D@[@@ SMVAL=ETAS2*ETAS/3OC )@@G@@.0+ALPHAF*ETAS22+ONEUGB*ETAS @D@[@@ DMVAL=ETAD2*ETAD/3.0+ALPHAF*ETOD )@@G@@AD22+ONEUGB*ETAD @^@[@@ XMVAL=SMVAL-DMVAL @E@[@@ CD1=(ETAS22-OE )@@G@@ETAD22)+ALPHAF*(ETAS-ETAD)+ONEUGB*ALGESD @#@[@@ CD2=CD1*CD1 @F@[@@OF )@@G@@ CXS=COX*(ETAS2+ESALPH-UGBX)*(CD1-XMVAL/ETAS)/CD2+COVLGS @F@[@@OG )@@G@@ CXD=COX*(ETAD2+EDALPH-UGBX)*(-CD1+XMVAL/ETAD)/CD2+COVLGD @C@[@@OH )@@G@@ ARG=XMVAL*(1.0/ETAS-1.0/ETAD-ALGESD/ALPHA)@D@[@@ CXB=COX*(-CDOI )@@G@@1*(ESALPH-EDALPH)-ARG)/CD2+COVLGB @[@[@@C @A@[@@ DEL=(UGS-UTHOJ )@@G@@SUB)/(UTH-UTHSUB) @ @[@@ CGS=CYS+(CXS-CYS)*DEL @ @[@@ CGD=CYOK )@@G@@D+(CXD-CYD)*DEL @ @[@@ CGB=CYB+(CXB-CYB)*DEL @#@[@@ GO TO OL )@@G@@540 @[@[@@C @ @[@@C SPECIAL CASE FOR VDS=0.0 @[@[@@C @#@[@@OM )@@G@@ 525 CONTINUE @ @[@@ IF (KVDS.EQ.0) GO TO 530@A@[@@ PINCH=ON )@@G@@-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)OO )@@G@@@[@[@@C @^@[@@C TRANSISTOR IS ON @[@[@@C @#@[@@ 530 CONTINOP )@@G@@UE @^@[@@ ONEUGB=1.0-UGB @^@[@@ ETAS2=ETAS*ETAS @^@[@@OQ )@@G@@ ETAD2=ETAD*ETAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22OR )@@G@@=ETAD2/2.0 @^@[@@ ESALPH=ETAS/ALPHA @^@[@@ EDALPH=ETAD/ALPHA OS )@@G@@@ @[@@ ALGESD=ALOG(ETAS/ETAD) @^@[@@ IF (KVDS.EQ.1) @F@[@@OT )@@G@@ 1 CD1=(ETAS22-ETAD22)+ALPHAF*(ETAS-ETAD)+ONEUGB*ALGESD @D@[@@OU )@@G@@ SMVAL=ETAS2*ETAS/3.0+ALPHAF*ETAS22+ONEUGB*ETAS @D@[@@ DMVAL=OV )@@G@@ETAD2*ETAD/3.0+ALPHAF*ETAD22+ONEUGB*ETAD @^@[@@ XMVAL=SMVAL-DMVAL OW )@@G@@@#@[@@ CD2=CD1*CD1 @E@[@@ CGS=COX*(ETAS2+ESALPH-UGB)*(CD1-XMVAOX )@@G@@L/ETAS)/CD2+COVLGS@F@[@@ CGD=COX*(ETAD2+ESALPH-UGB)*(-CD1+XMVAL/ETAOY )@@G@@D)/CD2+COVLGD @C@[@@ ARG=XMVAL*(1.0/ETAS-1.0/ETAD-ALGESD/ALPHA)OZ )@@G@@@D@[@@ CGB=COX*(-CD1*(ESALPH-EDALPH)-ARG)/CD2+COVLGB @[@[@@C PA )@@G@@@[@[@@C @#@[@@ 540 CONTINUE @ @[@@ CGS=AMAX1(CGS,1.0E-30) PB )@@G@@@ @[@@ CGD=AMAX1(CGD,1.0E-30) @ @[@@ CGB=AMAX1(CGB,1.0E-30) PC )@@G@@@ @[@@ GO TO (550,560), INDEX @[@[@@C @#@[@@ 550 INDEX=2 PD )@@G@@@#@[@@ CGS1=CGS @#@[@@ CGD1=CGD @#@[@@ CGB1=CGB PE )@@G@@@#@[@@ UGS=UGS0 @#@[@@ UGD=UGD0 @#@[@@ UGB=UGB0 PF )@@G@@@#@[@@ UDS=UGS-UGD @#@[@@ UBS=UGS-UGB @#@[@@ UTHSUB=UBS PG )@@G@@@A@[@@ FUDGE=UPHIB-50.0/UPHIB-UBS @A@[@@ IF (FUDGE.LE.0.0) PH )@@G@@GO TO 555 @B@[@@ UTHSUB=FUDGE+UBS+SQRT(FUDGE)/ALPHA @A@[@@ 555 PI )@@G@@IF (UGS.LE.UTHSUB) GO TO 510 @ @[@@ UDS=AMAX1(UDS,1.0E-4) @]@[@@PJ )@@G@@ KVDS=1@#@[@@ UTH=UPHIS @D@[@@ IF (UPHIS.GT.UBS) UTH=UTPK )@@G@@H+SQRT(UPHIS-UBS)/ALPHA @A@[@@ IF (UGS.LT.UTH) GO TO 505 @A@[@@PL )@@G@@ PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UPM )@@G@@GB,0.0,ETAS)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)@#@[@@ PN )@@G@@GO TO 530 @[@[@@C @[@[@@C @#@[@@ 560 CGS0=CGS @#@[@@ PO )@@G@@CGD0=CGD @#@[@@ CGB0=CGB @[@[@@C @]@[@@C FINISHED @[@[@@PP )@@G@@C @]@[@@ 1000 RETURN@]@[@@ END @#@[@@ OVERLAY(5,0)@#@[@@PQ )@@G@@ PROGRAM DCOP@[@[@@C @G@[@@C THIS ROUTINE PRINTS OUT THE OPPR )@@G@@ERATING POINTS OF THE NONLINEAR @^@[@@C CIRCUIT ELEMENTS. @[@[@@PS )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEPT )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IPU )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,PV )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIPW )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXPX )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER PY )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NPZ )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ QA )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@QB )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@QC )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLQD )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNQE )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @F@[@@ COMMON /MISCEL/ APROG(3)QF )@@G@@,ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE QG )@@G@@@G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KQH )@@G@@IDIN, @^@[@@ 1 KOVAR,KIDOUT @G@[@@ COMMON /AC/ FSTART,FSTOPQI )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NQJ )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPQK )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@QL )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ QM )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))QN )@@G@@@[@[@@C @[@[@@C @ @[@@ DIMENSION OPTITL(4) @C@[@@ QO )@@G@@DIMENSION ANAM(12),AV1(12),AI1(12),REQ(12)@C@[@@ DIMENSION AMOD(12)QP )@@G@@,CD(12),VD(12),CAP(12) @G@[@@ DIMENSION CB(12),CC(12),VBE(12),VBC(QQ )@@G@@12),VCE(12),GM(12),RPI(12), @E@[@@ 1 RO(12),CPI(12),CMU(12),BETAQR )@@G@@DC(12),BETAAC(12),FT(12)@E@[@@ DIMENSION VGS(12),VDS(12),GDS(12),CGQS )@@G@@S(12),CGD(12) @C@[@@ DIMENSION VBS(12),CBD(12),CBS(12),CGB(12) QT )@@G@@@A@[@@ DIMENSION VTH(12),VDSAT(12) @^@[@@ DIMENSION GMBS(12)QU )@@G@@@G@[@@ DATA OPTITL / 8HOPERATIN, 8HG POINT , 8HINFORMAT, 8HION QV )@@G@@ / @G@[@@ DATA AV,AVD,AVBE,AVBC,AVCE,AVGS,AVDS,AVBS / 1HV,2HVD,3QW )@@G@@HVBE,3HVBC, @A@[@@ 1 3HVCE,3HVGS,3HVDS,3HVBS / @F@[@@ DATA AQX )@@G@@CNTRV,ACNTRI,ASRCV,ASRCI,ATRANG,ATRANR,AVGAIN,AIGAIN /@E@[@@ 1 8HVQY )@@G@@-CONTRL, 8HI-CONTRL, 8HV-SOURCE, 8HI-SOURCE, @E@[@@ 2 8HTRANS-GQZ )@@G@@ , 8HTRANS-R , 8HV GAIN , 8HI GAIN / @C@[@@ DATA AI,AID,AIB,AIRA )@@G@@C / 1HI,2HID,2HIB,2HIC /@C@[@@ DATA AREQ,ARPI,ARO / 3HREQ,3HRPI,2HRRB )@@G@@O / @G@[@@ DATA ACAP,ACPI,ACMU,ACGS,ACGD,ACBD,ACBS / 3HCAP,3HCPI,RC )@@G@@3HCMU,3HCGS,@ @[@@ 1 3HCGD,3HCBD,3HCBS / @ @[@@ DATA ACGB / RD )@@G@@3HCGB / @B@[@@ DATA AVTH, AVDSAT / 3HVTH, 5HVDSAT /@A@[@@ RE )@@G@@DATA AGM,AGDS / 2HGM,3HGDS / @ @[@@ DATA AGMBS / 4HGMBS / @C@[@@RF )@@G@@ DATA ABETAD,ABETAA / 6HBETADC,6HBETAAC / @^@[@@ DATA AFT / 2RG )@@G@@HFT / @[@[@@C @E@[@@C COMPUTE VOLTAGE SOURCE CURRENTS AND POWER DISRH )@@G@@SIPATION @[@[@@C @^@[@@ CALL SECOND(T1) @G@[@@ IF ((MRI )@@G@@ODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 700 @#@[@@ RJ )@@G@@POWER=0.0 @A@[@@ IF (JELCNT(9).EQ.0) GO TO 50 @#@[@@ ITITLERK )@@G@@=0 @E@[@@ 11 FORMAT (////5X,*VOLTAGE SOURCE CURRENTS*//5X,*NAME*, RL )@@G@@@^@[@@ 1 7X,*CURRENT*/) @^@[@@ LOC=LOCATE(9) @ @[@@ 20 RM )@@G@@IF (LOC.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NRN )@@G@@ODPLC(LOC+6)@ @[@@ CREAL=VALUE(LVNIM1+IPTR)@B@[@@ POWER=POWER-RO )@@G@@CREAL*VALUE(LOCV+1) @A@[@@ IF (ITITLE.EQ.0) WRITE (6,11) @#@[@@RP )@@G@@ ITITLE=1 @A@[@@ WRITE (6,21) VALUE(LOCV),CREAL@A@[@@ 21 RQ )@@G@@FORMAT (/5X,A8,1X,1PE10.3) @^@[@@ 30 LOC=NODPLC(LOC) @#@[@@ RR )@@G@@GO TO 20 @^@[@@ 50 LOC=LOCATE(10) @ @[@@ 60 IF (LOC.EQ.0) GO TRS )@@G@@O 90 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) RT )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @A@[@@ POWER=POWER-VALUE(LOCV+1RU )@@G@@) @D@[@@ 1 *(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2)) @^@[@@RV )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 60 @^@[@@ 90 WRITE (6,91)RW )@@G@@ POWER@F@[@@ 91 FORMAT (//5X,*TOTAL POWER DISSIPATION *,1PE9.2,* WATRX )@@G@@TS*) @[@[@@C @A@[@@C SMALL SIGNAL DEVICE PARAMETERS @[@[@@C RY )@@G@@@F@[@@ NUMDEV=JELCNT(5)+JELCNT(6)+JELCNT(7)+JELCNT(8)+JELCNT(11) RZ )@@G@@@B@[@@ 1 +JELCNT(12)+JELCNT(13)+JELCNT(14)@A@[@@ IF (NUMDEV.ESA )@@G@@Q.0) GO TO 600 @A@[@@ CALL TITLE(0,LWIDTH,1,OPTITL) @^@[@@ SB )@@G@@KNTLIM=LWIDTH/11 @[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED CURRSC )@@G@@ENT SOURCES @[@[@@C @A@[@@ IF (JELCNT(5).EQ.0) GO TO 175 @#@[@@SD )@@G@@ ITITLE=0 @F@[@@ 111 FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED CURSE )@@G@@RENT SOURCES^) @^@[@@ LOC=LOCATE(5) @]@[@@ KNTR=0@ @[@@SF )@@G@@ 120 IF (LOC.EQ.0) GO TO 140 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NSG )@@G@@ODPLC(LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+12) @ @[@@ ANAM(KNTR)=VSH )@@G@@ALUE(LOCV) @ @[@@ AI1(KNTR)=VALUE(LOCT) @A@[@@ IF (KNTR.GE.SI )@@G@@KNTLIM) GO TO 150 @^@[@@ 130 LOC=NODPLC(LOC) @#@[@@ GO TO 120 SJ )@@G@@@ @[@@ 140 IF (KNTR.EQ.0) GO TO 175@A@[@@ 150 IF (ITITLE.EQ.0) WRITE (SK )@@G@@6,111)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTSL )@@G@@R) @B@[@@ 151 FORMAT(1H0,/,1H0,/,11X,12(2X,A8)) @ @[@@ 161 FORMATSM )@@G@@(1H0,A8,12F10.3) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) SN )@@G@@@ @[@@ 171 FORMAT(1H0,A8,1P12E10.2)@]@[@@ KNTR=0@ @[@@ IF (LOSO )@@G@@C.NE.0) GO TO 130 @[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTSP )@@G@@AGE SOURCES @[@[@@C @A@[@@ 175 IF (JELCNT(6).EQ.0) GO TO 186 @#@[@@SQ )@@G@@ ITITLE=0 @F@[@@ 176 FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED VOLSR )@@G@@TAGE SOURCES^) @^@[@@ LOC=LOCATE(6) @]@[@@ KNTR=0@ @[@@SS )@@G@@ 178 IF (LOC.EQ.0) GO TO 182 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NST )@@G@@ODPLC(LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+13) @ @[@@ ANAM(KNTR)=VSU )@@G@@ALUE(LOCV) @ @[@@ AV1(KNTR)=VALUE(LOCT) @ @[@@ AI1(KNTR)=VASV )@@G@@LUE(LOCT+1) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 184 @^@[@@ 180 LOC=NOSW )@@G@@DPLC(LOC) @#@[@@ GO TO 178 @ @[@@ 182 IF (KNTR.EQ.0) GO TO 186SX )@@G@@@A@[@@ 184 IF (ITITLE.EQ.0) WRITE (6,176)@#@[@@ ITITLE=1 @B@[@@SY )@@G@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,161) ASRCSZ )@@G@@V,(AV1(I),I=1,KNTR) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTRTA )@@G@@) @]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 180 @[@[@@C TB )@@G@@@C@[@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES @[@[@@C @A@[@@TC )@@G@@ 186 IF (JELCNT(7).EQ.0) GO TO 196 @#@[@@ ITITLE=0 @F@[@@ 187 TD )@@G@@FORMAT(1H0,/,^0**** CURRENT-CONTROLLED CURRENT SOURCES^) @^@[@@ TE )@@G@@LOC=LOCATE(7) @]@[@@ KNTR=0@ @[@@ 188 IF (LOC.EQ.0) GO TO 192 TF )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LTG )@@G@@X0+NODPLC(LOC+12) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AI1(KNTH )@@G@@TR)=VALUE(LOCT) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 194 @^@[@@ 190 TI )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 188 @ @[@@ 192 IF (KNTR.EQ.0) GO TJ )@@G@@TO 196@A@[@@ 194 IF (ITITLE.EQ.0) WRITE (6,187)@#@[@@ ITITLE=1 TK )@@G@@@B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,171TL )@@G@@) ASRCI,(AI1(I),I=1,KNTR) @]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0TM )@@G@@) GO TO 190 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOTN )@@G@@URCES @[@[@@C @A@[@@ 196 IF (JELCNT(8).EQ.0) GO TO 210 @#@[@@ TO )@@G@@ITITLE=0 @F@[@@ 197 FORMAT(1H0,/,^0**** CURRENT-CONTROLLED VOLTAGE STP )@@G@@OURCES^) @^@[@@ LOC=LOCATE(8) @]@[@@ KNTR=0@ @[@@ 198 TQ )@@G@@IF (LOC.EQ.0) GO TO 202 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(TR )@@G@@LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+13) @ @[@@ ANAM(KNTR)=VALUE(LTS )@@G@@OCV) @ @[@@ AV1(KNTR)=VALUE(LOCT) @ @[@@ AI1(KNTR)=VALUE(LOTT )@@G@@CT+1) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 204 @^@[@@ 200 LOC=NODPLC(LTU )@@G@@OC) @#@[@@ GO TO 198 @ @[@@ 202 IF (KNTR.EQ.0) GO TO 210@A@[@@TV )@@G@@ 204 IF (ITITLE.EQ.0) WRITE (6,197)@#@[@@ ITITLE=1 @B@[@@ TW )@@G@@WRITE (6,151) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,161) ASRCV,(AV1TX )@@G@@(I),I=1,KNTR) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) TY )@@G@@@]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 200 @[@[@@C @]@[@@TZ )@@G@@C DIODES @[@[@@C @A@[@@ 210 IF (JELCNT(11).EQ.0) GO TO 300@#@[@@UA )@@G@@ ITITLE=0 @A@[@@ 211 FORMAT(1H0,/,^0**** DIODES^) @^@[@@ UB )@@G@@LOC=LOCATE(11) @]@[@@ KNTR=0@ @[@@ 220 IF (LOC.EQ.0) GO TO 240 UC )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=UD )@@G@@NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @^@[@@ LOCM=NUE )@@G@@ODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODUF )@@G@@PLC(LOC+11) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VUG )@@G@@ALUE(LOCM) @ @[@@ CD(KNTR)=VALUE(LOCT+1) @D@[@@ VD(KNTR)=VALUH )@@G@@UE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2)@A@[@@ IF (MODEDC.NE.1) GO TO 2UI )@@G@@25 @A@[@@ REQ(KNTR)=1.0/VALUE(LOCT+2) @ @[@@ CAP(KNTR)=VAUJ )@@G@@LUE(LOCT+4) @A@[@@ 225 IF (KNTR.GE.KNTLIM) GO TO 250 @^@[@@ 230 LOC=NOUK )@@G@@DPLC(LOC) @#@[@@ GO TO 220 @ @[@@ 240 IF (KNTR.EQ.0) GO TO 300UL )@@G@@@A@[@@ 250 IF (ITITLE.EQ.0) WRITE (6,211)@#@[@@ ITITLE=1 @B@[@@UM )@@G@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE (6,251) (AMOUN )@@G@@D(I),I=1,KNTR) @A@[@@ 251 FORMAT(^0MODEL ^,12(2X,A8)) @B@[@@ UO )@@G@@WRITE (6,171) AID,(CD(I),I=1,KNTR) @B@[@@ WRITE (6,161) AVD,(VD(I)UP )@@G@@,I=1,KNTR) @A@[@@ IF (MODEDC.NE.1) GO TO 260 @B@[@@ WRITE UQ )@@G@@(6,171) AREQ,(REQ(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACAP,(CAP(I),I=1UR )@@G@@,KNTR)@]@[@@ 260 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 230 @[@[@@C US )@@G@@@A@[@@C BIPOLAR JUNCTION TRANSISTORS @[@[@@C @A@[@@ 300 IF (JEUT )@@G@@LCNT(12).EQ.0) GO TO 400@#@[@@ ITITLE=0 @E@[@@ 301 FORMAT(1H0,/UU )@@G@@,^0**** BIPOLAR JUNCTION TRANSISTORS^) @^@[@@ LOC=LOCATE(12) UV )@@G@@@]@[@@ KNTR=0@ @[@@ 320 IF (LOC.EQ.0) GO TO 340 @#@[@@ KNTR=KUW )@@G@@NTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) UX )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) UY )@@G@@@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@UZ )@@G@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@VA )@@G@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LOCM) @A@[@@VB )@@G@@ CB(KNTR)=TYPE*VALUE(LOCT+3) @A@[@@ CC(KNTR)=TYPE*VALUE(LOCTVC )@@G@@+2) @E@[@@ VBE(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) VD )@@G@@@E@[@@ VBC(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE1) @A@[@@VE )@@G@@ VCE(KNTR)=VBE(KNTR)-VBC(KNTR) @G@[@@ BETADC(KNTR)=CC(KNTR)/SIVF )@@G@@GN(AMAX1(ABS(CB(KNTR)),1.0E-20),CB(KNTR)) @A@[@@ IF (MODEDC.NE.1) GVG )@@G@@O TO 325 @A@[@@ RPI(KNTR)=1.0/VALUE(LOCT+4) @ @[@@ GM(KNTVH )@@G@@R)=VALUE(LOCT+6) @A@[@@ RO(KNTR)=1.0/VALUE(LOCT+7) @ @[@@ VI )@@G@@CPI(KNTR)=VALUE(LOCT+9) @ @[@@ CMU(KNTR)=VALUE(LOCT+11)@B@[@@ VJ )@@G@@BETAAC(KNTR)=GM(KNTR)*RPI(KNTR) @F@[@@ FT(KNTR)=GM(KNTR)/(TWOPIVK )@@G@@*AMAX1(CPI(KNTR)+CMU(KNTR),1.0E-20))@A@[@@ 325 IF (KNTR.GE.KNTLIM) GO TVL )@@G@@O 350 @^@[@@ 330 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @ @[@@ 340 VM )@@G@@IF (KNTR.EQ.0) GO TO 400@A@[@@ 350 IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@VN )@@G@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@VO )@@G@@ WRITE (6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AIB,VP )@@G@@(CB(I),I=1,KNTR) @B@[@@ WRITE (6,171) AIC,(CC(I),I=1,KNTR) @B@[@@VQ )@@G@@ WRITE (6,161) AVBE,(VBE(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVBCVR )@@G@@,(VBC(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVCE,(VCE(I),I=1,KNTR)@C@[@@VS )@@G@@ WRITE (6,161) ABETAD,(BETADC(I),I=1,KNTR) @A@[@@ IF (MODEDC.NVT )@@G@@E.1) GO TO 360 @B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@VU )@@G@@ WRITE (6,171) ARPI,(RPI(I),I=1,KNTR)@B@[@@ WRITE (6,171) ARO,VV )@@G@@(RO(I),I=1,KNTR) @B@[@@ WRITE (6,171) ACPI,(CPI(I),I=1,KNTR)@B@[@@VW )@@G@@ WRITE (6,171) ACMU,(CMU(I),I=1,KNTR)@C@[@@ WRITE (6,161) ABETVX )@@G@@AA,(BETAAC(I),I=1,KNTR) @B@[@@ WRITE (6,171) AFT,(FT(I),I=1,KNTR) VY )@@G@@@]@[@@ 360 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 330 @[@[@@C @]@[@@VZ )@@G@@C JFETS @[@[@@C @A@[@@ 400 IF (JELCNT(13).EQ.0) GO TO 500@#@[@@WA )@@G@@ ITITLE=0 @A@[@@ 401 FORMAT(1H0,/,^0**** JFETS^) @^@[@@ WB )@@G@@LOC=LOCATE(13) @]@[@@ KNTR=0@ @[@@ 420 IF (LOC.EQ.0) GO TO 440 WC )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=WD )@@G@@NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=WE )@@G@@NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+7)@ @[@@ TYPE=NODPLC(WF )@@G@@LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODWG )@@G@@PLC(LOC+19) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VWH )@@G@@ALUE(LOCM) @D@[@@ CD(KNTR)=TYPE*(VALUE(LOCT+3)-VALUE(LOCT+4)) WI )@@G@@@E@[@@ VGS(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@WJ )@@G@@ VDS(KNTR)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3) @A@[@@ WK )@@G@@IF (MODEDC.NE.1) GO TO 425 @ @[@@ GM(KNTR)=VALUE(LOCT+5) @ @[@@WL )@@G@@ GDS(KNTR)=VALUE(LOCT+6) @ @[@@ CGS(KNTR)=VALUE(LOCT+9) @ @[@@WM )@@G@@ CGD(KNTR)=VALUE(LOCT+11)@A@[@@ 425 IF (KNTR.GE.KNTLIM) GO TO 450 WN )@@G@@@^@[@@ 430 LOC=NODPLC(LOC) @#@[@@ GO TO 420 @ @[@@ 440 IF (KNWO )@@G@@TR.EQ.0) GO TO 500@A@[@@ 450 IF (ITITLE.EQ.0) WRITE (6,401)@#@[@@ WP )@@G@@ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WQ )@@G@@WRITE (6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AID,(CD(I)WR )@@G@@,I=1,KNTR) @B@[@@ WRITE (6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ WS )@@G@@WRITE (6,161) AVDS,(VDS(I),I=1,KNTR)@A@[@@ IF (MODEDC.NE.1) GO TO 4WT )@@G@@60 @B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE WU )@@G@@(6,171) AGDS,(GDS(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGS,(CGS(I),I=1WV )@@G@@,KNTR)@B@[@@ WRITE (6,171) ACGD,(CGD(I),I=1,KNTR)@]@[@@ 460 KNTR=0WW )@@G@@@ @[@@ IF (LOC.NE.0) GO TO 430 @[@[@@C @]@[@@C MOSFETS @[@[@@WX )@@G@@C @A@[@@ 500 IF (JELCNT(14).EQ.0) GO TO 600@#@[@@ ITITLE=0 WY )@@G@@@A@[@@ 501 FORMAT(1H0,/,^0**** MOSFETS^) @^@[@@ LOC=LOCATE(14) WZ )@@G@@@]@[@@ KNTR=0@ @[@@ 520 IF (LOC.EQ.0) GO TO 540 @#@[@@ KNTR=KXA )@@G@@NTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) XB )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) XC )@@G@@@ @[@@ NODE4=NODPLC(LOC+5) @^@[@@ LOCM=NODPLC(LOC+8)@ @[@@XD )@@G@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@XE )@@G@@ LOCT=LX0+NODPLC(LOC+26) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@XF )@@G@@ AMOD(KNTR)=VALUE(LOCM) @A@[@@ CD(KNTR)=TYPE*VALUE(LOCT+4) XG )@@G@@@E@[@@ VGS(KNTR)=VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@XH )@@G@@ VDS(KNTR)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3) @E@[@@ XI )@@G@@VBS(KNTR)=VALUE(LVNIM1+NODE4)-VALUE(LVNIM1+NODE3) @A@[@@ IF (MOXJ )@@G@@DEDC.NE.1) GO TO 525 @ @[@@ VTH(KNTR)=VALUE(LOCV+9) @A@[@@ XK )@@G@@VDSAT(KNTR)=VALUE(LOCV+10) @ @[@@ GM(KNTR)=VALUE(LOCT+7) @ @[@@XL )@@G@@ GDS(KNTR)=VALUE(LOCT+8) @ @[@@ GMBS(KNTR)=VALUE(LOCT+9)@ @[@@XM )@@G@@ CBD(KNTR)=VALUE(LOCT+12)@ @[@@ CBS(KNTR)=VALUE(LOCT+14)@ @[@@XN )@@G@@ CGS(KNTR)=VALUE(LOCT+16)@ @[@@ CGD(KNTR)=VALUE(LOCT+18)@ @[@@XO )@@G@@ CGB(KNTR)=VALUE(LOCT+20)@A@[@@ 525 IF (KNTR.GE.KNTLIM) GO TO 550 XP )@@G@@@^@[@@ 530 LOC=NODPLC(LOC) @#@[@@ GO TO 520 @ @[@@ 540 IF (KNXQ )@@G@@TR.EQ.0) GO TO 600@A@[@@ 550 IF (ITITLE.EQ.0) WRITE (6,501)@#@[@@ XR )@@G@@ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ XS )@@G@@WRITE (6,251) (AMOD(I),I=1,KNTR) @B@[@@ WRITE (6,171) AID,(CD(I)XT )@@G@@,I=1,KNTR) @B@[@@ WRITE (6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ XU )@@G@@WRITE (6,161) AVDS,(VDS(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVBS,(VBS(XV )@@G@@I),I=1,KNTR)@A@[@@ IF (MODEDC.NE.1) GO TO 560 @B@[@@ WRITE XW )@@G@@(6,161) AVTH,(VTH(I),I=1,KNTR)@C@[@@ WRITE (6,161) AVDSAT,(VDSAT(I)XX )@@G@@,I=1,KNTR) @B@[@@ WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ XY )@@G@@WRITE (6,171) AGDS,(GDS(I),I=1,KNTR)@C@[@@ WRITE (6,171) AGMBS,(GMBXZ )@@G@@S(I),I=1,KNTR) @B@[@@ WRITE (6,171) ACBD,(CBD(I),I=1,KNTR)@B@[@@YA )@@G@@ WRITE (6,171) ACBS,(CBS(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGSYB )@@G@@,(CGS(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACGD,(CGD(I),I=1,KNTR)@B@[@@YC )@@G@@ WRITE (6,171) ACGB,(CGB(I),I=1,KNTR)@]@[@@ 560 KNTR=0@ @[@@ YD )@@G@@IF (LOC.NE.0) GO TO 530 @[@[@@C @ @[@@C OPERATING POINT ANALYSES YE )@@G@@@[@[@@C @A@[@@ 600 IF (MODEDC.NE.1) GO TO 700 @A@[@@ IF (KIYF )@@G@@NEL.EQ.0) GO TO 610 @#@[@@ CALL SSTF @A@[@@ 610 IF (NSENS.EQYG )@@G@@.0) GO TO 700 @#@[@@ CALL SENCAL @[@[@@C @]@[@@C FINISHED YH )@@G@@@[@[@@C @A@[@@ 700 IF (MODEDC.EQ.2) GO TO 710 @B@[@@ IF ((JYI )@@G@@ACFLG+JPZFLG).NE.0) GO TO 705 @ @[@@ CALL CLRMEM(LVNIM1) @^@[@@YJ )@@G@@ CALL CLRMEM(LX0) @^@[@@ 705 CALL CLRMEM(LVN) @^@[@@ CALL CYK )@@G@@LRMEM(NDIAG)@^@[@@ 710 CALL SECOND(T2) @A@[@@ RSTATS(5)=RSTATS(5YL )@@G@@)+T2-T1 @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE SYM )@@G@@STF @[@[@@C @F@[@@C THIS ROUTINE COMPUTES THE VALUE OF THE SMAYN )@@G@@LL-SIGNAL TRANSFER@A@[@@C FUNCTION SPECIFIED BY THE USER. @[@[@@C YO )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUYP )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,YQ )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILYR )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWYS )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,YT )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@YU )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, YV )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONYW )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1YX )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ YY )@@G@@COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@YZ )@@G@@ 1 KOVAR,KIDOUT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ ZA )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE ZB )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ DIMENSZC )@@G@@ION STRING(5),SAVE(3) @B@[@@ DATA ASLASH, ABLNK / 1H/, 1H / ZD )@@G@@@[@[@@C @F@[@@C SETUP CURRENT VECTOR FOR INPUT RESISTANCE AND TRANSZE )@@G@@FER FUNCTION@[@[@@C @A@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP)@ @[@@ZF )@@G@@ IF (KIDIN.EQ.10) GO TO 5@ @[@@C... VOLTAGE SOURCE INPUT @ @[@@ZG )@@G@@ IPTRI=NODPLC(KINEL+6) @ @[@@ VALUE(LVN+IPTRI)=+1.0 @#@[@@ZH )@@G@@ GO TO 10 @ @[@@C... CURRENT SOURCE INPUT @ @[@@ 5 NOPOSIZI )@@G@@=NODPLC(KINEL+2) @ @[@@ NONEGI=NODPLC(KINEL+3) @ @[@@ VALUE(ZJ )@@G@@LVN+NOPOSI)=-1.0 @ @[@@ VALUE(LVN+NONEGI)=+1.0 @[@[@@C @E@[@@ZK )@@G@@C LU DECOMPOSE AND SOLVE THE SYSTEM OF CIRCUIT EQUATIONS @[@[@@C ZL )@@G@@@A@[@@C... REORDER THE RIGHT-HAND SIDE @^@[@@ 10 DO 15 I=2,NSTOP ZM )@@G@@@^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) ZN )@@G@@@#@[@@ 15 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+ZO )@@G@@1),NSTOP) @#@[@@ 20 CALL DCDCMP @#@[@@ CALL DCSOL @^@[@@ ZP )@@G@@VALUE(LVN+1)=0.0 @[@[@@C @ @[@@C EVALUATE TRANSFER FUNCTION @[@[@@ZQ )@@G@@C @B@[@@ IF (NODPLC(KOVAR+5).NE.0) GO TO 30 @^@[@@C... VOLTAGZR )@@G@@E OUTPUT @ @[@@ NOPOSO=NODPLC(KOVAR+2) @ @[@@ NONEGO=NODPLZS )@@G@@C(KOVAR+3) @C@[@@ TRFN=VALUE(LVN+NOPOSO)-VALUE(LVN+NONEGO) @#@[@@ZT )@@G@@ GO TO 40 @C@[@@C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) ZU )@@G@@@ @[@@ 30 IPTRO=NODPLC(KOVAR+2) @ @[@@ IPTRO=NODPLC(IPTRO+6) ZV )@@G@@@ @[@@ TRFN=VALUE(LVN+IPTRO) @[@[@@C @ @[@@C EVALUATE INPUT ZW )@@G@@RESISTANCE @[@[@@C @ @[@@ 40 IF (KIDIN.EQ.9) GO TO 50@ @[@@C... ZX )@@G@@CURRENT SOURCE INPUT @C@[@@ ZIN=VALUE(LVN+NONEGI)-VALUE(LVN+NOPOZY )@@G@@SI) @#@[@@ GO TO 70 @ @[@@C... VOLTAGE SOURCE INPUT @ @[@@ZZ )@@G@@ 50 CREAL=VALUE(LVN+IPTRI) @B@[@@ IF (ABS(CREAL).GE.1.0E-20) GO AA )@@G@@TO 60 @#@[@@ ZIN=1.0E20 @#@[@@ GO TO 70 @^@[@@ 60 ZIN=-1AB )@@G@@.0/CREAL @[@[@@C @C@[@@C SETUP CURRENT VECTOR FOR OUTPUT RESISTAAC )@@G@@NCE @[@[@@C @A@[@@ 70 CALL ZERO8(VALUE(LVN+1),NSTOP)@B@[@@ AD )@@G@@IF (NODPLC(KOVAR+5).NE.0) GO TO 80 @^@[@@C... VOLTAGE OUTPUT @ @[@@AE )@@G@@ VALUE(LVN+NOPOSO)=-1.0 @ @[@@ VALUE(LVN+NONEGO)=+1.0 @#@[@@AF )@@G@@ GO TO 90 @C@[@@ 80 IF (NODPLC(KOVAR+2).NE.KINEL) GO TO 85 AG )@@G@@@#@[@@ ZOUT=ZIN @#@[@@ GO TO 200 @C@[@@C... CURRENT OUTPAH )@@G@@UT (THROUGH VOLTAGE SOURCE) @ @[@@ 85 VALUE(LVN+IPTRO)=+1.0 @[@[@@AI )@@G@@C @C@[@@C PERFORM NEW FORWARD AND BACKWARD SUBSTITUTION@[@[@@C AJ )@@G@@@A@[@@C... REORDER THE RIGHT-HAND SIDE @^@[@@ 90 DO 95 I=2,NSTOP AK )@@G@@@^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) AL )@@G@@@#@[@@ 95 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+AM )@@G@@1),NSTOP) @#@[@@ CALL DCSOL @^@[@@ VALUE(LVN+1)=0.0 @[@[@@AN )@@G@@C @ @[@@C EVALUATE OUTPUT RESISTANCE @[@[@@C @B@[@@ 100 IF (NOAO )@@G@@DPLC(KOVAR+5).NE.0) GO TO 110 @^@[@@C... VOLTAGE OUTPUT @C@[@@ AP )@@G@@ZOUT=VALUE(LVN+NONEGO)-VALUE(LVN+NOPOSO) @#@[@@ GO TO 200 @C@[@@AQ )@@G@@C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) @ @[@@ 110 CREAL=VALUE(AR )@@G@@LVN+IPTRO) @B@[@@ IF (ABS(CREAL).GE.1.0E-20) GO TO 120@#@[@@ AS )@@G@@ZOUT=1.0E20 @#@[@@ GO TO 200 @^@[@@ 120 ZOUT=-1.0/CREAL @[@[@@AT )@@G@@C @#@[@@C PRINT RESULTS @[@[@@C @#@[@@ 200 DO 210 I=1,5@^@[@@AU )@@G@@ STRING(I)=ABLNK @#@[@@ 210 CONTINUE @]@[@@ IPOS=1@B@[@@AV )@@G@@ CALL OUTNAM(KOVAR,1,STRING,IPOS) @A@[@@ CALL COPY8(STRING,AW )@@G@@SAVE,3) @B@[@@ CALL MOVE(STRING,IPOS,ASLASH,1,1) @#@[@@ AX )@@G@@IPOS=IPOS+1 @ @[@@ LOCV=NODPLC(KINEL+1) @^@[@@ ANAM=VALUE(LAY )@@G@@OCV) @B@[@@ CALL MOVE(STRING,IPOS,ANAM,1,8) @D@[@@ WRITE AZ )@@G@@(6,231) STRING,TRFN,ANAM,ZIN,SAVE,ZOUT @E@[@@ 231 FORMAT(////,^0****BA )@@G@@ SMALL-SIGNAL CHARACTERISTICS^//, @A@[@@ 1 1H0,5X,5A8,3H = ,1PE1BB )@@G@@0.3,/,@E@[@@ 2 1H0,5X,^INPUT RESISTANCE AT ^,A8,12X,3H = ,E10.3,/,BC )@@G@@@E@[@@ 3 1H0,5X,^OUTPUT RESISTANCE AT ^,2A8,A3,3H = ,E10.3) @]@[@@BD )@@G@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE SENCAL @[@[@@C BE )@@G@@@G@[@@C THIS ROUTINE COMPUTES THE DC SENSITIVITIES OF CIRCUIT ELEMENBF )@@G@@TS @B@[@@C WITH RESPECT TO USER SPECIFIED OUTPUTS. @[@[@@C @G@[@@BG )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, BH )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEBI )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,BJ )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQBK )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXBL )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ BM )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@BN )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATBO )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODBP )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEBQ )@@G@@MNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLBR )@@G@@E(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMONBS )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1BT )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ BU )@@G@@COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@BV )@@G@@ 1 KOVAR,KIDOUT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ BW )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE BX )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ DIMENSBY )@@G@@ION STRING(5),SENTIT(4) @G@[@@ DATA ALSRS,ALSIS,ALSN,ALSRB,ALSRC,ALBZ )@@G@@SRE / 2HRS,2HIS,1HN,2HRB,2HRC,@#@[@@ 1 2HRE / @G@[@@ DATA ACA )@@G@@LSBF,ALSC2,ALSBR,ALSC4,ALSNE,ALSNC,ALSIK,ALSIKR,ALSVA,ALSVB @F@[@@ 1CB )@@G@@ / 2HBF,2HC2,2HBR,2HC4,2HNE,2HNC,2HIK,3HIKR,2HVA,2HVB / @G@[@@ CC )@@G@@DATA SENTIT / 8HDC SENSI, 8HTIVITY A, 8HNALYSIS , 8H / @^@[@@CD )@@G@@ DATA ABLNK / 1H /@[@[@@C @[@[@@C @ @[@@ IF (KINEL.NECE )@@G@@.0) GO TO 8 @#@[@@ 4 CALL DCDCMP @[@[@@C @[@[@@C @^@[@@ 8 CF )@@G@@DO 1000 N=1,NSENS @[@[@@C @A@[@@C PREPARE ADJOINT EXCITATION VECTORCG )@@G@@@[@[@@C @A@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP)@ @[@@ LOCS=NCH )@@G@@ODPLC(ISENS+N) @ @[@@ IOUTYP=NODPLC(LOCS+5) @A@[@@ IF (IOCI )@@G@@UTYP.NE.0) GO TO 10 @^@[@@C... VOLTAGE OUTPUT @ @[@@ NOPOSOCJ )@@G@@=NODPLC(LOCS+2) @ @[@@ NONEGO=NODPLC(LOCS+3) @ @[@@ VALUE(CK )@@G@@LVN+NOPOSO)=-1.0 @ @[@@ VALUE(LVN+NONEGO)=+1.0 @#@[@@ GO TO CL )@@G@@20 @C@[@@C... CURRENT OUTPUT (THROUGH VOLTAGE SOURCE) @ @[@@ 10 CM )@@G@@IPTRO=NODPLC(LOCS+2) @ @[@@ IPTRO=NODPLC(IPTRO+6) @ @[@@ CN )@@G@@VALUE(LVN+IPTRO)=-1.0 @[@[@@C @G@[@@C OBTAIN ADJOINT SOLUTION BY CO )@@G@@DOING FORWARD/BACKWARD SUBSTITUTION ON @A@[@@C THE TRANSPOSE OF THE CP )@@G@@Y MATRIX @[@[@@C @#@[@@ 20 CALL ASOL @^@[@@ VALUE(LVN+1)CQ )@@G@@=0.0 @[@[@@C @E@[@@C REAL SOLUTION IN LVNIM1; ADJOINT SOLUTION INCR )@@G@@ LVN ... @[@[@@C @A@[@@ CALL TITLE(0,LWIDTH,1,SENTIT) @]@[@@CS )@@G@@ IPOS=1@B@[@@ CALL OUTNAM(LOCS,1,STRING,IPOS) @B@[@@ CT )@@G@@CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@ JSTOP=(IPOS+6)/8 @B@[@@CU )@@G@@ WRITE (6,36) (STRING(J),J=1,JSTOP) @C@[@@ 36 FORMAT(^0DC SENSITCV )@@G@@IVITIES OF OUTPUT ^,5A8)@#@[@@ WRITE (6,41)@G@[@@ 41 FORMAT(1H0,8CW )@@G@@X,*ELEMENT*,9X,*ELEMENT*,7X,*ELEMENT*,7X,*NORMALIZED*/@G@[@@ 1 10XCX )@@G@@,*NAME*,12X,*VALUE*,6X,*SENSITIVITY SENSITIVITY*/35X, @B@[@@ 2CY )@@G@@ * (VOLTS/UNIT) (VOLTS/PERCENT)*/)@[@[@@C @]@[@@C RESISTORS@[@[@@CZ )@@G@@C @^@[@@ LOC=LOCATE(1) @ @[@@ 100 IF (LOC.EQ.0) GO TO 110 DA )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@DB )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ VAL=1.0/VALUE(LOCV+1) @D@[@@DC )@@G@@ SENS=-(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2))*@F@[@@ 1 DD )@@G@@(VALUE(LVN +NODE1)-VALUE(LVN +NODE2))/(VAL*VAL) @ @[@@ SENSN=DE )@@G@@VAL*SENS/100.0 @C@[@@ WRITE (6,101) VALUE(LOCV),VAL,SENS,SENSN DF )@@G@@@D@[@@ 101 FORMAT(10X,A8,4X,1PE10.3,5X,E10.3,5X,E10.3) @^@[@@ 105 DG )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 100 @[@[@@C @#@[@@C VOLTAGE SDH )@@G@@OURCES@[@[@@C @^@[@@ 110 LOC=LOCATE(9) @ @[@@ 140 IF (LOC.EQ.0DI )@@G@@) GO TO 150 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) DJ )@@G@@@ @[@@ IPTRV=NODPLC(LOC+6) @ @[@@ SENS=-VALUE(LVN+IPTRV) DK )@@G@@@ @[@@ SENSN=VAL*SENS/100.0 @C@[@@ WRITE (6,101) VALUE(LOCVDL )@@G@@),VAL,SENS,SENSN @^@[@@ 145 LOC=NODPLC(LOC) @#@[@@ GO TO 140 DM )@@G@@@[@[@@C @#@[@@C CURRENT SOURCES@[@[@@C @^@[@@ 150 LOC=LOCATE(1DN )@@G@@0) @ @[@@ 160 IF (LOC.EQ.0) GO TO 170 @^@[@@ LOCV=NODPLC(LOC+1)DO )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) DP )@@G@@@^@[@@ VAL=VALUE(LOCV+1) @C@[@@ SENS=VALUE(LVN+NODE1)-VALUE(LVDQ )@@G@@N+NODE2) @ @[@@ SENSN=VAL*SENS/100.0 @C@[@@ WRITE (6,101DR )@@G@@) VALUE(LOCV),VAL,SENS,SENSN @^@[@@ 165 LOC=NODPLC(LOC) @#@[@@ DS )@@G@@GO TO 160 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 170 LOC=LODT )@@G@@CATE(11) @ @[@@ 180 IF (LOC.EQ.0) GO TO 210 @^@[@@ LOCV=NODPLC(DU )@@G@@LOC+1)@A@[@@ WRITE (6,181) VALUE(LOCV) @^@[@@ 181 FORMAT(1X,A8DV )@@G@@) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3DW )@@G@@) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+5)DX )@@G@@@ @[@@ LOCM=NODPLC(LOCM+1) @^@[@@ AREA=VALUE(LOCV+1)@[@[@@DY )@@G@@C @ @[@@C SERIES RESISTANCE (RS) @[@[@@C @ @[@@ VAL=VADZ )@@G@@LUE(LOCM+2)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 190 @ @[@@ EA )@@G@@WRITE (6,186) ALSRS @C@[@@ 186 FORMAT(10X,A8,5X,2H0.,13X,2H0.,13X,2EB )@@G@@H0.) @#@[@@ GO TO 200 @#@[@@ 190 VAL=1.0/VAL @D@[@@ SENS=-EC )@@G@@(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE3))*@F@[@@ 1 (VALUE(LVN ED )@@G@@ +NODE1)-VALUE(LVN +NODE3))/(VAL*VAL) @ @[@@ SENSN=VAL*SENS/100EE )@@G@@.0 @B@[@@ WRITE (6,101) ALSRS,VAL,SENS,SENSN @[@[@@C @^@[@@EF )@@G@@C INTRINSIC PARAMETERS @[@[@@C @ @[@@ 200 CSAT=VALUE(LOCM+1)*AREA EG )@@G@@@^@[@@ XN=VALUE(LOCM+3) @D@[@@ VBE=VALUE(LVNIM1+NODE3)-VALUE(EH )@@G@@LVNIM1+NODE2) @#@[@@ VTE=XN*VT @^@[@@ EVBE=EXP(VBE/VTE) EI )@@G@@@C@[@@ VABE=VALUE(LVN+NODE3)-VALUE(LVN+NODE2) @[@[@@C @ @[@@EJ )@@G@@C SATURATION CURRENT (IS) @[@[@@C @ @[@@ SENS=VABE*(EVBE-1.EK )@@G@@0) @ @[@@ SENSN=CSAT*SENS/100.0 @B@[@@ WRITE (6,101) ALSIEL )@@G@@S,CSAT,SENS,SENSN @[@[@@C @^@[@@C IDEALITY FACTOR (N) @[@[@@C EM )@@G@@@B@[@@ SENS=-VABE*(CSAT/XN)*(VBE/VTE)*EVBE @B@[@@ IF (ABS(SENSEN )@@G@@).LT.1.0E-50) SENS=0.0 @ @[@@ SENSN=XN*SENS/100.0 @B@[@@ EO )@@G@@WRITE (6,101) ALSN,XN,SENS,SENSN @^@[@@ 205 LOC=NODPLC(LOC) @#@[@@EP )@@G@@ GO TO 180 @[@[@@C @A@[@@C BIPOLAR JUNCTION TRANSISTORS EQ )@@G@@@[@[@@C @^@[@@ 210 LOC=LOCATE(12) @ @[@@ 220 IF (LOC.EQ.0) GO TER )@@G@@O 1000@^@[@@ LOCV=NODPLC(LOC+1)@A@[@@ WRITE (6,181) VALUE(LOCVES )@@G@@) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3ET )@@G@@) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5EU )@@G@@) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7EV )@@G@@) @^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ TYPE=NODPLC(LOCM+2) EW )@@G@@@ @[@@ LOCM=NODPLC(LOCM+1) @^@[@@ AREA=VALUE(LOCV+1)@[@[@@EX )@@G@@C @^@[@@C BASE RESISTANCE (RB) @[@[@@C @ @[@@ VAL=VALUE(LOEY )@@G@@CM+4)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 230 @ @[@@ WRITE EZ )@@G@@(6,186) ALSRB @#@[@@ GO TO 240 @#@[@@ 230 VAL=1.0/VAL @D@[@@FA )@@G@@ SENS=-(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE5))*@F@[@@ 1 FB )@@G@@(VALUE(LVN +NODE2)-VALUE(LVN +NODE5))/(VAL*VAL) @ @[@@ SENSN=FC )@@G@@VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSRB,VAL,SENS,SENSN @[@[@@FD )@@G@@C @ @[@@C COLLECTOR RESISTANCE (RC) @[@[@@C @ @[@@ 240 VAL=VAFE )@@G@@LUE(LOCM+5)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 250 @ @[@@ FF )@@G@@WRITE (6,186) ALSRC @#@[@@ GO TO 260 @#@[@@ 250 VAL=1.0/VAL FG )@@G@@@D@[@@ SENS=-(VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE4))*@F@[@@ 1FH )@@G@@ (VALUE(LVN +NODE1)-VALUE(LVN +NODE4))/(VAL*VAL) @ @[@@ FI )@@G@@SENSN=VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSRC,VAL,SENS,SENSN FJ )@@G@@@[@[@@C @ @[@@C EMITTER RESISTANCE (RE) @[@[@@C @ @[@@ 260 FK )@@G@@VAL=VALUE(LOCM+6)*AREA @A@[@@ IF (VAL.NE.0.0) GO TO 270 @ @[@@FL )@@G@@ WRITE (6,186) ALSRE @#@[@@ GO TO 280 @#@[@@ 270 VAL=1.FM )@@G@@0/VAL @D@[@@ SENS=-(VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE6))*@F@[@@FN )@@G@@ 1 (VALUE(LVN +NODE3)-VALUE(LVN +NODE6))/(VAL*VAL) @ @[@@FO )@@G@@ SENSN=VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSRE,VAL,SENS,SFP )@@G@@ENSN @[@[@@C @^@[@@C INTRINSIC PARAMETERS @[@[@@C @^@[@@ 280 FQ )@@G@@BF=VALUE(LOCM+1) @^@[@@ BR=VALUE(LOCM+2) @ @[@@ CSAT=VALUE(LFR )@@G@@OCM+3)*AREA @^@[@@ OVA=VALUE(LOCM+7) @^@[@@ OVB=VALUE(LOCM+8) FS )@@G@@@ @[@@ OIK=VALUE(LOCM+9)/AREA @^@[@@ C2=VALUE(LOCM+10) @^@[@@FT )@@G@@ XNE=VALUE(LOCM+11)@#@[@@ VTE=XNE*VT @ @[@@ OIKR=VALUE(LFU )@@G@@OCM+12)/AREA@^@[@@ C4=VALUE(LOCM+13) @^@[@@ XNC=VALUE(LOCM+14)FV )@@G@@@#@[@@ VTC=XNC*VT @E@[@@ VBE=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(FW )@@G@@LVNIM1+NODE6)) @E@[@@ VBC=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1FX )@@G@@+NODE4)) @D@[@@ VABE=TYPE*(VALUE(LVN+NODE5)-VALUE(LVN+NODE6)) FY )@@G@@@D@[@@ VABC=TYPE*(VALUE(LVN+NODE5)-VALUE(LVN+NODE4)) @^@[@@ FZ )@@G@@VACE=VABE-VABC @A@[@@ IF (VBE.LE.0.0) GO TO 320 @^@[@@ GA )@@G@@EVBE=EXP(VBE/VT) @ @[@@ CBE=CSAT*(EVBE-1.0) @^@[@@ GBE=CSGB )@@G@@AT*EVBE/VT @ @[@@ IF (C2.NE.0.0) GO TO 310@#@[@@ CBEN=0.0 GC )@@G@@@#@[@@ GBEN=0.0 @#@[@@ GO TO 350 @^@[@@ 310 EVBEN=EXP(VBGD )@@G@@E/VTE)@ @[@@ CBEN=C2*CSAT*(EVBEN-1.0)@ @[@@ GBEN=C2*CSAT*EVBENGE )@@G@@/VTE @#@[@@ GO TO 350 @#@[@@ 320 GBE=CSAT/VT @#@[@@ CBE=GBGF )@@G@@E*VBE @^@[@@ GBEN=C2*CSAT/VTE @^@[@@ CBEN=GBEN*VBE @A@[@@GG )@@G@@ 350 IF (VBC.LE.0.0) GO TO 370 @^@[@@ EVBC=EXP(VBC/VT) @ @[@@GH )@@G@@ CBC=CSAT*(EVBC-1.0) @^@[@@ GBC=CSAT*EVBC/VT @ @[@@ GI )@@G@@IF (C4.NE.0.0) GO TO 360@#@[@@ CBCN=0.0 @#@[@@ GBCN=0.0 GJ )@@G@@@#@[@@ GO TO 400 @^@[@@ 360 EVBCN=EXP(VBC/VTC)@ @[@@ CBCN=CGK )@@G@@4*CSAT*(EVBCN-1.0)@ @[@@ GBCN=C4*CSAT*EVBCN/VTC @#@[@@ GO TO GL )@@G@@400 @#@[@@ 370 GBC=CSAT/VT @#@[@@ CBC=GBC*VBC @^@[@@ GBCN=CGM )@@G@@4*CSAT/VTC @^@[@@ CBCN=GBCN*VBC @A@[@@ 400 Q1=1.0/(1.0-OVA*VBGN )@@G@@C-OVB*VBE) @ @[@@ Q2=OIK*CBE+OIKR*CBC @ @[@@ SQARG=SQRT(1GO )@@G@@.0+4.0*Q2) @ @[@@ QB=Q1*(1.0+SQARG)/2.0 @ @[@@ DQB=(CBE-CBCGP )@@G@@)/(QB*QB) @ @[@@ SQARG=SQRT(1.0+4.0*Q2) @B@[@@ DQ1=DQB*(1.0GQ )@@G@@+SQARG)+(Q1*Q1)/2.0 @^@[@@ DQ2=Q1*DQB/SQARG @[@[@@C @^@[@@GR )@@G@@C COMPUTE SENSITIVITIES@[@[@@C @]@[@@C... BF @^@[@@ SENS=-GS )@@G@@VABE*CBE/BF @ @[@@ SENSN=BF*SENS/100.0 @B@[@@ WRITE (6,101GT )@@G@@) ALSBF,BF,SENS,SENSN @]@[@@C... C2 @ @[@@ IF (C2.NE.0.0) GO GU )@@G@@TO 430@ @[@@ WRITE (6,186) ALSC2 @#@[@@ GO TO 440 @^@[@@GV )@@G@@ 430 SENS=VABE*CBEN/C2 @ @[@@ SENSN=C2*SENS/100.0 @B@[@@ GW )@@G@@WRITE (6,101) ALSC2,C2,SENS,SENSN @]@[@@C... BR @^@[@@ 440 SENS=-GX )@@G@@VABC*CBC/BR @ @[@@ SENSN=BR*SENS/100.0 @B@[@@ WRITE (6,101GY )@@G@@) ALSBR,BR,SENS,SENSN @]@[@@C... C4 @ @[@@ IF (C4.NE.0.0) GO GZ )@@G@@TO 450@ @[@@ WRITE (6,186) ALSC4 @#@[@@ GO TO 460 @^@[@@HA )@@G@@ 450 SENS=VABC*CBCN/C4 @ @[@@ SENSN=C4*SENS/100.0 @B@[@@ HB )@@G@@WRITE (6,101) ALSC4,C4,SENS,SENSN @]@[@@C... IS @D@[@@ 460 SENS=(HC )@@G@@VABE*(CBE/BF+CBEN)+VABC*(CBC/BR+CBCN) @A@[@@ 1 +VACE*(DQB*QB-DHD )@@G@@Q2*Q2))/CSAT@ @[@@ SENSN=CSAT*SENS/100.0 @B@[@@ WRITE (6,101HE )@@G@@) ALSIS,CSAT,SENS,SENSN @]@[@@C... NE @ @[@@ SENS=-VABE*GBEN*VBHF )@@G@@E/XNE @ @[@@ SENSN=XNE*SENS/100.0 @B@[@@ WRITE (6,101) ALSNHG )@@G@@E,XNE,SENS,SENSN @]@[@@C... NC @ @[@@ SENS=-VABC*GBCN*VBC/XNC HH )@@G@@@ @[@@ SENSN=XNC*SENS/100.0 @B@[@@ WRITE (6,101) ALSNC,XNC,HI )@@G@@SENS,SENSN @]@[@@C... IK @A@[@@ IF (OIK.NE.0.0) GO TO 470 HJ )@@G@@@ @[@@ WRITE (6,186) ALSIK @#@[@@ GO TO 480 @#@[@@ 470 HK )@@G@@VAL=1.0/OIK @A@[@@ SENS=VACE*DQ2*CBE/(VAL*VAL) @ @[@@ SENSN=HL )@@G@@VAL*SENS/100.0 @B@[@@ WRITE (6,101) ALSIK,VAL,SENS,SENSN @]@[@@HM )@@G@@C... IKR @A@[@@ 480 IF (OIKR.NE.0.0) GO TO 490 @ @[@@ WRITE HN )@@G@@(6,186) ALSIKR @#@[@@ GO TO 500 @#@[@@ 490 VAL=1.0/OIKR@A@[@@HO )@@G@@ SENS=VACE*DQ2*CBC/(VAL*VAL) @ @[@@ SENSN=VAL*SENS/100.0 HP )@@G@@@B@[@@ WRITE (6,101) ALSIKR,VAL,SENS,SENSN @]@[@@C... VA @A@[@@HQ )@@G@@ 500 IF (OVA.NE.0.0) GO TO 510 @ @[@@ WRITE (6,186) ALSVA HR )@@G@@@#@[@@ GO TO 520 @#@[@@ 510 VA=1.0/OVA @A@[@@ SENS=VACE*DQHS )@@G@@1*VBC/(VA*VA) @ @[@@ SENSN=VA*SENS/100.0 @B@[@@ WRITE HT )@@G@@(6,101) ALSVA,VA,SENS,SENSN @]@[@@C... VB @A@[@@ 520 IF (OVB.NE.0HU )@@G@@.0) GO TO 530 @ @[@@ WRITE (6,186) ALSVB @#@[@@ GO TO HV )@@G@@540 @#@[@@ 530 VB=1.0/OVB @A@[@@ SENS=VACE*DQ1*VBE/(VB*VB) HW )@@G@@@ @[@@ SENSN=VB*SENS/100.0 @B@[@@ WRITE (6,101) ALSVB,VB,SHX )@@G@@ENS,SENSN @[@[@@C @[@[@@C @^@[@@ 540 LOC=NODPLC(LOC) @#@[@@HY )@@G@@ GO TO 220 @[@[@@C @]@[@@C FINISHED @[@[@@C @#@[@@ 1000 HZ )@@G@@CONTINUE @]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE AIA )@@G@@SOL @[@[@@C @G@[@@C THIS ROUTINE EVALUATES THE ADJOINT CIRCUITIB )@@G@@ RESPONSE BY DOING A @G@[@@C FORWARD/BACKWARD SUBSTITUTION ON THE TRAIC )@@G@@NSPOSE OF THE COEFFICIENT @]@[@@C MATRIX. @[@[@@C @G@[@@ ID )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@IE )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, IF )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFIG )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACIH )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,II )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONIJ )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1IK )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ COMMON /BLANK/ VALIL )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@IM )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @^@[@@C FORIN )@@G@@WARD SUBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSTOP @ @[@@ IO )@@G@@IO=NODPLC(IORDER+I) @C@[@@ VALUE(LVN+IO)=VALUE(LVN+IO)/VALUE(LYIP )@@G@@NL+IO)@ @[@@ JSTART=NODPLC(IUR+I) @ @[@@ JSTOP=NODPLC(IUR+IIQ )@@G@@+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @B@[@@ IF (VALUE(LVIR )@@G@@N+IO).EQ.0.0) GO TO 20 @ @[@@ DO 10 J=JSTART,JSTOP @^@[@@ IS )@@G@@JO=NODPLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) @E@[@@ VALUE(IT )@@G@@LVN+JO)=VALUE(LVN+JO)-VALUE(LYU+J)*VALUE(LVN+IO)@#@[@@ 10 CONTINUE IU )@@G@@@#@[@@ 20 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@IV )@@G@@C @#@[@@ K=NSTOP+1 @^@[@@ DO 40 I=2,NSTOP @]@[@@ IW )@@G@@K=K-1 @ @[@@ IO=NODPLC(IORDER+K) @ @[@@ JSTART=NODPLC(ILC+IX )@@G@@K) @ @[@@ JSTOP=NODPLC(ILC+K+1)-1 @A@[@@ IF (JSTART.GT.JSTOIY )@@G@@P) GO TO 40 @ @[@@ DO 30 J=JSTART,JSTOP @^@[@@ JO=NODPLC(ILIZ )@@G@@R+J) @ @[@@ JO=NODPLC(IORDER+JO) @E@[@@ VALUE(LVN+IO)=VALUJA )@@G@@E(LVN+IO)-VALUE(LYL+J)*VALUE(LVN+JO)@#@[@@ 30 CONTINUE @#@[@@ 40 JB )@@G@@CONTINUE @[@[@@C @ @[@@C REORDER RIGHT-HAND SIDE @[@[@@C JC )@@G@@@^@[@@ DO 50 I=2,NSTOP @^@[@@ J=NODPLC(ISWAP+I) @A@[@@ JD )@@G@@VALUE(NDIAG+I)=VALUE(LVN+J) @#@[@@ 50 CONTINUE @D@[@@ CALL CJE )@@G@@OPY8(VALUE(NDIAG+1),VALUE(LVN+1),NSTOP) @[@[@@C @]@[@@C FINISHED JF )@@G@@@[@[@@C @]@[@@ RETURN@]@[@@ END @#@[@@ OVERLAY(6,0)JG )@@G@@@#@[@@ PROGRAM ACAN@[@[@@C @D@[@@C THIS ROUTINE DRIVES THE JH )@@G@@SMALL-SIGNAL ANALYSES. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,IJI )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOJJ )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSJK )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOJL )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4JM )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@JN )@@G@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3),ATIMEJO )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@JP )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, JQ )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONJR )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1JS )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2JT )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,JU )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLJV )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLJW )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNJX )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /AC/ FSTART,FSTOPJY )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NJZ )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPKA )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@G@[@@KB )@@G@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,KC )@@G@@@G@[@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPUKD )@@G@@, @C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@[@@ KE )@@G@@COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@KF )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAKG )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ KH )@@G@@LOGICAL MEMPTR @[@[@@C @^@[@@C ALLOCATE STORAGE @[@[@@C KI )@@G@@@^@[@@ CALL SECOND(T1) @B@[@@ CALL GETMEM(NDIAGC,NSTOP+NSTOPKJ )@@G@@) @C@[@@ CALL GETMEM(LVNC,2*(NSTOP+NSTOP+NUT+NLT)) @#@[@@ KK )@@G@@NANDD=0 @ @[@@ IF (MODAC.NE.1) GO TO 20@A@[@@ IF (IDIST.NEKL )@@G@@.0) CALL DINIT @A@[@@ IF (INOISE.EQ.0) GO TO 10 @ @[@@ KM )@@G@@IF (IDIST.EQ.0) GO TO 10@#@[@@ NANDD=1 @A@[@@ CALL GETMEM(KN )@@G@@LVNCT,2*NSTOP) @ @[@@ 10 CALL GETMEM(LOUTPT,0) @#@[@@ 20 CALL CKO )@@G@@RUNCH @B@[@@ IF (NANDD.NE.0) LVNCTC=(LVNCT+1)/2 @^@[@@ NDIAG=KP )@@G@@(NDIAGC+1)/2@^@[@@ LVN=(LVNC+1)/2 @^@[@@ LYNL=LVN+NSTOP KQ )@@G@@@^@[@@ LYU=LYNL+NSTOP @#@[@@ LYL=LYU+NUT @#@[@@ ICALC=KR )@@G@@0 @A@[@@ IF (MODAC.NE.1) GO TO 600 @C@[@@ NUMOUT=JELCNKS )@@G@@T(43)+JELCNT(44)+JELCNT(45)+1 @#@[@@ FREQ=FSTART @[@[@@C @D@[@@KT )@@G@@C LOAD Y MATRIX AND C VECTOR, SOLVE FOR V VECTOR @[@[@@C @#@[@@KU )@@G@@ 100 CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 9KV )@@G@@00 @^@[@@ OMEGA=TWOPI*FREQ @#@[@@ CALL ACLOAD @A@[@@ KW )@@G@@IF (IDEBUG(2).LE.0) GO TO 110 @ @[@@ CALL DMPMAT(8HACAN ) @ @[@@KX )@@G@@ IDEBUG(2)=IDEBUG(2)-1 @#@[@@ 110 CALL ACDCMP @#@[@@ CALL AKY )@@G@@CSOL @ @[@@ CVALUE(LVN+1)=(0.0,0.0) @A@[@@ IF (IGOOF.EQ.0) GOKZ )@@G@@ TO 200 @ @[@@ WRITE (6,121) IGOOF,FREQ@G@[@@ 121 FORMAT(^0WARLA )@@G@@NING: UNDERFLOW ^,I4,^ TIME(S) IN AC ANALYSIS AT FREQ@^@[@@ 1 = ^,1LB )@@G@@PE9.3,^ HZ^)@#@[@@ IGOOF=0 @[@[@@C @#@[@@C STORE OUTPUTS LC )@@G@@@[@[@@C @A@[@@ 200 CALL EXTMEM(LOUTPT,2*NUMOUT) @A@[@@ LOCO=(LD )@@G@@LOUTPT+1)/2+ICALC*NUMOUT@^@[@@ ICALC=ICALC+1 @B@[@@ CVALUELE )@@G@@(LOCO+1)=CMPLX(FREQ,OMEGA) @^@[@@ LOC=LOCATE(43) @ @[@@ 310 LF )@@G@@IF (LOC.EQ.0) GO TO 400 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO 320 LG )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) LH )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@E@[@@ CVALUE(LOCO+ISEQ)=CVALUE(LVN+NLI )@@G@@ODE1)-CVALUE(LVN+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO LJ )@@G@@310 @^@[@@ 320 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(IPTR+6) LK )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ CVALUE(LOCO+ISEQ)=CVALUE(LVN+ILL )@@G@@PTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@C LM )@@G@@@A@[@@C NOISE AND DISTORTION ANALYSES @[@[@@C @A@[@@ 400 IF (NALN )@@G@@NDD.EQ.0) GO TO 410 @E@[@@ CALL COPY16(CVALUE(LVN+1),CVALUE(LVNLO )@@G@@CTC+1),NSTOP) @B@[@@ 410 IF (INOISE.NE.0) CALL NOISE(LOCO) @A@[@@LP )@@G@@ IF (NANDD.EQ.0) GO TO 420 @E@[@@ CALL COPY16(CVALUE(LVNCTLQ )@@G@@C+1),CVALUE(LVN+1),NSTOP) @B@[@@ 420 IF (IDIST.NE.0) CALL DISTO(LOCLR )@@G@@O) @[@[@@C @^@[@@C INCREMENT FREQUENCY @[@[@@C @B@[@@ 500 LS )@@G@@IF (ICALC.GE.JACFLG) GO TO 1000 @A@[@@ IF (IDFREQ.GE.3) GO TO 5LT )@@G@@10 @^@[@@ FREQ=FREQ*FINCR @#@[@@ GO TO 100 @^@[@@ 510 LU )@@G@@FREQ=FREQ+FINCR @#@[@@ GO TO 100 @[@[@@C @^@[@@C POLE/ZEROLV )@@G@@ ANALYSIS @[@[@@C @#@[@@ 600 CALL PZAN @#@[@@ GO TO 1000 LW )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @^@[@@ 900 WRITE (6,901) LX )@@G@@@G@[@@ 901 FORMAT(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... ANALYSIS STOPLY )@@G@@PED^/)@]@[@@ NOGO=1@A@[@@ 1000 IF (JPZFLG.EQ.0) GO TO 1010 @A@[@@LZ )@@G@@ IF (MODAC.NE.3) GO TO 1020 @ @[@@ 1010 CALL CLRMEM(LVNIM1) MA )@@G@@@^@[@@ CALL CLRMEM(LX0) @^@[@@ 1020 CALL CLRMEM(LVNC) @ @[@@ MB )@@G@@CALL CLRMEM(NDIAGC) @B@[@@ IF (MEMPTR(LD0)) CALL CLRMEM(LD0) MC )@@G@@@B@[@@ IF (MEMPTR(LD1)) CALL CLRMEM(LD1) @C@[@@ IF (MEMPTR(LMD )@@G@@VNCT)) CALL CLRMEM(LVNCT) @[@[@@C @[@[@@C @^@[@@ CALL SME )@@G@@ECOND(T2) @A@[@@ RSTATS(7)=RSTATS(7)+T2-T1 @A@[@@ RSTATSMF )@@G@@(8)=RSTATS(8)+ICALC @]@[@@ RETURN@]@[@@ END @^@[@@ MG )@@G@@SUBROUTINE PZAN @[@[@@C @D@[@@C THIS ROUTINE DRIVES THE POLE/MH )@@G@@ZERO COMPUTATION. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,MI )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOMJ )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NMK )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISML )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0MM )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5MN )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELMO )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METMP )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@MQ )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, MR )@@G@@@F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, MS )@@G@@@F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), MT )@@G@@@#@[@@ 3 IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ MU )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE MV )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ DIMENSMW )@@G@@ION APZTIT(4) @G@[@@ DATA APZTIT / 8HPOLE/ZER, 8HO ANALYS, 8HISMX )@@G@@ , 8H / @[@[@@C @[@[@@C @A@[@@ IF (MODAC.EQMY )@@G@@.3) GO TO 400 @A@[@@ CALL TITLE(0,72,1,APZTIT) @[@[@@C MZ )@@G@@@#@[@@C POLE ANALYSIS @[@[@@C @ @[@@ CALL GETMEM(LPOL,0) NA )@@G@@@ @[@@ GO TO (110,120), JPZTYP @ @[@@ 110 CALL MULLER(LPOL,XD,0) NB )@@G@@@#@[@@ GO TO 200 @ @[@@ 120 CALL PZADJ(LPOL,XD,0) @[@[@@C NC )@@G@@@#@[@@C PRINT POLES @[@[@@C @ @[@@ 200 CALL SIZMEM(LPOL,NPOL) ND )@@G@@@ @[@@ IF (NPOL.EQ.0) GO TO 220@^@[@@ WRITE (6,206) @F@[@@NE )@@G@@ 206 FORMAT(^0 POLES (RAD/SEC)^,/,^0 REAL^,11X,^IMAG^,/)@#@[@@NF )@@G@@ NPOL=NPOL/2 @^@[@@ IPOL=(LPOL+1)/2 @C@[@@ WRITE (6,211NG )@@G@@) (CVALUE(IPOL+I),I=1,NPOL) @ @[@@ 211 FORMAT(1PE14.6,E15.6) @#@[@@NH )@@G@@ GO TO 230 @^@[@@ 220 WRITE (6,221) @A@[@@ 221 FORMAT(^0NO NI )@@G@@POLES FOUND^) @#@[@@ 230 GO TO 1000 @[@[@@C @#@[@@C ZERO ANALNJ )@@G@@YSIS @[@[@@C @ @[@@ 400 CALL GETMEM(LZER,0) @ @[@@ GO TO NK )@@G@@(410,420), JPZTYP @ @[@@ 410 CALL MULLER(LZER,XN,1) @#@[@@ GO TO NL )@@G@@500 @ @[@@ 420 CALL PZADJ(LZER,XN,1) @[@[@@C @#@[@@C PRINT ZERNM )@@G@@OS @[@[@@C @ @[@@ 500 CALL SIZMEM(LZER,NZER) @ @[@@ IF (NZNN )@@G@@ER.EQ.0) GO TO 520@^@[@@ WRITE (6,506) @F@[@@ 506 FORMAT(^0 NO )@@G@@ ZEROS (RAD/SEC)^,/,^0 REAL^,11X,^IMAG^,/)@#@[@@ NZER=NZER/2 NP )@@G@@@^@[@@ IZER=(LZER+1)/2 @C@[@@ WRITE (6,211) (CVALUE(IZER+I),NQ )@@G@@I=1,NZER) @#@[@@ GO TO 600 @^@[@@ 520 WRITE (6,521) @A@[@@NR )@@G@@ 521 FORMAT(^0NO ZEROS FOUND^) @[@[@@C @A@[@@C COMPUTE AND PRINS )@@G@@NT POLE/ZERO CHECK@[@[@@C @#@[@@ 600 CONTINUE @^@[@@ CALL CNT )@@G@@LRMEM(LPOL) @^@[@@ CALL CLRMEM(LZER) @[@[@@C @]@[@@C FINISHED NU )@@G@@@[@[@@C @]@[@@ 1000 RETURN@]@[@@ END @B@[@@ SUBROUTINE MNV )@@G@@ULLER(LROOT,XCOEF,IFLAG)@[@[@@C @G@[@@C THIS SUBROUTINE USES THNW )@@G@@E MULLER ALGORITHM TO FIND THE ROOTS OF @ @[@@C THE NETWORK DETERMINANNX )@@G@@T. @[@[@@C @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNONY )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMNZ )@@G@@VS @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTOA )@@G@@IM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,OB )@@G@@NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLOC )@@G@@TZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EOD )@@G@@PS0,EPSSIL,EPSOX @A@[@@ COMMON /DEBUG/ IDEBUG(20) @G@[@@ OE )@@G@@COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,@G@[@@OF )@@G@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPU, OG )@@G@@@C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @ @[@@ COMMONOH )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALOI )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C OJ )@@G@@@[@[@@C @^@[@@ DIMENSION ANAL(2) @ @[@@ COMPLEX X,X0,X1,X2OK )@@G@@,X3 @A@[@@ COMPLEX FX,FX0,FX1,FX2,FX3 @C@[@@ COMPLEX DX,DOL )@@G@@X0X1,DX1X2,XLAMB,DELTA,A,B,C @A@[@@ COMPLEX DROOT,DENOM,DENOM1 OM )@@G@@@ @[@@ COMPLEX TMP1,TMP2,TMP3 @[@[@@C @A@[@@ DATA ANAL / ON )@@G@@4HPOLE, 4HZERO / @[@[@@C @[@[@@C @#@[@@ XMAX=1.0E20 @#@[@@OO )@@G@@ PZTOL=1.0E-6@#@[@@ PZABS=1.0E-6@#@[@@ NMAX=50 @[@[@@OP )@@G@@C @[@[@@C @#@[@@ NROOT=0 @#@[@@ NPASS=1 @[@[@@OQ )@@G@@C @A@[@@C INITIALIZE INTERATION PROCESS @[@[@@C @^@[@@ 100 OR )@@G@@X2=(+1.763E-3,0.0)@^@[@@ X1=(-1.391E-5,0.0)@^@[@@ X0=(-1.271E0OS )@@G@@0,0.0)@C@[@@ 150 CALL CALDET(X2,FX2,LROOT,NROOT,IFLAG) @C@[@@ OT )@@G@@CALL CALDET(X1,FX1,LROOT,NROOT,IFLAG) @C@[@@ CALL CALDET(X0,FX0OU )@@G@@,LROOT,NROOT,IFLAG) @]@[@@ 170 ITR=3 @F@[@@ 175 IF ((CABS(FX0-FX2)OV )@@G@@+CABS(FX0-FX1)).GE.PZTOL*ABS(REAL(FX0))) @#@[@@ 1 GO TO 200@#@[@@OW )@@G@@ X3=100.0*X0 @C@[@@ CALL CALDET(X3,FX3,LROOT,NROOT,IFLAG) OX )@@G@@@F@[@@ IF ((CABS(FX0-FX3)+CABS(FX0-FX1)).LT.PZTOL*ABS(REAL(FX0))) OY )@@G@@@^@[@@ 1 GO TO 1000 @[@[@@C @E@[@@C COMPUTE INTERPOLATIONOZ )@@G@@ POLYNOMIAL COEFFICIENTS A, B, AND C@[@[@@C @B@[@@ 200 IF (NROOT.GTPA )@@G@@.NUMNOD) GO TO 1000 @#@[@@ DX0X1=X0-X1 @#@[@@ DX1X2=X1-X2 PB )@@G@@@^@[@@ XLAMB=DX0X1/DX1X2 @^@[@@ DELTA=1.0+XLAMB @[@[@@C PC )@@G@@@ @[@@ TMP1=FX2*XLAMB*XLAMB @^@[@@ TMP2=FX1*DELTA @^@[@@PD )@@G@@ TMP3=FX0*XLAMB @[@[@@C @ @[@@ A=TMP1-TMP2*XLAMB+TMP3 PE )@@G@@@A@[@@ B=TMP1-(TMP2-FX0)*DELTA+TMP3 @#@[@@ C=FX0*DELTA @G@[@@PF )@@G@@C************************* DIAGNOSTIC WRITE ************************ PG )@@G@@@ @[@@ IF (IDEBUG(3).GT.0) @ @[@@ 1 WRITE (6,994) A,B,C PH )@@G@@@D@[@@ 994 FORMAT(^ *DEBUG*: MULLER: A,B,C = ^,1P6E15.6) @G@[@@C*****PI )@@G@@************************************************************** @[@[@@PJ )@@G@@C @A@[@@C FIND SMALLEST ZERO OF POLYNOMIAL @[@[@@C @ @[@@ PK )@@G@@DROOT=CSQRT(B*B-4.0*A*C)@^@[@@ DENOM=B+DROOT @^@[@@ DENOM1PL )@@G@@=B-DROOT @D@[@@ IF (CABS(DENOM1).GT.CABS(DENOM)) DENOM=DENOM1 PM )@@G@@@[@[@@C @G@[@@C************************* DIAGNOSTIC WRITE **********PN )@@G@@************** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@ 1 WRIPO )@@G@@TE (6,995) DENOM,DX0X1 @E@[@@ 995 FORMAT(^ *DEBUG*: MULLER: DENOM, DPP )@@G@@X0X1 = ^,1P4E15.6)@G@[@@C***********************************************PQ )@@G@@******************** @^@[@@ XLAMB=-2.0*C/DENOM@^@[@@ DX=XLAPR )@@G@@MB*DX0X1 @#@[@@ X=X0+DX @F@[@@C********************** DIAGNOPS )@@G@@STIC WRITE *********************** @ @[@@ IF (IDEBUG(3).GT.0) PT )@@G@@@ @[@@ 1 WRITE (6,991) X0,DX,X@E@[@@ 991 FORMAT(^ *DEBUG*: MULLEPU )@@G@@R: X0,DX,X = ^,1P6E15.6) @F@[@@C***********************************PV )@@G@@**************************** @[@[@@C @^@[@@C CONVERGENCE TESTS PW )@@G@@@[@[@@C @B@[@@ XMAG=ABS(REAL(X))+ABS(AIMAG(X)) @A@[@@ PX )@@G@@IF (XMAG.GE.XMAX) GO TO 800 @B@[@@ DXMAG=ABS(REAL(DX))+ABS(AIMAG(PY )@@G@@DX)) @D@[@@ IF (DXMAG.LE.PZTOL*AMAX1(XMAG,PZABS)) GO TO 300 @[@[@@PZ )@@G@@C @B@[@@C NO CONVERGENCE -- CONTINUE TO ITERATE @[@[@@C @A@[@@QA )@@G@@ IF (ITR.GE.NMAX) GO TO 910 @#@[@@ ITR=ITR+1 @B@[@@ QB )@@G@@CALL CALDET(X,FX,LROOT,NROOT,IFLAG) @#@[@@ FX2=FX1 @]@[@@ QC )@@G@@X2=X1 @#@[@@ FX1=FX0 @]@[@@ X1=X0 @]@[@@ FX0=FX@]@[@@QD )@@G@@ X0=X @#@[@@ GO TO 175 @[@[@@C @B@[@@C CONVERGED TO A QE )@@G@@ROOT -- STORE IT AWAY @[@[@@C @#@[@@ 300 XR=REAL(X) @#@[@@ QF )@@G@@XI=AIMAG(X) @B@[@@ IF (ABS(XI).LE.PZTOL*ABS(XR)) XI=0.0@B@[@@ QG )@@G@@IF (ABS(XR).LE.PZTOL*ABS(XI)) XR=0.0@^@[@@ NROOT=NROOT+1 @ @[@@QH )@@G@@ CALL EXTMEM(LROOT,2) @^@[@@ LOC=(LROOT+1)/2 @A@[@@ QI )@@G@@CVALUE(LOC+NROOT)=CMPLX(XR,XI)@F@[@@C********************** DIAGNOSTIC WQJ )@@G@@RITE *********************** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@QK )@@G@@ 1 WRITE (6,992) NROOT,XR,XI @F@[@@ 992 FORMAT(^ *DEBUG*: MULLEQL )@@G@@R: NROOT,XR,XI = ^,I4,1P2E15.6) @F@[@@C*****************************QM )@@G@@********************************** @[@[@@C @B@[@@C ADD ANOTHER CONQN )@@G@@JUGATE ROOT IF (XI.NE.0)@[@[@@C @ @[@@ IF (XI.EQ.0.0) GO TO 400QO )@@G@@@]@[@@ XI=-XI@^@[@@ NROOT=NROOT+1 @ @[@@ CALL EXTMEM(QP )@@G@@LROOT,2) @^@[@@ LOC=(LROOT+1)/2 @A@[@@ CVALUE(LOC+NROOT)=QQ )@@G@@CMPLX(XR,XI)@F@[@@C********************** DIAGNOSTIC WRITE *************QR )@@G@@********** @ @[@@ IF (IDEBUG(3).GT.0) @A@[@@ 1 WRITE (6,QS )@@G@@993) NROOT,XR,XI @F@[@@ 993 FORMAT(^ *DEBUG*: MULLER: NROOT,XR,XI = QT )@@G@@^,I4,1P2E15.6) @F@[@@C***********************************************QU )@@G@@**************** @[@[@@C @ @[@@C GO AFTER THE NEXT ROOT @[@[@@QV )@@G@@C @^@[@@ 400 FX2=FX2/(X2-X) @^@[@@ FX1=FX1/(X1-X) @^@[@@QW )@@G@@ FX0=FX0/(X0-X) @[@[@@C @^@[@@C CHECK CPU TIME LIMIT @[@[@@QX )@@G@@C @#@[@@ CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1QY )@@G@@000) GO TO 920 @#@[@@ GO TO 170 @[@[@@C @D@[@@C MAXIMUM MQZ )@@G@@AGNITUDE EXCEEDED -- TRY LOOP ONCE MORE @[@[@@C @A@[@@ 800 IF (NPRA )@@G@@ASS.GE.2) GO TO 900 @^@[@@ NPASS=NPASS+1 @#@[@@ GO TO RB )@@G@@100 @[@[@@C @]@[@@C ERRORS @[@[@@C @B@[@@ 900 WRITE (6,901RC )@@G@@) ANAL(IFLAG+1),XMAX @F@[@@ 901 FORMAT(^0WARNING: ^,A4,^ ANALYSIS SRD )@@G@@TOPPED -- MAG(X) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ GO TO RE )@@G@@1000 @B@[@@ 910 WRITE (6,911) ANAL(IFLAG+1),NMAX @F@[@@ 911 FORMATRF )@@G@@(^0WARNING: ^,A4,^ ANALYSIS STOPPED -- ITERNO > ^, @#@[@@ 1 I6,RG )@@G@@/) @#@[@@ GO TO 1000 @^@[@@ 920 WRITE (6,921) @G@[@@ 921 RH )@@G@@FORMAT(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... POLE/ZERO ANALYSIS^@^@[@@RI )@@G@@ 1 ,^ STOPPED^/) @]@[@@ NOGO=1@[@[@@C @]@[@@C FINISHED RJ )@@G@@@[@[@@C @^@[@@ 1000 XCOEF=REAL(FX0) @]@[@@ RETURN@]@[@@ RK )@@G@@END @B@[@@ SUBROUTINE PZADJ(LROOT,XCOEFF,IFLAG)@[@[@@C @F@[@@RL )@@G@@C THIS SUBROUTINE USES THE ADJOINT NETOWRK ALGORITHM TO FIND @B@[@@RM )@@G@@C THE ROOTS OF THE NETWORK DETERMINANT. @[@[@@C @G@[@@ COMMONRN )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1RO )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@RP )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, RQ )@@G@@@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVRR )@@G@@NIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDRS )@@G@@0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDRT )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUTRU )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /FLAGS/ IPRNTA,IPRV )@@G@@RNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,IRW )@@G@@TL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /AC/ FSTARTRX )@@G@@,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NORY )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZRZ )@@G@@ITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)SA )@@G@@@A@[@@ COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALSB )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@SC )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C SD )@@G@@@ @[@@ COMPLEX S1,S2,F1,F2 @#@[@@ COMPLEX POLE@E@[@@ SE )@@G@@COMPLEX SPARM,SOLD1,SOLD2,ZERO,DERIV,FNORM,FOLD1,FOLD2@^@[@@ DIMENSSF )@@G@@ION S(2) @C@[@@ EQUIVALENCE (S(1),SPARM),(S(2),SIMAG) @[@[@@SG )@@G@@C @A@[@@C INITIALIZE FOR ITERATION @[@[@@C @#@[@@ SH )@@G@@NROOT=0 @]@[@@ ITER=0@#@[@@ IMAX=50 @#@[@@ FTOL=1SI )@@G@@.0E-10@#@[@@ ETOL=1.0E-10@#@[@@ SMAX=1.0E20 @ @[@@ SOLD1=SJ )@@G@@(-3.14159,0.0) @ @[@@ SOLD2=(-8.765E-5,0.0) @ @[@@ SPARM=SK )@@G@@(1.234E-3,0.0) @[@[@@C @C@[@@C CHECK IF THERE ARE ANY POLES SL )@@G@@OR ZEROS @[@[@@C @C@[@@ CALL CALDET (SOLD1,FOLD1,LROOT,0,IFLSM )@@G@@AG) @C@[@@ CALL CALDET (SOLD2,FOLD2,LROOT,0,IFLAG) @C@[@@ SN )@@G@@CALL CALDET (SPARM,FNORM,LROOT,0,IFLAG) @F@[@@ IF ( (CABS(FOLD1-FSO )@@G@@OLD2)+CABS(FOLD2-FNORM)).GT.ETOL) GO TO 5 @^@[@@ SOLD1=SOLD1*1.0E2 SP )@@G@@@C@[@@ CALL CALDET (SOLD1,FOLD1,LROOT,0,IFLAG) @G@[@@ IF ( (SQ )@@G@@CABS(FOLD1-FOLD2)+CABS(FOLD2-FNORM)).LE.ETOL) GO TO 3400 @A@[@@ 5 SR )@@G@@IF (IFLAG.EQ.0) GO TO 2000 @[@[@@C @#@[@@C ZERO ANALYSIS @[@[@@SS )@@G@@C @A@[@@ CALL GETMEM (NORM,NSTOP+NSTOP)@[@[@@C @D@[@@C LOAST )@@G@@D Y-MATRIX AND SOLVE FOR THE NOMINAL V-VECTOR @[@[@@C @ @[@@ 30 SU )@@G@@CALL PZLOAD (SPARM) @#@[@@ CALL ACDCMP @#@[@@ CALL ACSOL SV )@@G@@@ @[@@ CVALUE(LVN+1)=(0.0,0.0) @ @[@@ IF (IGOOF.EQ.0) GO TO 38SW )@@G@@@^@[@@ WRITE (6,35) IGOOF@F@[@@ 35 FORMAT(^0WARNING: UNDERFLOW ^SX )@@G@@,I4,^ TIME(S) IN POLE/ZERO ^, @^@[@@ 1 ^ANALYSIS^) @#@[@@ SY )@@G@@IGOOF=0 @[@[@@C @ @[@@C STORE NORMINAL V-VECTOR@[@[@@C SZ )@@G@@@^@[@@ 38 LVNM=(NORM+1)/2 @D@[@@ CALL COPY16 (CVALUE(LVN+1),CVATA )@@G@@LUE(LVNM+1),NSTOP)@[@[@@C @E@[@@C PREPARE THE EXCITATION VECTORTB )@@G@@ FOR ADJOINT MATRIX @[@[@@C @B@[@@ CALL ZERO16 (CVALUE(LVN+TC )@@G@@1),NSTOP) @ @[@@ KFLAG=NODPLC(IPZOUT+5) @ @[@@ IF (KFLAG.EQTD )@@G@@.0) GO TO 40@[@[@@C @^@[@@C CURRENT OUTPUT @[@[@@C @ @[@@TE )@@G@@ IPTR=NODPLC(IPZOUT+2) @^@[@@ IBR=NODPLC(IPTR+6)@ @[@@ TF )@@G@@CVALUE(LVN+IBR)=+1.0 @#@[@@ GO TO 50 @[@[@@C @^@[@@C TG )@@G@@ VOLTAGE OUTPUT @[@[@@C @ @[@@ 40 NODE1=NODPLC(IPZOUT+2) @ @[@@TH )@@G@@ NODE2=NODPLC(IPZOUT+3) @ @[@@ CVALUE(LVN+NODE1)=-1.0 @ @[@@TI )@@G@@ CVALUE(LVN+NODE2)=+1.0 @[@[@@C @B@[@@C SOLVE V-VECTOR FOTJ )@@G@@R ADJOINT NETWORK @[@[@@C @#@[@@ 50 CALL ACASOL @ @[@@ CVALUETK )@@G@@(LVN+1)=(0.0,0.0) @ @[@@ IF (IGOOF.EQ.0) GO TO 60@^@[@@ WRITE(TL )@@G@@6,35) IGOOF @#@[@@ IGOOF=0 @[@[@@C @F@[@@C CALCULATE TTM )@@G@@HE DERIVATIVE WITH RESPECT TO THE S-PARAMETER @[@[@@C @^@[@@ 60 TN )@@G@@DERIV=(0.0,0.0) @[@[@@C @#@[@@C CAPACITANCE@[@[@@C @^@[@@TO )@@G@@ LOC=LOCATE(2) @ @[@@ 110 IF (LOC.EQ.0) GO TO 200 @^@[@@ TP )@@G@@LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=TQ )@@G@@NODPLC(LOC+3) @G@[@@ DERIV=DERIV+VALUE(LOCV+1)*(CVALUE(LVN+NODETR )@@G@@1)-CVALUE(LVN+NODE2)) @D@[@@ 1 *(CVALUE(LVNM+NODE1)-CVALUE(LVNM+TS )@@G@@NODE2)) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 110 @[@[@@TT )@@G@@C @#@[@@C INDUCTORS @[@[@@C @^@[@@ 200 LOC=LOCATE(3) TU )@@G@@@ @[@@ 210 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@TV )@@G@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @G@[@@TW )@@G@@ DERIV=DERIV+VALUE(LOCV+1)*(CVALUE(LVN+NODE1)-CVALUE(LVN+NODE2)) TX )@@G@@@D@[@@ 1 *(CVALUE(LVNM+NODE1)-CVALUE(LVNM+NODE2)) @^@[@@ TY )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @^@[@@C MUTUATZ )@@G@@L INDUCTORS @[@[@@C @^@[@@ 300 LOC=LOCATE(4) @ @[@@ 310 IF (LOUA )@@G@@C.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ LOC1=NODPLC(UB )@@G@@LOC+2)@ @[@@ NODE11=NODPLC(LOC1+2) @ @[@@ NODE12=NODPLC(LOC1UC )@@G@@+3) @^@[@@ LOC2=NODPLC(LOC+3)@ @[@@ NODE21=NODPLC(LOC2+2) UD )@@G@@@ @[@@ NODE22=NODPLC(LOC2+3) @^@[@@ VALM=VALUE(LOCV+1)@F@[@@UE )@@G@@ DERIV=DERIV+VALM*(CVALUE(LVN+NODE11)-CVALUE(LVN+NODE12)) @D@[@@UF )@@G@@ 1 *(CVALUE(LVNM+NODE11)-CVALUE(LVNM+NODE12)) @F@[@@ DERIV=UG )@@G@@DERIV+VALM*(CVALUE(LVN+NODE21)-CVALUE(LVN+NODE22)) @D@[@@ 1 *(CUH )@@G@@VALUE(LVNM+NODE21)-CVALUE(LVNM+NODE22)) @^@[@@ LOC=NODPLC(LOC) UI )@@G@@@#@[@@ GO TO 310 @[@[@@C @#@[@@C DIODES @[@[@@C UJ )@@G@@@^@[@@ 400 LOC=LOCATE(11) @ @[@@ 410 IF (LOC.EQ.0) GO TO 500 @ @[@@UK )@@G@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@ NODEN=NODPLC(LOC+3) @ @[@@UL )@@G@@ NODEP=NODPLC(LOC+4) @G@[@@ DERIV=DERIV+VALUE(LOCT+4)*(CVAUM )@@G@@LUE(LVN+NODEP)-CVALUE(LVN+NODEN)) @D@[@@ 1 *(CVALUE(LVNM+NODEP)-UN )@@G@@CVALUE(LVNM+NODEN)) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO UO )@@G@@410 @[@[@@C @]@[@@C BJT @[@[@@C @^@[@@ 500 LOC=LOCATE(1UP )@@G@@2) @ @[@@ 510 IF (LOC.EQ.0) GO TO 600 @ @[@@ LOCT=LX0+NODPLC(LOUQ )@@G@@C+22) @^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ NODEC=NODPLC(LOC+5) UR )@@G@@@ @[@@ NODEB=NODPLC(LOC+6) @ @[@@ NODEE=NODPLC(LOC+7) US )@@G@@@G@[@@ DERIV=DERIV+VALUE(LOCT+9)*(CVALUE(LVN+NODEB)-CVALUE(LVN+NODEUT )@@G@@E)) @D@[@@ 1 *(CVALUE(LVNM+NODEB)-CVALUE(LVNM+NODEE)) @G@[@@UU )@@G@@ DERIV=DERIV+VALUE(LOCT+11)*(CVALUE(LVN+NODEB)-CVALUE(LVN+NODEC)) UV )@@G@@@D@[@@ 1 *(CVALUE(LVNM+NODEB)-CVALUE(LVNM+NODEC)) @G@[@@ UW )@@G@@DERIV=DERIV+VALUE(LOCM+17)*CVALUE(LVN+NODEC)*CVALUE(LVN+NODEC) @^@[@@UX )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 510 @[@[@@C @]@[@@C UY )@@G@@ JFET @[@[@@C @^@[@@ 600 LOC=LOCATE(13) @ @[@@ 610 IF (LOC.EQ.0UZ )@@G@@) GO TO 700 @ @[@@ LOCT=LX0+NODPLC(LOC+19) @ @[@@ NODEG=NODPLCVA )@@G@@(LOC+3) @ @[@@ NODED=NODPLC(LOC+5) @ @[@@ NODES=NODPLCVB )@@G@@(LOC+6) @G@[@@ DERIV=DERIV+VALUE(LOCT+9)*(CVALUE(LVN+NODEG)-CVAVC )@@G@@LUE(LVN+NODES)) @D@[@@ 1 *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODES)VD )@@G@@) @G@[@@ DERIV=DERIV+VALUE(LOCT+11)*(CVALUE(LVN+NODEG)-CVALUE(LVE )@@G@@VN+NODED)) @D@[@@ 1 *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODED)) VF )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 610 @[@[@@C @#@[@@VG )@@G@@C MOSFET @[@[@@C @^@[@@ 700 LOC=LOCATE(14) @ @[@@ 710 VH )@@G@@IF (LOC.EQ.0) GO TO 750 @ @[@@ LOCT=LX0+NODPLC(LOC+26) @ @[@@ VI )@@G@@NODEG=NODPLC(LOC+3) @ @[@@ NODEB=NODPLC(LOC+5) @ @[@@ VJ )@@G@@NODED=NODPLC(LOC+6) @ @[@@ NODES=NODPLC(LOC+7) @G@[@@ VK )@@G@@DERIV=DERIV+VALUE(LOCT+16)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODES)) @D@[@@VL )@@G@@ 1 *(CVALUE(LVNM+NODEG)-CVALUE(LVNM+NODES)) @G@[@@ DERIV=VM )@@G@@DERIV+VALUE(LOCT+18)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODED)) @C@[@@ 1VN )@@G@@ *(CVALUE(LVNM+NODEG)-CVALUE(LVN+NODED))@G@[@@ DERIV=DERIV+VALUE(VO )@@G@@LOCT+20)*(CVALUE(LVN+NODEG)-CVALUE(LVN+NODEB)) @D@[@@ 1 *(CVALUE(VP )@@G@@LVNM+NODEG)-CVALUE(LVNM+NODEB)) @G@[@@ DERIV=DERIV+VALUE(LOCT+1VQ )@@G@@2)*(CVALUE(LVN+NODEB)-CVALUE(LVN+NODED)) @D@[@@ 1 *(CVALUE(LVNM+NVR )@@G@@ODEB)-CVALUE(LVNM+NODED)) @G@[@@ DERIV=DERIV+VALUE(LOCT+14)*(CVVS )@@G@@ALUE(LVN+NODEB)-CVALUE(LVN+NODES)) @D@[@@ 1 *(CVALUE(LVNM+NODEB)-VT )@@G@@CVALUE(LVNM+NODES)) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO VU )@@G@@710 @[@[@@C @A@[@@C FORMULATE THE TRANSFER FUNCTION @[@[@@C VV )@@G@@@ @[@@ 750 CALL SIZMEM(LPOL,NPOLE) @A@[@@ IF (NPOLE.EQ.0) GO TO 80VW )@@G@@0 @^@[@@ NPOLE=NPOLE/2 @^@[@@ LOCP=(LPOL+1)/2 @^@[@@VX )@@G@@ DO 790 I=1,NPOLE @ @[@@ POLE=CVALUE(LOCP+I) @G@[@@ VY )@@G@@IF ((REAL(SPARM).EQ.REAL(POLE)).AND.(AIMAG(SPARM).EQ.AIMAG(POLE)))@^@[@@VZ )@@G@@ 1 GO TO 1200 @ @[@@ FNORM=FNORM/(SPARM-POLE)@#@[@@ 790 WA )@@G@@CONTINUE @[@[@@C @F@[@@C NORMALIZE THE TRANSFER FUNCTION ANDWB )@@G@@ DERIVATIVE BY THE ZEROS@[@[@@C @A@[@@ 800 IF (NROOT.EQ.0) GO TO 90WC )@@G@@0 @^@[@@ LOCR=(LROOT+1)/2 @^@[@@ DO 850 I=1,NROOT @ @[@@WD )@@G@@ ZERO=CVALUE(LOCR+I) @A@[@@ IF (SPARM.EQ.ZERO) GO TO 1100 WE )@@G@@@ @[@@ FNORM=FNORM/(SPARM-ZERO)@B@[@@ 850 DERIV=(DERIV-FNORM)/(SPAWF )@@G@@RM-ZERO) @[@[@@C @^@[@@C CHECK CONVERGENCE@[@[@@C @B@[@@WG )@@G@@ 900 IF (CABS(FNORM).LE.FTOL) GO TO 1100 @[@[@@C @A@[@@C EXTRAWH )@@G@@POLATE NEXT S-PARAMETER @[@[@@C @^@[@@ 1000 SERROR=FNORM/DERIV@^@[@@WI )@@G@@ SPARM=SPARM-SERROR@F@[@@C************************* DIAGNOSTIC WRITWJ )@@G@@E **********************@ @[@@ IF (IDEBUG(4).GT.0) @C@[@@ 1WK )@@G@@ WRITE (6,9901) ITER,SPARM,SERROR,FNORM @F@[@@ 9901 FORMAT(^ *DEBUG*: WL )@@G@@ PZADJ: ITER, SPARM, SERROR, FNORM = ^,/,@^@[@@ 1 1X,I4,1P6E15.6)WM )@@G@@@F@[@@C*****************************************************************WN )@@G@@@#@[@@ ITER=ITER+1 @B@[@@ IF (CABS(SPARM).GT.SMAX) GO TO 1010 WO )@@G@@@A@[@@ IF (ITER.LT.IMAX) GO TO 30 @ @[@@ WRITE (6,1005) ITEWP )@@G@@R @F@[@@ 1005 FORMAT(^0WARNING: NO CONVERGENCE IN ZERO ANALYSIS AFTWQ )@@G@@ER ^, @ @[@@ 1 I4,^ ITERATIONS^,/) @#@[@@ GO TO 3400 @ @[@@WR )@@G@@ 1010 WRITE (6,1015) SMAX @F@[@@ 1015 FORMAT(^0WARNING: ZERO ANALYSWS )@@G@@IS STOPPED -- MAG(S) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ WT )@@G@@GO TO 3400 @[@[@@C @#@[@@C ZERO FOUND @[@[@@C @^@[@@ 1100 WU )@@G@@NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ LOCR=(WV )@@G@@LROOT+1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@[@[@@C @D@[@@C WW )@@G@@ NORMALIZE THE REFERENCE TRANSFER FUNCTIONS @[@[@@C @A@[@@ WX )@@G@@FOLD1=FOLD1/(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) WY )@@G@@@[@[@@C @B@[@@C TAKE THE CONJUGATE OF COMPLEX ROOT @[@[@@C WZ )@@G@@@A@[@@ IF (SIMAG.EQ.0) GO TO 1200 @#@[@@ SIMAG=-SIMAG@^@[@@XA )@@G@@ NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ XB )@@G@@LOCR=(LROOT+1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@A@[@@ FOLD1=XC )@@G@@FOLD1/(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) @[@[@@XD )@@G@@C @ @[@@C CHECK FOR FURTHER ZEROS@[@[@@C @C@[@@ 1200 IF (CAXE )@@G@@BS(FOLD1-FOLD2).LT.ETOL) GO TO 1400 @[@[@@C @C@[@@C EXTRAPOLATEXF )@@G@@ S-PARAMETER FOR NEW ZEROS @[@[@@C @^@[@@ SPARM=SPARM*10.0 XG )@@G@@@]@[@@ ITER=0@#@[@@ GO TO 30 @[@[@@C @#@[@@C FINISXH )@@G@@HED @[@[@@C @#@[@@ 1400 CONTINUE @[@[@@C @ @[@@C RELEASE UXI )@@G@@NNEEDED MEMORY @[@[@@C @^@[@@ CALL CLRMEM(NORM) @#@[@@ XJ )@@G@@GO TO 3400 @[@[@@C @D@[@@C POLE ANALYSIS : USE SECANT ITERATIOXK )@@G@@N METHOD @[@[@@C @#@[@@ 2000 S1=SOLD1 @#@[@@ F1=FOLD1 XL )@@G@@@#@[@@ S2=SOLD2 @#@[@@ F2=FOLD2 @ @[@@ DERIV=(F2-F1XM )@@G@@)/(S2-S1) @^@[@@ SPARM=S2-F2/DERIV @D@[@@ 2010 CALL CALDET (SPARMXN )@@G@@,FNORM,LROOT,NROOT,IFLAG) @A@[@@ DERIV=(FNORM-F2)/(SPARM-S2) XO )@@G@@@[@[@@C @^@[@@C CHECK CONVERGENCE@[@[@@C @ @[@@ SERRORXP )@@G@@ = FNORM/DERIV @B@[@@ IF ( CABS(FNORM).LE.FTOL) GO TO 3100@[@[@@XQ )@@G@@C @A@[@@C EXTRAPOLATE NEXT S-PARAMETER @[@[@@C @F@[@@C*****XR )@@G@@******************** DIAGNOSTIC WRITE **********************@ @[@@ XS )@@G@@IF (IDEBUG(4).GT.0) @C@[@@ 1 WRITE (6,9902) ITER,SPARM,FNORM,DXT )@@G@@ERIV @F@[@@ 9902 FORMAT(^ *DEBUG*: PZADJ: ITER, SPARM, FNORM, DERIV =XU )@@G@@ ^,/, @^@[@@ 1 1X,I4,1P6E15.6)@F@[@@C*****************************XV )@@G@@************************************@]@[@@ 3000 S1=S2 @]@[@@ F1=F2 XW )@@G@@@#@[@@ S2=SPARM @#@[@@ F2=FNORM @ @[@@ SPARM=SPARM-XX )@@G@@FNORM/DERIV @#@[@@ ITER=ITER+1 @B@[@@ IF (CABS(FNORM).LT.FTOL)XY )@@G@@ GO TO 3100 @B@[@@ IF (CABS(SPARM).GT.SMAX) GO TO 3010 @A@[@@ XZ )@@G@@IF (ITER.LT.IMAX) GO TO 2010 @ @[@@ WRITE (6,3005) ITER @F@[@@YA )@@G@@ 3005 FORMAT(^0WARNING: POLE ANALYSIS STOPPED -- ITERATION ^, @A@[@@YB )@@G@@ 1 ^COUNT EXCEEDED ^,I5,/) @#@[@@ GO TO 3400 @ @[@@ 3010 YC )@@G@@WRITE (6,3015) SMAX @F@[@@ 3015 FORMAT(^0WARNING: POLE ANALYSIS STOYD )@@G@@PPED -- MAG(S) > ^, @^@[@@ 1 1PE10.3,/) @#@[@@ GO TO YE )@@G@@3400 @[@[@@C @#@[@@C POLE FOUND @[@[@@C @^@[@@ 3100 NROOT=YF )@@G@@NROOT+1 @ @[@@ CALL EXTMEM(LROOT,2) @^@[@@ LOCR=(LROOT+YG )@@G@@1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARM@[@[@@C @C@[@@C NORMAYH )@@G@@LIZE REFERENCE TRANSFER FUNCTIONS @[@[@@C @A@[@@ FOLD1=FOLD1/YI )@@G@@(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2-SPARM) @^@[@@ YJ )@@G@@F1=F1/(S1-SPARM) @[@[@@C @B@[@@C TAKE THE CONJUGATE OF COMPLEXYK )@@G@@ POLE @[@[@@C @A@[@@ IF (SIMAG.EQ.0) GO TO 3200 @#@[@@ YL )@@G@@SIMAG=-SIMAG@^@[@@ NROOT=NROOT+1 @ @[@@ CALL EXTMEM(LROOT,YM )@@G@@2) @^@[@@ LOCR=(LROOT+1)/2 @ @[@@ CVALUE(LOCR+NROOT)=SPARMYN )@@G@@@A@[@@ FOLD1=FOLD1/(SOLD1-SPARM) @A@[@@ FOLD2=FOLD2/(SOLD2YO )@@G@@-SPARM) @^@[@@ F1=F1/(S1-SPARM) @[@[@@C @ @[@@C CHECKYP )@@G@@ FOR FUTHER POLES @F@[@@ 3200 IF ( (CABS(FOLD1-FOLD2)+CABS(FOLD2-F1)).LTYQ )@@G@@.ETOL )GO TO 3400 @[@[@@C @C@[@@C EXTRAPOLATE S-PARAMETER FOR NYR )@@G@@EW POLE @[@[@@C @ @[@@ 3300 SPARM=SPARM*(-10.0,0.0) @]@[@@ YS )@@G@@ITER=0@#@[@@ GO TO 2010 @[@[@@C @#@[@@C FINISHED @[@[@@YT )@@G@@C @^@[@@ 3400 XCOEFF=REAL(FOLD1)@]@[@@ RETURN@]@[@@ END YU )@@G@@@C@[@@ SUBROUTINE CALDET(X,FX,LROOT,NROOT,IFLAG) @[@[@@C @F@[@@YV )@@G@@C THIS SUBROUTINE CALCULATES THE COMPLEX DETERMINANT AT S=X. @[@[@@YW )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEYX )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IYY )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,YZ )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIZA )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXZB )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER ZC )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NZD )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ ZE )@@G@@COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ZF )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ZG )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, ZH )@@G@@@F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, ZI )@@G@@@F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), ZJ )@@G@@@#@[@@ 3 IPIMAT(4)@A@[@@ COMMON /DEBUG/ IDEBUG(20) @ @[@@ZK )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ ZL )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))ZM )@@G@@@[@[@@C @[@[@@C @^@[@@ COMPLEX X,FX,DET @[@[@@C @#@[@@ZN )@@G@@C LOAD THE MATRIX@[@[@@C @^@[@@ CALL PZLOAD(X) @[@[@@C ZO )@@G@@@C@[@@C IFLAG=1 => ZERO COMPUTATION -- COPY OVER RHS @[@[@@C @A@[@@ZP )@@G@@ IF (IFLAG.EQ.0) GO TO 150 @A@[@@ IF (IPZITP.EQ.10) GO TO ZQ )@@G@@110 @ @[@@ LOCY=LYNL+IPZLOC(1) @^@[@@ CVALUE(LOCY)=1.0 ZR )@@G@@@#@[@@ GO TO 150 @ @[@@ 110 LOCY=LYNL+IPZLOC(1) @^@[@@ ZS )@@G@@CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+IPZLOC(2) @^@[@@ CVALUEZT )@@G@@(LOCY)=+1.0 @[@[@@C @E@[@@C CALCULATE DETERMINANT BY FIRST DOING ANZU )@@G@@ LU DECOMPOSITION @[@[@@C @A@[@@ 150 IF (IDEBUG(6).LE.0) GO TO 200 ZV )@@G@@@ @[@@ CALL DMPMAT(8HCALDET ) @ @[@@ IDEBUG(6)=IDEBUG(6)-1 ZW )@@G@@@#@[@@ 200 IGOOF=0 @#@[@@ CALL ACDCMP @A@[@@ IF (IGOOF.EQZX )@@G@@.0) GO TO 210 @ @[@@ WRITE (6,201) IGOOF @F@[@@ 201 FORMATZY )@@G@@(^0WARNING: UNDERFLOW ^,I4,^ TIME(S) IN POLE/ZERO ^, @^@[@@ 1 ^ANZZ )@@G@@ALYSIS^) @#@[@@ IGOOF=0 @[@[@@C @G@[@@C NOW, THE DETERMAA )@@G@@INANT IS SIMPLY THE PRODUCT OF THE DIAGONAL TERMS @[@[@@C @^@[@@AB )@@G@@ 210 DET=(1.0,0.0) @^@[@@ DO 220 I=2,NSTOP @A@[@@ ISPOT=AC )@@G@@LYNL+NODPLC(IORDER+I) @ @[@@ DET=DET*CVALUE(ISPOT) @#@[@@ 220 AD )@@G@@CONTINUE @G@[@@C*************************************** DIAGNOSTIC WRAE )@@G@@ITE **************@A@[@@ IF (IDEBUG(7).LE.0) GO TO 300 @ @[@@ AF )@@G@@IDEBUG(7)=IDEBUG(7)-1 @^@[@@ DO 260 I=2,NSTOP @A@[@@ ISPOT=AG )@@G@@LYNL+NODPLC(IORDER+I) @B@[@@ WRITE (6,992) I,I,CVALUE(ISPOT) AH )@@G@@@G@[@@ 992 FORMAT(^ *DEBUG*: CALDET - (^,I3,^,^,I3,^) MATRIX ENTRY IN AI )@@G@@U = ^,@#@[@@ 1 1P2E15.6)@#@[@@ 260 CONTINUE @G@[@@C***********AJ )@@G@@************************************************************@[@[@@C AK )@@G@@@A@[@@C DIVIDE OUT ANY PREVIOUS ROOTS @[@[@@C @A@[@@ 300 IF (NRAL )@@G@@OOT.EQ.0) GO TO 400 @^@[@@ LOC=(LROOT+1)/2 @^@[@@ DO 310AM )@@G@@ I=1,NROOT @A@[@@ DET=DET/(X-CVALUE(LOC+I)) @#@[@@ 310 CONTINAN )@@G@@UE @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 400 FX=DET@F@[@@AO )@@G@@C********************** DIAGNOSTIC WRITE *********************** @ @[@@AP )@@G@@ IF (IDEBUG(5).GT.0) @ @[@@ 1 WRITE (6,991) X,FX @D@[@@AQ )@@G@@ 991 FORMAT(^ *DEBUG*: CALDET: X,FX = ^,1P4E15.6) @F@[@@C***********AR )@@G@@**************************************************** @]@[@@ RETURNAS )@@G@@@]@[@@ END @ @[@@ SUBROUTINE PZLOAD(S) @[@[@@C @G@[@@AT )@@G@@C THIS ROUTINE ZEROES-OUT AND THEN LOADS THE COMPLEX COEFFICIENT AU )@@G@@@]@[@@C MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,AV )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOAW )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NAX )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISAY )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0AZ )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5BA )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50BB )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBC )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)BD )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXBE )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONBF )@@G@@ /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1BG )@@G@@ INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2BH )@@G@@ IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3BI )@@G@@ IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPBJ )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOBK )@@G@@DPLC(1),CVALUE(1))@[@[@@C @[@[@@C @F@[@@ COMPLEX CVAL,S,XCEBL )@@G@@Q,XCCS,XCPI,XCMU,XGS,XGD,XCGS,XCGD,XCGB, @#@[@@ 1 XBD,XBS @[@[@@BM )@@G@@C @A@[@@C ZERO Y MATRIX AND CURRENT VECTOR @[@[@@C @D@[@@ BN )@@G@@CALL ZERO16(CVALUE(LVN+1),NSTOP+NSTOP+NUT+NLT) @[@[@@C @]@[@@C RESBO )@@G@@ISTORS@[@[@@C @^@[@@ LOC=LOCATE(1) @ @[@@ 20 IF (LOC.EQ.0BP )@@G@@) GO TO 30 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) BQ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCYBR )@@G@@)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUBS )@@G@@E(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @A@[@@ CVALUE(LOCY)BT )@@G@@=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ CVALUEBU )@@G@@(LOCY)=CVALUE(LOCY)-VAL @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO BV )@@G@@20 @[@[@@C @#@[@@C CAPACITORS @[@[@@C @^@[@@ 30 LOC=LOBW )@@G@@CATE(2) @ @[@@ 40 IF (LOC.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(BX )@@G@@LOC+1)@ @[@@ CVAL=VALUE(LOCV+1)*S @ @[@@ LOCY=LYNL+NODPLC(LBY )@@G@@OC+4) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NOBZ )@@G@@DPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LCA )@@G@@YNL+NODPLC(LOC+5) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@ @[@@ CB )@@G@@LOCY=LYNL+NODPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@^@[@@CC )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDCD )@@G@@UCTORS@[@[@@C @^@[@@ 50 LOC=LOCATE(3) @ @[@@ 60 IF (LOC.EQ.0CE )@@G@@) GO TO 70 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ CVAL=VALUE(LOCV+1)CF )@@G@@*S @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @^@[@@ CVALUE(LOCY)=-CVALCG )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@CH )@@G@@ LOCY=LYNL+NODPLC(LOC+6) @^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ CI )@@G@@LOCY=LYNL+NODPLC(LOC+7) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ LOCY=LCJ )@@G@@YNL+NODPLC(LOC+8) @^@[@@ CVALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LCK )@@G@@OC) @#@[@@ GO TO 60 @[@[@@C @^@[@@C MUTUAL INDUCTORS CL )@@G@@@[@[@@C @^@[@@ 70 LOC=LOCATE(4) @ @[@@ 80 IF (LOC.EQ.0) GO TCM )@@G@@O 90 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ CVAL=VALUE(LOCV+1)*S CN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+4) @^@[@@ CVALUE(LOCY)=-CVAL@ @[@@CO )@@G@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=-CVAL@^@[@@ CP )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@C @C@[@@C NONLINEARCQ )@@G@@ VOLTAGE CONTROLLED CURRENT SOURCES @[@[@@C @^@[@@ 90 LOC=LOCATE(5CR )@@G@@) @ @[@@ 95 IF (LOC.EQ.0) GO TO 100 @^@[@@ NDIM=NODPLC(LOC+4)CS )@@G@@@^@[@@ LMAT=NODPLC(LOC+7)@A@[@@ LOCT=LX0+NODPLC(LOC+12)+2 CT )@@G@@@^@[@@ DO 97 I=1,NDIM @^@[@@ VAL=VALUE(LOCT) @#@[@@ CU )@@G@@LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ CVALUE(LOCY)CV )@@G@@=CVALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ CVALUECW )@@G@@(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@ CX )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@A@[@@CY )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+4 @#@[@@ 97 CZ )@@G@@CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 95 @[@[@@DA )@@G@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@C DB )@@G@@@^@[@@ 100 LOC=LOCATE(6) @ @[@@ 105 IF (LOC.EQ.0) GO TO 110 @^@[@@DC )@@G@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ LOCT=LDD )@@G@@X0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ DE )@@G@@CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ CVALUEDF )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUE(LOCY)DG )@@G@@=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)=-1.0 DH )@@G@@@#@[@@ LMAT=LMAT+4 @^@[@@ DO 107 I=1,NDIM @^@[@@ VAL=VADI )@@G@@LUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)DJ )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LDK )@@G@@MAT+2)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+2 DL )@@G@@@#@[@@ 107 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO DM )@@G@@105 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED CURRENT SOURCES DN )@@G@@@[@[@@C @^@[@@ 110 LOC=LOCATE(7) @ @[@@ 115 IF (LOC.EQ.0) GO TDO )@@G@@O 120 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+7)@A@[@@DP )@@G@@ LOCT=LX0+NODPLC(LOC+12)+2 @^@[@@ DO 117 I=1,NDIM @^@[@@DQ )@@G@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODR )@@G@@DPLC(LMAT+1)@^@[@@ CVALUE(LOCY)=+VAL @ @[@@ LOCY=LYNL+NODPLC(LDS )@@G@@MAT+2)@^@[@@ CVALUE(LOCY)=-VAL @#@[@@ LMAT=LMAT+2 @#@[@@ 117 DT )@@G@@CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 115 @[@[@@DU )@@G@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@[@@C DV )@@G@@@^@[@@ 120 LOC=LOCATE(8) @ @[@@ 125 IF (LOC.EQ.0) GO TO 140 @^@[@@DW )@@G@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@ LOCT=LDX )@@G@@X0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ DY )@@G@@CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ CVALUEDZ )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ CVALUE(LOCY)EA )@@G@@=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUE(LOCY)=-1.0 EB )@@G@@@#@[@@ LMAT=LMAT+4 @^@[@@ DO 127 I=1,NDIM @^@[@@ VAL=VAEC )@@G@@LUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+I)ED )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @#@[@@ 127 CONTINUE @^@[@@EE )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 125 @[@[@@C @#@[@@C VOLEF )@@G@@TAGE SOURCES@[@[@@C @^@[@@ 140 LOC=LOCATE(9) @ @[@@ 150 IF (LOEG )@@G@@C.EQ.0) GO TO 160 @^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CVAL=CMPLX(VEH )@@G@@ALUE(LOCV+2),VALUE(LOCV+3)) @^@[@@ IPTR=NODPLC(LOC+6)@ @[@@ EI )@@G@@CVALUE(LVN+IPTR)=CVAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ EJ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) @A@[@@EK )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+9) EL )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LEM )@@G@@OC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @^@[@@ LOC=NODPLC(LEN )@@G@@OC) @#@[@@ GO TO 150 @[@[@@C @#@[@@C CURRENT SOURCES@[@[@@EO )@@G@@C @^@[@@ 160 LOC=LOCATE(10) @ @[@@ 170 IF (LOC.EQ.0) GO TO 200 EP )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@EQ )@@G@@ NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CMPLX(VALUE(LOCV+2),VALUEER )@@G@@(LOCV+3)) @C@[@@ CVALUE(LVN+NODE1)=CVALUE(LVN+NODE1)-CVAL @C@[@@ES )@@G@@ CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)+CVAL @^@[@@ LOC=NODPLC(LET )@@G@@OC) @#@[@@ GO TO 170 @[@[@@C @]@[@@C DIODES @[@[@@C EU )@@G@@@^@[@@ 200 LOC=LOCATE(11) @ @[@@ 210 IF (LOC.EQ.0) GO TO 250 @^@[@@EV )@@G@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NEW )@@G@@ODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODEX )@@G@@PLC(LOC+11) @ @[@@ GSPR=VALUE(LOCM+2)*AREA @^@[@@ GEQ=VALUE(LOEY )@@G@@CT+2) @ @[@@ XCEQ=VALUE(LOCT+4)*S @ @[@@ LOCY=LYNL+NODPLC(LEZ )@@G@@OC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NOFA )@@G@@DPLC(LOC+14)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEQ+XCEQ @ @[@@ FB )@@G@@LOCY=LYNL+NODPLC(LOC+15)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEQ+GSPR+XFC )@@G@@CEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUFD )@@G@@E(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+8) @B@[@@ CVALUE(LOCY)FE )@@G@@=CVALUE(LOCY)-GEQ-XCEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ FF )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@B@[@@FG )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GEQ-XCEQ @^@[@@ LOC=NODPLC(LOC) FH )@@G@@@#@[@@ GO TO 210 @[@[@@C @]@[@@C BJTS @[@[@@C @[@[@@FI )@@G@@C*** @A@[@@C*** CHECK MODS FOR GROUP DELAY @[@[@@C*** @^@[@@ 250 FJ )@@G@@LOC=LOCATE(12) @ @[@@ 260 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NFK )@@G@@ODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+8)FL )@@G@@@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+22) FM )@@G@@@ @[@@ GBPR=VALUE(LOCM+4)*AREA @ @[@@ GCPR=VALUE(LOCM+5)*AREA FN )@@G@@@ @[@@ GEPR=VALUE(LOCM+6)*AREA @A@[@@ XCCS=VALUE(LOCM+17)*AREAFO )@@G@@*S @^@[@@ GPI=VALUE(LOCT+4) @^@[@@ GMU=VALUE(LOCT+5) @^@[@@FP )@@G@@ GM=VALUE(LOCT+6) @^@[@@ GO=VALUE(LOCT+7) @ @[@@ XCPI=VFQ )@@G@@ALUE(LOCT+9)*S @ @[@@ XCMU=VALUE(LOCT+11)*S @ @[@@ LOCY=LFR )@@G@@YNL+NODPLC(LOC+24)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GCPR@ @[@@ FS )@@G@@LOCY=LYNL+NODPLC(LOC+25)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GBPR@ @[@@FT )@@G@@ LOCY=LYNL+NODPLC(LOC+26)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GEPRFU )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@D@[@@ CVALUE(LOCY)=CVALUE(LOCYFV )@@G@@)+GMU+GO+GCPR+XCMU+XCCS @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@D@[@@ FW )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GBPR+GPI+GMU+XCPI+XCMU@ @[@@ LOCY=LYNL+NOFX )@@G@@DPLC(LOC+29)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GPI+GEPR+GM+GO+XCPI FY )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYFZ )@@G@@)-GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUGA )@@G@@E(LOCY)-GBPR@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)GB )@@G@@=CVALUE(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUEGC )@@G@@(LOCY)=CVALUE(LOCY)-GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@C@[@@ GD )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-(GMU-GM)-XCMU @ @[@@ LOCY=LYNL+NODPLC(LGE )@@G@@OC+15)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GM-GO @ @[@@ LOCY=LGF )@@G@@YNL+NODPLC(LOC+16)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @[@@ GG )@@G@@LOCY=LYNL+NODPLC(LOC+17)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GMU-XCMU GH )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+18)@B@[@@ CVALUE(LOCY)=CVALUE(LOCYGI )@@G@@)-GPI-XCPI @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ CVALUE(LOCY)GJ )@@G@@=CVALUE(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ CVALUEGK )@@G@@(LOCY)=CVALUE(LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@C@[@@ GL )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-(GPI+GM)-XCPI @^@[@@ LOC=NODPLC(LOC) GM )@@G@@@#@[@@ GO TO 260 @[@[@@C @]@[@@C JFETS @[@[@@C @^@[@@GN )@@G@@ 300 LOC=LOCATE(13) @ @[@@ 310 IF (LOC.EQ.0) GO TO 350 @^@[@@ GO )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(GP )@@G@@LOC+7)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOGQ )@@G@@C+19) @ @[@@ GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VALUE(LOCM+5)GR )@@G@@*AREA @^@[@@ GM=VALUE(LOCT+5) @^@[@@ GDS=VALUE(LOCT+6) @^@[@@GS )@@G@@ GGS=VALUE(LOCT+7) @ @[@@ XGS=VALUE(LOCT+9)*S @^@[@@ GT )@@G@@GGD=VALUE(LOCT+8) @ @[@@ XGD=VALUE(LOCT+11)*S @ @[@@ LOCY=LGU )@@G@@YNL+NODPLC(LOC+20)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR@ @[@@ GV )@@G@@LOCY=LYNL+NODPLC(LOC+21)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GGD+GGS+XGGW )@@G@@D+XGS @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ CVALUE(LOCY)=CVALUGX )@@G@@E(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+23)@C@[@@ CVALUE(LOCY)GY )@@G@@=CVALUE(LOCY)+GDPR+GDS+GGD+XGD@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@D@[@@GZ )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR+GDS+GM+GGS+XGS @ @[@@ LOCY=LHA )@@G@@YNL+NODPLC(LOC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ HB )@@G@@LOCY=LYNL+NODPLC(LOC+10)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GGD-XGD HC )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@B@[@@ CVALUE(LOCY)=CVALUE(LOCYHD )@@G@@)-GGS-XGS @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)HE )@@G@@=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUEHF )@@G@@(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@C@[@@ HG )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-(GGD-GM)-XGD @ @[@@ LOCY=LYNL+NODPLC(LHH )@@G@@OC+15)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-GM @ @[@@ LOCY=LHI )@@G@@YNL+NODPLC(LOC+16)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-(GGS+GM)-XGS HJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYHK )@@G@@)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUHL )@@G@@E(LOCY)-GDS @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@HM )@@G@@C @]@[@@C MOSFETS @[@[@@C @^@[@@ 350 LOC=LOCATE(14) @ @[@@HN )@@G@@ 360 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ HO )@@G@@DEVMOD=VALUE(LOCV+5) @#@[@@ XNRM=1.0 @#@[@@ XREV=0.0 HP )@@G@@@A@[@@ IF (DEVMOD.GE.0.0) GO TO 370 @#@[@@ XNRM=0.0 @#@[@@HQ )@@G@@ XREV=1.0 @^@[@@ 370 LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(HR )@@G@@LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+26) @^@[@@ GDPR=VALUE(LHS )@@G@@OCM+6)@^@[@@ GSPR=VALUE(LOCM+7)@ @[@@ XCGS=VALUE(LOCT+16)*S HT )@@G@@@ @[@@ XCGD=VALUE(LOCT+18)*S @ @[@@ XCGB=VALUE(LOCT+20)*S HU )@@G@@@^@[@@ GM=VALUE(LOCT+7) @^@[@@ GDS=VALUE(LOCT+8) @^@[@@ HV )@@G@@GMBS=VALUE(LOCT+9)@^@[@@ GBD=VALUE(LOCT+10)@ @[@@ XBD=VALUE(LOHW )@@G@@CT+12)*S @^@[@@ GBS=VALUE(LOCT+11)@ @[@@ XBS=VALUE(LOCT+14)HX )@@G@@*S @ @[@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ CVALUE(LOCY)=CVALUHY )@@G@@E(LOCY)+GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@C@[@@ CVALUE(LOCY)HZ )@@G@@=CVALUE(LOCY)+XCGD+XCGS+XCGB @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@IA )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+30)IB )@@G@@@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GBD+GBS+XBD+XBS+XCGB @ @[@@ IC )@@G@@LOCY=LYNL+NODPLC(LOC+31)@G@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GDPR+GDS+GID )@@G@@BD+XREV*(GM+GMBS)+XCGD+XBD @ @[@@ LOCY=LYNL+NODPLC(LOC+32)@G@[@@IE )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR+GDS+GBS+XNRM*(GM+GMBS)+XCGS+XBS IF )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYIG )@@G@@)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUIH )@@G@@E(LOCY)-XCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)II )@@G@@=CVALUE(LOCY)-XCGD@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUEIJ )@@G@@(LOCY)=CVALUE(LOCY)-XCGS@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@A@[@@ IK )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@IL )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-XCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+16)IM )@@G@@@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBD-XBD @ @[@@ LOCY=LYNL+NOIN )@@G@@DPLC(LOC+17)@B@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBS-XBS @ @[@@ IO )@@G@@LOCY=LYNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@IP )@@G@@ LOCY=LYNL+NODPLC(LOC+19)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)+(XNRIQ )@@G@@M-XREV)*GM-XCGD @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@E@[@@ CVALUEIR )@@G@@(LOCY)=CVALUE(LOCY)-(GBD-(XNRM-XREV)*GMBS)-XBD @ @[@@ LOCY=LYNL+NOIS )@@G@@DPLC(LOC+21)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) IT )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@D@[@@ CVALUE(LOCY)=CVALUE(LOCYIU )@@G@@)-(XNRM-XREV)*GM-XCGS @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@A@[@@ IV )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@E@[@@IW )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GBS+(XNRM-XREV)*GMBS-XBS @ @[@@ IX )@@G@@LOCY=LYNL+NODPLC(LOC+25)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XREV*(IY )@@G@@GM+GMBS) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 360 @[@[@@IZ )@@G@@C @^@[@@C POLE/ZERO EQUATIONS @[@[@@C @A@[@@ 1000 IF (MODAC.EQJA )@@G@@.2) GO TO 1100 @[@[@@C @^@[@@C... INPUT EQUATION @[@[@@C JB )@@G@@@A@[@@ IF (IPZITP.NE.41) GO TO 1010 @ @[@@ LOCY=LYNL+IPIMAT(1JC )@@G@@) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+IPJD )@@G@@IMAT(2) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LJE )@@G@@YNL+IPIMAT(3) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ JF )@@G@@LOCY=LYNL+IPIMAT(4) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @[@[@@JG )@@G@@C @^@[@@C... OUTPUT EQUATION @[@[@@C @ @[@@ 1010 LOCY=LYNL+IPJH )@@G@@OMAT(1) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @C@[@@ IF (NOJI )@@G@@DPLC(IPZOUT+5).NE.0) GO TO 1100 @ @[@@ LOCY=LYNL+IPOMAT(2) JJ )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @[@[@@C @ @[@@C REORDER RJK )@@G@@IGHT-HAND SIDE @[@[@@C @^@[@@ 1100 DO 1110 I=2,NSTOP @^@[@@ JL )@@G@@J=NODPLC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 1110 JM )@@G@@CONTINUE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)JN )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURN@]@[@@ JO )@@G@@END @^@[@@ SUBROUTINE ACDCMP @[@[@@C @G@[@@C THIS ROUTINEJP )@@G@@ PERFORMS AN LU FACTORIZATION OF THE CIRCUIT EQUATION @^@[@@C COEFFICIENJQ )@@G@@T MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTJR )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIJS )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,JT )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEJU )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LJV )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUJW )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOJX )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMJY )@@G@@VS @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTJZ )@@G@@IM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,KA )@@G@@NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLKB )@@G@@TZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EKC )@@G@@PS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEKD )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEKE )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ DO 100 I=2,NKF )@@G@@STOP @ @[@@ IO=NODPLC(IORDER+I) @F@[@@ GDIAG=ABS(REAL(CVAKG )@@G@@LUE(LYNL+IO)))+ABS(AIMAG(CVALUE(LYNL+IO)))@A@[@@ IF (GDIAG.GE.GMIN)KH )@@G@@ GO TO 10 @B@[@@ CVALUE(LYNL+IO)=CMPLX(GMIN,0.0) @^@[@@ KI )@@G@@IGOOF=IGOOF+1 @ @[@@ 10 JSTART=NODPLC(ILC+I) @ @[@@ JSTOP=KJ )@@G@@NODPLC(ILC+I+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 100@ @[@@ KK )@@G@@DO 90 J=JSTART,JSTOP @D@[@@ CVALUE(LYL+J)=CVALUE(LYL+J)/CVALUE(LKL )@@G@@YNL+IO) @^@[@@ ICOL=NODPLC(ILR+J)@ @[@@ KSTART=NODPLC(IUR+KM )@@G@@I) @ @[@@ KSTOP=NODPLC(IUR+I+1)-1 @A@[@@ IF (KSTART.GT.KSTOKN )@@G@@P) GO TO 90 @ @[@@ DO 80 K=KSTART,KSTOP @^@[@@ IROW=NODPLC(KO )@@G@@IUC+K)@ @[@@ IF (ICOL-IROW) 20,60,40 @[@[@@C @C@[@@C FIND (ICOKP )@@G@@L,IROW) MATRIX TERM (UPPER TRIANGLE)@[@[@@C @ @[@@ 20 L=NODPLC(IURKQ )@@G@@+ICOL+1) @]@[@@ 30 L=L-1 @B@[@@ IF (NODPLC(IUC+L).NE.IROW) GO KR )@@G@@TO 30 @#@[@@ ISPOT=LYU+L @#@[@@ GO TO 70 @[@[@@C @C@[@@KS )@@G@@C FIND (ICOL,IROW) MATRIX TERM (LOWER TRIANGLE)@[@[@@C @ @[@@ 40 KT )@@G@@L=NODPLC(ILC+IROW+1) @]@[@@ 50 L=L-1 @B@[@@ IF (NODPLC(ILR+L).KU )@@G@@NE.ICOL) GO TO 50 @#@[@@ ISPOT=LYL+L @#@[@@ GO TO 70 @[@[@@KV )@@G@@C @B@[@@C FIND (ICOL,IROW) MATRIX TERM (DIAGONAL)@[@[@@C @A@[@@KW )@@G@@ 60 ISPOT=LYNL+NODPLC(IORDER+IROW)@[@[@@C @F@[@@ 70 CVALUE(ISPOTKX )@@G@@)=CVALUE(ISPOT)-CVALUE(LYL+J)*CVALUE(LYU+K) @#@[@@ 80 CONTINUE KY )@@G@@@#@[@@ 90 CONTINUE @#@[@@ 100 CONTINUE @]@[@@ RETURN@]@[@@KZ )@@G@@ END @^@[@@ SUBROUTINE ACSOL @[@[@@C @G@[@@C THIS RLA )@@G@@OUTINE SOLVES THE CIRCUIT EQUATIONS BY PERFORMING A FORWARD @G@[@@C AND LB )@@G@@BACKWARD SUBSTITUTION USING THE PREVIOUSLY-COMPUTED LU FACTORS. @[@[@@LC )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITELD )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ILE )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,LF )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDILG )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXLH )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER LI )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NLJ )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ LK )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLELL )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@LM )@@G@@C @^@[@@C FORWARD SUBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSLN )@@G@@TOP @ @[@@ JSTART=NODPLC(ILC+I) @ @[@@ JSTOP=NODPLC(ILC+ILO )@@G@@+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @ @[@@ IO=NODPLC(IOLP )@@G@@RDER+I) @C@[@@ IF (REAL(CVALUE(LVN+IO)).NE.0.0) GO TO 5 @C@[@@LQ )@@G@@ IF (AIMAG(CVALUE(LVN+IO)).EQ.0.0) GO TO 20@ @[@@ 5 DO 10 J=JSTALR )@@G@@RT,JSTOP @^@[@@ JO=NODPLC(ILR+J) @ @[@@ JO=NODPLC(IORDER+JLS )@@G@@O) @F@[@@ CVALUE(LVN+JO)=CVALUE(LVN+JO)-CVALUE(LYL+J)*CVALUE(LVNLT )@@G@@+IO) @#@[@@ 10 CONTINUE @#@[@@ 20 CONTINUE @[@[@@C @^@[@@LU )@@G@@C BACK SUBSTITUTION @[@[@@C @#@[@@ K=NSTOP+1 @^@[@@ LV )@@G@@DO 50 I=2,NSTOP @]@[@@ K=K-1 @ @[@@ IO=NODPLC(IORDER+K) LW )@@G@@@ @[@@ JSTART=NODPLC(IUR+K) @ @[@@ JSTOP=NODPLC(IUR+K+1)-1 LX )@@G@@@A@[@@ IF (JSTART.GT.JSTOP) GO TO 40 @ @[@@ DO 30 J=JSTART,JSTLY )@@G@@OP @^@[@@ JO=NODPLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) LZ )@@G@@@F@[@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)-CVALUE(LYU+J)*CVALUE(LVN+JO) MA )@@G@@@#@[@@ 30 CONTINUE @D@[@@ 40 CVALUE(LVN+IO)=CVALUE(LVN+IO)/CVALUEMB )@@G@@(LYNL+IO) @#@[@@ 50 CONTINUE @]@[@@ RETURN@]@[@@ END MC )@@G@@@^@[@@ SUBROUTINE ACLOAD @[@[@@C @G@[@@C THIS ROUTINE ZEROEMD )@@G@@S-OUT AND THEN LOADS THE COMPLEX COEFFICIENT @]@[@@C MATRIX. @[@[@@ME )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMF )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IMG )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,MH )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIMI )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXMJ )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER MK )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NML )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ MM )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@MN )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@MO )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCRMP )@@G@@,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,MQ )@@G@@NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IMR )@@G@@PZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@ MS )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEMT )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@MU )@@G@@C @[@[@@C @#@[@@ COMPLEX CVAL@[@[@@C @A@[@@C ZERO Y MAMV )@@G@@TRIX AND CURRENT VECTOR @[@[@@C @D@[@@ CALL ZERO16(CVALUE(LVN+1MW )@@G@@),NSTOP+NSTOP+NUT+NLT) @[@[@@C @]@[@@C RESISTORS@[@[@@C @^@[@@MX )@@G@@ LOC=LOCATE(1) @ @[@@ 20 IF (LOC.EQ.0) GO TO 30 @^@[@@ MY )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NOMZ )@@G@@DPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @[@@ LOCY=LNA )@@G@@YNL+NODPLC(LOC+7) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @[@@ NB )@@G@@LOCY=LYNL+NODPLC(LOC+4) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@NC )@@G@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL ND )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 @[@[@@C @#@[@@NE )@@G@@C CAPACITORS @[@[@@C @^@[@@ 30 LOC=LOCATE(2) @ @[@@ 40 NF )@@G@@IF (LOC.EQ.0) GO TO 50 @^@[@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CNG )@@G@@MPLX(0.0,OMEGA*VALUE(LOCV+1)) @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @A@[@@NH )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+7) NI )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CVAL@ @[@@ LOCY=LYNL+NODPLC(LNJ )@@G@@OC+5) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@ @[@@ LOCY=LYNL+NONK )@@G@@DPLC(LOC+6) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CVAL@^@[@@ LOC=NONL )@@G@@DPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDUCTORS@[@[@@NM )@@G@@C @^@[@@ 50 LOC=LOCATE(3) @ @[@@ 60 IF (LOC.EQ.0) GO TO 70 NN )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CMPLX(0.0,OMEGA*VALUE(LOCNO )@@G@@V+1)) @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @^@[@@ CVALUE(LOCY)=-CVALNP )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@NQ )@@G@@ LOCY=LYNL+NODPLC(LOC+6) @^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ NR )@@G@@LOCY=LYNL+NODPLC(LOC+7) @^@[@@ CVALUE(LOCY)=1.0 @ @[@@ LOCY=LNS )@@G@@YNL+NODPLC(LOC+8) @^@[@@ CVALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LNT )@@G@@OC) @#@[@@ GO TO 60 @[@[@@C @^@[@@C MUTUAL INDUCTORS NU )@@G@@@[@[@@C @^@[@@ 70 LOC=LOCATE(4) @ @[@@ 80 IF (LOC.EQ.0) GO TNV )@@G@@O 90 @^@[@@ LOCV=NODPLC(LOC+1)@B@[@@ CVAL=CMPLX(0.0,OMEGA*VALNW )@@G@@UE(LOCV+1)) @ @[@@ LOCY=LYNL+NODPLC(LOC+4) @^@[@@ CVALUE(LOCY)NX )@@G@@=-CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+5) @^@[@@ CVALUE(LOCY)=-CVALNY )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@C @C@[@@NZ )@@G@@C NONLINEAR VOLTAGE CONTROLLED CURRENT SOURCES @[@[@@C @^@[@@ 90 OA )@@G@@LOC=LOCATE(5) @ @[@@ 95 IF (LOC.EQ.0) GO TO 100 @^@[@@ NDIM=NOB )@@G@@ODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+7)@A@[@@ LOCT=LX0+NODPLC(LOOC )@@G@@C+12)+2 @^@[@@ DO 97 I=1,NDIM @^@[@@ VAL=VALUE(LOCT) OD )@@G@@@#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ OE )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@OF )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)OG )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NODPLC(LOH )@@G@@MAT+4)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ LMAT=LMAT+4 OI )@@G@@@#@[@@ 97 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO OJ )@@G@@95 @[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES OK )@@G@@@[@[@@C @^@[@@ 100 LOC=LOCATE(6) @ @[@@ 105 IF (LOC.EQ.0) GO TOL )@@G@@O 110 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@OM )@@G@@ LOCT=LX0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)ON )@@G@@@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@OO )@@G@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ OP )@@G@@CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUEOQ )@@G@@(LOCY)=-1.0 @#@[@@ LMAT=LMAT+4 @^@[@@ DO 107 I=1,NDIM @^@[@@OR )@@G@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NOOS )@@G@@DPLC(LMAT+1)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @ @[@@ LOCY=LOT )@@G@@YNL+NODPLC(LMAT+2)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+VAL @#@[@@ OU )@@G@@LMAT=LMAT+2 @#@[@@ 107 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@OV )@@G@@ GO TO 105 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED CURROW )@@G@@ENT SOURCES @[@[@@C @^@[@@ 110 LOC=LOCATE(7) @ @[@@ 115 IF (LOOX )@@G@@C.EQ.0) GO TO 120 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(OY )@@G@@LOC+7)@A@[@@ LOCT=LX0+NODPLC(LOC+12)+2 @^@[@@ DO 117 I=1,NOZ )@@G@@DIM @^@[@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ PA )@@G@@LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ CVALUE(LOCY)=+VAL @ @[@@ LOCY=LPB )@@G@@YNL+NODPLC(LMAT+2)@^@[@@ CVALUE(LOCY)=-VAL @#@[@@ LMAT=LMAT+2 PC )@@G@@@#@[@@ 117 CONTINUE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO PD )@@G@@115 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES PE )@@G@@@[@[@@C @^@[@@ 120 LOC=LOCATE(8) @ @[@@ 125 IF (LOC.EQ.0) GO TPF )@@G@@O 140 @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LMAT=NODPLC(LOC+8)@A@[@@PG )@@G@@ LOCT=LX0+NODPLC(LOC+13)+3 @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)PH )@@G@@@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@PI )@@G@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ PJ )@@G@@CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ CVALUEPK )@@G@@(LOCY)=-1.0 @#@[@@ LMAT=LMAT+4 @^@[@@ DO 127 I=1,NDIM @^@[@@PL )@@G@@ VAL=VALUE(LOCT) @#@[@@ LOCT=LOCT+2 @ @[@@ LOCY=LYNL+NOPM )@@G@@DPLC(LMAT+I)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-VAL @#@[@@ 127 CONTINPN )@@G@@UE @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 125 @[@[@@C PO )@@G@@@#@[@@C VOLTAGE SOURCES@[@[@@C @^@[@@ 140 LOC=LOCATE(9) @ @[@@PP )@@G@@ 150 IF (LOC.EQ.0) GO TO 160 @^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ PQ )@@G@@CVAL=CMPLX(VALUE(LOCV+2),VALUE(LOCV+3)) @^@[@@ IPTR=NODPLC(LOC+6)PR )@@G@@@ @[@@ CVALUE(LVN+IPTR)=CVAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) PS )@@G@@@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LPT )@@G@@OC+8) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NOPU )@@G@@DPLC(LOC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+1.0 @ @[@@ LOCY=LPV )@@G@@YNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-1.0 @^@[@@ PW )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 150 @[@[@@C @#@[@@C CURRENT SPX )@@G@@OURCES@[@[@@C @^@[@@ 160 LOC=LOCATE(10) @ @[@@ 170 IF (LOC.EQ.0PY )@@G@@) GO TO 200 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2PZ )@@G@@) @ @[@@ NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CMPLX(VALUE(LQA )@@G@@OCV+2),VALUE(LOCV+3)) @C@[@@ CVALUE(LVN+NODE1)=CVALUE(LVN+NODE1)-QB )@@G@@CVAL @C@[@@ CVALUE(LVN+NODE2)=CVALUE(LVN+NODE2)+CVAL @^@[@@ QC )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 170 @[@[@@C @]@[@@C DIODES QD )@@G@@@[@[@@C @^@[@@ 200 LOC=LOCATE(11) @ @[@@ 210 IF (LOC.EQ.0) GO TQE )@@G@@O 250 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@QF )@@G@@ LOCM=NODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ QG )@@G@@LOCT=LX0+NODPLC(LOC+11) @ @[@@ GSPR=VALUE(LOCM+2)*AREA @^@[@@ QH )@@G@@GEQ=VALUE(LOCT+2) @ @[@@ XCEQ=VALUE(LOCT+4)*OMEGA@ @[@@ LOCY=LQI )@@G@@YNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ QJ )@@G@@LOCY=LYNL+NODPLC(LOC+14)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GEQ,QK )@@G@@XCEQ) @ @[@@ LOCY=LYNL+NODPLC(LOC+15)@D@[@@ CVALUE(LOCY)=CVALUQL )@@G@@E(LOCY)+CMPLX(GEQ+GSPR,XCEQ) @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@QM )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+8) QN )@@G@@@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GEQ,XCEQ) @ @[@@ LOCY=LQO )@@G@@YNL+NODPLC(LOC+9) @A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ QP )@@G@@LOCY=LYNL+NODPLC(LOC+10)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GEQ,QQ )@@G@@XCEQ) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C QR )@@G@@@]@[@@C BJTS @[@[@@C @^@[@@ 250 LOC=LOCATE(12) @ @[@@ 260 QS )@@G@@IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VQT )@@G@@ALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1QU )@@G@@) @ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ GBPR=VALUE(LOCM+4)QV )@@G@@*AREA @ @[@@ GCPR=VALUE(LOCM+5)*AREA @ @[@@ GEPR=VALUE(LOCM+6)QW )@@G@@*AREA @A@[@@ XCCS=VALUE(LOCM+17)*AREA*OMEGA@^@[@@ GPI=VALUE(LOQX )@@G@@CT+4) @^@[@@ GMU=VALUE(LOCT+5) @^@[@@ GM=VALUE(LOCT+6) @^@[@@QY )@@G@@ GO=VALUE(LOCT+7) @#@[@@ XGM=0.0 @^@[@@ TD=VALUE(LOCQZ )@@G@@M+29) @ @[@@ IF (TD.EQ.0.0) GO TO 270@#@[@@ ARG=TD*OMEGA@#@[@@RA )@@G@@ GM=GM+GO @^@[@@ XGM=-GM*SIN(ARG) @^@[@@ GM=GM*COS(ARRB )@@G@@G)-GO @ @[@@ 270 XCPI=VALUE(LOCT+9)*OMEGA@A@[@@ XCMU=VALUE(LOCT+11RC )@@G@@)*OMEGA @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ CVALUE(LOCY)RD )@@G@@=CVALUE(LOCY)+GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+25)@A@[@@ CVALUERE )@@G@@(LOCY)=CVALUE(LOCY)+GBPR@ @[@@ LOCY=LYNL+NODPLC(LOC+26)@A@[@@ RF )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@E@[@@RG )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GMU+GO+GCPR,XCMU+XCCS)@ @[@@ RH )@@G@@LOCY=LYNL+NODPLC(LOC+28)@F@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBPRRI )@@G@@+GPI+GMU,XCPI+XCMU) @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@F@[@@ RJ )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GPI+GEPR+GM+GO,XCPI+XGM) @ @[@@ RK )@@G@@LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GCPR@ @[@@RL )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPRRM )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYRN )@@G@@)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALURO )@@G@@E(LOCY)-GCPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@D@[@@ CVALUE(LOCY)RP )@@G@@=CVALUE(LOCY)-CMPLX(GMU-GM,XCMU-XGM)@ @[@@ LOCY=LYNL+NODPLC(LOC+15)RQ )@@G@@@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GM+GO,XGM)@ @[@@ LOCY=LRR )@@G@@YNL+NODPLC(LOC+16)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GBPR@ @[@@ RS )@@G@@LOCY=LYNL+NODPLC(LOC+17)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GMU,RT )@@G@@XCMU) @ @[@@ LOCY=LYNL+NODPLC(LOC+18)@C@[@@ CVALUE(LOCY)=CVALURU )@@G@@E(LOCY)-CMPLX(GPI,XCPI) @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ RV )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GEPR@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@RW )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)RX )@@G@@@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GPI+GM,XCPI+XGM)@^@[@@ RY )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 260 @[@[@@C @]@[@@C JFETS RZ )@@G@@@[@[@@C @^@[@@ 300 LOC=LOCATE(13) @ @[@@ 310 IF (LOC.EQ.0) GO TSA )@@G@@O 350 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@SB )@@G@@ LOCM=NODPLC(LOC+7)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ SC )@@G@@LOCT=LX0+NODPLC(LOC+19) @ @[@@ GDPR=VALUE(LOCM+4)*AREA @ @[@@ SD )@@G@@GSPR=VALUE(LOCM+5)*AREA @^@[@@ GM=VALUE(LOCT+5) @^@[@@ GDS=VASE )@@G@@LUE(LOCT+6) @^@[@@ GGS=VALUE(LOCT+7) @ @[@@ XGS=VALUE(LOCT+9)*SF )@@G@@OMEGA @^@[@@ GGD=VALUE(LOCT+8) @ @[@@ XGD=VALUE(LOCT+11)*OMEGASG )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYSH )@@G@@)+GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+21)@D@[@@ CVALUE(LOCY)=CVALUSI )@@G@@E(LOCY)+CMPLX(GGD+GGS,XGD+XGS)@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@SJ )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+23)SK )@@G@@@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GDPR+GDS+GGD,XGD) @ @[@@SL )@@G@@ LOCY=LYNL+NODPLC(LOC+24)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLSM )@@G@@X(GSPR+GDS+GM+GGS,XGS) @ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ SN )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@C@[@@SO )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGD,XGD) @ @[@@ LOCY=LYNL+NOSP )@@G@@DPLC(LOC+11)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGS,XGS) @ @[@@SQ )@@G@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPRSR )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYSS )@@G@@)-GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@D@[@@ CVALUE(LOCY)=CVALUST )@@G@@E(LOCY)-CMPLX(GGD-GM,XGD) @ @[@@ LOCY=LYNL+NODPLC(LOC+15)@B@[@@SU )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-GM @ @[@@ LOCY=LYNL+NODPLC(LSV )@@G@@OC+16)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GGS+GM,XGS) @ @[@@SW )@@G@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPRSX )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCYSY )@@G@@)-GDS @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 310 @[@[@@C SZ )@@G@@@]@[@@C MOSFETS @[@[@@C @^@[@@ 350 LOC=LOCATE(14) @ @[@@ 360 TA )@@G@@IF (LOC.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ DEVMODTB )@@G@@=VALUE(LOCV+8) @#@[@@ XNRM=1.0 @#@[@@ XREV=0.0 @A@[@@TC )@@G@@ IF (DEVMOD.GE.0.0) GO TO 370 @#@[@@ XNRM=0.0 @#@[@@ TD )@@G@@XREV=1.0 @^@[@@ 370 LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1TE )@@G@@) @ @[@@ LOCT=LX0+NODPLC(LOC+26) @^@[@@ GDPR=VALUE(LOCM+6)TF )@@G@@@^@[@@ GSPR=VALUE(LOCM+7)@A@[@@ XCGS=VALUE(LOCT+16)*OMEGA TG )@@G@@@A@[@@ XCGD=VALUE(LOCT+18)*OMEGA @A@[@@ XCGB=VALUE(LOCT+20TH )@@G@@)*OMEGA @^@[@@ GM=VALUE(LOCT+7) @^@[@@ GDS=VALUE(LOCT+8) TI )@@G@@@^@[@@ GMBS=VALUE(LOCT+9)@^@[@@ GBD=VALUE(LOCT+10)@ @[@@ TJ )@@G@@XBD=VALUE(LOCT+12)*OMEGA@^@[@@ GBS=VALUE(LOCT+11)@ @[@@ XBS=VATK )@@G@@LUE(LOCT+14)*OMEGA@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ CVALUETL )@@G@@(LOCY)=CVALUE(LOCY)+GDPR@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@E@[@@ TM )@@G@@CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(0.0,XCGD+XCGS+XCGB) @ @[@@ LOCY=LTN )@@G@@YNL+NODPLC(LOC+29)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)+GSPR@ @[@@ TO )@@G@@LOCY=LYNL+NODPLC(LOC+30)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX(GBD+TP )@@G@@GBS,XBD+XBS+XCGB) @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@F@[@@ CVALUETQ )@@G@@(LOCY)=CVALUE(LOCY)+CMPLX(GDPR+GDS+GBD+XREV*(GM+GMBS),@#@[@@ 1 XCGTR )@@G@@D+XBD)@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@F@[@@ CVALUE(LOCY)=CVALUTS )@@G@@E(LOCY)+CMPLX(GSPR+GDS+GBS+XNRM*(GM+GMBS),@#@[@@ 1 XCGS+XBS)@ @[@@TT )@@G@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPRTU )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+11)@C@[@@ CVALUE(LOCY)=CVALUE(LOCYTV )@@G@@)-CMPLX(0.0,XCGB) @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@C@[@@ CVALUETW )@@G@@(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGD) @ @[@@ LOCY=LYNL+NODPLC(LOC+13)TX )@@G@@@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,XCGS) @ @[@@ LOCY=LTY )@@G@@YNL+NODPLC(LOC+14)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ TZ )@@G@@LOCY=LYNL+NODPLC(LOC+15)@C@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(0.0,UA )@@G@@XCGB) @ @[@@ LOCY=LYNL+NODPLC(LOC+16)@C@[@@ CVALUE(LOCY)=CVALUUB )@@G@@E(LOCY)-CMPLX(GBD,XBD) @ @[@@ LOCY=LYNL+NODPLC(LOC+17)@C@[@@ UC )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GBS,XBS) @ @[@@ LOCY=LYNL+NODPLC(LUD )@@G@@OC+18)@A@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDPR@ @[@@ LOCY=LYNL+NOUE )@@G@@DPLC(LOC+19)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)+CMPLX((XNRM-XREV)*GM,-UF )@@G@@XCGD) @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@F@[@@ CVALUE(LOCY)=CVALUUG )@@G@@E(LOCY)-CMPLX(GBD-(XNRM-XREV)*GMBS,XBD) @ @[@@ LOCY=LYNL+NODPLC(LUH )@@G@@OC+21)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-XNRM*(GM+GMBS) @ @[@@UI )@@G@@ LOCY=LYNL+NODPLC(LOC+22)@E@[@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLUJ )@@G@@X((XNRM-XREV)*GM,XCGS) @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@A@[@@ UK )@@G@@CVALUE(LOCY)=CVALUE(LOCY)-GSPR@ @[@@ LOCY=LYNL+NODPLC(LOC+24)@F@[@@UL )@@G@@ CVALUE(LOCY)=CVALUE(LOCY)-CMPLX(GBS+(XNRM-XREV)*GMBS,XBS) @ @[@@UM )@@G@@ LOCY=LYNL+NODPLC(LOC+25)@D@[@@ CVALUE(LOCY)=CVALUE(LOCY)-GDS-UN )@@G@@XREV*(GM+GMBS) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 360 UO )@@G@@@[@[@@C @^@[@@C TRANSMISSION LINES @[@[@@C @^@[@@ 400 LOC=LOUP )@@G@@CATE(17) @ @[@@ 410 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NODPLC(UQ )@@G@@LOC+1)@^@[@@ Z0=VALUE(LOCV+1) @#@[@@ Y0=1.0/Z0 @^@[@@ UR )@@G@@TD=VALUE(LOCV+2) @^@[@@ ARG=-OMEGA*TD @A@[@@ CVAL=CMPLX(CUS )@@G@@OS(ARG),SIN(ARG)) @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ CVALUEUT )@@G@@(LOCY)=CVALUE(LOCY)+Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@^@[@@ UU )@@G@@CVALUE(LOCY)=-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@^@[@@ CVALUEUV )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ CVALUE(LOCY)UW )@@G@@=CVALUE(LOCY)+Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+14)@^@[@@ CVALUEUX )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+15)@^@[@@ CVALUE(LOCY)UY )@@G@@=-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+16)@^@[@@ CVALUE(LOCY)=+Y0 UZ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+17)@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@VA )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@^@[@@ CVALUE(LOCY)=+Y0 @ @[@@ VB )@@G@@LOCY=LYNL+NODPLC(LOC+19)@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LVC )@@G@@YNL+NODPLC(LOC+20)@^@[@@ CVALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NOVD )@@G@@DPLC(LOC+21)@^@[@@ CVALUE(LOCY)=-CVAL@ @[@@ LOCY=LYNL+NODPLC(LVE )@@G@@OC+22)@^@[@@ CVALUE(LOCY)=+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+23)VF )@@G@@@^@[@@ CVALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@ @[@@VG )@@G@@ CVALUE(LOCY)=-CVAL*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@^@[@@VH )@@G@@ CVALUE(LOCY)=-CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+26)@^@[@@ VI )@@G@@CVALUE(LOCY)=+CVAL@ @[@@ LOCY=LYNL+NODPLC(LOC+27)@^@[@@ CVALUEVJ )@@G@@(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@^@[@@ CVALUE(LOCY)VK )@@G@@=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@ @[@@ CVALUE(LOCY)=-CVALVL )@@G@@*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@^@[@@ CVALUE(LOCY)=-Y0 VM )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@^@[@@ CVALUE(LOCY)=-Y0 @^@[@@VN )@@G@@ LOC=NODPLC(LOC) @#@[@@ GO TO 410 @[@[@@C @ @[@@C REOVO )@@G@@RDER RIGHT-HAND SIDE @[@[@@C @^@[@@ 1000 DO 1110 I=2,NSTOP @^@[@@VP )@@G@@ J=NODPLC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@VQ )@@G@@ 1110 CONTINUE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),VR )@@G@@NSTOP)@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURN@]@[@@VS )@@G@@ END @ @[@@ SUBROUTINE NOISE(LOCO) @[@[@@C @G@[@@C VT )@@G@@THIS ROUTINE COMPUTES THE NOISE DUE TO VARIOUS CIRCUIT ELEMENTS. @[@[@@VU )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEVV )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IVW )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,VX )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIVY )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXVZ )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER WA )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NWB )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ WC )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@WD )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@WE )@@G@@ 2 ITEMNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIMEWF )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@WG )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, WH )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX WI )@@G@@@G@[@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREWJ )@@G@@Q, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYWK )@@G@@P, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(WL )@@G@@3), @#@[@@ 3 IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@WM )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAWN )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ WO )@@G@@DIMENSION VNO1(12),VNO2(12),VNO3(12),VNO4(12),VNO5(12),VNO6(12) @C@[@@WP )@@G@@ DIMENSION VNTOT(12),ANAM(12),STRING(5) @ @[@@ DIMENSION TIWQ )@@G@@TLN(4),V(2) @^@[@@ COMPLEX CVAL,C(1) @A@[@@ EQUIVALENCE (C(1),WR )@@G@@V(1),CVAL) @C@[@@ EQUIVALENCE (V(1),VREAL),(V(2),VIMAG) @G@[@@WS )@@G@@ DATA TITLN / 8HNOISE AN, 8HALYSIS , 8H , 8H / WT )@@G@@@G@[@@ DATA ALSRB,ALSRC,ALSRE,ALSRS,ALSRD / 2HRB,2HRC,2HRE,2HRS,2HRWU )@@G@@D / @E@[@@ DATA ALSIB,ALSIC,ALSID,ALSFN / 2HIB,2HIC,2HID,2HFN / WV )@@G@@@ @[@@ DATA ALSTOT / 5HTOTAL / @A@[@@ DATA ASLASH,ABLNK / 1H/,WW )@@G@@ 1H /@[@[@@C @[@[@@C @#@[@@ NPRNT=0 @^@[@@ FREQ=OWX )@@G@@MEGA/TWOPI @ @[@@ IF (ICALC.GE.2) GO TO 10@ @[@@ FOURKT=4.0*CWY )@@G@@HARGE*VT @^@[@@ TWOQ=2.0*CHARGE @ @[@@ NOPOSO=NODPLC(NOSOWZ )@@G@@UT+2) @ @[@@ NONEGO=NODPLC(NOSOUT+3) @^@[@@ KNTLIM=LWIDTH/11 XA )@@G@@@#@[@@ NKNTR=1 @A@[@@ 10 IF (NOSPRT.EQ.0) GO TO 30 @A@[@@XB )@@G@@ IF (NKNTR.GT.ICALC) GO TO 30 @#@[@@ NPRNT=1 @^@[@@ XC )@@G@@NKNTR=NKNTR+NOSPRT@A@[@@ CALL TITLE(0,LWIDTH,1,TITLN) @^@[@@ XD )@@G@@WRITE (6,16) FREQ @C@[@@ 16 FORMAT(^0 FREQUENCY = ^,1PE10.3,^ HZ^/)XE )@@G@@@[@[@@C @A@[@@C OBTAIN ADJOINT CIRCUIT SOLUTION @[@[@@C @#@[@@XF )@@G@@ 30 VNRMS=0.0 @C@[@@ CVAL=CVALUE(LVN+NOPOSO)-CVALUE(LVN+NONEGO)XG )@@G@@@B@[@@ VOUT=SQRT(VREAL*VREAL+VIMAG*VIMAG) @ @[@@ VOUT=AMAX1(VXH )@@G@@OUT,1.0E-20)@B@[@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) @ @[@@ XI )@@G@@CVALUE(LVN+NOPOSO)=-1.0 @ @[@@ CVALUE(LVN+NONEGO)=+1.0 @#@[@@ XJ )@@G@@CALL ACASOL @ @[@@ CVALUE(LVN+1)=(0.0,0.0) @[@[@@C @]@[@@C RESXK )@@G@@ISTORS@[@[@@C @A@[@@ IF (JELCNT(1).EQ.0) GO TO 200 @#@[@@ XL )@@G@@ITITLE=0 @F@[@@ 91 FORMAT(//^0**** RESISTOR SQUARED NOISE VOLTAGES XM )@@G@@(SQ V/HZ)^) @^@[@@ 100 LOC=LOCATE(1) @]@[@@ KNTR=0@ @[@@ 110 XN )@@G@@IF (LOC.EQ.0) GO TO 130 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(XO )@@G@@LOC+1)@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2XP )@@G@@) @ @[@@ NODE2=NODPLC(LOC+3) @C@[@@ CVAL=CVALUE(LVN+NOXQ )@@G@@DE1)-CVALUE(LVN+NODE2) @F@[@@ VNTOT(KNTR)=(VREAL*VREAL+VIMAG*VIMAGXR )@@G@@)*FOURKT*VALUE(LOCV+1) @ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ XS )@@G@@IF (KNTR.GE.KNTLIM) GO TO 140 @^@[@@ 120 LOC=NODPLC(LOC) @#@[@@ XT )@@G@@GO TO 110 @ @[@@ 130 IF (KNTR.EQ.0) GO TO 200@A@[@@ 140 IF (NPRNT.EQXU )@@G@@.0) GO TO 160 @A@[@@ IF (ITITLE.EQ.0) WRITE (6,91) @#@[@@ XV )@@G@@ITITLE=1 @B@[@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @A@[@@ 141 XW )@@G@@FORMAT(////,11X,12(2X,A8)) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I)XX )@@G@@,I=1,KNTR) @ @[@@ 151 FORMAT(1H0,A8,1P12E10.3)@]@[@@ 160 KNTR=0@ @[@@XY )@@G@@ IF (LOC.NE.0) GO TO 120 @[@[@@C @]@[@@C DIODES @[@[@@C XZ )@@G@@@A@[@@ 200 IF (JELCNT(11).EQ.0) GO TO 300@#@[@@ ITITLE=0 @F@[@@YA )@@G@@ 201 FORMAT(//^0**** DIODE SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@[@@YB )@@G@@ 210 LOC=LOCATE(11) @]@[@@ KNTR=0@ @[@@ 220 IF (LOC.EQ.0) GO TYC )@@G@@O 240 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ YD )@@G@@ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ YE )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ YF )@@G@@LOCM=NODPLC(LOC+5)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NYG )@@G@@ODPLC(LOC+11) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ FNK=VALUE(LOYH )@@G@@CM+10)@^@[@@ FNA=VALUE(LOCM+11)@[@[@@C @^@[@@C OHMIC RESISTANCYI )@@G@@E @[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE3) YJ )@@G@@@G@[@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+2)*ARYK )@@G@@EA @[@[@@C @B@[@@C JUNCTION SHOT NOISE AND FLICKER NOISE @[@[@@YL )@@G@@C @C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE2) @A@[@@ YM )@@G@@VTEMP=VREAL*VREAL+VIMAG*VIMAG @C@[@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+1YN )@@G@@)),1.0E-20) @A@[@@ VNO2(KNTR)=VTEMP*TWOQ*ARG @D@[@@ VNO3(KYO )@@G@@NTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @D@[@@ VNTOT(KNTR)=VNO1(KYP )@@G@@NTR)+VNO2(KNTR)+VNO3(KNTR) @ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@YQ )@@G@@ IF (KNTR.GE.KNTLIM) GO TO 250 @^@[@@ 230 LOC=NODPLC(LOC) @#@[@@YR )@@G@@ GO TO 220 @ @[@@ 240 IF (KNTR.EQ.0) GO TO 300@A@[@@ 250 IF (NPYS )@@G@@RNT.EQ.0) GO TO 260 @A@[@@ IF (ITITLE.EQ.0) WRITE (6,201)@#@[@@YT )@@G@@ ITITLE=1 @B@[@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @C@[@@YU )@@G@@ WRITE (6,151) ALSRS,(VNO1(I),I=1,KNTR) @C@[@@ WRITE (6,151YV )@@G@@) ALSID,(VNO2(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO3(I),IYW )@@G@@=1,KNTR) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@YX )@@G@@ 260 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 230 @[@[@@C @A@[@@C BIPYY )@@G@@OLAR JUNCTION TRANSISTORS @[@[@@C @A@[@@ 300 IF (JELCNT(12).EQ.YZ )@@G@@0) GO TO 400@#@[@@ ITITLE=0 @G@[@@ 301 FORMAT(//^0**** TRANSISTZA )@@G@@OR SQUARED NOISE VOLTAGES (SQ V/HZ)^) @^@[@@ 310 LOC=LOCATE(12) ZB )@@G@@@]@[@@ KNTR=0@ @[@@ 320 IF (LOC.EQ.0) GO TO 340 @#@[@@ KNTR=KZC )@@G@@NTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ ANAM(KNTR)=VALUE(LOCV) ZD )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) ZE )@@G@@@ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5) ZF )@@G@@@ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7) ZG )@@G@@@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ZH )@@G@@ LOCT=NODPLC(LOC+22) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ ZI )@@G@@FNK=VALUE(LOCM+26)@^@[@@ FNA=VALUE(LOCM+27)@[@[@@C @^@[@@C EXTZJ )@@G@@RINSIC RESISTANCES@[@[@@C @^@[@@C... BASE RESISTANCE @C@[@@ ZK )@@G@@CVAL=CVALUE(LVN+NODE2)-CVALUE(LVN+NODE5) @G@[@@ VNO1(KNTR)=(VREAL*ZL )@@G@@VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+4)*AREA @ @[@@C... COLLECTOR REZM )@@G@@SISTANCE @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE4) @G@[@@ZN )@@G@@ VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA ZO )@@G@@@^@[@@C... EMITTER RESISTANCE@C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(ZP )@@G@@LVN+NODE6) @G@[@@ VNO3(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUZQ )@@G@@E(LOCM+6)*AREA @[@[@@C @C@[@@C BASE CURRENT SHOT NOISE AND FLICKZR )@@G@@ER NOISE @[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NOZS )@@G@@DE6) @A@[@@ VTEMP=VREAL*VREAL+VIMAG*VIMAG @C@[@@ ARG=AMAX1(ABZT )@@G@@S(VALUE(LX0+LOCT+3)),1.0E-20) @A@[@@ VNO4(KNTR)=VTEMP*TWOQ*ARG ZU )@@G@@@D@[@@ VNO5(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @[@[@@C ZV )@@G@@@A@[@@C COLLECTOR CURRENT SHOT NOISE @[@[@@C @C@[@@ CVAL=CZW )@@G@@VALUE(LVN+NODE4)-CVALUE(LVN+NODE6) @G@[@@ VNO6(KNTR)=(VREAL*VREAL+ZX )@@G@@VIMAG*VIMAG)*TWOQ*ABS(VALUE(LX0+LOCT+2)) @G@[@@ VNTOT(KNTR)=VNO1(KZY )@@G@@NTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR)+VNO5(KNTR)@^@[@@ 1 +VNO6(KNTZZ )@@G@@R) @ @[@@ VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ IF (KNTR.GE.KNTLIMAA )@@G@@) GO TO 350 @^@[@@ 330 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @ @[@@AB )@@G@@ 340 IF (KNTR.EQ.0) GO TO 400@A@[@@ 350 IF (NPRNT.EQ.0) GO TO 360 AC )@@G@@@A@[@@ IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ ITITLE=1 @B@[@@AD )@@G@@ WRITE (6,141) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRAE )@@G@@B,(VNO1(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRC,(VNO2(I),I=1,KNTAF )@@G@@R) @C@[@@ WRITE (6,151) ALSRE,(VNO3(I),I=1,KNTR) @C@[@@ AG )@@G@@WRITE (6,151) ALSIB,(VNO4(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSIAH )@@G@@C,(VNO6(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO5(I),I=1,KNTAI )@@G@@R) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@ 360 AJ )@@G@@KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 330 @[@[@@C @]@[@@C JFETS AK )@@G@@@[@[@@C @A@[@@ 400 IF (JELCNT(13).EQ.0) GO TO 500@#@[@@ ITITLEAL )@@G@@=0 @F@[@@ 401 FORMAT(//^0**** JFET SQUARED NOISE VOLTAGES (SQ V/HZ)^AM )@@G@@) @^@[@@ 410 LOC=LOCATE(13) @]@[@@ KNTR=0@ @[@@ 420 IF (LOAN )@@G@@C.EQ.0) GO TO 440 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)AO )@@G@@@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=NODPLC(LOC+2) AP )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) AQ )@@G@@@ @[@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) AR )@@G@@@^@[@@ LOCM=NODPLC(LOC+7)@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@AS )@@G@@ LOCT=NODPLC(LOC+19) @^@[@@ AREA=VALUE(LOCV+1)@^@[@@ AT )@@G@@FNK=VALUE(LOCM+10)@^@[@@ FNA=VALUE(LOCM+11)@[@[@@C @^@[@@C EXTAU )@@G@@RINSIC RESISTANCES@[@[@@C @^@[@@C... DRAIN RESISTANCE @C@[@@ AV )@@G@@CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NODE4) @G@[@@ VNO1(KNTR)=(VREAL*AW )@@G@@VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+4)*AREA @^@[@@C... SOURCE RESISAX )@@G@@TANCE @C@[@@ CVAL=CVALUE(LVN+NODE3)-CVALUE(LVN+NODE5) @G@[@@ AY )@@G@@VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCM+5)*AREA @[@[@@AZ )@@G@@C @C@[@@C DRAIN CURRENT SHOT NOISE AND FLICKER NOISE @[@[@@C BA )@@G@@@C@[@@ CVAL=CVALUE(LVN+NODE4)-CVALUE(LVN+NODE5) @A@[@@ VTEMP=BB )@@G@@VREAL*VREAL+VIMAG*VIMAG @E@[@@ VNO3(KNTR)=VTEMP*FOURKT*2.0*ABS(VALUBC )@@G@@E(LX0+LOCT+5))/3.0@C@[@@ ARG=AMAX1(ABS(VALUE(LX0+LOCT+3)),1.0E-20) BD )@@G@@@D@[@@ VNO4(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARG))/FREQ @F@[@@ BE )@@G@@VNTOT(KNTR)=VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) @ @[@@ BF )@@G@@VNRMS=VNRMS+VNTOT(KNTR) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 450 @^@[@@BG )@@G@@ 430 LOC=NODPLC(LOC) @#@[@@ GO TO 420 @ @[@@ 440 IF (KNTR.EQ.BH )@@G@@0) GO TO 500@A@[@@ 450 IF (NPRNT.EQ.0) GO TO 460 @A@[@@ IF (ITBI )@@G@@ITLE.EQ.0) WRITE (6,401)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,141BJ )@@G@@) (ANAM(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTBK )@@G@@R) @C@[@@ WRITE (6,151) ALSRS,(VNO2(I),I=1,KNTR) @C@[@@ BL )@@G@@WRITE (6,151) ALSID,(VNO3(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFBM )@@G@@N,(VNO4(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KBN )@@G@@NTR) @]@[@@ 460 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 430 @[@[@@C BO )@@G@@@]@[@@C MOSFETS @[@[@@C @A@[@@ 500 IF (JELCNT(14).EQ.0) GO TO 600BP )@@G@@@#@[@@ ITITLE=0 @F@[@@ 501 FORMAT(//^0**** MOSFET SQUARED NOISEBQ )@@G@@ VOLTAGES (SQ V/HZ)^) @^@[@@ 510 LOC=LOCATE(14) @]@[@@ KNTR=0BR )@@G@@@ @[@@ 520 IF (LOC.EQ.0) GO TO 540 @#@[@@ KNTR=KNTR+1 @^@[@@ BS )@@G@@LOCV=NODPLC(LOC+1)@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ NODE1=BT )@@G@@NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=BU )@@G@@NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=BV )@@G@@NODPLC(LOC+6) @ @[@@ NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NBW )@@G@@ODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) @E@[@@ XL=VALUE(LOCBX )@@G@@V+1)-2.0*VALUE(LOCM+20)*VALUE(LOCM+19) @^@[@@ XW=VALUE(LOCV+2) BY )@@G@@@ @[@@ COX=VALUE(LOCM+13)*XW*XL@ @[@@ LOCT=NODPLC(LOC+26) BZ )@@G@@@^@[@@ FNK=VALUE(LOCM+27)@^@[@@ FNA=VALUE(LOCM+28)@#@[@@ CA )@@G@@FNB=1.0 @[@[@@C @^@[@@C EXTRINSIC RESISTANCES@[@[@@C @^@[@@CB )@@G@@C... DRAIN RESISTANCE @C@[@@ CVAL=CVALUE(LVN+NODE1)-CVALUE(LVN+NOCC )@@G@@DE5) @F@[@@ VNO1(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKT*VALUE(LOCMCD )@@G@@+6) @^@[@@C... SOURCE RESISTANCE @C@[@@ CVAL=CVALUE(LVN+NODE3)-CCE )@@G@@VALUE(LVN+NODE6) @F@[@@ VNO2(KNTR)=(VREAL*VREAL+VIMAG*VIMAG)*FOURKCF )@@G@@T*VALUE(LOCM+7) @[@[@@C @C@[@@C DRAIN CURRENT SHOT NOISE AND FLICCG )@@G@@KER NOISE @[@[@@C @C@[@@ CVAL=CVALUE(LVN+NODE5)-CVALUE(LVN+NOCH )@@G@@DE6) @A@[@@ VTEMP=VREAL*VREAL+VIMAG*VIMAG @E@[@@ VNO3(KNTR)=VCI )@@G@@TEMP*FOURKT*ABS(VALUE(LX0+LOCT+7))/1.5 @C@[@@ ARG=AMAX1(ABS(VALUCJ )@@G@@E(LX0+LOCT+4)),1.0E-20) @C@[@@ VNO4(KNTR)=VTEMP*FNK*EXP(FNA*ALOG(ARCK )@@G@@G)) @A@[@@ 1 /(EXP(FNB*ALOG(FREQ))*COX) @F@[@@ VNTOT(KNTR)=CL )@@G@@VNO1(KNTR)+VNO2(KNTR)+VNO3(KNTR)+VNO4(KNTR) @ @[@@ VNRMS=VNRMS+CM )@@G@@VNTOT(KNTR) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 550 @^@[@@ 530 LOC=NOCN )@@G@@DPLC(LOC) @#@[@@ GO TO 520 @ @[@@ 540 IF (KNTR.EQ.0) GO TO 600CO )@@G@@@A@[@@ 550 IF (NPRNT.EQ.0) GO TO 560 @A@[@@ IF (ITITLE.EQ.0) WCP )@@G@@RITE (6,501)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,141) (ANAM(I),ICQ )@@G@@=1,KNTR) @C@[@@ WRITE (6,151) ALSRD,(VNO1(I),I=1,KNTR) @C@[@@CR )@@G@@ WRITE (6,151) ALSRS,(VNO2(I),I=1,KNTR) @C@[@@ WRITE (6,151CS )@@G@@) ALSID,(VNO3(I),I=1,KNTR) @C@[@@ WRITE (6,151) ALSFN,(VNO4(I),ICT )@@G@@=1,KNTR) @C@[@@ WRITE (6,151) ALSTOT,(VNTOT(I),I=1,KNTR) @]@[@@CU )@@G@@ 560 KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 530 @[@[@@C @B@[@@C COMCV )@@G@@PUTE EQUIVALENT INPUT NOISE VOLTAGE @[@[@@C @^@[@@ 600 VNOUT=SQRT(VCW )@@G@@NRMS) @^@[@@ VNIN=VNOUT/VOUT @A@[@@ IF (NPRNT.EQ.0) GO TO 62CX )@@G@@0 @#@[@@ DO 610 I=1,5@^@[@@ STRING(I)=ABLNK @#@[@@ 610 CY )@@G@@CONTINUE @#@[@@ IOUTYP=1 @]@[@@ IPOS=1@C@[@@ CALL OCZ )@@G@@UTNAM(NOSOUT,IOUTYP,STRING,IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ASDA )@@G@@LASH,1,1) @#@[@@ IPOS=IPOS+1 @ @[@@ LOCV=NODPLC(NOSIN+1) DB )@@G@@@^@[@@ ANAM1=VALUE(LOCV) @B@[@@ CALL MOVE(STRING,IPOS,ANAM1,1,DC )@@G@@8) @D@[@@ WRITE (6,611) VNRMS,VNOUT,STRING,VOUT,ANAM1,VNIN@#@[@@DD )@@G@@ 611 FORMAT(////,@G@[@@ 1 ^0**** TOTAL OUTPUT NOISE VOLTAGE^,9X,^DE )@@G@@= ^,1PE10.3,^ SQ V/HZ^/,@B@[@@ 2 1H0,40X,^= ^,E10.3,^ V/RT HZ^/, DF )@@G@@@C@[@@ 3 ^0 TRANSFER FUNCTION VALUE:^/, @A@[@@ 4 1H0DG )@@G@@,7X,4A8,A1,^= ^,E10.3,/,@G@[@@ 5 ^0 EQUIVALENT INPUT NOISE AT DH )@@G@@^,A8,^ = ^,E10.3,^ /RT HZ^) @[@[@@C @^@[@@C SAVE NOISE OUTPUTS DI )@@G@@@[@[@@C @^@[@@ 620 LOC=LOCATE(44) @ @[@@ 630 IF (LOC.EQ.0) GO TDJ )@@G@@O 1000@^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ IF (NODPLC(LOC+5).NE.2) DK )@@G@@GO TO 640 @ @[@@ CVALUE(LOCO+ISEQ)=VNOUT @#@[@@ GO TO 650 DL )@@G@@@ @[@@ 640 CVALUE(LOCO+ISEQ)=VNIN @^@[@@ 650 LOC=NODPLC(LOC) @#@[@@DM )@@G@@ GO TO 630 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 DN )@@G@@RETURN@]@[@@ END @^@[@@ SUBROUTINE ACASOL @[@[@@C @G@[@@DO )@@G@@C THIS ROUTINE EVALUATES THE RESPONSE OF THE ADJOINT CIRCUIT BY DP )@@G@@@G@[@@C DOING A FORWARD/BACKWARD SUBSTITUTION STEP USING THE TRANSPOSE ODQ )@@G@@F THE @B@[@@C CIRCUIT EQUATION COEFFICIENT MATRIX. @[@[@@C @G@[@@DR )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, DS )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEDT )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,DU )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQDV )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXDW )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ DX )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@DY )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @ @[@@ COMMON /BLANDZ )@@G@@K/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)EA )@@G@@@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @G@[@@EB )@@G@@C EVALUATES ADJOINT RESPONSE BY DOING FORWARD/BACKWARD SUBSTITUTION ON EC )@@G@@@A@[@@C THE TRANSPOSE OF THE Y MATRIX @[@[@@C @[@[@@C @^@[@@ED )@@G@@C FORWARD SUBSTITUTION @[@[@@C @^@[@@ DO 20 I=2,NSTOP @ @[@@EE )@@G@@ IO=NODPLC(IORDER+I) @D@[@@ CVALUE(LVN+IO)=CVALUE(LVN+IO)/EF )@@G@@CVALUE(LYNL+IO) @ @[@@ JSTART=NODPLC(IUR+I) @ @[@@ JSTOP=EG )@@G@@NODPLC(IUR+I+1)-1 @A@[@@ IF (JSTART.GT.JSTOP) GO TO 20 @C@[@@ EH )@@G@@IF (REAL(CVALUE(LVN+IO)).NE.0.0) GO TO 5 @C@[@@ IF (AIMAG(CVALUE(LEI )@@G@@VN+IO)).EQ.0.0) GO TO 20@ @[@@ 5 DO 10 J=JSTART,JSTOP @^@[@@ EJ )@@G@@JO=NODPLC(IUC+J) @ @[@@ JO=NODPLC(IORDER+JO) @F@[@@ CVALUEEK )@@G@@(LVN+JO)=CVALUE(LVN+JO)-CVALUE(LYU+J)*CVALUE(LVN+IO) @#@[@@ 10 CONTINEL )@@G@@UE @#@[@@ 20 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTIONEM )@@G@@@[@[@@C @#@[@@ K=NSTOP+1 @^@[@@ DO 40 I=2,NSTOP @]@[@@EN )@@G@@ K=K-1 @ @[@@ IO=NODPLC(IORDER+K) @ @[@@ JSTART=NODPLEO )@@G@@C(ILC+K) @ @[@@ JSTOP=NODPLC(ILC+K+1)-1 @A@[@@ IF (JSTART.GEP )@@G@@T.JSTOP) GO TO 40 @ @[@@ DO 30 J=JSTART,JSTOP @^@[@@ JO=NODEQ )@@G@@PLC(ILR+J) @ @[@@ JO=NODPLC(IORDER+JO) @F@[@@ CVALUE(LVN+IER )@@G@@O)=CVALUE(LVN+IO)-CVALUE(LYL+J)*CVALUE(LVN+JO) @#@[@@ 30 CONTINUE ES )@@G@@@#@[@@ 40 CONTINUE @[@[@@C @ @[@@C REORDER RIGHT-HAND SIDE ET )@@G@@@[@[@@C @^@[@@ DO 50 I=2,NSTOP @^@[@@ J=NODPLC(ISWAP+I) EU )@@G@@@A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@ 50 CONTINUE @D@[@@EV )@@G@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),NSTOP)@[@[@@C @]@[@@EW )@@G@@C FINISHED @[@[@@C @]@[@@ RETURN@]@[@@ END @^@[@@ EX )@@G@@SUBROUTINE DINIT @[@[@@C @G@[@@C THIS ROUTINE PERFORMS STORAGE-EY )@@G@@ALLOCATION AND ONE-TIME COMPUTATION @D@[@@C NEEDED TO DO THE SMALL-SIGNAEZ )@@G@@L DISTORTION ANALYSIS. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,IFA )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOFB )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSFC )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFD )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4FE )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@FF )@@G@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELFG )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NFH )@@G@@TLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)FI )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOFJ )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ FK )@@G@@COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@FL )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @[@@FM )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ FN )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))FO )@@G@@@[@[@@C @[@[@@C @ @[@@ CALL GETMEM(LD0,NDIST) @A@[@@ FP )@@G@@CALL GETMEM(LD1,2*(5*NSTOP)) @[@[@@C @A@[@@C BIPOLAR JUNCTION TRANFQ )@@G@@SISTORS @[@[@@C @^@[@@ LOC=LOCATE(12) @ @[@@ 100 IF (LOFR )@@G@@C.EQ.0) GO TO 200 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ AREA=VALUE(LFS )@@G@@OCV+1)@^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ LOCM=NODPLC(LOCM+1) FT )@@G@@@ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ LOCD=LD0+NODPLC(LOC+23) FU )@@G@@@ @[@@ CSAT=VALUE(LOCM+3)*AREA @^@[@@ OVA=VALUE(LOCM+7) @^@[@@FV )@@G@@ TF=VALUE(LOCM+15) @^@[@@ TR=VALUE(LOCM+16) @ @[@@ CZBE=VFW )@@G@@ALUE(LOCM+18)*AREA@ @[@@ CZBC=VALUE(LOCM+21)*AREA@^@[@@ PE=VALFX )@@G@@UE(LOCM+19) @^@[@@ XME=VALUE(LOCM+20)@^@[@@ PC=VALUE(LOCM+22) FY )@@G@@@^@[@@ XMC=VALUE(LOCM+23)@ @[@@ FCPE=VALUE(LOCM+28) @ @[@@FZ )@@G@@ FCPC=VALUE(LOCM+33) @^@[@@ VBE=VALUE(LOCT) @^@[@@ GA )@@G@@VBC=VALUE(LOCT+1) @^@[@@ GPI=VALUE(LOCT+4) @^@[@@ GO=VALUE(LOCGB )@@G@@T+7) @^@[@@ GM=VALUE(LOCT+6) @^@[@@ GMU=VALUE(LOCT+5) @A@[@@GC )@@G@@ IF (VBE.GT.0.0) GO TO 110 @#@[@@ EVBE=1.0 @^@[@@ GD )@@G@@CBE=CSAT*VBE/VT @#@[@@ GO TO 120 @^@[@@ 110 EVBE=EXP(VBE/VT) GE )@@G@@@ @[@@ CBE=CSAT*(EVBE-1.0) @A@[@@ 120 IF (VBC.GT.0.0) GO TO 13GF )@@G@@0 @#@[@@ EVBC=1.0 @^@[@@ CBC=CSAT*VBC/VT @^@[@@ GG )@@G@@ARG=1.0-VBC/PC @#@[@@ GO TO 140 @^@[@@ 130 EVBC=EXP(VBC/VT) GH )@@G@@@ @[@@ CBC=CSAT*(EVBC-1.0) @A@[@@ 140 IF (VBE.GE.FCPE) GO TO 1GI )@@G@@50 @^@[@@ ARG=1.0-VBE/PE @ @[@@ SARG=EXP(XME*ALOG(ARG)) GJ )@@G@@@^@[@@ CJEO=CZBE/SARG @#@[@@ ARGBE=PE-VBE@ @[@@ CJE1=XGK )@@G@@ME*CJEO/ARGBE @A@[@@ CJE2=XME*(1.0+XME)*CJE1/ARGBE @#@[@@ GL )@@G@@GO TO 160 @B@[@@ 150 DENOM=EXP((1.0+XME)*ALOG(1.0-FCPE)) @ @[@@ GM )@@G@@CJE1=CZBE*XME/(DENOM*PE)@#@[@@ CJE2=0.0 @A@[@@ 160 IF (VBC.GE.FGN )@@G@@CPC) GO TO 170 @^@[@@ ARG=1.0-VBC/PC @ @[@@ SARG=EXP(XMCGO )@@G@@*ALOG(ARG)) @^@[@@ CJCO=CZBC/SARG @#@[@@ ARGBC=PC-VBC@ @[@@GP )@@G@@ CJC1=XMC*CJCO/ARGBC @A@[@@ CJC2=XMC*(1.0+XMC)*CJC1/ARGBC GQ )@@G@@@#@[@@ GO TO 180 @B@[@@ 170 DENOM=EXP((1.0+XMC)*ALOG(1.0-FCPC)) GR )@@G@@@ @[@@ CJC1=CZBC*XMC/(DENOM*PC)@#@[@@ CJC2=0.0 @#@[@@ 180 GS )@@G@@TWOVT=VT+VT @B@[@@ GO2=(-GO+CSAT*(EVBE+EVBC)*OVA)/TWOVT@A@[@@ GT )@@G@@GMO2=(CBE+CSAT)*OVA/VT-2.0*GO2@A@[@@ GM2=(GM+GO)/TWOVT-GMO2-GO2 GU )@@G@@@^@[@@ GMU2=GMU/TWOVT @ @[@@ IF (VBC.LE.0.0) GMU2=0.0@^@[@@GV )@@G@@ GPI2=GPI/TWOVT @ @[@@ IF (VBE.LE.0.0) GPI2=0.0@ @[@@ GW )@@G@@CBO=TF*CSAT*EVBE/VT @ @[@@ CBOR=TR*CSAT*EVBC/VT @#@[@@ GX )@@G@@CB1=CBO/VT @#@[@@ CB1R=CBOR/VT@#@[@@ TRIVT=3.0*VT@C@[@@ GY )@@G@@GO3=-(GO2+(CBC+CSAT)*OVA/TWOVT)/TRIVT @^@[@@ GMO23=-3.0*GO3 GZ )@@G@@@C@[@@ GM2O3=-GMO23+(CBE+CSAT)*OVA/(VT*TWOVT) @B@[@@ GM3=(GHA )@@G@@M2-(CBE-CBC)*OVA/TWOVT)/TRIVT @^@[@@ GMU3=GMU2/TRIVT @^@[@@ HB )@@G@@GPI3=GPI2/TRIVT @^@[@@ CB2=CB1/TWOVT @^@[@@ CB2R=CB1R/TWHC )@@G@@OVT @^@[@@ VALUE(LOCD)=CJE1 @^@[@@ VALUE(LOCD+1)=CJE2@^@[@@HD )@@G@@ VALUE(LOCD+2)=CJC1@^@[@@ VALUE(LOCD+3)=CJC2@^@[@@ VALUE(HE )@@G@@LOCD+4)=GO2 @^@[@@ VALUE(LOCD+5)=GMO2@^@[@@ VALUE(LOCD+6)=GM2 HF )@@G@@@^@[@@ VALUE(LOCD+7)=GMU2@^@[@@ VALUE(LOCD+8)=GPI2@^@[@@ HG )@@G@@VALUE(LOCD+9)=CBO @ @[@@ VALUE(LOCD+10)=CBOR @^@[@@ VALUE(HH )@@G@@LOCD+11)=CB1@ @[@@ VALUE(LOCD+12)=CB1R @^@[@@ VALUE(LOCD+1HI )@@G@@3)=GO3@ @[@@ VALUE(LOCD+14)=GMO23 @ @[@@ VALUE(LOCD+15)=GM2HJ )@@G@@O3 @^@[@@ VALUE(LOCD+16)=GM3@ @[@@ VALUE(LOCD+17)=GMU3 HK )@@G@@@ @[@@ VALUE(LOCD+18)=GPI3 @^@[@@ VALUE(LOCD+19)=CB2@ @[@@HL )@@G@@ VALUE(LOCD+20)=CB2R @^@[@@ LOC=NODPLC(LOC) @#@[@@ HM )@@G@@GO TO 100 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 200 LOC=LOHN )@@G@@CATE(11) @ @[@@ 210 IF (LOC.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(HO )@@G@@LOC+1)@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ LOCM=NODPLC(LOC+5)@ @[@@HP )@@G@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@HQ )@@G@@ LOCD=LD0+NODPLC(LOC+12) @ @[@@ CSAT=VALUE(LOCM+1)*AREA @ @[@@HR )@@G@@ VTE=VALUE(LOCM+3)*VT @^@[@@ TAU=VALUE(LOCM+4) @ @[@@ HS )@@G@@CZERO=VALUE(LOCM+5)*AREA@^@[@@ PHIB=VALUE(LOCM+6)@^@[@@ XM=VALHT )@@G@@UE(LOCM+7) @ @[@@ FCPB=VALUE(LOCM+12) @^@[@@ VD=VALUE(LOCHU )@@G@@T) @^@[@@ GEQ=VALUE(LOCT+2) @#@[@@ EVD=1.0 @A@[@@ HV )@@G@@IF (VD.GE.0.0) EVD=EXP(VD/VTE)@A@[@@ IF (VD.GE.FCPB) GO TO 220 HW )@@G@@@^@[@@ ARG=1.0-VD/PHIB @ @[@@ SARG=EXP(XM*ALOG(ARG)) @^@[@@HX )@@G@@ CDJO=CZERO/SARG @#@[@@ ARGD=PHIB-VD@^@[@@ CDJ1=XM*CDJOHY )@@G@@/ARGD @A@[@@ CDJ2=XM*(1.0+XM)*CDJ1/ARGD @#@[@@ GO TO 230 HZ )@@G@@@B@[@@ 220 DENOM=EXP((1.0+XM)*ALOG(1.0-FCPB)) @A@[@@ CDJ1=CZERO*XIA )@@G@@M/(DENOM*PHIB) @#@[@@ CDJ2=0.0 @ @[@@ 230 CDBO=TAU*CSAT*EVD/IB )@@G@@VTE @^@[@@ CDB1=CDBO/VTE @^@[@@ TWOVTE=2.0*VTE @^@[@@IC )@@G@@ GEQ2=GEQ/TWOVTE @ @[@@ IF (VD.LE.0.0) GEQ2=0.0 @^@[@@ ID )@@G@@TRIVTE=3.0*VTE @^@[@@ GEQ3=GEQ2/TRIVTE @^@[@@ CDB2=CDB1/TWIE )@@G@@OVTE @^@[@@ VALUE(LOCD)=CDJ1 @^@[@@ VALUE(LOCD+1)=CDJ2@^@[@@IF )@@G@@ VALUE(LOCD+2)=CDBO@^@[@@ VALUE(LOCD+3)=CDB1@^@[@@ VALUE(IG )@@G@@LOCD+4)=GEQ2@^@[@@ VALUE(LOCD+5)=GEQ3@^@[@@ VALUE(LOCD+6)=CDB2IH )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @]@[@@II )@@G@@C FINISHED @[@[@@C @]@[@@ 300 RETURN@]@[@@ END @ @[@@ IJ )@@G@@SUBROUTINE DISTO(LOCO) @[@[@@C @F@[@@C THIS ROUTINE PERFORMS THIK )@@G@@E SMALL-SIGNAL DISTORTION ANALYSIS. @[@[@@C @G@[@@ COMMON /TABIIL )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEIM )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2IN )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@IO )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, IP )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,IQ )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APIR )@@G@@ROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NIS )@@G@@OPAGE @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUIT )@@G@@MNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@IU )@@G@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, IV )@@G@@@F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,IW )@@G@@@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLIX )@@G@@OG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSIY )@@G@@TOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /FLAGS/ IPRIZ )@@G@@NTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVJA )@@G@@LTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /AC/ JB )@@G@@FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOJC )@@G@@ISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZJD )@@G@@IN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIJE )@@G@@MAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)JF )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1JG )@@G@@),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ COMPLEX DIFVN1,DIFVN2,DIJH )@@G@@FVN3,DIFVI1,DIFVI2,DIFVI3,DSGO2,DSGM2, @G@[@@ 1 DSGMU2,DSGPI2,DJI )@@G@@SCB1,DSCB1R,DSCJE1,DSCJC1,DISTO1,DISTO2,DISTO3, @G@[@@ 2 DSGMO2,DGJJ )@@G@@M2O3,DGMO23,BEW,CEW,BCW,BE2W,CE2W,BC2W,BEW2,CEW2, @G@[@@ 3 BCWJK )@@G@@2,BEW12,CEW12,BCW12,DSCDB1,DSCDJ1,DSG2,CVABE,CVABC,CVACE, @^@[@@ 4JL )@@G@@ CVOUT,CVDIST @ @[@@ DIMENSION DISTIT(4) @ @[@@ DIMENSJM )@@G@@ION VDO(2,12) @^@[@@ COMPLEX CVDO(12) @A@[@@ EQUIVALENCE JN )@@G@@(CVDO(1),VDO(1,1))@G@[@@ DATA DISTIT / 8HDISTORTI, 8HON ANALY, 8HSIJO )@@G@@S , 8H / @[@[@@C @[@[@@C @^@[@@ ICVW1=(LD1+1JP )@@G@@)/2 @^@[@@ ICV2W1=ICVW1+NSTOP@^@[@@ ICVW2=ICV2W1+NSTOP@^@[@@JQ )@@G@@ ICVW12=ICVW2+NSTOP@ @[@@ ICVADJ=ICVW12+NSTOP @#@[@@ JR )@@G@@IPRNT=0 @ @[@@ IF (ICALC.GE.2) GO TO 10@ @[@@ IDNP=NODPLC(JS )@@G@@IDIST+2) @ @[@@ IDNN=NODPLC(IDIST+3) @ @[@@ LOCV=NODPLC(JT )@@G@@IDIST+1) @ @[@@ RLOAD=1.0/VALUE(LOCV+1) @]@[@@ KNTR=1@ @[@@JU )@@G@@ 10 IF (IDPRT.EQ.0) GO TO 30@A@[@@ IF (KNTR.GT.ICALC) GO TO 30 JV )@@G@@@#@[@@ IPRNT=1 @^@[@@ KNTR=KNTR+IDPRT @A@[@@ CALL TJW )@@G@@ITLE(0,LWIDTH,1,DISTIT) @A@[@@ 30 FREQ1=REAL(CVALUE(LOCO+1)) @^@[@@JX )@@G@@ FREQ2=SKW2*FREQ1 @D@[@@ CALL COPY16(CVALUE(LVN+1),CVALUE(ICVJY )@@G@@W1+1),NSTOP)@D@[@@ CVOUT=CVALUE(ICVW1+IDNP)-CVALUE(ICVW1+IDNN) JZ )@@G@@@A@[@@ CALL MAGPHS(CVOUT,OMAG,OPHASE)@[@[@@C @A@[@@C BEGIN THEKA )@@G@@ DISTORTION ANALYSIS @[@[@@C @^@[@@ DO 1000 KDISTO=1,7@^@[@@KB )@@G@@ CVDIST=(0.0,0.0) @D@[@@ GO TO (1000,110,120,130,140,160,170)KC )@@G@@,KDISTO @^@[@@ 110 FREQD=2.0*FREQ1 @C@[@@ ARG=SQRT(2.0*RLOADKD )@@G@@*REFPRL)/(OMAG*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 @C@[@@KE )@@G@@ WRITE (6,111) FREQ1,FREQD,OMAG,OPHASE @G@[@@ 111 FORMAT (///5KF )@@G@@X,*2ND HARMONIC DISTORTION*,30X,*FREQ1 = *,1PE9.2, @F@[@@ 1 * KG )@@G@@HZ*//5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X, @B@[@@ 2 *MAKH )@@G@@G *,E9.3,3X,*PHS *,0PF7.2) @#@[@@ GO TO 200 @^@[@@ 120 FREQD=KI )@@G@@3.0*FREQ1 @C@[@@ ARG=2.0*RLOAD*REFPRL/(OMAG*OMAG*OMAG) @A@[@@KJ )@@G@@ IF (IPRNT.EQ.0) GO TO 200 @C@[@@ WRITE (6,121) FREQ1,FREQKK )@@G@@D,OMAG,OPHASE @G@[@@ 121 FORMAT (1H1,4X,*3RD HARMONIC DISTORTION*,3KL )@@G@@0X,*FREQ1 = *,1PE9.2, @F@[@@ 1 * HZ*//5X,*DISTORTION FREQUENCY KM )@@G@@ *,E9.2,* HZ*,16X, @B@[@@ 2 *MAG *,E9.3,3X,*PHS *,0PF7.2) KN )@@G@@@#@[@@ GO TO 200 @#@[@@ 130 FREQD=FREQ2 @#@[@@ GO TO 200 KO )@@G@@@^@[@@ 140 FREQD=FREQ1-FREQ2 @D@[@@ ARG=SQRT(2.0*RLOAD*REFPRL)*SPWKP )@@G@@2/(OMAG*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 @F@[@@ KQ )@@G@@WRITE (6,151) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS @G@[@@ 151 KR )@@G@@FORMAT (1H1,4X,*2ND ORDER INTERMODULATION DIFFERENCE COMPONENT*, @F@[@@KS )@@G@@ 1 7X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*// @E@[@@KT )@@G@@ 2 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@[@@ 3KU )@@G@@ E9.3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@[@@ KV )@@G@@GO TO 200 @^@[@@ 160 FREQD=FREQ1+FREQ2 @D@[@@ ARG=SQRT(2.0*RLOADKW )@@G@@*REFPRL)*SPW2/(OMAG*OMAG) @A@[@@ IF (IPRNT.EQ.0) GO TO 200 KX )@@G@@@F@[@@ WRITE (6,161) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2PHS KY )@@G@@@F@[@@ 161 FORMAT (1H1,4X,*2ND ORDER INTERMODULATION SUM COMPONENT*, KZ )@@G@@@F@[@@ 1 14X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9.2,* HZ*//LA )@@G@@@E@[@@ 2 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*MAG *,@F@[@@LB )@@G@@ 3 E9.3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PF7.2) @#@[@@LC )@@G@@ GO TO 200 @ @[@@ 170 FREQD=2.0*FREQ1-FREQ2 @C@[@@ ARG=2.LD )@@G@@0*RLOAD*REFPRL*SPW2/(OMAG*OMAG*OMAG)@A@[@@ IF (IPRNT.EQ.0) GO TO 20LE )@@G@@0 @F@[@@ WRITE (6,171) FREQ1,FREQ2,FREQD,OMAG,OPHASE,OW2MAG,OW2LF )@@G@@PHS @G@[@@ 171 FORMAT (1H1,4X,*3RD ORDER INTERMODULATION DIFFERENCE CLG )@@G@@OMPONENT*, @F@[@@ 1 7X,*FREQ1 = *,1PE9.2,* HZ*,15X,*FREQ2 = *,E9LH )@@G@@.2,* HZ*// @E@[@@ 2 5X,*DISTORTION FREQUENCY *,E9.2,* HZ*,16X,*LI )@@G@@MAG *,@F@[@@ 3 E9.3,3X,*PHS *,0PF7.2,9X,*MAG *,1PE9.3,3X,*PHS *,0PLJ )@@G@@F7.2) @[@[@@C @ @[@@C LOAD AND DECOMPOSE Y MATRIX@[@[@@C @^@[@@LK )@@G@@ 200 OMEGA=TWOPI*FREQD @#@[@@ IGOOF=0 @#@[@@ CALL ACLOAD LL )@@G@@@#@[@@ CALL ACDCMP @A@[@@ IF (IGOOF.EQ.0) GO TO 220 @A@[@@LM )@@G@@ WRITE (6,211) IGOOF,FREQD @G@[@@ 211 FORMAT(^0WARNING: UNDERLN )@@G@@FLOW ^,I4,^ TIME(S) IN DISTORTION ANALYSIS@A@[@@ 1 AT FREQ = ^,1PE9.LO )@@G@@3,^ HZ^) @#@[@@ IGOOF=0 @A@[@@ 220 IF (KDISTO.EQ.4) GO TO 7LP )@@G@@10 @[@[@@C @ @[@@C OBTAIN ADJOINT SOLUTION @[@[@@C @B@[@@LQ )@@G@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) @ @[@@ CVALUE(LVN+IDNP)=-LR )@@G@@1.0 @ @[@@ CVALUE(LVN+IDNN)=+1.0 @#@[@@ CALL ACASOL @ @[@@LS )@@G@@ CVALUE(LVN+1)=(0.0,0.0) @E@[@@ CALL COPY16(CVALUE(LVN+1),CVALLT )@@G@@UE(ICVADJ+1),NSTOP) @B@[@@ CALL ZERO16(CVALUE(LVN+1),NSTOP) LU )@@G@@@[@[@@C @]@[@@C BJTS @[@[@@C @A@[@@ IF (JELCNT(12).EQ.LV )@@G@@0) GO TO 500@#@[@@ ITITLE=0 @G@[@@ 301 FORMAT (////1X,*BJT DISTLW )@@G@@ORTION COMPONENTS*//1X,*NAME*,11X,*GM*, @G@[@@ 1 8X,*GPI*,7X,*GOLX )@@G@@*,8X,*GMU*,6X,*GMO2*,7X,*CB*,8X,*CBR*,7X,*CJE*, @ @[@@ 2 7X,*CJC*,LY )@@G@@6X,*TOTAL*) @G@[@@ 311 FORMAT (////1X,*BJT DISTORTION COMPONENTS*//1X,*LZ )@@G@@NAME*,11X,*GM*, @G@[@@ 1 8X,*GPI*,7X,*GO*,8X,*GMU*,6X,*GMO2*,7X,MA )@@G@@*CB*,8X,*CBR*,7X,*CJE*, @D@[@@ 2 7X,*CJC*,6X,*GM203*,5X,*GMO23*,5XMB )@@G@@,*TOTAL*) @^@[@@ 320 LOC=LOCATE(12) @ @[@@ 330 IF (LOC.EQ.0) GO TMC )@@G@@O 500 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+22) MD )@@G@@@ @[@@ LOCD=LD0+NODPLC(LOC+23) @ @[@@ NODE1=NODPLC(LOC+5) ME )@@G@@@ @[@@ NODE2=NODPLC(LOC+6) @ @[@@ NODE3=NODPLC(LOC+7) MF )@@G@@@^@[@@ CJE1=VALUE(LOCD) @^@[@@ CJE2=VALUE(LOCD+1)@^@[@@ MG )@@G@@CJC1=VALUE(LOCD+2)@^@[@@ CJC2=VALUE(LOCD+3)@^@[@@ GO2=VALUE(LOMH )@@G@@CD+4) @^@[@@ GMO2=VALUE(LOCD+5)@^@[@@ GM2=VALUE(LOCD+6) @^@[@@MI )@@G@@ GMU2=VALUE(LOCD+7)@^@[@@ GPI2=VALUE(LOCD+8)@^@[@@ CB1=VAMJ )@@G@@LUE(LOCD+11)@ @[@@ CB1R=VALUE(LOCD+12) @^@[@@ GO3=VALUE(LOMK )@@G@@CD+13)@ @[@@ GMO23=VALUE(LOCD+14) @ @[@@ GM2O3=VALUE(LOCD+1ML )@@G@@5) @^@[@@ GM3=VALUE(LOCD+16)@ @[@@ GMU3=VALUE(LOCD+17) MM )@@G@@@ @[@@ GPI3=VALUE(LOCD+18) @^@[@@ CB2=VALUE(LOCD+19)@ @[@@MN )@@G@@ CB2R=VALUE(LOCD+20) @D@[@@ BEW=CVALUE(ICVW1+NODE2)-CVALUEMO )@@G@@(ICVW1+NODE3) @D@[@@ CEW=CVALUE(ICVW1+NODE1)-CVALUE(ICVW1+NODE3MP )@@G@@) @D@[@@ BCW=CVALUE(ICVW1+NODE2)-CVALUE(ICVW1+NODE1) @A@[@@MQ )@@G@@ IF (KDISTO.EQ.2) GO TO 370 @D@[@@ BE2W=CVALUE(ICV2W1+NODE2MR )@@G@@)-CVALUE(ICV2W1+NODE3) @D@[@@ CE2W=CVALUE(ICV2W1+NODE1)-CVALUE(ICVMS )@@G@@2W1+NODE3) @D@[@@ BC2W=CVALUE(ICV2W1+NODE2)-CVALUE(ICV2W1+NODE1) MT )@@G@@@A@[@@ IF (KDISTO.EQ.3) GO TO 380 @D@[@@ BEW2=CVALUE(ICVW2+MU )@@G@@NODE2)-CVALUE(ICVW2+NODE3) @D@[@@ CEW2=CVALUE(ICVW2+NODE1)-CVALUMV )@@G@@E(ICVW2+NODE3) @D@[@@ BCW2=CVALUE(ICVW2+NODE2)-CVALUE(ICVW2+NODEMW )@@G@@1) @A@[@@ IF (KDISTO.EQ.5) GO TO 390 @A@[@@ IF (KDISTO.EMX )@@G@@Q.6) GO TO 400 @D@[@@ BEW12=CVALUE(ICVW12+NODE2)-CVALUE(ICVW12+NMY )@@G@@ODE3) @D@[@@ CEW12=CVALUE(ICVW12+NODE1)-CVALUE(ICVW12+NODE3) @D@[@@MZ )@@G@@ BCW12=CVALUE(ICVW12+NODE2)-CVALUE(ICVW12+NODE1) @#@[@@ GO TO NA )@@G@@410 @[@[@@C @A@[@@C CALCULATE HD2 CURRENT GENERATORS @[@[@@C NB )@@G@@@^@[@@ 370 DIFVN1=0.5*CEW*CEW@^@[@@ DIFVN2=0.5*BEW*BEW@^@[@@ NC )@@G@@DIFVN3=0.5*BCW*BCW@ @[@@ DSGMO2=GMO2*0.5*BEW*CEW @#@[@@ GO TO ND )@@G@@420 @[@[@@C @A@[@@C CALCULATE HD3 CURRENT GENERATORS @[@[@@C NE )@@G@@@ @[@@ 380 DIFVI1=0.50*CEW*CE2W @ @[@@ DIFVN1=0.25*CEW*CEW*CEW NF )@@G@@@ @[@@ DIFVI2=0.50*BEW*BE2W @ @[@@ DIFVN2=0.25*BEW*BEW*BEW NG )@@G@@@ @[@@ DIFVI3=0.50*BCW*BC2W @ @[@@ DIFVN3=0.25*BCW*BCW*BCW NH )@@G@@@B@[@@ DSGMO2=GMO2*(BEW*CE2W+BE2W*CEW)*0.5 @#@[@@ GO TO 430 NI )@@G@@@[@[@@C @A@[@@C CALCULATE IM2D CURRENT GENERATORS@[@[@@C @ @[@@NJ )@@G@@ 390 DIFVN1=CEW*CONJG(CEW2) @ @[@@ DIFVN2=BEW*CONJG(BEW2) @ @[@@NK )@@G@@ DIFVN3=BCW*CONJG(BCW2) @E@[@@ DSGMO2=GMO2*0.5*(BEW*CONJG(CEWNL )@@G@@2)+CEW*CONJG(BEW2)) @#@[@@ GO TO 420 @[@[@@C @A@[@@C CALNM )@@G@@CULATE IM2S CURRENT GENERATORS@[@[@@C @^@[@@ 400 DIFVN1=CEW*CEW2 NN )@@G@@@^@[@@ DIFVN2=BEW*BEW2 @^@[@@ DIFVN3=BCW*BCW2 @B@[@@ NO )@@G@@DSGMO2=GMO2*0.5*(BEW*CEW2+BEW2*CEW) @#@[@@ GO TO 420 @[@[@@C NP )@@G@@@A@[@@C CALCULATE IM3 CURRENT GENERATORS @[@[@@C @C@[@@ 410 DIFVI1NQ )@@G@@=0.5*(CE2W*CONJG(CEW2)+CEW*CEW12) @C@[@@ DIFVI2=0.5*(BE2W*CONJG(BNR )@@G@@EW2)+BEW*BEW12) @C@[@@ DIFVI3=0.5*(BC2W*CONJG(BCW2)+BCW*BCW12) NS )@@G@@@B@[@@ DIFVN1=CEW*CEW*CONJG(CEW2)*0.75 @B@[@@ DIFVN2=BEW*BNT )@@G@@EW*CONJG(BEW2)*0.75 @B@[@@ DIFVN3=BCW*BCW*CONJG(BCW2)*0.75 NU )@@G@@@G@[@@ DSGMO2=GMO2*0.5*(CONJG(BEW2)*CE2W+BEW*CEW12+CONJG(CEW2)*BE2WNV )@@G@@+ @^@[@@ 1 CEW*BEW12) @#@[@@ GO TO 430 @[@[@@C NW )@@G@@@^@[@@ 420 DSGO2=GO2*DIFVN1 @^@[@@ DSGM2=GM2*DIFVN2 @^@[@@ NX )@@G@@DSGMU2=GMU2*DIFVN3@^@[@@ DSGPI2=GPI2*DIFVN2@E@[@@ DSCB1=0.5*CBNY )@@G@@1*OMEGA*CMPLX(-AIMAG(DIFVN2),REAL(DIFVN2))@F@[@@ DSCB1R=0.5*CB1R*OMNZ )@@G@@EGA*CMPLX(-AIMAG(DIFVN3),REAL(DIFVN3)) @F@[@@ DSCJE1=0.5*CJE1*OMOA )@@G@@EGA*CMPLX(-AIMAG(DIFVN2),REAL(DIFVN2)) @F@[@@ DSCJC1=0.5*CJC1*OMOB )@@G@@EGA*CMPLX(-AIMAG(DIFVN3),REAL(DIFVN3)) @#@[@@ GO TO 440 @[@[@@OC )@@G@@C @B@[@@ 430 DSGO2=2.0*GO2*DIFVI1+GO3*DIFVN1 @B@[@@ DSGM2=OD )@@G@@2.0*GM2*DIFVI2+GM3*DIFVN2 @B@[@@ DSGMU2=2.0*GMU2*DIFVI3+GMU3*DIOE )@@G@@FVN3 @B@[@@ DSGPI2=2.0*GPI2*DIFVI2+GPI3*DIFVN2 @C@[@@ DSCB1=OF )@@G@@OMEGA*(CB1*DIFVI2+CB2*DIFVN2/3.0) @C@[@@ DSCB1=CMPLX(-AIMAG(DSCB1OG )@@G@@),REAL(DSCB1)) @C@[@@ DSCB1R=OMEGA*(CB1R*DIFVI3+CB2R*DIFVN3/3.0)OH )@@G@@@C@[@@ DSCB1R=CMPLX(-AIMAG(DSCB1R),REAL(DSCB1R)) @C@[@@ DSCJE1OI )@@G@@=OMEGA*(CJE1*DIFVI2+CJE2*DIFVN2/3.0)@C@[@@ DSCJE1=CMPLX(-AIMAG(DSCJOJ )@@G@@E1),REAL(DSCJE1)) @C@[@@ DSCJC1=OMEGA*(CJC1*DIFVI3+CJC2*DIFVN3/3.0)OK )@@G@@@C@[@@ DSCJC1=CMPLX(-AIMAG(DSCJC1),REAL(DSCJC1)) @[@[@@C @D@[@@OL )@@G@@C DETERMINE CONTRIBUTION OF EACH DISTORTION SOURCE @[@[@@C @D@[@@OM )@@G@@ 440 CVABE=CVALUE(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE3) @D@[@@ CVABC=ON )@@G@@CVALUE(ICVADJ+NODE2)-CVALUE(ICVADJ+NODE1) @D@[@@ CVACE=CVALUE(ICVADOO )@@G@@J+NODE1)-CVALUE(ICVADJ+NODE3) @A@[@@ DISTO1=DSGM2+DSGO2+DSGMO2 OP )@@G@@@A@[@@ DISTO2=DSGPI2+DSCB1+DSCJE1 @A@[@@ DISTO3=DSGMU2+DSCBOQ )@@G@@1R+DSCJC1 @ @[@@ CVDO(1)=DSGM2*CVACE*ARG @ @[@@ CVDO(2)=DSGPOR )@@G@@I2*CVABE*ARG@ @[@@ CVDO(3)=DSGO2*CVACE*ARG @ @[@@ CVDO(4)=DSGMOS )@@G@@U2*CVABC*ARG@ @[@@ CVDO(5)=DSGMO2*CVACE*ARG@ @[@@ CVDO(6)=DSCBOT )@@G@@1*CVABE*ARG @ @[@@ CVDO(7)=DSCB1R*CVABC*ARG@ @[@@ CVDO(8)=DSCJOU )@@G@@E1*CVABE*ARG@ @[@@ CVDO(9)=DSCJC1*CVABC*ARG@A@[@@ IF (KDISTO.EOV )@@G@@Q.3) GO TO 450 @A@[@@ IF (KDISTO.EQ.7) GO TO 460 @G@[@@ OW )@@G@@CVDO(10)=CVDO(1)+CVDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @^@[@@OX )@@G@@ 1 CVDO(8)+CVDO(9)@ @[@@ CVDIST=CVDIST+CVDO(10) @A@[@@ OY )@@G@@IF (IPRNT.EQ.0) GO TO 480 @^@[@@ DO 445 J=1,10 @A@[@@ OZ )@@G@@CALL MAGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLX(XMAG,XPHS)@#@[@@PA )@@G@@ 445 CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ PB )@@G@@ITITLE=1 @D@[@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,10) PC )@@G@@@A@[@@ 446 FORMAT(1H0,A8,*MAG*,1P12E10.3)@B@[@@ WRITE (6,447) (VDOPD )@@G@@(2,J),J=1,10) @B@[@@ 447 FORMAT(9X,*PHS*,12(1X,F7.2,2X)) @#@[@@PE )@@G@@ GO TO 480 @A@[@@ 450 DGM2O3=GM2O3*CEW*BEW*BEW*0.25 @A@[@@ PF )@@G@@DGMO23=GMO23*BEW*CEW*CEW*0.25 @#@[@@ GO TO 470 @G@[@@ 460 DGM2O3PG )@@G@@=GM2O3*(0.5*BEW*CONJG(BEW2)*CEW+0.25*BEW*BEW*CONJG(CEW2)) @G@[@@ PH )@@G@@DGMO23=GMO23*(0.5*CEW*CONJG(CEW2)*BEW+0.25*CEW*CEW*CONJG(BEW2)) @A@[@@PI )@@G@@ 470 DISTO1=DISTO1+DGM2O3+DGMO23 @A@[@@ CVDO(10)=DGM2O3*CVACE*ARPJ )@@G@@G @A@[@@ CVDO(11)=DGMO23*CVACE*ARG @G@[@@ CVDO(12)=CVDPK )@@G@@O(1)+CVDO(2)+CVDO(3)+CVDO(4)+CVDO(5)+CVDO(6)+CVDO(7)+ @B@[@@ 1 CVDPL )@@G@@O(8)+CVDO(9)+CVDO(10)+CVDO(11)@ @[@@ CVDIST=CVDIST+CVDO(12) @A@[@@PM )@@G@@ IF (IPRNT.EQ.0) GO TO 480 @^@[@@ DO 475 J=1,12 @A@[@@PN )@@G@@ CALL MAGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLX(XMAG,XPHS)PO )@@G@@@#@[@@ 475 CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (6,311)@#@[@@PP )@@G@@ ITITLE=1 @D@[@@ WRITE (6,446) VALUE(LOCV),(VDO(1,J),J=1,12PQ )@@G@@) @B@[@@ WRITE (6,447) (VDO(2,J),J=1,12) @E@[@@ 480 CVALUEPR )@@G@@(LVN+NODE1)=CVALUE(LVN+NODE1)-DISTO1+DISTO3 @E@[@@ CVALUE(LVN+NPS )@@G@@ODE2)=CVALUE(LVN+NODE2)-DISTO2-DISTO3 @E@[@@ CVALUE(LVN+NODE3)=PT )@@G@@CVALUE(LVN+NODE3)+DISTO1+DISTO2 @^@[@@ LOC=NODPLC(LOC) @#@[@@PU )@@G@@ GO TO 330 @[@[@@C @^@[@@C JUNCTION DIODES @[@[@@C PV )@@G@@@A@[@@ 500 IF (JELCNT(11).EQ.0) GO TO 700@#@[@@ ITITLE=0 @F@[@@PW )@@G@@ 501 FORMAT (////1X,*DIODE DISTORTION COMPONENTS*//1X,*NAME*, @C@[@@PX )@@G@@ 1 11X,*GEQ*,7X,*CB*,8X,*CJ*,7X,*TOTAL*) @^@[@@ 510 LOC=LOCATE(1PY )@@G@@1) @ @[@@ 520 IF (LOC.EQ.0) GO TO 700 @^@[@@ LOCV=NODPLC(LOC+1)PZ )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) QA )@@G@@@ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+5)@ @[@@QB )@@G@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@QC )@@G@@ LOCD=LD0+NODPLC(LOC+12) @^@[@@ CDJ1=VALUE(LOCD) @^@[@@ QD )@@G@@CDJ2=VALUE(LOCD+1)@^@[@@ CDB1=VALUE(LOCD+3)@^@[@@ GEQ2=VALUE(LQE )@@G@@OCD+4)@^@[@@ GEQ3=VALUE(LOCD+5)@^@[@@ CDB2=VALUE(LOCD+6)@D@[@@QF )@@G@@ BEW=CVALUE(ICVW1+NODE3)-CVALUE(ICVW1+NODE2) @A@[@@ IF (KDQG )@@G@@ISTO.EQ.2) GO TO 540 @D@[@@ BE2W=CVALUE(ICV2W1+NODE3)-CVALUE(ICVQH )@@G@@2W1+NODE2) @A@[@@ IF (KDISTO.EQ.3) GO TO 550 @D@[@@ BEW2=CQI )@@G@@VALUE(ICVW2+NODE3)-CVALUE(ICVW2+NODE2) @A@[@@ IF (KDISTO.EQ.5) GQJ )@@G@@O TO 560 @A@[@@ IF (KDISTO.EQ.6) GO TO 570 @D@[@@ BEW12=QK )@@G@@CVALUE(ICVW12+NODE3)-CVALUE(ICVW12+NODE2) @#@[@@ GO TO 580 @[@[@@QL )@@G@@C @B@[@@C CALCULATE HD2 CURRENT GENERATORS @[@[@@C @^@[@@QM )@@G@@ 540 DIFVN1=0.5*BEW*BEW@#@[@@ GO TO 590 @[@[@@C @B@[@@C CQN )@@G@@ALCULATE HD3 CURRENT GENERATORS @[@[@@C @ @[@@ 550 DIFVI1=0.5*BQO )@@G@@EW*BE2W @ @[@@ DIFVN1=0.25*BEW*BEW*BEW @#@[@@ GO TO 600 QP )@@G@@@[@[@@C @B@[@@C CALCULATE IM2D CURRENT GENERATORS @[@[@@C QQ )@@G@@@ @[@@ 560 DIFVN1=BEW*CONJG(BEW2) @#@[@@ GO TO 590 @[@[@@C QR )@@G@@@B@[@@C CALCULATE IM2S CURRENT GENERATORS @[@[@@C @^@[@@ 570 QS )@@G@@DIFVN1=BEW*BEW2 @#@[@@ GO TO 590 @[@[@@C @B@[@@C CALCULAQT )@@G@@TE IM3 CURRENT GENERATORS @[@[@@C @C@[@@ 580 DIFVI1=0.5*(BE2W*CQU )@@G@@ONJG(BEW2)+BEW*BEW12) @B@[@@ DIFVN1=BEW*BEW*CONJG(BEW2)*0.75 QV )@@G@@@#@[@@ GO TO 600 @^@[@@ 590 DSG2=GEQ2*DIFVN1 @F@[@@ DSCDB1QW )@@G@@=0.5*CDB1*OMEGA*CMPLX(-AIMAG(DIFVN1),REAL(DIFVN1)) @F@[@@ DSCDJ1QX )@@G@@=0.5*CDJ1*OMEGA*CMPLX(-AIMAG(DIFVN1),REAL(DIFVN1)) @#@[@@ GO TO QY )@@G@@610 @[@[@@C @B@[@@ 600 DSG2=2.0*GEQ2*DIFVI1+GEQ3*DIFVN1 @C@[@@QZ )@@G@@ DSCDB1=OMEGA*(CDB1*DIFVI1+CDB2*DIFVN1/3.0)@C@[@@ DSCDB1=CMPLXRA )@@G@@(-AIMAG(DSCDB1),REAL(DSCDB1)) @C@[@@ DSCDJ1=OMEGA*(CDJ1*DIFVI1+CDJ2RB )@@G@@*DIFVN1/3.0)@C@[@@ DSCDJ1=CMPLX(-AIMAG(DSCDJ1),REAL(DSCDJ1)) @[@[@@RC )@@G@@C @D@[@@C DETERMINE CONTRIBUTION OF EACH DISTORTION SOURCE @[@[@@RD )@@G@@C @D@[@@ 610 CVABE=CVALUE(ICVADJ+NODE3)-CVALUE(ICVADJ+NODE2) @A@[@@RE )@@G@@ DISTO1=DSG2+DSCDB1+DSCDJ1 @ @[@@ CVDO(1)=DSG2*CVABE*ARG RF )@@G@@@ @[@@ CVDO(2)=DSCDB1*CVABE*ARG@ @[@@ CVDO(3)=DSCDJ1*CVABE*ARGRG )@@G@@@B@[@@ CVDO(4)=CVDO(1)+CVDO(2)+CVDO(3) @ @[@@ CVDIST=CVDISRH )@@G@@T+CVDO(4) @A@[@@ IF (IPRNT.EQ.0) GO TO 680 @#@[@@ DO 670RI )@@G@@ J=1,4@A@[@@ CALL MAGPHS(CVDO(J),XMAG,XPHS)@ @[@@ CVDO(J)=CMPLRJ )@@G@@X(XMAG,XPHS)@#@[@@ 670 CONTINUE @A@[@@ IF (ITITLE.EQ.0) WRITE (RK )@@G@@6,501)@#@[@@ ITITLE=1 @C@[@@ WRITE (6,446) VALUE(LOCV),(VDORL )@@G@@(1,J),J=1,4)@A@[@@ WRITE (6,447) (VDO(2,J),J=1,4)@C@[@@ 680 CVALUERM )@@G@@(LVN+NODE2)=CVALUE(LVN+NODE2)+DISTO1@C@[@@ CVALUE(LVN+NODE3)=CVALUERN )@@G@@(LVN+NODE3)-DISTO1@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 520 RO )@@G@@@[@[@@C @C@[@@C OBTAIN TOTAL DISTORTION SOLUTION IF NECESSARY@[@[@@RP )@@G@@C @D@[@@ 700 GO TO (1000,710,790,710,710,840,860),KDISTO @A@[@@RQ )@@G@@ 710 IF (KDISTO.EQ.4) GO TO 730 @^@[@@ DO 720 I=2,NSTOP @^@[@@RR )@@G@@ J=NODPLC(ISWAP+I) @A@[@@ CVALUE(NDIAG+I)=CVALUE(LVN+J) @#@[@@RS )@@G@@ 720 CONTINUE @D@[@@ CALL COPY16(CVALUE(NDIAG+1),CVALUE(LVN+1),RT )@@G@@NSTOP)@#@[@@ 730 CALL ACSOL @ @[@@ CVALUE(LVN+1)=(0.0,0.0) @[@[@@RU )@@G@@C @B@[@@C STORE SOLUTION, PRINT AND STORE ANSWERS@[@[@@C @D@[@@RV )@@G@@ 760 GO TO (1000,770,790,800,820,840,860),KDISTO @E@[@@ 770 CALL CRW )@@G@@OPY16(CVALUE(LVN+1),CVALUE(ICV2W1+1),NSTOP) @B@[@@ CALL MAGPHS(RX )@@G@@CVDIST,O2MAG,O2PHS) @A@[@@ IF (IPRNT.EQ.0) GO TO 900 @ @[@@RY )@@G@@ O2LOG=20.0*ALOG10(O2MAG)@B@[@@ WRITE (6,781) O2MAG,O2PHS,O2LORZ )@@G@@G @G@[@@ 781 FORMAT (///5X,*HD2 MAGNITUDE *,1PE10.3,5X,*PHASE SA )@@G@@ *,0PF7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)@#@[@@ GO TO 900 SB )@@G@@@B@[@@ 790 CALL MAGPHS(CVDIST,O3MAG,O3PHS) @A@[@@ IF (IPRNT.EQSC )@@G@@.0) GO TO 900 @ @[@@ O3LOG=20.0*ALOG10(O3MAG)@B@[@@ WRITE SD )@@G@@(6,791) O3MAG,O3PHS,O3LOG @G@[@@ 791 FORMAT (///5X,*HD3 MAGNITUSE )@@G@@DE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)SF )@@G@@@#@[@@ GO TO 900 @D@[@@ 800 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVSG )@@G@@W2+1),NSTOP)@D@[@@ CVOUT=CVALUE(ICVW2+IDNP)-CVALUE(ICVW2+IDNN) SH )@@G@@@B@[@@ CALL MAGPHS(CVOUT,OW2MAG,OW2PHS) @#@[@@ GO TO 1000 SI )@@G@@@E@[@@ 820 CALL COPY16(CVALUE(LVN+1),CVALUE(ICVW12+1),NSTOP) @B@[@@SJ )@@G@@ 840 CALL MAGPHS(CVDIST,O12MAG,O12PHS) @A@[@@ IF (IPRNT.EQ.0) GOSK )@@G@@ TO 900 @A@[@@ O12LOG=20.0*ALOG10(O12MAG) @A@[@@ IF (KDSL )@@G@@ISTO.EQ.6) GO TO 850 @B@[@@ WRITE (6,841) O12MAG,O12PHS,O12LOG SM )@@G@@@G@[@@ 841 FORMAT (///5X,*IM2D MAGNITUDE *,1PE10.3,5X,*PHASE *,0PFSN )@@G@@7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)@#@[@@ GO TO 900 @B@[@@SO )@@G@@ 850 WRITE (6,851) O12MAG,O12PHS,O12LOG @G@[@@ 851 FORMAT (///5X,*IM2SP )@@G@@S MAGNITUDE *,1PE10.3,5X,*PHASE *,0PF7.2, @ @[@@ 1 5X,*= *,SQ )@@G@@F7.2,* DB*)@#@[@@ GO TO 900 @B@[@@ 860 CALL MAGPHS(CVDIST,O21MASR )@@G@@G,O21PHS) @A@[@@ IF (IPRNT.EQ.0) GO TO 900 @A@[@@ O21LOGSS )@@G@@=20.0*ALOG10(O21MAG) @B@[@@ WRITE (6,861) O21MAG,O21PHS,O21LOG ST )@@G@@@G@[@@ 861 FORMAT (///5X,*IM3 MAGNITUDE *,1PE10.3,5X,*PHASE *,0PFSU )@@G@@7.2, @ @[@@ 1 5X,*= *,F7.2,* DB*)@D@[@@ CMA=ABS(4.0*O21MAGSV )@@G@@*COS((O21PHS-OPHASE)/RAD)) @ @[@@ CMA=AMAX1(CMA,1.0E-20) @D@[@@SW )@@G@@ CMP=ABS(4.0*O21MAG*SIN((O21PHS-OPHASE)/RAD)) @ @[@@ CMP=AMSX )@@G@@AX1(CMP,1.0E-20) @ @[@@ CMALOG=20.0*ALOG10(CMA) @ @[@@ CMPLOGSY )@@G@@=20.0*ALOG10(CMP) @^@[@@ WRITE (6,866) @F@[@@ 866 FORMAT (////SZ )@@G@@5X,*APPROXIMATE CROSS MODULATION COMPONENTS*) @ @[@@ WRITE (6,871TA )@@G@@) CMA,CMALOG@G@[@@ 871 FORMAT (/5X,*CMA MAGNITUDE *,1PE10.3,24X,*=TB )@@G@@ *,0PF7.2,* DB*)@ @[@@ WRITE (6,881) CMP,CMPLOG@G@[@@ 881 FORMATTC )@@G@@ (/5X,*CMP MAGNITUDE *,1PE10.3,24X,*= *,0PF7.2,* DB*)@[@[@@C TD )@@G@@@ @[@@C SAVE DISTORTION OUTPUTS @[@[@@C @^@[@@ 900 IFLAG=KDISTOTE )@@G@@+2 @A@[@@ IF (IFLAG.GE.7) IFLAG=IFLAG-1 @^@[@@ LOC=LOCATE(4TF )@@G@@5) @ @[@@ 910 IF (LOC.EQ.0) GO TO 1000@C@[@@ IF (NODPLC(LOC+5).TG )@@G@@NE.IFLAG) GO TO 920 @^@[@@ ISEQ=NODPLC(LOC+4)@ @[@@ CVALUETH )@@G@@(LOCO+ISEQ)=CVDIST@^@[@@ 920 LOC=NODPLC(LOC) @#@[@@ GO TO 910 TI )@@G@@@#@[@@ 1000 CONTINUE @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@TJ )@@G@@ 2000 RETURN@]@[@@ END @#@[@@ OVERLAY(7,0)@^@[@@ PROGRATK )@@G@@M OVTPVT @[@[@@C @G@[@@C THIS ROUTINE GENERATES THE REQUESTEDTL )@@G@@ TABULAR LISTINGS OF ANALYSIS @E@[@@C RESULTS. IT CALLS PLOT TO GENERATTM )@@G@@E LINE-PRINTER PLOTS. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ITN )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOTO )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSTP )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOTQ )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4TR )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@TS )@@G@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELTT )@@G@@CNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTU )@@G@@TLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)TV )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOTW )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ TX )@@G@@COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@TY )@@G@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@[@@TZ )@@G@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@UA )@@G@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINUB )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @G@[@@UC )@@G@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, UD )@@G@@@F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, UE )@@G@@@F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), UF )@@G@@@#@[@@ 3 IPIMAT(4)@F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELUG )@@G@@MAX,TDMAX,FORFRE,JTRFLG @G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XUH )@@G@@START,XINCR,ITAB(8),ITYPE(8), @C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTRUI )@@G@@,NUMDGT @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPUJ )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOUK )@@G@@DPLC(1),CVALUE(1))@[@[@@C @#@[@@ COMPLEX CVAL@ @[@@ DIMENSUL )@@G@@ION PRFORM(3) @ @[@@ DIMENSION SUBTIT(4,3) @G@[@@ DATA SUM )@@G@@UBTIT / 8HDC TRANS, 8HFER CURV, 8HES , 8H , @G@[@@ 1UN )@@G@@ 8HTRANSIEN, 8HT ANALYS, 8HIS , 8H , @G@[@@UO )@@G@@ 2 8HAC ANALY, 8HSIS , 8H , 8H / UP )@@G@@@E@[@@ DATA PRFORM / 8H(1PE11.3, 8H,2X,8E00, 8H.00) / @A@[@@UQ )@@G@@ DATA APER,RPRN / 1H., 1H) / @[@[@@C @^@[@@ CALL SECOND(UR )@@G@@T1) @A@[@@ IF (ICALC.LE.0) GO TO 1000 @#@[@@ CALL CRUNCH US )@@G@@@A@[@@ IF (NOGO.LT.0) GO TO 1000 @[@[@@C @F@[@@C CONSTRUCTUT )@@G@@ FORMAT STATEMENT TO BE USED FOR PRINTING THE OUTPUTS @[@[@@C @ @[@@UU )@@G@@ IFRACT=MAX0(NUMDGT-1,0) @^@[@@ IFWDTH=IFRACT+9 @#@[@@ UV )@@G@@IPOS=15 @B@[@@ CALL ALFNUM(IFWDTH,PRFORM,IPOS) @B@[@@ UW )@@G@@CALL MOVE(PRFORM,IPOS,APER,1,1) @#@[@@ IPOS=IPOS+1 @B@[@@ UX )@@G@@CALL ALFNUM(IFRACT,PRFORM,IPOS) @B@[@@ CALL MOVE(PRFORM,IPOS,RPUY )@@G@@RN,1,1) @[@[@@C @B@[@@ NOPRLN=MIN0(8,(LWIDTH-12)/IFWDTH) UZ )@@G@@@[@[@@C @ @[@@ IF (MODE-2) 5,10,300 @ @[@@ 5 NUMOUT=JELCNVA )@@G@@T(41)+1 @#@[@@ GO TO 15 @ @[@@ 10 NUMOUT=JELCNT(42)+1 VB )@@G@@@[@[@@C @B@[@@C DC AND TRANSIENT ANALYSIS PRINTING @[@[@@C VC )@@G@@@ @[@@ 15 LOC=LOCATE(30+MODE) @ @[@@ 20 IF (LOC.EQ.0) GO TO 200 VD )@@G@@@B@[@@ KNTR=MIN0(NOPRLN,NODPLC(LOC+3)) @ @[@@ IF (KNTR.LE.VE )@@G@@0) GO TO 120@C@[@@ CALL TITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@VF )@@G@@ CALL SETPRN(LOC) @[@[@@C @^@[@@C GET BUFFER SPACE @[@[@@VG )@@G@@C @ @[@@ CALL GETMEM(LOCX,NPOINT)@A@[@@ CALL GETMEM(LOCY,KVH )@@G@@NTR*NPOINT) @[@[@@C @^@[@@C INTERPOLATE OUTPUTS @[@[@@C @A@[@@VI )@@G@@ CALL NTRPL8(LOCX,LOCY,NUMPNT) @[@[@@C @#@[@@C PRINT OUTPUTS VJ )@@G@@@[@[@@C @^@[@@ DO 100 I=1,NUMPNT @^@[@@ XVAR=VALUE(LOCX+I)VK )@@G@@@#@[@@ LOCYT=LOCY @^@[@@ DO 50 K=1,KNTR @ @[@@ YVAR(KVL )@@G@@)=VALUE(LOCYT+I) @^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 50 CONTINUE VM )@@G@@@C@[@@ WRITE (6,PRFORM) XVAR,(YVAR(K),K=1,KNTR) @#@[@@ 100 CONTINVN )@@G@@UE @^@[@@ WRITE (6,111) @#@[@@ 111 FORMAT(1HY) @^@[@@ VO )@@G@@CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @^@[@@ 120 LOC=NODPLC(LVP )@@G@@OC) @#@[@@ GO TO 20 @[@[@@C @B@[@@C DC AND TRANSIENT ANALVQ )@@G@@YSIS PLOTTING @[@[@@C @ @[@@ 200 LOC=LOCATE(35+MODE) @ @[@@VR )@@G@@ 210 IF (LOC.EQ.0) GO TO 250 @^@[@@ KNTR=NODPLC(LOC+3)@ @[@@ VS )@@G@@IF (KNTR.LE.0) GO TO 220@^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CALL TVT )@@G@@ITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPLT(LOC) @[@[@@VU )@@G@@C @^@[@@C GET BUFFER SPACE @[@[@@C @ @[@@ CALL GETMEM(VV )@@G@@LOCX,NPOINT)@A@[@@ CALL GETMEM(LOCY,KNTR*NPOINT) @[@[@@C @C@[@@VW )@@G@@C INTERPOLATE OUTPUTS AND LOAD PLOT BUFFERS @[@[@@C @A@[@@ VX )@@G@@CALL NTRPL8(LOCX,LOCY,NUMPNT) @B@[@@ CALL PLOT(NUMPNT,LOCX,LOCY,LOCVY )@@G@@V) @^@[@@ CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @^@[@@VZ )@@G@@ 220 LOC=NODPLC(LOC) @#@[@@ GO TO 210 @[@[@@C @^@[@@C FOUWA )@@G@@RIER ANALYSIS @[@[@@C @A@[@@ 250 IF (MODE.EQ.1) GO TO 1000 WB )@@G@@@A@[@@ IF (NFOUR.EQ.0) GO TO 1000 @A@[@@ IF (NOGO.NE.0) GO WC )@@G@@TO 1000 @#@[@@ CALL FOURAN @#@[@@ GO TO 1000 @[@[@@C WD )@@G@@@^@[@@C AC ANALYSIS PRINTING @[@[@@C @C@[@@ 300 NUMOUT=JELCNT(43)+WE )@@G@@JELCNT(44)+JELCNT(45)+1 @^@[@@ DO 599 ID=33,35 @^@[@@ LOC=LOWF )@@G@@CATE(ID) @ @[@@ 320 IF (LOC.EQ.0) GO TO 599 @B@[@@ KNTR=MIN0(NOWG )@@G@@PRLN,NODPLC(LOC+3)) @ @[@@ IF (KNTR.LE.0) GO TO 595@C@[@@ WH )@@G@@CALL TITLE(1,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPRN(LOC) WI )@@G@@@[@[@@C @^@[@@C PRINT AC OUTPUTS @[@[@@C @^@[@@ LOUT=(WJ )@@G@@LOUTPT+1)/2 @^@[@@ DO 590 I=1,ICALC @A@[@@ XVAR=REAL(CVALUE(LWK )@@G@@OUT+1)) @^@[@@ DO 500 K=1,KNTR @#@[@@ ISEQ=ITAB(K)@ @[@@WL )@@G@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ CVAL=CVALUE(LOUT+ISEQ) @^@[@@WM )@@G@@ KTYPE=ITYPE(K) @C@[@@ GO TO (450,450,430,440,450,450), KTYWN )@@G@@PE @^@[@@ 430 YVAR(K)=REAL(CVAL)@#@[@@ GO TO 500 @ @[@@ 440 WO )@@G@@YVAR(K)=AIMAG(CVAL) @#@[@@ GO TO 500 @A@[@@ 450 CALL MAGPHS(WP )@@G@@CVAL,XMAG,XPHS) @C@[@@ GO TO (460,460,430,440,470,465), KTYPE WQ )@@G@@@#@[@@ 460 YVAR(K)=XMAG@#@[@@ GO TO 500 @A@[@@ 465 YVAR(K)=20.0WR )@@G@@*ALOG10(XMAG) @#@[@@ GO TO 500 @#@[@@ 470 YVAR(K)=XPHS@#@[@@WS )@@G@@ 500 CONTINUE @^@[@@ LOUT=LOUT+NUMOUT @C@[@@ 580 WRITE (6,PRFWT )@@G@@ORM) XVAR,(YVAR(K),K=1,KNTR) @#@[@@ 590 CONTINUE @^@[@@ WRITE WU )@@G@@(6,111) @^@[@@ 595 LOC=NODPLC(LOC) @#@[@@ GO TO 320 @#@[@@WV )@@G@@ 599 CONTINUE @[@[@@C @^@[@@C AC ANALYSIS PLOTTING @[@[@@C WW )@@G@@@^@[@@ DO 760 ID=38,40 @^@[@@ LOC=LOCATE(ID) @ @[@@ 610 WX )@@G@@IF (LOC.EQ.0) GO TO 760 @^@[@@ KNTR=NODPLC(LOC+3)@ @[@@ IF (KNWY )@@G@@TR.LE.0) GO TO 750@^@[@@ LOCV=NODPLC(LOC+1)@C@[@@ CALL TITLE(1WZ )@@G@@,LWIDTH,1,SUBTIT(1,MODE)) @^@[@@ CALL SETPLT(LOC) @[@[@@C XA )@@G@@@ @[@@ CALL GETMEM(LOCX,ICALC) @A@[@@ CALL GETMEM(LOCY,KNTR*ICXB )@@G@@ALC) @[@[@@C @^@[@@C LOAD PLOT BUFFERS @[@[@@C @^@[@@ XC )@@G@@LOUT=(LOUTPT+1)/2 @^@[@@ DO 710 I=1,ICALC @A@[@@ XVAR=REAL(CVXD )@@G@@ALUE(LOUT+1)) @#@[@@ LOCYT=LOCY @^@[@@ DO 700 K=1,KNTR XE )@@G@@@#@[@@ ISEQ=ITAB(K)@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ XF )@@G@@CVAL=CVALUE(LOUT+ISEQ) @^@[@@ KTYPE=ITYPE(K) @C@[@@ GO TO XG )@@G@@(670,670,650,660,670,670), KTYPE @^@[@@ 650 YVR=REAL(CVAL) @#@[@@XH )@@G@@ GO TO 695 @^@[@@ 660 YVR=AIMAG(CVAL) @#@[@@ GO TO 695 XI )@@G@@@A@[@@ 670 CALL MAGPHS(CVAL,XMAG,XPHS) @C@[@@ GO TO (680,680,650XJ )@@G@@,660,690,685), KTYPE @^@[@@ 680 YVR=ALOG10(XMAG) @#@[@@ GO TO XK )@@G@@695 @ @[@@ 685 YVR=20.0*ALOG10(XMAG) @#@[@@ GO TO 695 @#@[@@XL )@@G@@ 690 YVR=XPHS @^@[@@ 695 VALUE(LOCYT+I)=YVR@^@[@@ LOCYT=LOCYT+XM )@@G@@ICALC @#@[@@ 700 CONTINUE @^@[@@ VALUE(LOCX+I)=XVAR@^@[@@ XN )@@G@@LOUT=LOUT+NUMOUT @#@[@@ 710 CONTINUE @B@[@@ CALL PLOT(ICALC,LOXO )@@G@@CX,LOCY,LOCV) @^@[@@ CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(XP )@@G@@LOCY) @^@[@@ 750 LOC=NODPLC(LOC) @#@[@@ GO TO 610 @#@[@@ 760 XQ )@@G@@CONTINUE @[@[@@C @]@[@@C FINISHED @[@[@@C @ @[@@ 1000 CALL CXR )@@G@@LRMEM(LOUTPT) @^@[@@ CALL SECOND(T2) @A@[@@ RSTATS(11)=RXS )@@G@@STATS(11)+T2-T1 @]@[@@ RETURN@]@[@@ END @B@[@@ SUBROUXT )@@G@@TINE NTRPL8(LOCX,LOCY,NUMPNT) @[@[@@C @G@[@@C THIS ROUTINE INTERXU )@@G@@POLATES THE ANALYSIS DATA TO OBTAIN THE VALUES @G@[@@C PRINTED AND/OR PXV )@@G@@LOTTED, USING LAGRANGIAN INTERPOLATION WITH A POLYNO- @^@[@@C MIAL OF DEXW )@@G@@GREE 2. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTXX )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIXY )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,XZ )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEYA )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYB )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUYC )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)YD )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOYE )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ YF )@@G@@COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@[@@YG )@@G@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMON /BLANYH )@@G@@K/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)YI )@@G@@@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@YJ )@@G@@C @#@[@@ XVAR=XSTART @^@[@@ XVTOL=XINCR*1.0E-5@#@[@@ YK )@@G@@IPPNT=0 @#@[@@ ICPNT=3 @#@[@@ LOCO1=LOUTPT@^@[@@ YL )@@G@@LOCO2=LOCO1+NUMOUT@^@[@@ LOCO3=LOCO2+NUMOUT@ @[@@ IF (ICALC.LEYM )@@G@@.2) GO TO 50@^@[@@ 10 X1=VALUE(LOCO1+1) @^@[@@ X2=VALUE(LOCO2+1) YN )@@G@@@^@[@@ X3=VALUE(LOCO3+1) @#@[@@ DX1X2=X1-X2 @#@[@@ DX1X3=YO )@@G@@X1-X3 @#@[@@ DX2X3=X2-X3 @ @[@@ XDNOM1=1.0/(DX1X2*DX1X3)@A@[@@YP )@@G@@ XDNOM2=-1.0/(DX1X2*DX2X3) @ @[@@ XDNOM3=1.0/(DX2X3*DX1X3)YQ )@@G@@@A@[@@ 20 IF (XINCR.LT.0.0) GO TO 24 @B@[@@ IF (XVAR.LE.(X3+XVYR )@@G@@TOL)) GO TO 30 @#@[@@ GO TO 28 @B@[@@ 24 IF (XVAR.GE.(X3+XVYS )@@G@@TOL)) GO TO 30 @A@[@@ 28 IF (ICPNT.GE.ICALC) GO TO 100 @^@[@@ YT )@@G@@ICPNT=ICPNT+1 @#@[@@ LOCO1=LOCO2 @#@[@@ LOCO2=LOCO3 @^@[@@YU )@@G@@ LOCO3=LOCO2+NUMOUT@#@[@@ GO TO 10 @^@[@@ 30 IPPNT=IPPNT+YV )@@G@@1 @ @[@@ VALUE(LOCX+IPPNT)=XVAR @#@[@@ DXX1=XVAR-X1@#@[@@YW )@@G@@ DXX2=XVAR-X2@#@[@@ DXX3=XVAR-X3@ @[@@ XFACT1=DXX2*DXX3*XYX )@@G@@DNOM1 @ @[@@ XFACT2=DXX1*DXX3*XDNOM2 @ @[@@ XFACT3=DXX1*DXX2*XYY )@@G@@DNOM3 @#@[@@ LOCYT=LOCY @^@[@@ DO 40 I=1,KNTR @#@[@@ YZ )@@G@@ISEQ=ITAB(I)@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ V1=VALUE(LOCZA )@@G@@O1+ISEQ) @ @[@@ V2=VALUE(LOCO2+ISEQ) @ @[@@ V3=VALUE(LOCZB )@@G@@O3+ISEQ) @B@[@@ YVR=V1*XFACT1+V2*XFACT2+V3*XFACT3 @C@[@@ ZC )@@G@@TOL=AMIN1(ABS(V1),ABS(V2),ABS(V3))*1.0E-10@A@[@@ IF (ABS(YVR).LE.TOZD )@@G@@L) YVR=0.0 @ @[@@ VALUE(LOCYT+IPPNT)=YVR @^@[@@ LOCYT=LOCYT+ZE )@@G@@NPOINT@#@[@@ 40 CONTINUE @A@[@@ IF (IPPNT.GE.NPOINT) GO TO 100ZF )@@G@@@A@[@@ XVAR=XSTART+FLOAT(IPPNT)*XINCR@C@[@@ IF (ABS(XVAR).GE.AZG )@@G@@BS(XVTOL)) GO TO 20 @#@[@@ XVAR=0.0 @#@[@@ GO TO 20 ZH )@@G@@@[@[@@C @A@[@@C SPECIAL HANDLING IF ICALC @ 2 @[@[@@C @ @[@@ZI )@@G@@ 50 IF (ICALC.EQ.2) GO TO 70@E@[@@C... ICALC=1; JUST COPY OVER THE SZJ )@@G@@INGLE POINT AND RETURN @#@[@@ IPPNT=1 @ @[@@ VALUE(LOCX+IZK )@@G@@PPNT)=XVAR @#@[@@ LOCYT=LOCY @^@[@@ DO 60 I=1,KNTR @#@[@@ZL )@@G@@ ISEQ=ITAB(I)@ @[@@ ISEQ=NODPLC(ISEQ+4) @B@[@@ VALUE(ZM )@@G@@LOCYT+IPPNT)=VALUE(LOCO1+ISEQ)@^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 60 ZN )@@G@@CONTINUE @#@[@@ GO TO 100 @B@[@@C... ICALC=2; LINEAR INTERPOZO )@@G@@LATION USED @^@[@@ 70 X1=VALUE(LOCO1+1) @^@[@@ X2=VALUE(LOCO2+1) ZP )@@G@@@A@[@@ 80 IF (XINCR.LT.0.0) GO TO 84 @A@[@@ IF (XVAR.GT.X2) GOZQ )@@G@@ TO 100 @#@[@@ GO TO 88 @A@[@@ 84 IF (XVAR.LT.X2) GO TO 10ZR )@@G@@0 @^@[@@ 88 IPPNT=IPPNT+1 @ @[@@ VALUE(LOCX+IPPNT)=XVAR ZS )@@G@@@#@[@@ LOCYT=LOCY @^@[@@ DO 90 I=1,KNTR @#@[@@ ISEQ=IZT )@@G@@TAB(I)@ @[@@ ISEQ=NODPLC(ISEQ+4) @ @[@@ V1=VALUE(LOCO1+ISEZU )@@G@@Q) @ @[@@ V2=VALUE(LOCO2+ISEQ) @B@[@@ YVR=V1+((XVAR-X1)/ZV )@@G@@(X2-X1))*(V2-V1) @B@[@@ TOL=AMIN1(ABS(V1),ABS(V2))*1.0E-10 @A@[@@ZW )@@G@@ IF (ABS(YVR).LE.TOL) YVR=0.0 @ @[@@ VALUE(LOCYT+IPPNT)=YVR ZX )@@G@@@^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 90 CONTINUE @A@[@@ IF (IPZY )@@G@@PNT.GE.NPOINT) GO TO 100@A@[@@ XVAR=XSTART+FLOAT(IPPNT)*XINCR@C@[@@ZZ )@@G@@ IF (ABS(XVAR).GE.ABS(XVTOL)) GO TO 80 @#@[@@ XVAR=0.0 AA )@@G@@@#@[@@ GO TO 80 @[@[@@C @]@[@@C RETURN @[@[@@C @#@[@@AB )@@G@@ 100 NUMPNT=IPPNT@]@[@@ RETURN@]@[@@ END @ @[@@ SUBROUAC )@@G@@TINE SETPRN(LOC) @[@[@@C @G@[@@C THIS ROUTINE FORMATS THE COLUMAD )@@G@@N HEADERS FOR TABULAR LISTINGS OF @^@[@@C OUTPUT VARIABLES. @[@[@@AE )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEAF )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IAG )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,AH )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAI )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXAJ )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER AK )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEAL )@@G@@T, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IAM )@@G@@TERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APAN )@@G@@ROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NAO )@@G@@OPAGE @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KAP )@@G@@INEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @G@[@@ COMMON /AC/ FSTARTAQ )@@G@@,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOAR )@@G@@SPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZAS )@@G@@ITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)AT )@@G@@@F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG AU )@@G@@@G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPAV )@@G@@E(8), @C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ AW )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEAX )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@AY )@@G@@C @E@[@@ DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / AZ )@@G@@@[@[@@C @C@[@@C SET LIMITS DEPENDING UPON THE ANALYSIS MODE @[@[@@BA )@@G@@C @ @[@@ IF (MODE-2) 10,20,30 @^@[@@ 10 XSTART=TCSTAR BB )@@G@@@#@[@@ XINCR=TCINCR@^@[@@ NPOINT=ICVFLG @ @[@@ LOCE=NBC )@@G@@ODPLC(ITCELM+1) @^@[@@ ASWEEP=VALUE(LOCE)@#@[@@ GO TO 40 BD )@@G@@@^@[@@ 20 XSTART=TSTART @#@[@@ XINCR=TSTEP @^@[@@ NPOINTBE )@@G@@=JTRFLG @^@[@@ ASWEEP=ATIMEX @#@[@@ GO TO 40 @^@[@@BF )@@G@@ 30 XSTART=FSTART @#@[@@ XINCR=FINCR @#@[@@ NPOINT=ICALCBG )@@G@@@#@[@@ ASWEEP=AFREQ@[@[@@C @C@[@@C CONSTRUCT AND PRINT THE OUTBH )@@G@@PUT VARIABLE NAMES@[@[@@C @#@[@@ 40 LOCT=LOC+2 @]@[@@ IPOS=1BI )@@G@@@^@[@@ NPOS=IPOS+NUMDGT+8@^@[@@ DO 90 I=1,KNTR @#@[@@ BJ )@@G@@LOCT=LOCT+2 @ @[@@ ITAB(I)=NODPLC(LOCT) @ @[@@ ITYPE(I)=NODBK )@@G@@PLC(LOCT+1) @C@[@@ CALL OUTNAM(ITAB(I),ITYPE(I),STRING,IPOS) @A@[@@BL )@@G@@ IF (IPOS.GE.NPOS) GO TO 70 @^@[@@ DO 60 J=IPOS,NPOS @A@[@@BM )@@G@@ CALL MOVE(STRING,J,ABLNK,1,1) @#@[@@ 60 CONTINUE @#@[@@ BN )@@G@@IPOS=NPOS @#@[@@ GO TO 80 @B@[@@ 70 CALL MOVE(STRING,IPOS,ABBO )@@G@@LNK,1,1) @#@[@@ IPOS=IPOS+1 @^@[@@ 80 NPOS=NPOS+NUMDGT+8@#@[@@BP )@@G@@ 90 CONTINUE @B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@BQ )@@G@@ JSTOP=(IPOS+6)/8 @C@[@@ WRITE (6,91) ASWEEP,(STRING(J),J=1,JBR )@@G@@STOP) @A@[@@ 91 FORMAT(/3X,A8,5X,14A8,A4) @^@[@@ WRITE (6,101BS )@@G@@) @^@[@@ 101 FORMAT(1HX/1H ) @]@[@@ RETURN@]@[@@ END BT )@@G@@@ @[@@ SUBROUTINE SETPLT(LOC) @[@[@@C @G@[@@C THIS ROUTINEBU )@@G@@ GENERATES THE ^LEGEND^ SUBHEADING USED TO IDENTIFY @D@[@@C INDIVIDUALBV )@@G@@ TRACES ON MULTI-TRACE LINE-PRINTER PLOTS.@[@[@@C @G@[@@ COMMONBW )@@G@@ /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1BX )@@G@@ ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@BY )@@G@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, BZ )@@G@@@G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVCA )@@G@@NIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LDCB )@@G@@0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /STATCC )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODCD )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITECE )@@G@@MNO,NOSOLV,MODAC @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLCF )@@G@@E(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMONCG )@@G@@ /DC/ TCSTAR,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1CH )@@G@@ KOVAR,KIDOUT @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRLCI )@@G@@,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,CJ )@@G@@IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOCCK )@@G@@(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@F@[@@ COMMON /TRANCL )@@G@@/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@ COMMON /OUTICM )@@G@@NF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPE(8), @C@[@@ 1 ILOCN )@@G@@GY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ COMMON /BLANK/ VALUE(64)CO )@@G@@@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ CP )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @ @[@@ DIMENSCQ )@@G@@ION LOGOPT(6) @B@[@@ DATA LOGOPT / 2, 2, 1, 1, 1, 1 / @E@[@@CR )@@G@@ DATA ABLNK, ATIMEX, AFREQ / 1H , 6H TIME, 6H FREQ / @A@[@@ CS )@@G@@DATA PLTSYM / 8H+*\&'?<> / @[@[@@C @C@[@@C SET LIMITS DEPENDING CT )@@G@@UPON THE ANALYSIS MODE @[@[@@C @ @[@@ IF (MODE-2) 10,20,30 CU )@@G@@@^@[@@ 10 XSTART=TCSTAR @#@[@@ XINCR=TCINCR@^@[@@ NPOINTCV )@@G@@=ICVFLG @ @[@@ LOCE=NODPLC(ITCELM+1) @^@[@@ ASWEEP=VALUECW )@@G@@(LOCE)@#@[@@ GO TO 40 @^@[@@ 20 XSTART=TSTART @#@[@@ CX )@@G@@XINCR=TSTEP @^@[@@ NPOINT=JTRFLG @^@[@@ ASWEEP=ATIMEX CY )@@G@@@#@[@@ GO TO 40 @^@[@@ 30 XSTART=FSTART @#@[@@ XINCR=CZ )@@G@@FINCR @#@[@@ NPOINT=ICALC@#@[@@ ASWEEP=AFREQ@[@[@@C @G@[@@DA )@@G@@C CONSTRUCT AND PRINT THE OUTPUT VARIABLES WITH CORRESPONDING PLOT DB )@@G@@@]@[@@C SYMBOLS@[@[@@C @#@[@@ 40 LOCT=LOC+2 @ @[@@ IF (KNDC )@@G@@TR.EQ.1) GO TO 80 @#@[@@ WRITE (6,41)@ @[@@ 41 FORMAT(^0LEGEND:^/DD )@@G@@) @^@[@@ DO 70 I=1,KNTR @#@[@@ LOCT=LOCT+2 @ @[@@ DE )@@G@@ITAB(I)=NODPLC(LOCT) @ @[@@ IOUTYP=NODPLC(LOCT+1) @^@[@@ DF )@@G@@ITYPE(I)=IOUTYP @#@[@@ ILOGY(I)=1 @ @[@@ IF (MODE.LE.2) GO DG )@@G@@TO 50 @ @[@@ ILOGY(I)=LOGOPT(IOUTYP) @]@[@@ 50 IPOS=1@C@[@@ DH )@@G@@CALL OUTNAM(ITAB(I),ITYPE(I),STRING,IPOS) @B@[@@ CALL MOVE(STRING,IDI )@@G@@POS,ABLNK,1,7) @^@[@@ JSTOP=(IPOS+6)/8 @A@[@@ CALL MOVE(ACDJ )@@G@@HAR,1,PLTSYM,I,1) @C@[@@ WRITE (6,61) ACHAR,(STRING(J),J=1,JSTOP) DK )@@G@@@ @[@@ 61 FORMAT(1X,A1,2H: ,5A8) @#@[@@ 70 CONTINUE @ @[@@ 80 DL )@@G@@IF (KNTR.GE.2) GO TO 90 @ @[@@ ITAB(1)=NODPLC(LOC+4) @ @[@@ DM )@@G@@IOUTYP=NODPLC(LOC+5) @^@[@@ ITYPE(1)=IOUTYP @#@[@@ ILOGY(DN )@@G@@1)=1 @ @[@@ IF (MODE.LE.2) GO TO 90 @ @[@@ ILOGY(1)=LOGOPT(IODO )@@G@@UTYP) @]@[@@ 90 IPOS=1@C@[@@ CALL OUTNAM(ITAB(1),ITYPE(1),STRING,DP )@@G@@IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) @^@[@@ JSTOP=DQ )@@G@@(IPOS+6)/8 @C@[@@ WRITE (6,101) ASWEEP,(STRING(J),J=1,JSTOP)@ @[@@DR )@@G@@ 101 FORMAT(1HX/3X,A8,4X,5A8)@]@[@@ RETURN@]@[@@ END @C@[@@DS )@@G@@ SUBROUTINE PLOT(NUMPNT,LOCX,LOCY,LOCV) @[@[@@C @D@[@@C DT )@@G@@THIS ROUTINE GENERATES THE LINE-PRINTER PLOTS. @[@[@@C @F@[@@ DU )@@G@@COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1DV )@@G@@ IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELDW )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METDX )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@DY )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, DZ )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX EA )@@G@@@G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPEB )@@G@@E(8), @C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ EC )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEED )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@EE )@@G@@C @[@[@@C @#@[@@ INTEGER XOR @C@[@@ DIMENSION YCOOR(5,EF )@@G@@8),ICOOR(8),DELPLT(8) @C@[@@ DIMENSION AGRAPH(13),APLOT(13),ISPOTEG )@@G@@(5) @B@[@@ DIMENSION ASYM(2),PMIN(8),JCOOR(8) @B@[@@ DATA IEH )@@G@@SPOT / 1, 26, 51, 76, 101 / @C@[@@ DATA ABLNK, ALETX, APER / 1H ,EI )@@G@@ 1HX, 1H. / @F@[@@ DATA ASYM1, ASYM2, ARPRN / 8H(-------, 8H-------EJ )@@G@@-, 1H) / @A@[@@ DATA PLTSYM / 8H+*\&'?<> / @[@[@@C @[@[@@EK )@@G@@C @A@[@@ IF (NUMPNT.LE.0) GO TO 400 @#@[@@ DO 5 I=1,13 EL )@@G@@@^@[@@ AGRAPH(I)=ABLNK @#@[@@ 5 CONTINUE @#@[@@ DO 7 IEM )@@G@@=1,5 @B@[@@ CALL MOVE(AGRAPH,ISPOT(I),APER,1,1) @#@[@@ 7 CONTINEN )@@G@@UE @#@[@@ LOCYT=LOCY @#@[@@ LSPOT=LOCV-1@#@[@@ MLTSCLEO )@@G@@=0 @B@[@@ IF (VALUE(LOCV).EQ.0.0) MLTSCL=1 @^@[@@ DO 235EP )@@G@@ K=1,KNTR @^@[@@ LSPOT=LSPOT+2 @^@[@@ YMIN=VALUE(LSPOT) EQ )@@G@@@ @[@@ YMAX=VALUE(LSPOT+1) @A@[@@ IF (YMIN.NE.0.0) GO TO 1ER )@@G@@0 @A@[@@ IF (YMAX.NE.0.0) GO TO 10 @#@[@@ GO TO 100 ES )@@G@@@ @[@@ 10 YMIN1=AMIN1(YMIN,YMAX) @ @[@@ YMAX1=AMAX1(YMIN,YMAX) ET )@@G@@@A@[@@ 30 IF (ILOGY(K).EQ.1) GO TO 40 @B@[@@ YMIN1=ALOG10(AMAX1EU )@@G@@(YMIN1,1.0E-20)) @B@[@@ YMAX1=ALOG10(AMAX1(YMAX1,1.0E-20)) @B@[@@EV )@@G@@ DEL=AMAX1(YMAX1-YMIN1,0.0001)/4.0 @#@[@@ GO TO 50 @B@[@@EW )@@G@@ 40 DEL=AMAX1(YMAX1-YMIN1,1.0E-20)/4.0 @#@[@@ 50 YMIN=YMIN1 @#@[@@EX )@@G@@ YMAX=YMAX1 @#@[@@ GO TO 200 @[@[@@C @A@[@@C DETERMINEEY )@@G@@ MAX AND MIN VALUES @[@[@@C @ @[@@ 100 YMAX1=VALUE(LOCYT+1) EZ )@@G@@@#@[@@ YMIN1=YMAX1 @A@[@@ IF (NUMPNT.EQ.1) GO TO 150 @^@[@@FA )@@G@@ DO 110 I=2,NUMPNT @B@[@@ YMIN1=AMIN1(YMIN1,VALUE(LOCYT+I)) FB )@@G@@@B@[@@ YMAX1=AMAX1(YMAX1,VALUE(LOCYT+I)) @#@[@@ 110 CONTINUE FC )@@G@@@[@[@@C @]@[@@C SCALING @[@[@@C @C@[@@ 150 CALL SCALE(YMIN1,YFD )@@G@@MAX1,4,YMIN,YMAX,DEL) @[@[@@C @^@[@@C DETERMINE COORDINATES@[@[@@FE )@@G@@C @^@[@@ 200 YCOOR(1,K)=YMIN @#@[@@ PMIN(K)=YMIN@^@[@@ FF )@@G@@SMALL=DEL*1.0E-4 @D@[@@ IF (ABS(YCOOR(1,K)).LE.SMALL) YCOOR(1,K)=0FG )@@G@@.0 @#@[@@ DO 210 I=1,4@A@[@@ YCOOR(I+1,K)=YCOOR(I,K)+DEL FH )@@G@@@D@[@@ IF (ABS(YCOOR(I+1,K)).LE.SMALL) YCOOR(I+1,K)=0.0@#@[@@ 210 FI )@@G@@CONTINUE @A@[@@ IF (ILOGY(K).EQ.1) GO TO 230 @#@[@@ DO 220FJ )@@G@@ I=1,5@B@[@@ 220 YCOOR(I,K)=EXP(XLOG10*YCOOR(I,K)) @^@[@@ 230 DELPLTFK )@@G@@(K)=DEL/25.0@^@[@@ LOCYT=LOCYT+NPOINT@#@[@@ 235 CONTINUE @[@[@@FL )@@G@@C @ @[@@C COUNT DISTINCT COORDINATES @[@[@@C @#@[@@ ICOOR(FM )@@G@@1)=1 @#@[@@ JCOOR(1)=1 @#@[@@ NUMCOR=1 @ @[@@ IF (KNFN )@@G@@TR.EQ.1) GO TO 290@^@[@@ DO 250 I=2,KNTR @^@[@@ DO 245 J=1,NFO )@@G@@UMCOR @#@[@@ L=JCOOR(J) @G@[@@C... COORDINATES ARE *EQUAL* IF THEFP )@@G@@ MOST SIGNIFICANT 24 BITS AGREE @#@[@@ DO 240 K=1,5@B@[@@ FQ )@@G@@Y1=AND(YCOOR(K,L),COMPL(7777 7777B))@B@[@@ Y2=AND(YCOOR(K,I),COMPL(FR )@@G@@7777 7777B))@A@[@@ IF (XOR(Y1,Y2).NE.0) GO TO 245@#@[@@ 240 CONTINFS )@@G@@UE @#@[@@ ICOOR(I)=L @#@[@@ GO TO 250 @#@[@@ 245 CONTINFT )@@G@@UE @#@[@@ ICOOR(I)=I @^@[@@ NUMCOR=NUMCOR+1 @^@[@@ FU )@@G@@JCOOR(NUMCOR)=I @#@[@@ 250 CONTINUE @[@[@@C @^@[@@C PRINT COOFV )@@G@@RDINATES @[@[@@C @^@[@@ 260 DO 280 I=1,NUMCOR @^@[@@ ASYM(1FW )@@G@@)=ASYM1 @^@[@@ ASYM(2)=ASYM2 @]@[@@ IPOS=2@^@[@@ FX )@@G@@DO 270 J=1,KNTR @B@[@@ IF (ICOOR(J).NE.JCOOR(I)) GO TO 270 @B@[@@FY )@@G@@ CALL MOVE(ASYM,IPOS,PLTSYM,J,1) @#@[@@ IPOS=IPOS+1 @#@[@@FZ )@@G@@ 270 CONTINUE @A@[@@ CALL MOVE(ASYM,IPOS,ARPRN,1,1)@#@[@@ GA )@@G@@K=JCOOR(I) @C@[@@ WRITE (6,271) ASYM,(YCOOR(J,K),J=1,5) @F@[@@GB )@@G@@ 271 FORMAT(/1HX,2A8,4H----,1PE12.3,4(15X,E10.3)/26X,51(2H -)) @#@[@@GC )@@G@@ 280 CONTINUE @#@[@@ GO TO 300 @B@[@@ 290 WRITE (6,291) (YCOGD )@@G@@OR(J,1),J=1,5) @E@[@@ 291 FORMAT(/1HX,20X,1PE12.3,4(15X,E10.3)/26X,5GE )@@G@@1(2H -)) @[@[@@C @]@[@@C PLOTTING @[@[@@C @#@[@@ 300 ASPOT=GF )@@G@@ABLNK @^@[@@ DO 320 I=1,NUMPNT @^@[@@ XVAR=VALUE(LOCX+I)@#@[@@GG )@@G@@ LOCYT=LOCY @A@[@@ CALL COPY8(AGRAPH,APLOT,13) @^@[@@ GH )@@G@@DO 310 K=1,KNTR @^@[@@ YVR=VALUE(LOCYT+I)@^@[@@ KTMP=ICOOR(KGI )@@G@@) @^@[@@ YMIN1=PMIN(KTMP) @C@[@@ JPOINT=IFIX((YVR-YMIN1)/GJ )@@G@@DELPLT(K)+0.5)+1 @A@[@@ IF (JPOINT.LE.0) GO TO 306 @A@[@@ GK )@@G@@IF (JPOINT.GE.102) GO TO 306 @B@[@@ CALL MOVE(ASPOT,1,APLOT,JPOINTGL )@@G@@,1) @A@[@@ IF (ASPOT.EQ.ABLNK) GO TO 303 @A@[@@ IF (ASPOT.EQGM )@@G@@.APER) GO TO 303 @B@[@@ CALL MOVE(APLOT,JPOINT,ALETX,1,1) @#@[@@GN )@@G@@ GO TO 306 @B@[@@ 303 CALL MOVE(APLOT,JPOINT,PLTSYM,K,1) @^@[@@GO )@@G@@ 306 LOCYT=LOCYT+NPOINT@#@[@@ 310 CONTINUE @^@[@@ YVR=VALUE(LOGP )@@G@@CY+I) @A@[@@ IF (ILOGY(1).EQ.1) GO TO 315 @ @[@@ YVR=EXP(XLOGGQ )@@G@@10*YVR) @A@[@@ 315 WRITE (6,316) XVAR,YVR,APLOT @B@[@@ 316 FORMATGR )@@G@@(1X,1PE10.3,3X,E10.3,3X,13A8) @#@[@@ 320 CONTINUE @[@[@@C @]@[@@GS )@@G@@C FINISHED @[@[@@C @^@[@@ WRITE (6,331) @ @[@@ 331 FORMATGT )@@G@@(26X,51(2H -)//) @#@[@@ GO TO 500 @[@[@@C @#@[@@C TOO FEW PGU )@@G@@OINTS @[@[@@C @^@[@@ 400 WRITE (6,401) @E@[@@ 401 FORMAT(^0WARGV )@@G@@NING: TOO FEW POINTS FOR PLOTTING^/) @^@[@@ 500 WRITE (6,501) GW )@@G@@@#@[@@ 501 FORMAT(1HY) @]@[@@ RETURN@]@[@@ END @D@[@@ GX )@@G@@SUBROUTINE SCALE(XMIN,XMAX,N,XMINP,XMAXP,DEL) @[@[@@C @G@[@@C GY )@@G@@THIS ROUTINE DETERMINES THE ^OPTIMAL^ SCALE TO USE FOR THE PLOT OF@^@[@@GZ )@@G@@C SOME OUTPUT VARIABLE. @[@[@@C @[@[@@C @G@[@@C ADAPTED FROM ALHA )@@G@@GORITHM 463 OF ^COLLECTED ALGORITHMS OF THE CACM^ @[@[@@C @G@[@@HB )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, HC )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX HD )@@G@@@#@[@@ INTEGER XOR @^@[@@ DIMENSION VINT(5) @B@[@@ DATA VHE )@@G@@INT / 1.0,2.0,5.0,10.0,20.0 / @ @[@@ DATA EPS / 1.0E-12 / @[@[@@HF )@@G@@C @[@[@@C @A@[@@C... TRAP TOO-SMALL DATA SPREAD @B@[@@ HG )@@G@@TMIN=AND(XMIN,COMPL(777 777 777B)) @B@[@@ TMAX=AND(XMAX,COMPL(777 HH )@@G@@777 777B)) @B@[@@ IF (XOR(TMIN,TMAX).NE.0) GO TO 10 @ @[@@ HI )@@G@@IF (XMIN.GE.0.0) GO TO 5@^@[@@ XMAX=0.5*XMIN+EPS @^@[@@ XMIN=1HJ )@@G@@.5*XMIN-EPS @#@[@@ GO TO 10 @^@[@@ 5 XMAX=1.5*XMIN+EPS @^@[@@HK )@@G@@ XMIN=0.5*XMIN-EPS @E@[@@C... FIND APPROXIMATE INTERVAL SIZE, NORMHL )@@G@@ALIZED TO "1,10! @ @[@@ 10 A=(XMAX-XMIN)/FLOAT(N) @ @[@@ NAL=IFHM )@@G@@IX(ALOG10(A)) @ @[@@ IF (A.LT.1.0) NAL=NAL-1 @A@[@@ XFACT=HN )@@G@@EXP(XLOG10*FLOAT(NAL)) @#@[@@ B=A/XFACT @C@[@@C... FIND CLOSESTHO )@@G@@ PERMISSIBLE INTERVAL SIZE @#@[@@ DO 20 I=1,3 @B@[@@ IF (B.HP )@@G@@LT.(VINT(I)+EPS)) GO TO 30 @#@[@@ 20 CONTINUE @]@[@@ I=4 HQ )@@G@@@ @[@@C... COMPUTE INTERVAL SIZE @^@[@@ 30 DEL=VINT(I)*XFACT @#@[@@HR )@@G@@ FM1=XMIN/DEL@]@[@@ M1=FM1@ @[@@ IF (FM1.LT.0.0) M1=M1-1 HS )@@G@@@C@[@@ IF (ABS(FLOAT(M1)+1.0-FM1).LT.EPS) M1=M1+1@C@[@@C... COMPUTHT )@@G@@E NEW MAXIMUM AND MINIMUM LIMITS @ @[@@ XMINP=DEL*FLOAT(M1) HU )@@G@@@#@[@@ FM2=XMAX/DEL@#@[@@ M2=FM2+1.0 @A@[@@ IF (FM2.LT.(HV )@@G@@-1.0)) M2=M2-1 @C@[@@ IF (ABS(FM2+1.0-FLOAT(M2)).LT.EPS) M2=M2-1HW )@@G@@@ @[@@ XMAXP=DEL*FLOAT(M2) @#@[@@ NP=M2-M1 @B@[@@C... HX )@@G@@CHECK WHETHER ANOTHER LOOP REQUIRED @ @[@@ IF (NP.LE.N) GO TO 40 HY )@@G@@@]@[@@ I=I+1 @#@[@@ GO TO 30 @E@[@@C... DO FINAL ADJUSTMENHZ )@@G@@TS AND CORRECT FOR ROUNDOFF ERROR(S)@#@[@@ 40 NX=(N-NP)/2 @C@[@@ IA )@@G@@XMINP=AMIN1(XMIN,XMINP-FLOAT(NX)*DEL) @B@[@@ XMAXP=AMAX1(XMAX,XIB )@@G@@MINP+FLOAT(N)*DEL)@]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUIC )@@G@@TINE FOURAN @[@[@@C @G@[@@C THIS ROUTINE DETERMINES THE FOURIER ID )@@G@@COEFFICIENTS OF A TRANSIENT @^@[@@C ANALYSIS WAVEFORM. @[@[@@C IE )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUIF )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,IG )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILIH )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWII )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,IJ )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@IK )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, IL )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONIM )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1IN )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @F@[@@ IO )@@G@@COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1IP )@@G@@ IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELIQ )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METIR )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@IS )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, IT )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX IU )@@G@@@F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG IV )@@G@@@G@[@@ COMMON /OUTINF/ STRING(15),YVAR(8),XSTART,XINCR,ITAB(8),ITYPIW )@@G@@E(8), @C@[@@ 1 ILOGY(8),NPOINT,NUMOUT,KNTR,NUMDGT @ @[@@ IX )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEIY )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@IZ )@@G@@C @[@[@@C @A@[@@ DIMENSION SINCO(9),COSCO(9) @ @[@@ JA )@@G@@DIMENSION FORTIT(4) @G@[@@ DATA FORTIT / 8HFOURIER , 8HANALYSISJB )@@G@@, 8H , 8H / @^@[@@ DATA ABLNK / 1H /@[@[@@C JC )@@G@@@[@[@@C @^@[@@ FORPRD=1.0/FORFRE @ @[@@ XSTART=TSTOP-FORPRJD )@@G@@D @]@[@@ KNTR=1@#@[@@ XN=101.0 @^@[@@ XINCR=FORPRDJE )@@G@@/XN @#@[@@ NPOINT=XN @ @[@@ CALL GETMEM(LOCX,NPOINT)@ @[@@JF )@@G@@ CALL GETMEM(LOCY,NPOINT)@ @[@@ DO 105 NKNT=1,NFOUR @A@[@@JG )@@G@@ ITAB(1)=NODPLC(IFOUR+NKNT) @^@[@@ KFROUT=ITAB(1) @A@[@@JH )@@G@@ CALL NTRPL8(LOCX,LOCY,NUMPNT) @#@[@@ DCCO=0.0 @ @[@@ JI )@@G@@CALL ZERO8(SINCO,9) @ @[@@ CALL ZERO8(COSCO,9) @#@[@@ JJ )@@G@@LOCT=LOCY+1 @]@[@@ IPNT=0@ @[@@ 10 YVR=VALUE(LOCT+IPNT) @^@[@@JK )@@G@@ DCCO=DCCO+YVR @A@[@@ FORFAC=FLOAT(IPNT)*TWOPI/XN @#@[@@JL )@@G@@ ARG=0.0 @#@[@@ DO 20 K=1,9 @^@[@@ ARG=ARG+FORFAC JM )@@G@@@A@[@@ SINCO(K)=SINCO(K)+YVR*SIN(ARG)@A@[@@ COSCO(K)=COSCO(K)+JN )@@G@@YVR*COS(ARG)@#@[@@ 20 CONTINUE @#@[@@ IPNT=IPNT+1 @A@[@@ JO )@@G@@IF (IPNT.NE.NPOINT) GO TO 10 @#@[@@ DCCO=DCCO/XN@^@[@@ FORFACJP )@@G@@=2.0/XN @#@[@@ DO 30 K=1,9 @ @[@@ SINCO(K)=SINCO(K)*FORFACJQ )@@G@@@ @[@@ COSCO(K)=COSCO(K)*FORFAC@#@[@@ 30 CONTINUE @A@[@@ JR )@@G@@CALL TITLE(0,72,1,FORTIT) @]@[@@ IPOS=1@B@[@@ CALL OUTNAM(JS )@@G@@KFROUT,1,STRING,IPOS) @B@[@@ CALL MOVE(STRING,IPOS,ABLNK,1,7) JT )@@G@@@^@[@@ JSTOP=(IPOS+6)/8 @B@[@@ WRITE (6,61) (STRING(J),J=1,JSJU )@@G@@TOP) @F@[@@ 61 FORMAT(^ FOURIER COMPONENTS OF TRANSIENT RESPONSE ^,5AJV )@@G@@8///) @^@[@@ WRITE (6,71) DCCO @B@[@@ 71 FORMAT(^0DC COMPONENT =^JW )@@G@@,1PE12.3/, @G@[@@ 1 ^0HARMONIC FREQUENCY FOURIER NORMALIZJX )@@G@@ED PHASE NO@#@[@@ 2RMALIZED^/, @G@[@@ 3 ^ NO JY )@@G@@ (HZ) COMPONENT COMPONENT (DEG) PHA@#@[@@ 4SE (DEG)^//)JZ )@@G@@@]@[@@ IKNT=1@#@[@@ FREQ1=FORFRE@#@[@@ XNHARM=1.0 @E@[@@KA )@@G@@ CALL MAGPHS(CMPLX(SINCO(1),COSCO(1)),XNORM,PNORM) @#@[@@ KB )@@G@@PHASEN=0.0 @E@[@@ WRITE (6,81) IKNT,FREQ1,XNORM,XNHARM,PNORM,PHASEKC )@@G@@N @D@[@@ 81 FORMAT(I6,1PE15.3,E12.3,0PF13.6,F10.3,F12.3/) @#@[@@KD )@@G@@ THD=0.0 @^@[@@ DO 90 IKNT=2,9 @ @[@@ FREQ1=FLOAT(KE )@@G@@IKNT)*FORFRE@E@[@@ CALL MAGPHS(CMPLX(SINCO(IKNT),COSCO(IKNT)),HARM,KF )@@G@@PHASE)@^@[@@ XNHARM=HARM/XNORM @^@[@@ PHASEN=PHASE-PNORM@ @[@@KG )@@G@@ THD=THD+XNHARM*XNHARM @D@[@@ WRITE (6,81) IKNT,FREQ1,HARM,XKH )@@G@@NHARM,PHASE,PHASEN@#@[@@ 90 CONTINUE @ @[@@ THD=100.0*SQRT(THDKI )@@G@@) @^@[@@ WRITE (6,101) THD @G@[@@ 101 FORMAT (//5X,*TOTAL HARMKJ )@@G@@ONIC DISTORTION = *,F12.6,* PERCENT*) @#@[@@ 105 CONTINUE @^@[@@KK )@@G@@ CALL CLRMEM(LOCX) @^@[@@ CALL CLRMEM(LOCY) @]@[@@ 110 RETURNKL )@@G@@@]@[@@ END ___ *[S@@@*SDFF*@#@@@@ AXR$ . @[@@@@$(0) .KM )@@G@@@[@@@@LAST .@ @[@@ + LASTD$ . @^@@@[ +000000 KN )@@G@@ . @[@@@@$(1) .@A@@@@. SUBROUTINE MCORE(NWRD) @]@@@@MCORE*KO )@@G@@ . @ @@@@ LA A0,*0,A0 .@ @@@@ AA A0,LKP )@@G@@AST . @ @@@@ SA A0,LAST . @ @@@@ ER MCORKQ )@@G@@E$ . @ @@@@ J 0,X11 . @ @@@@. ENTRY LCORE(NWKR )@@G@@RD) @]@@@@LCORE* . @ @@@@ LNA A0,*0,A0 .@ @@@@ KS )@@G@@ AA A0,LAST . @ @@@@ SA A0,LAST . @ @@@@ KT )@@G@@ ER LCORE$ . @ @@@@ J 0,X11 . @#@@@@ KU )@@G@@ END . ___@@EO#)@@H;CK@@=/K@@C2A#K^IRR;@^A&*[S@@@*SDFF*@^@[@@ KV )@@G@@PROGRAM DCTRAN @[@[@@C @G@[@@C THIS ROUTINE CONTROLS THE DC TKW )@@G@@RANSFER CURVE, DC OPERATING POINT, @G@[@@C AND TRANSIENT ANALYSES. THEKX )@@G@@ VARIABLES MODE AND MODEDC (DEFINED BELOW)@C@[@@C DETERMINE EXACTLY WHICKY )@@G@@H ANALYSIS IS PERFORMED.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,IKZ )@@G@@SBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOLA )@@G@@UR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSLB )@@G@@BKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOLC )@@G@@FFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4LD )@@G@@ LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@LE )@@G@@ 5 LOUTPT,LPOL,LZER @F@[@@ COMMON /MISCEL/ APROG(3),ATIMELF )@@G@@,ADATE,ATITLE(15),RSTATS(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@LG )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, LH )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONLI )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1LJ )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2LK )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,LL )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLLM )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /DC/ TCSTAR,TCSTOP,TCINLN )@@G@@CR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDOUT @F@[@@LO )@@G@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FORFRE,JTRFLG @G@[@@LP )@@G@@ COMMON /CJE/ JOBNAM,USRID1,USRID2,MAXTAP,ITAPE,MAXECS,IECS,MAXMEM,LQ )@@G@@@G@[@@ 1 IMEM,MAXLIN,ILINES,MAXPCH,IPUNCH,MAXTIM,ITIME,MAXPPU,IPPULR )@@G@@, @C@[@@ 2 IEFTIM,ISPTIM,MAXDLR,ICOST,XCJEX(11) @A@[@@ LS )@@G@@COMMON /DEBUG/ IDEBUG(20) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@LT )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALU )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ LV )@@G@@DIMENSION SUBTIT(4,2) @A@[@@ DIMENSION AVHDR(3),AVFRM(4) @D@[@@LW )@@G@@ DATA AVHDR / 8H( (2X,A4, 8H,3X,A7,3, 5HX)//) / @F@[@@ DATA ALX )@@G@@VFRM / 8H( (1H ,A, 8H1,I3,1H), 8H,F10.4,3, 4HX)/) / @C@[@@ DATA ALY )@@G@@NODE, AVLTG / 4HNODE, 7HVOLTAGE / @G@[@@ DATA SUBTIT / 8HSMALL SILZ )@@G@@, 8HGNAL BIA, 8HS SOLUTI, 8HON , @G@[@@ 1 8HINMA )@@G@@ITIAL , 8HTRANSIEN, 8HT SOLUTI, 8HON / @^@[@@ DATA LPRN /1MB )@@G@@H(/ @[@[@@C @G@[@@C THE VARIABLES *MODE*, *MODEDC*, AND *INITMC )@@G@@F* ARE USED BY SPICE TO @G@[@@C KEEP TRACK OF THE STATE OF THE ANALYSIS.MD )@@G@@ THE VALUES OF THESE FLAGS @D@[@@C (AND THE CORRESPONDING MEANINGS) AME )@@G@@RE AS FOLLOWS: @[@[@@C @A@[@@C FLAG VALUE MEANING MF )@@G@@@A@[@@C ---- ----- ------- @[@[@@C @G@[@@C MODMG )@@G@@E 1 DC ANALYSIS (SUBTYPE DEFINED BY *MODEDC*) @C@[@@C MH )@@G@@ 2 TRANSIENT ANALYSIS @D@[@@C 3 MI )@@G@@ AC ANALYSIS (SMALL SIGNAL) @[@[@@C @C@[@@C MODEDC 1 MJ )@@G@@ DC OPERATING POINT @G@[@@C 2 INITIAL OPERATINMK )@@G@@G POINT FOR TRANSIENT ANALYSIS@E@[@@C 3 DC TRANSFEML )@@G@@R CURVE COMPUTATION @[@[@@C @G@[@@C INITF 1 CONVMM )@@G@@ERGE WITH ^OFF^ DEVICES ALLOWED TO FLOAT @D@[@@C 2 MN )@@G@@ INITIALIZE JUNCTION VOLTAGES@F@[@@C 3 CONVERGE WMO )@@G@@ITH ^OFF^ DEVICES HELD ^OFF^ @E@[@@C 4 STORE SMALMP )@@G@@L-SIGNAL PARAMETERS AWAY@F@[@@C 5 FIRST TIMEPOINT MQ )@@G@@IN TRANSIENT ANALYSIS @B@[@@C 6 PREDICTION STEP MR )@@G@@@[@[@@C @D@[@@C NOTE: *MODEDC* IS ONLY SIGNIFICANT IF *MODE* = 1. MS )@@G@@@[@[@@C @[@[@@C @#@[@@C INITIALIZE @[@[@@C @^@[@@ MT )@@G@@CALL SECOND(T1) @#@[@@ LOCTIM=5 @^@[@@C... SET UP FORMAT MU )@@G@@@ @[@@ NVPRLN=4+(LWIDTH-72)/19 @A@[@@ NVPRLN=MIN0(NVPRLN,NCNODMV )@@G@@S-1) @]@[@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVFRM,IPOS)@]@[@@MW )@@G@@ IPOS=2@A@[@@ CALL ALFNUM(NVPRLN,AVHDR,IPOS)@^@[@@C... ALLOCAMX )@@G@@TE STORAGE @ @[@@ IF (MODE.EQ.2) GO TO 5 @A@[@@ CALL GETMEM(MY )@@G@@LVNIM1,NSTOP) @ @[@@ CALL GETMEM(NDIAG,NSTOP)@B@[@@ CALL GMZ )@@G@@ETMEM(LVN,NSTOP+NSTOP+NUT+NLT)@ @[@@ CALL GETMEM(LX0,NXTRM) @A@[@@NA )@@G@@ IF (MODEDC.NE.3) GO TO 15 @ @[@@ 5 CALL GETMEM(LX1,NXTRM) NB )@@G@@@ @[@@ CALL GETMEM(LX2,NXTRM) @ @[@@ IF (MODE.EQ.2) GO TO 7 NC )@@G@@@A@[@@ IF (MODEDC.EQ.3) GO TO 10 @ @[@@ 7 CALL GETMEM(LX3,NXND )@@G@@TRM) @ @[@@ 10 IF (MODE.NE.2) GO TO 12 @^@[@@ CALL GETMEM(LTD,0)NE )@@G@@@ @[@@ 12 CALL GETMEM(LOUTPT,0) @#@[@@ 15 CALL CRUNCH @^@[@@ NF )@@G@@LYNL=LVN+NSTOP @^@[@@ LYU=LYNL+NSTOP @#@[@@ LYL=LYU+NUT NG )@@G@@@ @[@@ 20 IF (MODE.EQ.2) GO TO 500@#@[@@ TIME=0.0 @#@[@@ NH )@@G@@AG(1)=0.0 @#@[@@ CALL SORUPD @A@[@@ IF (MODEDC.EQ.3) GO TO 3NI )@@G@@00 @[@[@@C @A@[@@C .... SINGLE POINT DC ANALYSIS @[@[@@C NJ )@@G@@@[@[@@C @ @[@@C COMPUTE DC OPERATING POINT @[@[@@C @#@[@@ 100 NK )@@G@@INITF=2 @^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(6)=RSTATS(6NL )@@G@@)+ITERNO @A@[@@ IF (IGOOF.NE.0) GO TO 150 @A@[@@ IF (MONM )@@G@@DEDC.NE.1) GO TO 120 @#@[@@ INITF=4 @#@[@@ CALL DIODE NN )@@G@@@#@[@@ CALL BJT @#@[@@ CALL JFET @#@[@@ CALL MOSFET NO )@@G@@@[@[@@C @^@[@@C PRINT OPERATING POINT@[@[@@C @G@[@@ 120 IF ((MNP )@@G@@ODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @C@[@@ NQ )@@G@@CALL TITLE(-1,LWIDTH,1,SUBTIT(1,MODEDC)) @C@[@@ WRITE (6,AVHDR) (ANR )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+NS )@@G@@I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ GO TO 1000 @[@[@@C @#@[@@NT )@@G@@C NO CONVERGENCE @[@[@@C @]@[@@ 150 NOGO=1@^@[@@ WRITE (6,151NU )@@G@@) @G@[@@ 151 FORMAT(^1*ERROR*: NO CONVERGENCE IN DC ANALYSIS^/^0LANV )@@G@@ST NODE VOL^@^@[@@ 1 ^TAGES:^/) @C@[@@ WRITE (6,AVHDR) (ANW )@@G@@NODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+NX )@@G@@I),VALUE(LVNIM1+I),I=2,NUNODS)@#@[@@ GO TO 1000 @[@[@@C @ @[@@NY )@@G@@C .... DC TRANSFER CURVES @[@[@@C @ @[@@ 300 NUMOUT=JELCNT(41)+NZ )@@G@@1 @ @[@@ LOCS=NODPLC(ITCELM+1) @ @[@@ TEMVAL=VALUE(LOCS+OA )@@G@@1) @#@[@@ DELTA=TCINCR@#@[@@ DO 310 I=1,7@^@[@@ DELOLDOB )@@G@@(I)=DELTA @#@[@@ 310 CONTINUE @ @[@@ VALUE(LOCS+1)=TCSTAR OC )@@G@@@#@[@@ ICALC=0 @#@[@@ LOCTIM=3 @#@[@@ 340 INITF=2 OD )@@G@@@^@[@@ CALL ITER8(ITL1) @A@[@@ RSTATS(4)=RSTATS(4)+ITERNO OE )@@G@@@D@[@@ CALL COPY8(VALUE(LX0+1),VALUE(LX1+1),NXTRM) @D@[@@ OF )@@G@@CALL COPY8(VALUE(LX0+1),VALUE(LX2+1),NXTRM) @A@[@@ IF (IGOOF.NEOG )@@G@@.0) GO TO 450 @#@[@@ GO TO 360 @#@[@@ 350 CALL GETCJE @D@[@@OH )@@G@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 460 @#@[@@ INITF=OI )@@G@@6 @^@[@@ CALL ITER8(ITL2) @A@[@@ RSTATS(4)=RSTATS(4)+ITEROJ )@@G@@NO @A@[@@ IF (IGOOF.NE.0) GO TO 340 @[@[@@C @#@[@@C STOOK )@@G@@RE OUTPUTS @[@[@@C @A@[@@ 360 CALL EXTMEM(LOUTPT,NUMOUT) @ @[@@OL )@@G@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+1 @A@[@@ OM )@@G@@VALUE(LOCO+1)=VALUE(LOCS+1) @^@[@@ LOC=LOCATE(41) @ @[@@ 370 ON )@@G@@IF (LOC.EQ.0) GO TO 400 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO 380 OO )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) OP )@@G@@@^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LVNIM1+OQ )@@G@@NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@ OR )@@G@@GO TO 370 @^@[@@ 380 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(IPTR+6OS )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VALUE(LOT )@@G@@VNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 370 @[@[@@OU )@@G@@C @ @[@@C INCREMENT SOURCE VALUE @[@[@@C @A@[@@ 400 IF (ICOV )@@G@@ALC.GE.ICVFLG) GO TO 490@ @[@@ CALL PTRMEM(LX2,ITEMP) @ @[@@ OW )@@G@@CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LX1) @ @[@@ OX )@@G@@CALL PTRMEM(ITEMP,LX0) @C@[@@ VALUE(LOCS+1)=TCSTAR+FLOAT(ICALC)*DEOY )@@G@@LTA @#@[@@ GO TO 350 @[@[@@C @#@[@@C NO CONVERGENCE @[@[@@OZ )@@G@@C @ @[@@ 450 LOCE=NODPLC(ITCELM+1) @C@[@@ WRITE (6,451) VALUPA )@@G@@E(LOCE),VALUE(LOCS+1) @G@[@@ 451 FORMAT(^1*ERROR*: NO CONVERGENCE INPB )@@G@@ DC TRANSFER CURVES AT ^,A8, @C@[@@ 1 ^ = ^,1PE10.3/^0LAST NODE VPC )@@G@@OLTAGES:^/) @C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@PD )@@G@@ WRITE (6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)PE )@@G@@@#@[@@ GO TO 470 @^@[@@ 460 WRITE (6,461) @G@[@@ 461 FORMATPF )@@G@@(^0*ERROR*: CPU TIME LIMIT EXCEEDED ... ANALYSIS STOPPED^/)@]@[@@ 470 PG )@@G@@NOGO=1@[@[@@C @A@[@@C FINISHED WITH DC TRANSFER CURVES @[@[@@C PH )@@G@@@ @[@@ 490 VALUE(LOCS+1)=TEMVAL @#@[@@ GO TO 1000 @[@[@@C PI )@@G@@@ @[@@C .... TRANSIENT ANALYSIS @[@[@@C @ @[@@ 500 NUMOUT=JELCNPJ )@@G@@T(42)+1 @#@[@@ INITF=5 @]@[@@ IORD=1@#@[@@ LOCTIMPK )@@G@@=9 @#@[@@ ICALC=0 @#@[@@ NUMTP=0 @#@[@@ NUMRTPPL )@@G@@=0 @#@[@@ NUMNIT=0 @#@[@@ TIME=0.0 @#@[@@ IBKFLGPM )@@G@@=1 @#@[@@ NBKPT=1 @#@[@@ DELTA=TSTEP @#@[@@ DO 510PN )@@G@@ I=1,7@^@[@@ DELOLD(I)=DELTA @#@[@@ 510 CONTINUE @ @[@@ PO )@@G@@DELMIN=1.0E-9*TSTEP @B@[@@ IF (IDEBUG(20).NE.0) PAUSE 00001 PP )@@G@@@#@[@@ GO TO 650 @[@[@@C @E@[@@C INCREMENT TIME, UPDATE SOURPQ )@@G@@CES, AND SOLVE NEXT TIMEPOINT @[@[@@C @^@[@@ 600 TIME=TIME+DELTA PR )@@G@@@#@[@@ CALL SORUPD @ @[@@ IF (NOGO.NE.0) GO TO 950@#@[@@ PS )@@G@@CALL GETCJE @D@[@@ IF ((MAXTIM-ITIME).LE.LIMTIM*1000) GO TO 920 PT )@@G@@@A@[@@ IF (NUMNIT.GE.ITL5) GO TO 905 @#@[@@ CALL COMCOF @ @[@@PU )@@G@@ IF (INITF.NE.5) INITF=6 @#@[@@ ITRLIM=ITL4 @D@[@@ IF ((NPV )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) ITRLIM=ITL1 @^@[@@ CALL ITER8(ITRLIM)PW )@@G@@@ @[@@ NUMNIT=NUMNIT+ITERNO @^@[@@ NUMTP=NUMTP+1 @A@[@@PX )@@G@@ IF (NUMTP.NE.1) GO TO 605 @D@[@@ CALL COPY8(VALUE(LX1+1),PY )@@G@@VALUE(LX2+1),NXTRM) @D@[@@ CALL COPY8(VALUE(LX1+1),VALUE(LX3+1)PZ )@@G@@,NXTRM) @A@[@@ 605 IF (IGOOF.EQ.0) GO TO 610 @#@[@@ JORD=IQA )@@G@@ORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMEM(LX7) QB )@@G@@@B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ IF (JORD.GE.QC )@@G@@3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METHOD.NE.1)) CQD )@@G@@ALL CLRMEM(LX4) @#@[@@ IGOOF=0 @^@[@@ TIME=TIME-DELTA QE )@@G@@@^@[@@ DELTA=DELTA/8.0 @#@[@@ GO TO 620 @#@[@@ 610 DELNEWQF )@@G@@=DELTA@A@[@@ IF (NUMTP.EQ.1) GO TO 630 @^@[@@ CALL TRUNC(DQG )@@G@@ELNEW)@B@[@@ IF (DELNEW.GE.(0.9*DELTA)) GO TO 630@^@[@@ TIME=TQH )@@G@@IME-DELTA @#@[@@ DELTA=DELNEW@^@[@@ 620 NUMRTP=NUMRTP+1 @#@[@@QI )@@G@@ IBKFLG=0 @^@[@@ DELOLD(1)=DELTA @A@[@@ IF (DELTA.GEQJ )@@G@@.DELMIN) GO TO 600@^@[@@ TIME=TIME+DELTA @#@[@@ GO TO 900 QK )@@G@@@B@[@@ 630 CALL COPY8(DELOLD(1),DELOLD(2),6) @#@[@@ DELTA=DELNEWQL )@@G@@@^@[@@ DELOLD(1)=DELTA @[@[@@C @B@[@@C DETERMINE ORDER OF INQM )@@G@@TEGRATION METHOD @[@[@@C @B@[@@C... SKIP IF TRAPEZOIDAL ALGORITHM QN )@@G@@USED @D@[@@ IF ((METHOD.EQ.1).AND.(IORD.EQ.2)) GO TO 650 @A@[@@QO )@@G@@ IF (NUMTP.EQ.1) GO TO 650 @#@[@@ ORDRAT=1.05 @ @[@@ QP )@@G@@IF (IORD.GT.1) GO TO 635@]@[@@ IORD=2@^@[@@ CALL TRUNC(DELNEW)QQ )@@G@@@]@[@@ IORD=1@C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 QR )@@G@@@A@[@@ IF (MAXORD.LE.1) GO TO 650 @]@[@@ IORD=2@A@[@@ QS )@@G@@IF (METHOD.EQ.1) GO TO 650 @ @[@@ CALL GETMEM(LX4,NXTRM) @#@[@@QT )@@G@@ GO TO 650 @A@[@@ 635 IF (IORD.LT.MAXORD) GO TO 640 @#@[@@ QU )@@G@@IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=IORD+1 @C@[@@QV )@@G@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 @#@[@@ GO TO 642 QW )@@G@@@#@[@@ 640 IORD=IORD-1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@ IORD=IQX )@@G@@ORD+1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 645 @#@[@@ 642 QY )@@G@@IORD=IORD-1 @B@[@@ IF (IORD.EQ.1) CALL CLRMEM(LX4) @B@[@@ QZ )@@G@@IF (IORD.EQ.2) CALL CLRMEM(LX5) @B@[@@ IF (IORD.EQ.3) CALL CLRMRA )@@G@@EM(LX6) @B@[@@ IF (IORD.EQ.4) CALL CLRMEM(LX7) @#@[@@ RB )@@G@@GO TO 650 @#@[@@ 645 IORD=IORD+1 @^@[@@ CALL TRUNC(DELNEW)@#@[@@RC )@@G@@ IORD=IORD-1 @C@[@@ IF ((DELNEW/DELTA).LE.ORDRAT) GO TO 650 RD )@@G@@@#@[@@ IORD=IORD+1 @C@[@@ IF (IORD.EQ.2) CALL GETMEM(LX4,NXTRMRE )@@G@@) @C@[@@ IF (IORD.EQ.3) CALL GETMEM(LX5,NXTRM) @C@[@@ RF )@@G@@IF (IORD.EQ.4) CALL GETMEM(LX6,NXTRM) @C@[@@ IF (IORD.EQ.5) CALRG )@@G@@L GETMEM(LX7,NXTRM) @[@[@@C @#@[@@C STORE OUTPUTS @[@[@@C RH )@@G@@@C@[@@ 650 IF ((TIME+DELTA).LT.0.99*TSTART) GO TO 685@D@[@@ IF ((NRI )@@G@@UMTP.EQ.0).AND.(NOSOLV.NE.0)) GO TO 685 @A@[@@ CALL EXTMEM(LOUTPTRJ )@@G@@,NUMOUT) @ @[@@ LOCO=LOUTPT+ICALC*NUMOUT@^@[@@ ICALC=ICALC+RK )@@G@@1 @^@[@@ VALUE(LOCO+1)=TIME@^@[@@ LOC=LOCATE(42) @ @[@@RL )@@G@@ 670 IF (LOC.EQ.0) GO TO 685 @B@[@@ IF (NODPLC(LOC+5).NE.0) GO TO RM )@@G@@680 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3RN )@@G@@) @^@[@@ ISEQ=NODPLC(LOC+4)@F@[@@ VALUE(LOCO+ISEQ)=VALUE(LRO )@@G@@VNIM1+NODE1)-VALUE(LVNIM1+NODE2) @^@[@@ LOC=NODPLC(LOC) @#@[@@RP )@@G@@ GO TO 670 @^@[@@ 680 IPTR=NODPLC(LOC+2)@ @[@@ IPTR=NODPLC(RQ )@@G@@IPTR+6) @^@[@@ ISEQ=NODPLC(LOC+4)@B@[@@ VALUE(LOCO+ISEQ)=VRR )@@G@@ALUE(LVNIM1+IPTR) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 670 RS )@@G@@@[@[@@C @B@[@@C UPDATE TRANSMISSION LINE DELAY TABLE @[@[@@C RT )@@G@@@A@[@@ 685 IF (JELCNT(17).EQ.0) GO TO 694@ @[@@ CALL SIZMEM(LTD,LTRU )@@G@@DSIZ) @^@[@@ NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LE.3) GO TO 68RV )@@G@@9 @^@[@@ BAKTIM=TIME-TDMAX @A@[@@ IF (BAKTIM.LT.0.0) GO TORW )@@G@@ 689 @#@[@@ LCNTR=0 @#@[@@ LTEMP=LTD @^@[@@ DO 686RX )@@G@@ I=1,NUMTD @C@[@@ IF (VALUE(LTEMP+1).GE.BAKTIM) GO TO 687 @^@[@@RY )@@G@@ LTEMP=LTEMP+NTLIN @^@[@@ LCNTR=LCNTR+1 @#@[@@ 686 CONTINRZ )@@G@@UE @#@[@@ GO TO 689 @A@[@@ 687 IF (LCNTR.LE.2) GO TO 689 SA )@@G@@@^@[@@ LCNTR=LCNTR-2 @^@[@@ NWORDS=LCNTR*NTLIN@ @[@@ SB )@@G@@LTEMP=LTEMP-NTLIN-NTLIN @E@[@@ CALL COPY8(VALUE(LTEMP+1),VALUE(LTD+SC )@@G@@1),LTDSIZ-NWORDS) @ @[@@ CALL RELMEM(LTD,NWORDS) @ @[@@ CALL SSD )@@G@@IZMEM(LTD,LTDSIZ) @ @[@@ 689 CALL EXTMEM(LTD,NTLIN) @^@[@@ LTDPTRSE )@@G@@=LTD+LTDSIZ @ @[@@ VALUE(LTDPTR+1)=TIME @^@[@@ LOC=LOCATE(1SF )@@G@@7) @ @[@@ 690 IF (LOC.EQ.0) GO TO 693 @^@[@@ LOCV=NODPLC(LOC+1)SG )@@G@@@^@[@@ Z0=VALUE(LOCV+1) @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@SH )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@SI )@@G@@ NODE4=NODPLC(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ SJ )@@G@@IBR2=NODPLC(LOC+9)@A@[@@ LSPOT=NODPLC(LOC+30)+LTDPTR @D@[@@ SK )@@G@@IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) GO TO 691 @E@[@@ VALUE(LSPOT)SL )@@G@@=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VALUE(LVNIM1+ISM )@@G@@BR2)*Z0 @E@[@@ VALUE(LSPOT+1)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+SN )@@G@@NODE2)@A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ GO TO 692 SO )@@G@@@D@[@@ 691 VALUE(LSPOT)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 @D@[@@ SP )@@G@@VALUE(LSPOT+1)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @^@[@@ 692 LOC=NODPLC(LSQ )@@G@@OC) @#@[@@ GO TO 690 @[@[@@C @G@[@@C ADD TWO *FAKE* BACKPOSR )@@G@@INTS TO LTD FOR INTERPOLATION NEAR TIME=0.0 @[@[@@C @A@[@@ 693 SS )@@G@@IF (NUMTD.NE.0) GO TO 694 @A@[@@ CALL EXTMEM(LTD,NTLIN+NTLIN) ST )@@G@@@E@[@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+NTLIN+1),NTLIN) @E@[@@SU )@@G@@ CALL COPY8(VALUE(LTD+1),VALUE(LTD+2*NTLIN+1),NTLIN) @A@[@@ SV )@@G@@VALUE(LTD+2*NTLIN+1)=TIME @A@[@@ VALUE(LTD+NTLIN+1)=TIME-DELTA SW )@@G@@@A@[@@ VALUE(LTD+1)=TIME-DELTA-DELTA @[@[@@C @ @[@@C ROTATE STSX )@@G@@ATE VECTOR STORAGE@[@[@@C @C@[@@ 694 GO TO (710,706,702,698,696,696SY )@@G@@), IORD @ @[@@ 696 CALL PTRMEM(LX7,ITEMP) @ @[@@ CALL PTRMEM(SZ )@@G@@LX6,LX7) @#@[@@ GO TO 700 @ @[@@ 698 CALL PTRMEM(LX6,ITEMP) TA )@@G@@@ @[@@ 700 CALL PTRMEM(LX5,LX6) @#@[@@ GO TO 704 @ @[@@ 702 TB )@@G@@CALL PTRMEM(LX5,ITEMP) @ @[@@ 704 CALL PTRMEM(LX4,LX5) @#@[@@ TC )@@G@@GO TO 708 @A@[@@ 706 IF (METHOD.EQ.1) GO TO 710 @ @[@@ CALL PTD )@@G@@TRMEM(LX4,ITEMP) @ @[@@ 708 CALL PTRMEM(LX3,LX4) @#@[@@ GO TO TE )@@G@@712 @ @[@@ 710 CALL PTRMEM(LX3,ITEMP) @ @[@@ 712 CALL PTRMEM(LX2,LXTF )@@G@@3) @ @[@@ CALL PTRMEM(LX1,LX2) @ @[@@ CALL PTRMEM(LX0,LXTG )@@G@@1) @ @[@@ CALL PTRMEM(ITEMP,LX0) @[@[@@C @^@[@@C CHECK BRETH )@@G@@AKPOINTS @[@[@@C @A@[@@ 750 IF (IBKFLG.EQ.0) GO TO 760 @#@[@@TI )@@G@@ JORD=IORD @]@[@@ IORD=1@B@[@@ IF (JORD.GE.5) CALL CLRMTJ )@@G@@EM(LX7) @B@[@@ IF (JORD.GE.4) CALL CLRMEM(LX6) @B@[@@ TK )@@G@@IF (JORD.GE.3) CALL CLRMEM(LX5) @E@[@@ IF ((JORD.GE.2).AND.(METTL )@@G@@HOD.NE.1)) CALL CLRMEM(LX4) @#@[@@ IBKFLG=0 @^@[@@ NBKPT=TM )@@G@@NBKPT+1 @A@[@@ IF (NBKPT.GT.NUMBKP) GO TO 950@C@[@@ TEMP=ATN )@@G@@MIN1(TSTEP,VALUE(LSBKPT+NBKPT)-TIME)@B@[@@ DELTA=AMIN1(DELTA,0.1*TETO )@@G@@MP,DELMAX) @B@[@@ IF (NUMTP.EQ.0) DELTA=DELTA/10.0 @^@[@@ TP )@@G@@DELOLD(1)=DELTA @#@[@@ GO TO 600 @A@[@@ 760 DEL1=VALUE(LSBKPT+TQ )@@G@@NBKPT)-TIME @B@[@@ IF ((1.01*DELTA).LE.DEL1) GO TO 600 @#@[@@ TR )@@G@@IBKFLG=1 @#@[@@ DELTA=DEL1 @^@[@@ DELOLD(1)=DELTA @#@[@@TS )@@G@@ GO TO 600 @[@[@@C @ @[@@C TRANSIENT ANALYSIS FAILED @[@[@@TT )@@G@@C @^@[@@ 900 WRITE (6,901) @G@[@@ 901 FORMAT(^1*ERROR*: INTERTU )@@G@@NAL TIMESTEP TOO SMALL IN TRANSIENT ANALYS@]@[@@ 1IS^/) @#@[@@ TV )@@G@@GO TO 910 @^@[@@ 905 WRITE (6,906) @G@[@@ 906 FORMAT(^1*ERROR*: TW )@@G@@ ITERATION LIMIT EXCEEDED IN TRANSIENT ANALYSIS^@]@[@@ 1/) @B@[@@TX )@@G@@ 910 WRITE (6,911) TIME,DELTA,NUMNIT @G@[@@ 911 FORMAT(1H0,10X,^TITY )@@G@@ME = ^,1PE12.5,^; DELTA = ^,E12.5,^; NUMNIT = @]@[@@ 1^,I6/)@^@[@@TZ )@@G@@ WRITE (6,916) @B@[@@ 916 FORMAT(1H0/^0LAST NODE VOLTAGES:^/) UA )@@G@@@C@[@@ WRITE (6,AVHDR) (ANODE,AVLTG,I=1,NVPRLN) @G@[@@ WRITE UB )@@G@@(6,AVFRM) (LPRN,NODPLC(JUNODE+I),VALUE(LVNIM1+I),I=2,NCNODS)@#@[@@ UC )@@G@@GO TO 930 @^@[@@ 920 WRITE (6,921) TIME@G@[@@ 921 FORMAT(^0*ERROR*: UD )@@G@@ CPU TIME LIMIT EXCEEDED IN TRANSIENT ANALYSIS ^@A@[@@ 1 ^AT TIME UE )@@G@@= ^,1PE13.6/) @]@[@@ 930 NOGO=1@[@[@@C @A@[@@C FINISHED WITH TUF )@@G@@RANSIENT ANALYSIS @[@[@@C @A@[@@ 950 RSTATS(10)=RSTATS(10)+NUMNIT UG )@@G@@@A@[@@ RSTATS(30)=RSTATS(30)+NUMTP @A@[@@ RSTATS(31)=RSTATS(UH )@@G@@31)+NUMRTP @A@[@@ RSTATS(32)=RSTATS(32)+NUMNIT @B@[@@ IF (IDUI )@@G@@EBUG(20).NE.0) PAUSE 00002 @[@[@@C @ @[@@C RETURN UNNEEDED MEMORUJ )@@G@@Y @[@[@@C @A@[@@ 1000 IF (MODE.EQ.2) GO TO 1010 @A@[@@ UK )@@G@@IF (MODEDC.NE.3) GO TO 1100 @ @[@@ 1010 CALL CLRMEM(LVNIM1) @^@[@@UL )@@G@@ CALL CLRMEM(LX0) @^@[@@ CALL CLRMEM(NDIAG)@^@[@@ CALL CUM )@@G@@LRMEM(LVN) @^@[@@ CALL CLRMEM(LX1) @^@[@@ CALL CLRMEM(LX2) UN )@@G@@@D@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.3)) GO TO 1100 @^@[@@ UO )@@G@@CALL CLRMEM(LX3) @A@[@@ IF (MODE.EQ.1) GO TO 1100 @^@[@@ UP )@@G@@CALL CLRMEM(LTD) @A@[@@ IF (IORD.EQ.1) GO TO 1100 @A@[@@ UQ )@@G@@IF (METHOD.EQ.1) GO TO 1100 @^@[@@ CALL CLRMEM(LX4) @A@[@@ UR )@@G@@IF (IORD.EQ.2) GO TO 1100 @^@[@@ CALL CLRMEM(LX5) @A@[@@ US )@@G@@IF (IORD.EQ.3) GO TO 1100 @^@[@@ CALL CLRMEM(LX6) @A@[@@ UT )@@G@@IF (IORD.EQ.4) GO TO 1100 @^@[@@ CALL CLRMEM(LX7) @^@[@@ 1100 UU )@@G@@CALL SECOND(T2) @B@[@@ RSTATS(LOCTIM)=RSTATS(LOCTIM)+T2-T1 @]@[@@UV )@@G@@ RETURN@]@[@@ END @^@[@@ SUBROUTINE COMCOF @[@[@@C UW )@@G@@@G@[@@C THIS ROUTINE CALCULATES THE TIMESTEP-DEPENDENT TERMS USED INUX )@@G@@ THE @^@[@@C NUMERICAL INTEGRATION.@[@[@@C @G@[@@ COMMON /TABIUY )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISEUZ )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2VA )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@VB )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, VC )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,VD )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /STATUS/ OMVE )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEVF )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOVG )@@G@@SOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTVH )@@G@@O,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,VI )@@G@@IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEVJ )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEVK )@@G@@(1),NODPLC(1),CVALUE(1))@ @[@@ DIMENSION GMAT(7,7) @[@[@@C VL )@@G@@@E@[@@C COMPUTE COEFFICIENTS FOR PARTICULAR INTEGRATION METHOD @[@[@@VM )@@G@@C @ @[@@ IF (METHOD.NE.1) GO TO 5@ @[@@ IF (IORD.EQ.1) GO VN )@@G@@TO 5 @^@[@@C... TRAPEZOIDAL METHOD@^@[@@ AG(1)=2.0/DELTA @#@[@@VO )@@G@@ GO TO 200 @[@[@@C @A@[@@C CONSTRUCT GEAR COEFFICIENT MATRIXVP )@@G@@@[@[@@C @#@[@@ 5 ISTOP=IORD+1@ @[@@ CALL ZERO8(AG,ISTOP) VQ )@@G@@@#@[@@ AG(2)=-1.0 @^@[@@ DO 10 I=1,ISTOP @^@[@@ GMAT(1VR )@@G@@,I)=1.0 @#@[@@ 10 CONTINUE @^@[@@ DO 20 I=2,ISTOP @^@[@@VS )@@G@@ GMAT(I,1)=0.0 @#@[@@ 20 CONTINUE @#@[@@ ARG=0.0 VT )@@G@@@^@[@@ DO 40 I=2,ISTOP @ @[@@ ARG=ARG+DELOLD(I-1) @#@[@@VU )@@G@@ ARG1=1.0 @^@[@@ DO 30 J=2,ISTOP @^@[@@ ARG1=ARG1*ARVV )@@G@@G @^@[@@ GMAT(J,I)=ARG1 @#@[@@ 30 CONTINUE @#@[@@ 40 VW )@@G@@CONTINUE @[@[@@C @A@[@@C SOLVE FOR GEAR COEFFICIENTS AG(*)@[@[@@VX )@@G@@C @[@[@@C @^@[@@C LU DECOMPOSITION @[@[@@C @^@[@@ VY )@@G@@DO 70 I=2,ISTOP @#@[@@ JSTART=I+1 @A@[@@ IF (JSTART.GT.ISTOVZ )@@G@@P) GO TO 70 @ @[@@ DO 60 J=JSTART,ISTOP @A@[@@ GMAT(J,I)=GMWA )@@G@@AT(J,I)/GMAT(I,I) @ @[@@ DO 50 K=JSTART,ISTOP @C@[@@ GMAT(JWB )@@G@@,K)=GMAT(J,K)-GMAT(J,I)*GMAT(I,K) @#@[@@ 50 CONTINUE @#@[@@ 60 WC )@@G@@CONTINUE @#@[@@ 70 CONTINUE @[@[@@C @^@[@@C FORWARD SUBSTITWD )@@G@@UTION @[@[@@C @^@[@@ DO 90 I=2,ISTOP @#@[@@ JSTART=I+1 WE )@@G@@@A@[@@ IF (JSTART.GT.ISTOP) GO TO 90 @ @[@@ DO 80 J=JSTART,ISTWF )@@G@@OP @A@[@@ AG(J)=AG(J)-GMAT(J,I)*AG(I) @#@[@@ 80 CONTINUE WG )@@G@@@#@[@@ 90 CONTINUE @[@[@@C @^@[@@C BACKWARD SUBSTITUTION@[@[@@WH )@@G@@C @C@[@@ AG(ISTOP)=AG(ISTOP)/GMAT(ISTOP,ISTOP) @#@[@@ WI )@@G@@IR=ISTOP @^@[@@ DO 110 I=2,ISTOP @#@[@@ JSTART=IR @#@[@@WJ )@@G@@ IR=IR-1 @ @[@@ DO 100 J=JSTART,ISTOP @A@[@@ AG(IR)WK )@@G@@=AG(IR)-GMAT(IR,J)*AG(J)@#@[@@ 100 CONTINUE @A@[@@ AG(IR)=AG(IRWL )@@G@@)/GMAT(IR,IR) @#@[@@ 110 CONTINUE @[@[@@C @]@[@@C FINISHED WM )@@G@@@[@[@@C @]@[@@ 200 RETURN@]@[@@ END @ @[@@ SUBROUTINE TWN )@@G@@RUNC(DELNEW)@[@[@@C @F@[@@C THIS ROUTINE DETERMINES THE NEW TRANWO )@@G@@SIENT STEPSIZE BY EITHER@G@[@@C CALLING TERR TO ESTIMATE THE LOCAL TRUNCWP )@@G@@ATION ERROR, OR BY CHECKING @G@[@@C ON THE NUMBER OF ITERATIONS NEEDEDWQ )@@G@@ TO CONVERGE AT THE LAST TIMEPOINT. @[@[@@C @G@[@@ COMMON /CIRDWR )@@G@@AT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUTWS )@@G@@,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIWT )@@G@@ME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICAWU )@@G@@LC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MWV )@@G@@ODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTWW )@@G@@IM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,WX )@@G@@NOGO,KEOF @F@[@@ COMMON /TRAN/ TSTEP,TSTOP,TSTART,DELMAX,TDMAX,FOWY )@@G@@RFRE,JTRFLG @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPWZ )@@G@@LC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NOXA )@@G@@DPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ IF (LVLTIM.NE.0) GXB )@@G@@O TO 5@A@[@@ DELNEW=AMIN1(TSTEP,DELMAX) @]@[@@ RETURN@A@[@@XC )@@G@@ 5 IF (LVLTIM.NE.1) GO TO 10 @#@[@@ DELNEW=DELTA@A@[@@ XD )@@G@@IF (ITERNO.GT.ITL3) RETURN @B@[@@ DELNEW=AMIN1(2.0*DELTA,TSTEP,DXE )@@G@@ELMAX)@]@[@@ RETURN@[@[@@C @#@[@@C CAPACITORS @[@[@@C XF )@@G@@@^@[@@ 10 DELNEW=1.0E20 @^@[@@ LOC=LOCATE(2) @ @[@@ 20 XG )@@G@@IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCT=NODPLC(LOC+8)@ @[@@ CALL TXH )@@G@@ERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 20 XI )@@G@@@[@[@@C @]@[@@C INDUCTORS@[@[@@C @^@[@@ 30 LOC=LOCATE(3) XJ )@@G@@@ @[@@ 40 IF (LOC.EQ.0) GO TO 50 @ @[@@ LOCT=NODPLC(LOC+10) XK )@@G@@@ @[@@ CALL TERR(LOCT,DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@XL )@@G@@ GO TO 40 @[@[@@C @]@[@@C DIODES @[@[@@C @^@[@@ 50 XM )@@G@@LOC=LOCATE(11) @ @[@@ 60 IF (LOC.EQ.0) GO TO 70 @ @[@@ LOCT=NXN )@@G@@ODPLC(LOC+11) @ @[@@ CALL TERR(LOCT+3,DELNEW)@^@[@@ LOC=NOXO )@@G@@DPLC(LOC) @#@[@@ GO TO 60 @[@[@@C @]@[@@C BJTS @[@[@@XP )@@G@@C @^@[@@ 70 LOC=LOCATE(12) @ @[@@ 80 IF (LOC.EQ.0) GO TO 90 XQ )@@G@@@ @[@@ LOCT=NODPLC(LOC+22) @ @[@@ CALL TERR(LOCT+8,DELNEW)XR )@@G@@@A@[@@ CALL TERR(LOCT+10,DELNEW) @A@[@@ CALL TERR(LOCT+12,XS )@@G@@DELNEW) @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 80 @[@[@@XT )@@G@@C @]@[@@C JFETS @[@[@@C @^@[@@ 90 LOC=LOCATE(13) @ @[@@XU )@@G@@ 100 IF (LOC.EQ.0) GO TO 110 @ @[@@ LOCT=NODPLC(LOC+19) @ @[@@XV )@@G@@ CALL TERR(LOCT+9,DELNEW)@A@[@@ CALL TERR(LOCT+11,DELNEW) XW )@@G@@@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 100 @[@[@@C @]@[@@XX )@@G@@C MOSFETS @[@[@@C @^@[@@ 110 LOC=LOCATE(14) @ @[@@ 120 IF (LOXY )@@G@@C.EQ.0) GO TO 200 @ @[@@ LOCT=NODPLC(LOC+26) @A@[@@ CALL TXZ )@@G@@ERR(LOCT+12,DELNEW) @A@[@@ CALL TERR(LOCT+14,DELNEW) @A@[@@YA )@@G@@ CALL TERR(LOCT+16,DELNEW) @A@[@@ CALL TERR(LOCT+18,DELNEWYB )@@G@@) @A@[@@ CALL TERR(LOCT+20,DELNEW) @^@[@@ LOC=NODPLC(LYC )@@G@@OC) @#@[@@ GO TO 120 @[@[@@C @D@[@@C DELTA IS ALLOWED ONLYYD )@@G@@ TO DOUBLE AT EACH TIMEPOINT @[@[@@C @C@[@@ 200 DELNEW=AMIN1(2.0*DYE )@@G@@ELTA,DELNEW,DELMAX) @]@[@@ RETURN@]@[@@ END @A@[@@ YF )@@G@@SUBROUTINE TERR(LOCT,DELNEW) @[@[@@C @G@[@@C THIS ROUTINE ESTIMYG )@@G@@ATES THE LOCAL TRUNCATION ERROR FOR A PARTICULAR@G@[@@C CIRCUIT ELEMENT.YH )@@G@@ IT THEN COMPUTES THE APPROPRIATE STEPSIZE WHICH @#@[@@C SHOULD BE YI )@@G@@USED. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAYJ )@@G@@T,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICYK )@@G@@ODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDERYL )@@G@@,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQYM )@@G@@N,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYYN )@@G@@U,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPYO )@@G@@OL,LZER @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)YP )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXYQ )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONYR )@@G@@ /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1YS )@@G@@ GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ YT )@@G@@COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEYU )@@G@@X CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@YV )@@G@@C @[@[@@C @E@[@@ DIMENSION QCAP(1),CCAP(1),DIFF(8),DELTMP(7YW )@@G@@),COEF(6) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)YX )@@G@@) @F@[@@ DATA COEF / 5.000000000E-1, 2.222222222E-1, 1.36363636YY )@@G@@4E-1, @F@[@@ 1 9.600000000E-2, 7.299270073E-2, 5.83090379YZ )@@G@@0E-2 /@A@[@@ DATA XTWELV / 8.333333333E-2 /@[@[@@C @[@[@@C ZA )@@G@@@G@[@@ TOL=RELTOL*AMAX1(ABS(CCAP(LX0+LOCT)),ABS(CCAP(LX1+LOCT)))+ABZB )@@G@@STOL @F@[@@ CTOL=RELTOL*AMAX1(ABS(QCAP(LX0+LOCT)),ABS(QCAP(LX1+LOCZC )@@G@@T)), @^@[@@ 1 CHGTOL)/DELTA @ @[@@ TOL=AMAX1(TOL,CTOL) ZD )@@G@@@[@[@@C @A@[@@C DETERMINE DIVIDED DIFFERENCES @[@[@@C @A@[@@ZE )@@G@@ GO TO (6,5,4,3,2,1), IORD @ @[@@ 1 DIFF(8)=QCAP(LX7+LOCT) ZF )@@G@@@ @[@@ 2 DIFF(7)=QCAP(LX6+LOCT) @ @[@@ 3 DIFF(6)=QCAP(LX5+LOCT) ZG )@@G@@@ @[@@ 4 DIFF(5)=QCAP(LX4+LOCT) @ @[@@ 5 DIFF(4)=QCAP(LX3+LOCT) ZH )@@G@@@ @[@@ 6 DIFF(3)=QCAP(LX2+LOCT) @ @[@@ DIFF(2)=QCAP(LX1+LOCT) ZI )@@G@@@ @[@@ DIFF(1)=QCAP(LX0+LOCT) @#@[@@ ISTOP=IORD+1@^@[@@ ZJ )@@G@@DO 10 I=1,ISTOP @ @[@@ DELTMP(I)=DELOLD(I) @#@[@@ 10 CONTINZK )@@G@@UE @^@[@@ 20 DO 30 I=1,ISTOP @C@[@@ DIFF(I)=(DIFF(I)-DIFF(I+ZL )@@G@@1))/DELTMP(I) @#@[@@ 30 CONTINUE @^@[@@ ISTOP=ISTOP-1 ZM )@@G@@@A@[@@ IF (ISTOP.EQ.0) GO TO 100 @^@[@@ DO 40 I=1,ISTOP ZN )@@G@@@B@[@@ DELTMP(I)=DELTMP(I+1)+DELOLD(I) @#@[@@ 40 CONTINUE ZO )@@G@@@#@[@@ GO TO 20 @[@[@@C @B@[@@C DIFF(1) CONTAINS DIVIDED DIZP )@@G@@FFERENCE @[@[@@C @^@[@@ 100 CONST=COEF(IORD) @D@[@@ IF ((MZQ )@@G@@ETHOD.EQ.1).AND.(IORD.EQ.2)) CONST=XTWELV @D@[@@ DEL=TRTOL*TOL/AMAXZR )@@G@@1(ABSTOL,CONST*ABS(DIFF(1))) @ @[@@ IF (IORD.EQ.1) GO TO 200@ @[@@ZS )@@G@@ IF (IORD.GE.3) GO TO 150@^@[@@ DEL=SQRT(DEL) @#@[@@ ZT )@@G@@GO TO 200 @A@[@@ 150 DEL=EXP(ALOG(DEL)/FLOAT(IORD))@ @[@@ 200 DELNEWZU )@@G@@=AMIN1(DELNEW,DEL)@]@[@@ RETURN@]@[@@ END @^@[@@ SUBROUZV )@@G@@TINE SORUPD @[@[@@C @G@[@@C THIS ROUTINE UPDATES THE INDEPENDENTZW )@@G@@ VOLTAGE AND CURRENT SOURCES @G@[@@C USED IN THE CIRCUIT. IT ALSO UPDAZX )@@G@@TES THE LTD TABLE (WHICH CONTAINS @G@[@@C PREVIOUS (DELAYED) VALUES OFZY )@@G@@ THE SOURCES USED TO MODEL TRANSMISSION @]@[@@C LINES). @[@[@@C ZZ )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUAA )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,AB )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILAC )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAD )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,AE )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@AF )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, AG )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONAH )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1AI )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2AJ )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,AK )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLAL )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@AM )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAAN )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @^@[@@ AO )@@G@@DO 500 ID=9,10 @^@[@@ LOC=LOCATE(ID) @ @[@@ 10 IF (LOC.EQ.0AP )@@G@@) GO TO 500 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ LOCP=NODPLC(LOC+5)AQ )@@G@@@ @[@@ ITYPE=NODPLC(LOC+4)+1 @C@[@@ GO TO (490,100,200,300,4AR )@@G@@00,450), ITYPE @[@[@@C @#@[@@C PULSE SOURCE @[@[@@C @^@[@@AS )@@G@@ 100 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ T1=VALAT )@@G@@UE(LOCP+3) @^@[@@ T2=VALUE(LOCP+4) @^@[@@ T3=VALUE(LOCP+5) AU )@@G@@@^@[@@ T4=VALUE(LOCP+6) @ @[@@ PERIOD=VALUE(LOCP+7) @#@[@@AV )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.LE.0.0) GO TO 160 @B@[@@ 110 AW )@@G@@IF (TIME1.LT.T1+PERIOD) GO TO 120 @^@[@@ TIME1=TIME1-PERIOD@#@[@@AX )@@G@@ GO TO 110 @A@[@@ 120 IF (TIME1.LT.T4) GO TO 130 @^@[@@ AY )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 130 IF (TIME1.LT.T3) GAZ )@@G@@O TO 140 @D@[@@ VALUE(LOCV+1)=V2+(TIME1-T3)*(V1-V2)/(T4-T3) BA )@@G@@@#@[@@ GO TO 490 @A@[@@ 140 IF (TIME1.LT.T2) GO TO 150 @^@[@@BB )@@G@@ VALUE(LOCV+1)=V2 @#@[@@ GO TO 490 @A@[@@ 150 IF (TIME1.LTBC )@@G@@.T1) GO TO 160 @D@[@@ VALUE(LOCV+1)=V1+(TIME1-T1)*(V2-V1)/(T2-T1BD )@@G@@) @#@[@@ GO TO 490 @^@[@@ 160 VALUE(LOCV+1)=V1 @#@[@@ BE )@@G@@GO TO 490 @[@[@@C @^@[@@C SINUSOIDAL SOURCE @[@[@@C @^@[@@BF )@@G@@ 200 V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @^@[@@ OMEG=VBG )@@G@@ALUE(LOCP+3)@^@[@@ T1=VALUE(LOCP+4) @ @[@@ THETA=VALUE(LOCP+5BH )@@G@@) @^@[@@ TIME1=TIME-T1 @A@[@@ IF (TIME1.GT.0.0) GO TO BI )@@G@@210 @^@[@@ VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 210 BJ )@@G@@IF (THETA.NE.0.0) GO TO 220 @B@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEG*TBK )@@G@@IME1) @#@[@@ GO TO 490 @E@[@@ 220 VALUE(LOCV+1)=V1+V2*SIN(OMEG*TBL )@@G@@IME1)*EXP(-TIME1*THETA) @#@[@@ GO TO 490 @[@[@@C @^@[@@C EXPBM )@@G@@ONENTIAL SOURCE @[@[@@C @^@[@@ 300 V1=VALUE(LOCP+1) @^@[@@ BN )@@G@@V2=VALUE(LOCP+2) @^@[@@ T1=VALUE(LOCP+3) @^@[@@ TAU1=VALUE(LBO )@@G@@OCP+4)@^@[@@ T2=VALUE(LOCP+5) @^@[@@ TAU2=VALUE(LOCP+6)@#@[@@BP )@@G@@ TIME1=TIME @A@[@@ IF (TIME1.GT.T1) GO TO 310 @^@[@@ BQ )@@G@@VALUE(LOCV+1)=V1 @#@[@@ GO TO 490 @A@[@@ 310 IF (TIME1.GT.T2) GBR )@@G@@O TO 320 @E@[@@ VALUE(LOCV+1)=V1+(V2-V1)*(1.0-EXP((T1-TIME1)/TAUBS )@@G@@1)) @#@[@@ GO TO 490 @E@[@@ 320 VALUE(LOCV+1)=V1+(V2-V1)*(1.0-BT )@@G@@EXP((T1-TIME1)/TAU1)) @C@[@@ 1 +(V1-V2)*(1.0-EXP((T2-TIME1)/TAU2BU )@@G@@)) @#@[@@ GO TO 490 @[@[@@C @ @[@@C PIECEWISE-LINEAR SOURBV )@@G@@CE @[@[@@C @^@[@@ 400 T1=VALUE(LOCP+1) @^@[@@ V1=VALUE(LOCBW )@@G@@P+2) @^@[@@ T2=VALUE(LOCP+3) @^@[@@ V2=VALUE(LOCP+4) @]@[@@BX )@@G@@ IKNT=4@A@[@@ 410 IF (TIME.LE.T2) GO TO 420 @]@[@@ T1=T2 BY )@@G@@@]@[@@ V1=V2 @ @[@@ T2=VALUE(LOCP+IKNT+1) @ @[@@ V2=VALBZ )@@G@@UE(LOCP+IKNT+2) @#@[@@ IKNT=IKNT+2 @#@[@@ GO TO 410 @D@[@@CA )@@G@@ 420 VALUE(LOCV+1)=V1+((TIME-T1)/(T2-T1))*(V2-V1) @#@[@@ GO TO CB )@@G@@490 @[@[@@C @^@[@@C SINGLE-FREQUENCY FM @[@[@@C @^@[@@ 450 CC )@@G@@V1=VALUE(LOCP+1) @^@[@@ V2=VALUE(LOCP+2) @ @[@@ OMEGC=VALUE(CD )@@G@@LOCP+3) @^@[@@ XMOD=VALUE(LOCP+4)@ @[@@ OMEGS=VALUE(LOCP+5CE )@@G@@) @F@[@@ VALUE(LOCV+1)=V1+V2*SIN(OMEGC*TIME+XMOD*SIN(OMEGS*TIMECF )@@G@@)) @^@[@@ 490 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @#@[@@ 500 CG )@@G@@CONTINUE @[@[@@C @A@[@@C UPDATE TRANSMISSION LINE SOURCES @[@[@@CH )@@G@@C @B@[@@ IF (JELCNT(17).EQ.0) GO TO 1000 @A@[@@ IF (MOCI )@@G@@DE.NE.2) GO TO 1000 @ @[@@ CALL SIZMEM(LTD,LTDSIZ) @^@[@@ CJ )@@G@@NUMTD=LTDSIZ/NTLIN@A@[@@ IF (NUMTD.LT.3) GO TO 900 @^@[@@ CK )@@G@@LOC=LOCATE(17) @ @[@@ 610 IF (LOC.EQ.0) GO TO 1000@^@[@@ LOCV=NCL )@@G@@ODPLC(LOC+1)@^@[@@ TD=VALUE(LOCV+2) @^@[@@ BAKTIM=TIME-TD CM )@@G@@@A@[@@ IF (BAKTIM.LT.0.0) GO TO 640 @ @[@@ LTDPTR=NODPLC(LOC+CN )@@G@@30) @#@[@@ ICNTR=2 @]@[@@ L1=LTD@#@[@@ L2=L1+NTLIN CO )@@G@@@#@[@@ L3=L2+NTLIN @^@[@@ T1=VALUE(L1+1) @^@[@@ T2=VALCP )@@G@@UE(L2+1) @^@[@@ 620 T3=VALUE(L3+1) @^@[@@ ICNTR=ICNTR+1 CQ )@@G@@@A@[@@ IF (BAKTIM.LE.T3) GO TO 630 @A@[@@ IF (ICNTR.EQ.NUMTDCR )@@G@@) GO TO 900 @]@[@@ L1=L2 @]@[@@ L2=L3 @#@[@@ L3=L2+NTLIN CS )@@G@@@]@[@@ T1=T2 @]@[@@ T2=T3 @#@[@@ GO TO 620 @#@[@@ 630 CT )@@G@@DT1T2=T1-T2 @#@[@@ DT1T3=T1-T3 @#@[@@ DT2T3=T2-T3 @ @[@@ CU )@@G@@TDNOM1=1.0/(DT1T2*DT1T3)@A@[@@ TDNOM2=-1.0/(DT1T2*DT2T3) @ @[@@CV )@@G@@ TDNOM3=1.0/(DT2T3*DT1T3)@^@[@@ DTT1=BAKTIM-T1 @^@[@@ CW )@@G@@DTT2=BAKTIM-T2 @^@[@@ DTT3=BAKTIM-T3 @ @[@@ TFACT1=DTT2*CX )@@G@@DTT3*TDNOM1 @ @[@@ TFACT2=DTT1*DTT3*TDNOM2 @ @[@@ TFACT3=DTT1*CY )@@G@@DTT2*TDNOM3 @G@[@@ VALUE(LOCV+3)=VALUE(L1+LTDPTR+0)*TFACT1+VALUE(L2CZ )@@G@@+LTDPTR+0)*TFACT2 @A@[@@ 1 +VALUE(L3+LTDPTR+0)*TFACT3 @G@[@@ DA )@@G@@VALUE(LOCV+4)=VALUE(L1+LTDPTR+1)*TFACT1+VALUE(L2+LTDPTR+1)*TFACT2 @A@[@@DB )@@G@@ 1 +VALUE(L3+LTDPTR+1)*TFACT3 @^@[@@ 640 LOC=NODPLC(LOC) @#@[@@DC )@@G@@ GO TO 610 @[@[@@C @D@[@@C INTERNAL LOGIC ERROR: LESS THAN DD )@@G@@3 ENTRIES IN LTD @[@[@@C @]@[@@ 900 NOGO=1@A@[@@ WRITE (6,901DE )@@G@@) NUMTD,ICNTR @F@[@@ 901 FORMAT(^0*ABORT*: INTERNAL SPICE ERROR: DF )@@G@@SORUPD: ^,2I5/) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 DG )@@G@@RETURN@]@[@@ END @ @[@@ SUBROUTINE ITER8(ITLIM) @[@[@@C DH )@@G@@@G@[@@C THIS ROUTINE DRIVES THE NEWTON-RAPHSON ITERATION TECHNIQUE UDI )@@G@@SED TO@C@[@@C SOLVE THE SET OF NONLINEAR CIRCUIT EQUATIONS. @[@[@@C DJ )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUDK )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,DL )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILDM )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWDN )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,DO )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@DP )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, DQ )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX DR )@@G@@@G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NDS )@@G@@STOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ DT )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@DU )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@DV )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IDW )@@G@@PRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITDX )@@G@@L2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @A@[@@ COMMON /DEBUG/ IDEBUG(20DY )@@G@@) @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)DZ )@@G@@@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1EA )@@G@@),CVALUE(1))@[@[@@C @[@[@@C @#@[@@ IGOOF=0 @#@[@@ EB )@@G@@ITERNO=0 @#@[@@ NDRFLO=0 @#@[@@ NONCON=0 @[@[@@C EC )@@G@@@D@[@@C CONSTRUCT LINEAR EQUATIONS AND CHECK CONVERGENCE @[@[@@C ED )@@G@@@#@[@@ 10 CALL LOAD @A@[@@ IF (IDEBUG(1).LE.0) GO TO 15 @ @[@@EE )@@G@@ CALL DMPMAT(8HITER8 ) @ @[@@ IDEBUG(1)=IDEBUG(1)-1 @G@[@@EF )@@G@@ 15 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 EG )@@G@@@^@[@@ ITERNO=ITERNO+1 @B@[@@ GO TO (20,30,40,50,50,50),INITEH )@@G@@F @A@[@@ 20 IF (NONCON.EQ.0) GO TO 300 @#@[@@ GO TO 100 EI )@@G@@@#@[@@ 30 INITF=3 @ @[@@ 40 IF (NONCON.EQ.0) INITF=1@#@[@@ EJ )@@G@@GO TO 100 @#@[@@ 50 INITF=1 @[@[@@C @B@[@@C SOLVE EQUATIONSEK )@@G@@ FOR NEXT ITERATION @[@[@@C @A@[@@ 100 IF (ITERNO.GE.ITLIM) GO EL )@@G@@TO 200@A@[@@ IF (LVLCOD.EQ.2) GO TO 110 @#@[@@ CALL DCDCMP EM )@@G@@@#@[@@ CALL DCSOL @#@[@@ GO TO 120 @B@[@@ 110 CALL CODEXC(EN )@@G@@NODPLC(MACINS+1),LVN) @A@[@@ 120 IF (IGOOF.EQ.0) GO TO 130 @^@[@@EO )@@G@@ NDRFLO=NDRFLO+1 @#@[@@ IGOOF=0 @^@[@@ 130 VALUE(LVN+1)EP )@@G@@=0.0 @#@[@@ NTEMP=NONCON@#@[@@ NONCON=0 @A@[@@ IF (NTEQ )@@G@@EMP.GT.0) GO TO 150 @A@[@@ IF (ITERNO.EQ.1) GO TO 150 @^@[@@ER )@@G@@ DO 140 I=2,NUMNOD @ @[@@ VOLD=VALUE(LVNIM1+I) @^@[@@ ES )@@G@@VNEW=VALUE(LVN+I) @D@[@@ TOL=RELTOL*AMAX1(ABS(VOLD),ABS(VNEW))+VNTOET )@@G@@L @B@[@@ IF (ABS(VOLD-VNEW).LE.TOL) GO TO 140@^@[@@ NONCONEU )@@G@@=NONCON+1 @#@[@@ 140 CONTINUE @D@[@@ 150 CALL COPY8(VALUE(LVN+1),EV )@@G@@VALUE(LVNIM1+1),NSTOP) @#@[@@ GO TO 10 @[@[@@C @#@[@@C NO EW )@@G@@CONVERGENCE @[@[@@C @#@[@@ 200 IGOOF=1 @A@[@@ 300 IF (NDRFLO.EEX )@@G@@Q.0) GO TO 400 @ @[@@ WRITE (6,301) NDRFLO @E@[@@ 301 FORMATEY )@@G@@(^0WARNING: UNDERFLOW OCCURRED ^,I4,^ TIME(S)^)@[@[@@C @]@[@@C FINEZ )@@G@@ISHED @[@[@@C @]@[@@ 400 RETURN@]@[@@ END @^@[@@ IDFA )@@G@@ENT CODEXC @^@[@@ ENTRY CODEXC @B@[@@ TITLE EXECUTEFB )@@G@@ MACHINE CODE @D@[@@ TITLE ASSEMBLE ARGUMENTS INTO B REGISFC )@@G@@TERS @D@[@@COMPILER MICRO 1,,*FTN* DELETE IF COMPILER IS RUN@#@[@@FD )@@G@@SYSTEM SPACE 4@G@[@@SYSTEM MICRO 1,,*SCOPE* DELETE IF OPERATINGFE )@@G@@ SYSTEM IS NOT SCOPE @E@[@@SYSTEM MICRO 1,,*CALIDOSCOPE* DITTFF )@@G@@O FOR CALIDOSCOPE @#@[@@RUN SPACE 4@A@[@@RUN IFC EQ,*^COFG )@@G@@MPILER^*RUN*@^@[@@ASMARG OPSYN NIL @#@[@@RUN ENDIF @#@[@@FH )@@G@@FTN SPACE 4@A@[@@FTN IFC EQ,*^COMPILER^*FTN*@#@[@@ASMARGFI )@@G@@ MACRO N@^@[@@ LOCAL CNT @^@[@@ SB1 X1 FJ )@@G@@@^@[@@ASMARG IFGT N,1 @#@[@@CNT SET 1@#@[@@ SBFK )@@G@@7 1@^@[@@ASMARG DUP N-1 @^@[@@CNT SET CNT+1 @^@[@@FL )@@G@@ SA1 A1+B7 @^@[@@ SB.CNT X1 @#@[@@ASMARG ENFM )@@G@@DD @#@[@@ASMARG ENDIF @#@[@@ASMARG ENDM @#@[@@FTN ENFN )@@G@@DIF @A@[@@ TITLE THE REAL THING @C@[@@* CALL CODFO )@@G@@EXC(NODPLC(MACINS+1),LVN) @G@[@@* THIS ROUTINE INTERFACES THE FOFP )@@G@@RTRAN ROUTINES TO THE GENERATED @B@[@@* CODE PRODUCED BY SUBROUTINE FQ )@@G@@CODGEN. @#@[@@ SPACE 1@C@[@@CODEXC BSS 1 FR )@@G@@ ENTRY/EXIT @#@[@@ SPACE 1@#@[@@ ASMARG 2@#@[@@FS )@@G@@ SPACE 1@F@[@@ SA1 CODEXC SIMULATE AN *FT )@@G@@RJ* INSTRUCTION @A@[@@ BX6 X1 .@B@[@@ FU )@@G@@ SA6 B1 . DONE@D@[@@ SA1 B2 FV )@@G@@ SET UP LVN IN B6 @A@[@@ SB6 X1 .@#@[@@FW )@@G@@ SPACE 1@D@[@@ JP B1+1 GO EXECUTE THFX )@@G@@E CODE@#@[@@ SPACE 1@#@[@@ END @^@[@@ SUBROUFY )@@G@@TINE LOAD @[@[@@C @G@[@@C THIS ROUTINE ZEROES-OUT AND THEN LOAFZ )@@G@@DS THE COEFFICIENT MATRIX. @G@[@@C THE ACTIVE DEVICES AND THE CONTROLGA )@@G@@LED SOURCES ARE LOADED BY SEPARATE @#@[@@C SUBROUTINES. @[@[@@C GB )@@G@@@G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUGC )@@G@@MTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,GD )@@G@@INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILGE )@@G@@C,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWGF )@@G@@AP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,GG )@@G@@LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@GH )@@G@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, GI )@@G@@@C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMONGJ )@@G@@ /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1GK )@@G@@ MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2GL )@@G@@ ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /FLAGS/ IPRNTA,IPRNTL,IPRNTM,GM )@@G@@IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1 LVLCOD,LVLTIM,ITL1,ITL2,ITLGN )@@G@@3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLGO )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNGP )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @G@[@@ COMMON /AC/ FSTART,FSTOPGQ )@@G@@,FINCR,SKW2,REFPRL,SPW2,JACFLG,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NGR )@@G@@OSOUT,NOSIN,IDIST,IDPRT,JPZFLG,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPGS )@@G@@ZOUT,IPZEQO,IPZLOC(2),IPZEQI,IPOMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@GT )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ GU )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))GV )@@G@@@[@[@@C @[@[@@C @A@[@@ DIMENSION QCAP(1),CCAP(1) @E@[@@GW )@@G@@ EQUIVALENCE (QCAP(1),VALUE(1)),(CCAP(1),VALUE(2)) @A@[@@ GX )@@G@@DIMENSION FIND(1),VIND(1) @E@[@@ EQUIVALENCE (FIND(1),VALUE(1))GY )@@G@@,(VIND(1),VALUE(2)) @[@[@@C @A@[@@C ZERO Y MATRIX AND CURRENT VGZ )@@G@@ECTOR @[@[@@C @D@[@@ CALL ZERO8(VALUE(LVN+1),NSTOP+NSTOP+NUT+NLHA )@@G@@T) @[@[@@C @]@[@@C RESISTORS@[@[@@C @^@[@@ LOC=LOCATE(1HB )@@G@@) @ @[@@ 20 IF (LOC.EQ.0) GO TO 30 @^@[@@ LOCV=NODPLC(LOC+1)HC )@@G@@@^@[@@ VAL=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@HD )@@G@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LOC+7) HE )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+VAL @ @[@@ LOCY=LYNL+NODPLC(LHF )@@G@@OC+4) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @ @[@@ LOCY=LYNL+NOHG )@@G@@DPLC(LOC+5) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-VAL @^@[@@ LOC=NOHH )@@G@@DPLC(LOC) @#@[@@ GO TO 20 @[@[@@C @#@[@@C CAPACITORS HI )@@G@@@[@[@@C @^@[@@ 30 LOC=LOCATE(2) @D@[@@ IF ((MODE.EQ.1).ANHJ )@@G@@D.(MODEDC.NE.2)) GO TO 100 @ @[@@ 40 IF (LOC.EQ.0) GO TO 100 @^@[@@HK )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ HL )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ LOCT=NODPLC(LOC+8)@D@[@@ VCAP=VHM )@@G@@ALUE(LVNIM1+NODE1)-VALUE(LVNIM1+NODE2) @ @[@@ IF (INITF.NE.6) GOHN )@@G@@ TO 50@A@[@@ QCAP(LX0+LOCT)=QCAP(LX1+LOCT) @#@[@@ GO TO 60 HO )@@G@@@B@[@@ 50 QCAP(LX0+LOCT)=VALUE(LOCV+1)*VCAP @ @[@@ IF (INITF.NEHP )@@G@@.5) GO TO 60@F@[@@ IF (NOSOLV.NE.0) QCAP(LX0+LOCT)=VALUE(LOCV+1)*VAHQ )@@G@@LUE(LOCV+2) @A@[@@ QCAP(LX1+LOCT)=QCAP(LX0+LOCT) @ @[@@ 60 IF (MOHR )@@G@@DE.EQ.1) GO TO 90 @C@[@@ CALL INTGR8(GEQ,CEQ,VALUE(LOCV+1),LOCT) HS )@@G@@@ @[@@ IF (INITF.NE.5) GO TO 70@A@[@@ CCAP(LX1+LOCT)=CCAP(LX0+HT )@@G@@LOCT) @ @[@@ 70 LOCY=LYNL+NODPLC(LOC+4) @A@[@@ VALUE(LOCY)=VALUE(HU )@@G@@LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=HV )@@G@@VALUE(LOCY)+GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) @A@[@@ VALUE(HW )@@G@@LOCY)=VALUE(LOCY)-GEQ @ @[@@ LOCY=LYNL+NODPLC(LOC+6) @A@[@@ HX )@@G@@VALUE(LOCY)=VALUE(LOCY)-GEQ @C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODHY )@@G@@E1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@HZ )@@G@@ 90 LOC=NODPLC(LOC) @#@[@@ GO TO 40 @[@[@@C @]@[@@C INDIA )@@G@@UCTORS@[@[@@C @A@[@@ 100 IF (JELCNT(3).EQ.0) GO TO 400 @ @[@@ IB )@@G@@IF (MODE.EQ.1) GO TO 150@A@[@@ IF (INITF.EQ.6) GO TO 150 @^@[@@IC )@@G@@ LOC=LOCATE(3) @ @[@@ 110 IF (LOC.EQ.0) GO TO 120 @^@[@@ ID )@@G@@LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+4)@ @[@@ LOCT=NODPLC(IE )@@G@@LOC+10) @D@[@@ FIND(LX0+LOCT)=VALUE(LOCV+1)*VALUE(LVNIM1+IPTR) IF )@@G@@@B@[@@ IF ((INITF.EQ.5).AND.(NOSOLV.NE.0)) @D@[@@ 1 FIND(LX0+IG )@@G@@LOCT)=VALUE(LOCV+1)*VALUE(LOCV+2) @^@[@@ LOC=NODPLC(LOC) @#@[@@IH )@@G@@ GO TO 110 @^@[@@ 120 LOC=LOCATE(4) @ @[@@ 130 IF (LOC.EQ.0II )@@G@@) GO TO 150 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ NL1=NODPLC(LOC+2) IJ )@@G@@@^@[@@ NL2=NODPLC(LOC+3) @ @[@@ IPTR1=NODPLC(NL1+4) @ @[@@IK )@@G@@ IPTR2=NODPLC(NL2+4) @ @[@@ LOCT1=NODPLC(NL1+10) @ @[@@IL )@@G@@ LOCT2=NODPLC(NL2+10) @G@[@@ FIND(LX0+LOCT1)=FIND(LX0+LOCT1IM )@@G@@)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR2) @G@[@@ FIND(LX0+LOCT2)=FIND(LX0IN )@@G@@+LOCT2)+VALUE(LOCV+1)*VALUE(LVNIM1+IPTR1) @^@[@@ LOC=NODPLC(LOC) IO )@@G@@@#@[@@ GO TO 130 @^@[@@ 150 LOC=LOCATE(3) @ @[@@ 160 IF (LOIP )@@G@@C.EQ.0) GO TO 300 @^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(IQ )@@G@@LOC+4)@ @[@@ LOCT=NODPLC(LOC+10) @ @[@@ IF (MODE.NE.1) GO IR )@@G@@TO 200@#@[@@ VEQ=0.0 @#@[@@ REQ=0.0 @#@[@@ GO TO IS )@@G@@210 @A@[@@ 200 IF (INITF.NE.6) GO TO 205 @A@[@@ FIND(LX0+LOCIT )@@G@@T)=FIND(LX1+LOCT) @#@[@@ GO TO 210 @A@[@@ 205 IF (INITF.NE.5) GOIU )@@G@@ TO 210 @A@[@@ FIND(LX1+LOCT)=FIND(LX0+LOCT) @ @[@@ 210 IF (MOIV )@@G@@DE.EQ.1) GO TO 250@C@[@@ CALL INTGR8(REQ,VEQ,VALUE(LOCV+1),LOCT) IW )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 250 @A@[@@ VIND(LX1+LOCT)=VINIX )@@G@@D(LX0+LOCT) @ @[@@ 250 VALUE(LVN+IPTR)=VEQ @ @[@@ LOCY=LYNL+NOIY )@@G@@DPLC(LOC+9) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LIZ )@@G@@OC+5) @^@[@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+6) JA )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @^@[@@JB )@@G@@ VALUE(LOCY)=1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) @^@[@@ JC )@@G@@VALUE(LOCY)=-1.0 @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 160 JD )@@G@@@[@[@@C @^@[@@C MUTUAL INDUCTANCES @[@[@@C @^@[@@ 300 LOC=LOJE )@@G@@CATE(4) @ @[@@ 310 IF (LOC.EQ.0) GO TO 400 @^@[@@ LOCV=NODPLC(JF )@@G@@LOC+1)@ @[@@ REQ=AG(1)*VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LJG )@@G@@OC+4) @^@[@@ VALUE(LOCY)=-REQ @ @[@@ LOCY=LYNL+NODPLC(LOC+5) JH )@@G@@@^@[@@ VALUE(LOCY)=-REQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ JI )@@G@@GO TO 310 @[@[@@C @A@[@@C NONLINEAR CONTROLLED SOURCES @[@[@@JJ )@@G@@C @#@[@@ 400 CALL NLCSRC @[@[@@C @#@[@@C VOLTAGE SOURCES@[@[@@JK )@@G@@C @^@[@@ LOC=LOCATE(9) @ @[@@ 610 IF (LOC.EQ.0) GO TO 700 JL )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+6)@A@[@@ JM )@@G@@VALUE(LVN+IPTR)=VALUE(LOCV+1) @ @[@@ LOCY=LYNL+NODPLC(LOC+7) @A@[@@JN )@@G@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+8) JO )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @ @[@@ LOCY=LYNL+NODPLC(LJP )@@G@@OC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)+1.0 @ @[@@ LOCY=LYNL+NOJQ )@@G@@DPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-1.0 @^@[@@ LOC=NOJR )@@G@@DPLC(LOC) @#@[@@ GO TO 610 @[@[@@C @#@[@@C CURRENT SOURCESJS )@@G@@@[@[@@C @^@[@@ 700 LOC=LOCATE(10) @ @[@@ 710 IF (LOC.EQ.0) GO TJT )@@G@@O 800 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) JU )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @^@[@@ VAL=VALUE(LOCV+1) @C@[@@JV )@@G@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-VAL @C@[@@ VALUE(LVN+NOJW )@@G@@DE2)=VALUE(LVN+NODE2)+VAL @^@[@@ LOC=NODPLC(LOC) @#@[@@ JX )@@G@@GO TO 710 @[@[@@C @ @[@@C CALL DEVICE MODEL ROUTINES @[@[@@C JY )@@G@@@#@[@@ 800 CALL DIODE @#@[@@ CALL BJT @#@[@@ CALL JFET JZ )@@G@@@#@[@@ CALL MOSFET @[@[@@C @^@[@@C TRANSMISSION LINES @[@[@@KA )@@G@@C @^@[@@ LOC=LOCATE(17) @ @[@@ 910 IF (LOC.EQ.0) GO TO 1000KB )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@^@[@@ Z0=VALUE(LOCV+1) @#@[@@ KC )@@G@@Y0=1.0/Z0 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLCKD )@@G@@(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLCKE )@@G@@(LOC+5) @^@[@@ IBR1=NODPLC(LOC+8)@^@[@@ IBR2=NODPLC(LOC+9)KF )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+KG )@@G@@Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@^@[@@ VALUE(LOCY)=-Y0 KH )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@KI )@@G@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+Y0 KJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+14)@^@[@@ VALUE(LOCY)=-1.0 @ @[@@KK )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@^@[@@ VALUE(LOCY)=-Y0 @ @[@@ KL )@@G@@LOCY=LYNL+NODPLC(LOC+16)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LKM )@@G@@YNL+NODPLC(LOC+17)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NOKN )@@G@@DPLC(LOC+18)@^@[@@ VALUE(LOCY)=+Y0 @ @[@@ LOCY=LYNL+NODPLC(LKO )@@G@@OC+19)@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+20)KP )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@^@[@@KQ )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+27)@^@[@@ KR )@@G@@VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+28)@^@[@@ VALUE(KS )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+31)@^@[@@ VALUE(LOCY)=KT )@@G@@-Y0 @ @[@@ LOCY=LYNL+NODPLC(LOC+32)@^@[@@ VALUE(LOCY)=-Y0 KU )@@G@@@ @[@@ IF (MODE.NE.1) GO TO 920@ @[@@ LOCY=LYNL+NODPLC(LOC+21)KV )@@G@@@^@[@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@^@[@@KW )@@G@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ KX )@@G@@VALUE(LOCY)=-(1.0-GMIN)*Z0 @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@^@[@@KY )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+26)@^@[@@ KZ )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(LA )@@G@@LOCY)=-(1.0-GMIN)*Z0 @#@[@@ GO TO 950 @A@[@@ 920 IF (INITF.NELB )@@G@@.5) GO TO 930 @A@[@@ IF (NOSOLV.NE.0) GO TO 925 @E@[@@ LC )@@G@@VALUE(LOCV+3)=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE4) @A@[@@ 1 +VALD )@@G@@LUE(LVNIM1+IBR2)*Z0 @E@[@@ VALUE(LOCV+4)=VALUE(LVNIM1+NODE1)-VALE )@@G@@LUE(LVNIM1+NODE2) @A@[@@ 1 +VALUE(LVNIM1+IBR1)*Z0 @#@[@@ LF )@@G@@GO TO 930 @D@[@@ 925 VALUE(LOCV+3)=VALUE(LOCV+7)+VALUE(LOCV+8)*Z0 LG )@@G@@@D@[@@ VALUE(LOCV+4)=VALUE(LOCV+5)+VALUE(LOCV+6)*Z0 @A@[@@ 930 LH )@@G@@VALUE(LVN+IBR1)=VALUE(LOCV+3) @A@[@@ VALUE(LVN+IBR2)=VALUE(LOCV+4) LI )@@G@@@^@[@@ 950 LOC=NODPLC(LOC) @#@[@@ GO TO 910 @[@[@@C @ @[@@LJ )@@G@@C REORDER RIGHT-HAND SIDE @[@[@@C @^@[@@ 1000 DO 1110 I=2,NSTOP LK )@@G@@@^@[@@ J=NODPLC(ISWAP+I) @A@[@@ VALUE(NDIAG+I)=VALUE(LVN+J) LL )@@G@@@#@[@@ 1110 CONTINUE @D@[@@ CALL COPY8(VALUE(NDIAG+1),VALUE(LVN+LM )@@G@@1),NSTOP) @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ RETURNLN )@@G@@@]@[@@ END @^@[@@ SUBROUTINE NLCSRC @[@[@@C @F@[@@C LO )@@G@@THIS ROUTINE LOADS THE NONLINEAR CONTROLLED SOURCES INTO THE@^@[@@C COEFLP )@@G@@FICIENT MATRIX. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,LQ )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOLR )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NLS )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISLT )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0LU )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5LV )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50LW )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,ILX )@@G@@BR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7)LY )@@G@@,VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXLZ )@@G@@ORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMONMA )@@G@@ /FLAGS/ IPRNTA,IPRNTL,IPRNTM,IPRNTN,IPRNTO,LIMTIM,LIMPTS, @F@[@@ 1MB )@@G@@ LVLCOD,LVLTIM,ITL1,ITL2,ITL3,ITL4,ITL5,IGOOF,NOGO,KEOF @G@[@@ MC )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@MD )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ME )@@G@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ MF )@@G@@COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))MG )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE-CONTROLLED CURRENT SOURCES @[@[@@MH )@@G@@C @^@[@@ LOC=LOCATE(5) @ @[@@ 10 IF (LOC.EQ.0) GO TO 100 MI )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) MJ )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LNOD=NODPLC(LOC+6)@^@[@@ MK )@@G@@LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8) @B@[@@ CALL SML )@@G@@IZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NODPLC(LOC+9)@ @[@@ MM )@@G@@LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LOC+11)@ @[@@ LOCT=NMN )@@G@@ODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@ DO 20 I=1,NDIM MO )@@G@@@G@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),MP )@@G@@2, @#@[@@ 1 JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) MQ )@@G@@@#@[@@ LOCT=LOCT+2 @#@[@@ LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(MR )@@G@@ICHECK,JCHECK) @#@[@@ 20 CONTINUE @D@[@@ CALL EVPOLY(COLD,0MS )@@G@@,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+12) @A@[@@MT )@@G@@ IF (ICHECK.EQ.0) GO TO 30 @ @[@@ IF (INITF.EQ.6) GO TO 30MU )@@G@@@F@[@@ TOL=RELTOL*AMAX1(ABS(COLD),ABS(VALUE(LX0+LOCT)))+ABSTOL MV )@@G@@@D@[@@ IF (ABS(COLD-VALUE(LX0+LOCT)).LT.TOL) GO TO 40 @^@[@@ 30 MW )@@G@@NONCON=NONCON+1 @ @[@@ 40 VALUE(LX0+LOCT)=COLD @#@[@@ CEQ=COMX )@@G@@LD @^@[@@ DO 50 I=1,NDIM @D@[@@ CALL EVPOLY(GEQ,I,LCOEF,MY )@@G@@NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOMZ )@@G@@CT)=GEQ @A@[@@ CEQ=CEQ-GEQ*VALUE(LARG+I) @ @[@@ LOCY=LNA )@@G@@YNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEQ @ @[@@ NB )@@G@@LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ @ @[@@NC )@@G@@ LOCY=LYNL+NODPLC(LMAT+3)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GEQ ND )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+NE )@@G@@GEQ @#@[@@ LMAT=LMAT+4 @#@[@@ 50 CONTINUE @C@[@@ VALUE(NF )@@G@@LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(LVN+NODE2)=VALUE(LNG )@@G@@VN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO 10 NH )@@G@@@[@[@@C @C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@NI )@@G@@C @^@[@@ 100 LOC=LOCATE(6) @ @[@@ 110 IF (LOC.EQ.0) GO TO 200 NJ )@@G@@@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3) NK )@@G@@@^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IPTR=NODPLC(LOC+6)@^@[@@ NL )@@G@@LNOD=NODPLC(LOC+7)@^@[@@ LMAT=NODPLC(LOC+8)@ @[@@ LCOEF=NODPLCNM )@@G@@(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOEF) @ @[@@ NN )@@G@@LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11) @^@[@@ NO )@@G@@LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 @#@[@@ ICHECKNP )@@G@@=0 @^@[@@ DO 120 I=1,NDIM @G@[@@ CALL UPDATE(VALUE(LIC+I)NQ )@@G@@,LOCT,NODPLC(LNOD+1),NODPLC(LNOD+2),2, @#@[@@ 1 JCHECK) @A@[@@NR )@@G@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 @#@[@@ NS )@@G@@LNOD=LNOD+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 120 CONTINNT )@@G@@UE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@NU )@@G@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.EQ.0) GO TO 130 NV )@@G@@@A@[@@ IF (INITF.EQ.6) GO TO 130 @E@[@@ TOL=RELTOL*AMAX1(ANW )@@G@@BS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABS(VOLT-VALUE(LX0+LNX )@@G@@OCT)).LT.TOL) GO TO 140 @^@[@@ 130 NONCON=NONCON+1 @ @[@@ 140 VALUE(NY )@@G@@LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(LVNIM1+IPTR)@#@[@@NZ )@@G@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@^@[@@ VALUE(OA )@@G@@LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@ VALUE(LOCY)=OB )@@G@@-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ VALUE(LOCY)=+1.0 OC )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(LOCY)=-1.0 @#@[@@OD )@@G@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ DO 150 I=1,NDIM OE )@@G@@@D@[@@ CALL EVPOLY(VGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ OF )@@G@@LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=VGAIN @A@[@@ VEQ=VEQ-VGAIOG )@@G@@N*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(OH )@@G@@LOCY)=VALUE(LOCY)-VGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ OI )@@G@@VALUE(LOCY)=VALUE(LOCY)+VGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 150 CONTINOJ )@@G@@UE @ @[@@ VALUE(LVN+IPTR)=VEQ @^@[@@ LOC=NODPLC(LOC) OK )@@G@@@#@[@@ GO TO 110 @[@[@@C @C@[@@C NONLINEAR CURRENT-CONTROLLEOL )@@G@@D CURRENT SOURCES @[@[@@C @^@[@@ 200 LOC=LOCATE(7) @ @[@@ 210 OM )@@G@@IF (LOC.EQ.0) GO TO 300 @ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ ON )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ LVS=NOOO )@@G@@DPLC(LOC+6) @^@[@@ LMAT=NODPLC(LOC+7)@ @[@@ LCOEF=NODPLC(LOC+8OP )@@G@@) @B@[@@ CALL SIZMEM(NODPLC(LOC+8),NCOEF) @^@[@@ LARG=NOQ )@@G@@ODPLC(LOC+9)@ @[@@ LEXP=NODPLC(LOC+10) @^@[@@ LIC=NODPLC(LOR )@@G@@OC+11)@ @[@@ LOCT=NODPLC(LOC+12)+1 @#@[@@ ICHECK=0 @^@[@@OS )@@G@@ DO 220 I=1,NDIM @^@[@@ IPTR=NODPLC(LVS+I)@ @[@@ IPTR=NOT )@@G@@ODPLC(IPTR+6) @D@[@@ CALL UPDATE(VALUE(LIC+I),LOCT,IPTR,1,2,JCHOU )@@G@@ECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+LOCT) @#@[@@ LOCT=LOCT+2 OV )@@G@@@A@[@@ ICHECK=MAX0(ICHECK,JCHECK) @#@[@@ 220 CONTINUE @D@[@@OW )@@G@@ CALL EVPOLY(CSRC,0,LCOEF,NCOEF,LARG,NDIM,LEXP) @ @[@@ LOCT=NOX )@@G@@ODPLC(LOC+12) @A@[@@ IF (ICHECK.EQ.0) GO TO 230 @A@[@@ OY )@@G@@IF (INITF.EQ.6) GO TO 230 @F@[@@ TOL=RELTOL*AMAX1(ABS(CSRC),ABSOZ )@@G@@(VALUE(LX0+LOCT)))+ABSTOL @D@[@@ IF (ABS(CSRC-VALUE(LX0+LOCT)).PA )@@G@@LT.TOL) GO TO 240 @^@[@@ 230 NONCON=NONCON+1 @ @[@@ 240 VALUE(LX0+LOPB )@@G@@CT)=CSRC @#@[@@ CEQ=CSRC @^@[@@ DO 250 I=1,NDIM @D@[@@PC )@@G@@ CALL EVPOLY(CGAIN,I,LCOEF,NCOEF,LARG,NDIM,LEXP) @#@[@@ LOCT=LPD )@@G@@OCT+2 @ @[@@ VALUE(LX0+LOCT)=CGAIN @A@[@@ CEQ=CEQ-CGAIN*VALUPE )@@G@@E(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)@A@[@@ VALUE(LOCY)=PF )@@G@@VALUE(LOCY)+CGAIN @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@A@[@@ VALUE(PG )@@G@@LOCY)=VALUE(LOCY)-CGAIN @#@[@@ LMAT=LMAT+2 @#@[@@ 250 CONTINUE PH )@@G@@@C@[@@ VALUE(LVN+NODE1)=VALUE(LVN+NODE1)-CEQ @C@[@@ VALUE(PI )@@G@@LVN+NODE2)=VALUE(LVN+NODE2)+CEQ @^@[@@ LOC=NODPLC(LOC) @#@[@@PJ )@@G@@ GO TO 210 @[@[@@C @C@[@@C NONLINEAR CURRENT CONTROLLED VOLTPK )@@G@@AGE SOURCES @[@[@@C @^@[@@ 300 LOC=LOCATE(8) @ @[@@ 310 IF (LOPL )@@G@@C.EQ.0) GO TO 1000@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=PM )@@G@@NODPLC(LOC+3) @^@[@@ NDIM=NODPLC(LOC+4)@^@[@@ IBR=NODPLC(LPN )@@G@@OC+6) @^@[@@ LVS=NODPLC(LOC+7) @^@[@@ LMAT=NODPLC(LOC+8)@ @[@@PO )@@G@@ LCOEF=NODPLC(LOC+9) @B@[@@ CALL SIZMEM(NODPLC(LOC+9),NCOEPP )@@G@@F) @ @[@@ LARG=NODPLC(LOC+10) @ @[@@ LEXP=NODPLC(LOC+11PQ )@@G@@) @^@[@@ LIC=NODPLC(LOC+12)@ @[@@ LOCT=NODPLC(LOC+13)+2 PR )@@G@@@#@[@@ ICHECK=0 @^@[@@ DO 320 I=1,NDIM @^@[@@ IPTR=NPS )@@G@@ODPLC(LVS+I)@ @[@@ IPTR=NODPLC(IPTR+6) @D@[@@ CALL UPDATE(PT )@@G@@VALUE(LIC+I),LOCT,IPTR,1,2,JCHECK) @A@[@@ VALUE(LARG+I)=VALUE(LX0+PU )@@G@@LOCT) @#@[@@ LOCT=LOCT+2 @A@[@@ ICHECK=MAX0(ICHECK,JCHECK) PV )@@G@@@#@[@@ 320 CONTINUE @D@[@@ CALL EVPOLY(VOLT,0,LCOEF,NCOEF,LARG,PW )@@G@@NDIM,LEXP) @ @[@@ LOCT=NODPLC(LOC+13) @A@[@@ IF (ICHECK.EPX )@@G@@Q.0) GO TO 330 @A@[@@ IF (INITF.EQ.6) GO TO 330 @E@[@@ PY )@@G@@TOL=RELTOL*AMAX1(ABS(VOLT),ABS(VALUE(LX0+LOCT)))+VNTOL@D@[@@ IF (ABPZ )@@G@@S(VOLT-VALUE(LX0+LOCT)).LT.TOL) GO TO 340 @^@[@@ 330 NONCON=NONCON+1 QA )@@G@@@ @[@@ 340 VALUE(LX0+LOCT)=VOLT @B@[@@ VALUE(LX0+LOCT+1)=VALUE(QB )@@G@@LVNIM1+IBR) @#@[@@ VEQ=VOLT @ @[@@ LOCY=LYNL+NODPLC(LMAT+1)QC )@@G@@@^@[@@ VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+2)@^@[@@QD )@@G@@ VALUE(LOCY)=-1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+3)@^@[@@ QE )@@G@@VALUE(LOCY)=+1.0 @ @[@@ LOCY=LYNL+NODPLC(LMAT+4)@^@[@@ VALUE(QF )@@G@@LOCY)=-1.0 @#@[@@ LMAT=LMAT+4 @#@[@@ LOCT=LOCT+1 @^@[@@ QG )@@G@@DO 350 I=1,NDIM @D@[@@ CALL EVPOLY(TRANSR,I,LCOEF,NCOEF,LARG,NDIMQH )@@G@@,LEXP)@#@[@@ LOCT=LOCT+2 @ @[@@ VALUE(LX0+LOCT)=TRANSR @A@[@@QI )@@G@@ VEQ=VEQ-TRANSR*VALUE(LARG+I) @ @[@@ LOCY=LYNL+NODPLC(LMAT+I)QJ )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-TRANSR@#@[@@ 350 CONTINUE @^@[@@QK )@@G@@ VALUE(LVN+IBR)=VEQ@^@[@@ LOC=NODPLC(LOC) @#@[@@ GO TO QL )@@G@@310 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@QM )@@G@@ END @E@[@@ SUBROUTINE UPDATE(VINIT,LOCT,NODE1,NODE2,NUPDA,IQN )@@G@@CHECK)@[@[@@C @G@[@@C THIS ROUTINE UPDATES AND LIMITS THE CONTROQO )@@G@@LLING VARIABLES FOR THE @A@[@@C NONLINEAR CONTROLLED SOURCES. @[@[@@QP )@@G@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEQQ )@@G@@MPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,IQR )@@G@@COLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,QS )@@G@@IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIQT )@@G@@AG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LXQU )@@G@@2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER QV )@@G@@@G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFEQW )@@G@@T, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,IQX )@@G@@TERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALQY )@@G@@UE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@QZ )@@G@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C RA )@@G@@@#@[@@ ICHECK=0 @B@[@@ GO TO (40,10,40,20,30,50), INITF RB )@@G@@@#@[@@ 10 VNEW=VINIT @#@[@@ GO TO 80 @ @[@@ 20 VNEW=VALUE(LRC )@@G@@X0+LOCT) @#@[@@ GO TO 80 @ @[@@ 30 VNEW=VALUE(LX1+LOCT) RD )@@G@@@#@[@@ GO TO 80 @D@[@@ 40 VNEW=VALUE(LVNIM1+NODE1)-VALUE(LVNIMRE )@@G@@1+NODE2) @#@[@@ GO TO 60 @E@[@@ 50 CALL COPY8(VALUE(LX1+LOCRF )@@G@@T),VALUE(LX0+LOCT),NUPDA) @ @[@@ XFACT=DELTA/DELOLD(2) @E@[@@RG )@@G@@ VNEW=(1.0+XFACT)*VALUE(LX1+LOCT)-XFACT*VALUE(LX2+LOCT)@A@[@@ 60 RH )@@G@@IF (ABS(VNEW).LE.1.0) GO TO 70@A@[@@ DELV=VNEW-VALUE(LX0+LOCT) RI )@@G@@@A@[@@ IF (ABS(DELV).LE.0.1) GO TO 70@C@[@@ VLIM=AMAX1(ABS(0.1RJ )@@G@@*VALUE(LX0+LOCT)),0.1) @E@[@@ VNEW=VALUE(LX0+LOCT)+SIGN(AMIN1(ABS(RK )@@G@@DELV),VLIM),DELV) @#@[@@ GO TO 80 @#@[@@ 70 ICHECK=1 @ @[@@RL )@@G@@ 80 VALUE(LX0+LOCT)=VNEW @]@[@@ RETURN@]@[@@ END @F@[@@RM )@@G@@ SUBROUTINE EVPOLY(RESULT,ITYPE,LCOEF,NCOEF,LARG,NARG,LEXP) @[@[@@RN )@@G@@C @G@[@@C THIS ROUTINE EVALUATES A POLYNOMIAL. LCOEF POINTS TO RO )@@G@@THE COEF- @G@[@@C FICIENTS, AND LARG POINTS TO THE VALUES OF THE POLYNRP )@@G@@OMIAL ARGUMENT(S).@[@[@@C @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@RQ )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVARR )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@ RS )@@G@@IF (ITYPE) 100,200,300 @[@[@@C @D@[@@C INTEGRATION (POLYNOMIAL *MURT )@@G@@ST* BE ONE-DIMENSIONAL) @[@[@@C @#@[@@ 100 RESULT=0.0 @#@[@@ RU )@@G@@ARG=1.0 @^@[@@ ARG1=VALUE(LARG+1)@^@[@@ DO 110 I=1,NCOEF RV )@@G@@@#@[@@ ARG=ARG*ARG1@C@[@@ RESULT=RESULT+VALUE(LCOEF+I)*ARG/FLORW )@@G@@AT(I) @#@[@@ 110 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @A@[@@RX )@@G@@C EVALUATION OF THE POLYNOMIAL @[@[@@C @ @[@@ 200 RESULT=VALUERY )@@G@@(LCOEF+1) @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@ CALL ZRZ )@@G@@ERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 220 I=2,NCOEF @B@[@@ SA )@@G@@CALL NXTPWR(NODPLC(LEXP+1),NARG) @B@[@@ IF (VALUE(LCOEF+I).EQ.0.SB )@@G@@0) GO TO 220@#@[@@ ARG=1.0 @^@[@@ DO 210 J=1,NARG @D@[@@SC )@@G@@ CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)) @#@[@@ ARG=ARSD )@@G@@G*VAL @#@[@@ 210 CONTINUE @B@[@@ RESULT=RESULT+VALUE(LCOEF+I)*ASE )@@G@@RG @#@[@@ 220 CONTINUE @#@[@@ GO TO 1000 @[@[@@C @E@[@@SF )@@G@@C PARTIAL DERIVATIVE WITH RESPECT TO THE ITYPE*TH VARIABLE @[@[@@C SG )@@G@@@#@[@@ 300 RESULT=0.0 @A@[@@ IF (NCOEF.EQ.1) GO TO 1000 @B@[@@SH )@@G@@ CALL ZERO4(NODPLC(LEXP+1),NARG) @^@[@@ DO 330 I=2,NCOEF SI )@@G@@@B@[@@ CALL NXTPWR(NODPLC(LEXP+1),NARG) @C@[@@ IF (NODPLC(LSJ )@@G@@EXP+ITYPE).EQ.0) GO TO 330 @B@[@@ IF (VALUE(LCOEF+I).EQ.0.0) GO SK )@@G@@TO 330@#@[@@ ARG=1.0 @^@[@@ DO 320 J=1,NARG @A@[@@ SL )@@G@@IF (J.EQ.ITYPE) GO TO 310 @D@[@@ CALL EVTERM(VAL,VALUE(LARG+J),SM )@@G@@NODPLC(LEXP+J)) @#@[@@ ARG=ARG*VAL @#@[@@ GO TO 320 @D@[@@SN )@@G@@ 310 CALL EVTERM(VAL,VALUE(LARG+J),NODPLC(LEXP+J)-1) @B@[@@ ARG=ARSO )@@G@@G*FLOAT(NODPLC(LEXP+J))*VAL @#@[@@ 320 CONTINUE @B@[@@ RESULTSP )@@G@@=RESULT+VALUE(LCOEF+I)*ARG @#@[@@ 330 CONTINUE @[@[@@C @]@[@@SQ )@@G@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@ END @B@[@@ SR )@@G@@SUBROUTINE EVTERM(VAL,ARG,IEXP) @[@[@@C @D@[@@C THIS ROUTINESS )@@G@@ EVALUATES ONE TERM OF A POLYNOMIAL.@[@[@@C @#@[@@ JEXP=IEXP+1 ST )@@G@@@ @[@@ IF (JEXP.GE.6) GO TO 60 @A@[@@ GO TO (10,20,30,40,50), SU )@@G@@JEXP @#@[@@ 10 VAL=1.0 @#@[@@ GO TO 100 @#@[@@ 20 VAL=ARSV )@@G@@G @#@[@@ GO TO 100 @#@[@@ 30 VAL=ARG*ARG @#@[@@ GO TO SW )@@G@@100 @^@[@@ 40 VAL=ARG*ARG*ARG @#@[@@ GO TO 100 @#@[@@ 50 SX )@@G@@VAL=ARG*ARG @#@[@@ VAL=VAL*VAL @#@[@@ GO TO 100 @ @[@@ 60 SY )@@G@@IF (ARG.EQ.0.0) GO TO 70@B@[@@ ARGEXP=FLOAT(IEXP)*ALOG(ABS(ARG)) SZ )@@G@@@A@[@@ IF (ARGEXP.LT.-200.0) GO TO 70@^@[@@ VAL=EXP(ARGEXP) TA )@@G@@@^@[@@ IMOD2=AND(IEXP,1) @A@[@@ IF (IMOD2.EQ.0) GO TO 100 TB )@@G@@@^@[@@ VAL=SIGN(VAL,ARG) @#@[@@ GO TO 100 @#@[@@ 70 VAL=0.TC )@@G@@0 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 100 RETURN@]@[@@TD )@@G@@ END @A@[@@ SUBROUTINE NXTPWR(PWRSEQ,PDIM)@[@[@@C @F@[@@TE )@@G@@C THIS ROUTINE DETERMINES THE ^NEXT^ SET OF EXPONENTS FOR THE @B@[@@TF )@@G@@C DIFFERENT DIMENSIONS OF A POLYNOMIAL. @[@[@@C @A@[@@ INTEGETG )@@G@@R PWRSEQ(1),PDIM,PSUM @[@[@@C @[@[@@C @ @[@@ IF (PDIM.EQ.TH )@@G@@1) GO TO 80 @]@[@@ K=PDIM@A@[@@ 10 IF (PWRSEQ(K).NE.0) GO TO 20 TI )@@G@@@]@[@@ K=K-1 @ @[@@ IF (K.NE.0) GO TO 10 @#@[@@ GO TO TJ )@@G@@80 @ @[@@ 20 IF (K.EQ.PDIM) GO TO 30 @ @[@@ PWRSEQ(K)=PWRSEQ(KTK )@@G@@)-1 @A@[@@ PWRSEQ(K+1)=PWRSEQ(K+1)+1 @#@[@@ GO TO 100 TL )@@G@@@#@[@@ 30 KM1=K-1 @^@[@@ DO 40 I=1,KM1 @A@[@@ IF (PWTM )@@G@@RSEQ(I).NE.0) GO TO 50 @#@[@@ 40 CONTINUE @ @[@@ PWRSEQ(1)=PWTN )@@G@@RSEQ(PDIM)+1@^@[@@ PWRSEQ(PDIM)=0 @#@[@@ GO TO 100 @]@[@@TO )@@G@@ 50 PSUM=1@]@[@@ K=PDIM@A@[@@ 60 IF (PWRSEQ(K-1).GE.1) GO TO 70TP )@@G@@@ @[@@ PSUM=PSUM+PWRSEQ(K) @#@[@@ PWRSEQ(K)=0 @]@[@@ TQ )@@G@@K=K-1 @#@[@@ GO TO 60 @ @[@@ 70 PWRSEQ(K)=PWRSEQ(K)+PSUM@A@[@@TR )@@G@@ PWRSEQ(K-1)=PWRSEQ(K-1)-1 @#@[@@ GO TO 100 @ @[@@ 80 TS )@@G@@PWRSEQ(1)=PWRSEQ(1)+1 @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@TT )@@G@@ 100 RETURN@]@[@@ END @C@[@@ SUBROUTINE INTGR8(GEQ,CEQ,CAPVTU )@@G@@AL,LOCT) @[@[@@C @G@[@@C THIS ROUTINE PERFORMS THE ACTUAL NUMTV )@@G@@ERICAL INTEGRATION FOR EACH @#@[@@C CIRCUIT ELEMENT.@[@[@@C @G@[@@TW )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, TX )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZETY )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,TZ )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXUB )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ UC )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@UD )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@UE )@@G@@ 2 ITEMNO,NOSOLV,MODAC @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@UF )@@G@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVAUG )@@G@@LENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @A@[@@ UH )@@G@@DIMENSION QCAP(1),CCAP(1) @E@[@@ EQUIVALENCE (QCAP(1),VALUE(1))UI )@@G@@,(CCAP(1),VALUE(2)) @[@[@@C @[@[@@C @A@[@@ IF (METHOD.EUJ )@@G@@Q.2) GO TO 100 @[@[@@C @^@[@@C TRAPEZOIDAL ALGORITHM@[@[@@C UK )@@G@@@ @[@@ IF (IORD.EQ.1) GO TO 100@A@[@@ CCAP(LX0+LOCT)=-CCAP(LX1UL )@@G@@+LOCT)@D@[@@ 1 +2.0*(QCAP(LX0+LOCT)-QCAP(LX1+LOCT))/DELTA @D@[@@UM )@@G@@ CEQ=-CCAP(LX1+LOCT)-2.0*QCAP(LX1+LOCT)/DELTA @#@[@@ GO TO UN )@@G@@200 @[@[@@C @#@[@@C GEARS ALGORITHM@[@[@@C @C@[@@ 100 GO TO UO )@@G@@(110,120,130,140,150,160), IORD @F@[@@ 110 CCAP(LX0+LOCT)=AG(1)*QCAUP )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @#@[@@ GO TO 190 @F@[@@ 120 UQ )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @B@[@@ 1UR )@@G@@ +AG(3)*QCAP(LX2+LOCT) @#@[@@ GO TO 190 @F@[@@ 130 US )@@G@@CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1UT )@@G@@ +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @#@[@@ UU )@@G@@GO TO 190 @F@[@@ 140 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LUV )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LUW )@@G@@X3+LOCT) @B@[@@ 2 +AG(5)*QCAP(LX4+LOCT) @#@[@@ UX )@@G@@GO TO 190 @F@[@@ 150 CCAP(LX0+LOCT)=AG(1)*QCAP(LX0+LOCT)+AG(2)*QCAP(LUY )@@G@@X1+LOCT) @F@[@@ 1 +AG(3)*QCAP(LX2+LOCT)+AG(4)*QCAP(LUZ )@@G@@X3+LOCT) @F@[@@ 2 +AG(5)*QCAP(LX4+LOCT)+AG(6)*QCAP(LVA )@@G@@X5+LOCT) @#@[@@ GO TO 190 @F@[@@ 160 CCAP(LX0+LOCT)=AG(1)*QCAVB )@@G@@P(LX0+LOCT)+AG(2)*QCAP(LX1+LOCT) @F@[@@ 1 +AG(3)*QCAVC )@@G@@P(LX2+LOCT)+AG(4)*QCAP(LX3+LOCT) @F@[@@ 2 +AG(5)*QCAVD )@@G@@P(LX4+LOCT)+AG(6)*QCAP(LX5+LOCT) @B@[@@ 3 +AG(7)*QCAVE )@@G@@P(LX6+LOCT) @C@[@@ 190 CEQ=CCAP(LX0+LOCT)-AG(1)*QCAP(LX0+LOCT) @^@[@@VF )@@G@@ 200 GEQ=AG(1)*CAPVAL @]@[@@ RETURN@]@[@@ END @D@[@@ VG )@@G@@SUBROUTINE PNJLIM(VNEW,VOLD,VT,VCRIT,ICHECK) @[@[@@C @G@[@@C VH )@@G@@THIS ROUTINE LIMITS THE CHANGE-PER-ITERATION OF DEVICE PN-JUNCTION@]@[@@VI )@@G@@C VOLTAGES. @[@[@@C @#@[@@ VLIM=VT+VT @^@[@@ DELV=VNEW-VOVJ )@@G@@LD @B@[@@ IF (ABS(DELV).LE.VLIM) GO TO 30 @A@[@@ IF (VNVK )@@G@@EW.LE.VCRIT) GO TO 30 @A@[@@ IF (VOLD.LE.0.0) GO TO 20 @^@[@@VL )@@G@@ ARG=1.0+DELV/VT @ @[@@ IF (ARG.LE.0.0) GO TO 10@ @[@@ VM )@@G@@VNEW=VOLD+VT*ALOG(ARG) @#@[@@ GO TO 100 @#@[@@ 10 VNEW=VCRIT VN )@@G@@@#@[@@ GO TO 100 @ @[@@ 20 VNEW=VT*ALOG(VNEW/VT) @#@[@@ VO )@@G@@GO TO 100 @#@[@@ 30 ICHECK=1 @[@[@@C @]@[@@C FINISHED @[@[@@VP )@@G@@C @]@[@@ 100 RETURN@]@[@@ END @^@[@@ SUBROUTINE DIODE VQ )@@G@@@[@[@@C @F@[@@C THIS ROUTINE PROCESSES DIODES FOR DC AND TRANSIEVR )@@G@@NT ANALYSES.@[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKTVS )@@G@@,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIVT )@@G@@ELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,VU )@@G@@IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEVV )@@G@@Q1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LVW )@@G@@YNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUVX )@@G@@TPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNOVY )@@G@@DS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVZ )@@G@@VS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNWA )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NOWB )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTWC )@@G@@NT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIWD )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMONWE )@@G@@ /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALWF )@@G@@UE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C WG )@@G@@@[@[@@C @D@[@@ DIMENSION VDO(1),CDO(1),GDO(1),QD(1),CQD(1) WH )@@G@@@D@[@@ EQUIVALENCE (VDO(1),VALUE(1)),(CDO(1),VALUE(2)),@F@[@@ 1WI )@@G@@ (GDO(1),VALUE(3)),(QD(1),VALUE(4)),(CQD(1),VALUE(5)) @[@[@@C WJ )@@G@@@[@[@@C @^@[@@ LOC=LOCATE(11) @ @[@@ 10 IF (LOC.EQ.0) RETUWK )@@G@@RN @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) WL )@@G@@@ @[@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) WM )@@G@@@^@[@@ LOCM=NODPLC(LOC+5)@^@[@@ IOFF=NODPLC(LOC+6)@ @[@@ WN )@@G@@LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+11) @[@[@@C WO )@@G@@@^@[@@C DC MODEL PARAMETERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)WP )@@G@@@ @[@@ CSAT=VALUE(LOCM+1)*AREA @ @[@@ GSPR=VALUE(LOCM+2)*AREA WQ )@@G@@@ @[@@ VTE=VALUE(LOCM+3)*VT @^@[@@ BV=VALUE(LOCM+13) @ @[@@WR )@@G@@ VCRIT=VALUE(LOCM+18) @[@[@@C @#@[@@C INITIALIZATION @[@[@@WS )@@G@@C @#@[@@ ICHECK=0 @B@[@@ GO TO (100,20,30,50,60,70),INIWT )@@G@@TF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 @^@[@@ VD=VALUE(LOCV+2) WU )@@G@@@ @[@@ IF (VD.NE.0.0) GO TO 300@G@[@@ IF ((MODE.EQ.1).AND.(MODWV )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VD=VCRIT @#@[@@WW )@@G@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO TO 100@]@[@@ 40 VD=0.0WX )@@G@@@#@[@@ GO TO 300 @^@[@@ 50 VD=VDO(LX0+LOCT) @#@[@@ GO TO WY )@@G@@300 @^@[@@ 60 VD=VDO(LX1+LOCT) @#@[@@ GO TO 300 @ @[@@ 70 WZ )@@G@@XFACT=DELTA/DELOLD(2) @A@[@@ VDO(LX0+LOCT)=VDO(LX1+LOCT) @D@[@@XA )@@G@@ VD=(1.0+XFACT)*VDO(LX1+LOCT)-XFACT*VDO(LX2+LOCT)@A@[@@ CDO(LXXB )@@G@@0+LOCT)=CDO(LX1+LOCT) @A@[@@ GDO(LX0+LOCT)=GDO(LX1+LOCT) @#@[@@XC )@@G@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTXD )@@G@@AGE @[@[@@C @C@[@@ 100 VD=VALUE(LVNIM1+NODE3)-VALUE(LVNIM1+NODE2)XE )@@G@@@ @[@@ 110 DELVD=VD-VDO(LX0+LOCT) @C@[@@ CDHAT=CDO(LX0+LOCT)+GDO(XF )@@G@@LX0+LOCT)*DELVD @[@[@@C @B@[@@C BYPASS IF SOLUTION HAS NOT CHANGEXG )@@G@@D @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 @E@[@@ XH )@@G@@TOL=RELTOL*AMAX1(ABS(VD),ABS(VDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABXI )@@G@@S(DELVD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABXJ )@@G@@S(CDO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL)XK )@@G@@ GO TO 200 @^@[@@ VD=VDO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) XL )@@G@@@^@[@@ GD=GDO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @ @[@@XM )@@G@@C LIMIT NEW JUNCTION VOLTAGE @[@[@@C @#@[@@ 200 VLIM=VTE+VTE@ @[@@XN )@@G@@ IF (BV.EQ.0.0) GO TO 205@D@[@@ IF (VD.LT.AMIN1(0.0,-BV+10.0*VXO )@@G@@TE)) GO TO 210 @D@[@@ 205 CALL PNJLIM(VD,VDO(LX0+LOCT),VTE,VCRIT,ICHXP )@@G@@ECK) @#@[@@ GO TO 300 @^@[@@ 210 VDTEMP=-(VD+BV) @F@[@@ XQ )@@G@@CALL PNJLIM(VDTEMP,-(VDO(LX0+LOCT)+BV),VTE,VCRIT,ICHECK) @^@[@@ XR )@@G@@VD=-(VDTEMP+BV) @[@[@@C @B@[@@C COMPUTE DC CURRENT AND DERIVITIVEXS )@@G@@S @[@[@@C @ @[@@ 300 IF (VD.LT.0.0) GO TO 310@^@[@@ EVD=EXXT )@@G@@P(VD/VTE) @^@[@@ CD=CSAT*(EVD-1.0) @^@[@@ GD=CSAT*EVD/VTE XU )@@G@@@#@[@@ GO TO 330 @ @[@@ 310 IF (BV.EQ.0) GO TO 315 @ @[@@ XV )@@G@@IF (VD.LT.-BV) GO TO 320@#@[@@ 315 GD=CSAT/VTE @#@[@@ CD=GD*VD XW )@@G@@@#@[@@ GO TO 330 @ @[@@ 320 EVREV=EXP(-(BV+VD)/VT) @A@[@@ XX )@@G@@CD=-CSAT*(EVREV-1.0+BV/VT) @^@[@@ GD=CSAT*EVREV/VT @ @[@@ 330 XY )@@G@@IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0))XZ )@@G@@ GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO YA )@@G@@700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@YB )@@G@@ 500 TAU=VALUE(LOCM+4) @ @[@@ CZERO=VALUE(LOCM+5)*AREA@^@[@@ YC )@@G@@PB=VALUE(LOCM+6) @^@[@@ XM=VALUE(LOCM+7) @ @[@@ FCPB=VALUE(LYD )@@G@@OCM+12) @A@[@@ IF (VD.GE.FCPB) GO TO 510 @^@[@@ ARG=1.YE )@@G@@0-VD/PB @ @[@@ SARG=EXP(-XM*ALOG(ARG)) @E@[@@ QD(LX0+LOCT)YF )@@G@@=TAU*CD+PB*CZERO*(1.0-ARG*SARG)/(1.0-XM) @ @[@@ CAPD=TAU*GD+CZERO*YG )@@G@@SARG @#@[@@ GO TO 520 @^@[@@ 510 F1=VALUE(LOCM+15) @^@[@@ YH )@@G@@F2=VALUE(LOCM+16) @^@[@@ F3=VALUE(LOCM+17) @^@[@@ CZOF2=CZERO/YI )@@G@@F2 @D@[@@ QD(LX0+LOCT)=TAU*CD+CZERO*F1+CZOF2*(F3*(VD-FCPB)@B@[@@YJ )@@G@@ 1 +(XM/(PB+PB))*(VD*VD-FCPB*FCPB)) @B@[@@ CAPD=TAU*GD+CZOF2*YK )@@G@@(F3+XM*VD/PB) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS YL )@@G@@@[@[@@C @G@[@@ 520 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEYM )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ YN )@@G@@VALUE(LX0+LOCT+4)=CAPD @#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRAYO )@@G@@NSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 YP )@@G@@@A@[@@ QD(LX1+LOCT)=QD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEYQ )@@G@@Q,CAPD,LOCT+3) @#@[@@ GD=GD+GEQ @ @[@@ CD=CD+CQD(LX0+LOCTYR )@@G@@) @A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQD(LX1+LOCTYS )@@G@@)=CQD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C YT )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO YU )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 YV )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ YW )@@G@@IF (ABS(CDHAT-CD).LE.TOL) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@YX )@@G@@ 750 VDO(LX0+LOCT)=VD @^@[@@ CDO(LX0+LOCT)=CD @^@[@@ GDO(LXYY )@@G@@0+LOCT)=GD @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@C @^@[@@YZ )@@G@@ 800 CDEQ=CD-GD*VD @C@[@@ VALUE(LVN+NODE2)=VALUE(LVN+NODE2)+CDZA )@@G@@EQ @C@[@@ VALUE(LVN+NODE3)=VALUE(LVN+NODE3)-CDEQ @[@[@@C ZB )@@G@@@#@[@@C LOAD MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+13)ZC )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LZD )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GD @ @[@@ LOCY=LYNL+NOZE )@@G@@DPLC(LOC+15)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GD+GSPR @ @[@@ ZF )@@G@@LOCY=LYNL+NODPLC(LOC+7) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ZG )@@G@@ LOCY=LYNL+NODPLC(LOC+8) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GD ZH )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-ZI )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(ZJ )@@G@@LOCY)-GD @^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@ZK )@@G@@ END @^@[@@ SUBROUTINE BJT @[@[@@C @F@[@@C THIS RZL )@@G@@OUTINE PROCESSES BJTS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@ZM )@@G@@ COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, ZN )@@G@@@G@[@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZEZO )@@G@@, @G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,ZP )@@G@@NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQZQ )@@G@@UA,MACINS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LXZR )@@G@@5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ ZS )@@G@@COMMON /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ZT )@@G@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATZU )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODZV )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEZW )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RZX )@@G@@AD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHZY )@@G@@GTOL,EPS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ ZZ )@@G@@INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE AA )@@G@@(VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSAB )@@G@@ION VBEO(1),VBCO(1),CCO(1),CBO(1),GPIO(1),GMUO(1),GMO(1), @E@[@@ 1AC )@@G@@ GOO(1),QBE(1),CQBE(1),QBC(1),CQBC(1),QCS(1),CQCS(1)@E@[@@ EQUIVAAD )@@G@@LENCE (VBEO(1),VALUE(1)),(VBCO(1),VALUE(2)), @F@[@@ 1 (CCO(1),VAE )@@G@@ALUE(3)),(CBO(1),VALUE(4)),(GPIO(1),VALUE(5)), @F@[@@ 2 (GMUO(1),AF )@@G@@VALUE(6)),(GMO(1),VALUE(7)),(GOO(1),VALUE(8)), @F@[@@ 3 (QBE(1),VAG )@@G@@ALUE(9)),(CQBE(1),VALUE(10)),(QBC(1),VALUE(11)),@G@[@@ 4 (CQBC(1),AH )@@G@@VALUE(12)),(QCS(1),VALUE(13)),(CQCS(1),VALUE(14)) @[@[@@C @[@[@@AI )@@G@@C @^@[@@ LOC=LOCATE(12) @ @[@@ 10 IF (LOC.EQ.0) RETURN AJ )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@AK )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@AL )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@AM )@@G@@ NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ AN )@@G@@IOFF=NODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NAO )@@G@@ODPLC(LOCM+1) @ @[@@ LOCT=NODPLC(LOC+22) @[@[@@C @^@[@@AP )@@G@@C DC MODEL PARAMTERS @[@[@@C @^@[@@ AREA=VALUE(LOCV+1)@^@[@@AQ )@@G@@ BFM=VALUE(LOCM+1) @^@[@@ BRM=VALUE(LOCM+2) @ @[@@ CSAT=VAR )@@G@@ALUE(LOCM+3)*AREA @ @[@@ GBPR=VALUE(LOCM+4)*AREA @ @[@@ GCPR=VAS )@@G@@ALUE(LOCM+5)*AREA @ @[@@ GEPR=VALUE(LOCM+6)*AREA @^@[@@ OVA=VAAT )@@G@@LUE(LOCM+7) @^@[@@ OVB=VALUE(LOCM+8) @ @[@@ OIK=VALUE(LOCM+9)/AU )@@G@@AREA @^@[@@ C2=VALUE(LOCM+10) @ @[@@ VTE=VALUE(LOCM+11)*VT AV )@@G@@@ @[@@ OIKR=VALUE(LOCM+12)/AREA@^@[@@ C4=VALUE(LOCM+13) @ @[@@AW )@@G@@ VTC=VALUE(LOCM+14)*VT @ @[@@ VCRIT=VALUE(LOCM+37) @[@[@@AX )@@G@@C @#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@AY )@@G@@ GO TO (100,20,30,50,60,70),INITF @ @[@@ 20 IF (IOFF.NE.0) GO AZ )@@G@@TO 40 @ @[@@ VBE=TYPE*VALUE(LOCV+2) @ @[@@ VCE=TYPE*VALUE(LOCBA )@@G@@V+3) @#@[@@ VBC=VBE-VCE @A@[@@ IF (VBE.NE.0.0) GO TO 300 BB )@@G@@@A@[@@ IF (VCE.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).ANBC )@@G@@D.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VBE=VCRIT BD )@@G@@@#@[@@ VBC=0.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.BE )@@G@@0) GO TO 100@#@[@@ 40 VBE=0.0 @#@[@@ VBC=0.0 @#@[@@ BF )@@G@@GO TO 300 @^@[@@ 50 VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)BG )@@G@@@#@[@@ GO TO 300 @^@[@@ 60 VBE=VBEO(LX1+LOCT)@^@[@@ VBC=VBBH )@@G@@CO(LX1+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) BI )@@G@@@A@[@@ VBEO(LX0+LOCT)=VBEO(LX1+LOCT) @E@[@@ VBE=(1.0+XFACT)*VBBJ )@@G@@EO(LX1+LOCT)-XFACT*VBEO(LX2+LOCT) @A@[@@ VBCO(LX0+LOCT)=VBCO(LX1+BK )@@G@@LOCT) @E@[@@ VBC=(1.0+XFACT)*VBCO(LX1+LOCT)-XFACT*VBCO(LX2+LOCT) BL )@@G@@@A@[@@ CCO(LX0+LOCT)=CCO(LX1+LOCT) @A@[@@ CBO(LX0+LOCT)=CBO(BM )@@G@@LX1+LOCT) @A@[@@ GPIO(LX0+LOCT)=GPIO(LX1+LOCT) @A@[@@ GMUO(LBN )@@G@@X0+LOCT)=GMUO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@BO )@@G@@ GOO(LX0+LOCT)=GOO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C BP )@@G@@@B@[@@C COMPUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 BQ )@@G@@VBE=TYPE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE6)) @E@[@@ VBC=TYBR )@@G@@PE*(VALUE(LVNIM1+NODE5)-VALUE(LVNIM1+NODE4)) @A@[@@ 110 DELVBE=VBE-VBS )@@G@@BEO(LX0+LOCT) @A@[@@ DELVBC=VBC-VBCO(LX0+LOCT) @F@[@@ BT )@@G@@CCHAT=CCO(LX0+LOCT)+(GMO(LX0+LOCT)+GOO(LX0+LOCT))*DELVBE @C@[@@ 1BU )@@G@@ -(GOO(LX0+LOCT)+GMUO(LX0+LOCT))*DELVBC @G@[@@ CBHAT=CBO(LX0+LOCTBV )@@G@@)+GPIO(LX0+LOCT)*DELVBE+GMUO(LX0+LOCT)*DELVBC @[@[@@C @B@[@@C BYPBW )@@G@@ASS IF SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQBX )@@G@@.6) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VBE),ABS(VBEO(LX0+LOCBY )@@G@@T)))+VNTOL @B@[@@ IF (ABS(DELVBE).GE.TOL) GO TO 200 @E@[@@ BZ )@@G@@TOL=RELTOL*AMAX1(ABS(VBC),ABS(VBCO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABCA )@@G@@S(DELVBC).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABCB )@@G@@S(CCO(LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CCHAT-CCO(LX0+LOCT)).GE.TOL)CC )@@G@@ GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBO(LX0+LOCT)))+CD )@@G@@ABSTOL@D@[@@ IF (ABS(CBHAT-CBO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@CE )@@G@@ VBE=VBEO(LX0+LOCT)@^@[@@ VBC=VBCO(LX0+LOCT)@^@[@@ CC=CCOCF )@@G@@(LX0+LOCT) @^@[@@ CB=CBO(LX0+LOCT) @^@[@@ GPI=GPIO(LX0+LOCT)CG )@@G@@@^@[@@ GMU=GMUO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ CH )@@G@@GO=GOO(LX0+LOCT) @#@[@@ GO TO 800 @[@[@@C @A@[@@C LIMIT NONCI )@@G@@LINEAR BRANCH VOLTAGES @[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ CJ )@@G@@CALL PNJLIM(VBE,VBEO(LX0+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(CK )@@G@@VBC,VBCO(LX0+LOCT),VT,VCRIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0CL )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVITIVES @[@[@@C CM )@@G@@@A@[@@ 300 IF (VBE.LE.0.0) GO TO 320 @^@[@@ EVBE=EXP(VBE/VT) CN )@@G@@@ @[@@ CBE=CSAT*(EVBE-1.0) @^@[@@ GBE=CSAT*EVBE/VT @ @[@@CO )@@G@@ IF (C2.NE.0.0) GO TO 310@#@[@@ CBEN=0.0 @#@[@@ GBEN=0CP )@@G@@.0 @#@[@@ GO TO 350 @^@[@@ 310 EVBEN=EXP(VBE/VTE)@ @[@@ CQ )@@G@@CBEN=C2*CSAT*(EVBEN-1.0)@ @[@@ GBEN=C2*CSAT*EVBEN/VTE @#@[@@ CR )@@G@@GO TO 350 @#@[@@ 320 GBE=CSAT/VT @#@[@@ CBE=GBE*VBE @^@[@@ CS )@@G@@GBEN=C2*CSAT/VTE @^@[@@ CBEN=GBEN*VBE @A@[@@ 350 IF (VBC.LE.0CT )@@G@@.0) GO TO 370 @^@[@@ EVBC=EXP(VBC/VT) @ @[@@ CBC=CSAT*(EVCU )@@G@@BC-1.0) @^@[@@ GBC=CSAT*EVBC/VT @ @[@@ IF (C4.NE.0.0) GO CV )@@G@@TO 360@#@[@@ CBCN=0.0 @#@[@@ GBCN=0.0 @#@[@@ GO TO CW )@@G@@400 @^@[@@ 360 EVBCN=EXP(VBC/VTC)@ @[@@ CBCN=C4*CSAT*(EVBCN-1.0)CX )@@G@@@ @[@@ GBCN=C4*CSAT*EVBCN/VTC @#@[@@ GO TO 400 @#@[@@ 370 CY )@@G@@GBC=CSAT/VT @#@[@@ CBC=GBC*VBC @^@[@@ GBCN=C4*CSAT/VTC @^@[@@CZ )@@G@@ CBCN=GBCN*VBC @[@[@@C @ @[@@C DETERMINE BASE CHARGE TERMSDA )@@G@@@[@[@@C @A@[@@ 400 Q1=1.0/(1.0-OVA*VBC-OVB*VBE) @A@[@@ IF (OIDB )@@G@@K.NE.0.0) GO TO 410 @A@[@@ IF (OIKR.NE.0.0) GO TO 410 @]@[@@DC )@@G@@ QB=Q1 @^@[@@ DQBDVE=Q1*QB*OVB @^@[@@ DQBDVC=Q1*QB*OVA DD )@@G@@@#@[@@ GO TO 420 @ @[@@ 410 Q2=OIK*CBE+OIKR*CBC @ @[@@ DE )@@G@@SQARG=SQRT(1.0+4.0*Q2) @ @[@@ QB=Q1*(1.0+SQARG)/2.0 @B@[@@ DF )@@G@@DQBDVE=Q1*(QB*OVB+OIK*GBE/SQARG) @B@[@@ DQBDVC=Q1*(QB*OVA+OIKR*GDG )@@G@@BC/SQARG) @[@[@@C @B@[@@C DETERMINE DC INCREMENTAL CONDUCTANCES DH )@@G@@@[@[@@C @A@[@@ 420 CC=(CBE-CBC)/QB-CBC/BRM-CBCN @A@[@@ CB=CBEDI )@@G@@/BFM+CBEN+CBC/BRM+CBCN @^@[@@ GPI=GBE/BFM+GBEN @^@[@@ GMU=GBDJ )@@G@@C/BRM+GBCN @B@[@@ GO=(GBC+(CBE-CBC)*DQBDVC/QB)/QB @B@[@@ DK )@@G@@GM=(GBE-(CBE-CBC)*DQBDVE/QB)/QB-GO @ @[@@ IF (MODE.NE.1) GO TO 500DL )@@G@@@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ DM )@@G@@IF (INITF.EQ.4) GO TO 500 @#@[@@ GO TO 700 @[@[@@C @ @[@@DN )@@G@@C CHARGE STORAGE ELEMENTS @[@[@@C @^@[@@ 500 TF=VALUE(LOCM+15) DO )@@G@@@^@[@@ TR=VALUE(LOCM+16) @ @[@@ CZBE=VALUE(LOCM+18)*AREA@^@[@@DP )@@G@@ PE=VALUE(LOCM+19) @^@[@@ XME=VALUE(LOCM+20)@ @[@@ CZBC=VDQ )@@G@@ALUE(LOCM+21)*AREA@^@[@@ PC=VALUE(LOCM+22) @^@[@@ XMC=VALUE(LODR )@@G@@CM+23)@ @[@@ FCPE=VALUE(LOCM+28) @A@[@@ IF (VBE.GE.FCPE) GDS )@@G@@O TO 510 @^@[@@ ARG=1.0-VBE/PE @ @[@@ SARG=EXP(-XME*ALOGDT )@@G@@(ARG))@E@[@@ QBE(LX0+LOCT)=TF*CBE+PE*CZBE*(1.0-ARG*SARG)/(1.0-XME) DU )@@G@@@ @[@@ CAPBE=TF*GBE+CZBE*SARG @#@[@@ GO TO 520 @^@[@@ 510 DV )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCDW )@@G@@M+32) @^@[@@ CZBEF2=CZBE/F2 @E@[@@ QBE(LX0+LOCT)=TF*CBE+CZBDX )@@G@@E*F1+CZBEF2*(F3*(VBE-FCPE) @C@[@@ 1 +(XME/(PE+PE))*(VBE*VBE-FCPDY )@@G@@E*FCPE)) @B@[@@ CAPBE=TF*GBE+CZBEF2*(F3+XME*VBE/PE) @ @[@@ 520 DZ )@@G@@FCPC=VALUE(LOCM+33) @A@[@@ IF (VBC.GE.FCPC) GO TO 530 @^@[@@EA )@@G@@ ARG=1.0-VBC/PC @ @[@@ SARG=EXP(-XMC*ALOG(ARG))@E@[@@ EB )@@G@@QBC(LX0+LOCT)=TR*CBC+PC*CZBC*(1.0-ARG*SARG)/(1.0-XMC) @ @[@@ CAPBC=EC )@@G@@TR*GBC+CZBC*SARG @#@[@@ GO TO 560 @^@[@@ 530 F1=VALUE(LOCM+34) ED )@@G@@@^@[@@ F2=VALUE(LOCM+35) @^@[@@ F3=VALUE(LOCM+36) @^@[@@ EE )@@G@@CZBCF2=CZBC/F2 @E@[@@ QBC(LX0+LOCT)=TR*CBC+CZBC*F1+CZBCF2*(F3*(VEF )@@G@@BC-FCPC) @C@[@@ 1 +(XMC/(PC+PC))*(VBC*VBC-FCPC*FCPC)) @B@[@@EG )@@G@@ CAPBC=TR*GBC+CZBCF2*(F3+XMC*VBC/PC) @[@[@@C @A@[@@C STORE SMAEH )@@G@@LL-SIGNAL PARAMETERS @[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEI )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GOEJ )@@G@@ TO 600 @ @[@@ VALUE(LX0+LOCT+9)=CAPBE @ @[@@ VALUE(LX0+LOEK )@@G@@CT+11)=CAPBC@#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYEL )@@G@@SIS @[@[@@C @A@[@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ EM )@@G@@QBE(LX1+LOCT)=QBE(LX0+LOCT) @A@[@@ QBC(LX1+LOCT)=QBC(LX0+LOCT) EN )@@G@@@B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBE,LOCT+8) @#@[@@ GPI=GPI+GEQ EO )@@G@@@ @[@@ CB=CB+CQBE(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBEP )@@G@@C,LOCT+10) @#@[@@ GMU=GMU+GEQ @ @[@@ CB=CB+CQBC(LX0+LOCT) EQ )@@G@@@ @[@@ CC=CC-CQBC(LX0+LOCT) @A@[@@ IF (INITF.NE.5) GO TO 70ER )@@G@@0 @A@[@@ CQBE(LX1+LOCT)=CQBE(LX0+LOCT) @A@[@@ CQBC(LX1+LOCES )@@G@@T)=CQBC(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE @[@[@@C ET )@@G@@@A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOFF.EQ.0) GO EU )@@G@@TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GO TO 720 EV )@@G@@@D@[@@ TOL=RELTOL*AMAX1(ABS(CCHAT),ABS(CC))+ABSTOL @B@[@@ EW )@@G@@IF (ABS(CCHAT-CC).GT.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CBHEX )@@G@@AT),ABS(CB))+ABSTOL @B@[@@ IF (ABS(CBHAT-CB).LE.TOL) GO TO 750 EY )@@G@@@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBEO(LX0+LOCT)=VBE@^@[@@ EZ )@@G@@VBCO(LX0+LOCT)=VBC@^@[@@ CCO(LX0+LOCT)=CC @^@[@@ CBO(LX0+LOCTFA )@@G@@)=CB @^@[@@ GPIO(LX0+LOCT)=GPI@^@[@@ GMUO(LX0+LOCT)=GMU@^@[@@FB )@@G@@ GMO(LX0+LOCT)=GM @^@[@@ GOO(LX0+LOCT)=GO @[@[@@C @ @[@@FC )@@G@@C LINEAR SUBSTRATE CAPACITOR @[@[@@C @ @[@@ 800 IF (MODE.NE.1) GO FD )@@G@@TO 810@#@[@@ GCCS=0.0 @#@[@@ CEQCS=0.0 @#@[@@ GO TO FE )@@G@@900 @ @[@@ 810 CCS=VALUE(LOCM+17)*AREA @A@[@@ IF (INITF.NE.6) GOFF )@@G@@ TO 820 @A@[@@ QCS(LX0+LOCT)=QCS(LX1+LOCT) @#@[@@ GO TO FG )@@G@@830 @C@[@@ 820 QCS(LX0+LOCT)=CCS*VALUE(LVNIM1+NODE4) @A@[@@ FH )@@G@@IF (INITF.NE.5) GO TO 830 @A@[@@ QCS(LX1+LOCT)=QCS(LX0+LOCT) FI )@@G@@@B@[@@ 830 CALL INTGR8(GCCS,CEQCS,CCS,LOCT+12) @A@[@@ IF (INITF.NEFJ )@@G@@.5) GO TO 900 @A@[@@ CQCS(LX1+LOCT)=CQCS(LX0+LOCT) @[@[@@C FK )@@G@@@A@[@@C LOAD CURRENT EXCITATION VECTOR @[@[@@C @C@[@@ 900 CEQBE=FL )@@G@@TYPE*(CC+CB-VBE*(GM+GO+GPI)+VBC*GO) @C@[@@ CEQBC=TYPE*(-CC+VBE*(GM+FM )@@G@@GO)-VBC*(GMU+GO)) @D@[@@ VALUE(LVN+NODE4)=VALUE(LVN+NODE4)-CEQCS+CEFN )@@G@@QBC @D@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODE5)-CEQBE-CEQBC @C@[@@FO )@@G@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CEQBE @[@[@@C @#@[@@C LOAFP )@@G@@D Y MATRIX @[@[@@C @ @[@@ LOCY=LYNL+NODPLC(LOC+24)@A@[@@ FQ )@@G@@VALUE(LOCY)=VALUE(LOCY)+GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+25)@A@[@@FR )@@G@@ VALUE(LOCY)=VALUE(LOCY)+GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+26)FS )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GEPR @ @[@@ LOCY=LYNL+NODPLC(LFT )@@G@@OC+27)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GMU+GO+GCPR+GCCS @ @[@@ FU )@@G@@LOCY=LYNL+NODPLC(LOC+28)@B@[@@ VALUE(LOCY)=VALUE(LOCY)+GBPR+GPI+GMUFV )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+29)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+FW )@@G@@GPI+GEPR+GM+GO @ @[@@ LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(FX )@@G@@LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ FY )@@G@@VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@FZ )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)GA )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCPR @ @[@@ LOCY=LYNL+NODPLC(LGB )@@G@@OC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU+GM@ @[@@ LOCY=LYNL+NOGC )@@G@@DPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GM-GO @ @[@@ LOCY=LGD )@@G@@YNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GBPR @ @[@@ GE )@@G@@LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GMU @ @[@@GF )@@G@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GPI GG )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+19)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GH )@@G@@GEPR @ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(GI )@@G@@LOCY)-GO @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@A@[@@ VALUE(LOCY)=GJ )@@G@@VALUE(LOCY)-GPI-GM@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 GK )@@G@@@]@[@@ END @B@[@@ SUBROUTINE FETLIM(VNEW,VOLD,VTO) @[@[@@GL )@@G@@C @G@[@@C THIS ROUTINE LIMITS THE PER-ITERATION CHANGE OF FET VOGM )@@G@@LTAGES. @[@[@@C @[@[@@C @D@[@@C THREE REGIONS OF OPERATGN )@@G@@ION ARE IDENTIFIED: @[@[@@C @C@[@@C V < VTO GO )@@G@@ DEFINITELY OFF@E@[@@C VTO @ V @ VTO+3.5 OFF OR ON DEPEGP )@@G@@NDING ON VBS@C@[@@C VTO+3.5 < V DEFINITELY ON @[@[@@GQ )@@G@@C @A@[@@ VTSTHI=ABS(2.0*(VOLD-VTO))+2.0@ @[@@ VTSTLO=VTSTHGR )@@G@@I/2.0+2.0 @#@[@@ VTOX=VTO+3.5@^@[@@ DELV=VNEW-VOLD @[@[@@GS )@@G@@C @A@[@@ IF (VOLD.LT.VTO) GO TO 300 @A@[@@ IF (VOLD.LT.GT )@@G@@VTOX) GO TO 200 @[@[@@C @]@[@@C ON ... @[@[@@C @A@[@@ GU )@@G@@IF (DELV.GT.0.0) GO TO 120 @#@[@@C... GOING OFF @A@[@@ IF (VNGV )@@G@@EW.LT.VTOX) GO TO 110 @A@[@@ IF (-DELV.LE.VTSTLO) GO TO 500@^@[@@GW )@@G@@ VNEW=VOLD-VTSTLO @#@[@@ GO TO 500 @ @[@@ 110 VNEW=AMAX1(VGX )@@G@@NEW,VTO+2.0)@#@[@@ GO TO 500 @#@[@@C... STAYING ON @A@[@@ 120 GY )@@G@@IF (DELV.LT.VTSTHI) GO TO 500 @^@[@@ VNEW=VOLD+VTSTHI @#@[@@ GZ )@@G@@GO TO 500 @[@[@@C @^@[@@C MIDDLE REGION ... @[@[@@C @A@[@@HA )@@G@@ 200 IF (DELV.GT.0.0) GO TO 210 @#@[@@C... DECREASING @ @[@@ HB )@@G@@VNEW=AMAX1(VNEW,VTO-0.5)@#@[@@ GO TO 500 @#@[@@C... INCREASING HC )@@G@@@ @[@@ 210 VNEW=AMIN1(VNEW,VTO+4.0)@#@[@@ GO TO 500 @[@[@@C HD )@@G@@@]@[@@C OFF ... @[@[@@C @A@[@@ 300 IF (DELV.GT.0.0) GO TO 310 HE )@@G@@@A@[@@ IF (-DELV.LE.VTSTHI) GO TO 500@^@[@@ VNEW=VOLD-VTSTHI HF )@@G@@@#@[@@ GO TO 500 @^@[@@ 310 VTEMP=VTO+0.5 @A@[@@ IF (VNHG )@@G@@EW.GT.VTEMP) GO TO 320 @A@[@@ IF (DELV.LE.VTSTLO) GO TO 500 @^@[@@HH )@@G@@ VNEW=VOLD+VTSTLO @#@[@@ GO TO 500 @#@[@@ 320 VNEW=VTEMP HI )@@G@@@[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 500 RETURN@]@[@@ HJ )@@G@@END @^@[@@ SUBROUTINE JFET @[@[@@C @F@[@@C THIS ROUTINEHK )@@G@@ PROCESSES JFETS FOR DC AND TRANSIENT ANALYSES. @[@[@@C @G@[@@ HL )@@G@@COMMON /TABINF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@HM )@@G@@ 1 ISENS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, HN )@@G@@@G@[@@ 2 JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFFHO )@@G@@,ISR, @G@[@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACHP )@@G@@INS,LVNIM1, @G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,HQ )@@G@@LX7,LD0,LD1,LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMONHR )@@G@@ /CIRDAT/ LOCATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1HS )@@G@@ NUT,NLT,NXTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMHT )@@G@@EGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEHU )@@G@@DC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOHV )@@G@@SOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLHW )@@G@@TZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EHX )@@G@@PS0,EPSSIL,EPSOX @ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGEHY )@@G@@R NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUEHZ )@@G@@(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VGIA )@@G@@SO(1),VGDO(1),CGO(1),CDO(1),CGDO(1),GMO(1),GDSO(1), @D@[@@ 1 GGSIB )@@G@@O(1),GGDO(1),QGS(1),CQGS(1),QGD(1),CQGD(1)@E@[@@ EQUIVALENCE (VGSO(IC )@@G@@1),VALUE( 1)),(VGDO(1),VALUE( 2)), @E@[@@ 1 (CGO (1),VALID )@@G@@UE( 3)),(CDO (1),VALUE( 4)), @E@[@@ 2 (CGDO(1),VALUE( 5)IE )@@G@@),(GMO (1),VALUE( 6)), @E@[@@ 3 (GDSO(1),VALUE( 7)),(GGSIF )@@G@@O(1),VALUE( 8)), @E@[@@ 4 (GGDO(1),VALUE( 9)),(QGS (1),VIG )@@G@@ALUE(10)), @E@[@@ 5 (CQGS(1),VALUE(11)),(QGD (1),VALUE(1IH )@@G@@2)), @B@[@@ 6 (CQGD(1),VALUE(13)) @[@[@@C @[@[@@II )@@G@@C @^@[@@ LOC=LOCATE(13) @ @[@@ 10 IF (LOC.EQ.0) RETURN IJ )@@G@@@^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@IK )@@G@@ NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@IL )@@G@@ NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @^@[@@IM )@@G@@ LOCM=NODPLC(LOC+7)@^@[@@ IOFF=NODPLC(LOC+8)@ @[@@ TYPE=NIN )@@G@@ODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=NIO )@@G@@ODPLC(LOC+19) @[@[@@C @^@[@@C DC MODEL PARAMETERS @[@[@@C IP )@@G@@@^@[@@ AREA=VALUE(LOCV+1)@^@[@@ VTO=VALUE(LOCM+1) @ @[@@ IQ )@@G@@BETA=VALUE(LOCM+2)*AREA @ @[@@ XLAMB=VALUE(LOCM+3) @ @[@@ IR )@@G@@GDPR=VALUE(LOCM+4)*AREA @ @[@@ GSPR=VALUE(LOCM+5)*AREA @ @[@@ IS )@@G@@CSAT=VALUE(LOCM+9)*AREA @ @[@@ VCRIT=VALUE(LOCM+16) @[@[@@C IT )@@G@@@#@[@@C INITIALIZATION @[@[@@C @#@[@@ ICHECK=0 @B@[@@ IU )@@G@@GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOFF.NE.0) GO TO 40 IV )@@G@@@ @[@@ VDS=TYPE*VALUE(LOCV+2) @ @[@@ VGS=TYPE*VALUE(LOCV+3) IW )@@G@@@#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 @A@[@@IX )@@G@@ IF (VGS.NE.0.0) GO TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODIY )@@G@@EDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 300 @#@[@@ VGS=-1.0 @#@[@@IZ )@@G@@ VGD=-1.0 @#@[@@ GO TO 300 @ @[@@ 30 IF (IOFF.EQ.0) GO JA )@@G@@TO 100@#@[@@ 40 VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO JB )@@G@@300 @^@[@@ 50 VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@JC )@@G@@ GO TO 300 @^@[@@ 60 VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1JD )@@G@@+LOCT)@#@[@@ GO TO 300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@JE )@@G@@ VGSO(LX0+LOCT)=VGSO(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1JF )@@G@@+LOCT)-XFACT*VGSO(LX2+LOCT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) JG )@@G@@@E@[@@ VGD=(1.0+XFACT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@JH )@@G@@ CGO(LX0+LOCT)=CGO(LX1+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(LX1+LOJI )@@G@@CT) @A@[@@ CGDO(LX0+LOCT)=CGDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCTJJ )@@G@@)=GMO(LX1+LOCT) @A@[@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @A@[@@ JK )@@G@@GGSO(LX0+LOCT)=GGSO(LX1+LOCT) @A@[@@ GGDO(LX0+LOCT)=GGDO(LX1+LOCT) JL )@@G@@@#@[@@ GO TO 110 @[@[@@C @B@[@@C COMPUTE NEW NONLINEAR BRANCJM )@@G@@H VOLTAGES @[@[@@C @E@[@@ 100 VGS=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(JN )@@G@@LVNIM1+NODE5)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-VALUE(LVNIM1JO )@@G@@+NODE4)) @A@[@@ 110 DELVGS=VGS-VGSO(LX0+LOCT) @A@[@@ DELVGDJP )@@G@@=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGS-DELVGD @G@[@@ JQ )@@G@@CGHAT=CGO(LX0+LOCT)+GGDO(LX0+LOCT)*DELVGD+GGSO(LX0+LOCT)*DELVGS @G@[@@JR )@@G@@ CDHAT=CDO(LX0+LOCT)+GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS JS )@@G@@@A@[@@ 1 -GGDO(LX0+LOCT)*DELVGD @[@[@@C @B@[@@C BYPASS IFJT )@@G@@ SOLUTION HAS NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GOJU )@@G@@ TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VJV )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=REJW )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVJX )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CGO(JY )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CGHAT-CGO(LX0+LOCT)).GE.TOL) GO TOJZ )@@G@@ 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(LX0+LOCT)))+ABSTOLKA )@@G@@@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TO 200 @^@[@@ KB )@@G@@VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD KC )@@G@@@^@[@@ CG=CGO(LX0+LOCT) @^@[@@ CD=CDO(LX0+LOCT) @^@[@@ KD )@@G@@CGD=CGDO(LX0+LOCT)@^@[@@ GM=GMO(LX0+LOCT) @^@[@@ GDS=GDSO(LX0KE )@@G@@+LOCT)@^@[@@ GGS=GGSO(LX0+LOCT)@^@[@@ GGD=GGDO(LX0+LOCT)@#@[@@KF )@@G@@ GO TO 900 @[@[@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES KG )@@G@@@[@[@@C @#@[@@ 200 ICHK1=0 @D@[@@ CALL PNJLIM(VGS,VGSO(LX0KH )@@G@@+LOCT),VT,VCRIT,ICHECK) @D@[@@ CALL PNJLIM(VGD,VGDO(LX0+LOCT),VT,VCKI )@@G@@RIT,ICHK1) @ @[@@ IF (ICHK1.EQ.0) ICHECK=0@B@[@@ CALL FETLIM(KJ )@@G@@VGS,VGSO(LX0+LOCT),VTO) @B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VTO) KK )@@G@@@[@[@@C @B@[@@C DETERMINE DC CURRENT AND DERIVATIVES @[@[@@C KL )@@G@@@#@[@@ 300 VDS=VGS-VGD @A@[@@ IF (VGS.GT.0.0) GO TO 310 @#@[@@KM )@@G@@ GGS=CSAT/VT @#@[@@ CG=GGS*VGS @#@[@@ GO TO 320 @^@[@@KN )@@G@@ 310 EVGS=EXP(VGS/VT) @^@[@@ GGS=CSAT*EVGS/VT @^@[@@ CG=CSAKO )@@G@@T*(EVGS-1.0)@A@[@@ 320 IF (VGD.GT.0.0) GO TO 330 @#@[@@ GGD=CSKP )@@G@@AT/VT @#@[@@ CGD=GGD*VGD @#@[@@ GO TO 340 @^@[@@ 330 EVGD=EKQ )@@G@@XP(VGD/VT) @^@[@@ GGD=CSAT*EVGD/VT @ @[@@ CGD=CSAT*(EVGD-1.0KR )@@G@@) @#@[@@ 340 CG=CG+CGD @[@[@@C @E@[@@C COMPUTE DRAIN CURRENTKS )@@G@@ AND DERIVITIVES FOR NORMAL MODE @[@[@@C @A@[@@ 400 IF (VDS.LT.0KT )@@G@@.0) GO TO 450 @#@[@@ VGST=VGS-VTO@[@[@@C @ @[@@C NORMAL MOKU )@@G@@DE, CUTOFF REGION @[@[@@C @A@[@@ IF (VGST.GT.0.0) GO TO 410 KV )@@G@@@#@[@@ CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GDS=0.0 @#@[@@KW )@@G@@ GO TO 490 @[@[@@C @A@[@@C NORMAL MODE, SATURATION REGION KX )@@G@@@[@[@@C @A@[@@ 410 BETAP=BETA*(1.0+XLAMB*VDS) @^@[@@ TWOB=BKY )@@G@@ETAP+BETAP @A@[@@ IF (VGST.GT.VDS) GO TO 420 @ @[@@ CDRAINKZ )@@G@@=BETAP*VGST*VGST @#@[@@ GM=TWOB*VGST@ @[@@ GDS=XLAMB*BETA*VGSLA )@@G@@T*VGST@#@[@@ GO TO 490 @[@[@@C @ @[@@C NORMAL MODE, LINEAR RLB )@@G@@EGION @[@[@@C @B@[@@ 420 CDRAIN=BETAP*VDS*(VGST+VGST-VDS) @#@[@@LC )@@G@@ GM=TWOB*VDS @E@[@@ GDS=TWOB*(VGST-VDS)+XLAMB*BETA*VDS*(VGST+VLD )@@G@@GST-VDS) @#@[@@ GO TO 490 @[@[@@C @E@[@@C COMPUTE DRAIN CLE )@@G@@URRENT AND DERIVITIVES FOR INVERSE MODE @[@[@@C @#@[@@ 450 VGDT=VLF )@@G@@GD-VTO@[@[@@C @ @[@@C INVERSE MODE, CUTOFF REGION@[@[@@C @A@[@@LG )@@G@@ IF (VGDT.GT.0.0) GO TO 460 @#@[@@ CDRAIN=0.0 @]@[@@ LH )@@G@@GM=0.0@#@[@@ GDS=0.0 @#@[@@ GO TO 490 @[@[@@C @A@[@@LI )@@G@@C INVERSE MODE, SATURATION REGION @[@[@@C @A@[@@ 460 BETAP=BETA*(LJ )@@G@@1.0-XLAMB*VDS) @^@[@@ TWOB=BETAP+BETAP @A@[@@ IF (VGDT.GT.LK )@@G@@-VDS) GO TO 470 @ @[@@ CDRAIN=-BETAP*VGDT*VGDT @^@[@@ GM=-TWLL )@@G@@OB*VGDT @A@[@@ GDS=XLAMB*BETA*VGDT*VGDT-GM @#@[@@ GO TO LM )@@G@@490 @[@[@@C @ @[@@C INVERSE MODE, LINEAR REGION@[@[@@C @B@[@@LN )@@G@@ 470 CDRAIN=BETAP*VDS*(VGDT+VGDT+VDS) @#@[@@ GM=TWOB*VDS @D@[@@LO )@@G@@ GDS=TWOB*VGDT-XLAMB*BETA*VDS*(VGDT+VGDT+VDS) @[@[@@C @B@[@@LP )@@G@@C COMPUTE EQUIVALENT DRAIN CURRENT SOURCE@[@[@@C @^@[@@ 490 CD=CDRLQ )@@G@@AIN-CGD @ @[@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.LR )@@G@@EQ.2).AND.(NOSOLV.NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 50LS )@@G@@0 @#@[@@ GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENLT )@@G@@TS @[@[@@C @ @[@@ 500 CZGS=VALUE(LOCM+6)*AREA @ @[@@ CZGD=VLU )@@G@@ALUE(LOCM+7)*AREA @^@[@@ PHIB=VALUE(LOCM+8)@^@[@@ TWOP=PHIB+PHLV )@@G@@IB @ @[@@ FCPB=VALUE(LOCM+12) @^@[@@ FCPB2=FCPB*FCPB LW )@@G@@@^@[@@ F1=VALUE(LOCM+13) @^@[@@ F2=VALUE(LOCM+14) @^@[@@ LX )@@G@@F3=VALUE(LOCM+15) @^@[@@ CZGSF2=CZGS/F2 @^@[@@ CZGDF2=CZGD/LY )@@G@@F2 @A@[@@ IF (VGS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.LZ )@@G@@0-VGS/PHIB) @B@[@@ QGS(LX0+LOCT)=TWOP*CZGS*(1.0-SARG) @^@[@@ MA )@@G@@CAPGS=CZGS/SARG @#@[@@ GO TO 520 @D@[@@ 510 QGS(LX0+LOCT)=CZGSMB )@@G@@*F1+CZGSF2*(F3*(VGS-FCPB) @B@[@@ 1 +(VGS*VGS-FCPB2)/(TWOP+TWOPMC )@@G@@)) @A@[@@ CAPGS=CZGSF2*(F3+VGS/TWOP) @A@[@@ 520 IF (VGD.GE.FMD )@@G@@CPB) GO TO 530 @ @[@@ SARG=SQRT(1.0-VGD/PHIB) @B@[@@ QGD(LXME )@@G@@0+LOCT)=TWOP*CZGD*(1.0-SARG) @^@[@@ CAPGD=CZGD/SARG @#@[@@ MF )@@G@@GO TO 560 @D@[@@ 530 QGD(LX0+LOCT)=CZGD*F1+CZGDF2*(F3*(VGD-FCPB) MG )@@G@@@B@[@@ 1 +(VGD*VGD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPGD=CZGDF2MH )@@G@@*(F3+VGD/TWOP) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS MI )@@G@@@[@[@@C @G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEMJ )@@G@@.0)) GO TO 700 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ MK )@@G@@VALUE(LX0+LOCT+9)=CAPGS @ @[@@ VALUE(LX0+LOCT+11)=CAPGD@#@[@@ ML )@@G@@GO TO 1000 @[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@MM )@@G@@ 600 IF (INITF.NE.5) GO TO 610 @A@[@@ QGS(LX1+LOCT)=QGS(LX0+LOMN )@@G@@CT) @A@[@@ QGD(LX1+LOCT)=QGD(LX0+LOCT) @B@[@@ 610 CALL INTGR8(MO )@@G@@GEQ,CEQ,CAPGS,LOCT+9) @#@[@@ GGS=GGS+GEQ @ @[@@ CG=CG+CQGS(LMP )@@G@@X0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPGD,LOCT+11) @#@[@@ MQ )@@G@@GGD=GGD+GEQ @ @[@@ CG=CG+CQGD(LX0+LOCT) @ @[@@ CD=CD-CQGD(LMR )@@G@@X0+LOCT) @ @[@@ CGD=CGD+CQGD(LX0+LOCT) @A@[@@ IF (INITF.NEMS )@@G@@.5) GO TO 700 @A@[@@ CQGS(LX1+LOCT)=CQGS(LX0+LOCT) @A@[@@ MT )@@G@@CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @[@[@@C @^@[@@C CHECK CONVERGENCE MU )@@G@@@[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 710 @ @[@@ IF (IOMV )@@G@@FF.EQ.0) GO TO 710@#@[@@ GO TO 750 @A@[@@ 710 IF (ICHECK.EQ.0) GMW )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CGHAT),ABS(CG))+ABSTOL MX )@@G@@@B@[@@ IF (ABS(CGHAT-CG).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AMY )@@G@@MAX1(ABS(CDHAT),ABS(CD))+ABSTOL @B@[@@ IF (ABS(CDHAT-CD).LE.TOLMZ )@@G@@) GO TO 750 @^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VGSO(LX0+LOCT)=VGSNA )@@G@@@^@[@@ VGDO(LX0+LOCT)=VGD@^@[@@ CGO(LX0+LOCT)=CG @^@[@@ NB )@@G@@CDO(LX0+LOCT)=CD @^@[@@ CGDO(LX0+LOCT)=CGD@^@[@@ GMO(LX0+LOCTNC )@@G@@)=GM @^@[@@ GDSO(LX0+LOCT)=GDS@^@[@@ GGSO(LX0+LOCT)=GGS@^@[@@ND )@@G@@ GGDO(LX0+LOCT)=GGD@[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@NE )@@G@@C @ @[@@ 900 CEQGD=TYPE*(CGD-GGD*VGD)@A@[@@ CEQGS=TYPE*((CG-CGNF )@@G@@D)-GGS*VGS) @B@[@@ CDREQ=TYPE*((CD+CGD)-GDS*VDS-GM*VGS)@D@[@@ NG )@@G@@VALUE(LVN+NODE2)=VALUE(LVN+NODE2)-CEQGS-CEQGD @D@[@@ VALUE(LVN+NONH )@@G@@DE4)=VALUE(LVN+NODE4)-CDREQ+CEQGD @D@[@@ VALUE(LVN+NODE5)=VALUE(LNI )@@G@@VN+NODE5)+CDREQ+CEQGS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C NJ )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+20)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+NK )@@G@@GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+21)@B@[@@ VALUE(LOCY)=VALUE(NL )@@G@@LOCY)+GGD+GGS @ @[@@ LOCY=LYNL+NODPLC(LOC+22)@A@[@@ VALUE(NM )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+23)@B@[@@ NN )@@G@@VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+24)NO )@@G@@@C@[@@ VALUE(LOCY)=VALUE(LOCY)+GSPR+GDS+GM+GGS @ @[@@ LOCY=LNP )@@G@@YNL+NODPLC(LOC+9) @A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ NQ )@@G@@LOCY=LYNL+NODPLC(LOC+10)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGD @ @[@@NR )@@G@@ LOCY=LYNL+NODPLC(LOC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GGS NS )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-NT )@@G@@GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(NU )@@G@@LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=NV )@@G@@VALUE(LOCY)+GM-GGD@ @[@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(NW )@@G@@LOCY)=VALUE(LOCY)-GDS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ NX )@@G@@VALUE(LOCY)=VALUE(LOCY)-GGS-GM@ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@NY )@@G@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+18)NZ )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS @^@[@@ 1000 LOC=NODPLC(LOC) OA )@@G@@@#@[@@ GO TO 10 @]@[@@ END @^@[@@ SUBROUTINE MOSFET OB )@@G@@@[@[@@C @G@[@@C THIS ROUTINE PROCESSES MOSFETS FOR DC AND TRANSIOC )@@G@@ENT ANALYSES. @[@[@@C @G@[@@ COMMON /TABINF/ IELMNT,ISBCKT,OD )@@G@@NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENS,NSENS,IFOUR,NFOOE )@@G@@UR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2 JUNODE,LSBKPT,NOF )@@G@@UMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@ 3 NMOFFC,ISOG )@@G@@EQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, @G@[@@ 4 LX0OH )@@G@@,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,LTD, @ @[@@ 5OI )@@G@@ LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LOCATE(50),JELCNT(50OJ )@@G@@),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NXTRM,NDIST,NTLIN,IOK )@@G@@BR,NUMVS @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,OL )@@G@@XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,OM )@@G@@GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1ON )@@G@@,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUOO )@@G@@B,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOP )@@G@@OLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METOQ )@@G@@HOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@OR )@@G@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, OS )@@G@@@F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX OT )@@G@@@ @[@@ COMMON /BLANK/ VALUE(64)@^@[@@ INTEGER NODPLC(64)@^@[@@OU )@@G@@ COMPLEX CVALUE(32)@C@[@@ EQUIVALENCE (VALUE(1),NODPLC(1),CVALOV )@@G@@UE(1))@[@[@@C @[@[@@C @G@[@@ DIMENSION VBDO(1),VBSO(1),VGSOOW )@@G@@(1),VGDO(1),CDO(1),CBSO(1),CBDO(1), @G@[@@ 1 GMO(1),GDSO(1),GMBSO(OX )@@G@@1),GBDO(1),GBSO(1),QBD(1),CQBD(1),QBS(1), @F@[@@ 2 CQBS(1),QGS(1),OY )@@G@@CQGS(1),QGD(1),CQGD(1),QGB(1),CQGB(1) @E@[@@ EQUIVALENCE (VBDO OZ )@@G@@(1),VALUE( 1)),(VBSO (1),VALUE( 2)),@E@[@@ 1 (VGSO (1),VAPA )@@G@@LUE( 3)),(VGDO (1),VALUE( 4)),@E@[@@ 2 (CDO (1),VALUE( 5PB )@@G@@)),(CBSO (1),VALUE( 6)),@E@[@@ 3 (CBDO (1),VALUE( 7)),(GMPC )@@G@@O (1),VALUE( 8)),@E@[@@ 4 (GDSO (1),VALUE( 9)),(GMBSO(1)PD )@@G@@,VALUE(10)),@E@[@@ 5 (GBDO (1),VALUE(11)),(GBSO (1),VALUEPE )@@G@@(12)),@E@[@@ 6 (QBD (1),VALUE(13)),(CQBD (1),VALUE(14)),PF )@@G@@@E@[@@ 7 (QBS (1),VALUE(15)),(CQBS (1),VALUE(16)),@E@[@@PG )@@G@@ 8 (QGS (1),VALUE(17)),(CQGS (1),VALUE(18)),@E@[@@ 9PH )@@G@@ (QGD (1),VALUE(19)),(CQGD (1),VALUE(20)),@E@[@@ A PI )@@G@@ (QGB (1),VALUE(21)),(CQGB (1),VALUE(22)) @[@[@@C @[@[@@C PJ )@@G@@@^@[@@ LOC=LOCATE(14) @ @[@@ 10 IF (LOC.EQ.0) RETURN @^@[@@PK )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ PL )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ PM )@@G@@NODE4=NODPLC(LOC+5) @ @[@@ NODE5=NODPLC(LOC+6) @ @[@@ PN )@@G@@NODE6=NODPLC(LOC+7) @^@[@@ LOCM=NODPLC(LOC+8)@^@[@@ IOFF=NPO )@@G@@ODPLC(LOC+9)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(PP )@@G@@LOCM+1) @ @[@@ LOCT=NODPLC(LOC+26) @[@[@@C @^@[@@C DC PQ )@@G@@MODEL PARAMETERS @[@[@@C @^@[@@ XJ=VALUE(LOCM+19) @C@[@@ PR )@@G@@XL=VALUE(LOCV+1)-2.0*VALUE(LOCM+20)*XJ @^@[@@ XW=VALUE(LOCV+2) PS )@@G@@@ @[@@ DEVMOD=VALUE(LOCV+8) @ @[@@ VTO=TYPE*VALUE(LOCM+1) PT )@@G@@@ @[@@ VINIT=VALUE(LOCM+33) @ @[@@ CSAT=VALUE(LOCM+15) PU )@@G@@@^@[@@ AD=VALUE(LOCV+3) @^@[@@ AS=VALUE(LOCV+4) @^@[@@ PV )@@G@@CDSAT=CSAT*AD @^@[@@ CSSAT=CSAT*AS @^@[@@ GDPR=VALUE(LPW )@@G@@OCM+6)@^@[@@ GSPR=VALUE(LOCM+7)@ @[@@ COVLGS=VALUE(LOCM+8)*XW PX )@@G@@@ @[@@ COVLGD=VALUE(LOCM+9)*XW @ @[@@ COVLGB=VALUE(LOCM+10)*XLPY )@@G@@@^@[@@ LEV=VALUE(LOCM+36)@ @[@@ IF (LEV.GT.2) GO TO 15 @[@[@@PZ )@@G@@C @A@[@@C MOS1 AND MOS2 MODEL PARAMETERS@[@[@@C @ @[@@ QA )@@G@@BETA=VALUE(LOCM+2)*XW/XL@ @[@@ GAMMA=VALUE(LOCM+3) @^@[@@ QB )@@G@@PHI=VALUE(LOCM+4) @ @[@@ XLAMDA=VALUE(LOCM+5) @^@[@@ COX=VAQC )@@G@@LUE(LOCM+13)@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ XNFS=VALUE(LQD )@@G@@OCM+18) @^@[@@ VBP=VALUE(LOCM+24)@ @[@@ UEXP=VALUE(LOCM+25QE )@@G@@) @ @[@@ UTRA=VALUE(LOCM+26) @ @[@@ VBI=TYPE*VALUE(LOCQF )@@G@@M+34) @^@[@@ XD=VALUE(LOCM+35) @#@[@@ GO TO 18 @[@[@@C QG )@@G@@@ @[@@C E-B MODEL PARAMETERS @[@[@@C @ @[@@ 15 BETA=VALUE(LQH )@@G@@OCM+2)*XW/XL@^@[@@ COX=VALUE(LOCM+13)@^@[@@ TOX=VALUE(LOCM+37)QI )@@G@@@ @[@@ XNSUB=VALUE(LOCM+16) @ @[@@ UFB=TYPE*VALUE(LOCM+34) QJ )@@G@@@ @[@@ ALPHA=VALUE(LOCM+35) @ @[@@ VALPHA=VALUE(LOCM+38) QK )@@G@@@ @[@@ ALPHAF=VALUE(LOCM+39) @ @[@@ TAHPLA=VALUE(LOCM+40) QL )@@G@@@ @[@@ AHPLA2=VALUE(LOCM+41) @ @[@@ UPHIB=VALUE(LOCM+42) QM )@@G@@@ @[@@ SCATT=VALUE(LOCM+43)/XL @[@[@@C @#@[@@C INITIALIZATION QN )@@G@@@[@[@@C @#@[@@ 18 CONTINUE @]@[@@ KCAP=0@#@[@@ ICHECKQO )@@G@@=0 @B@[@@ GO TO (100,20,30,50,60,70), INITF @ @[@@ 20 IF (IOQP )@@G@@FF.NE.0) GO TO 40 @ @[@@ VDS=TYPE*VALUE(LOCV+5) @ @[@@ VGS=TYQQ )@@G@@PE*VALUE(LOCV+6) @ @[@@ VBS=TYPE*VALUE(LOCV+7) @#@[@@ VBD=VBQR )@@G@@S-VDS @#@[@@ VGD=VGS-VDS @A@[@@ IF (VDS.NE.0.0) GO TO 300 QS )@@G@@@A@[@@ IF (VGS.NE.0.0) GO TO 300 @A@[@@ IF (VBS.NE.0.0) GOQT )@@G@@ TO 300 @G@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NEQU )@@G@@.0)) GO TO 300 @#@[@@ VBS=VINIT @#@[@@ VBD=VINIT @#@[@@QV )@@G@@ VGS=VTO @#@[@@ VGD=VTO @#@[@@ GO TO 300 @ @[@@QW )@@G@@ 30 IF (IOFF.EQ.0) GO TO 100@#@[@@ 40 VBS=0.0 @#@[@@ VBD=0.QX )@@G@@0 @#@[@@ VGS=0.0 @#@[@@ VGD=0.0 @#@[@@ GO TO QY )@@G@@300 @^@[@@ 50 VBS=VBSO(LX0+LOCT)@^@[@@ VBD=VBDO(LX0+LOCT)@^@[@@QZ )@@G@@ VGS=VGSO(LX0+LOCT)@^@[@@ VGD=VGDO(LX0+LOCT)@#@[@@ GO TO RA )@@G@@300 @^@[@@ 60 VBS=VBSO(LX1+LOCT)@^@[@@ VBD=VBDO(LX1+LOCT)@^@[@@RB )@@G@@ VGS=VGSO(LX1+LOCT)@^@[@@ VGD=VGDO(LX1+LOCT)@#@[@@ GO TO RC )@@G@@300 @ @[@@ 70 XFACT=DELTA/DELOLD(2) @A@[@@ VBSO(LX0+LOCT)=VBSRD )@@G@@O(LX1+LOCT) @E@[@@ VBS=(1.0+XFACT)*VBSO(LX1+LOCT)-XFACT*VBSO(LX2+LORE )@@G@@CT) @A@[@@ VBDO(LX0+LOCT)=VBDO(LX1+LOCT) @E@[@@ VBD=(1.0+XFARF )@@G@@CT)*VBDO(LX1+LOCT)-XFACT*VBDO(LX2+LOCT) @A@[@@ VGSO(LX0+LOCT)=VGSRG )@@G@@O(LX1+LOCT) @E@[@@ VGS=(1.0+XFACT)*VGSO(LX1+LOCT)-XFACT*VGSO(LX2+LORH )@@G@@CT) @A@[@@ VGDO(LX0+LOCT)=VGDO(LX1+LOCT) @E@[@@ VGD=(1.0+XFARI )@@G@@CT)*VGDO(LX1+LOCT)-XFACT*VGDO(LX2+LOCT) @A@[@@ CDO(LX0+LOCT)=CDO(RJ )@@G@@LX1+LOCT) @A@[@@ CBSO(LX0+LOCT)=CBSO(LX1+LOCT) @A@[@@ CBDO(LRK )@@G@@X0+LOCT)=CBDO(LX1+LOCT) @A@[@@ GMO(LX0+LOCT)=GMO(LX1+LOCT) @A@[@@RL )@@G@@ GDSO(LX0+LOCT)=GDSO(LX1+LOCT) @B@[@@ GMBSO(LX0+LOCT)=GMBSO(LXRM )@@G@@1+LOCT) @A@[@@ GBDO(LX0+LOCT)=GBDO(LX1+LOCT) @A@[@@ GBSO(LRN )@@G@@X0+LOCT)=GBSO(LX1+LOCT) @#@[@@ GO TO 110 @[@[@@C @B@[@@C COMRO )@@G@@PUTE NEW NONLINEAR BRANCH VOLTAGES @[@[@@C @E@[@@ 100 VBS=TYPE*(VARP )@@G@@LUE(LVNIM1+NODE4)-VALUE(LVNIM1+NODE6)) @E@[@@ VBD=TYPE*(VALUE(LVRQ )@@G@@NIM1+NODE4)-VALUE(LVNIM1+NODE5)) @E@[@@ VGS=TYPE*(VALUE(LVNIM1+NRR )@@G@@ODE2)-VALUE(LVNIM1+NODE6)) @E@[@@ VGD=TYPE*(VALUE(LVNIM1+NODE2)-RS )@@G@@VALUE(LVNIM1+NODE5)) @A@[@@ 110 DELVBS=VBS-VBSO(LX0+LOCT) @A@[@@RT )@@G@@ DELVBD=VBD-VBDO(LX0+LOCT) @A@[@@ DELVGS=VGS-VGSO(LX0+LOCTRU )@@G@@) @A@[@@ DELVGD=VGD-VGDO(LX0+LOCT) @ @[@@ DELVDS=DELVGRV )@@G@@S-DELVGD @A@[@@ IF (DEVMOD.LT.0.0) GO TO 120 @G@[@@ CDHAT=RW )@@G@@CDO(LX0+LOCT)-GBDO(LX0+LOCT)*DELVBD+GMBSO(LX0+LOCT)*DELVBS @D@[@@ 1RX )@@G@@ +GMO(LX0+LOCT)*DELVGS+GDSO(LX0+LOCT)*DELVDS @#@[@@ GO TO 130 RY )@@G@@@F@[@@ 120 CDHAT=CDO(LX0+LOCT)-(GBDO(LX0+LOCT)-GMBSO(LX0+LOCT))*DELVBD RZ )@@G@@@D@[@@ 1 -GMO(LX0+LOCT)*DELVGD+GDSO(LX0+LOCT)*DELVDS @F@[@@ 130 SA )@@G@@CBHAT=CBSO(LX0+LOCT)+CBDO(LX0+LOCT)+GBDO(LX0+LOCT)*DELVBD @A@[@@ 1SB )@@G@@ +GBSO(LX0+LOCT)*DELVBS @[@[@@C @B@[@@C BYPASS IF SOLUTION HASC )@@G@@S NOT CHANGED @[@[@@C @A@[@@ IF (INITF.EQ.6) GO TO 200 SD )@@G@@@E@[@@ TOL=RELTOL*AMAX1(ABS(VBS),ABS(VBSO(LX0+LOCT)))+VNTOL @B@[@@SE )@@G@@ IF (ABS(DELVBS).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ASF )@@G@@BS(VBD),ABS(VBDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVBD).GE.TOL) SG )@@G@@GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(VGS),ABS(VGSO(LX0+LOCT)))+VSH )@@G@@NTOL @B@[@@ IF (ABS(DELVGS).GE.TOL) GO TO 200 @E@[@@ TOL=RESI )@@G@@LTOL*AMAX1(ABS(VGD),ABS(VGDO(LX0+LOCT)))+VNTOL @B@[@@ IF (ABS(DELVSJ )@@G@@GD).GE.TOL) GO TO 200 @E@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CDO(SK )@@G@@LX0+LOCT)))+ABSTOL@D@[@@ IF (ABS(CDHAT-CDO(LX0+LOCT)).GE.TOL) GO TOSL )@@G@@ 200 @G@[@@ TOL=RELTOL*AMAX1(ABS(CBHAT),ABS(CBSO(LX0+LOCT)+CBDO(LXSM )@@G@@0+LOCT))) @#@[@@ 1 +ABSTOL @G@[@@ IF (ABS(CBHAT-(CBSO(LX0+SN )@@G@@LOCT)+CBDO(LX0+LOCT))).GE.TOL) GO TO 200 @^@[@@ VBD=VBDO(LX0+LOCT)SO )@@G@@@^@[@@ VBS=VBSO(LX0+LOCT)@^@[@@ VGS=VGSO(LX0+LOCT)@^@[@@ SP )@@G@@VGD=VGDO(LX0+LOCT)@#@[@@ VDS=VGS-VGD @#@[@@ VGB=VGS-VBS @^@[@@SQ )@@G@@ CD=CDO(LX0+LOCT) @^@[@@ CBS=CBSO(LX0+LOCT)@^@[@@ CBD=CBSR )@@G@@DO(LX0+LOCT)@ @[@@ CDRAIN=DEVMOD*(CD+CBD) @^@[@@ GM=GMO(LX0+LSS )@@G@@OCT) @^@[@@ GDS=GDSO(LX0+LOCT)@ @[@@ GMBS=GMBSO(LX0+LOCT) ST )@@G@@@^@[@@ GBD=GBDO(LX0+LOCT)@^@[@@ GBS=GBSO(LX0+LOCT)@]@[@@ SU )@@G@@KCAP=1@ @[@@ IF (LEV.GT.2) GO TO 400 @#@[@@ GO TO 800 @[@[@@SV )@@G@@C @A@[@@C LIMIT NONLINEAR BRANCH VOLTAGES @[@[@@C @ @[@@ 200 SW )@@G@@VON=TYPE*VALUE(LOCV+9) @B@[@@ CALL FETLIM(VGS,VGSO(LX0+LOCT),VON) SX )@@G@@@B@[@@ CALL FETLIM(VGD,VGDO(LX0+LOCT),VON) @#@[@@ VDS=VGS-VGD SY )@@G@@@A@[@@ IF (VDS.LT.0.0) GO TO 210 @B@[@@ VCRIT=VT*ALOG(VT/(SZ )@@G@@ROOT2*CSSAT)) @D@[@@ CALL PNJLIM(VBS,VBSO(LX0+LOCT),VT,VCRIT,ICTA )@@G@@HECK) @#@[@@ VBD=VBS-VDS @#@[@@ GO TO 300 @B@[@@ 210 VCRIT=TB )@@G@@VT*ALOG(VT/(ROOT2*CDSAT)) @D@[@@ CALL PNJLIM(VBD,VBDO(LX0+LOCT)TC )@@G@@,VT,VCRIT,ICHECK) @#@[@@ VBS=VBD+VDS @[@[@@C @B@[@@C DETERMINETD )@@G@@ DC CURRENT AND DERIVATIVES @[@[@@C @#@[@@ 300 VDS=VGS-VGD @#@[@@TE )@@G@@ VGB=VGS-VBS @A@[@@ IF (VBS.GT.0.0) GO TO 310 @#@[@@ TF )@@G@@GBS=CSSAT/VT@#@[@@ CBS=GBS*VBS @#@[@@ GBS=GBS+GMIN@#@[@@ TG )@@G@@GO TO 320 @^@[@@ 310 EVBS=EXP(VBS/VT) @ @[@@ GBS=CSSAT*EVBS/VT+TH )@@G@@GMIN @ @[@@ CBS=CSSAT*(EVBS-1.0) @A@[@@ 320 IF (VBD.GT.0.0) GOTI )@@G@@ TO 330 @#@[@@ GBD=CDSAT/VT@#@[@@ CBD=GBD*VBD @#@[@@ TJ )@@G@@GBD=GBD+GMIN@#@[@@ GO TO 400 @^@[@@ 330 EVBD=EXP(VBD/VT) @ @[@@TK )@@G@@ GBD=CDSAT*EVBD/VT+GMIN @ @[@@ CBD=CDSAT*(EVBD-1.0) @[@[@@TL )@@G@@C @B@[@@C COMPUTE DRAIN CURRENT AND DERIVATIVES @[@[@@C @A@[@@TM )@@G@@ 400 IF (VDS.LT.0.0) GO TO 450 @[@[@@C @#@[@@C NORMAL MODE TN )@@G@@@[@[@@C @#@[@@ DEVMOD=1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD TO )@@G@@@ @[@@ GO TO (405,410,445),LEV @ @[@@ 405 CALL MOSEQ1(VDS,VBS,VGS)TP )@@G@@@#@[@@ GO TO 460 @ @[@@ 410 CALL MOSEQ2(VDS,VBS,VGS)@#@[@@ TQ )@@G@@GO TO 460 @A@[@@ 445 CALL ELMNSY(VDS,VBS,VGS,KCAP) @#@[@@ GO TO TR )@@G@@460 @[@[@@C @#@[@@C INVERSE MODE @[@[@@C @#@[@@ 450 DEVMODTS )@@G@@=-1.0 @ @[@@ VALUE(LOCV+8)=DEVMOD @ @[@@ GO TO (452,453,455TT )@@G@@),LEV @A@[@@ 452 CALL MOSEQ1(-VDS,VBD,VGD) @#@[@@ GO TO 460 TU )@@G@@@A@[@@ 453 CALL MOSEQ2(-VDS,VBD,VGD) @#@[@@ GO TO 460 @A@[@@TV )@@G@@ 455 CALL ELMNSY(-VDS,VBD,VGD,KCAP)@#@[@@ 460 CONTINUE @ @[@@ TW )@@G@@IF (KCAP.EQ.1) GO TO 800@ @[@@ VALUE(LOCV+9)=TYPE*VON @A@[@@ TX )@@G@@VALUE(LOCV+10)=TYPE*VDSAT @[@[@@C @B@[@@C COMPUTE EQUIVALENT DRTY )@@G@@AIN CURRENT SOURCE@[@[@@C @ @[@@ 490 CD=DEVMOD*CDRAIN-CBD @ @[@@TZ )@@G@@ IF (MODE.NE.1) GO TO 500@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.UA )@@G@@NE.0)) GO TO 500 @A@[@@ IF (INITF.EQ.4) GO TO 500 @#@[@@ UB )@@G@@GO TO 700 @[@[@@C @ @[@@C CHARGE STORAGE ELEMENTS @[@[@@C UC )@@G@@@ @[@@ 500 CZBD=VALUE(LOCM+11)*AD @ @[@@ CZBS=VALUE(LOCM+12)*AS UD )@@G@@@ @[@@ PHIB=VALUE(LOCM+14) @^@[@@ TWOP=PHIB+PHIB @ @[@@UE )@@G@@ FCPB=VALUE(LOCM+29) @^@[@@ FCPB2=FCPB*FCPB @^@[@@ UF )@@G@@F1=VALUE(LOCM+30) @^@[@@ F2=VALUE(LOCM+31) @^@[@@ F3=VALUE(LOCUG )@@G@@M+32) @^@[@@ CZBSF2=CZBS/F2 @^@[@@ CZBDF2=CZBD/F2 @A@[@@UH )@@G@@ IF (VBS.GE.FCPB) GO TO 510 @ @[@@ SARG=SQRT(1.0-VBS/PHIB) UI )@@G@@@B@[@@ QBS(LX0+LOCT)=TWOP*CZBS*(1.0-SARG) @^@[@@ CAPBS=CZBS/SUJ )@@G@@ARG @#@[@@ GO TO 520 @D@[@@ 510 QBS(LX0+LOCT)=CZBS*F1+CZBSF2*(UK )@@G@@F3*(VBS-FCPB) @B@[@@ 1 +(VBS*VBS-FCPB2)/(TWOP+TWOP)) @A@[@@UL )@@G@@ CAPBS=CZBSF2*(F3+VBS/TWOP) @A@[@@ 520 IF (VBD.GE.FCPB) GO TO 5UM )@@G@@30 @ @[@@ SARG=SQRT(1.0-VBD/PHIB) @B@[@@ QBD(LX0+LOCT)=TWOPUN )@@G@@*CZBD*(1.0-SARG) @^@[@@ CAPBD=CZBD/SARG @#@[@@ GO TO 560 UO )@@G@@@D@[@@ 530 QBD(LX0+LOCT)=CZBD*F1+CZBDF2*(F3*(VBD-FCPB) @B@[@@ 1UP )@@G@@ +(VBD*VBD-FCPB2)/(TWOP+TWOP)) @A@[@@ CAPBD=CZBDF2*(F3+VBD/TWOUQ )@@G@@P) @[@[@@C @A@[@@C STORE SMALL-SIGNAL PARAMETERS @[@[@@C UR )@@G@@@G@[@@ 560 IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 7US )@@G@@00 @A@[@@ IF (INITF.NE.4) GO TO 600 @ @[@@ VALUE(LX0+LOUT )@@G@@CT+12)=CAPBD@ @[@@ VALUE(LX0+LOCT+14)=CAPBS@#@[@@ GO TO 810 UU )@@G@@@[@[@@C @^@[@@C TRANSIENT ANALYSIS @[@[@@C @A@[@@ 600 IF (INUV )@@G@@ITF.NE.5) GO TO 610 @A@[@@ QBD(LX1+LOCT)=QBD(LX0+LOCT) @A@[@@UW )@@G@@ QBS(LX1+LOCT)=QBS(LX0+LOCT) @B@[@@ 610 CALL INTGR8(GEQ,CEQ,CAPBUX )@@G@@D,LOCT+12) @#@[@@ GBD=GBD+GEQ @ @[@@ CBD=CBD+CQBD(LX0+LOCT) UY )@@G@@@ @[@@ CD=CD-CQBD(LX0+LOCT) @B@[@@ CALL INTGR8(GEQ,CEQ,CAPBUZ )@@G@@S,LOCT+14) @#@[@@ GBS=GBS+GEQ @ @[@@ CBS=CBS+CQBS(LX0+LOCT) VA )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 700 @A@[@@ CQBD(LX1+LOCT)=CQBVB )@@G@@D(LX0+LOCT) @A@[@@ CQBS(LX1+LOCT)=CQBS(LX0+LOCT) @[@[@@C @^@[@@VC )@@G@@C CHECK CONVERGENCE @[@[@@C @A@[@@ 700 IF (INITF.NE.3) GO TO 71VD )@@G@@0 @ @[@@ IF (IOFF.NE.0) GO TO 750@A@[@@ 710 IF (ICHECK.EQ.0) GVE )@@G@@O TO 720 @D@[@@ TOL=RELTOL*AMAX1(ABS(CDHAT),ABS(CD))+ABSTOL VF )@@G@@@B@[@@ IF (ABS(CDHAT-CD).GE.TOL) GO TO 720 @D@[@@ TOL=RELTOL*AVG )@@G@@MAX1(ABS(CBHAT),ABS(CBS+CBD))+ABSTOL@C@[@@ IF (ABS(CBHAT-(CBS+CBD))VH )@@G@@.LE.TOL) GO TO 750@^@[@@ 720 NONCON=NONCON+1 @^@[@@ 750 VBDO(LX0+LOCVI )@@G@@T)=VBD@^@[@@ VBSO(LX0+LOCT)=VBS@^@[@@ VGSO(LX0+LOCT)=VGS@^@[@@VJ )@@G@@ VGDO(LX0+LOCT)=VGD@^@[@@ CDO(LX0+LOCT)=CD @^@[@@ CBSO(LVK )@@G@@X0+LOCT)=CBS@^@[@@ CBDO(LX0+LOCT)=CBD@^@[@@ GMO(LX0+LOCT)=GM VL )@@G@@@^@[@@ GDSO(LX0+LOCT)=GDS@ @[@@ GMBSO(LX0+LOCT)=GMBS @^@[@@VM )@@G@@ GBDO(LX0+LOCT)=GBD@^@[@@ GBSO(LX0+LOCT)=GBS@[@[@@C @B@[@@VN )@@G@@C LINEAR CAPACITANCES CGS, CGD, AND CGB @[@[@@C @ @[@@ 800 IF (MOVO )@@G@@DE.NE.1) GO TO 810@D@[@@ IF ((MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TOVP )@@G@@ 810 @#@[@@ GCGS=0.0 @#@[@@ CEQGS=0.0 @#@[@@ GCGD=0VQ )@@G@@.0 @#@[@@ CEQGD=0.0 @#@[@@ GCGB=0.0 @#@[@@ CEQGB=VR )@@G@@0.0 @#@[@@ GO TO 900 @^@[@@ 810 COX=COX*XL*XW @ @[@@ VS )@@G@@VON=TYPE*VALUE(LOCV+9) @#@[@@ VGS1=VGS @#@[@@ VGD1=VGD VT )@@G@@@#@[@@ VGB1=VGS-VBS@C@[@@ IF ((MODE.NE.2).OR.(INITF.EQ.5)) GO VU )@@G@@TO 811@ @[@@ VGS1=VGSO(LX1+LOCT) @ @[@@ VGD1=VGDO(LX1+LOCTVV )@@G@@) @ @[@@ VGB1=VGS1-VBSO(LX1+LOCT)@A@[@@ 811 IF (DEVMOD.LT.0.0)VW )@@G@@ GO TO 813 @G@[@@ CALL MOSCAP (VGS1,VGD1,VGB1,VGS,VGD,VGB,COVLGS,CVX )@@G@@OVLGD,COVLGB, @B@[@@ 1 CGS1,CGD1,CGB1,CGS,CGD,CGB) @#@[@@VY )@@G@@ GO TO 816 @G@[@@ 813 CALL MOSCAP (VGD1,VGS1,VGB1,VGD,VGS,VGB,COVZ )@@G@@VLGD,COVLGS,COVLGB, @B@[@@ 1 CGD1,CGS1,CGB1,CGD,CGS,CGB) WA )@@G@@@^@[@@ 816 CGS=0.5*(CGS+CGS1)@^@[@@ CGD=0.5*(CGD+CGD1)@^@[@@ WB )@@G@@CGB=0.5*(CGB+CGB1)@ @[@@ IF(MODE.NE.1) GO TO 818 @A@[@@ IF (INWC )@@G@@ITF.NE.4) GO TO 818 @ @[@@ VALUE(LX0+LOCT+16)=CGS @ @[@@ WD )@@G@@VALUE(LX0+LOCT+18)=CGD @ @[@@ VALUE(LX0+LOCT+20)=CGB @#@[@@ WE )@@G@@GO TO 1000 @A@[@@ 818 IF (INITF.NE.6) GO TO 820 @F@[@@ QGS(LXWF )@@G@@0+LOCT)=(1.0+XFACT)*QGS(LX1+LOCT)-XFACT*QGS(LX2+LOCT) @F@[@@ QGD(LXWG )@@G@@0+LOCT)=(1.0+XFACT)*QGD(LX1+LOCT)-XFACT*QGD(LX2+LOCT) @F@[@@ QGB(LXWH )@@G@@0+LOCT)=(1.0+XFACT)*QGB(LX1+LOCT)-XFACT*QGB(LX2+LOCT) @#@[@@ GO TO WI )@@G@@830 @A@[@@ 820 QGS(LX0+LOCT)=(VGS-VGS1)*CGS @A@[@@ QGD(LX0+LOCTWJ )@@G@@)=(VGD-VGD1)*CGD @A@[@@ QGB(LX0+LOCT)=(VGB-VGB1)*CGB @C@[@@ WK )@@G@@IF((MODE.NE.2).OR.(INITF.EQ.5))GO TO 825 @C@[@@ QGS(LX0+LOCT)=QGS(WL )@@G@@LX0+LOCT)+QGS(LX1+LOCT) @C@[@@ QGD(LX0+LOCT)=QGD(LX0+LOCT)+QGD(LX1+WM )@@G@@LOCT) @C@[@@ QGB(LX0+LOCT)=QGB(LX0+LOCT)+QGB(LX1+LOCT) @G@[@@ 825 WN )@@G@@IF((MODE.EQ.1).AND.(MODEDC.EQ.2).AND.(NOSOLV.NE.0)) GO TO 1000 @A@[@@WO )@@G@@ IF (INITF.NE.5) GO TO 830 @ @[@@ QGS(LX0+LOCT)=CGS*VGS WP )@@G@@@ @[@@ QGD(LX0+LOCT)=CGD*VGD @ @[@@ QGB(LX0+LOCT)=CGB*VGB WQ )@@G@@@A@[@@ QGS(LX1+LOCT)=QGS(LX0+LOCT) @A@[@@ QGD(LX1+LOCT)=QGD(WR )@@G@@LX0+LOCT) @A@[@@ QGB(LX1+LOCT)=QGB(LX0+LOCT) @B@[@@ 830 IF(CGSWS )@@G@@.EQ.0.0)VALUE(LX0+LOCT+17)=0.0@B@[@@ IF(CGD.EQ.0.0)VALUE(LX0+LOCT+1WT )@@G@@9)=0.0@B@[@@ IF(CGB.EQ.0.0)VALUE(LX0+LOCT+21)=0.0@B@[@@ CALL IWU )@@G@@NTGR8(GCGS,CEQGS,CGS,LOCT+16) @B@[@@ CALL INTGR8(GCGD,CEQGD,CGD,LOCWV )@@G@@T+18) @B@[@@ CALL INTGR8(GCGB,CEQGB,CGB,LOCT+20) @C@[@@ CEQGS=WW )@@G@@CEQGS-GCGS*VGS+AG(1)*QGS(LX0+LOCT) @C@[@@ CEQGD=CEQGD-GCGD*VGD+AG(WX )@@G@@1)*QGD(LX0+LOCT) @C@[@@ CEQGB=CEQGB-GCGB*VGB+AG(1)*QGB(LX0+LOCT) WY )@@G@@@A@[@@ IF (INITF.NE.5) GO TO 900 @A@[@@ CQGS(LX1+LOCT)=CQGWZ )@@G@@S(LX0+LOCT) @A@[@@ CQGD(LX1+LOCT)=CQGD(LX0+LOCT) @A@[@@ CQGB(LXA )@@G@@X1+LOCT)=CQGB(LX0+LOCT) @[@[@@C @^@[@@C LOAD CURRENT VECTOR @[@[@@XB )@@G@@C @B@[@@ 900 CEQBS=TYPE*(CBS-(GBS-GMIN)*VBS) @B@[@@ CEQBD=XC )@@G@@TYPE*(CBD-(GBD-GMIN)*VBD) @^@[@@ CEQGS=TYPE*CEQGS @^@[@@ XD )@@G@@CEQGD=TYPE*CEQGD @^@[@@ CEQGB=TYPE*CEQGB @#@[@@ XNRM=1.0 XE )@@G@@@#@[@@ XREV=0.0 @A@[@@ IF (DEVMOD.LT.0.0) GO TO 910 @D@[@@XF )@@G@@ CDREQ=TYPE*(CDRAIN-GDS*VDS-GM*VGS-GMBS*VBS) @#@[@@ GO TO XG )@@G@@920 @#@[@@ 910 XNRM=0.0 @#@[@@ XREV=1.0 @D@[@@ CDREQ=XH )@@G@@-TYPE*(CDRAIN-GDS*(-VDS)-GM*VGD-GMBS*VBD) @E@[@@ 920 VALUE(LVN+NODE2)=VXI )@@G@@ALUE(LVN+NODE2)-CEQGS-CEQGD-CEQGB @E@[@@ VALUE(LVN+NODE4)=VALUE(LXJ )@@G@@VN+NODE4)-CEQBS-CEQBD+CEQGB @E@[@@ VALUE(LVN+NODE5)=VALUE(LVN+NODXK )@@G@@E5)-CDREQ+CEQGD+CEQBD @E@[@@ VALUE(LVN+NODE6)=VALUE(LVN+NODE6)+CDXL )@@G@@REQ+CEQGS+CEQBS @[@[@@C @#@[@@C LOAD Y MATRIX @[@[@@C @ @[@@XM )@@G@@ LOCY=LYNL+NODPLC(LOC+27)@A@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR XN )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+28)@C@[@@ VALUE(LOCY)=VALUE(LOCY)+XO )@@G@@GCGD+GCGS+GCGB @ @[@@ LOCY=LYNL+NODPLC(LOC+29)@A@[@@ VALUE(XP )@@G@@LOCY)=VALUE(LOCY)+GSPR @ @[@@ LOCY=LYNL+NODPLC(LOC+30)@B@[@@ XQ )@@G@@VALUE(LOCY)=VALUE(LOCY)+GBD+GBS+GCGB@ @[@@ LOCY=LYNL+NODPLC(LOC+31)XR )@@G@@@F@[@@ VALUE(LOCY)=VALUE(LOCY)+GDPR+GDS+GBD+GCGD+XREV*(GM+GMBS) XS )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+32)@F@[@@ VALUE(LOCY)=VALUE(LOCY)+XT )@@G@@GSPR+GDS+GBS+GCGS+XNRM*(GM+GMBS) @ @[@@ LOCY=LYNL+NODPLC(LOC+10)XU )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LXV )@@G@@OC+11)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB @ @[@@ LOCY=LYNL+NOXW )@@G@@DPLC(LOC+12)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGD @ @[@@ LOCY=LXX )@@G@@YNL+NODPLC(LOC+13)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGS @ @[@@ XY )@@G@@LOCY=LYNL+NODPLC(LOC+14)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@XZ )@@G@@ LOCY=LYNL+NODPLC(LOC+15)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GCGB YA )@@G@@@ @[@@ LOCY=LYNL+NODPLC(LOC+16)@A@[@@ VALUE(LOCY)=VALUE(LOCY)-YB )@@G@@GBD @ @[@@ LOCY=LYNL+NODPLC(LOC+17)@A@[@@ VALUE(LOCY)=VALUE(YC )@@G@@LOCY)-GBS @ @[@@ LOCY=LYNL+NODPLC(LOC+18)@A@[@@ VALUE(LOCY)=YD )@@G@@VALUE(LOCY)-GDPR @ @[@@ LOCY=LYNL+NODPLC(LOC+19)@D@[@@ VALUE(YE )@@G@@LOCY)=VALUE(LOCY)-GCGD+(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LYF )@@G@@OC+20)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBD+(XNRM-XREV)*GMBS @ @[@@YG )@@G@@ LOCY=LYNL+NODPLC(LOC+21)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XNYH )@@G@@RM*(GM+GMBS)@ @[@@ LOCY=LYNL+NODPLC(LOC+22)@D@[@@ VALUE(LOCY)=YI )@@G@@VALUE(LOCY)-GCGS-(XNRM-XREV)*GM @ @[@@ LOCY=LYNL+NODPLC(LOC+23)YJ )@@G@@@A@[@@ VALUE(LOCY)=VALUE(LOCY)-GSPR @ @[@@ LOCY=LYNL+NODPLC(LYK )@@G@@OC+24)@D@[@@ VALUE(LOCY)=VALUE(LOCY)-GBS-(XNRM-XREV)*GMBS @ @[@@YL )@@G@@ LOCY=LYNL+NODPLC(LOC+25)@C@[@@ VALUE(LOCY)=VALUE(LOCY)-GDS-XRYM )@@G@@EV*(GM+GMBS)@^@[@@ 1000 LOC=NODPLC(LOC) @#@[@@ GO TO 10 @]@[@@YN )@@G@@ END @A@[@@ SUBROUTINE MOSEQ1(VDS,VBS,VGS)@[@[@@C @F@[@@YO )@@G@@C THIS ROUTINE EVALUATES THE DRAIN CURRENT AND ITS DERIVATIVES@D@[@@YP )@@G@@C USING THE SHICHMAN-HODGES MODEL FOR MOSFETS @[@[@@C @G@[@@YQ )@@G@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, YR )@@G@@@E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@YS )@@G@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, YT )@@G@@@G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEYU )@@G@@V @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNYV )@@G@@I,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NOYW )@@G@@NCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTYX )@@G@@NT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIYY )@@G@@N,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@C @F@[@@YZ )@@G@@C COMPUTE THRESHOLD VOLTAGE VON AND SATURATION VOLTAGE VDSAT @[@[@@ZA )@@G@@C @A@[@@ IF (VBS.GT.0.0) GO TO 102 @^@[@@ SARG=SQRT(PHZB )@@G@@I-VBS)@#@[@@ GO TO 104 @^@[@@ 102 SARG=SQRT(PHI) @A@[@@ ZC )@@G@@SARG=SARG-VBS/(SARG+SARG) @ @[@@ SARG=AMAX1(0.0,SARG) @^@[@@ZD )@@G@@ 104 VON=VBI+GAMMA*SARG@#@[@@ VGST=VGS-VON@ @[@@ VDSAT=AMAX1(ZE )@@G@@VGST,0.0) @ @[@@ ARG=GAMMA/(SARG+SARG) @A@[@@ IF (VGST.GT.ZF )@@G@@0.0) GO TO 110 @[@[@@C @^@[@@C CUTOFF REGION @[@[@@C ZG )@@G@@@#@[@@ CDRAIN=0.0 @]@[@@ GM=0.0@#@[@@ GDS=0.0 @#@[@@ZH )@@G@@ GMBS=0.0 @#@[@@ GO TO 300 @[@[@@C @^@[@@C SATURAZI )@@G@@TION REGION @[@[@@C @A@[@@ 110 BETAP=BETA*(1.0+XLAMDA*VDS) @A@[@@ZJ )@@G@@ IF (VGST.GT.VDS) GO TO 120 @A@[@@ CDRAIN=BETAP*VGST*VGST/2ZK )@@G@@.0 @^@[@@ GM=BETAP*VGST @A@[@@ GDS=XLAMDA*BETA*VGST*VGSZL )@@G@@T/2.0 @#@[@@ GMBS=GM*ARG @#@[@@ GO TO 300 @[@[@@C @^@[@@ZM )@@G@@C LINEAR REGION @[@[@@C @B@[@@ 120 CDRAIN=BETAP*VDS*(VGST-VZN )@@G@@DS/2.0) @#@[@@ GM=BETAP*VDS@E@[@@ GDS=BETAP*(VGST-VDS)+XLAZO )@@G@@MDA*BETA*VDS*(VGST-VDS/2.0) @#@[@@ GMBS=GM*ARG @[@[@@C @]@[@@ZP )@@G@@C RETURN@[@[@@C @]@[@@ 300 RETURN@]@[@@ END @A@[@@ ZQ )@@G@@SUBROUTINE MOSEQ2(VDS,VBS,VGS)@[@[@@C @G@[@@C THIS ROUTINE EVALUZR )@@G@@ATES THE DRAIN CURRENT AND ITS DERIVATIVES FOR @]@[@@C MOSFETS. @[@[@@ZS )@@G@@C @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,ZT )@@G@@XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDZU )@@G@@RAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATTZV )@@G@@,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETADZW )@@G@@,ETAS,CD1,LEV @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7)ZX )@@G@@,AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IOZY )@@G@@RD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ ZZ )@@G@@COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@AA )@@G@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@AB )@@G@@C @A@[@@C COMPUTE SOME USEFUL QUANTITIES @[@[@@C @A@[@@ AC )@@G@@IF (VBS.GT.0.0) GO TO 110 @^@[@@ SARG=SQRT(PHI-VBS)@^@[@@ AD )@@G@@TSARG=SARG+SARG @ @[@@ BARG=SQRT(PHI+VDS-VBS) @#@[@@ GO TO AE )@@G@@200 @^@[@@ 110 SARG=SQRT(PHI) @A@[@@ SARG=SARG-VBS/(SARG+SARGAF )@@G@@) @ @[@@ SARG=AMAX1(SARG,0.0) @^@[@@ TSARG=SARG+SARG AG )@@G@@@^@[@@ BARG=SQRT(PHI+VDS)@A@[@@ BARG=BARG-VBS/(BARG+BARG) AH )@@G@@@ @[@@ BARG=AMAX1(BARG,0.0) @[@[@@C @A@[@@C CALCULATE THRESAI )@@G@@HOLD VOLTAGE (VON)@[@[@@C @ @[@@ 200 IF (XJ.LE.0.0) GO TO 210@A@[@@AJ )@@G@@ IF (GAMMA.LE.0.0) GO TO 210 @A@[@@ ARG=SQRT(1.0+XD*TSARG/XJAK )@@G@@) @B@[@@ GAMMAD=GAMMA*(1.0-XJ*(ARG-1.0)/XL) @A@[@@ DGDVBSAL )@@G@@=GAMMA*XD/(XL*TSARG*ARG)@#@[@@ GO TO 220 @#@[@@ 210 GAMMAD=GAMMAAM )@@G@@@#@[@@ DGDVBS=0.0 @ @[@@ 220 VON=VBI+GAMMAD*SARG @#@[@@ AN )@@G@@VDSAT=0.0 @#@[@@ VGST=VGS-VON@A@[@@ IF (XNFS.EQ.0.0) GO TO 2AO )@@G@@30 @A@[@@ IF (COX.EQ.0.0) GO TO 230 @D@[@@ VON=VON+VT*(AP )@@G@@1.0+CHARGE*XNFS/COX+GAMMAD/TSARG) @#@[@@ VGST=VGS-VON@#@[@@ AQ )@@G@@GO TO 300 @A@[@@ 230 IF (VGS.GT.VON) GO TO 300 @[@[@@C @#@[@@AR )@@G@@C CUTOFF REGION @[@[@@C @#@[@@ GDS=0.0 @#@[@@ GO TO AS )@@G@@1100 @[@[@@C @B@[@@C COMPUTE SOME MORE USEFUL QUANTITIES @[@[@@AT )@@G@@C @ @[@@ 300 SARG3=SARG*SARG*SARG @A@[@@ BODY=BARG*BARG*BARAU )@@G@@G-SARG3 @ @[@@ GDBDV=GAMMAD*(SARG-BARG)@B@[@@ DODVBS=SARG*AV )@@G@@DGDVBS-GAMMAD/TSARG @A@[@@ IF (XNFS.EQ.0.0) GO TO 400 @A@[@@AW )@@G@@ IF (COX.EQ.0.0) GO TO 400 @E@[@@ DODVBS=DODVBS+VT*(DGDVBSAX )@@G@@/TSARG-GAMMAD/(4.0*SARG3)) @[@[@@C @D@[@@C EVALUATE SATURATION VAY )@@G@@OLTAGE AND ITS DERIVATIVES @[@[@@C @A@[@@ 400 IF (GAMMAD.LE.0.0)AZ )@@G@@ GO TO 410 @ @[@@ GAMMD2=GAMMAD*GAMMAD @ @[@@ ARGV=VGS-VBIBA )@@G@@+PHI-VBS @A@[@@ IF (ARGV.LE.0.0) GO TO 420 @A@[@@ ARG=SQBB )@@G@@RT(1.0+4.0*ARGV/GAMMD2) @B@[@@ VDSAT=VGS-VBI+GAMMD2*(1.0-ARG)/2.0 BC )@@G@@@ @[@@ VDSAT=AMAX1(VDSAT,0.0) @^@[@@ DSDVGS=1.0-1.0/ARG@G@[@@BD )@@G@@ DSDVBS=(GAMMAD*(1.0-ARG)+2.0*ARGV/(GAMMAD*ARG))*DGDVBS+1.0/ARG BE )@@G@@@#@[@@ GO TO 500 @ @[@@ 410 VDSAT=AMAX1(VGS-VBI,0.0)@#@[@@ BF )@@G@@DSDVGS=1.0 @#@[@@ DSDVBS=0.0 @#@[@@ GO TO 500 @#@[@@ 420 BG )@@G@@DSDVGS=0.0 @#@[@@ DSDVBS=0.0 @[@[@@C @D@[@@C EVALUATE EFFECTBH )@@G@@IVE MOBILITY AND ITS DERIVATIVES @[@[@@C @A@[@@ 500 IF (COX.LE.0BI )@@G@@.0) GO TO 510 @B@[@@ UDENOM=VGST-UTRA*AMIN1(VDS,VDSAT) @A@[@@BJ )@@G@@ IF (UDENOM.LE.VBP) GO TO 510 @B@[@@ UFACT=EXP(UEXP*ALOG(VBP/BK )@@G@@UDENOM)) @A@[@@ DUDVGS=-UFACT*UEXP/UDENOM @ @[@@ DUDVDSBL )@@G@@=-DUDVGS*UTRA @#@[@@ DUDVBS=0.0 @#@[@@ GO TO 600 @#@[@@BM )@@G@@ 510 UFACT=1.0 @#@[@@ DUDVGS=0.0 @#@[@@ DUDVDS=0.0 @#@[@@BN )@@G@@ DUDVBS=0.0 @[@[@@C @E@[@@C EVALUATE EFFECTIVE CHANNEL LENGTHBO )@@G@@ AND ITS DERIVATIVES @[@[@@C @A@[@@ 600 IF (VDS.EQ.0.0) GO TO 61BP )@@G@@0 @A@[@@ IF (XLAMDA.GT.0.0) GO TO 610 @A@[@@ IF (XNSUB.EQBQ )@@G@@.0.0) GO TO 610 @ @[@@ ARGV=(VDS-VDSAT)/4.0 @A@[@@ SARGV=BR )@@G@@SQRT(1.0+ARGV*ARGV) @ @[@@ ARG=SQRT(ARGV+SARGV) @^@[@@ BS )@@G@@XLFACT=XD/(XL*VDS)@^@[@@ XLAMDA=XLFACT*ARG @A@[@@ DLDSAT=-XLFABT )@@G@@CT*ARG/(8.0*SARGV)@A@[@@ DLDVGS=-VDS*DLDSAT*DSDVGS @A@[@@ BU )@@G@@DLDVDS=-XLAMDA/VDS-DLDSAT @A@[@@ DLDVBS=-VDS*DLDSAT*DSDVBS BV )@@G@@@#@[@@ GO TO 620 @#@[@@ 610 DLDVGS=0.0 @#@[@@ DLDVDS=0.0 BW )@@G@@@#@[@@ DLDVBS=0.0 @ @[@@ 620 CLFACT=1.0-XLAMDA*VDS @A@[@@ BX )@@G@@DLDVDS=-XLAMDA-VDS*DLDVDS @[@[@@C @B@[@@C EVALUATE EFFECTIVE BEBY )@@G@@TA (EFFECTIVE KP) @[@[@@C @ @[@@ BETA1=BETA*UFACT/CLFACT @[@[@@BZ )@@G@@C @D@[@@C TEST FOR MODE OF OPERATION AND BRANCH APPROPRIATELY@[@[@@CA )@@G@@C @A@[@@ IF (VDS.NE.0.0) GO TO 730 @A@[@@ IF (VGS.GT.VCB )@@G@@ON) GO TO 720 @D@[@@ IF ((XNFS.NE.0.0).AND.(COX.NE.0.0)) GO TO CC )@@G@@710 @#@[@@ GDS=0.0 @#@[@@ GO TO 1100 @A@[@@ 710 VFACT=CD )@@G@@VON-VBI-GAMMAD*SARG @B@[@@ GDS=BETA1*VFACT*EXP((VGS-VON)/VFACT)CE )@@G@@@#@[@@ GO TO 1100 @B@[@@ 720 GDS=BETA1*(VGS-VBI-GAMMAD*SARG) CF )@@G@@@#@[@@ GO TO 1100 @[@[@@C @[@[@@C @A@[@@ 730 IF (VGS.GT.VCG )@@G@@ON) GO TO 900 @[@[@@C @^@[@@C SUBTHRESHOLD REGION @[@[@@C CH )@@G@@@E@[@@C CALCULATE SATURATION VOLTAGE AND ITS DERIVATIVES AT VON @[@[@@CI )@@G@@C @A@[@@ IF (GAMMAD.LE.0.0) GO TO 810 @ @[@@ GAMMD2=GAMMACJ )@@G@@D*GAMMAD @ @[@@ ARGV=VON-VBI+PHI-VBS @A@[@@ ARG=SQRT(1.0CK )@@G@@+4.0*ARGV/GAMMD2) @#@[@@ GO TO 820 @#@[@@ 810 ARG=0.0 @#@[@@CL )@@G@@ GAMMD2=0.0 @B@[@@ 820 VSATON=VON-VBI+GAMMD2*(1.0-ARG)/2.0 @A@[@@CM )@@G@@ IF (VSATON.GT.0.0) GO TO 830 @#@[@@ GDS=0.0 @#@[@@ CN )@@G@@GO TO 1100 @ @[@@ 830 VDSON=AMIN1(VSATON,VDS) @A@[@@ IF (VBS.GT.0CO )@@G@@.0) GO TO 840 @ @[@@ BARG=SQRT(PHI+VDSON-VBS)@#@[@@ GO TO CP )@@G@@850 @ @[@@ 840 BARG=SQRT(PHI+VDSON) @A@[@@ BARG=BARG-VBS/(BARCQ )@@G@@G+BARG) @A@[@@ 850 BODY=BARG*BARG*BARG-SARG3 @ @[@@ GDBDV=CR )@@G@@GAMMAD*(SARG-BARG)@D@[@@ CDSON=(VON-VBI-VDSON/2.0)*VDSON-GAMMAD*BODCS )@@G@@Y/1.5 @B@[@@ DIDVDS=VON-VBI-VDSON-GAMMAD*BARG @C@[@@ DIDVBSCT )@@G@@=DODVBS*VDSON-DGDVBS*BODY/1.5-GDBDV @[@[@@C @D@[@@C EVALUATE SUBTHRCU )@@G@@ESHOLD CURRENT AND ITS DERIVATIVES @[@[@@C @^@[@@ VFACT=CDSON/CV )@@G@@VDSON @ @[@@ ARGEXP=(VGS-VON)/VFACT @ @[@@ BETA2=BETA1*EXP(ARCW )@@G@@GEXP) @^@[@@ CDRAIN=BETA2*CDSON@B@[@@ IF (CDRAIN.GE.1.0E-15) GCX )@@G@@O TO 860 @#@[@@ GDS=0.0 @#@[@@ GO TO 1100 @C@[@@ 860 CY )@@G@@ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) @ @[@@ GM=ARG+CDRAIN/VFACCZ )@@G@@T @C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @G@[@@ DA )@@G@@GMBS=ARG-CDRAIN*(DODVBS/VFACT-ARGEXP*DIDVBS/CDSON)+BETA2*DIDVBS @A@[@@DB )@@G@@ GDS=-CDRAIN*DLDVDS/CLFACT @A@[@@ IF (VDS.GT.VSATON) GO TODC )@@G@@ 2000 @F@[@@ GDS=GDS+CDRAIN*(DUDVDS/UFACT-ARGEXP*(DIDVDS-VFACT)/CDSDD )@@G@@ON) @^@[@@ 1 +BETA2*DIDVDS @#@[@@ GO TO 2000 @[@[@@C DE )@@G@@@[@[@@C @A@[@@ 900 IF (VDS.GT.VDSAT) GO TO 1000 @[@[@@C @#@[@@DF )@@G@@C LINEAR REGION @[@[@@C @E@[@@ CDRAIN=BETA1*((VGS-VBI-VDS/2.0DG )@@G@@)*VDS-GAMMAD*BODY/1.5) @C@[@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFADH )@@G@@CT) @^@[@@ GM=ARG+BETA1*VDS @C@[@@ ARG=CDRAIN*(DUDVDS/UFACTDI )@@G@@-DLDVDS/CLFACT) @C@[@@ GDS=ARG+BETA1*(VGS-VBI-VDS-GAMMAD*BARG) DJ )@@G@@@C@[@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @C@[@@ GMBS=ADK )@@G@@RG-BETA1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@ GO TO 2000 @[@[@@C DL )@@G@@@^@[@@C SATURATION REGION @[@[@@C @A@[@@ 1000 IF (VBS.GT.0.0) GODM )@@G@@ TO 1010 @ @[@@ BARG=SQRT(PHI+VDSAT-VBS)@#@[@@ GO TO 1020 DN )@@G@@@ @[@@ 1010 BARG=SQRT(PHI+VDSAT) @A@[@@ BARG=BARG-VBS/(BARG+BARGDO )@@G@@) @A@[@@ 1020 BODY=BARG*BARG*BARG-SARG3 @ @[@@ GDBDV=GAMMADDP )@@G@@*(SARG-BARG)@F@[@@ CDRAIN=BETA1*((VGS-VBI-VDSAT/2.0)*VDSAT-GAMMAD*BDQ )@@G@@ODY/1.5) @C@[@@ ARG=CDRAIN*(DUDVGS/UFACT-DLDVGS/CLFACT) @^@[@@DR )@@G@@ GM=ARG+BETA1*VDSAT@A@[@@ GDS=-CDRAIN*DLDVDS/CLFACT @C@[@@DS )@@G@@ ARG=CDRAIN*(DUDVBS/UFACT-DLDVBS/CLFACT) @C@[@@ GMBS=ARG-BETDT )@@G@@A1*(GDBDV+DGDVBS*BODY/1.5) @#@[@@ GO TO 2000 @[@[@@C @^@[@@DU )@@G@@C FINISH SPECIAL CASES @[@[@@C @#@[@@ 1100 CDRAIN=0.0 @]@[@@ DV )@@G@@GM=0.0@#@[@@ GMBS=0.0 @[@[@@C @]@[@@C FINISHED @[@[@@C DW )@@G@@@]@[@@ 2000 RETURN@]@[@@ END @B@[@@ SUBROUTINE ELMNSY (VDS,VDX )@@G@@BS,VGS,KCAP)@[@[@@C @G@[@@C THIS SUBROUTINE EVALUATES THE DRAIN CUDY )@@G@@RRENT AND ITS DERIVATIVES @G@[@@C FOR MOSFET, BASED ON THE THEORY DZ )@@G@@DEVELOPED BY EL-MANSY AND BOOTHROYD @[@[@@C @G@[@@ COMMON /MOSAEA )@@G@@RG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAEB )@@G@@MDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPEC )@@G@@HAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,ED )@@G@@TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ EE )@@G@@COMMON /STATUS/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@EF )@@G@@ 1 MODE,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@EG )@@G@@ 2 ITEMNO,NOSOLV,MODAC @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLEH )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNEI )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @^@[@@ BETA0=BETA*VALPHA @^@[@@EJ )@@G@@ BETA1=BETA0*VALPHA@ @[@@ VSCATT=VALPHA*SCATT @ @[@@ EK )@@G@@AHPLA=TAHPLA+TAHPLA @^@[@@ UPHIS=UPHIB+UPHIB @[@[@@C @^@[@@EL )@@G@@C NORMALIZE VOLTAGES @[@[@@C @^@[@@ UGS=VGS/VT-UFB @#@[@@EM )@@G@@ UDS=VDS/VT @#@[@@ UBS=VBS/VT @ @[@@ UBS=AMIN1(UBS,UPHIEN )@@G@@S) @^@[@@ UDS=AMAX1(UDS,0.0)@#@[@@ UGB=UGS-UBS @^@[@@ EO )@@G@@ONEUGB=1.0-UGB @B@[@@ UTH=UPHIS+SQRT(UPHIS-UBS)/ALPHA @^@[@@EP )@@G@@ VON=(UTH+UFB)*VT @[@[@@C @C@[@@C DEFINE SUBTHRESHOLD VOLTAGEQ )@@G@@E BY FUDGE FACTOR @[@[@@C @#@[@@ UTHSUB=UBS @A@[@@ FUDGE=ER )@@G@@UPHIB-50.0/UPHIB-UBS @A@[@@ IF (FUDGE.LE.0.0) GO TO 10 @B@[@@ES )@@G@@ UTHSUB=FUDGE+UBS+SQRT(FUDGE)/ALPHA @A@[@@ 10 IF (UGS.LE.UTHSUB)ET )@@G@@ GO TO 15 @ @[@@ IF (VDS.LE.0.0) GO TO 17@#@[@@ GO TO 20 EU )@@G@@@[@[@@C @#@[@@C CUTOFF REGION @[@[@@C @#@[@@ 15 CDRAIN=0.0 EV )@@G@@@#@[@@ GDS=0.0 @]@[@@ GM=0.0@#@[@@ GMBS=0.0 @#@[@@EW )@@G@@ VDSAT=0.0 @#@[@@ GO TO 1000 @[@[@@C @ @[@@C SPECIAEX )@@G@@L CASE FOR VDS=0.0@[@[@@C @#@[@@ 17 CONTINUE @A@[@@ PINCH=EY )@@G@@-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)EZ )@@G@@@#@[@@ ETAD=ETAS @B@[@@ GDS=BETA0*(ETAD+AHPLA-UGB/ETAD) FA )@@G@@@]@[@@ GM=0.0@#@[@@ GMBS=0.0 @#@[@@ CDRAIN=0.0 @#@[@@FB )@@G@@ VDSAT=0.0 @#@[@@ GO TO 1000 @[@[@@C @^@[@@C TRANSISTFC )@@G@@OR IS ON @[@[@@C @A@[@@ 20 PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@FD )@@G@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)@B@[@@ CALL EXPEQN (PINCHFE )@@G@@,UGS,UGB,UDS,ETAD)@^@[@@ ETAS2=ETAS*ETAS @^@[@@ ETAD2=ETAD*EFF )@@G@@TAD @^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22=ETAD2/2.0 @^@[@@FG )@@G@@ ETSINV=1.0/ETAS @^@[@@ ETDINV=1.0/ETAD @^@[@@ ALGES=FH )@@G@@ALOG(ETAS) @^@[@@ ALGED=ALOG(ETAD) @B@[@@ SVAL=ETAS22+ALPHAFFI )@@G@@*ETAS+ONEUGB*ALGES@B@[@@ DVAL=ETAD22+ALPHAF*ETAD+ONEUGB*ALGED@^@[@@FJ )@@G@@ CD1=SVAL-DVAL @ @[@@ IF (KCAP.EQ.1) RETURN @ @[@@ FK )@@G@@IF (CD1.LE.0.0) GO TO 15@[@[@@C @G@[@@C BRANCH DIRECTLY TO LINEAFL )@@G@@R REGION IF CHANNEL LENGTH MODULATION IS @ @[@@C VERY UNLIKELY TO HFM )@@G@@APPEN @[@[@@C @#@[@@ ISCATT=0 @C@[@@ IF ((CD1*BETA1*XL/FN )@@G@@XW).LE.1.0E-11) GO TO 50@#@[@@ ISCATT=1 @ @[@@ IF (UDS.LT.UFO )@@G@@BS) GO TO 50@ @[@@ IF (UGS.GT.UTH) GO TO 60@[@[@@C @ @[@@C PSFP )@@G@@EUDO-SATURATION VOLTAGE @[@[@@C @#@[@@ 50 VDSAT=VDS @#@[@@ FQ )@@G@@GO TO 70 @[@[@@C @D@[@@C DEFINE SATURATION VOLTAGE BY EMPIRICALFR )@@G@@ FACTOR @[@[@@C @#@[@@ 60 TOXL=TOX/XL @^@[@@ SATFAC=1.0/(FS )@@G@@1.05 @D@[@@ 1 +TOXL*(5.0+0.05*(ETAS-PINCH)*AHPLA)) @G@[@@FT )@@G@@C 1 +TOXL*(5.0+0.05*SQRT(ALPHA*50.0)*(ETAS-PINCH)*AHPLA)) FU )@@G@@@B@[@@ ETASAT=ETAS+(PINCH-ETAS)*SATFAC @A@[@@ IF (ETASAT.LFV )@@G@@E.0.0) GO TO 50 @ @[@@ ETALPH=ETASAT/ALPHA @ @[@@ ETADS2FW )@@G@@=ETASAT*ETASAT @ @[@@ USATX=ETADS2+ETALPH-UGB @B@[@@ UDSAT=FX )@@G@@-ETALPH-UPHIS+UGS-ALOG(USATX) @^@[@@ VDSAT=UDSAT*VT @A@[@@ FY )@@G@@IF (UDS.GT.UDSAT) GO TO 200 @[@[@@C @G@[@@C CALCULATE DRAIN CURRFZ )@@G@@ENT AND TRANSCONDUCTANCES FOR LINEAR REGION @ @[@@C AND WEAK INVERGA )@@G@@SION CASE @[@[@@C @#@[@@ 70 CONTINUE @^@[@@ CDRAIN=BETA1GB )@@G@@*CD1 @B@[@@ GDS=BETA0*(ETAD+AHPLA-UGB/ETAD) @ @[@@ ETAIVDGC )@@G@@=ETSINV-ETDINV @ @[@@ ETAF=(ALGES-ALGED)/ALPHA@C@[@@ GM=BETGD )@@G@@A0*((ETAS-ETAD)+ONEUGB*ETAIVD-ETAF) @A@[@@ GMBS=-BETA0*(ETAIVD-ETAFGE )@@G@@) @A@[@@ IF (ISCATT.EQ.0) GO TO 1000 @[@[@@C @C@[@@C MOGF )@@G@@DIFIED BY SCATTERING LIMITED VELOCITY @[@[@@C @#@[@@ 80 CONTINGG )@@G@@UE @ @[@@ SFACT=VSCATT*(ETAS-ETAD)@B@[@@ IF (SFACT.LT.1.0E-GH )@@G@@7) GO TO 1000 @ @[@@ SFACT=1.0/(1.0+SFACT) @ @[@@ CDRAINGI )@@G@@=CDRAIN*SFACT @A@[@@ GDS=(GDS-CDRAIN*SCATT)*SFACT @#@[@@ GJ )@@G@@GM=GM*SFACT @^@[@@ GMBS=GMBS*SFACT @#@[@@ GO TO 1000 @[@[@@GK )@@G@@C @^@[@@C SATURATION REGION @[@[@@C @#@[@@ 200 INDEX=1 GL )@@G@@@A@[@@ ASATF2=SATFAC*SATFAC*AHPLA @#@[@@ ETADS=ETASAT@D@[@@GM )@@G@@ 250 DSVAL=ETADS2/2.0+ALPHAF*ETADS+ONEUGB*ALOG(ETADS)@ @[@@ CDSAT=GN )@@G@@BETA1*(SVAL-DSVAL)@B@[@@ GDSAT=BETA0*(ETADS+AHPLA-UGB/ETADS) @B@[@@GO )@@G@@ SFACT=1.0/(1.0+VSCATT*(ETAS-ETADS)) @^@[@@ CDSAT=CDSAT*SFACT GP )@@G@@@B@[@@ GDSAT=(GDSAT-CDSAT*SCATT)*SFACT @A@[@@ IF (GDSAT.LTGQ )@@G@@.0.0) GO TO 50 @^@[@@ EFFXL=XL/SFACT @E@[@@ XLSAT=(TOX+TGR )@@G@@OX)*EPSSIL/EPSOX*(ALPHA*UGB-PINCH)/PINCH @A@[@@ IF (XLSAT.LE.0.0) GS )@@G@@GO TO 50 @ @[@@ ASAT=SQRT(XLSAT*TOX) @ @[@@ ESAT=CDSAT/(GT )@@G@@GDSAT*EFFXL)@ @[@@ EASAT=VT/(ESAT*ASAT) @D@[@@ ARG1=BETA*(1GU )@@G@@.0+UGB/ETADS2)+(SCATT+SCATT)*GDSAT @D@[@@ ARG1=(VT+VT)*(1.0/EFFXL/GV )@@G@@ESAT+ARG1*SFACT/GDSAT) @ @[@@ ARG2=ARG1/(EASAT+EASAT) @^@[@@ GW )@@G@@UDEL=UDS-UDSAT @^@[@@ ARG3=EASAT*UDEL @A@[@@ ARG4=ARG3*ARGX )@@G@@G3+ARG1*UDEL+1.0 @A@[@@ IF (ARG4.LE.0.0) GO TO 50 @^@[@@ GY )@@G@@SQARG=SQRT(ARG4) @B@[@@ SATARG=(SQARG+ARG3+ARG2)/(1.0+ARG2) @B@[@@GZ )@@G@@ RATIO=EXP(ASAT/EFFXL*ALOG(SATARG)) @^@[@@ CDRAIN=CDSAT*RATIOHA )@@G@@@[@[@@C @C@[@@C INITIALIZATION FOR TRANSCONDUCTANCE LOOP @[@[@@HB )@@G@@C @A@[@@ GO TO (300,400,500), INDEX @ @[@@ 300 GDSOLD=GDSATHC )@@G@@*RATIO/SQARG@#@[@@ CDOLD=CDRAIN@#@[@@ ETASO=ETAS @#@[@@ HD )@@G@@PINCHO=PINCH@#@[@@ UGSO=UGS @#@[@@ UGBO=UGB @#@[@@ HE )@@G@@UBSO=UBS @#@[@@ DELU=0.02 @#@[@@ DELV=DELU*VT@[@[@@C HF )@@G@@@^@[@@C UGS ---> UGS+DELU @[@[@@C @#@[@@ INDEX=2 @B@[@@HG )@@G@@ BUFF1=ETAS2+ETASO/ALPHA+1.0-UGBO @ @[@@ BUFF2=BUFF1+ETASO/HH )@@G@@TAHPLA@A@[@@ DETAS=(ALPHA*BUFF1/BUFF2)*DELU@B@[@@ DPINCH=0.5/(HI )@@G@@PINCHO+TAHPLA)*DELU @C@[@@ DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASAHJ )@@G@@TF2 @F@[@@C DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASATF2*SQRT(ALPHA*50.HK )@@G@@0) @F@[@@ DETADS=DETAS+(DPINCH-DETAS)*SATFAC+(PINCHO-ETASO)*DSATHL )@@G@@FC @^@[@@ ETAS=ETASO+DETAS @ @[@@ PINCH=PINCHO+DPINCH HM )@@G@@@ @[@@ ETADS=ETASAT+DETADS @^@[@@ UGS=UGSO+DELU @^@[@@HN )@@G@@ UGB=UGBO+DELU @^@[@@ ONEUGB=1.0-UGB @D@[@@ SVAL=EHO )@@G@@TAS*ETAS/2.0+ALPHAF*ETAS+ONEUGB*ALOG(ETAS)@^@[@@ ETADS2=ETADS*ETADSHP )@@G@@@^@[@@ ETALPH=ETADS/ALPHA@ @[@@ USATX=ETADS2+ETALPH-UGB @B@[@@HQ )@@G@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(USATX) @#@[@@ GO TO 250 @ @[@@HR )@@G@@ 400 GM=(CDRAIN-CDOLD)/DELV @[@[@@C @D@[@@C SKIP THE CALCULATIHS )@@G@@ON OF GMSB IF UBS.GE.UPHIS @[@[@@C @A@[@@ IF (UBS.LT.UPHIS) HT )@@G@@GO TO 420 @#@[@@ GMBS=0.0 @#@[@@ GO TO 900 @[@[@@C HU )@@G@@@^@[@@C UBS ---> UBS+DELU @[@[@@C @#@[@@ 420 CONTINUE @#@[@@HV )@@G@@ INDEX=3 @D@[@@ DETAS=-ALPHA/(ETAS2+ALPHAF*ETASO+1.0-UGBO)HW )@@G@@*DELU @^@[@@ DPINCH=-DPINCH @C@[@@ DSATFC=-TOXL*0.05*(DETASHX )@@G@@-DPINCH)*ASATF2 @F@[@@C DSATFC=-TOXL*0.05*(DETAS-DPINCH)*ASATF2*SQHY )@@G@@RT(ALPHA*50.0) @F@[@@ DETADS=DETAS+(DPINCH-DETAS)*SATFAC+(PINCHOHZ )@@G@@-ETASO)*DSATFC @^@[@@ ETAS=ETASO+DETAS @ @[@@ PINCH=PINCHOIA )@@G@@+DPINCH @ @[@@ ETADS=ETASAT+DETADS @#@[@@ UGS=UGSO IB )@@G@@@^@[@@ UGB=UGBO-DELU @^@[@@ UBS=UBSO+DELU @^@[@@ IC )@@G@@ONEUGB=1.0-UGB @D@[@@ SVAL=ETAS*ETAS/2.0+ALPHAF*ETAS+ONEUGB*ALOGID )@@G@@(ETAS)@^@[@@ ETADS2=ETADS*ETADS@^@[@@ ETALPH=ETADS/ALPHA@ @[@@IE )@@G@@ USATX=ETADS2+ETALPH-UGB @B@[@@ UDSAT=-ETALPH-UPHIS+UGS-ALOG(UIF )@@G@@SATX) @#@[@@ GO TO 250 @ @[@@ 500 GMBS=(CDRAIN-CDOLD)/DELV@[@[@@IG )@@G@@C @#@[@@C RESTORE DATA @[@[@@C @#@[@@ 900 CONTINUE @#@[@@IH )@@G@@ CDRAIN=CDOLD@#@[@@ GDS=GDSOLD @#@[@@ ETAS=ETASO @[@[@@II )@@G@@C @]@[@@C FINISHED@[@[@@C @#@[@@ 1000 CONTINUE @]@[@@ IJ )@@G@@RETURN@]@[@@ END @C@[@@ SUBROUTINE EXPEQN (PINCH,UGS,UGB,UXSIK )@@G@@,ETAX)@[@[@@C @G@[@@C THIS SUBROUTINE SOLVE THE EXPONENTIAL EQUATIIL )@@G@@ON IN EL-MANSY^S MOSFET @^@[@@C MODEL BY ITERATION @[@[@@C @G@[@@IM )@@G@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBI,XNFS,XNSUB,XD,XJ,XL, IN )@@G@@@E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GM,GMBS,GDS,CDRAIN, @G@[@@IO )@@G@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0,BETA1,SCATT,VSCATT, IP )@@G@@@G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIB,UTHSUB,ETAD,ETAS,CD1,LEIQ )@@G@@V @]@[@@ K=0 @^@[@@ UPHIS=UPHIB+UPHIB @A@[@@ BOUND=IR )@@G@@ALPHA*(UGS-UPHIS-UXS) @A@[@@ IF (PINCH.GT.BOUND) GO TO 5 @[@[@@IS )@@G@@C @^@[@@C STRONG INVERSION @[@[@@C @A@[@@ ARG=BOUND*BOIT )@@G@@UND-UXS-UPHIS @^@[@@ ARG=AMAX1(1.0,ARG)@A@[@@ ETAX=BOUND-AIU )@@G@@LPHA*ALOG(ARG) @#@[@@ GO TO 10 @[@[@@C @#@[@@C WEAK INVIV )@@G@@ERSION@[@[@@C @#@[@@ 5 ETAX=PINCH @[@[@@C @#@[@@C ITERATIOIW )@@G@@N @[@[@@C @]@[@@ 10 K=K+1 @ @[@@ EXPT=(BOUND-ETAX)/ALPHA IX )@@G@@@D@[@@ IF (ABS(EXPT).GT.227.0) EXPT=SIGN(227.0,EXPT) @^@[@@ IY )@@G@@EXPT=EXP(EXPT) @B@[@@ FVAL=ETAX*ETAX+ETAX/ALPHA-UGB-EXPT @B@[@@IZ )@@G@@ DVAL=ETAX+ETAX+(1.0+EXPT)/ALPHA @A@[@@ DDVAL=2.0-EXPT/ALPJA )@@G@@HA/ALPHA @^@[@@ RVAL=FVAL/DVAL @A@[@@ RVAL=RVAL+RVAL*RVAJB )@@G@@L*DDVAL/DVAL@^@[@@ ETAX=ETAX-RVAL @B@[@@ IF (ABS(RVAL).LT.1JC )@@G@@.0E-6) GO TO 1000 @ @[@@ IF (K.LT.5) GO TO 10 @[@[@@C @]@[@@JD )@@G@@C FINISH @[@[@@C @]@[@@ 1000 RETURN@]@[@@ END @G@[@@ JE )@@G@@SUBROUTINE MOSCAP (VGS0,VGD0,VGB0,VGS1,VGD1,VGB1,COVLGS,COVLGD, @C@[@@JF )@@G@@ 1 COVLGB,CGS0,CGD0,CGB0,CGS1,CGD1,CGB1)@[@[@@C @G@[@@C JG )@@G@@THIS ROUTINE COMPUTES THE MOSFET OVERLAP CAPACITANCES AS FUNCTIONS@A@[@@JH )@@G@@C OF THE DEVICE TERMINAL VOLTAGES. @[@[@@C @G@[@@ COMMON /STATJI )@@G@@US/ OMEGA,TIME,DELTA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODJJ )@@G@@E,MODEDC,ICALC,INITF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEJK )@@G@@MNO,NOSOLV,MODAC @G@[@@ COMMON /MOSARG/ GAMMA,BETA,VTO,PHI,COX,VBIJL )@@G@@,XNFS,XNSUB,XD,XJ,XL, @E@[@@ 1 XLAMDA,UTRA,UEXP,VBP,VON,VDSAT,GMJM )@@G@@,GMBS,GDS,CDRAIN, @G@[@@ 1 ALPHA,ALPHAF,TAHPLA,AHPLA2,VALPHA,BETA0JN )@@G@@,BETA1,SCATT,VSCATT, @G@[@@ 2 XW,TOX,AION,BION,CDAVAL,UFB,UPHIBJO )@@G@@,UTHSUB,ETAD,ETAS,CD1,LEV @G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLJP )@@G@@OG10,ROOT2,RAD,BOLTZ,CHARGE,CTOK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNJQ )@@G@@TOL,TRTOL,CHGTOL,EPS0,EPSSIL,EPSOX @[@[@@C @ @[@@ IF (LEV.GT.2JR )@@G@@) GO TO 500 @[@[@@C @[@[@@C @A@[@@C MEYER^S MOSFET CAPACITANCEJS )@@G@@ MODEL@[@[@@C @#@[@@ INDEX=1 @#@[@@ VGS=VGS1 @#@[@@JT )@@G@@ VGD=VGD1 @#@[@@ VGB=VGB1 @#@[@@ 10 VDS=VGS-VGD @#@[@@JU )@@G@@ VGST=VGS-VON@A@[@@ IF (VGST.GT.-PHI) GO TO 100 @^@[@@ JV )@@G@@CGB=COX+COVLGB @#@[@@ CGD=COVLGD @#@[@@ CGS=COVLGS @#@[@@JW )@@G@@ GO TO 430 @[@[@@C @[@[@@C @B@[@@ 100 IF (VGST.GT.-PHI/2JX )@@G@@.0) GO TO 200 @ @[@@ CGB=-VGST*COX/PHI+COVLGB@#@[@@ CGD=COJY )@@G@@VLGD @#@[@@ CGS=COVLGS @#@[@@ GO TO 430 @[@[@@C @[@[@@JZ )@@G@@C @A@[@@ 200 IF (VGST.GT.0.0) GO TO 300 @ @[@@ CGB=-VGST*COKA )@@G@@X/PHI+COVLGB@#@[@@ CGD=COVLGD @C@[@@ CGS=COX/(0.75*PHI)*VGST+KB )@@G@@COX/1.5+COVLGS @#@[@@ GO TO 430 @[@[@@C @[@[@@C @A@[@@KC )@@G@@ 300 IF (VGST.GT.VDS) GO TO 400 @#@[@@ CGB=COVLGB @#@[@@ KD )@@G@@CGD=COVLGD @^@[@@ CGS=COX/1.5+COVLGS@#@[@@ GO TO 430 @[@[@@KE )@@G@@C @[@[@@C @^@[@@ 400 VGSTO=VGS-VON @ @[@@ VGDTO=VGD-VOKF )@@G@@N-1.0E-12 @B@[@@ VGSDT2=(VGSTO+VGDTO)*(VGSTO+VGDTO) @D@[@@ KG )@@G@@CGD=COX*(1.0-VGSTO*VGSTO/VGSDT2)/1.5+COVLGD @D@[@@ CGS=COX*(1.0KH )@@G@@-VGDTO*VGDTO/VGSDT2)/1.5+COVLGS @#@[@@ CGB=COVLGB @[@[@@C KI )@@G@@@[@[@@C @ @[@@ 430 GO TO (440,560), INDEX @#@[@@ 440 INDEX=2 KJ )@@G@@@#@[@@ CGS1=CGS @#@[@@ CGD1=CGD @#@[@@ CGB1=CGB KK )@@G@@@#@[@@ VGS=VGS0 @#@[@@ VGD=VGD0 @#@[@@ VGB=VGB0 KL )@@G@@@#@[@@ GO TO 10 @[@[@@C @A@[@@C CAPACITANCE MODEL OF E-B TKM )@@G@@HEORY @[@[@@C @#@[@@ 500 CONTINUE @^@[@@ UPHIS=UPHIB+UPHIB KN )@@G@@@^@[@@ UGS1=VGS1/VT-UFB @^@[@@ UGD1=VGD1/VT-UFB @^@[@@ KO )@@G@@UGB1=VGB1/VT-UFB @C@[@@ IF ((UGS1-UGB1).GT.UPHIS) UGB1=UGS1-UPHIS KP )@@G@@@^@[@@ UGS0=VGS0/VT-UFB @^@[@@ UGD0=VGD0/VT-UFB @^@[@@ KQ )@@G@@UGB0=VGB0/VT-UFB @C@[@@ IF ((UGS0-UGB0).GT.UPHIS) UGB0=UGS0-UPHIS KR )@@G@@@[@[@@C @[@[@@C @#@[@@ INDEX=1 @#@[@@ UGS=UGS1 KS )@@G@@@#@[@@ UGD=UGD1 @#@[@@ UGB=UGB1 @#@[@@ UBS=UGS-UGB KT )@@G@@@#@[@@ UDS=UGS-UGD @A@[@@ IF (UGS.GT.UTHSUB) GO TO 515 @[@[@@KU )@@G@@C @#@[@@C CUTOFF REGION @[@[@@C @#@[@@ 510 CONTINUE @#@[@@KV )@@G@@ CGS=COVLGS @#@[@@ CGD=COVLGD @ @[@@ UGBB=AMAX1(UGB,0.0KW )@@G@@) @^@[@@ ARG=ABS(UGB)/UPHIS@ @[@@ ARG=AMIN1(ARG,100.0) KX )@@G@@@A@[@@ CGB=COX/(SQRT(1.0+UGBB/AHPLA2)@B@[@@ 1 +ROOT2*ALPHA*KY )@@G@@EXP(-ARG))+COVLGB @#@[@@ GO TO 540 @[@[@@C @^@[@@C SET THE KZ )@@G@@FLAG KVDS @[@[@@C @#@[@@ 515 CONTINUE @]@[@@ KVDS=0@A@[@@LA )@@G@@ IF (UDS.GE.1.0E-4) GO TO 502 @#@[@@ UDS=1.0E-4 @]@[@@ LB )@@G@@KVDS=1@#@[@@ 502 CONTINUE @^@[@@ UTH=VON/VT-UFB @A@[@@ LC )@@G@@IF (UGS.GE.UTH) GO TO 525 @[@[@@C @^@[@@C WEAK INVERSION CASE LD )@@G@@@[@[@@C @#@[@@ 505 CONTINUE @#@[@@ CYS=COVLGS @#@[@@ LE )@@G@@CYD=COVLGD @^@[@@ UGBY=UTHSUB-UBS @ @[@@ UGBB=AMAX1(UGBY,0.LF )@@G@@0) @ @[@@ ARG=ABS(UGBY)/UPHIS @ @[@@ ARG=AMIN1(ARG,100.LG )@@G@@0) @F@[@@ CYB=COX/(SQRT(1.0+UGBB/AHPLA2)+ROOT2*ALPHA*EXP(-ARG))+LH )@@G@@COVLGB@[@[@@C @#@[@@ UGBX=UTH-UBS@B@[@@ PINCH=-TAHPLA+SQRTLI )@@G@@(AHPLA2+UGBX) @C@[@@ CALL EXPEQN (PINCH,UTH,UGBX,UDS,ETAD) LJ )@@G@@@C@[@@ CALL EXPEQN (PINCH,UTH,UGBX,0.0,ETAS) @^@[@@ ONEUGBLK )@@G@@=1.0-UGBX @^@[@@ ETAS2=ETAS*ETAS @^@[@@ ETAD2=ETAD*ETAD LL )@@G@@@^@[@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22=ETAD2/2.0 @ @[@@ LM )@@G@@ALGESD=ALOG(ETAS/ETAD) @^@[@@ ESALPH=ETAS/ALPHA @^@[@@ EDALPHLN )@@G@@=ETAD/ALPHA @D@[@@ SMVAL=ETAS2*ETAS/3.0+ALPHAF*ETAS22+ONEUGB*ETAS LO )@@G@@@D@[@@ DMVAL=ETAD2*ETAD/3.0+ALPHAF*ETAD22+ONEUGB*ETAD @^@[@@ LP )@@G@@XMVAL=SMVAL-DMVAL @E@[@@ CD1=(ETAS22-ETAD22)+ALPHAF*(ETAS-ETAD)+ONELQ )@@G@@UGB*ALGESD @#@[@@ CD2=CD1*CD1 @F@[@@ CXS=COX*(ETAS2+ESALPH-UGLR )@@G@@BX)*(CD1-XMVAL/ETAS)/CD2+COVLGS @F@[@@ CXD=COX*(ETAD2+EDALPH-UGLS )@@G@@BX)*(-CD1+XMVAL/ETAD)/CD2+COVLGD @C@[@@ ARG=XMVAL*(1.0/ETAS-1.0/LT )@@G@@ETAD-ALGESD/ALPHA)@D@[@@ CXB=COX*(-CD1*(ESALPH-EDALPH)-ARG)/CD2+COVLU )@@G@@LGB @[@[@@C @A@[@@ DEL=(UGS-UTHSUB)/(UTH-UTHSUB) @ @[@@ LV )@@G@@CGS=CYS+(CXS-CYS)*DEL @ @[@@ CGD=CYD+(CXD-CYD)*DEL @ @[@@ LW )@@G@@CGB=CYB+(CXB-CYB)*DEL @#@[@@ GO TO 540 @[@[@@C @ @[@@C SPLX )@@G@@ECIAL CASE FOR VDS=0.0 @[@[@@C @#@[@@ 525 CONTINUE @ @[@@ LY )@@G@@IF (KVDS.EQ.0) GO TO 530@A@[@@ PINCH=-TAHPLA+SQRT(AHPLA2+UGB)@B@[@@LZ )@@G@@ CALL EXPEQN (PINCH,UGS,UGB,UDS,ETAD)@[@[@@C @^@[@@C TRANSISTMA )@@G@@OR IS ON @[@[@@C @#@[@@ 530 CONTINUE @^@[@@ ONEUGB=1.0-UMB )@@G@@GB @^@[@@ ETAS2=ETAS*ETAS @^@[@@ ETAD2=ETAD*ETAD @^@[@@MC )@@G@@ ETAS22=ETAS2/2.0 @^@[@@ ETAD22=ETAD2/2.0 @^@[@@ ESALPHMD )@@G@@=ETAS/ALPHA @^@[@@ EDALPH=ETAD/ALPHA @ @[@@ ALGESD=ALOG(ETAS/EME )@@G@@TAD) @^@[@@ IF (KVDS.EQ.1) @F@[@@ 1 CD1=(ETAS22-ETAD22)+AMF )@@G@@LPHAF*(ETAS-ETAD)+ONEUGB*ALGESD @D@[@@ SMVAL=ETAS2*ETAS/3.0+ALPMG )@@G@@HAF*ETAS22+ONEUGB*ETAS @D@[@@ DMVAL=ETAD2*ETAD/3.0+ALPHAF*ETAD22+OMH )@@G@@NEUGB*ETAD @^@[@@ XMVAL=SMVAL-DMVAL @#@[@@ CD2=CD1*CD1 @E@[@@MI )@@G@@ CGS=COX*(ETAS2+ESALPH-UGB)*(CD1-XMVAL/ETAS)/CD2+COVLGS@F@[@@ MJ )@@G@@CGD=COX*(ETAD2+ESALPH-UGB)*(-CD1+XMVAL/ETAD)/CD2+COVLGD @C@[@@ MK )@@G@@ARG=XMVAL*(1.0/ETAS-1.0/ETAD-ALGESD/ALPHA)@D@[@@ CGB=COX*(-CD1*(ESAML )@@G@@LPH-EDALPH)-ARG)/CD2+COVLGB @[@[@@C @[@[@@C @#@[@@ 540 CONTINMM )@@G@@UE @ @[@@ CGS=AMAX1(CGS,1.0E-30) @ @[@@ CGD=AMAX1(CGD,1.0EMN )@@G@@-30) @ @[@@ CGB=AMAX1(CGB,1.0E-30) @ @[@@ GO TO (550,560), IMO )@@G@@NDEX @[@[@@C @#@[@@ 550 INDEX=2 @#@[@@ CGS1=CGS @#@[@@MP )@@G@@ CGD1=CGD @#@[@@ CGB1=CGB @#@[@@ UGS=UGS0 @#@[@@MQ )@@G@@ UGD=UGD0 @#@[@@ UGB=UGB0 @#@[@@ UDS=UGS-UGD @#@[@@MR )@@G@@ UBS=UGS-UGB @#@[@@ UTHSUB=UBS @A@[@@ FUDGE=UPHIB-50.0/UMS )@@G@@PHIB-UBS @A@[@@ IF (FUDGE.LE.0.0) GO TO 555 @B@[@@ UTHSUBMT )@@G@@=FUDGE+UBS+SQRT(FUDGE)/ALPHA @A@[@@ 555 IF (UGS.LE.UTHSUB) GO TO 510 MU )@@G@@@ @[@@ UDS=AMAX1(UDS,1.0E-4) @]@[@@ KVDS=1@#@[@@ UTH=UPMV )@@G@@HIS @D@[@@ IF (UPHIS.GT.UBS) UTH=UTH+SQRT(UPHIS-UBS)/ALPHA @A@[@@MW )@@G@@ IF (UGS.LT.UTH) GO TO 505 @A@[@@ PINCH=-TAHPLA+SQRT(AHPLAMX )@@G@@2+UGB)@B@[@@ CALL EXPEQN (PINCH,UGS,UGB,0.0,ETAS)@B@[@@ CALL EMY )@@G@@XPEQN (PINCH,UGS,UGB,UDS,ETAD)@#@[@@ GO TO 530 @[@[@@C @[@[@@MZ )@@G@@C @#@[@@ 560 CGS0=CGS @#@[@@ CGD0=CGD @#@[@@ CGB0=CNA )@@G@@GB @[@[@@C @]@[@@C FINISHED @[@[@@C @]@[@@ 1000 RETURN@]@[@@NB )@@G@@ END @#@[@@ OVERLAY(5,0)@#@[@@ PROGRAM DCOP@[@[@@C NC )@@G@@@G@[@@C THIS ROUTINE PRINTS OUT THE OPERATING POINTS OF THE NONLINEAND )@@G@@R @^@[@@C CIRCUIT ELEMENTS. @[@[@@C @G@[@@ COMMON /TABINE )@@G@@NF/ IELMNT,ISBCKT,NSBCKT,IUNSAT,NUNSAT,ITEMPS,NUMTEM, @G@[@@ 1 ISENF )@@G@@NS,NSENS,IFOUR,NFOUR,IFIELD,ICODE,IDELIM,ICOLUM,INSIZE, @G@[@@ 2NG )@@G@@ JUNODE,LSBKPT,NUMBKP,IORDER,JMNODE,IUR,IUC,ILC,ILR,NUMOFF,ISR, @G@[@@NH )@@G@@ 3 NMOFFC,ISEQ,ISEQ1,NEQN,NODEVS,NDIAG,ISWAP,IEQUA,MACINS,LVNIM1, NI )@@G@@@G@[@@ 4 LX0,LVN,LYNL,LYU,LYL,LX1,LX2,LX3,LX4,LX5,LX6,LX7,LD0,LD1,NJ )@@G@@LTD, @ @[@@ 5 LOUTPT,LPOL,LZER @G@[@@ COMMON /CIRDAT/ LONK )@@G@@CATE(50),JELCNT(50),NUNODS,NCNODS,NUMNOD,NSTOP, @C@[@@ 1 NUT,NLT,NNL )@@G@@XTRM,NDIST,NTLIN,IBR,NUMVS @G@[@@ COMMON /STATUS/ OMEGA,TIME,DELNM )@@G@@TA,DELOLD(7),AG(7),VT,XNI,EGFET, @F@[@@ 1 MODE,MODEDC,ICALC,ININN )@@G@@TF,METHOD,IORD,MAXORD,NONCON,ITERNO,@ @[@@ 2 ITEMNO,NOSOLV,MODAC NO )@@G@@@G@[@@ COMMON /KNSTNT/ TWOPI,XLOG2,XLOG10,ROOT2,RAD,BOLTZ,CHARGE,CTNP )@@G@@OK, @F@[@@ 1 GMIN,RELTOL,ABSTOL,VNTOL,TRTOL,CHGTOL,EPS0,EPSSIL,ENQ )@@G@@PSOX @F@[@@ COMMON /MISCEL/ APROG(3),ATIME,ADATE,ATITLE(15),RSTATSNR )@@G@@(50), @ @[@@ 1 IWIDTH,LWIDTH,NOPAGE @G@[@@ COMMON /DC/ TCSTARNS )@@G@@,TCSTOP,TCINCR,ICVFLG,ITCELM,KSSOP,KINEL,KIDIN, @^@[@@ 1 KOVAR,KIDNT )@@G@@OUT @G@[@@ COMMON /AC/ FSTART,FSTOP,FINCR,SKW2,REFPRL,SPW2,JACFLGNU )@@G@@,IDFREQ, @F@[@@ 1 INOISE,NOSPRT,NOSOUT,NOSIN,IDIST,IDPRT,JPZFLGNV )@@G@@,JPZTYP, @F@[@@ 2 IPZIN,IPZITP,IPZOUT,IPZEQO,IPZLOC(2),IPZEQI,INW )@@G@@POMAT(3), @#@[@@ 3 IPIMAT(4)@ @[@@ COMMON /BLANK/ VALUE(64)NX )@@G@@@^@[@@ INTEGER NODPLC(64)@^@[@@ COMPLEX CVALUE(32)@C@[@@ NY )@@G@@EQUIVALENCE (VALUE(1),NODPLC(1),CVALUE(1))@[@[@@C @[@[@@C @ @[@@NZ )@@G@@ DIMENSION OPTITL(4) @C@[@@ DIMENSION ANAM(12),AV1(12),AI1OA )@@G@@(12),REQ(12)@C@[@@ DIMENSION AMOD(12),CD(12),VD(12),CAP(12) @G@[@@OB )@@G@@ DIMENSION CB(12),CC(12),VBE(12),VBC(12),VCE(12),GM(12),RPI(12), OC )@@G@@@E@[@@ 1 RO(12),CPI(12),CMU(12),BETADC(12),BETAAC(12),FT(12)@E@[@@OD )@@G@@ DIMENSION VGS(12),VDS(12),GDS(12),CGS(12),CGD(12) @C@[@@ OE )@@G@@DIMENSION VBS(12),CBD(12),CBS(12),CGB(12) @A@[@@ DIMENSION VTH(12),OF )@@G@@VDSAT(12) @^@[@@ DIMENSION GMBS(12)@G@[@@ DATA OPTITL / 8HOPOG )@@G@@ERATIN, 8HG POINT , 8HINFORMAT, 8HION / @G@[@@ DATA AV,AVD,OH )@@G@@AVBE,AVBC,AVCE,AVGS,AVDS,AVBS / 1HV,2HVD,3HVBE,3HVBC, @A@[@@ 1 3HVOI )@@G@@CE,3HVGS,3HVDS,3HVBS / @F@[@@ DATA ACNTRV,ACNTRI,ASRCV,ASRCI,ATRANOJ )@@G@@G,ATRANR,AVGAIN,AIGAIN /@E@[@@ 1 8HV-CONTRL, 8HI-CONTRL, 8HV-SOURCOK )@@G@@E, 8HI-SOURCE, @E@[@@ 2 8HTRANS-G , 8HTRANS-R , 8HV GAIN , 8HIOL )@@G@@ GAIN / @C@[@@ DATA AI,AID,AIB,AIC / 1HI,2HID,2HIB,2HIC /@C@[@@OM )@@G@@ DATA AREQ,ARPI,ARO / 3HREQ,3HRPI,2HRO / @G@[@@ DATA ACAP,ACON )@@G@@PI,ACMU,ACGS,ACGD,ACBD,ACBS / 3HCAP,3HCPI,3HCMU,3HCGS,@ @[@@ 1 3HCOO )@@G@@GD,3HCBD,3HCBS / @ @[@@ DATA ACGB / 3HCGB / @B@[@@ DATA AOP )@@G@@VTH, AVDSAT / 3HVTH, 5HVDSAT /@A@[@@ DATA AGM,AGDS / 2HGM,3HGDS / OQ )@@G@@@ @[@@ DATA AGMBS / 4HGMBS / @C@[@@ DATA ABETAD,ABETAA / 6HBOR )@@G@@ETADC,6HBETAAC / @^@[@@ DATA AFT / 2HFT / @[@[@@C @E@[@@C COMOS )@@G@@PUTE VOLTAGE SOURCE CURRENTS AND POWER DISSIPATION @[@[@@C @^@[@@OT )@@G@@ CALL SECOND(T1) @G@[@@ IF ((MODE.EQ.1).AND.(MODEDC.EQ.2).ANOU )@@G@@D.(NOSOLV.NE.0)) GO TO 700 @#@[@@ POWER=0.0 @A@[@@ IF (JEOV )@@G@@LCNT(9).EQ.0) GO TO 50 @#@[@@ ITITLE=0 @E@[@@ 11 FORMAT (////OW )@@G@@5X,*VOLTAGE SOURCE CURRENTS*//5X,*NAME*, @^@[@@ 1 7X,*CURRENT*/) OX )@@G@@@^@[@@ LOC=LOCATE(9) @ @[@@ 20 IF (LOC.EQ.0) GO TO 50 @^@[@@OY )@@G@@ LOCV=NODPLC(LOC+1)@^@[@@ IPTR=NODPLC(LOC+6)@ @[@@ CREAL=OZ )@@G@@VALUE(LVNIM1+IPTR)@B@[@@ POWER=POWER-CREAL*VALUE(LOCV+1) @A@[@@PA )@@G@@ IF (ITITLE.EQ.0) WRITE (6,11) @#@[@@ ITITLE=1 @A@[@@ PB )@@G@@WRITE (6,21) VALUE(LOCV),CREAL@A@[@@ 21 FORMAT (/5X,A8,1X,1PE10.3) PC )@@G@@@^@[@@ 30 LOC=NODPLC(LOC) @#@[@@ GO TO 20 @^@[@@ 50 LOC=LOPD )@@G@@CATE(10) @ @[@@ 60 IF (LOC.EQ.0) GO TO 90 @^@[@@ LOCV=NODPLC(PE )@@G@@LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3PF )@@G@@) @A@[@@ POWER=POWER-VALUE(LOCV+1) @D@[@@ 1 *(VALUE(LPG )@@G@@VNIM1+NODE1)-VALUE(LVNIM1+NODE2)) @^@[@@ LOC=NODPLC(LOC) @#@[@@PH )@@G@@ GO TO 60 @^@[@@ 90 WRITE (6,91) POWER@F@[@@ 91 FORMAT (//5XPI )@@G@@,*TOTAL POWER DISSIPATION *,1PE9.2,* WATTS*) @[@[@@C @A@[@@C SMAPJ )@@G@@LL SIGNAL DEVICE PARAMETERS @[@[@@C @F@[@@ NUMDEV=JELCNT(5)+JPK )@@G@@ELCNT(6)+JELCNT(7)+JELCNT(8)+JELCNT(11) @B@[@@ 1 +JELCNT(12)+JELPL )@@G@@CNT(13)+JELCNT(14)@A@[@@ IF (NUMDEV.EQ.0) GO TO 600 @A@[@@ PM )@@G@@CALL TITLE(0,LWIDTH,1,OPTITL) @^@[@@ KNTLIM=LWIDTH/11 @[@[@@C PN )@@G@@@C@[@@C NONLINEAR VOLTAGE CONTROLLED CURRENT SOURCES @[@[@@C @A@[@@PO )@@G@@ IF (JELCNT(5).EQ.0) GO TO 175 @#@[@@ ITITLE=0 @F@[@@ 111 PP )@@G@@FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED CURRENT SOURCES^) @^@[@@ PQ )@@G@@LOC=LOCATE(5) @]@[@@ KNTR=0@ @[@@ 120 IF (LOC.EQ.0) GO TO 140 PR )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LPS )@@G@@X0+NODPLC(LOC+12) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AI1(KNPT )@@G@@TR)=VALUE(LOCT) @A@[@@ IF (KNTR.GE.KNTLIM) GO TO 150 @^@[@@ 130 PU )@@G@@LOC=NODPLC(LOC) @#@[@@ GO TO 120 @ @[@@ 140 IF (KNTR.EQ.0) GO PV )@@G@@TO 175@A@[@@ 150 IF (ITITLE.EQ.0) WRITE (6,111)@#@[@@ ITITLE=1 PW )@@G@@@B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ 151 FORMAT(1H0,/PX )@@G@@,1H0,/,11X,12(2X,A8)) @ @[@@ 161 FORMAT(1H0,A8,12F10.3) @C@[@@ PY )@@G@@WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) @ @[@@ 171 FORMAT(1H0,A8,1P12PZ )@@G@@E10.2)@]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 130 @[@[@@C QA )@@G@@@C@[@@C NONLINEAR VOLTAGE CONTROLLED VOLTAGE SOURCES @[@[@@C @A@[@@QB )@@G@@ 175 IF (JELCNT(6).EQ.0) GO TO 186 @#@[@@ ITITLE=0 @F@[@@ 176 QC )@@G@@FORMAT(1H0,/,^0**** VOLTAGE-CONTROLLED VOLTAGE SOURCES^) @^@[@@ QD )@@G@@LOC=LOCATE(6) @]@[@@ KNTR=0@ @[@@ 178 IF (LOC.EQ.0) GO TO 182 QE )@@G@@@#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LQF )@@G@@X0+NODPLC(LOC+13) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AV1(KNQG )@@G@@TR)=VALUE(LOCT) @ @[@@ AI1(KNTR)=VALUE(LOCT+1) @A@[@@ IF (KNQH )@@G@@TR.GE.KNTLIM) GO TO 184 @^@[@@ 180 LOC=NODPLC(LOC) @#@[@@ GO TO QI )@@G@@178 @ @[@@ 182 IF (KNTR.EQ.0) GO TO 186@A@[@@ 184 IF (ITITLE.EQ.0) WQJ )@@G@@RITE (6,176)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),IQK )@@G@@=1,KNTR) @C@[@@ WRITE (6,161) ASRCV,(AV1(I),I=1,KNTR) @C@[@@QL )@@G@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) @]@[@@ KNTR=0@ @[@@QM )@@G@@ IF (LOC.NE.0) GO TO 180 @[@[@@C @C@[@@C NONLINEAR CURRENT CONQN )@@G@@TROLLED CURRENT SOURCES @[@[@@C @A@[@@ 186 IF (JELCNT(7).EQ.0) GO TQO )@@G@@O 196 @#@[@@ ITITLE=0 @F@[@@ 187 FORMAT(1H0,/,^0**** CURRENT-COQP )@@G@@NTROLLED CURRENT SOURCES^) @^@[@@ LOC=LOCATE(7) @]@[@@ QQ )@@G@@KNTR=0@ @[@@ 188 IF (LOC.EQ.0) GO TO 192 @#@[@@ KNTR=KNTR+1 @^@[@@QR )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LX0+NODPLC(LOC+12) @ @[@@ QS )@@G@@ANAM(KNTR)=VALUE(LOCV) @ @[@@ AI1(KNTR)=VALUE(LOCT) @A@[@@ QT )@@G@@IF (KNTR.GE.KNTLIM) GO TO 194 @^@[@@ 190 LOC=NODPLC(LOC) @#@[@@ QU )@@G@@GO TO 188 @ @[@@ 192 IF (KNTR.EQ.0) GO TO 196@A@[@@ 194 IF (ITITLE.EQV )@@G@@Q.0) WRITE (6,187)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAQW )@@G@@M(I),I=1,KNTR) @C@[@@ WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) QX )@@G@@@]@[@@ KNTR=0@ @[@@ IF (LOC.NE.0) GO TO 190 @[@[@@C @C@[@@QY )@@G@@C NONLINEAR CURRENT CONTROLLED VOLTAGE SOURCES @[@[@@C @A@[@@ 196 QZ )@@G@@IF (JELCNT(8).EQ.0) GO TO 210 @#@[@@ ITITLE=0 @F@[@@ 197 FORMATRA )@@G@@(1H0,/,^0**** CURRENT-CONTROLLED VOLTAGE SOURCES^) @^@[@@ LOC=LORB )@@G@@CATE(8) @]@[@@ KNTR=0@ @[@@ 198 IF (LOC.EQ.0) GO TO 202 @#@[@@RC )@@G@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(LOC+1)@ @[@@ LOCT=LX0+NODRD )@@G@@PLC(LOC+13) @ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AV1(KNTR)=VARE )@@G@@LUE(LOCT) @ @[@@ AI1(KNTR)=VALUE(LOCT+1) @A@[@@ IF (KNTR.GE.RF )@@G@@KNTLIM) GO TO 204 @^@[@@ 200 LOC=NODPLC(LOC) @#@[@@ GO TO 198 RG )@@G@@@ @[@@ 202 IF (KNTR.EQ.0) GO TO 210@A@[@@ 204 IF (ITITLE.EQ.0) WRITE (RH )@@G@@6,197)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),I=1,KNTRI )@@G@@R) @C@[@@ WRITE (6,161) ASRCV,(AV1(I),I=1,KNTR) @C@[@@ RJ )@@G@@WRITE (6,171) ASRCI,(AI1(I),I=1,KNTR) @]@[@@ KNTR=0@ @[@@ RK )@@G@@IF (LOC.NE.0) GO TO 200 @[@[@@C @]@[@@C DIODES @[@[@@C @A@[@@RL )@@G@@ 210 IF (JELCNT(11).EQ.0) GO TO 300@#@[@@ ITITLE=0 @A@[@@ 211 RM )@@G@@FORMAT(1H0,/,^0**** DIODES^) @^@[@@ LOC=LOCATE(11) @]@[@@ RN )@@G@@KNTR=0@ @[@@ 220 IF (LOC.EQ.0) GO TO 240 @#@[@@ KNTR=KNTR+1 @^@[@@RO )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ RP )@@G@@NODE2=NODPLC(LOC+3) @^@[@@ LOCM=NODPLC(LOC+5)@ @[@@ LOCM=NRQ )@@G@@ODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+11) @ @[@@ ANAM(KRR )@@G@@NTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LOCM) @ @[@@ CD(KNTRS )@@G@@R)=VALUE(LOCT+1) @D@[@@ VD(KNTR)=VALUE(LVNIM1+NODE1)-VALUE(LVNIM1+RT )@@G@@NODE2)@A@[@@ IF (MODEDC.NE.1) GO TO 225 @A@[@@ REQ(KNTR)=1.RU )@@G@@0/VALUE(LOCT+2) @ @[@@ CAP(KNTR)=VALUE(LOCT+4) @A@[@@ 225 IF (KNRV )@@G@@TR.GE.KNTLIM) GO TO 250 @^@[@@ 230 LOC=NODPLC(LOC) @#@[@@ GO TO RW )@@G@@220 @ @[@@ 240 IF (KNTR.EQ.0) GO TO 300@A@[@@ 250 IF (ITITLE.EQ.0) WRX )@@G@@RITE (6,211)@#@[@@ ITITLE=1 @B@[@@ WRITE (6,151) (ANAM(I),IRY )@@G@@=1,KNTR) @B@[@@ WRITE (6,251) (AMOD(I),I=1,KNTR) @A@[@@ 251 RZ )@@G@@FORMAT(^0MODEL ^,12(2X,A8)) @B@[@@ WRITE (6,171) AID,(CD(I),I=1,KSA )@@G@@NTR) @B@[@@ WRITE (6,161) AVD,(VD(I),I=1,KNTR) @A@[@@ IF (MOSB )@@G@@DEDC.NE.1) GO TO 260 @B@[@@ WRITE (6,171) AREQ,(REQ(I),I=1,KNTR)SC )@@G@@@B@[@@ WRITE (6,171) ACAP,(CAP(I),I=1,KNTR)@]@[@@ 260 KNTR=0@ @[@@SD )@@G@@ IF (LOC.NE.0) GO TO 230 @[@[@@C @A@[@@C BIPOLAR JUNCTION TRANSE )@@G@@SISTORS @[@[@@C @A@[@@ 300 IF (JELCNT(12).EQ.0) GO TO 400@#@[@@SF )@@G@@ ITITLE=0 @E@[@@ 301 FORMAT(1H0,/,^0**** BIPOLAR JUNCTION TRANSSG )@@G@@ISTORS^) @^@[@@ LOC=LOCATE(12) @]@[@@ KNTR=0@ @[@@ 320 SH )@@G@@IF (LOC.EQ.0) GO TO 340 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(SI )@@G@@LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3SJ )@@G@@) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ LOCM=NODPLC(LOC+8)SK )@@G@@@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NODPLC(LOCM+1) SL )@@G@@@ @[@@ LOCT=LX0+NODPLC(LOC+22) @ @[@@ ANAM(KNTR)=VALUE(LOCV) SM )@@G@@@ @[@@ AMOD(KNTR)=VALUE(LOCM) @A@[@@ CB(KNTR)=TYPE*VALUE(LOCTSN )@@G@@+3) @A@[@@ CC(KNTR)=TYPE*VALUE(LOCT+2) @E@[@@ VBE(KNTR)=VASO )@@G@@LUE(LVNIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@ VBC(KNTR)=VALUE(LVSP )@@G@@NIM1+NODE2)-VALUE(LVNIM1+NODE1) @A@[@@ VCE(KNTR)=VBE(KNTR)-VBC(SQ )@@G@@KNTR) @G@[@@ BETADC(KNTR)=CC(KNTR)/SIGN(AMAX1(ABS(CB(KNTR)),1.0E-20SR )@@G@@),CB(KNTR)) @A@[@@ IF (MODEDC.NE.1) GO TO 325 @A@[@@ RPI(KNSS )@@G@@TR)=1.0/VALUE(LOCT+4) @ @[@@ GM(KNTR)=VALUE(LOCT+6) @A@[@@ ST )@@G@@RO(KNTR)=1.0/VALUE(LOCT+7) @ @[@@ CPI(KNTR)=VALUE(LOCT+9) @ @[@@SU )@@G@@ CMU(KNTR)=VALUE(LOCT+11)@B@[@@ BETAAC(KNTR)=GM(KNTR)*RPI(KNTRSV )@@G@@) @F@[@@ FT(KNTR)=GM(KNTR)/(TWOPI*AMAX1(CPI(KNTR)+CMU(KNTR),1.0SW )@@G@@E-20))@A@[@@ 325 IF (KNTR.GE.KNTLIM) GO TO 350 @^@[@@ 330 LOC=NODPLC(LSX )@@G@@OC) @#@[@@ GO TO 320 @ @[@@ 340 IF (KNTR.EQ.0) GO TO 400@A@[@@SY )@@G@@ 350 IF (ITITLE.EQ.0) WRITE (6,301)@#@[@@ ITITLE=1 @B@[@@ SZ )@@G@@WRITE (6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE (6,251) (AMOD(I),ITA )@@G@@=1,KNTR) @B@[@@ WRITE (6,171) AIB,(CB(I),I=1,KNTR) @B@[@@ TB )@@G@@WRITE (6,171) AIC,(CC(I),I=1,KNTR) @B@[@@ WRITE (6,161) AVBE,(VBE(TC )@@G@@I),I=1,KNTR)@B@[@@ WRITE (6,161) AVBC,(VBC(I),I=1,KNTR)@B@[@@ TD )@@G@@WRITE (6,161) AVCE,(VCE(I),I=1,KNTR)@C@[@@ WRITE (6,161) ABETAD,(BETE )@@G@@TADC(I),I=1,KNTR) @A@[@@ IF (MODEDC.NE.1) GO TO 360 @B@[@@ TF )@@G@@WRITE (6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE (6,171) ARPI,(RPI(TG )@@G@@I),I=1,KNTR)@B@[@@ WRITE (6,171) ARO,(RO(I),I=1,KNTR) @B@[@@ TH )@@G@@WRITE (6,171) ACPI,(CPI(I),I=1,KNTR)@B@[@@ WRITE (6,171) ACMU,(CMU(TI )@@G@@I),I=1,KNTR)@C@[@@ WRITE (6,161) ABETAA,(BETAAC(I),I=1,KNTR) @B@[@@TJ )@@G@@ WRITE (6,171) AFT,(FT(I),I=1,KNTR) @]@[@@ 360 KNTR=0@ @[@@ TK )@@G@@IF (LOC.NE.0) GO TO 330 @[@[@@C @]@[@@C JFETS @[@[@@C @A@[@@TL )@@G@@ 400 IF (JELCNT(13).EQ.0) GO TO 500@#@[@@ ITITLE=0 @A@[@@ 401 TM )@@G@@FORMAT(1H0,/,^0**** JFETS^) @^@[@@ LOC=LOCATE(13) @]@[@@ TN )@@G@@KNTR=0@ @[@@ 420 IF (LOC.EQ.0) GO TO 440 @#@[@@ KNTR=KNTR+1 @^@[@@TO )@@G@@ LOCV=NODPLC(LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ TP )@@G@@NODE2=NODPLC(LOC+3) @ @[@@ NODE3=NODPLC(LOC+4) @^@[@@ TQ )@@G@@LOCM=NODPLC(LOC+7)@ @[@@ TYPE=NODPLC(LOCM+2) @ @[@@ LOCM=NTR )@@G@@ODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+19) @ @[@@ ANAM(KTS )@@G@@NTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LOCM) @D@[@@ CD(KNTTT )@@G@@R)=TYPE*(VALUE(LOCT+3)-VALUE(LOCT+4)) @E@[@@ VGS(KNTR)=VALUE(LVTU )@@G@@NIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@ VDS(KNTR)=VALUE(LVNIM1+NTV )@@G@@ODE1)-VALUE(LVNIM1+NODE3) @A@[@@ IF (MODEDC.NE.1) GO TO 425 TW )@@G@@@ @[@@ GM(KNTR)=VALUE(LOCT+5) @ @[@@ GDS(KNTR)=VALUE(LOCT+6) TX )@@G@@@ @[@@ CGS(KNTR)=VALUE(LOCT+9) @ @[@@ CGD(KNTR)=VALUE(LOCT+11)TY )@@G@@@A@[@@ 425 IF (KNTR.GE.KNTLIM) GO TO 450 @^@[@@ 430 LOC=NODPLC(LOC) TZ )@@G@@@#@[@@ GO TO 420 @ @[@@ 440 IF (KNTR.EQ.0) GO TO 500@A@[@@ 450 UA )@@G@@IF (ITITLE.EQ.0) WRITE (6,401)@#@[@@ ITITLE=1 @B@[@@ WRITE UB )@@G@@(6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE (6,251) (AMOD(I),I=1,KNTUC )@@G@@R) @B@[@@ WRITE (6,171) AID,(CD(I),I=1,KNTR) @B@[@@ WRITE UD )@@G@@(6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVDS,(VDS(I),I=1UE )@@G@@,KNTR)@A@[@@ IF (MODEDC.NE.1) GO TO 460 @B@[@@ WRITE (6,171UF )@@G@@) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE (6,171) AGDS,(GDS(I),I=1,KNTR)UG )@@G@@@B@[@@ WRITE (6,171) ACGS,(CGS(I),I=1,KNTR)@B@[@@ WRITE (6,171UH )@@G@@) ACGD,(CGD(I),I=1,KNTR)@]@[@@ 460 KNTR=0@ @[@@ IF (LOC.NE.0) GO TUI )@@G@@O 430 @[@[@@C @]@[@@C MOSFETS @[@[@@C @A@[@@ 500 IF (JELCNT(1UJ )@@G@@4).EQ.0) GO TO 600@#@[@@ ITITLE=0 @A@[@@ 501 FORMAT(1H0,/,^0***UK )@@G@@* MOSFETS^) @^@[@@ LOC=LOCATE(14) @]@[@@ KNTR=0@ @[@@ 520 UL )@@G@@IF (LOC.EQ.0) GO TO 540 @#@[@@ KNTR=KNTR+1 @^@[@@ LOCV=NODPLC(UM )@@G@@LOC+1)@ @[@@ NODE1=NODPLC(LOC+2) @ @[@@ NODE2=NODPLC(LOC+3UN )@@G@@) @ @[@@ NODE3=NODPLC(LOC+4) @ @[@@ NODE4=NODPLC(LOC+5UO )@@G@@) @^@[@@ LOCM=NODPLC(LOC+8)@ @[@@ TYPE=NODPLC(LOCM+2) UP )@@G@@@ @[@@ LOCM=NODPLC(LOCM+1) @ @[@@ LOCT=LX0+NODPLC(LOC+26) UQ )@@G@@@ @[@@ ANAM(KNTR)=VALUE(LOCV) @ @[@@ AMOD(KNTR)=VALUE(LOCM) UR )@@G@@@A@[@@ CD(KNTR)=TYPE*VALUE(LOCT+4) @E@[@@ VGS(KNTR)=VALUE(LVUS )@@G@@NIM1+NODE2)-VALUE(LVNIM1+NODE3) @E@[@@ VDS(KNTR)=VALUE(LVNIM1+NUT )@@G@@ODE1)-VALUE(LVNIM1+NODE3) @E@[@@ VBS(KNTR)=VALUE(LVNIM1+NODE4)-UU )@@G@@VALUE(LVNIM1+NODE3) @A@[@@ IF (MODEDC.NE.1) GO TO 525 @ @[@@UV )@@G@@ VTH(KNTR)=VALUE(LOCV+9) @A@[@@ VDSAT(KNTR)=VALUE(LOCV+10) UW )@@G@@@ @[@@ GM(KNTR)=VALUE(LOCT+7) @ @[@@ GDS(KNTR)=VALUE(LOCT+8) UX )@@G@@@ @[@@ GMBS(KNTR)=VALUE(LOCT+9)@ @[@@ CBD(KNTR)=VALUE(LOCT+12)UY )@@G@@@ @[@@ CBS(KNTR)=VALUE(LOCT+14)@ @[@@ CGS(KNTR)=VALUE(LOCT+16)UZ )@@G@@@ @[@@ CGD(KNTR)=VALUE(LOCT+18)@ @[@@ CGB(KNTR)=VALUE(LOCT+20)VA )@@G@@@A@[@@ 525 IF (KNTR.GE.KNTLIM) GO TO 550 @^@[@@ 530 LOC=NODPLC(LOC) VB )@@G@@@#@[@@ GO TO 520 @ @[@@ 540 IF (KNTR.EQ.0) GO TO 600@A@[@@ 550 VC )@@G@@IF (ITITLE.EQ.0) WRITE (6,501)@#@[@@ ITITLE=1 @B@[@@ WRITE VD )@@G@@(6,151) (ANAM(I),I=1,KNTR) @B@[@@ WRITE (6,251) (AMOD(I),I=1,KNTVE )@@G@@R) @B@[@@ WRITE (6,171) AID,(CD(I),I=1,KNTR) @B@[@@ WRITE VF )@@G@@(6,161) AVGS,(VGS(I),I=1,KNTR)@B@[@@ WRITE (6,161) AVDS,(VDS(I),I=1VG )@@G@@,KNTR)@B@[@@ WRITE (6,161) AVBS,(VBS(I),I=1,KNTR)@A@[@@ IF (MOVH )@@G@@DEDC.NE.1) GO TO 560 @B@[@@ WRITE (6,161) AVTH,(VTH(I),I=1,KNTR)VI )@@G@@@C@[@@ WRITE (6,161) AVDSAT,(VDSAT(I),I=1,KNTR) @B@[@@ WRITE VJ )@@G@@(6,171) AGM,(GM(I),I=1,KNTR) @B@[@@ WRITE (6,171) AGDS,(GDS(I),I=1VK )@@G@@,KNTR)@C@[@@ WRITE (6,171) AGMBS,(GMBS(I),I=1,KNTR) @B@[@@ VL )@@G@@WR