function CstWaveguidePort(fid,CPnumber,CNmode,CAdPolarization,CPolAngle,CRefDist,...
    CTextSize,CCoordinates,COrientation,CPortOnBound,CClipPickedPortToBound,...
    CXrangeMin,CXrangeMax,CYrangeMin,CYrangeMax,CZrangeMin,CZrangeMax,...
    CXrangeAddMin,CXrangeAddMax,CYrangeAddMin,CYrangeAddMax,CZrangeAddMin,CZrangeAddMax)
global mws port;

% Funkce CstWaveguidePort(fid, CPnumber, CNmode, CAdPolarization, CPolAngle,
% CRefDist, CTextSize, CCoordinates, COrientation, CPortOnBound,
% CClipPickedPortToBound, CXrangeMin, CXrangeMax, CYrangeMin, CYrangeMax,
% CZrangeMin, CZrangeMax, CXrangeAddMin, CXrangeAddMax, CYrangeAddMin,
% CYrangeAddMax, CZrangeAddMin, CZrangeAddMax) nastavuje vlnový port v programu
% CST. Nemá návratovou hodnotu.

% Parametry funkce:

% fid - soubor identifikující historii CST skriptu.
% CPnumber – nastaví číslo vlnového portu.
% CNmode – nastaví mód vlnového portu.
% CAdPolarization – rozhodující prvek zda polarizace elektrického pole by měla být
% nastavená nebo ne, tato metoda pracuje spolu s metodou CPolAngle.
% CPolAngle – jestliže je aktivována metoda CAdPolarization může být polarizační úhel
% definován.
% CRefDist – nastaví odstup referenční roviny a parametr S bude vypočítán na referenční
% úrovní.
% CTextSize – velikost písma.
% CCoordinates – určuje jak je definována transverzální expanze vlnového portu.
% COrientation – definuje orientaci, směr napájení, vlnového portu.
% CPortOnBound – rozhodne jestliže port je umístěn na hranicí výpočetní domény „true“ nebo
% může být umístěn v doméně výpočtu kvůli jeho definici normálního uložení (Xrange, Yrange
% nebo Zrange metoda) „false“.
% 57
% CClipPickedPortToBound – u vybraného portu se tato metoda rozhodne jestliže port by měl
% být umístěn na hranicích výpočetní domény „ture“ nebo by měl být stanovený korespondent
% k informacím výběru „false“.
% CXrangeMin – | průsečné osy portu vlnovodu jsou definovány jako "Free", tyto metody určí
% CXrangeMax – | rozsah v každém směru, (x, y, z)
% CYrangeMin – |
% CYrangeMax – |
% CZrangeMin – |
% CZrangeMax – |
% CXrangeAddMin – | doplňkové rozměry (x,y,z), běžně jsou nastaveny na (0.0).
% CXrangeAddMax – |
% CYrangeAddMin – |
% CYrangeAddMax – |
% CZrangeAddMin – |
% CZrangeAddMax – |

% Příklad použití funkce:

% fid = fopen('pokus.m', 'wt');
% ...
% CstWaveguidePort(fid,1,1,'False',0.0,0,45,'Free','zmin','True',...
% 'False',-5,5,-2,2,-9.635,-9.635,0.0,0.0,0.0,0.0,0.0,0.0);

% Definovani portu
        fprintf(fid, '%% Definovani portu\n');
        fprintf(fid, 'port  = mws.invoke(''Port'');\n');
        fprintf(fid, 'port.invoke(''Reset'');\n');
        fprintf(fid, ['port.invoke(''PortNumber'',',num2str(CPnumber),');\n']);
        fprintf(fid, ['port.invoke(''NumberOfModes'',',num2str(CNmode),');\n']);
        fprintf(fid, ['port.invoke(''AdjustPolarization'',''',CAdPolarization,''');\n']);
        fprintf(fid, ['port.invoke(''PolarizationAngle'',',num2str(CPolAngle),');\n']);
        fprintf(fid, ['port.invoke(''ReferencePlaneDistance'',',num2str(CRefDist),');\n']);
        fprintf(fid, ['port.invoke(''TextSize'',',num2str(CTextSize),');\n']);
        fprintf(fid, ['port.invoke(''Coordinates'',''',CCoordinates,''');\n']);
        fprintf(fid, ['port.invoke(''Orientation'',''',COrientation,''');\n']);
        fprintf(fid, ['port.invoke(''PortOnBound'',''',CPortOnBound,''');\n']);
        fprintf(fid, ['port.invoke(''ClipPickedPortToBound'',''',CClipPickedPortToBound,''');\n']);
        fprintf(fid, ['port.invoke(''Xrange'',',num2str(CXrangeMin),',',num2str(CXrangeMax),');\n']);
        fprintf(fid, ['port.invoke(''Yrange'',',num2str(CYrangeMin),',',num2str(CYrangeMax),');\n']);
        fprintf(fid, ['port.invoke(''Zrange'',',num2str(CZrangeMin),',',num2str(CZrangeMax),');\n']);
        fprintf(fid, ['port.invoke(''XrangeAdd'',',num2str(CXrangeAddMin),',',num2str(CXrangeAddMax),');\n']);
        fprintf(fid, ['port.invoke(''YrangeAdd'',',num2str(CYrangeAddMin),',',num2str(CYrangeAddMax),');\n']);
        fprintf(fid, ['port.invoke(''ZrangeAdd'',',num2str(CZrangeAddMin),',',num2str(CZrangeAddMax),');\n']);
        fprintf(fid, 'port.invoke(''Create'');\n\n');

%definovani portu primo v CST
        port  = mws.invoke('Port');
        port.invoke('Reset'); 
        port.invoke('PortNumber',CPnumber); 
        port.invoke('NumberOfModes',CNmode); 
        port.invoke('AdjustPolarization',CAdPolarization);
        port.invoke('PolarizationAngle',CPolAngle); 
        port.invoke('ReferencePlaneDistance',CRefDist); 
        port.invoke('TextSize',CTextSize); 
        port.invoke('Coordinates',CCoordinates); 
        port.invoke('Orientation',COrientation); 
        port.invoke('PortOnBound',CPortOnBound); 
        port.invoke('ClipPickedPortToBound',CClipPickedPortToBound); 
        port.invoke('Xrange',CXrangeMin,CXrangeMax); 
        port.invoke('Yrange',CYrangeMin,CYrangeMax); 
        port.invoke('Zrange',CZrangeMin,CZrangeMax); 
        port.invoke('XrangeAdd',CXrangeAddMin,CXrangeAddMax); 
        port.invoke('YrangeAdd',CYrangeAddMin,CYrangeAddMax); 
        port.invoke('ZrangeAdd',CZrangeAddMin,CZrangeAddMax); 
        port.invoke('Create');

end