Commit ad615b454a7d47d931a918a21309bf0da56671a5
1 parent
c78a9409
Exists in
master
and in
3 other branches
Add incident field pins to LTspice and Ngspice schematic symbols
Showing
2 changed files
with
113 additions
and
184 deletions
Show diff stats
SOFTWARE_NOTES/work_log.txt
| @@ -12,3 +12,5 @@ | @@ -12,3 +12,5 @@ | ||
| 12 | 25th June CJS Add the nex flex cable test cases EDGE_COUPLED_STRIPLINE and | 12 | 25th June CJS Add the nex flex cable test cases EDGE_COUPLED_STRIPLINE and |
| 13 | SYMMETRIC_STRIPLINE to test the new flex cable model | 13 | SYMMETRIC_STRIPLINE to test the new flex cable model |
| 14 | 14 | ||
| 15 | + | ||
| 16 | +13th July CJS fix error in creaating circuit symbols: incident field nodes were missing... |
SRC/CREATE_SPICE_CIRCUIT_MODEL/create_spice_subcircuit_symbol.F90
| @@ -29,7 +29,6 @@ | @@ -29,7 +29,6 @@ | ||
| 29 | ! File Contents: | 29 | ! File Contents: |
| 30 | ! SUBROUTINE create_spice_subcircuit_symbol_NGspice | 30 | ! SUBROUTINE create_spice_subcircuit_symbol_NGspice |
| 31 | ! SUBROUTINE create_spice_subcircuit_symbol_LTspice | 31 | ! SUBROUTINE create_spice_subcircuit_symbol_LTspice |
| 32 | -! SUBROUTINE create_spice_subcircuit_symbol_Pspice | ||
| 33 | ! | 32 | ! |
| 34 | ! NAME | 33 | ! NAME |
| 35 | ! create_spice_subcircuit_symbol_NGspice | 34 | ! create_spice_subcircuit_symbol_NGspice |
| @@ -118,6 +117,11 @@ character(len=line_length) :: pinlabel_string | @@ -118,6 +117,11 @@ character(len=line_length) :: pinlabel_string | ||
| 118 | 117 | ||
| 119 | ymax_symbol=ymin_offset+(n_conductors-1)*y_conductor_spacing+ymax_offset | 118 | ymax_symbol=ymin_offset+(n_conductors-1)*y_conductor_spacing+ymax_offset |
| 120 | 119 | ||
| 120 | +! add a space for the incident field nodes | ||
| 121 | + if (spice_bundle_model%include_incident_field) then | ||
| 122 | + ymax_symbol=ymax_symbol+y_conductor_spacing | ||
| 123 | + end if | ||
| 124 | + | ||
| 121 | ! end 1 pin parameters # this could maybe go with parameters in the module... | 125 | ! end 1 pin parameters # this could maybe go with parameters in the module... |
| 122 | xpin1(1)=xmin_symbol-x_pin_length | 126 | xpin1(1)=xmin_symbol-x_pin_length |
| 123 | xpin2(1)=xmin_symbol | 127 | xpin2(1)=xmin_symbol |
| @@ -175,6 +179,59 @@ character(len=line_length) :: pinlabel_string | @@ -175,6 +179,59 @@ character(len=line_length) :: pinlabel_string | ||
| 175 | end do ! next conductor | 179 | end do ! next conductor |
| 176 | 180 | ||
| 177 | end do ! other cable end | 181 | end do ! other cable end |
| 182 | + | ||
| 183 | +! add a space for the incident field nodes | ||
| 184 | + if (spice_bundle_model%include_incident_field) then | ||
| 185 | + | ||
| 186 | +! put the first Einc pin on the LHS of the symbol | ||
| 187 | + end=1 | ||
| 188 | + pin=pin+1 | ||
| 189 | + ypin=ymax_symbol-ymax_offset-(n_conductors)*y_conductor_spacing | ||
| 190 | + | ||
| 191 | + string1='pinnumber=' | ||
| 192 | + CALL add_integer_to_string(string1,pin,pinnumber_string) | ||
| 193 | + | ||
| 194 | + string1='pinseq=' | ||
| 195 | + CALL add_integer_to_string(string1,pin,pinseq_string) | ||
| 196 | + | ||
| 197 | + pinlabel_string='Einc1' | ||
| 198 | + write(symbol_file_unit,'(A,4I6,A)')'P ',xpin1(end),ypin,xpin2(end),ypin,' 1 0 0' | ||
| 199 | + write(symbol_file_unit,'(A)')'{' | ||
| 200 | + write(symbol_file_unit,'(A)')'T 150 250 5 8 0 0 0 6 1' | ||
| 201 | + write(symbol_file_unit,'(A)')trim(pinnumber_string) | ||
| 202 | + write(symbol_file_unit,'(A)')'T 150 150 5 8 0 0 0 8 1' | ||
| 203 | + write(symbol_file_unit,'(A)')trim(pinseq_string) | ||
| 204 | + write(symbol_file_unit,'(A,2I6,A,I3,A)')'T ',xpin_label(end),ypin,' 9 6 1 1 0 ',align_label(end),' 1' | ||
| 205 | + write(symbol_file_unit,'(A)')trim(pinlabel_string) | ||
| 206 | + write(symbol_file_unit,'(A)')'T 200 200 5 8 0 0 0 2 1' | ||
| 207 | + write(symbol_file_unit,'(A)')'pintype=pas' | ||
| 208 | + write(symbol_file_unit,'(A)')'}' | ||
| 209 | + | ||
| 210 | +! put the first Einc pin on the LHS of the symbol | ||
| 211 | + end=2 | ||
| 212 | + pin=pin+1 | ||
| 213 | + ypin=ymax_symbol-ymax_offset-(n_conductors)*y_conductor_spacing | ||
| 214 | + | ||
| 215 | + string1='pinnumber=' | ||
| 216 | + CALL add_integer_to_string(string1,pin,pinnumber_string) | ||
| 217 | + | ||
| 218 | + string1='pinseq=' | ||
| 219 | + CALL add_integer_to_string(string1,pin,pinseq_string) | ||
| 220 | + | ||
| 221 | + pinlabel_string='Einc2' | ||
| 222 | + write(symbol_file_unit,'(A,4I6,A)')'P ',xpin1(end),ypin,xpin2(end),ypin,' 1 0 0' | ||
| 223 | + write(symbol_file_unit,'(A)')'{' | ||
| 224 | + write(symbol_file_unit,'(A)')'T 150 250 5 8 0 0 0 6 1' | ||
| 225 | + write(symbol_file_unit,'(A)')trim(pinnumber_string) | ||
| 226 | + write(symbol_file_unit,'(A)')'T 150 150 5 8 0 0 0 8 1' | ||
| 227 | + write(symbol_file_unit,'(A)')trim(pinseq_string) | ||
| 228 | + write(symbol_file_unit,'(A,2I6,A,I3,A)')'T ',xpin_label(end),ypin,' 9 6 1 1 0 ',align_label(end),' 1' | ||
| 229 | + write(symbol_file_unit,'(A)')trim(pinlabel_string) | ||
| 230 | + write(symbol_file_unit,'(A)')'T 200 200 5 8 0 0 0 2 1' | ||
| 231 | + write(symbol_file_unit,'(A)')'pintype=pas' | ||
| 232 | + write(symbol_file_unit,'(A)')'}' | ||
| 233 | + | ||
| 234 | + end if | ||
| 178 | 235 | ||
| 179 | ! spice_subcircuit_filename=trim(MOD_spice_bundle_lib_dir)//trim(spice_bundle_model%spice_model_name)//spice_model_file_extn | 236 | ! spice_subcircuit_filename=trim(MOD_spice_bundle_lib_dir)//trim(spice_bundle_model%spice_model_name)//spice_model_file_extn |
| 180 | spice_subcircuit_filename='PATH_TO_TRANSMISSION_LINE_SUB_CIRCUITS/'// & | 237 | spice_subcircuit_filename='PATH_TO_TRANSMISSION_LINE_SUB_CIRCUITS/'// & |
| @@ -264,6 +321,7 @@ integer :: LT_ymax_symbol ! maximum y extent of the symbol (depends on the nu | @@ -264,6 +321,7 @@ integer :: LT_ymax_symbol ! maximum y extent of the symbol (depends on the nu | ||
| 264 | 321 | ||
| 265 | integer :: LT_xpin1(2),LT_xpin2(2) ! pin x coordinates for ends 1 and 2 of the transmission line symbol | 322 | integer :: LT_xpin1(2),LT_xpin2(2) ! pin x coordinates for ends 1 and 2 of the transmission line symbol |
| 266 | integer :: LT_ypin ! pin y coordinate | 323 | integer :: LT_ypin ! pin y coordinate |
| 324 | +integer :: Einc_y_offset | ||
| 267 | 325 | ||
| 268 | integer :: xpin_label(2) ! x coordinate for conductor labels at ends 1 and 2 of the transmission line symbol | 326 | integer :: xpin_label(2) ! x coordinate for conductor labels at ends 1 and 2 of the transmission line symbol |
| 269 | 327 | ||
| @@ -299,6 +357,13 @@ character(len=line_length) :: pinlabel_string | @@ -299,6 +357,13 @@ character(len=line_length) :: pinlabel_string | ||
| 299 | n_conductors=spice_bundle_model%bundle%tot_n_conductors | 357 | n_conductors=spice_bundle_model%bundle%tot_n_conductors |
| 300 | 358 | ||
| 301 | LT_ymax_symbol=LT_ymin_offset+(n_conductors-1)*LT_y_conductor_spacing+LT_ymax_offset | 359 | LT_ymax_symbol=LT_ymin_offset+(n_conductors-1)*LT_y_conductor_spacing+LT_ymax_offset |
| 360 | + | ||
| 361 | +! add a space for the incident field nodes | ||
| 362 | + Einc_y_offset=0 | ||
| 363 | + if (spice_bundle_model%include_incident_field) then | ||
| 364 | + Einc_y_offset=LT_y_conductor_spacing | ||
| 365 | + LT_ymax_symbol=LT_ymax_symbol+Einc_y_offset | ||
| 366 | + end if | ||
| 302 | 367 | ||
| 303 | ! end 1 pin parameters # this could maybe go with parameters in the module... | 368 | ! end 1 pin parameters # this could maybe go with parameters in the module... |
| 304 | LT_xpin1(1)=LT_xmin_symbol-LT_x_pin_length | 369 | LT_xpin1(1)=LT_xmin_symbol-LT_x_pin_length |
| @@ -326,7 +391,7 @@ character(len=line_length) :: pinlabel_string | @@ -326,7 +391,7 @@ character(len=line_length) :: pinlabel_string | ||
| 326 | 391 | ||
| 327 | pin=pin+1 | 392 | pin=pin+1 |
| 328 | 393 | ||
| 329 | - LT_ypin=LT_ymax_symbol-LT_ymax_offset-(n_conductors-conductor)*LT_y_conductor_spacing | 394 | + LT_ypin=LT_ymax_symbol-LT_ymax_offset-(n_conductors-conductor)*LT_y_conductor_spacing-Einc_y_offset |
| 330 | 395 | ||
| 331 | write(symbol_file_unit,'(A,4I6)')'LINE Normal ',LT_xpin1(end),LT_ypin,LT_xpin2(end),LT_ypin | 396 | write(symbol_file_unit,'(A,4I6)')'LINE Normal ',LT_xpin1(end),LT_ypin,LT_xpin2(end),LT_ypin |
| 332 | 397 | ||
| @@ -334,6 +399,25 @@ character(len=line_length) :: pinlabel_string | @@ -334,6 +399,25 @@ character(len=line_length) :: pinlabel_string | ||
| 334 | 399 | ||
| 335 | end do ! other cable end | 400 | end do ! other cable end |
| 336 | 401 | ||
| 402 | +! add pins for the incident field nodes | ||
| 403 | + if (spice_bundle_model%include_incident_field) then | ||
| 404 | + | ||
| 405 | + end=1 | ||
| 406 | + pin=pin+1 | ||
| 407 | + | ||
| 408 | + LT_ypin=LT_ymax_symbol-LT_ymax_offset | ||
| 409 | + | ||
| 410 | + write(symbol_file_unit,'(A,4I6)')'LINE Normal ',LT_xpin1(end),LT_ypin,LT_xpin2(end),LT_ypin | ||
| 411 | + | ||
| 412 | + end=2 | ||
| 413 | + pin=pin+1 | ||
| 414 | + | ||
| 415 | + LT_ypin=LT_ymax_symbol-LT_ymax_offset | ||
| 416 | + | ||
| 417 | + write(symbol_file_unit,'(A,4I6)')'LINE Normal ',LT_xpin1(end),LT_ypin,LT_xpin2(end),LT_ypin | ||
| 418 | + | ||
| 419 | + end if | ||
| 420 | + | ||
| 337 | ! write general information | 421 | ! write general information |
| 338 | 422 | ||
| 339 | write(symbol_file_unit,'(A,2I6,A)')'WINDOW 3 ',(LT_xmin_symbol+LT_xmax_symbol)/2,-LT_ymax_text_offset,' centre 0' | 423 | write(symbol_file_unit,'(A,2I6,A)')'WINDOW 3 ',(LT_xmin_symbol+LT_xmax_symbol)/2,-LT_ymax_text_offset,' centre 0' |
| @@ -357,7 +441,7 @@ character(len=line_length) :: pinlabel_string | @@ -357,7 +441,7 @@ character(len=line_length) :: pinlabel_string | ||
| 357 | do conductor=1,n_conductors | 441 | do conductor=1,n_conductors |
| 358 | 442 | ||
| 359 | pin=pin+1 | 443 | pin=pin+1 |
| 360 | - LT_ypin=LT_ymax_symbol-LT_ymax_offset-(n_conductors-conductor)*LT_y_conductor_spacing | 444 | + LT_ypin=LT_ymax_symbol-LT_ymax_offset-(n_conductors-conductor)*LT_y_conductor_spacing-Einc_y_offset |
| 361 | 445 | ||
| 362 | if (end.eq.1) then | 446 | if (end.eq.1) then |
| 363 | write(symbol_file_unit,'(A,2I6,A,I6)')'PIN ',LT_xpin1(end),LT_ypin,' LEFT ',LT_x_pin_length | 447 | write(symbol_file_unit,'(A,2I6,A,I6)')'PIN ',LT_xpin1(end),LT_ypin,' LEFT ',LT_x_pin_length |
| @@ -379,6 +463,30 @@ character(len=line_length) :: pinlabel_string | @@ -379,6 +463,30 @@ character(len=line_length) :: pinlabel_string | ||
| 379 | 463 | ||
| 380 | end do ! other cable end | 464 | end do ! other cable end |
| 381 | 465 | ||
| 466 | + if (spice_bundle_model%include_incident_field) then | ||
| 467 | + | ||
| 468 | + end=1 | ||
| 469 | + pin=pin+1 | ||
| 470 | + LT_ypin=LT_ymax_symbol-LT_ymax_offset | ||
| 471 | + write(symbol_file_unit,'(A,2I6,A,I6)')'PIN ',LT_xpin1(end),LT_ypin,' LEFT ',LT_x_pin_length | ||
| 472 | + pinlabel_string='PinName Einc1' | ||
| 473 | + write(symbol_file_unit,'(A,A)')'PINATTR ',trim(pinlabel_string) | ||
| 474 | + string1='' | ||
| 475 | + CALL add_integer_to_string(string1,pin,pinnumber_string) | ||
| 476 | + write(symbol_file_unit,'(A,A)')'PINATTR SpiceOrder ',trim(pinnumber_string) | ||
| 477 | + | ||
| 478 | + end=2 | ||
| 479 | + pin=pin+1 | ||
| 480 | + write(symbol_file_unit,'(A,2I6,A,I6)')'PIN ',LT_xpin1(end),LT_ypin,' RIGHT ',LT_x_pin_length | ||
| 481 | + pinlabel_string='PinName Einc2' | ||
| 482 | + write(symbol_file_unit,'(A,A)')'PINATTR ',trim(pinlabel_string) | ||
| 483 | + string1='' | ||
| 484 | + CALL add_integer_to_string(string1,pin,pinnumber_string) | ||
| 485 | + write(symbol_file_unit,'(A,A)')'PINATTR SpiceOrder ',trim(pinnumber_string) | ||
| 486 | + | ||
| 487 | + | ||
| 488 | + end if | ||
| 489 | + | ||
| 382 | xpin_label(1)=LT_xmin_symbol | 490 | xpin_label(1)=LT_xmin_symbol |
| 383 | xpin_label(2)=LT_xmax_symbol | 491 | xpin_label(2)=LT_xmax_symbol |
| 384 | 492 | ||
| @@ -391,184 +499,3 @@ character(len=line_length) :: pinlabel_string | @@ -391,184 +499,3 @@ character(len=line_length) :: pinlabel_string | ||
| 391 | RETURN | 499 | RETURN |
| 392 | 500 | ||
| 393 | END SUBROUTINE create_spice_subcircuit_symbol_LTspice | 501 | END SUBROUTINE create_spice_subcircuit_symbol_LTspice |
| 394 | -! | ||
| 395 | -! NAME | ||
| 396 | -! create_spice_subcircuit_symbol_Pspice | ||
| 397 | -! | ||
| 398 | -! AUTHORS | ||
| 399 | -! Chris Smartt | ||
| 400 | -! | ||
| 401 | -! DESCRIPTION | ||
| 402 | -! This subroutine creates a symbol for the Spice subcircuit model for the cable bundle | ||
| 403 | -! to be used in schematic capture software | ||
| 404 | -! | ||
| 405 | -! The file formats for Gschem can be found here: http://wiki.geda-project.org/geda:file_format_spec | ||
| 406 | -! | ||
| 407 | -! COMMENTS | ||
| 408 | -! | ||
| 409 | -! | ||
| 410 | -! HISTORY | ||
| 411 | -! | ||
| 412 | -! started 15/12/2015 CJS: STAGE_1 developments | ||
| 413 | -! | ||
| 414 | -! | ||
| 415 | -SUBROUTINE create_spice_subcircuit_symbol_Pspice(spice_bundle_model) | ||
| 416 | - | ||
| 417 | -USE type_specifications | ||
| 418 | -USE general_module | ||
| 419 | -USE constants | ||
| 420 | -USE cable_module | ||
| 421 | -USE cable_bundle_module | ||
| 422 | -USE spice_cable_bundle_module | ||
| 423 | -USE circuit_symbol_module | ||
| 424 | - | ||
| 425 | -IMPLICIT NONE | ||
| 426 | - | ||
| 427 | -! variables passed to the subroutine | ||
| 428 | - | ||
| 429 | -TYPE(spice_model_specification_type),intent(IN) :: spice_bundle_model | ||
| 430 | - | ||
| 431 | -! local variables | ||
| 432 | - | ||
| 433 | -character(len=filename_length) :: filename ! filename for the symbol file | ||
| 434 | -character(len=filename_length) :: spice_subcircuit_filename ! filename for the associated spice sub-circuit model | ||
| 435 | - | ||
| 436 | -integer :: n_conductors | ||
| 437 | - | ||
| 438 | -integer :: ymax_symbol ! maximum y extent of the symbol (depends on the number of conductors) | ||
| 439 | - | ||
| 440 | -integer :: xpin1(2),xpin2(2) ! pin x coordinates for ends 1 and 2 of the transmission line symbol | ||
| 441 | -integer :: ypin ! pin y coordinate | ||
| 442 | - | ||
| 443 | -integer :: xpin_label(2) ! x coordinate for conductor labels at ends 1 and 2 of the transmission line symbol | ||
| 444 | -integer :: align_label(2) ! alignment type for symbols | ||
| 445 | - | ||
| 446 | -! loop variables | ||
| 447 | -integer :: pin ! pin number | ||
| 448 | -integer :: end ! end number | ||
| 449 | -integer :: conductor ! conductor number | ||
| 450 | - | ||
| 451 | -! temporary strings | ||
| 452 | -character(len=line_length) :: string1 | ||
| 453 | -character(len=line_length) :: string2 | ||
| 454 | - | ||
| 455 | -! pin label strings | ||
| 456 | -character(len=line_length) :: pinnumber_string | ||
| 457 | -character(len=line_length) :: pinseq_string | ||
| 458 | -character(len=line_length) :: pinlabel_string | ||
| 459 | - | ||
| 460 | -! START | ||
| 461 | - | ||
| 462 | -! filename for the symbol. The directory for the symbol is read from the | ||
| 463 | -! .spice_model_spec file (i.e. specified by the GUI) | ||
| 464 | - | ||
| 465 | - filename=trim(spice_symbol_dir)//trim(spice_bundle_model%spice_model_name)//symbol_file_extn | ||
| 466 | - | ||
| 467 | -! open the symbol file | ||
| 468 | - | ||
| 469 | - OPEN(unit=symbol_file_unit,file=filename) | ||
| 470 | - | ||
| 471 | - if (verbose) write(*,*)'Opened file:',trim(filename) | ||
| 472 | - | ||
| 473 | -! calculate the size of the symbol from the number of conductors and set all symbol dimensions | ||
| 474 | - | ||
| 475 | - n_conductors=spice_bundle_model%bundle%tot_n_conductors | ||
| 476 | - | ||
| 477 | - ymax_symbol=ymin_offset+(n_conductors-1)*y_conductor_spacing+ymax_offset | ||
| 478 | - | ||
| 479 | -! end 1 pin parameters # this could maybe go with parameters in the module... | ||
| 480 | - xpin1(1)=xmin_symbol-x_pin_length | ||
| 481 | - xpin2(1)=xmin_symbol | ||
| 482 | - | ||
| 483 | -! end 2 pin parameters | ||
| 484 | - xpin1(2)=xmax_symbol+x_pin_length | ||
| 485 | - xpin2(2)=xmax_symbol | ||
| 486 | - | ||
| 487 | - ! write the header | ||
| 488 | - write(symbol_file_unit,'(A)')symbol_version | ||
| 489 | - | ||
| 490 | -! write the rectangular box | ||
| 491 | - write(symbol_file_unit,'(A,4I6,A)')'L ',xmin_symbol,ymin_symbol,xmin_symbol,ymax_symbol,' 3 0 0 0 -1 -1' | ||
| 492 | - write(symbol_file_unit,'(A,4I6,A)')'L ',xmin_symbol,ymax_symbol,xmax_symbol,ymax_symbol,' 3 0 0 0 -1 -1' | ||
| 493 | - write(symbol_file_unit,'(A,4I6,A)')'L ',xmax_symbol,ymax_symbol,xmax_symbol,ymin_symbol,' 3 0 0 0 -1 -1' | ||
| 494 | - write(symbol_file_unit,'(A,4I6,A)')'L ',xmax_symbol,ymin_symbol,xmin_symbol,ymin_symbol,' 3 0 0 0 -1 -1' | ||
| 495 | - | ||
| 496 | -! write the connection pins | ||
| 497 | - xpin_label(1)=xmin_symbol | ||
| 498 | - xpin_label(2)=xmax_symbol | ||
| 499 | - align_label(1)=1 ! left | ||
| 500 | - align_label(2)=7 ! right | ||
| 501 | - | ||
| 502 | - pin=0 | ||
| 503 | - do end=1,2 | ||
| 504 | - | ||
| 505 | - do conductor=1,n_conductors | ||
| 506 | - | ||
| 507 | - pin=pin+1 | ||
| 508 | - ypin=ymax_symbol-ymax_offset-(conductor-1)*y_conductor_spacing | ||
| 509 | - | ||
| 510 | - string1='pinnumber=' | ||
| 511 | - CALL add_integer_to_string(string1,pin,pinnumber_string) | ||
| 512 | - | ||
| 513 | - string1='pinseq=' | ||
| 514 | - CALL add_integer_to_string(string1,pin,pinseq_string) | ||
| 515 | - | ||
| 516 | - string1='pinlabel=c_' | ||
| 517 | - CALL add_integer_to_string(string1,conductor,string2) | ||
| 518 | - string1=trim(string2)//'_e_' | ||
| 519 | - CALL add_integer_to_string(string1,end,pinlabel_string) | ||
| 520 | - | ||
| 521 | - write(symbol_file_unit,'(A,4I6,A)')'P ',xpin1(end),ypin,xpin2(end),ypin,' 1 0 0' | ||
| 522 | - write(symbol_file_unit,'(A)')'{' | ||
| 523 | - write(symbol_file_unit,'(A)')'T 150 250 5 8 0 0 0 6 1' | ||
| 524 | - write(symbol_file_unit,'(A)')trim(pinnumber_string) | ||
| 525 | - write(symbol_file_unit,'(A)')'T 150 150 5 8 0 0 0 8 1' | ||
| 526 | - write(symbol_file_unit,'(A)')trim(pinseq_string) | ||
| 527 | - write(symbol_file_unit,'(A,2I6,A,I3,A)')'T ',xpin_label(end),ypin,' 9 6 1 1 0 ',align_label(end),' 1' | ||
| 528 | - write(symbol_file_unit,'(A)')trim(pinlabel_string) | ||
| 529 | - write(symbol_file_unit,'(A)')'T 200 200 5 8 0 0 0 2 1' | ||
| 530 | - write(symbol_file_unit,'(A)')'pintype=pas' | ||
| 531 | - write(symbol_file_unit,'(A)')'}' | ||
| 532 | - | ||
| 533 | - end do ! next conductor | ||
| 534 | - | ||
| 535 | - end do ! other cable end | ||
| 536 | - | ||
| 537 | -! spice_subcircuit_filename=trim(MOD_spice_bundle_lib_dir)//trim(spice_bundle_model%spice_model_name)//spice_model_file_extn | ||
| 538 | - spice_subcircuit_filename='PATH_TO_TRANSMISSION_LINE_SUB_CIRCUITS/'// & | ||
| 539 | - trim(spice_bundle_model%spice_model_name)//spice_model_file_extn | ||
| 540 | - | ||
| 541 | -! write the general circuit symbol information | ||
| 542 | - write(symbol_file_unit,'(A,2I6,A)')'T ',(xmin_symbol+xmax_symbol)/2,ymax_symbol+2*ymax_text_offset,' 8 10 1 1 0 4 1' | ||
| 543 | - string1='device='//trim(spice_bundle_model%spice_model_name) | ||
| 544 | - write(symbol_file_unit,'(A)')trim(string1) | ||
| 545 | - | ||
| 546 | - write(symbol_file_unit,'(A,2I6,A)')'T ',(xmin_symbol+xmax_symbol)/2,ymax_symbol+ymax_text_offset,' 5 10 1 0 0 4 1' | ||
| 547 | - write(symbol_file_unit,'(A)')'refdes=X?' | ||
| 548 | - | ||
| 549 | - write(symbol_file_unit,'(A,2I6,A)')'T ',xmin_symbol,ymin_symbol,' 8 10 0 0 0 4 1' | ||
| 550 | - string1='description='//trim(spice_bundle_model%spice_model_name) | ||
| 551 | - write(symbol_file_unit,'(A)')trim(string1) | ||
| 552 | - | ||
| 553 | - write(symbol_file_unit,'(A,2I6,A)')'T ',xmin_symbol,ymin_symbol,' 8 10 0 0 0 0 1' | ||
| 554 | - string1='value='//trim(spice_bundle_model%spice_model_name) | ||
| 555 | - write(symbol_file_unit,'(A)')trim(string1) | ||
| 556 | - | ||
| 557 | - write(symbol_file_unit,'(A,2I6,A)')'T ',xmin_symbol,ymin_symbol,' 8 10 0 0 0 0 1' | ||
| 558 | - write(symbol_file_unit,'(A,A)')'file=',trim(spice_subcircuit_filename) | ||
| 559 | - | ||
| 560 | - write(symbol_file_unit,'(A,2I6,A)')'T ',xmin_symbol,ymin_symbol,' 8 10 0 0 0 0 1' | ||
| 561 | - write(symbol_file_unit,'(A)')'numslots=0' | ||
| 562 | - | ||
| 563 | - write(symbol_file_unit,'(A,2I6,A)')'T ',xmin_symbol,ymin_symbol,' 8 10 0 0 0 0 1' | ||
| 564 | - write(symbol_file_unit,'(A)')'symversion=0.1' | ||
| 565 | - | ||
| 566 | -! close the symbol file | ||
| 567 | - | ||
| 568 | - CLOSE(unit=symbol_file_unit) | ||
| 569 | - | ||
| 570 | - if (verbose) write(*,*)'Closed file:',trim(filename) | ||
| 571 | - | ||
| 572 | - RETURN | ||
| 573 | - | ||
| 574 | -END SUBROUTINE create_spice_subcircuit_symbol_Pspice |