home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / eepub12 / suspend.for < prev    next >
Text File  |  1986-06-03  |  25KB  |  844 lines

  1.  
  2.       PROGRAM SUSPEND
  3.       REAL KX
  4. C
  5.       CALL KOPF
  6. C
  7. C     INPUT OF PARAMETERS
  8.       CALL swahl0(EK,G1X,D1X,G2X)
  9. C
  10. C
  11. C
  12. C     MENUE
  13. C
  14.    99 WRITE(*,100)
  15.   100 FORMAT(1H1,////////////'       (C) INSTITUT FUER HOCHFREQUENZ',
  16.      1'TECHNIK UNIVERSITAET STUTTGART FRG',/'                         ',
  17.      2'      F. ENDRESS / U. BOCHTLER',///'                  S U S ',
  18.      3'P E N D E D   S U B S T R A T E',///,
  19.      4'                      SELECT ACTIVITY :',///,
  20.      5'            0   INPUT: NEW PARAMETERS',//,
  21.      6'            1   ANALYSIS OF A SINGLE LINE',//,
  22.      7'            2   SYNTHESIS OF A SINGLE LINE',//,
  23.      8'            3   ANALYSIS OF A COUPLER',//,
  24.      9'            4   SYNTHESIS OF A COUPLER',//,
  25.      1'            5   END OF PROGRAM',///)
  26.       READ(*,120) IA
  27.   120 FORMAT(I4)
  28.       A=IA*1.0
  29.       IF(A.EQ.5) GOTO 2
  30.       IF(A.EQ.0) CALL swahl0(EK,G1X,D1X,G2X)
  31.       IF(A.EQ.1) CALL swahl1(EK,G1X,D1X,G2X)
  32.       IF(A.EQ.2) CALL swahl2(EK,G1X,D1X,G2X)
  33.       IF(A.EQ.3) CALL swahl3(EK,G1X,D1X,G2X)
  34.       IF(A.EQ.4) CALL swahl4(EK,G1X,D1X,G2X)
  35.       GOTO 99
  36.     2 CONTINUE
  37.       STOP
  38.       END
  39. C
  40. C
  41. C     INITIAL TEXT
  42. C
  43.       SUBROUTINE KOPF
  44.       WRITE(*,100)
  45.   100 FORMAT(1H1,////////////'       (C) INSTITUT FUER HOCHFREQUENZ',
  46.      1'TECHNIK UNIVERSITAET STUTTGART, FRG',/'                       ',
  47.      2'      F. ENDRESS / U. BOCHTLER',///'                  S U S ',
  48.      3'P E N D E D   S U B S T R A T E',///' PROGRAM FOR DETERMINATION',
  49.      4' OF CHARACTERISTIC IMPEDANCE AND GEOMETRIC',/' DIMENSIONS OF A',
  50.      5' SUSPENDED-SUBSTRATE-LINE. THE  LINE IS SUSPENDED IN THE'/,
  51.      6' MIDDLE OF A HOUSING. WITH ANALYSIS AND SYNTHESIS YOU WILL GET',
  52.      7' SINGLE-LINES',/' AND LINE-COUPLERS. YOU CAN CHOSE YOUR OWN',
  53.      8' PARAMETERS OR IMPLEMENTED SETS OF',/' PARAMETERS BELONGING',
  54.      9' TO DIFFERENT SUBSTRATES.                                    ',
  55.      2'                       ',/'        '/,
  56.      9' LITERATURE:      J.SMITH, THE EVEN- AND ODD-MODE CAPACITANCE',/
  57.      7'                  PARAMETERS FOR COUPLED LINES IN SUSPENDED',/
  58.      2'                  SUBSTRATE, IEEE, MTT 1971, PP 424-431',/
  59.      2///' CONTINUE WITH: 1',
  60.      3' <RETURN>'//)
  61.       READ(*,120) IA
  62.   120 FORMAT(I4)
  63.       A=IA*1.0
  64.       RETURN
  65.       END
  66. C
  67. C
  68. C     WAHL 0: INPUT NEW PARAMETERS
  69.  
  70. C     D1X:    THICKNESS OF SUBSTRATE
  71. C     EK:     REL. PERMITTIVITY OF SUSTRATE
  72. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  73. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  74. C
  75.       SUBROUTINE swahl0(EK,G1X,D1X,G2X)
  76.       CALL WYY(B)
  77.       IF(B.EQ.2) GOTO 1
  78.       CALL WHL0(EK,G1X,D1X,G2X)
  79.       GOTO 2
  80.     1 CALL WAHL1(EK,G1X,D1X,G2X)
  81.     2 RETURN
  82.       END
  83.       SUBROUTINE WHL0(EK,G1X,D1X,G2X)
  84.       WRITE(*,100)
  85.   100 FORMAT(1H1,///////////////'  PLEASE ENTER YOUR PARAMETERS   ',///)
  86.       WRITE(*,103)
  87.   103 FORMAT(1H ,' PERMITTIVITY OF SUBSTRATE             ER='\)
  88.       READ(*,120) EK
  89.       WRITE(*,105)
  90.   105 FORMAT(1H ,' DISTANCE TO TOP GROUND-PLANE IN MM   G2X='\)
  91.       READ(*,120) G2X
  92.       WRITE(*,106)
  93.   106 FORMAT(1H ,' DISTANCE TO BOTTOM PLANE IN MM       G1X='\)
  94.       READ(*,120) G1X
  95.       WRITE(*,107)
  96.   107 FORMAT(1H ,' THICKNESS OF SUBSTRATE IN MM         D1X='\)
  97.       READ(*,120) D1X
  98.   120 FORMAT(F14.7)
  99.       RETURN
  100.       END
  101. C
  102. C
  103. C     OWN OR IMPLEMENTED PARAMETERS ?
  104. C
  105.       SUBROUTINE WYY(B)
  106.       WRITE(*,100)
  107.   100 FORMAT(1H1,///////////////'            SELECT ACTIVITY:     :',
  108.      1'     INPUT OF....'////'                  <1>',
  109.      2'     OWN PARAMETERS       ',/////'                  <2>',
  110.      3'    IMPLEMENTED PARAMETERS     ?'///////' PLEASE ENTER  :',///)
  111.       READ(*,120) IB
  112.   120 FORMAT(I4)
  113.       B=IB*1.0
  114.       RETURN
  115.       END
  116. C
  117. C
  118. C     IMPLEMENTED SETS OF PARAMETERS
  119. C
  120. C     D1X:    THICKNESS OF SUBSTRATE
  121. C     EK:     RELATIVE PERMITTIVITY
  122. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  123. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  124. C
  125.       SUBROUTINE WAHL1(EK,G1X,D1X,G2X)
  126.       REAL EK,G1X,G2X,D1X
  127.       DIMENSION PARAM(4,10)
  128. C     EACH OF THE FOLLOWING LINES IS ONE SET OF PARAMETERS
  129. C     ORDER: EK,G1X,D1X,G2X
  130. C     IF YOU ADD A NEW SET YOU SHOULD INCREMENT II
  131.       DATA PARAM(1,1),param(2,1),param(3,1),param(4,1)
  132.      1/9.9,0.4325,0.635,0.4325/
  133.       DATA PARAM(1,2),param(2,2),param(3,2),param(4,2)
  134.      1/9.9,0.683,0.635,0.683/
  135.       DATA PARAM(1,3),param(2,3),param(3,3),param(4,3)
  136.      1/2.2,1.0,1.27,1.0/
  137.       DATA PARAM(1,4),param(2,4),param(3,4),param(4,4)
  138.      1/6.0,1.0,1.270,1.0/
  139.       DATA PARAM(1,5),param(2,5),param(3,5),param(4,5)
  140.      1/10.5,0.4325,0.635,0.4325/
  141.       II=5
  142.       WRITE (*,100)
  143.   100 FORMAT(1H1,///////////////'                PARAMETERS   ',/)
  144.       WRITE(*,103)
  145.   103 FORMAT(1H ,' PERMITTIVITY OF SUBSTRATE                   ER')
  146.       WRITE(*,105)
  147.   105 FORMAT(1H ,' DISTANCE TO TOP GROUND-PLANE IN MM         G2X')
  148.       WRITE(*,106)
  149.   106 FORMAT(1H ,' DISTANCE TO BOTTOM GROUND-PLANE IN MM      G1X')
  150.       WRITE(*,107)
  151.   107 FORMAT(1H ,' THICKNESS OF SUBSTRATE IN MM               D1X',//,)
  152.       I=1
  153.    99 WRITE(*,98) I,PARAM(1,I),PARAM(2,I),PARAM(3,I),PARAM(4,I)
  154.    98 FORMAT(1H ,' SET: ',I2,'       ER=',F7.4,'       G1X=',F7.4,
  155.      1'      D1X=',F7.4,'      G2X=',F7.4,)
  156.       I=I+1
  157.       IF(I.LE.II) GOTO 99
  158.       WRITE(*,108)
  159.   108 FORMAT(1H ,////' SELECTED:            '///)
  160.       READ(*,120) NWAHL
  161.   120 FORMAT(I4)
  162.       EK=PARAM(1,NWAHL)
  163.       G1X=PARAM(2,NWAHL)
  164.       D1X=PARAM(3,NWAHL)
  165.       G2X=PARAM(4,NWAHL)
  166.       RETURN
  167.       END
  168. C
  169. C
  170. C
  171. C     WAHL 1: ANALYSIS OF A SINGLE LINE
  172. C
  173. C     D1X:    THICKNESS OF SUBSTRATE
  174. C     EK:     RELATIVE PERMITTIVITY
  175. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  176. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  177. C
  178.       SUBROUTINE swahl1(EK,G1X,D1X,G2X)
  179.       INEXT=0
  180.     1 CONTINUE
  181.       CALL EINGB1(WX)
  182.       CALL SINLIN(WX,EK,G1X,D1X,G2X,CX,EKE,ZLX)
  183.       CALL AUSGB1(ZLX,CX,EKE,WX,INEXT)
  184.       IF (INEXT.EQ.1) GOTO 1
  185.       RETURN
  186.       END
  187. C
  188. C
  189. C     INPUT OF LINE-WIDTH
  190. C
  191.       SUBROUTINE EINGB1(WX)
  192.       WRITE(*,101)
  193.   101 FORMAT(1H ,////' LINE-WIDTH IN MM                       WX='\)
  194.       READ(*,120) WX
  195.   120 FORMAT(F14.7)
  196.       RETURN
  197.       END
  198. C
  199. C
  200. C
  201. C     OUTPUT OF COMPUTED VALUES:
  202. C
  203. C     CX:    CAPACITANCE IN PF/CM
  204. C     EKE:   EFFECTIVE REL.PERMITTIVITY OF SUBSTRATE
  205. C     WX:    LINE-WIDTH
  206. C     ZLX:   CHARACTERISTIC IMPEDANCE IN OHM
  207. C
  208.       SUBROUTINE AUSGB1(ZLX,CX,EKE,WX,INEXT)
  209.       WRITE(*,100) WX,ZLX,CX,EKE
  210.   100 FORMAT(1H ,//'  LINE-WIDTH IN MM                     W = ',F12.4/,
  211.      1'  CHARACTERISTIC IMPEDANCE             Z = ',F12.1,' OHM',/,
  212.      2'  CAPACITANCE PER UNIT LENGTH          C = ',F12.4,' PF/CM',/,
  213.      3'  EFFECTIVE PERMITTIVITY                 = ',F12.4,//,
  214.      4' NEW VALUES <1>  ,  BACK TO MENUE <0> '//)
  215.       READ(*,120) INEXT
  216.   120 FORMAT(I4)
  217.       RETURN
  218.       END
  219. C
  220. C
  221. C
  222. C     WAHL 2: SYNTHESIS OF A SINGLE LINE
  223. C
  224. C     D1X:    THICKNESS OF SUBSTRATE
  225. C     EK:     RELATIVE PERMITTIVITY
  226. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  227. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  228. C
  229.       SUBROUTINE swahl2(EK,G1X,D1X,G2X)
  230.       INEXT=0
  231.     1 CONTINUE
  232.       Q=0
  233.       CALL EINGB2(ZLS)
  234.       CALL ITERAT(ZLS,EK,G1X,D1X,G2X,ZLX,CX,EKE,WX,Q)
  235.       IF (Q.EQ.0) GOTO 2
  236.       WRITE(*,100)
  237.   100 FORMAT(1H ,'   COMPUTATION NOT POSSIBLE   ! '//)
  238.     2 CALL AUSGB2(ZLX,CX,EKE,WX,INEXT)
  239.       IF (INEXT.EQ.1) GOTO 1
  240.       RETURN
  241.       END
  242. C
  243. C
  244. C     INPUT OF PARAMETERS
  245. C
  246.       SUBROUTINE EINGB2(ZLS)
  247.       WRITE(*,101)
  248.   101 FORMAT(1H ,/////' DESIRED CHARACTERISTIC IMPEDANCE         ZL='\)
  249.       READ(*,120) ZLS
  250.   120 FORMAT(F14.7)
  251.       RETURN
  252.       END
  253. C
  254. C
  255. C     SUBROUTINE: ITERATIVE COMPUTATION OF CHARACTERISTIC IMPEDANCE
  256. C
  257. C     D1X:    THICKNESS OF SUBSTRATE
  258. C     EK:     REL.PERMITTIVITY OF SUBSTRATE
  259. C     EKE:    EFF.    '           '   '
  260. C     GX:     GAP WIDTH
  261. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  262. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  263. C     WX:     LINE WIDTH
  264. C     ZLS:    DESIRED -CHARACTERISTIC IMPEDANCE IN OHM
  265. C     ZLX:    CHARACTERISTIC IMPEDANCE IN OHM
  266. C
  267.       SUBROUTINE ITERAT(ZLS,EK,G1X,D1X,G2X,ZLX,CX,EKE,WX,Q)
  268.       XL=0.01
  269.       XR=6.0
  270.       DELTA=0.05
  271.       CALL SINLIN(XR,EK,G1X,D1X,G2X,CX,EKE,ZLX)
  272.       FXR=ZLX-ZLS
  273.       CALL SINLIN(XL,EK,G1X,D1X,G2X,CX,EKE,ZLX)
  274.       FXL=ZLX-ZLS
  275.       IF(FXL*FXR.LT.0.0) GOTO 1
  276.       Q=1
  277.       RETURN
  278.     1 X=XR-(XR-XL)/2.
  279.       CALL SINLIN(X,EK,G1X,D1X,G2X,CX,EKE,ZLX)
  280.       FX=ZLX-ZLS
  281.       IF(ABS(FX).LT.DELTA) GOTO 2
  282.       IF(FX*FXR.LT.0.0) GOTO 3
  283.       XR=X
  284.       FXR=FX
  285.       GOTO 1
  286.     3 XL=X
  287.       FXL=FX
  288.       GOTO 1
  289.     2 WX=X
  290.       RETURN
  291.       END
  292. C
  293. C
  294. C
  295. C     OUTPUT OF COMPUTED VALUES , WAHL 2
  296. C
  297. C     CX:    CAPACITANCE IN PF/CM
  298. C     EKE:   EFFECTIVE REL.PERMITTIVITY OF SUBSTRATE
  299. C     WX:    LINE-WIDTH
  300. C     ZLX:   CHARACTERISTIC IMPEDANCE IN OHM
  301. C
  302.       SUBROUTINE AUSGB2(ZLX,CX,EKE,WX,INEXT)
  303.       WRITE(*,100) WX,ZLX,CX,EKE
  304.   100 FORMAT(1H ,//'  LINE-WIDTH IN MM                   W = ',F12.4/,
  305.      1'  CHARACTERISTIC IMPEDANCE           Z = ',F12.1,' OHM',/,
  306.      2'  CAPACITANCE PER UNIT LENGTH        C = ',F12.4,' PF/CM',/,
  307.      3'  EFFECTIVE PERMITTIVITY               = ',F12.4,//,
  308.      4' NEW VALUES <1>  ,  BACK TO MENUE <0> '/)
  309.       READ(*,120) INEXT
  310.   120 FORMAT(I4)
  311.       RETURN
  312.       END
  313. C
  314. C
  315. C
  316. C     WAHL 3: ANALYSIS OF A STRIPLINE-COUPLER
  317. C
  318. C     D1X:    THICKNESS OF SUBSTRATE
  319. C     EK:     RELATIVE PERMITTIVITY
  320. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  321. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  322. C
  323.       SUBROUTINE swahl3(EK,G1X,D1X,G2X)
  324.       REAL KX
  325.    44 CALL EINGB3(WX,GX)
  326.       CALL TWOLIN(WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,ZOX,ZEX,
  327.      1ZLX,KX,COX,CEX)
  328.       EKE=SQRT(EKEO*EKEE)
  329.       CALL AUSGB3(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEO,EKEE)
  330.       IF(A.EQ.1) GOTO 44
  331.       RETURN
  332.       END
  333. C
  334. C
  335. C     INPUT ,  WAHL 3
  336. C
  337.       SUBROUTINE EINGB3(WX,GX)
  338.       REAL KX
  339.       WRITE(*,100)
  340.   100 FORMAT(1H1,/////////////////'                PLEASE ENTER:',//)
  341.     2 WRITE (*,105)
  342.   105 FORMAT(1H ,'  LINE WIDTH IN MM                  WX='\)
  343.       READ(*,120) WX
  344.       IF(WX.GT.0.005) GOTO 3
  345.       WRITE(*,107)
  346.   107 FORMAT(1H ,//' ETCHING NOT POSSIBLE !!'//)
  347.       GOTO 2
  348.     3 WRITE (*,106)
  349.   106 FORMAT(1H ,'  GAP WIDTH IN MM                   GX='\)
  350.       READ(*,120) GX
  351.   120 FORMAT(F14.7)
  352.       IF(GX.GT.0.005) GOTO 4
  353.       WRITE(*,108)
  354.   108 FORMAT(1H ,//' ETCHING NOT POSSIBLE !!'//)
  355.       GOTO 3
  356.     4 RETURN
  357.       END
  358. C
  359. C
  360. C     OUTPUT OF COMPUTED VALUES
  361. C
  362.       SUBROUTINE AUSGB3(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEO,EKEE)
  363.       REAL KX
  364.       WRITE (*,100) ZLX,ZEX,ZOX,KX,WX,GX,EKEE,EKEO,EKE
  365.   100 FORMAT(1H ,//////////'             RESULTS:          ',///,
  366.      1'         CHARACTERISTIC IMPEDAMCE        ZL=',F12.4/,
  367.      1'              > EVEN MODE                ZE=',F12.4/,
  368.      1'              > ODD MODE                 ZO=',F12.4/,
  369.      1'         COUPLING COEFFICIENT             K=',F12.4/,
  370.      2'         LINE-WIDTH                       W=',F12.4/,
  371.      3'         GAP-WIDTH                        G=',F12.4/,
  372.      9'         EPPS EFF EVEN MODE              EE=',F12.4/,
  373.      8'         EPPS EFF ODD MODE               EO=',F12.4/,
  374.      2'         EPPS EFF AVERAGE                ER=',F12.4/,
  375.      4///' NEW VALUES <1>  ,  BACK TO MENUE <0>'////)
  376.       READ(*,120) IA
  377.   120 FORMAT(I4)
  378.       A=IA*1.0
  379.       RETURN
  380.       END
  381. C
  382. C
  383. C     WAHL 4:  SYNTHESIS OF A STRIPLINE-COUPLER
  384. C
  385. C     D1X:    THICKNESS OF SUBSTRATE
  386. C     EK:     RELATIVE PERMITTIVITY
  387. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  388. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  389. C
  390.       SUBROUTINE swahl4(EK,G1X,D1X,G2X)
  391.       REAL KX
  392.    44 CALL EINGB4(ZLX,KX,ZEXS,ZOXS,WX,GX)
  393.       IS=1
  394.       IF(ABS(ZEXS/ZOXS-1).GT.0.05) GOTO 45
  395.       WRITE (*,99)
  396.    99 FORMAT(1H ,///' COUPLING COEFFICIENT TOO SMALL PLEASE USE A S',
  397.      1' INGLE LINE           '//'         ! ',///,
  398.      2' NEW VALUES <1>  ,  BACK TO MENUE <0>',///)
  399.       READ(*,120) IA
  400.       A=IA*1.0
  401.       IF(A.EQ.0) RETURN
  402.       GOTO 44
  403.    45 CALL STARTW(ZLS,EK,G1X,D1X,G2X,ZLX,CX,EKE,WX,GX,
  404.      1ZOXS,ZEXS)
  405.       CALL TWOLIN(WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,ZOX,ZEX,ZLX,
  406.      1KX,COX,CEX)
  407.       EKE=SQRT(EKEO*EKEE)
  408.       CALL AUSGB4(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEE,EKEO,IS)
  409.       GOTO 17
  410.    17 CONTINUE
  411.    19 IS=IS+1
  412.       IF(IS.EQ.10)GOTO 23
  413.       CALL IKERAT(EK,ZEXS,ZOXS,ZEX,ZOX,WX,GX,WXST,GXST,
  414.      1G1X,D1X,G2X)
  415.       CALL TWOLIN(WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,ZOX,ZEX,ZLX,
  416.      1KX,COX,CEX)
  417.       CALL AUSGB4(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEE,EKEO,IS)
  418.       IF(ABS(ZOXS/ZOX-1).GT.0.002) GOTO 19
  419.       IF(ABS(ZEXS/ZEX-1).GT.0.002) GOTO 19
  420.       GOTO27
  421.    23 WRITE(*,100)
  422.   100 FORMAT(1H ,' TIME OUT AFTER 10 ITERATIONS-STEPS')
  423.       EKE=(1/(ZOX*ZEX)*(ZOXS*SQRT(EKEO)+ZEXS*SQRT(EKEE)))**2
  424.    27 CALL AUSGB4(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEE,EKEO,IS)
  425.       WRITE (*,101)
  426.   101 FORMAT(1H ,///' NEW VALUES <1>  ,  BACK TO MENUE <0>'////)
  427.       READ(*,120) IA
  428.   120 FORMAT(I4)
  429.       A=IA*1.0
  430.       IF(A.EQ.1) GOTO 44
  431.       RETURN
  432.       END
  433. C
  434. C
  435. C     ITERATION-PROCEDURE  STRIPLINECOUPLER
  436. C
  437. C     D1X:    THICKNESS OF SUBSTRATE
  438. C     EK:     REL.PERMITTIVITY OF SUBSTRATE
  439. C     GX:     GAP WIDTH
  440. C     GXST:   START-GAP WIDTH
  441. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  442. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  443. C     WX:     LINE-WIDTH
  444. C     WXST:   START-LINE-WIDTH
  445. C     ZEX:    EVEN MODE CHARACTERISTIC IMPEDANCE
  446. C     ZEXS:   DESIRED EVEN MODE CHARACTERISTIC IMPEDANCE
  447. C     ZOX:    ODD MODE CHARACTERISTIC IMPEDANCE
  448. C     ZOXS:   DESIRED ODD MODE CHARACTERISTIC IMPEDANCE
  449. C
  450.       SUBROUTINE IKERAT(EK,ZEXS,ZOXS,ZEX,ZOX,WX,GX,WXST,GXST,
  451.      1G1X,D1X,G2X)
  452.       CALL TWOLIN(1.02*WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,DZOX,DZEX,ZLX,
  453.      1KX,COX,CEX)
  454.       XWX=DZOX-ZOX
  455.       XWY=DZEX-ZEX
  456.       CALL TWOLIN(WX,1.02*GX,EK,G1X,D1X,G2X,EKEO,EKEE,DZOX,DZEX,ZLX,
  457.      1KX,COX,CEX)
  458.       XSX=DZOX-ZOX
  459.       XSY=DZEX-ZEX
  460.       XZX=ZOXS-ZOX
  461.       XZY=ZEXS-ZEX
  462.       A1=(XZX*XSY-XZY*XSX)/(XWX*XSY-XWY*XSX)
  463.       A2=(XZX*XWY-XZY*XWX)/(XSX*XWY-XSY*XWX)
  464.       WX=WX*(1+A1/50.0)
  465.       GX=GX*(1+A2/50.0)
  466.       IF(WX.LT.0.05) WX=0.05
  467.       IF(WX.GT.15.0) WX=15.0
  468.       IF(GX.LT.0.01) GX=0.01
  469.       RETURN
  470.       END
  471. C
  472. C
  473. C     COMPUTATION INITIAL VALUE
  474. C
  475. C     CEX:    EVEN MODE CAPACITANCE
  476. C     COX:    CAPACITANCE IM ODD MODEFALL
  477. C     D1X:    THICKNESS OF SUBSTRATE
  478. C     EK:     REL.PERMITTIVITY OF SUBSTRATE
  479. C     EKE:    EFF.    '           '   '
  480. C     GX:     GAP WIDTH
  481. C     GXST:   START-GAP WIDTH
  482. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  483. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  484. C     KX:     COUPLING COEFFICIENT
  485. C     WX:     LINE-WIDTH
  486. C     WXST:   START-VALUE LINE-WIDTH
  487. C     ZEXS:   DESIRED EVEN MODE CHARACTERISTIC IMPEDANCE
  488. C     ZLS:    DESIRED CHARACTERISTIC IMPEDANCE IN OHM
  489. C     ZLX:    CHARACTERISTIC IMPEDANCE IN OHM
  490. C     ZOXS:   DESIRED ODD MODE CHARACTERISTIC IMPEDANCE
  491. C
  492.       SUBROUTINE STARTW(ZLS,EK,G1X,D1X,G2X,ZLX,CX,EKE,WX,GX,
  493.      1ZOXS,ZEXS)
  494.       ZLS=(ZEXS+ZOXS)/2
  495.       CALL ITERAT(ZLS,EK,G1X,D1X,G2X,ZLX,CX,EKE,WX,Q)
  496.       GX=ZOXS/(3.0*(ZEXS-ZOXS))
  497.       CALL TWOLIN(WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,ZOX,ZEX,ZLX,
  498.      1KX,COX,CEX)
  499.       IF(WX.LT.0.05) WX=0.05
  500.       IF(WX.GT.15.0) WX=15.0
  501.       IF(GX.LT.0.05) GX=0.05
  502.       IF(GX.GT.15.0) GX=15.0
  503.       RETURN
  504.       END
  505. C
  506. C
  507. C     INPUT FUER WAHL 4
  508. C
  509.       SUBROUTINE EINGB4(ZLX,KX,ZEXS,ZOXS,WX,GX)
  510.       REAL KX
  511.       WRITE(*,100)
  512.   100 FORMAT(1H1,/////////////////'            SELECT INPUT:',//
  513.      1//'          <1>     EVEN AND ODD MODE IMPEDANCES',
  514.      2//'          <2>     CHARAC. IMPEDANCE UND COUPL. COEFFICIENT ',
  515.      3///)
  516.       READ(*,119) IA
  517.   119 FORMAT(I4)
  518.       A=IA*1.0
  519.       IF (A.EQ.1) GOTO 1
  520.       WRITE (*,101)
  521.   101 FORMAT(1H ,'   CHARACTERISTIC IMPEDANCE IN OHM            ZL='\)
  522.       READ(*,120)ZLX
  523.       WRITE (*,102)
  524.   102 FORMAT(1H ,'   COUPLING COEFFICIENT                        K='\)
  525.       READ(*,120)KX
  526.       ZEXS=ZLX*SQRT((1+KX)/(1-KX))
  527.       ZOXS=ZLX*SQRT((1-KX)/(1+KX))
  528.       GOTO 2
  529.     1 WRITE (*,103)
  530.   103 FORMAT(1H ,'  EVEN MODE IMPEDANCE IN OHM        ZEXS='\)
  531.       READ(*,120)ZEXS
  532.       WRITE (*,104)
  533.   104 FORMAT(1H ,'  ODD MODE  IMPEDANCE IN OHM        ZOXS='\)
  534.       READ(*,120)ZOXS
  535.   120 FORMAT(F14.7)
  536.     2 IF(ZEXS.GT.ZOXS) GOTO 3
  537.       WRITE (*,105)
  538.   105 FORMAT(1H ,///' EVEN MODE IMPEDANCE IS ALWAYS GREATER TH',//,
  539.      1' AN ODD MODE IMPEDANCE ! !                                 ',//,
  540.      2'                        '///)
  541.       GOTO 1
  542.     3 IF((ZEXS/ZOXS).LT.5.0) GOTO4
  543.       WRITE (*,106)
  544.   106 FORMAT(1H ,///' COMPUTATION NOT POSSIBLE  !',//)
  545.       GOTO 1
  546.     4 RETURN
  547.       END
  548. C
  549. C
  550. C     OUTPUT COMPUTED PARAMETER
  551. C
  552.       SUBROUTINE AUSGB4(ZLX,ZEX,ZOX,WX,GX,A,KX,EKE,EKEE,EKEO,IS)
  553.       REAL KX
  554.       WRITE (*,100) IS,ZLX,ZEX,ZOX,KX,WX,GX,EKEE,EKEO,EKE
  555.   100 FORMAT(1H ,//////////'    RESULTS AFTER ',I2,'  STEPS:',///,
  556.      1'         CHARACTERISTIC IMPEDAMCE        ZL=',F12.4/,
  557.      1'              > EVEN MODE               ZEX=',F12.4/,
  558.      1'              > ODD MODE                ZOX=',F12.4/,
  559.      1'         COUPLING COEFFICIENT             K=',F12.4/,
  560.      2'         LINE-WIDTH                      WX=',F12.4/,
  561.      3'         GAP WIDTH                       GX=',F12.4/,
  562.      9'         EPPS EFF EVEN MODE              EE=',F12.4/,
  563.      8'         EPPS EFF ODD MODE               EO=',F12.4/,
  564.      3'         EPPS EFF RELATIV                ER=',F12.4/,)
  565. C
  566.       RETURN
  567.       END
  568. C
  569. C
  570. C     SUBROUTINE: COMPUTATION OF A SINGLE LINE
  571. C
  572. C     CX:     CAPACITANCE IN PF/CM
  573. C     D1X:    THICKNESS OF SUBSTRATE
  574. C     EK:     RELATIVE PERMITTIVITY
  575. C     EKE:    EFFECTIVE REL.PERMITTIVITY OF SUBSTRATE
  576. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  577. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  578. C     WX:     LINE WIDTH
  579. C     ZLX:    CHARACTERISTIC IMPEDANCE IN OHM
  580. C
  581.       SUBROUTINE SINLIN(WX,EK,G1X,D1X,G2X,CX,EKE,ZLX)
  582.       CPK=CPLATE(WX,EK,G1X,D1X,G2X)
  583.       CP0=CPLATE(WX,1.0,G1X,D1X,G2X)
  584.       CFOK=CFODD(WX,1.E5,EK,G1X,D1X,G2X)
  585.       CFO0=CFODD(WX,1.E5,1.,G1X,D1X,G2X)
  586.       CX=CPK+4.*CFOK
  587.       C0=CP0+4.*CFO0
  588.       EKE=CX/C0
  589.       E0=10./36./3.1415927
  590.       ZLX=377.*E0/SQRT(CX*C0)
  591.       RETURN
  592.       END
  593. C
  594. C
  595. C
  596. C     SUBROUTINE: COMPUTATION OF A STRIPLINE-COUPLER
  597. C
  598. C     CEX:    EVEN MODE CAPACITANCE
  599. C     COX:    CAPACITANCE IM ODD MODEFALL
  600. C     D1X:    THICKNESS OF SUBSTRATE
  601. C     EK:     REL.PERMITTIVITY OF SUBSTRATE
  602. C     EKEE:     '     '   '  IM EVEN MODE
  603. C     EKEO:     '     '   '  IM ODD MODEFALL
  604. C     GX:     GAP WIDTH
  605. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  606. C     G2X:    DISTANCE LINE  -  TOP GROUND-PLANE
  607. C     KX:     COUPLING COEFFICIENT
  608. C     WX:     LINE WIDTH
  609. C     ZEX:    EVEN MODE CHARACTERISTIC IMPEDANCE
  610. C     ZLS:    DESIRED CHARACTERISTIC IMPEDANCE IN OHM
  611. C     ZLX:    CHARACTERISTIC IMPEDANCE IN OHM
  612. C     ZOX:    ODD MODE CHARACTERISTIC IMPEDANCE
  613. C
  614.       SUBROUTINE TWOLIN(WX,GX,EK,G1X,D1X,G2X,EKEO,EKEE,ZOX,ZEX,
  615.      1ZLX,KX,COX,CEX)
  616.       REAL KX
  617.       CPK=CPLATE(WX,EK,G1X,D1X,G2X)
  618.       CP0=CPLATE(WX,1.0,G1X,D1X,G2X)
  619.       CFOKL=CFODD(WX,1.E10,EK,G1X,D1X,G2X)
  620.       CFOKR=CFODD(WX,GX,EK,G1X,D1X,G2X)
  621.       CFO0L=CFODD(WX,1.E10,1.,G1X,D1X,G2X)
  622.       CFO0R=CFODD(WX,GX,1.,G1X,D1X,G2X)
  623.       CFEKL=CFEVEN(WX,1.E10,EK,G1X,D1X,G2X)
  624.       CFEKR=CFEVEN(WX,GX,EK,G1X,D1X,G2X)
  625.       CFE0L=CFEVEN(WX,1.E10,1.,G1X,D1X,G2X)
  626.       CFE0R=CFEVEN(WX,GX,1.,G1X,D1X,G2X)
  627.       COX=CPK+2.*CFOKL+2.*CFOKR
  628.       CEX=CPK+2.*CFEKL+2.*CFEKR
  629.       DCX=CFOKR-CFEKR
  630.       CO0=CP0+2.*CFO0R+2.*CFO0L
  631.       CE0=CP0+2.*CFE0R+2.*CFE0L
  632.       EKEO=COX/CO0
  633.       EKEE=CEX/CE0
  634.       E0=10./36./3.1415927
  635.       ZOX=377.*E0/SQRT(COX*CO0)
  636.       ZEX=377.*E0/SQRT(CEX*CE0)
  637.       ZLX=SQRT(ZEX*ZOX)
  638.       KX=(ZEX-ZOX)/(ZEX+ZOX)
  639.       RETURN
  640.       END
  641. C
  642. C
  643. C     SUBROUTINE: COMPUTATION OF A PARALLEL-
  644. C     PLATE CAPACITANCE
  645. C
  646. C     CPLATE: PARALLEL-PLATE CAPACITANCE
  647. C     D1X:    THICKNESS OF SUBSTRATE
  648. C     EK:     RELATIVE PERMITTIVITY
  649. C     G1X:    DISTANCE SUBSTRATE  -  BOTTOM GROUND-PLANE
  650. C     G2X;    DISTANCE LINE  -  TOP GROUND-PLANE
  651. C     WX:     VERHAELTNIS STEIFEMBREITE ZU SUBSRATTHICKNESS
  652. C
  653.       FUNCTION CPLATE(WX,EK,G1X,D1X,G2X)
  654.       E0=10./36./3.1415927
  655.       CPLATE=E0*WX/G2X+(E0*WX)/(G1X+D1X/EK)
  656.       RETURN
  657.       END
  658. C
  659. C
  660. C     SUBROUTINE ODD MODE-FRINGING CAPACITANCES
  661. C
  662.       FUNCTION CFODD(WX,GX,EK,G1X,D1X,G2X)
  663.       CALL CFEO(1,CF,WX,GX,EK,G1X,D1X,G2X)
  664.       CFODD=CF
  665.       RETURN
  666.       END
  667. C
  668. C
  669. C     SUBROUTINE EVEN MODE-FRINGING CAPACITANCES
  670. C
  671.       FUNCTION CFEVEN(WX,GX,EK,G1X,D1X,G2X)
  672.       CALL CFEO(2,CF,WX,GX,EK,G1X,D1X,G2X)
  673.       CFEVEN=CF
  674.       RETURN
  675.       END
  676. C
  677. C
  678. C     SUBROUTINE: FRINGING CAPACITANCES EVEN AND
  679. C     ODD MODE
  680. C
  681.       SUBROUTINE CFEO(IC,CF,WX,GX,EK,G1X,D1X,G2X)
  682.       DIMENSION V(30)
  683.       REAL K,KP
  684.       TANH(X)=(1.-EXP(-2.*X))/(1.+EXP(-2.*X))
  685.       COTH(X)=1./TANH(X)
  686.       GN(G1)=1.+K*TANH(G1)*COTH(D1)
  687.       GD(G1)=COTH(G2)+K*COTH(D1)+K*TANH(G1)*(K+COTH(G2)*COTH(D1))
  688.       PHI(G1)=GN(G1)/GD(G1)-TANH(G1+D1)/(1.+K)
  689.       PI=3.141593
  690.       W0=WX
  691.       G0=GX
  692.       G10=G1X
  693.       D10=D1X
  694.       G20=G2X
  695.       K=EK
  696.       IF(W0.GT.3.*D10) W0=3.*D10
  697.       IF(G20.GT.6.*D10) G20=6.*D10
  698.       R=2.*(G10+D10)/(W0+G0)
  699.       X=-0.0979
  700.       DX=.1
  701.     2 X=X+DX
  702.       IF(X.LT.0.) GOTO 16
  703.       IF(X.LT..999998) GOTO 7
  704.       X=X-DX
  705.       DX=DX/5.
  706.       IF(DX.GT.1.E-6) GOTO 2
  707.       X=0.999998
  708.       G0=4.*(G10+D10)*ELP1(X)/PI-W0
  709.       GOTO 3
  710.     7 Y=SQRT(1.-X*X)
  711.       IF(Y.LT.0.999998) GOTO 17
  712.    16 IF(IC.GT.1) GOTO 4
  713.       X=0.
  714.       GOTO 3
  715.     4 X=.002
  716.       Y=SQRT(1.-X*X)
  717.       W0=(G10+D10)*PI/ELP1(Y)-G0
  718.       GOTO 3
  719.    17 CONTINUE
  720.       R1=ELP1(Y)/ELP1(X)
  721.       IF(ABS(R-R1).LT.1.E-3) GOTO 3
  722.       IF(R-R1) 2,3,5
  723.     5 X=X-DX
  724.       DX=DX/3.
  725.       GOTO 2
  726.     3 KP=X
  727.       XM=ELP1(KP)
  728.       F=2.*XM/PI
  729.       X0=W0*XM/(W0+G0)
  730.       A=SN(X0,KP)
  731.       Y=1.
  732.       IF(IC.GT.1) Y=KP
  733.       X=Y*A
  734.       Y=SQRT(1.-X*X)
  735.       EN=ELP1(Y)
  736.       E=ELP1(X)
  737.       CT=4.*E/EN
  738.       W=PI*W0/(W0+G0)
  739.       G=W*G0/W0
  740.       G1=W*G10/W0
  741.       D1=W*D10/W0
  742.       G2=W*G20/W0
  743.       W0=W
  744.       G0=G
  745.       G10=G1
  746.       D10=D1
  747.       G20=G2
  748.       N=29
  749.       NJ=N-1
  750.       H=X0/FLOAT(NJ)
  751.       DO 20 J=1,NJ
  752.       X=H*FLOAT(J-1)
  753.       S=SN(X,KP)
  754.       Y=2.*KP-1.+(1.-KP)*FLOAT(IC)
  755.    20 V(J)=SQRT((1.-(Y*S)**2)/(1.-(S/A)**2))
  756.       C0=0.
  757.       U=(-1.)**IC
  758.       DO 14 M=IC,200,2
  759.       U=-U
  760.       AM=FLOAT(M)
  761.       G1=AM*G10
  762.       D1=AM*D10
  763.       G2=AM*G20
  764.       PHM=PHI(G1)
  765.       IF(ABS(PHM/(1.+K)).LT..00001) GOTO 15
  766.       CM=COS(AM*X0/F)
  767.       PM=(1.-CM)+4*V(NJ)*(COS(AM*(X0-H)/F)-CM)
  768.       JJ=N-3
  769.       DO 30 J=2,JJ,2
  770.       X=H*FLOAT(J-1)
  771.       Y=X+H
  772.       PM=PM+4*V(J)*(COS(AM*X/F)-CM)+2.*V(J+1)*(COS(AM*Y/F)-CM)
  773.    30 CONTINUE
  774.       PM=A*E*CM+H*PM/3.
  775.       PM=8.*PM*U/(PI*A*EN)
  776.       C0=C0+PM*PHM*PM/AM
  777.    14 CONTINUE
  778.    15 CONTINUE
  779.       CP=W0/G20+W0/(G10+D10/K)
  780.       C0=C0*PI/(2.*CT*CT)
  781.       IF(IC.GT.1) GOTO 12
  782.       C0=C0+2./((1.+K)*CT)
  783.       GOTO 11
  784.    12 C0=C0+2.*(1./CT-(G10+D10)/(2.*PI))/(1.+K)+W0/(CP*(W0+G0))
  785.    11 C0=1./C0
  786.       CF=10.*(C0-CP)/(4.*36.*PI)
  787.       RETURN
  788.       END
  789. C
  790. C
  791. C
  792. C     JACOBI FUNKTIONS
  793. C
  794.       FUNCTION SN(XX,KX)
  795.       REAL K,KX,KN(10)
  796.       X=XX
  797.       K=KX
  798.       UN=X
  799.       X=SQRT(1.-K*K)
  800.       KN(1)=(1.-X)/(1.+X)
  801.       IF(KN(1)-1.) 11,10,10
  802.    10 S=(1.-EXP(-2.*UN))/(1.+EXP(-2.*UN))
  803.       GOTO 8
  804.    11 N=1
  805.     5 X=SQRT(1.-KN(N)*KN(N))
  806.       KN(N+1)=(1.-X)/(1.+X)
  807.       IF(KN(N)-1.E-8) 3,4,4
  808.     4 UN=UN/(1.+KN(N))
  809.       N=N+1
  810.       GOTO 5
  811.     3 UN=UN/(1.+KN(N+1))
  812.       S=SIN(UN)
  813.       IF(N-1) 8,8,9
  814.     9 CONTINUE
  815.       DO 6 I=2,N
  816.       J=N-I+1
  817.       S=(1.+KN(J))*S/(1.+KN(J)*S*S)
  818.     6 CONTINUE
  819.     8 SN=S
  820.       RETURN
  821.       END
  822. C
  823. C
  824. C
  825.       FUNCTION ELP1(AX)
  826.       REAL K,KP
  827.       K=AX
  828.       KP=1.-K*K
  829.       A0=1.3862944
  830.       A1=0.1119723
  831.       A2=0.0725296
  832.       B0=0.5
  833.       B1=0.1213478
  834.       B2=0.0288729
  835.       IF(K.LT.0.99999) GOTO 1
  836.       ELP1=.5*ALOG(16./KP)
  837.       GOTO 2
  838.     1 CONTINUE
  839.       ELP1=(B0+B1*KP+B2*KP*KP)*ALOG(1./KP)+A0+A1*KP+A2*KP*KP
  840.     2 RETURN
  841.       END
  842.  
  843.  
  844.