Contents
I. Introduction 1
II. General Operation 2
A. Stepping through Modeig/II 2
B. Commands Menu 4
1. C - Commands 4
2. E - Edit 4
3. H - Help 4
4. N - New 4
5. Q - Quit 5
6. V - View 5
7. X - eXit 5
III. Input File Cards 6
IV. Structure 7
A. Direct Layer Input 7
B. Indirect Layer Input 8
C. Graded Layers 8
D. Multiple Quantum Wells 9
E. Auto Quantum Well Width Calculation (GaAs) 9
F. Symmetric Grinsch Structure 10
G. Asymmetric Grinsch Structure 10
V. Near and Far Field Calculations 12
VI. Confinement Factor Calculations (Gamma) 13
VII. Looping 14
A. Low-level (X looping) 14
B. High-level (Z looping) 15
C. Initial Guess Generation 16
D. Wavelength vs. Quantum Well Width 17
E. Multiple Output File Generation 17
VIII. Output 18
A. Output File General Information 18
B. Dbase File 19
C. Layers File 21
D. Output File 21
E. Nfield File 21
F. Ffield File 22
Variable Glossary 23
CASE PARAMETERS 24
MODCON PARAMETERS 30
STRUCT PARAMETERS 33
LAYER PARAMETERS 34
GAMOUT PARAMETERS 35
LOOPX PARAMETERS 36
LOOPZ PARAMETERS 37
OUTPUT PARAMETERS 38
Appendices 39
Appendix 1 40
Appendix 2 41
Appendix 3 42
Appendix 4 43
Appendix1_dbase 44
Appendix1_layers 45
Appendix1_output 46
Appendix1_nfield 53
Appendix1_ffield 54
Pictures 58
PICTURE 1 59
PICTURE 2 60
Error Messages 61
File system errors 61
Runtine error codes 62
I. Introduction
The Modeig/II manual is designed to be a reference guide to using the Modeig/II program on the Macintosh. Specific details about the calculations performed can be found in :
EE Technical Report No. 206
December, 1977
by:
Robert B. Smith
Gordon L. Mitchell
Additional information can be found in:
Modeig Users Manual
February 13, 1987
by:
V.J. Masin
G.A. Evans
Recommended Hardware:
Apple Macintosh II
Recommended Software:
text editor: QUED-M v2.07 or later
graphics: CRICKET GRAPH v1.3 or later
This manual uses the following notation:
< > - characters in between the brackets should be typed on the keyboard
! - comment separator, everything to the right of the exclamation point is a descriptive comment
II. General Operation
A. Stepping through Modeig/II
To run Modeig/II double-click on the 'Modeig/II apl' icon. The Modeig/II header and revision date will be displayed on the screen along with the prompt for the input filename. Type in the name of the input file to continue with the Modeig/II program or type a command from the commands menu (see II. B). The input filename can be up to 31 characters long (not including the directory path) and can contain all of the standard Macintosh filename characters except for a blank space. The input file should be a text file similar to the files shown in the Appendices. The file does not have to reside on the same disk as the Modeig/II application, adding the directory path as a prefix to the input filename will cause Modeig/II to search the specified disk for the input file.
HD20:MODELING:inputfile
In the above response 'HD20:MODELING:' is the directory path and 'inputfile' is the input filename. This response would cause Modeig/II to search the folder named 'MODELING' on the disk 'HD20' for the file 'inputfile'.
The next prompt is for the output filename. Pressing the <return> key will default the output filename to the same name as the input file and the file storage location to the same disk where the input file resides. Suffixes are appended to the output filename to indicate the type of data in the file ('_layer','_output','_dbase',...).
Entering a different name for the output filename will cause Modeig/II to store the data files using the filename and directory path entered. If no directory path is given, the disk where the Modeig/II application resides will be used.
Response Data stored to:
<return> : HD20:MODELING:inputfile_sfx
DISK2:NEWFOLDER:inputfile : DISK2:NEWFOLDER:inputfile_sfx
CAUTION:
Modeig/II will attempt to store all of the output data files to the disk specified. If large amounts of output is to be generated, the '_output' file is turned on, it is a good idea to specify the hard disk as the directory path for the output to avoid a 'DISK IS FULL' error during execution of Modeig/II. If a 'DISK IS FULL' error is encountered, the error message will be displayed along with a prompt to type the <return> key. Upon entering the <return> key the Modeig/II program will quit and control will return to the Macintosh Finder.
After receiving the input and output filenames Modeig/II will attempt to read the input file. If Modeig/II cannot find the input file on the disk specified an 'INPUT FILE NOT FOUND' error message will result along with a warning bell. Modeig/II will then prompt for another input filename.
If the input file is found, Modeig/II will attempt to read the input displaying each line as it is processed. If Modeig/II finds an illegal input card or parameter an error message will result specifying the card or parameter which caused the error and a prompt to continue will be displayed.
After successfully reading an input file Modeig/II will prompt to continue. Entering a <return> will continue with the Modeig/II program, a <Q> will quit the program, and a <V> will display (view) the layer information generated from the input file. All the commands from the commands menu are available at this time.
Continuing with the program, Modeig/II will display a listing of the output files created and will then start the calculations. The output data will be displayed on the screen in columnar format with the loop variables listed first in order of looping.
Execution of the calculations can be stopped at any time by typing < command . >. This break will cause Modeig/II to prompt for a <return> to quit.
Upon completion of the calculations Modeig/II will prompt for 'Another case?'. A <return> or <N> response will quit Modeig/II and return to the Macintosh Finder. A <Y> response will cause Modeig/II to prompt for another input filename and the whole input process starts again.
The output files generated by Modeig/II can be viewed using an editor. The output files can then be printed using the editor's standard 'PRINT' routine.
The '_dbase', '_nfield', and '_ffield' output files are in tab delimited columnar format with column headers and a leading asterisk. This format is used for input files by many graphics software packages so graphical outputs are easily obtained.
B. Commands Menu
The Commands menu is a listing of all the command modes available while accessing the input file. The following commands are available:
C - Commands ! lists the commands menu
E - Edit ! allows line appending to input file
H - Help ! displays users manual on screen
N - New ! allows creation of new input file
Q - Quit ! quits the Modeig/II program
V - View ! views the layer info for the structure
X - eXit ! exits the current command mode
1. C - Commands
The <C> command lists the commands menu to the screen.
2. E - Edit
The <E> command puts Modeig/II in the Edit mode. The editor allows changes to be made to the input file while running the Modeig/II program. If an input file has not been read in by Modeig/II the editor will prompt for the name of an input file, if the entered filename does not exist, a new input file will be created.
The editor will display a '?' prompt when layer information can be input. Any text entered at the '?' prompt will be appended to the end of the input file selected, this feature allows on-line changes to be made to the input structure. Entering an <X> will exit the editor.
3. H - Help
The <H> command puts Modeig/II into the Help mode. This mode displays the users manual on the screen one page at a time, entering <return> displays the next page, an <X> exits Help mode.
4. N - New
The <N> command is used to create a new input file. After prompting for a new filename Modeig/II will go into the Edit mode as described above.
5. Q - Quit
The <Q> command either quits the Modeig/II program or exits the current mode if Modeig/II is in the Edit or Help modes.
6. V - View
The <V> command displays, views on screen, the layer information for the input structure. This is the information Modeig/II will use for the calculations.
7. X - eXit
The <X> command causes Modeig/II to exit the current mode (Edit or Help modes).
III. Input File Cards
The input file is used to define the structure to be analyzed by Modeig/II. The parameters and flags used to perform the calculations on this structure are also defined in this file.
There are eight input cards used to identify the different categories of input information, the ordering of these input cards in the input file is not important. The eight possible input cards are:
CASE - General program variables and flags
STRUCT - General structure information
LAYER - Specific structure (layer) information
MODCON - Boundary conditions
GAMOUT - Confinement factor (Gamma) calculation/output info
LOOPXn - Low-level looping (Nreal, Nloss, Tl) [ n=loop # ]
LOOPZn - High-level looping (Wvl, Grw, Qw) [ n=loop # ]
OUTPUT - Output flags
Only the most important input parameters and flags will be discussed in detail, information on the other parameters can be found in the Variable Glossary.
IV. Structure
A. Direct Layer Input
The simplest way to setup a structure in Modeig/II is to directly define each layer of the structure. The effective index, loss, and thickness are input for each layer and Modeig/II does not generate any layer information. An example of a direct input file is shown in Appendix 1, in this example the layer number is specified directly using the 'LAYER' input card and the layer number appended to the end. The layer number does not have to be directly specified, Modeig/II will automatically increment the layer number as each input line is processed. The parameters used for direct layer input are:
NREAL - Effective index
NLOSS - Loss
TL - Layer thickness (microns)
(maximum of 40 layers)
There are two ways to directly input the effective indices, an explicit method and an implicit method. The explicit method is simply using the 'NREAL=' parameter and assigning a value. The format for this explicit effective index method is:
LAYER1 NREAL=3.214 ! Nreal(1)=3.214
(see App. 1)
The effective index (Nreal) can also be implicitly specified by entering the percentage of aluminum as a parameter (ALPERC). Modeig/II will use the contents of this parameter to calculate the effective index. The 'ALPERC' parameter requires that the wavelength (WVL) be specified before using this method. The format for this implicit effective index method is:
STRUCT WVL=0.7850 ! define the wavelength
LAYER1 ALPERC=0.70 ! Nreal(1)=(ALPERC=70% Al.)=3.214
(see App. 2,3)
The quantum well index (NQW) and the barrier index (NBAR) can also be defined using direct implicit input. The parameters 'QWALPERC' and 'BALPERC' are used respectively. These parameters require that the wavelength (WVL) and the widths ('QW' and 'BW' respectively) be specified before using this method. The format is:
STRUCT WVL=0.7850 ! define the wavelength
STRUCT QW=.0031 QWALPERC=.16 ! quantum well
STRUCT BW=.0001 BALPERC=.385 ! barrier
(see App. 4)
B. Indirect Layer Input
A more complex way of setting up structures in Modeig/II is to use indirect layer input. Pointers (^) are used to assign values to the layers of the structure. A parameter in the 'LAYER' input card is set equal to a pointer to the same parameter (indexed) in the 'STRUCT' input card, since all high-level (Z) looping is done on the 'STRUCT' input parameters, this method allows for flexible high-level looping. Indirect layer input can be used with the 'ALPERC', 'GRW', and 'NSLC' parameters. Up to 4 indexed parameters ('ALPERC1' - 'ALPERC4') can be used for the 'ALPERC' and the 'GRW' parameters, up to 2 indexed parameters can be used with the 'NSLC' parameter. The format for using indirect layer input is:
STRUCT ALPERC1=.70 ALPERC2=.35 ! indexed parameters
LAYER1 ALPERC=^1 ! Nreal(1)=(ALPERC1=.70)
LAYER2 ALPERC=^2 ! Nreal(2)=(ALPERC2=.35)
(see App. 4)
C. Graded Layers
Another feature of Modeig/II is the ability to handle graded layers. To generate the layer information for a graded layer simply specify the effective index for the first slice of the graded layer, the number of slices, and the effective index for the last slice of the graded layer. Modeig/II will automatically generate the effective indices. The layer thicknesses will be generated using the graded width parameter ('GRW') divided by the number of slices ('NSLC'). The following format is used to specify a graded layer:
STRUCT GRW=.1 ! graded width =.1 (microns)
LAYER ALPERC=.70 ! effective index of first slice(implicit)
LAYER NSLC=10 ! number of slices
LAYER ALPERC=.35 ! effective index of last slice (implicit)
(see App. 2,3,4)
D. Multiple Quantum Wells
Modeig/II also has the ability to handle multiple quantum wells. This special structure can be defined using one of the methods described above (direct or indirect input) or by using the special quantum well parameter 'NUMQWS' (number of quantum wells). To use this parameter the multi-quantum well structure must be defined using the 'STRUCT' input parameters 'QW', 'NQW', 'BW', and 'NBAR' to specify the quantum well and barrier widths and indices. The 'LAYER' parameter 'NUMQWS' is used to specify the number of quantum wells.
To specify multiple quantum wells use the following format:
STRUCT NQW=3.64 ! quantum well index (GaAs)
STRUCT QW=.0025 ! single quantum well width
STRUCT NBAR=3.42 ! barrier index
STRUCT BW=.0002 ! barrier width
LAYER NUMQWS=3 ! three quantum wells
(see App. 2,3,4)
A different method is used to specify multiple quantum wells in a Grinsch structure, see the chapter on Grinsch structures for more information.
E. Auto Quantum Well Width Calculation (GaAs)
The quantum well width (QW) of a structure varies directly with the wavelength (WVL) of the structure. Modeig/II has the ability to generate a quantum well width based on the entered wavelength. This feature is useful when the quantum well width is not known for a particular wavelength or when looping on the wavelength. The flag for generating the quantum well width is 'AUTOQW' in the 'CASE' input card, when set equal to zero this function is turned off, when set equal to one the feature is turned on. The format for using auto quantum well width generation is:
CASE AUTOQW=1 ! QW generation on
(see App. 2,3)
This quantum well width generation routine can only be used if the quantum well is Gallium Arsenide and the grating period is near the peak of the gain curve.
F. Symmetric Grinsch Structure
Modeig/II has a powerful symmetric Grinsch structure handling routine. To generate the layer information for a symmetric Grinsch structure use the parameter 'SYM=1'. The symmetric Grinsch routine requires the following parameters to be specified prior to the use of the 'SYM=1' flag: 'GRW', 'ALPERC1', 'ALPERC2', 'NSLC1', 'NSLC2', and 'NUMQWS'. This routine assumes that the graded width (GRW) is the same for both of the graded layers. The format for the symmetric Grinsch structure is:
STRUCT WVL=.7850 ! wavelength
STRUCT NQW=3.64 ! quantum well index (GaAs)
STRUCT QW=.0025 ! single quantum well width
STRUCT NBAR=3.42 ! barrier index
STRUCT BW=.0001 ! barrier width
STRUCT GRW=.1 ! graded width =.1 (microns)
STRUCT ALPERC1=.70 ALPERC2=.35 ! Al %
STRUCT NSLC1=10 NSLC2=10 ! # of slices
STRUCT NUMQWS=3 ! # of quantum wells
LAYER AIR=1.0 ! air layer effective index
LAYER SYM=1 ! symmetric Grinsch flag
(see App. 3 & Pict. 1)
Using the 'NUMQWS' parameter with the 'SYM=1' flag tells Modeig/II to generate the quantum well structure using the 'NQW', 'QW', 'NBAR', and 'BW' parameters. If a multiple quantum well structure is desired 'NBAR' and 'BW' must be defined before using the 'SYM=1' flag.
G. Asymmetric Grinsch Structure
Constructing an asymmetric Grinsch structure is almost identical to constructing a symmetric Grinsch structure. The only difference is Modeig/II will use two values for the graded widths ('GRW1' and 'GRW2'). These two values must be specified along with the other parameters mentioned in the symmetric Grinsch setup before the asymmetric Grinsch flag 'ASYM=1' is used. The format for the asymmetric Grinsch structure is:
STRUCT WVL=.7850 ! wavelength
STRUCT NQW=3.64 ! quantum well index (GaAs)
STRUCT QW=.0031 ! single quantum well width
STRUCT NBAR=3.42 ! barrier index
STRUCT BW=.0001 ! barrier width
STRUCT GRW=.1 GRW2=.2 ! graded widths
STRUCT ALPERC1=.70 ALPERC2=.35 ! Al %
STRUCT NSLC1=10 NSLC2=10 ! # of slices
STRUCT NUMQWS=3 ! # of quantum wells
LAYER AIR=1.0 ! air layer effective index
LAYER ASYM=1 ! asymmetric Grinsch flag
(see App. 3,4 & Pict. 2)
Using Appendix 4 as an example, all of the 'LAYER' input cards could be replaced by:
LAYER AIR=1.0 ! air layer effective index
LAYER ASYM=1 ! asymmetric Grinsch flag
Adding 'NUMQWS=3' to the 'STRUCT' input would create the same layer information as Appendix 4 in a much more concise format.
V. Near and Far Field Calculations
The near field and far field calculations are turned on by setting the 'NFPLT' and 'FFPLT' flags in the 'CASE' input card equal to one. The near field calculations must be made in order to calculate the far field, so if the far field calculations are selected the near field calculations will be made regardless of the current flag setting.
The full width half power calculations (FWHPN and FWHPF) will automatically be made according to the 'NFPLT' and 'FFPLT' flags. This data will be output to the '_dbase' file unless the 'FWHPNO' or 'FWHPFO' flags in the 'OUTPUT' card are set to zero.
The near field and far field data will be output to the files '_nfield' and '_ffield' respectively, if the calculations are made. These files can be suppressed by setting the 'NFOUT' or 'FFOUT' flags in the 'OUTPUT' card equal to zero. The '_nfield' and '_ffield' file data is in tab delimited columnar format with column headers and a leading asterisk, this format is the standard for use with some graphics software packages (i.e. Cricket Graph), or the files can be cut and pasted into a graphics package.
The near field and far field data can also be listed to the '_output' file by setting 'PRINTF' in the 'CASE' input card equal to one. The default is 'PRINTF' equal to zero, no listing of the field data in the '_output' file.
VI. Confinement Factor Calculations (Gamma)
The confinement factor (gamma) calculation is always turned on. The 'LAYGAM', 'GAMALL', and 'COMPGAM' flags in the 'GAMOUT' input card determine what calculations will be made. The 'LAYGAM' flag specifies for which layers of the structure gamma will be calculated and output to the '_dbase' file. The format for using the 'LAYGAM' flag is:
GAMOUT LAYGAM=1-4,6,8-10 ! layers 1,2,3,4,6,8,9,10
(see App. 1)
The '-' (dash) character is used as an inclusive separator while the ',' (comma) character is used as an and separator. In this example gamma will be calculated and output to the '_dbase' file for the layers 1,2,3,4,6,8,9,10.
While the 'LAYGAM' flag is used to tell Modeig/II which gammas to output to the '_dbase' file, the 'GAMALL' flag is used for the '_output' file. If 'GAMALL' is set equal to zero, the '_output' file will contain the gammas specified in the 'LAYGAM' flag. If 'GAMALL' is set equal to one the '_output' file contains the gammas for all the layers in the structure.
The 'COMPGAM' flag is used for the complex gammas. If 'COMPGAM' is set equal to zero, the complex gammas will not be calculated. If 'COMPGAM' is set equal to one the complex gammas for the layers specified by the 'GAMALL' and 'LAYGAM' flags will be calculated. The complex gammas appear only in the '_output' file.
The precision of the gamma calculations is controlled by the 'GAMEPS' parameter in the 'CASE' input card. The format for the 'GAMEPS' parameter is:
CASE GAMEPS=1E-3 ! gamma precision (3 digits)
In this example there will be 3 digits of accuracy (1E-3) in the gamma calculations.
VII. Looping
A. Low-level (X looping)
Modeig/II has the ability to do low-level (X) looping on the layer level. The 'ILX', 'FINV', 'XINC', and 'LAYCH' parameters in the 'LOOPXn' input card must be specified in order to do low-level looping. The 'ILX' parameter specifies which layer parameter ('TL', 'NREAL', 'NLOSS') to loop and must be first in the 'LOOPXn' input card. 'ILX' can be defined using either an integer or a character string to represent the loop variable. The following table can be used to define the 'ILX' parameter:
ILX = 0 or 'OFF' ! no looping
ILX = 1 or 'TL' ! loop on thickness (TL)
ILX = 2 or 'NREAL' ! loop on effective index (NREAL)
ILX = 3 or 'NLOSS' ! loop on the loss (NLOSS)
The 'FINV' parameter specifies the final value of the loop variable when the looping is completed. The 'XINC' parameter specifies the loop increment and must be negative if the loop variable is to be decremented. The 'LAYCH' parameter is used to specify the layer number of the variable to be looped. The following format should be used for low-level (X) looping:
LAYER2 TL=1.0
LOOPX1 ILX='TL' XINCR=-.1 FINV=0.00 LAYCH=2
In this example Modeig/II will loop on the thickness of the second layer of the structure, decrementing by .1 until the thickness equals 0.00 microns. The initial values for all low-level loop parameters are defined in the 'LAYER' input cards.
The number '1' appended to the 'LOOPX' input card is used to specify the order of looping. A maximum of 40 simultaneous and 40 nested loops are possible, allowing up to 1600 loops. To specify simultaneous loops use the same loop number:
LAYER2 NREAL=3.60 TL=1.0 ! simultaneous loops
LOOPX1 ILX='TL' XINCR=-.1 FINV=0.00 LAYCH=2
LOOPX1 ILX='NREAL' XINCR=.01 FINV=3.64 LAYCH=2
To specify nested loops use incremented loop numbers:
LAYER2 NREAL=3.60 TL=1.0 ! nested loops
LOOPX1 ILX='TL' XINCR=-.1 FINV=0.00 LAYCH=2
LOOPX2 ILX='NREAL' XINCR=.01 FINV=3.64 LAYCH=2
The loop procedure for nested looping follows this format:
LOOPX1
LOOPX2
LOOPX3
END LOOPX3
END LOOPX2
END LOOPX1
B. High-level (Z looping)
Modeig/II also has the ability to perform high-level (Z) looping which is looping on the structure level. The input parameters and format are very similar to those used for low-level (X) looping. The 'ILZ', 'FINV', and 'ZINC' parameters correspond to the 'ILX', 'FINV', and 'XINC' parameters of low-level looping. The 'ILZ' parameter specifies which structure parameter (see table below) to loop and must be first in the 'LOOPZn' input card. 'ILZ' can be defined using either an integer or a character string to represent the loop variable. The following table can be used to define the 'ILZ' parameter:
ILZ = 0 or 'OFF' ! no looping
ILZ = 1 or 'WVL' ! loop on wavelength (WVL)
ILZ = 2 or 'GRW' ! loop on graded width (GRW)
ILZ = 3 or 'QW' ! loop on quantum well width (QW)
ILZ = 4 or 'NQW' ! loop on quantum well index(NQW)
ILZ = 5 or 'ALPERC1' ! loop on aluminum percentage 1
ILZ = 6 or 'ALPERC2' ! loop on aluminum percentage 2
ILZ = 7 or 'ALPERC3' ! loop on aluminum percentage 3
ILZ = 8 or 'ALPERC4' ! loop on aluminum percentage 4
ILZ = 9 or 'GRW2' ! loop on graded width 2
ILZ = 10 or 'GRW3' ! loop on graded width 3
ILZ = 11 or 'GRW4' ! loop on graded width 4
ILZ = 12 or 'NSLC1' ! loop on number of slices 1
ILZ = 13 or 'NSLC2' ! loop on number of slices 2
ILZ = 14 or 'BW' ! loop on barrier width
ILZ = 15 or 'NBAR' ! loop on barrier index
ILZ = 16 or 'NUMQWS' ! loop on number of quantum wells
ILZ = 17 or 'QZMR' ! loop on initial guess (real part)
ILZ = 18 or 'QZMI' ! loop on initial guess (imag part)
The 'FINV' parameter specifies the final value of the loop variable when the looping is completed. The 'ZINC' parameter specifies the loop increment and must be negative if the loop variable is to be decremented. The following format should be used for high-level (Z) looping:
STRUCT WVL=.7850
LOOPZ1 ILZ='WVL' XINCR=.005 FINV=.8100
In this example Modeig/II will loop on the wavelength incrementing by .005 until the wavelength equals the final value .8100 angstroms. The initial values for all high-level loop parameters are defined in the 'STRUCT' input cards.
The number '1' appended to the 'LOOPZ' input card is used to specify the order of looping. A maximum of 20 simultaneous and 20 nested loops are possible, allowing up to 400 loops. To specify simultaneous loops use the same loop number:
STRUCT WVL=.7850 GRW=.1
LOOPZ1 ILZ='WVL' XINCR=.005 FINV=.8100
LOOPZ1 ILZ='GRW' XINCR=.05 FINV=.3
To specify nested loops use incremented loop numbers:
STRUCT WVL=.7850 GRW=.1
LOOPZ1 ILZ='WVL' XINCR=.005 FINV=.8100
LOOPZ2 ILZ='GRW' XINCR=.05 FINV=.3
The loop procedure for nested looping follows this format:
LOOPZ1
LOOPZ2
LOOPZ3
LOOPX1
LOOPX2
LOOPX3
END LOOPX3
END LOOPX2
END LOOPX1
END LOOPZ3
END LOOPZ2
END LOOPZ1
C. Initial Guess Generation
Modeig/II has the ability to generate initial guesses (QZMR, QZMI) to find the fundamental mode (PHM<1) in the root search.
The initial guess generation routine only works for structures with single quantum wells, the index and thickness of the layer directly preceding the quantum well is used for the calculation.
The 'INITGS' flag in the 'CASE' input card must be set to one to invoke this routine, otherwise the initial guess must be directly input using the 'QZMR' and 'QZMI' parameters in the 'CASE' input card. 'QZMR' is the real part of the initial guess and 'QZMI' is the imaginary part. The format for automatic initial guess generation is:
CASE INITGS=1 ! initial guess generation
(see App. 2,3)
The format for direct input of the initial guess is:
CASE INITGS=0 ! turn off initial guess generation
CASE QZMR=10.9 QZMI=0.00 ! direct input guess
(see App. 1,4)
D. Wavelength vs. Quantum Well Width
When looping on the wavelength (WVL) it may be necessary to update the quantum well width with each increment of the wavelength. There are two ways of doing this, one is to use the automatic quantum well generation routine described in a previous chapter or to loop on the quantum well width simultaneously. Looping on the quantum well width will automatically turn off the quantum well width generation routine.
(see Auto Quantum Well Width Calculation, IV. E)
E. Multiple Output File Generation
When doing any looping it is possible to store the output into multiple sets of files instead of just the one set of output files ('_dbase', '_output', ...). Setting the 'SPLTFL' flag in the 'OUTPUT' card greater than zero will cause Modeig/II to split the output into multiple files with the looping variables appended onto the filenames. See the General Information section in the Output section of this manual.
VIII. Output
A. Output File General Information
There are 5 possible output file types created by Modeig/II:
_dbase - Output parameters plot file
_layers - Input file layer information
_output - running account of program operation
_nfield - near field plot file
_ffield - far field plot file
The filenames for these file types are created by taking the input file filename, or the entered output filename (see General Operation), and appending the file type suffix to the end. For example:
input filename: inputfile
output filenames: inputfile_dbase
inputfile_layers
inputfile_output
inputfile_nfield
inputfile_ffield
If looping is being performed a multiple file option is available. Setting the 'SPLTFL' flag in the 'OUTPUT' card greater than zero will cause Modeig/II to store the data in multiple output files. Modeig/II will use the looping variables as suffixes to the output filenames, every pass through a loop will create a new output file. The 'SPLTFL' flag can have the following values:
SPLTFL=0 ! single output file
SPLTFL=1 ! multiple output files with lowest order loop intact
SPLTFL=2 ! multiple output files for every loop variable
An example is:
inputfile:
STRUCT WVL=.7900
OUTPUT MODOUT=0 NFOUT=0 FFOUT=0
OUTPUT SPLTFL=1
LOOPZ1 ILZ='WVL' FINV=.7950 ZINCR=.005
input filename: inputfile
output filenames: inputfile_dbase_7900
inputfile_layers_7900
inputfile_dbase_7950
inputfile_layers_7950
The '_nfield' and '_ffield' output files are created only if the near and far field calculation flags are set equal to one (NFPLT and FFPLT, respectively). The '_dbase', '_layers', and '_output' files are created automatically by Modeig/II and will be created for every case unless their output flags are set to zero. To deselect any of the 5 output files or the screen output set its corresponding output flag to zero. The output files and their corresponding output flags are:
_dbase - DBOUT
_layers - LYROUT
_output - MODOUT
_nfield - NFOUT
_ffield - FFOUT
screen - SCROUT
B. Dbase File
The '_dbase' file is the output file which contains the looping variables and these 8 output parameters:
1) PHM - Phase integral
2) GAMMA - Confinement factor
3) WZR - Eigenvalue root (real part)
4) WZI - Eigenvalue root (imaginary part)
5) QZR - WZR squared
6) QZI - WZI squared
7) FWHPN - Near field full width half power
8) FWHPF - Far field full width half power
The '_dbase' file will be created automatically by Modeig/II. If the '_dbase' file is not needed it can be turned off by setting the 'DBOUT' flag in the 'OUTPUT' card equal to zero.
The '_dbase' output file is in tab delimited columnar format with column headers and a leading asterisk. This format is used for input files by many graphics software packages (i.e. Cricket Graph) so graphical outputs are easily obtained.
The '_dbase' file can be customized by selecting or deselecting output parameters using their corresponding output flags. The output flags are in the 'OUTPUT' card and are formed by appending the character 'o' to the end of the parameter name. An example is:
OUTPUT PHMO=0 WZRO=1
In the above example the output parameter PHM is deselected and will not be output to the '_dbase' file, the parameter is still calculated and can be output to another file. The output parameter WZR is selected and will be output to the '_dbase' file. The 8 possible output flags are:
1) PHMO ! ( 0= deselect, 1= select)
2) GAMMAO
3) WZRO
4) WZIO
5) QZRO
6) QZIO
7) FWHPNO
8) FWHPFO
The column order for the '_dbase' output is pre-defined. The high-level looping variables (WVL,GRW,...) are listed first in the order in which the looping takes place. The low-level looping variables (TL,NREAL,NLOSS) are listed next and are also output in the order in which the looping takes place. Finally, the 8 output parameters are listed depending upon their output flags. The order of precedence of the 8 output flags is the order in which they are listed in the above tables.
The low-level looping variables and the output parameter GAMMA can have output for more than one layer. The column headers for these outputs will contain the parameter name with the layer number, in parentheses, appended to the end. An example is:
TL(1) TL(2) GAMMA(1) GAMMA(2) PHM
If using the multiple files option (SPLTFL=1), Modeig/II will use the high-level looping variables as suffixes to the output filename. To avoid redundancy and compress the '_dbase' file, the high-level looping variables will not be listed in the '_dbase' file when this option is selected, since the looping variables appear in the filenames.
An example of the '_dbase' file is 'Appendix1_dbase' located at the back of this manual.
C. Layers File
The '_layers' file contains the effective index, loss, and layer thickness for each layer generated from the 'STRUCT' and "layer' input cards in the input file. A new set of layer information is generated each time Modeig/II goes through a high-level loop, so for each loop the loop variables and the layer information are output to the '_layers' file. If the multiple files option is selected (SPLTFL=1), Modeig/II will create a new '_layers' file each time it passes through a high-level loop, appending the loop variable to the filename as described in the '_dbase' file chapter.
This file is intended to be used as a check to see if Modeig/II is generating the proper layer information and as an record of the cases run. If the '_layer' file is not desired it can be turned off by setting the 'LYROUT' flag in the 'OUTPUT' card to zero.
An example of the '_layers' file is 'Appendix1_layers' located at the back of this manual.
D. Output File
The '_output' file is a running account of the input, calculations, and output that is being used by Modeig/II. the '_output' file can contain an enormous amount of information, if the '_output' file is not desired it can be turned off by setting the 'MODOUT' flag in the 'OUTPUT' card to zero. The data that will be stored in the '_output' file can be controlled using a number of parameters in the 'CASE' input card, for further information see the Variable Glossary at the back of this manual.
An example of the '_output' file is 'Appendix1_output' located at the back of this manual.
E. Nfield File
The '_nfield' file is the output file which contains the near field data. The 5 near field output parameters are:
XXFT - X location
NFINT - Near field intensity
PHASE - Near field phase
NFREAL - Near field (real part)
NFIMAG - Near field (imag part)
The '_nfield' file will be automatically created when the near field or far field calculation flags are set to one (NFPLT or FFPLT).
The '_nfield' output file is in tab delimited columnar format with column headers and a leading asterisk. This format is used for input files by many graphics software packages (i.e. Cricket Graph) so graphical outputs are easily obtained.
An example of the '_nfield' file is 'Appendix1_nfield' located at the back of this manual.
F. Ffield File
The '_ffield' file is the output file which contains the far field data. The 5 far field output parameters are:
THETA - X location
FFIELD - Far field
PHASE - Far field phase
The '_ffield' file will be automatically created when the far field calculation flag is set to one (FFPLT).
The '_ffield' output file is in tab delimited columnar format with column headers and a leading asterisk. This format is used for input files by many graphics software packages (i.e. Cricket Graph) so graphical outputs are easily obtained.
An example of the '_ffield' file is 'Appendix1_ffield' located at the back of this manual.
Variable Glossary
CASE PARAMETERS
ALPHAA - Coefficient used in the computation of G(Y) and Neff (0.019)
AUTOQW - Automatic quantum well width calculation flag (0)
BL - Amount of offset for the left side of the region of applied current (4)
BM - Amount of offset for the center of the region of applied current (0)
BR - Amount of offset for the right side of the region of applied current (-1D-10)
DELTA - Delta used in the computation of the current (0.5)
DELTAL - value of delta for the left side (0.5)
DELTAR - value of delta for the right side (-1D-10)
DTHETA - Increment for the far field angle theta (1.0)
DXIN - Dx used for fine detail in near field (0.1)
EPS1 - Epsilon for convergence test on delta QZ root search (1E-8)
EPS2 - Epsilon for convergence test on magnitude of eigen equation function (1E-8)
FFPLT - Far field calculation flag (0)
GAMEPS - Confinement factor (Gamma) accuracy epsilon (1E-3)
GCOEFF - Coefficient used to compute gain from current density (0.0045)
IDEN - Density of points in X for field calculations per rad or 1/E (10)
IL - Iteration limit maximum number for each root search (30)
IMAX - maximum number of points in each layer for field calculations (not applicable if DXIN is used) (15)
INFX - number of rad or 1/e dist into semi-infinite layers for field calculations (3)
INITGS - Initial guess generation routine flag (0)
INTHM - Half maximum intensity level (0)
JE - Peak current density (within window) (0.0)
KASE - Modeig/II case number (yy/mm/dd)
KCI - Complex freq factor for normalized KO (imag part) (0.0)
KCR - Complex freq factor for normalized KO (real part) (1.0)
KDOF - Subroutine Fields flag: (1)
0 = No field calculations made
1 = Tangential fields at boundaries only calculated
2 = Fields as a function of X calculated iff KOUT=4
KDOFY - Option for computing fields as function of y (1)
(similar to usage of KDOF for x-modes)
note ... if the near field or the far field is to be
calculated (and perhaps plotted) as a function of y
for 2-d problems (i.e. when LXYOPT = 1),
then KDOFY must be 2 and KOUFY must be 3 or 4.
KEIF - control type of eigen equation used for root searching:
1 = unmodified eigen equation from SM matrix
2 = eigeqf renormalized to R.M.S. Mag. of the 4 possible eigeqf
3 = Eigeqf multiplied by WT function to bias search toward intended MM. Weight function is WFMP times squared difference between phase integral index and intended mode index.
Warning: 2&3 are non-analytic functions, can greatly slow root search
KFI - Explicit complex freq factor (imag part)
KFR - Explicit complex freq factor (real part)
KGCZ - Control use of guesses in cmplx root search for all QZ. used to set KM= KGCZ for all guesses. (KGSS.ge.2)
=0 guesses not used, initial iterates about point (1.0,0.0)
=1,2,3 initial iterates at radius of 0.1**KGCZ about each guess.
only converged and iteration limited roots divided out.
=4,5,6,7 radius of 0.1**KGCZ, all other guesses and roots divided out
Warning: Use KGCZ.ge.4 iff guesses are good approx and distinct.
do not use if all guesses the same (KGSS=2) or poor input guess.
if good guesses, KGCZ.ge.4 greatly speeds root search convergence.
KGCZY - Option to control use of estimates for y-modes (3)
(similar in use to KGCZ)
KGSS - Control type of initial guesses for QZ root search. (3)
=1 QZM(M) and KM(M) from input or previous case used for guesses,
=2 all guesses the same (QR max of inner layers),
=3 individual guesses from simple quadratic approx for real(QZ) vs phase integral. intended mode indices MM= MO+M.
KGSSY - Option for obtaining estimates for y-roots (see KGSS)
KM(M) - Index showing QZM quality or type. (5)
input value used only if KGSS=1.
=0 to 7, see KGCZ
=8 QZM used as fixed known root, no search, divided out for others
(for output and prev case KM= 5,6,7, shows type of convergence)
KMDO - Modes are output and fields calculated only for KM.ge.KMDO (5)
KO - Free-space propg const for normalization purposes.
(calculated quantity rather than input)
KO= 2PI/WVL used to norm all propg consts. see KC below.
effective values of WVL and KO altered by use of non-unity KC.
KOUE - Flag to control output from subroutine Eigeqf 1-4 (0)
KOUF - Flag to control output from subroutine Fields 1-4 (3)
KOUFY - Option for outputting fields as function of y (3)
KOUI - Flag to control output from subroutine Putsin 1-4 (1)
KOUS - Flag to control output from subroutine Search 1-4 (3)
KOUZ - Flag to control output from subroutine Czerom 1-4 (3)
KXTL - Control to specify that XL or TL are expected as input (0)
.le. 0 if XL expected as input, TL calculated. (default)
.ge. 1 if TL expected as input, XL calculated. XL(1)= 0.
LAYER - Finite layer over which numer. integral is performed (2)
in fldint (active layer)
modified 9/85
numerator integral is now performed for all finite layers.
layer now just represents the active layer used in cxmode.
LCL - Left spreading factor for the center section (6.)
LCR - Right spreading factor for the center section (6.)
LCUTOF(M)- Field cutoff criterion for left margin for mode M (-1.D10)
fy(x) = 0 for x .lt. LCUTOF(M) or for x .gt. XCUTOF(M)
LLEFT - Current spreading parameter for the left portion (0.025)
LRIGHT - Current spreading parameter for the right portion(0.025)
LXYOPT - Effective index of refraction option (0)
= 1 if effective index of refraction option is desired
to solve 2-dimensional problem.
= 0 otherwise. (normal 1-d problem)
MN - Number of x-modes to be searched for or calculations made (1)
maximum number of modes presently dimensioned for is 10.
for 2-d problem (LXYOPT = 1) the maximum value of MN is 3.
MNY - Number of modes desired for y-direction (2)
MNY must be .le. 10)
MO - Bias for mode indexing of intended modes. MM=MO+M (-1)
NBARFF - N bar used in the far field calculations (3.45)
NFPLT - = 1 to plot near field, = 0 otherwise. (0)
NY - Number of y-slices (no default value, must be specified)
PEROPT - Option for specifying PER(l) and PEI(l): (0)
if = 0, then PER(l) and PEI(l) are input directly
if = 1, then PER(l) and PEI(l) are computed from the input quantities NREAL(l), NLOSS(l), and GAIN0.
PFIELD - Field power used to normalize the field fy(x) (1.)
PMFR - Fract. part for phase integral (phase shift at outer bdy)
assumed in generating guesses. units of pi. (0.3)
PMI(1) - Relative permeability, imag part, all layers (0.0)
PMR(1) - Relative permeability, real part, all layers (1.0)
PRINTF - Control for printing table of fields,intensities,
and phases (0)
QCNT - Mode index used for the input of multiple mode initial
guesses (QZMR(QCNT)= ...) (1)
QZMR - Input set of complex QZ values (x-modes) M= 1,MN QZMI see KGSS=1.
used for guesses for root search, or for field calc, no search. preset to special real values from default case solutions.
if LXYOPT = 0, then MN .le. 10 values may be specified.
if LXYOPT = 1, then MN .le. 3 values may be specified.
(use QCNT for multiple input)
QZNI - Imag part of QZ for generation of initial guesses (-1.D-4)
QZNR - Real part of QZ for generation of initial guesses (0.9)
RAT - Rat factor, used in the computation of n eff (-2.)
ALPHAA coefficient used in the computation of g(y) and n eff (0.019) (also called ALPHAA)
SPREAD - Current spreading parameter (l0) (same as LCL) (6.)
WC - Current window width (2E-10)
WFMP - WT funct multiplier used for modified eigen eq funct. (100.0)
WL - The width of the left portion of the region (5.5)
WR - The width of the right portion of the region (5.5)
XAXLEN - X-axis length (inches) (10.0)
XCUTOF(M) - Field cutoff criterion for right margin for mode M (1.D10)
XU - Unit of length implied for all dimensions (meters) (1E-6)
YAXLEN - Y-axis length (inches) (5.0)
YESTR - Estimates for eigenvalues (modes) in y-direction
YESTI (complex)
(no default estimates are provided. estimates must
be provided if LXYOPT = 1)
MODCON PARAMETERS
APB1 - Principal branch specification for wx-planes. Angle
APB2 into WX half plane for outer layers L1 and L2+1. units of pi. (0.25)
(direction angle of branch cuts in QZ plane is twice APB.)
+0.0.le.APB.le.+1.0 branch includes pos imag axis of wx- plane.
-0.5.le.APB.le.+0.5 branch includes pos real axis of wx- plane.
default APB1=0.25, APB2=0.25, not conventional specification.
rather, imag(wx).ge.real(wx). bound and leaky mode roots for lossless dielectic structures are all on same principal branch. Branch cuts in QZ plane are in pos imag direction. (conventional choice of branches, APB=0.5, KBD=2. bound proper mode roots on principal branch and Riemann sheet of QZ. leaky improper mode roots on second branch and riemann sheet. Branch cuts in QZ plane in negative real direction.)
F1 - Determines how far the integration range will extend into layer 1 or layer LN, respectively (see subroutine fldint)
KBC1 - Control type of boundary conditions at 1-st and last bdy L1,L2.KBC2 open-bdy semi-inf wave admit/imped, or fixed surf admit/imped, also eigen, non-eigen, conditions, and acceptable solutions.
le.0 open boundary condition, non-eigen condition, no search made.
inward and outward soln both acceptable seeKBD1,KBD2
field soln exits for each of KBC1=0, or KBC2=0, or both.
if both, two indeped field soln exist. calc independ from two bdy cond same as for KBC=1, and direction implied by KBD1,KBD2.
=1 open boundary, eigen condition. only a single exponential wave solution acceptable in outer semi-inf layer. (default)
=0,1 wave admit/imped for semi-inf layer is funct of wx(qz), always defined from wx on principal branch. see KBD1,2 and APB1,2
=2 closed bdy, a fixed surf admit/imped YB1,YB2. ZB1,ZB2 ignored
=3 closed bdy, a fixed surf imped/admit ZB1,ZB2. YB1,YB2 ignored
=2,3 a closed bdy eigen cond. outer semi-inf layers ignored.
KBD1 - Controls implied direction of single soln in semi-inf KBD2 layers inward/outward direction interpretation depends on branch def.
KBD1=1 pos. exponent (inward) complex wave solution in layer L1
KBD1=2 neg. exponent (outward) complex wave solution in layer L1
KBD2=1 neg. exponent (inward) complex wave solution in layer L2+1
KBD2=2 pos. exponent (outward) complex wave solution in layer L2+1
default values KBD1=2,KBD2=2. outward soln in semi-inf layers.
iff APB= 0.5, then imag(wx) is pos, and direction sense in/out is that of exp decay regardless of phase propag. inward= leaky, improper or incomming lossy wave. outward= bound, proper or out going lossy wave. iff APB= 0.0, real(wx) is pos. and direction is that of phase propagation regardless of exp decay or growth. direction sense also used for non-eigen case (KBC1,KBC2=0) in generating solutions based on each bdy cond independently. KBD. also used for direction sense for YB,ZB surf admit/imped.
KPOL - Polarization. transv to z-propg, and to x-norm direct. (1)
.le.1 te, transverse electric case. fy= ey. (default)
.ge.2 tm, transverse magnetic case. fy= hy
L1 - First and last boundary for outer boundary conditions.
L2 preset to L1=1, L2=LN-1 for each case.
for other values (partial structures), L1,L2 must be input
for each successive case.
note. adjacent layers (l= L1 and L2+1) are taken to be
semi-infinite for closed bdy cond. (KBC=2,3). all outer layers ignored.
YB1R, YB1I - Fixed bdy surface admit(te)/imped(tm) looking
YB2R, YB2I outward at L1,L2. Used only if respective KBC1,KBC2 are equal to 2 (1.0,0.0)
ZB1R, ZB1I - Fixed bdy surface imped(te)/admit(tm) looking outward ZB2R, ZB2I at L1,L2. Used only respective if KBC1,KBC2 are equal to 3. (1.0,0.0)
looking outward iff KBD1,2 equal 2 (default)
STRUCT PARAMETERS
ALPERC1 - First aluminum percentage
ALPERC2 - Second aluminum percentage
ALPERC3 - Third aluminum percentage
ALPERC4 - Fourth aluminum percentage
BALPERC - Barrier aluminum percentage
BW - Barrier width
GRW - Graded layer width
GRW1 - Width of the first graded layer
GRW2 - Width of the second graded layer
GRW3 - Width of the third graded layer
GRW4 - Width of the fourth graded layer
LGRAD - layer number at the start of the graded layer
LN - total number of layers in the structure
LSTART - starting layer number for the structure
NBAR - Barrier effective index
NQW - Quantum well effective index
NSLC1 - Number of slices for first graded layer
NSLC2 - Number of slices for second graded layer
NUMQWS - Number of quantum wells
QW - Quantum well width
QWALPERC - Quantum well aluminum percentage
LAYER PARAMETERS
AIR - Air layer effective index
ALPERC - Aluminum percentage
ASYM - Asymmetric Grinsch structure flag
BALPERC - Barrier aluminum percentage
BARRIER - Barrier effective index
BW - Barrier width
GRW - Graded layer width
NLOSS - Loss
NREAL - Effective index
NSLC - Number of slices for the graded layer
NUMQWS - Number of quantum wells
QW - Quantum well width
QWALPERC - Quantum well aluminum percentage
SYM - Symmetric Grinsch structure flag
GAMOUT PARAMETERS
COMPGAM - Complex confinement factor (gamma) flag
GAMALL - Gamma layers to output to output file
LAYGAM - Gamma layers to output to dbase file
LOOPX PARAMETERS
FINV - Final value of the of the loop variable when looping
ILX - Loop variable selection flag
0 or 'OFF' = no looping
1 or 'TL' = loop on thickness (TL)
2 or 'NREAL' = loop on effective index (NREAL)
3 or 'NLOSS' = loop on the loss (NLOSS)
LAYCH - Layer number to loop on
XINC - Loop increment value
LOOPZ PARAMETERS
FINV - Final value of the of the loop variable when looping
ILZ - Loop variable selection flag
0 or 'OFF' = no looping
1 or 'WVL' = loop on wavelength (WVL)
2 or 'GRW' =loop on graded width (GRW)
3 or 'QW' = loop on quantum well width (QW)
4 or 'NQW' =loop on quantum well index(NQW)
5 or 'ALPERC1' = loop on aluminum percentage 1
6 or 'ALPERC2' = loop on aluminum percentage 2
7 or 'ALPERC3' = loop on aluminum percentage 3
8 or 'ALPERC4' = loop on aluminum percentage 4
9 or 'GRW2' = loop on graded width 2
10 or 'GRW3' = loop on graded width 3
11 or 'GRW4' = loop on graded width 4
12 or 'NSLC1' = loop on number of slices 1
13 or 'NSLC2' = loop on number of slices 2
14 or 'BW' = loop on barrier width
15 or 'NBAR' = loop on barrier index
16 or 'NUMQWS' = loop on number of quantum wells
17 or 'QZMR' = loop on initial guess (real part)
18 or 'QZMI' = loop on initial guess (imag part)
ZINC - Loop increment value
OUTPUT PARAMETERS
DBOUT - Dbase file output flag (1-enabled)
DPRINT - Dbase file auto print flag (0-disabled)
FFOUT - Far field file output flag (1-enabled)
FPRINT - Far field file auto print flag (0-disabled)
FWHPNO - Near field full width half power dbase output flag
FWHPFO - Far field full width half power dbase output flag
GAMMAO - Confinement factor (GAMMA) dbase output flag
LPRINT - Layer file auto print flag (0-disabled)
LYROUT - Layer file output flag (1-enabled)
MODOUT - Output file output flag (1-enabled)
NFOUT - Near field file output flag (0-disabled)
NPRINT - Near field file auto print flag (0-disabled)
OPRINT - Output file auto print flag (0-disabled)
PHMO - PHM (phase integral) dbase output flag (1-enabled)
QZIO - QZ root search (imag part) dbase output flag
QZRO - QZ root search (real part) dbase output flag
QZMIO - Initial guess (imag part) dbase output flag
QZMRO - Initial guess (real part) dbase output flag
SCROUT - Screen output flag (1-enabled)
SPLTFL - Multiple files flag (suffixes) (0-disabled)
WZIO - WZ (imag part) dbase output flag
WZRO - WZ (real part) dbase output flag
Appendices
Appendix 1
CASE KASE=890316
CASE QZMR=11.70014 QZMI=.003 EPS1=1E-7 GAMEPS=1E-3
CASE PRINTF=0 INITGS=0 AUTOQW=0 NFPLT=1 FFPLT=1
MODCON KPOL=1 APB1=0.25 APB2=0.25
STRUCT WVL=.8300
LAYER01 NLOSS= .00000 NREAL= 3.40000
LAYER02 NLOSS= .00000 NREAL= 3.62000 TL= 0.06000
LAYER03 NLOSS= .00000 NREAL= 3.40000 TL= .25000
LAYER04 NLOSS= .00000 NREAL= 3.40000 TL= .05000
LAYER05 NLOSS= .50000 NREAL= 3.64000 TL= .05000
LAYER06 NLOSS= .50000 NREAL= 3.64000
OUTPUT PHMO=1 GAMMAO=1 WZRO=1 WZIO=0 QZRO=1 QZIO=0
OUTPUT SPLTFL=0
GAMOUT LAYGAM=1 COMPGAM=0 GAMALL=0
1) Direct layer input (explicit)
2) Near/Far field calculations
Appendix 2
CASE KASE=890316
CASE EPS1=1E-7 GAMEPS=1E-3
CASE PRINTF=0 INITGS=1 AUTOQW=1 NFPLT=0 FFPLT=0
MODCON KPOL=1 APB1=0.25 APB2=0.25
STRUCT QW=.0031 NQW=3.64 GRW=.1 WVL=.7850
LAYER AIR=1.0
LAYER ALPERC=.70
LAYER ALPERC=.70
LAYER NSLC=10
LAYER ALPERC=.35
LAYER QWS=1
LAYER ALPERC=.35
LAYER NSLC=10
LAYER ALPERC=.70
LAYER ALPERC=.70 TL=0.0
OUTPUT PHMO=1 GAMMAO=1 WZRO=1 WZIO=0 QZRO=1 QZIO=0
OUTPUT FWHPNO=0 FWHPFO=0
OUTPUT SPLTFL=0 MODOUT=0
GAMOUT LAYGAM=14 COMPGAM=0 GAMALL=0
LOOPX1 ILX=1 FINV=0.90 XINC=-0.1 LAYCH=2
LOOPZ1 ILZ=1 FINV=.8100 ZINC=.005
LOOPZ2 ILZ=2 FINV=.3 ZINC=.1
1) Direct layer input (implicit)
2) Graded Layers
3) Auto Quantum Well Width calculation
4) Low-level (X) looping
5) High-level (Z) looping
6) Initial Guess generation
Appendix 3
CASE KASE=890316
CASE EPS1=1E-7 GAMEPS=1E-3
CASE PRINTF=0 INITGS=1 AUTOQW=1 NFPLT=0 FFPLT=0
MODCON KPOL=1 APB1=0.25 APB2=0.25
STRUCT NQW=3.64 NUMQWS=3 WVL=.7850
STRUCT NBAR=3.42 BW=.0001
STRUCT GRW=.1
STRUCT NSLC1=10 NSLC2=10
STRUCT ALPERC1=.70 ALPERC2=.35
LAYER AIR=1.0
LAYER SYM=1
OUTPUT PHMO=1 GAMMAO=1 WZRO=1 WZIO=0 QZRO=1 QZIO=0
OUTPUT FWHPNO=0 FWHPFO=0
OUTPUT SPLTFL=1 MODOUT=0
GAMOUT LAYGAM=14 COMPGAM=0 GAMALL=0
LOOPX1 ILX='TL' FINV=0.90 XINC=-0.1 LAYCH=2
LOOPZ1 ILZ='WVL' FINV=.7900 ZINC=.005
LOOPZ2 ILZ='GRW' FINV=.2 ZINC=.1
1) Direct layer input (implicit)
2) Graded Layers
3) Multiple Quantum Wells
4) Auto Quantum Well Width generation
5) Symmetric Grinsch Structure
6) Low-level (X) looping
7) High-level (Z) looping
8) Initial Guess generation
9) Multiple Files (suffixes)
Appendix 4
CASE KASE=890316
CASE QZMR=10.9 QZMI=.000 EPS1=1E-7 GAMEPS=1E-3
CASE PRINTF=0 INITGS=0 AUTOQW=0 NFPLT=0 FFPLT=0
STRUCT WVL=.7850
STRUCT QWALPERC=.16 QW=.0031
STRUCT BALPERC=.385 BW=.0001
STRUCT GRW1=.1 GRW2=.2
STRUCT NSLC1=10 NSLC2=10
STRUCT ALPERC1=.70 ALPERC2=.35
LAYER AIR=1.0
LAYER ALPERC=^1
LAYER ALPERC=^1
LAYER GRW=^1 NSLC=^1
LAYER ALPERC=^2
LAYER QW=.0031 QWALPERC=.16 ! quantum well (direct input)
LAYER BW=.0001 BALPERC=.385 ! barrier
LAYER QWS=2 ! two quantum wells (indirect input)
LAYER ALPERC=^2
LAYER GRW=^2 NSLC=^2
LAYER ALPERC=^1
LAYER ALPERC=^1 TL=0.0
MODCON KPOL=1 APB1=0.25 APB2=0.25
OUTPUT PHMO=1 GAMMAO=1 WZRO=1 WZIO=0 QZRO=1 QZIO=0
OUTPUT SPLTFL=0 MODOUT=0
GAMOUT LAYGAM=14 COMPGAM=0 GAMALL=0
LOOPX1 ILX='TL' FINV=0.90 XINC=-0.1 LAYCH=2
LOOPZ1 ILZ='WVL' FINV=.7900 ZINC=.005
LOOPZ1 ILZ='QW' FINV=.0040 ZINC=.0001
1) Direct Layer input (implicit)
2) Indirect Layer input (pointers)
3) Graded Layers
4) Multiple Quantum Wells
5) Asymmetric Grinsch Structure
6) Low-level (X) looping
7) High-level (Z) looping
Appendix1_dbase
PHM GAMMA( 1) WZR QZR FWHPN FWHPF
3.746032E-01 5.628879E-01 3.409635E+00 1.162559E+01 3.098492E-01 3.530000E+01
Appendix1_layers
# of layers = 6
LAYER01 NLOSS= .00000 NREAL= 3.40000 TL= .00000
LAYER02 NLOSS= .00000 NREAL= 3.62000 TL= .06000
LAYER03 NLOSS= .00000 NREAL= 3.40000 TL= .25000
LAYER04 NLOSS= .00000 NREAL= 3.40000 TL= .05000
LAYER05 NLOSS= .50000 NREAL= 3.64000 TL= .05000
LAYER06 NLOSS= .50000 NREAL= 3.64000 TL= .00000
******************************************************
Appendix1_output
1*************************************** PROGRAM MODEIG ****************************************
* * * * * * * * CALCULATION OF GENERAL COMPLEX*16 EIGEN-WAVES IN LAYERED STRUCTURES * * * * * * * *
CASE NO. 890316. 1
SUMMARY OF LAYERED STRUCTURE, POLARIZATION, ANDBOUNDARY CONDITIONS./
IMPLIED UNIT OF LENGTH XU= 0.10000D-05 METERS (BUT NOT USED EXPLICITLY). ALL QUANTITIES NORMALIZED.
NOMINAL WAVELENGTH WVL= .83000 XU, AND FREE-SPACE KO= 2PI/WVL= 7.57010 RAD/XU.
COMPLEX FREQUENCY FACTOR KC= ( 1.00000, .00000). EFFECTIVE-KO= KC*KO= ( 7.57010, .00000).
ALL PROPAGATION COEFFICIENTS ARE NORMALIZED TO EFFECTIVE-KO. (WAVE AND MATERIAL REFRACTIVE INDICES, IF KF= UNITY)
(WAVE ADMITTANCE(TE) AND IMPEDANCE(TM), YX AND YZ, ARE NORMALIZED TO THAT OF FREE SPACE.
NORMALIZED FREQUENCY KF= ( 1.00000, .00000)= FREQ/C*EFF.KO.
POLARIZATION, KPOL= 1 ( =1 TE CASE, =2 TM CASE)
TRANSVERSE ELECTRIC CASE. EX=HY=EZ=0. TANGENTIAL FY=+EY, FZ=+HZ. TRANSVERSE FX=-HX, FY=+EY. LONGITUDINAL FZ=+HZ.
YX=FZ/FY=+HZ/EY, AND YZ=FX/FY=-HX/EY, ARE WAVE ADMITTANCES. (IN THE POS X, Z, OR WAVE DIRECTION).
LAYERED STRUCTURE. 6 LAYERS TOTAL. 5 BOUNDARIES. 4 FINITE LAYERS.
PE=( 11.56000, .00000) PM=( 1.00000, .00000)
L 1 SEMI-INFINITE QN=( 11.56000, .00000) YN=( 1.00000, .00000)
RN=( 3.40000, .00000)
L1= 1---BOUNDARY FOR FIRST BOUNDARY CONDITION------------------------------------------
--L 1---XL= .00000---------------------------------------------------------
PE=( 13.10440, .00000) PM=( 1.00000, .00000)
L 2 TL= .06000 QN=( 13.10440, .00000) YN=( 1.00000, .00000)
( .07229WVL) RN=( 3.62000, .00000) PH0=( 1.64423, .00000)
--L 2---XL= .06000---------------------------------------------------------
PE=( 11.56000, .00000) PM=( 1.00000, .00000)
L 3 TL= .25000 QN=( 11.56000, .00000) YN=( 1.00000, .00000)
( .30120WVL) RN=( 3.40000, .00000) PH0=( 6.43459, .00000)
--L 3---XL= .31000---------------------------------------------------------
PE=( 11.56000, .00000) PM=( 1.00000, .00000)
L 4 TL= .05000 QN=( 11.56000, .00000) YN=( 1.00000, .00000)
( .06024WVL) RN=( 3.40000, .00000) PH0=( 1.28692, .00000)
--L 4---XL= .36000---------------------------------------------------------
PE=( 13.24524, .48084) PM=( 1.00000, .00000)
L 5 TL= .05000 QN=( 13.24524, .48084) YN=( 1.00000, .00000)
( .06024WVL) RN=( 3.64000, .06605) PH0=( 1.37776, .02500)
--L 5---XL= .41000---------------------------------------------------------
L2= 5---BOUNDARY FOR SECOND BOUNDARY CONDITION------------------------------------------
PE=( 13.24524, .48084) PM=( 1.00000, .00000)
L 6 SEMI-INFINITE QN=( 13.24524, .48084) YN=( 1.00000, .00000)
RN=( 3.64000, .06605)
FIRST BOUNDARY CONDITION. L1= 1, KBC1= 1, KBD1= 2.
OPEN BOUNDARY, SEMI-INFINITE ADJACENT LAYER.
PRINCIPAL BRANCH SPECIFICATION FOR WX. ANGLE APB= .250 PI, VECTOR VPB=( .707, .707), (WX*DOT*VPB.GE.0).
EIGEN CONDITION. OUTWARD WAVE SOLUTION ONLY. (DIRECTION OF DECAY IF IM(WX).GT.0, OF PHASE PROPAGATION IF RE(WX).GT.0.)
SECOND BOUNDARY CONDITION. L2= 5, KBC1= 1, KBD2= 2.
OPEN BOUNDARY, SEMI-INFINITE ADJACENT LAYER.
PRINCIPAL BRANCH SPECIFICATION FOR WX. ANGLE APB= .250 PI, VECTOR VPB=( .707, .707), (WX*DOT*VPB.GE.0).
EIGEN CONDITION. OUTWARD WAVE SOLUTION ONLY. (DIRECTION OF DECAY IF IM(WX).GT.0, OF PHASE PROPAGATION IF RE(WX).GT.0.)
END STRUCTURE DESCRIPTION.
****SUBROUTINE SEARCH. KASE NO.=890316. 1, KDOS= 1, KOUS= 3.
SEARCHING FOR MN= 1 EIGENVALUES. FOR INTENDED MODE INDICES FROM MM=MK= 0 TO MM=ML= 0.
REPRESENTATIVE VALUES OF REAL QZ AND CORRESPONDING PHASE INTEGRAL
QZR= .00000, .90000, 8.70871, 13.24524,
PHM= 3.41976PI, 3.28870PI, 1.78075PI, .05908PI,
KGSS= 1. INITIAL GUESSES FROM QZM OF MODSET, EITHER FROM INPUT OR RESULTS FROM PREV. CASE. KGCZ= 3
1 MM= 0 QZ=( 11.70014000, .00300000) PHM=( .326PI, .401DEC) KM= 5 IT= 0
CALLING CZEROM FOR COMPLEX ROOT SEARCH. NN= 1 ROOTS, EPSZ= 0.10D-06, EPSF= 0.10D-07, II= 30, KOUT= 3, KEIF= 1.
SUBROUTINE CZEROM ITERATIONS.
N KR I DZ(I) Z(I) F(Z) F(Z)-REDUCED F-SQD
1 7 4 (-0.552D-07,-0.320D-07) ( 0.116D+02, 0.320D-01) ( 0.457D-12, 0.779D-12) ( 0.457D-12, 0.779D-12) 0.815E-24
RESULTS FROM EIGENVALUE ROOT SEARCH.
--- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 -
1 MM= 0 QZ=( 11.62558656, .03204929) PHM=( .375PI, .291DEC) KM= 7 IT= 4
CONVERGED.
WZ=( 3.40963468, .00469981) PHR=( 1.177, -.538) PHI=( -.204, .670) ATQZ= 0.1755D-02PI/2.
SM= (-0.1547D+01,-0.2507D+00) (-0.9590D-01, 0.6776D+00) DET(SM)= (-0.4967D+00, 0.1310D+01)
(-0.1997D+01,-0.4504D+00) ( 0.4566D-12, 0.7790D-12).
CM= (-0.6962D+00, 0.9009D-01) (-0.4755D-01, 0.2650D+01) DET(CM)= ( 0.0000D+00,-0.2776D-16) + (1.0,0.0)
( 0.8852D-01, 0.2193D+00) (-0.5446D+00,-0.3925D+00). DETNORM= (-0.1710D+00, 0.4483D+00).
L= 1 WX=(-0.6088D-01, 0.2632D+00) YX=(-0.6088D-01, 0.2632D+00) QX=(-0.6559D-01,-0.3205D-01) ATQX=-1.71063624PI/2.
L= 6 WX=( 0.1285D+01, 0.1747D+00) YX=( 0.1285D+01, 0.1747D+00) QX=( 0.1620D+01, 0.4488D+00) ATQX= .17208376PI/2.
RE-STATE MODE SET IN TERMS OF NUMBER TRIED AND LOWEST ACTUALLY FOUND. NO. TRIED= 1. LOWEST FOUND= 0.
NOW MM= 0, 0. FOR ANY MODE WITH PHMM NOT IN INTENDED RANGE, VALUE OF KM IS REDUCED BY 1.
****END SEARCH. RETURN.
****SUBROUTINE FIELDS. KASE NO.=890316. 1, KDOF= 2, KOUF= 3.
CALCULATE FIELD SOLUTIONS FOR EACH QZM(M), M= 1, 1. (NOT CALC FOR NON-CONVG, OR POOR QZ. SHOWN BY KM.LT.KMDO= 5.)
CHECK SUBROUTINE FIELDS 1
--- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 --- --- 1 -
M= 1, MM= 0. QZ=( 11.62558656, .03204929) ATQZ= 0.1755D-02PI/2 PHM=( .375, .291) KM= 7
WZ=( 3.40963468, .00469981) ATWZ= 0.8775D-03PI/2 PHR=( 1.177, -.538) PHI=( -.204, .670).
TWO SOLN. FOR TANGENTIAL BDY. FIELDS, INDEPENDENTLY CALC., F(L) FROM BDY. COND. AT L1= 1
, AND G(L) FROM BDY. COND. AT L2= 5.
NUMERICAL CHECKS, RECIPROCITY AND EIGEN CONDITIONS. USING POYNTING CROSS PRODUCTS F*G. (F*G-DIFF IS WRONSKIAN DET.)
EIG CHECK AT L2= 5, FY*GZ = GY*FZ ,
(-0.4482D-01, 0.3167D+00)=(-0.4482D-01, 0.3167D+00).
DIFF=( 0.4268D-12, 0.7283D-12)=0.
EIG CHECK AT L1= 1, FY*GZ = GY*FZ ,
(-0.9334D+00,-0.2105D+00)=(-0.9334D+00,-0.2105D+00).
DIFF=( 0.4264D-12, 0.7282D-12)=0.
RECIPROCITY CHECK. FG2-FG1=GF2-GF1,
( 0.8886D+00, 0.5272D+00)=( 0.8886D+00, 0.5272D+00).
DIFF=( 0.4441D-15, 0.1110D-15)=0.
SOLUTION FOR TANGENTIAL FIELDS AT THE BOUNDARIES.
EIGEN-FUNCTION FIELD SOLUTION (AVG. OF SOLUTIONS BASED ON THE TWO BDY. COND. SEPARATELY.
BDY. COND. CHECKS. AT L1, YX*FY-FZ= ( 0.194D-12,-0.112D-12). AT L2, YX*FY-FZ= ( 0.430D-12, 0.733D-12).
TANGENTIAL BOUNDARY FIELDS AND TRANSVERSE AVG. POYNTING POWER.
1 X= .00000 FY=( 1.881887, 0.000000)
FZ=( .114562, -.495378) PX=( 0.215592D+00, 0.932244D+00)
2 X= .06000 FY=( 1.815721, .055579)
FZ=( .123753, .779414) PX=( 0.268020D+00,-0.140832D+01)
3 X= .31000 FY=( .490941, .385111)
FZ=( .218001, .651229) PX=( 0.357822D+00,-0.235760D+00)
4 X= .36000 FY=( .245420, .470506)
FZ=( .233075, .647276) PX=( 0.361749D+00,-0.491917D-01)
5 X= .41000 FY=( -.002701, .496707)
FZ=( -.090235, .637592) PX=( 0.316940D+00,-0.430986D-01)
NET TIME-AVG POYNT. PWR. INTO STRUCTURE FROM OUTSIDE, PX(L1)-PX(L2)= (-0.101348D+00, 0.975343D+00).
****SUBROUTINE POWERS. KASE NO.=890316. 1, KDOP= 1, KOUP= 1.
NO CALCULATION OF POWERS YET IMPLEMENTED.
FIELD SOLUTIONS AS A FUNCTION OF X.
1 X= -1.50000 FY=( .072979, -.060387)
FZ=( -.011453, -.022887) PX=( 0.546210D-03, 0.236188D-02)
***
FX=( .249117, -.205553) PZ=( 0.305930D-01,-0.421692D-04).
1 X= -1.40000 FY=( .092373, -.069521)
FZ=( -.012677, -.028548) PX=( 0.813663D-03, 0.351838D-02)
FX=( .315285, -.236607) PZ=( 0.455729D-01,-0.628174D-04).
1 X= -1.30000 FY=( .116532, -.079568)
FZ=( -.013851, -.035519) PX=( 0.121208D-02, 0.524116D-02)
FX=( .397704, -.270749) PZ=( 0.678878D-01,-0.935760D-04).
1 X= -1.20000 FY=( .146551, -.090458)
FZ=( -.014890, -.044084) PX=( 0.180557D-02, 0.780750D-02)
FX=( .500110, -.307740) PZ=( 0.101129D+00,-0.139396D-03).
1 X= -1.10000 FY=( .183764, -.102048)
FZ=( -.015676, -.054585) PX=( 0.268967D-02, 0.116305D-01)
FX=( .627046, -.347083) PZ=( 0.150647D+00,-0.207651D-03).
1 X= -1.00000 FY=( .229785, -.114087)
FZ=( -.016043, -.067433) PX=( 0.400667D-02, 0.173253D-01)
FX=( .784021, -.387913) PZ=( 0.224412D+00,-0.309328D-03).
1 X= -.90000 FY=( .286573, -.126176)
FZ=( -.015769, -.083117) PX=( 0.596855D-02, 0.258087D-01)
FX=( .977702, -.428868) PZ=( 0.334296D+00,-0.460791D-03).
1 X= -.80000 FY=( .356489, -.137724)
FZ=( -.014552, -.102224) PX=( 0.889106D-02, 0.384460D-01)
FX=( 1.216145, -.467912) PZ=( 0.497985D+00,-0.686418D-03).
1 X= -.70000 FY=( .442381, -.147871)
FZ=( -.011994, -.125452) PX=( 0.132446D-01, 0.572712D-01)
FX=( 1.509053, -.502107) PZ=( 0.741824D+00,-0.102252D-02).
1 X= -.60000 FY=( .547673, -.155414)
FZ=( -.007570, -.153627) PX=( 0.197298D-01, 0.853141D-01)
FX=( 1.868095, -.527330) PZ=( 0.110506D+01,-0.152321D-02).
1 X= -.50000 FY=( .676471, -.158690)
FZ=( -.000592, -.187731) PX=( 0.293906D-01, 0.127088D+00)
FX=( 2.307264, -.537895) PZ=( 0.164615D+01,-0.226905D-02).
1 X= -.40000 FY=( .833687, -.155442)
FZ=( .009834, -.228918) PX=( 0.437817D-01, 0.189317D+00)
FX=( 2.843299, -.526083) PZ=( 0.245220D+01,-0.338009D-02).
1 X= -.30000 FY=( 1.025186, -.142643)
FZ=( .024861, -.278548) PX=( 0.652196D-01, 0.282017D+00)
FX=( 3.496179, -.481542) PZ=( 0.365292D+01,-0.503516D-02).
1 X= -.20000 FY=( 1.257944, -.116271)
FZ=( .045972, -.338212) PX=( 0.971544D-01, 0.420107D+00)
FX=( 4.289676, -.390529) PZ=( 0.544158D+01,-0.750063D-02).
1 X= -.10000 FY=( 1.540245, -.071030)
FZ=( .075066, -.409770) PX=( 0.144726D+00, 0.625814D+00)
FX=( 5.252005, -.234949) PZ=( 0.810606D+01,-0.111733D-01).
1 X= .00000 FY=( 1.881887, 0.000000)
FZ=( .114562, -.495378) PX=( 0.215592D+00, 0.932244D+00)
BDY
2 X= .01000 FY=( 1.911365, .008834)
FZ=( .118675, -.282894) PX=( 0.224332D+00, 0.541762D+00)
FX=( 6.517016, .039103) PZ=( 0.124567D+02,-0.171703D-01).
2 X= .02000 FY=( 1.924656, .017944)
FZ=( .121835, -.067993) PX=( 0.233270D+00, 0.133049D+00)
FX=( 6.562290, .070226) PZ=( 0.126314D+02,-0.174110D-01).
2 X= .03000 FY=( 1.921645, .027254)
FZ=( .123976, .147506) PX=( 0.242257D+00,-0.280076D+00)
FX=( 6.551978, .101958) PZ=( 0.125934D+02,-0.173586D-01).
2 X= .04000 FY=( 1.902354, .036687)
FZ=( .125040, .361779) PX=( 0.251142D+00,-0.683645D+00)
FX=( 6.486161, .134028) PZ=( 0.123439D+02,-0.170147D-01).
2 X= .05000 FY=( 1.866947, .046157)
FZ=( .124978, .573011) PX=( 0.259776D+00,-0.106401D+01)
FX=( 6.365391, .166153) PZ=( 0.118915D+02,-0.163912D-01).
2 X= .06000 FY=( 1.815721, .055579)
FZ=( .123753, .779414) PX=( 0.268020D+00,-0.140832D+01)
FX=( 6.190685, .198038) PZ=( 0.112516D+02,-0.155091D-01).
2 X= .06000 FY=( 1.815721, .055579)
FZ=( .123753, .779414) PX=( 0.268020D+00,-0.140832D+01)
BDY
3 X= .05000 FY=( 1.875064, .046389)
FZ=( .119023, .788452) PX=( 0.259752D+00,-0.147288D+01)
***
FX=( 6.393064, .166983) PZ=( 0.119951D+02,-0.165340D-01).
3 X= .10000 FY=( 1.584837, .095812)
FZ=( .141740, .746393) PX=( 0.296148D+00,-0.116933D+01)
FX=( 5.403263, .334131) PZ=( 0.859530D+01,-0.118477D-01).
3 X= .15000 FY=( 1.309069, .153423)
FZ=( .162357, .712003) PX=( 0.321774D+00,-0.907152D+00)
FX=( 4.462727, .529270) PZ=( 0.592322D+01,-0.816452D-02).
3 X= .20000 FY=( 1.044904, .218497)
FZ=( .181226, .685055) PX=( 0.339047D+00,-0.676219D+00)
FX=( 3.561714, .749907) PZ=( 0.388550D+01,-0.535574D-02).
3 X= .25000 FY=( .789558, .290431)
FZ=( .198649, .665380) PX=( 0.350092D+00,-0.467663D+00)
FX=( 2.690740, .993974) PZ=( 0.241318D+01,-0.332630D-02).
3 X= .30000 FY=( .540300, .368726)
FZ=( .214879, .652875) PX=( 0.356831D+00,-0.273517D+00)
FX=( 1.840493, 1.259761) PZ=( 0.145893D+01,-0.201097D-02).
3 X= .31000 FY=( .490941, .385111)
FZ=( .218001, .651229) PX=( 0.357822D+00,-0.235760D+00)
BDY
4 X= .30000 FY=( .540300, .368726)
FZ=( .214879, .652875) PX=( 0.356831D+00,-0.273517D+00)
***
FX=( 1.840493, 1.259761) PZ=( 0.145893D+01,-0.201097D-02).
4 X= .35000 FY=( .294426, .452973)
FZ=( .230127, .647496) PX=( 0.361054D+00,-0.863984D-01)
FX=( 1.001757, 1.545857) PZ=( 0.995175D+00,-0.137174D-02).
4 X= .36000 FY=( .245420, .470506)
FZ=( .233075, .647276) PX=( 0.361749D+00,-0.491917D-01)
BDY
5 X= .35000 FY=( .293802, .450371)
FZ=( .298743, .629863) PX=( 0.371443D+00,-0.505101D-01)
***
FX=( .999642, 1.536981) PZ=( 0.985909D+00,-0.135897D-02).
5 X= .36000 FY=( .245420, .470506)
FZ=( .233075, .647276) PX=( 0.361749D+00,-0.491917D-01)
FX=( .834582, 1.605406) PZ=( 0.960176D+00,-0.132350D-02).
5 X= .37000 FY=( .195970, .485646)
FZ=( .166907, .658088) PX=( 0.352307D+00,-0.479078D-01)
FX=( .665904, 1.656798) PZ=( 0.935115D+00,-0.128895D-02).
5 X= .38000 FY=( .145949, .495779)
FZ=( .100881, .662367) PX=( 0.343111D+00,-0.466574D-01)
FX=( .495304, 1.691112) PZ=( 0.910708D+00,-0.125531D-02).
5 X= .39000 FY=( .095848, .500939)
FZ=( .035620, .660243) PX=( 0.334156D+00,-0.454396D-01)
FX=( .324453, 1.708470) PZ=( 0.886938D+00,-0.122255D-02).
5 X= .40000 FY=( .046144, .501207)
FZ=( -.028276, .651904) PX=( 0.325434D+00,-0.442536D-01)
FX=( .154979, 1.709149) PZ=( 0.863788D+00,-0.119064D-02).
5 X= .41000 FY=( -.002701, .496707)
FZ=( -.090235, .637592) PX=( 0.316940D+00,-0.430986D-01)
BDY
6 X= .40000 FY=( .046144, .501207)
FZ=( -.028276, .651904) PX=( 0.325434D+00,-0.442536D-01)
***
FX=( .154979, 1.709149) PZ=( 0.863788D+00,-0.119064D-02).
6 X= .42000 FY=( -.050245, .487607)
FZ=( -.149721, .617597) PX=( 0.308668D+00,-0.419737D-01)
FX=( -.173610, 1.662327) PZ=( 0.819286D+00,-0.112930D-02).
6 X= .44000 FY=( -.139789, .456470)
FZ=( -.259309, .561957) PX=( 0.292765D+00,-0.398112D-01)
FX=( -.478775, 1.555740) PZ=( 0.777076D+00,-0.107112D-02).
6 X= .46000 FY=( -.219491, .409863)
FZ=( -.353552, .488164) PX=( 0.277682D+00,-0.377601D-01)
FX=( -.750311, 1.396453) PZ=( 0.737041D+00,-0.101593D-02).
6 X= .48000 FY=( -.286877, .350327)
FZ=( -.429715, .399913) PX=( 0.263376D+00,-0.358147D-01)
FX=( -.979792, 1.193139) PZ=( 0.699069D+00,-0.963591D-03).
6 X= .50000 FY=( -.340061, .280755)
FZ=( -.485881, .301251) PX=( 0.249807D+00,-0.339695D-01)
FX=( -1.160803, .955672) PZ=( 0.663053D+00,-0.913947D-03).
6 X= .52000 FY=( -.377785, .204265)
FZ=( -.520979, .196404) PX=( 0.236937D+00,-0.322194D-01)
FX=( -1.289069, .694694) PZ=( 0.628893D+00,-0.866860D-03).
6 X= .54000 FY=( -.399435, .124076)
FZ=( -.534783, .089612) PX=( 0.224730D+00,-0.305595D-01)
FX=( -1.362510, .421176) PZ=( 0.596492D+00,-0.822200D-03).
6 X= .56000 FY=( -.405029, .043377)
FZ=( -.527872, -.015030) PX=( 0.213152D+00,-0.289851D-01)
FX=( -1.381205, .145997) PZ=( 0.565761D+00,-0.779840D-03).
6 X= .58000 FY=( -.395185, -.034786)
FZ=( -.501573, -.113718) PX=( 0.202170D+00,-0.274917D-01)
FX=( -1.347273, -.120466) PZ=( 0.536613D+00,-0.739663D-03).
6 X= .60000 FY=( -.371067, -.107622)
FZ=( -.457868, -.203068) PX=( 0.191754D+00,-0.260754D-01)
FX=( -1.264697, -.368695) PZ=( 0.508967D+00,-0.701555D-03).
6 X= .62000 FY=( -.334312, -.172679)
FZ=( -.399289, -.280220) PX=( 0.181875D+00,-0.247320D-01)
FX=( -1.139069, -.590345) PZ=( 0.482745D+00,-0.665411D-03).
6 X= .64000 FY=( -.286946, -.227926)
FZ=( -.328792, -.342915) PX=( 0.172505D+00,-0.234578D-01)
FX=( -.977309, -.778493) PZ=( 0.457874D+00,-0.631129D-03).
6 X= .66000 FY=( -.231287, -.271801)
FZ=( -.249630, -.389554) PX=( 0.163617D+00,-0.222492D-01)
FX=( -.787327, -.927830) PZ=( 0.434284D+00,-0.598613D-03).
6 X= .68000 FY=( -.169845, -.303250)
FZ=( -.165208, -.419219) PX=( 0.155188D+00,-0.211030D-01)
FX=( -.577684, -1.034768) PZ=( 0.411910D+00,-0.567773D-03).
6 X= .70000 FY=( -.105215, -.321735)
FZ=( -.078957, -.431676) PX=( 0.147193D+00,-0.200157D-01)
FX=( -.357234, -1.097493) PZ=( 0.390688D+00,-0.538521D-03).
46 FIELD POINTS COMPUTED.
FWHP OF THE NEAR FIELD IS 0.309849D+00 MICRONS
FWHP OF THE FAR FIELD IS 0.353000D+02 DEGREES
END FIELD SOLUTIONS FOR MODE, M= 1
OUTPUT OF SUBROUTINE FLDINT:
GAMMA EPSILON= 0.1000E-02
MODE 1: LAYER= 1 GAMMA= 0.562888D+00
Appendix1_nfield
XXFT NFINT PHASE NFREAL NFIMAG
-1.4000E+00 8.5571E-03 -3.6966E+01 7.3911E-02 -5.5626E-02
-1.3000E+00 1.2747E-02 -3.4325E+01 9.3241E-02 -6.3665E-02
-1.2000E+00 1.8989E-02 -3.1685E+01 1.1726E-01 -7.2379E-02
-1.1000E+00 2.8287E-02 -2.9044E+01 1.4704E-01 -8.1652E-02
-1.0000E+00 4.2137E-02 -2.6404E+01 1.8386E-01 -9.1285E-02
-9.0000E-01 6.2770E-02 -2.3764E+01 2.2930E-01 -1.0096E-01
-8.0000E-01 9.3506E-02 -2.1123E+01 2.8524E-01 -1.1020E-01
-7.0000E-01 1.3929E-01 -1.8483E+01 3.5397E-01 -1.1832E-01
-6.0000E-01 2.0749E-01 -1.5842E+01 4.3821E-01 -1.2435E-01
-5.0000E-01 3.0910E-01 -1.3202E+01 5.4127E-01 -1.2697E-01
-4.0000E-01 4.6044E-01 -1.0562E+01 6.6706E-01 -1.2438E-01
-3.0000E-01 6.8590E-01 -7.9212E+00 8.2029E-01 -1.1413E-01
-2.0000E-01 1.0218E+00 -5.2808E+00 1.0065E+00 -9.3033E-02
-1.0000E-01 1.5221E+00 -2.6404E+00 1.2324E+00 -5.6834E-02
1.0000E-02 2.3390E+00 2.6481E-01 1.5294E+00 7.0683E-03
2.0000E-02 2.3718E+00 5.3415E-01 1.5400E+00 1.4357E-02
3.0000E-02 2.3646E+00 8.1256E-01 1.5376E+00 2.1807E-02
4.0000E-02 2.3178E+00 1.1048E+00 1.5221E+00 2.9354E-02
5.0000E-02 2.2328E+00 1.4163E+00 1.4938E+00 3.6932E-02
6.0000E-02 2.1127E+00 1.7533E+00 1.4528E+00 4.4471E-02
1.0000E-01 1.6139E+00 3.4596E+00 1.2681E+00 7.6663E-02
1.5000E-01 1.1122E+00 6.6846E+00 1.0474E+00 1.2276E-01
2.0000E-01 7.2957E-01 1.1811E+01 8.3607E-01 1.7483E-01
2.5000E-01 4.5312E-01 2.0196E+01 6.3176E-01 2.3238E-01
3.0000E-01 2.7394E-01 3.4311E+01 4.3231E-01 2.9503E-01
3.5000E-01 1.8686E-01 5.6977E+01 2.3558E-01 3.6244E-01
3.6000E-01 1.8029E-01 6.2453E+01 1.9637E-01 3.7647E-01
3.7000E-01 1.7558E-01 6.8025E+01 1.5680E-01 3.8858E-01
3.8000E-01 1.7100E-01 7.3596E+01 1.1678E-01 3.9669E-01
3.9000E-01 1.6654E-01 7.9168E+01 7.6692E-02 4.0082E-01
4.0000E-01 1.6219E-01 8.4740E+01 3.6922E-02 4.0103E-01
4.2000E-01 1.5384E-01 9.5883E+01 -4.0203E-02 3.9015E-01
4.4000E-01 1.4591E-01 1.0703E+02 -1.1185E-01 3.6524E-01
4.6000E-01 1.3839E-01 1.1817E+02 -1.7562E-01 3.2795E-01
4.8000E-01 1.3126E-01 1.2931E+02 -2.2954E-01 2.8031E-01
5.0000E-01 1.2450E-01 1.4046E+02 -2.7210E-01 2.2464E-01
5.2000E-01 1.1809E-01 1.5160E+02 -3.0228E-01 1.6344E-01
5.4000E-01 1.1200E-01 1.6274E+02 -3.1960E-01 9.9278E-02
5.6000E-01 1.0623E-01 1.7389E+02 -3.2408E-01 3.4708E-02
5.8000E-01 1.0076E-01 -1.7497E+02 -3.1620E-01 -2.7834E-02
6.0000E-01 9.5568E-02 -1.6383E+02 -2.9690E-01 -8.6112E-02
6.2000E-01 9.0644E-02 -1.5268E+02 -2.6750E-01 -1.3817E-01
6.4000E-01 8.5974E-02 -1.4154E+02 -2.2960E-01 -1.8237E-01
6.6000E-01 8.1545E-02 -1.3040E+02 -1.8506E-01 -2.1748E-01
6.8000E-01 7.7343E-02 -1.1925E+02 -1.3590E-01 -2.4264E-01
7.0000E-01 7.3359E-02 -1.0811E+02 -8.4187E-02 -2.5743E-01
Appendix1_ffield
THETA FFIELD FFPHASE
-9.0000E+01 6.5421E-21 6.3584E+01
-8.9000E+01 4.6904E-05 6.3595E+01
-8.8000E+01 1.8598E-04 6.3626E+01
-8.7000E+01 4.1529E-04 6.3677E+01
-8.6000E+01 7.3361E-04 6.3748E+01
-8.5000E+01 1.1404E-03 6.3839E+01
-8.4000E+01 1.6357E-03 6.3949E+01
-8.3000E+01 2.2203E-03 6.4077E+01
-8.2000E+01 2.8956E-03 6.4223E+01
-8.1000E+01 3.6637E-03 6.4384E+01
-8.0000E+01 4.5273E-03 6.4560E+01
-7.9000E+01 5.4899E-03 6.4750E+01
-7.8000E+01 6.5556E-03 6.4952E+01
-7.7000E+01 7.7290E-03 6.5165E+01
-7.6000E+01 9.0157E-03 6.5386E+01
-7.5000E+01 1.0422E-02 6.5614E+01
-7.4000E+01 1.1954E-02 6.5847E+01
-7.3000E+01 1.3619E-02 6.6082E+01
-7.2000E+01 1.5426E-02 6.6317E+01
-7.1000E+01 1.7383E-02 6.6551E+01
-7.0000E+01 1.9498E-02 6.6782E+01
-6.9000E+01 2.1781E-02 6.7006E+01
-6.8000E+01 2.4241E-02 6.7221E+01
-6.7000E+01 2.6887E-02 6.7427E+01
-6.6000E+01 2.9729E-02 6.7621E+01
-6.5000E+01 3.2775E-02 6.7801E+01
-6.4000E+01 3.6032E-02 6.7966E+01
-6.3000E+01 3.9510E-02 6.8114E+01
-6.2000E+01 4.3212E-02 6.8246E+01
-6.1000E+01 4.7145E-02 6.8360E+01
-6.0000E+01 5.1311E-02 6.8457E+01
-5.9000E+01 5.5711E-02 6.8537E+01
-5.8000E+01 6.0345E-02 6.8600E+01
-5.7000E+01 6.5210E-02 6.8648E+01
-5.6000E+01 7.0300E-02 6.8683E+01
-5.5000E+01 7.5610E-02 6.8707E+01
-5.4000E+01 8.1130E-02 6.8722E+01
-5.3000E+01 8.6851E-02 6.8732E+01
-5.2000E+01 9.2763E-02 6.8740E+01
-5.1000E+01 9.8857E-02 6.8749E+01
-5.0000E+01 1.0512E-01 6.8765E+01
-4.9000E+01 1.1156E-01 6.8791E+01
-4.8000E+01 1.1816E-01 6.8830E+01
-4.7000E+01 1.2494E-01 6.8888E+01
-4.6000E+01 1.3190E-01 6.8968E+01
-4.5000E+01 1.3906E-01 6.9072E+01
-4.4000E+01 1.4647E-01 6.9204E+01
-4.3000E+01 1.5417E-01 6.9363E+01
-4.2000E+01 1.6222E-01 6.9550E+01
-4.1000E+01 1.7070E-01 6.9762E+01
-4.0000E+01 1.7970E-01 6.9995E+01
-3.9000E+01 1.8934E-01 7.0243E+01
-3.8000E+01 1.9973E-01 7.0496E+01
-3.7000E+01 2.1103E-01 7.0744E+01
-3.6000E+01 2.2337E-01 7.0972E+01
-3.5000E+01 2.3694E-01 7.1165E+01
-3.4000E+01 2.5188E-01 7.1307E+01
-3.3000E+01 2.6836E-01 7.1379E+01
-3.2000E+01 2.8654E-01 7.1364E+01
-3.1000E+01 3.0655E-01 7.1244E+01
-3.0000E+01 3.2852E-01 7.1002E+01
-2.9000E+01 3.5253E-01 7.0624E+01
-2.8000E+01 3.7863E-01 7.0097E+01
-2.7000E+01 4.0685E-01 6.9411E+01
-2.6000E+01 4.3712E-01 6.8559E+01
-2.5000E+01 4.6937E-01 6.7534E+01
-2.4000E+01 5.0343E-01 6.6335E+01
-2.3000E+01 5.3909E-01 6.4960E+01
-2.2000E+01 5.7609E-01 6.3411E+01
-2.1000E+01 6.1408E-01 6.1690E+01
-2.0000E+01 6.5269E-01 5.9801E+01
-1.9000E+01 6.9150E-01 5.7751E+01
-1.8000E+01 7.3003E-01 5.5544E+01
-1.7000E+01 7.6779E-01 5.3187E+01
-1.6000E+01 8.0428E-01 5.0688E+01
-1.5000E+01 8.3899E-01 4.8054E+01
-1.4000E+01 8.7140E-01 4.5292E+01
-1.3000E+01 9.0104E-01 4.2412E+01
-1.2000E+01 9.2746E-01 3.9420E+01
-1.1000E+01 9.5026E-01 3.6325E+01
-1.0000E+01 9.6909E-01 3.3135E+01
-9.0000E+00 9.8366E-01 2.9859E+01
-8.0000E+00 9.9375E-01 2.6505E+01
-7.0000E+00 9.9922E-01 2.3081E+01
-6.0000E+00 1.0000E+00 1.9598E+01
-5.0000E+00 9.9608E-01 1.6063E+01
-4.0000E+00 9.8755E-01 1.2485E+01
-3.0000E+00 9.7454E-01 8.8740E+00
-2.0000E+00 9.5726E-01 5.2394E+00
-1.0000E+00 9.3597E-01 1.5907E+00
0.0000E-01 9.1099E-01 -2.0623E+00
1.0000E+00 8.8267E-01 -5.7093E+00
2.0000E+00 8.5140E-01 -9.3399E+00
3.0000E+00 8.1759E-01 -1.2944E+01
4.0000E+00 7.8167E-01 -1.6510E+01
5.0000E+00 7.4409E-01 -2.0027E+01
6.0000E+00 7.0528E-01 -2.3484E+01
7.0000E+00 6.6567E-01 -2.6869E+01
8.0000E+00 6.2570E-01 -3.0170E+01
9.0000E+00 5.8577E-01 -3.3376E+01
1.0000E+01 5.4625E-01 -3.6475E+01
1.1000E+01 5.0751E-01 -3.9454E+01
1.2000E+01 4.6985E-01 -4.2303E+01
1.3000E+01 4.3355E-01 -4.5008E+01
1.4000E+01 3.9886E-01 -4.7559E+01
1.5000E+01 3.6598E-01 -4.9945E+01
1.6000E+01 3.3505E-01 -5.2157E+01
1.7000E+01 3.0620E-01 -5.4186E+01
1.8000E+01 2.7948E-01 -5.6026E+01
1.9000E+01 2.5493E-01 -5.7673E+01
2.0000E+01 2.3254E-01 -5.9127E+01
2.1000E+01 2.1226E-01 -6.0388E+01
2.2000E+01 1.9402E-01 -6.1464E+01
2.3000E+01 1.7771E-01 -6.2364E+01
2.4000E+01 1.6321E-01 -6.3104E+01
2.5000E+01 1.5039E-01 -6.3700E+01
2.6000E+01 1.3908E-01 -6.4176E+01
2.7000E+01 1.2913E-01 -6.4555E+01
2.8000E+01 1.2039E-01 -6.4863E+01
2.9000E+01 1.1269E-01 -6.5125E+01
3.0000E+01 1.0588E-01 -6.5368E+01
3.1000E+01 9.9817E-02 -6.5611E+01
3.2000E+01 9.4377E-02 -6.5876E+01
3.3000E+01 8.9441E-02 -6.6176E+01
3.4000E+01 8.4905E-02 -6.6523E+01
3.5000E+01 8.0683E-02 -6.6925E+01
3.6000E+01 7.6702E-02 -6.7384E+01
3.7000E+01 7.2903E-02 -6.7902E+01
3.8000E+01 6.9243E-02 -6.8476E+01
3.9000E+01 6.5688E-02 -6.9102E+01
4.0000E+01 6.2216E-02 -6.9773E+01
4.1000E+01 5.8815E-02 -7.0483E+01
4.2000E+01 5.5477E-02 -7.1223E+01
4.3000E+01 5.2205E-02 -7.1986E+01
4.4000E+01 4.9001E-02 -7.2763E+01
4.5000E+01 4.5874E-02 -7.3546E+01
4.6000E+01 4.2833E-02 -7.4328E+01
4.7000E+01 3.9887E-02 -7.5100E+01
4.8000E+01 3.7047E-02 -7.5857E+01
4.9000E+01 3.4321E-02 -7.6591E+01
5.0000E+01 3.1717E-02 -7.7297E+01
5.1000E+01 2.9241E-02 -7.7970E+01
5.2000E+01 2.6898E-02 -7.8606E+01
5.3000E+01 2.4691E-02 -7.9202E+01
5.4000E+01 2.2619E-02 -7.9754E+01
5.5000E+01 2.0684E-02 -8.0261E+01
5.6000E+01 1.8881E-02 -8.0721E+01
5.7000E+01 1.7208E-02 -8.1135E+01
5.8000E+01 1.5659E-02 -8.1501E+01
5.9000E+01 1.4230E-02 -8.1821E+01
6.0000E+01 1.2914E-02 -8.2096E+01
6.1000E+01 1.1705E-02 -8.2328E+01
6.2000E+01 1.0595E-02 -8.2519E+01
6.3000E+01 9.5781E-03 -8.2673E+01
6.4000E+01 8.6468E-03 -8.2791E+01
6.5000E+01 7.7945E-03 -8.2879E+01
6.6000E+01 7.0148E-03 -8.2938E+01
6.7000E+01 6.3016E-03 -8.2972E+01
6.8000E+01 5.6490E-03 -8.2986E+01
6.9000E+01 5.0519E-03 -8.2982E+01
7.0000E+01 4.5052E-03 -8.2963E+01
7.1000E+01 4.0046E-03 -8.2932E+01
7.2000E+01 3.5460E-03 -8.2893E+01
7.3000E+01 3.1259E-03 -8.2848E+01
7.4000E+01 2.7411E-03 -8.2798E+01
7.5000E+01 2.3887E-03 -8.2746E+01
7.6000E+01 2.0665E-03 -8.2694E+01
7.7000E+01 1.7722E-03 -8.2642E+01
7.8000E+01 1.5040E-03 -8.2592E+01
7.9000E+01 1.2606E-03 -8.2545E+01
8.0000E+01 1.0405E-03 -8.2501E+01
8.1000E+01 8.4291E-04 -8.2461E+01
8.2000E+01 6.6690E-04 -8.2425E+01
8.3000E+01 5.1190E-04 -8.2393E+01
8.4000E+01 3.7748E-04 -8.2366E+01
8.5000E+01 2.6341E-04 -8.2343E+01
8.6000E+01 1.6958E-04 -8.2324E+01
8.7000E+01 9.6060E-05 -8.2309E+01
8.8000E+01 4.3038E-05 -8.2299E+01
8.9000E+01 1.0857E-05 -8.2293E+01
9.0000E+01 1.5145E-21 -8.2291E+01
Pictures
PICTURE 1
PICTURE 2
Error Messages
File system errors
33 - directory full
34 - disk full
35 - no such volume
36 - I/O error
37 - bad file name
38 - file not open
39 - end of file
40 - tried to position to before start of file
41 - memory full or file wont fit
42 - too many open files
43 - file not found
44 - diskette is write protected
45 - file is locked
46 - volume is locked
47 - file si busy
48 - duplicate filename
49 - file already open
50 - error in user parameter list
51 - invalid file reference number
52 - get file position error
53 - volume not on line error
54 - permissions error
55 - drive volume already on-line
56 - no such drive
57 - not a Mac diskette
58 - volume in question belongs to an external fs
59 - file system error during rename
60 - bad master directory block
61 - write permissions error
Runtine error codes
64 - insufficient memory
65 - numeric overflow
66 - divide by zero
67 - argument error
68 - stack underflow
69 - stack overflow
70 - COMMON buffer not found
71 - illegal record length
72 - record overflow
73 - duplicate virtual array
74 - virtual buffer not found
75 - subprogram not found
76 - FORMAT syntax error
77 - file not open for WRITE
78 - file not open for READ
79 - SELECT CASE match error
80 - argument list mismatch
81 - FORMAT descriptor error
82 - array boundary error
83 - illegal function call
84 - floating point hardware not found
85 - illegal substring expression