The flowchart of algorithm implemented in ArrayD to compute all possible design solutions for a given input parameters. The program first validates the given input parameters and then calculates the grid configuration. Note that in the case of 384 well plate type the pin-to-pin distance is 4500 microns on the print-head and therefore the max-grid-size is set at 4000 microns, which is 500 microns less than the upper limit (4500 microns). Similarly for 96 well plate type, the max-grid-size is set at 8500 microns (500 microns less than the upper limit 9000 microns). Maximum number of pins in the print head is taken as 48 and conforms to most printing robots. The spot distance database has inter-spot distances of 300, 250, 220, 200, 190, 180 and 170 microns. Users can expand this database. The variables used in the flowchart: pin_x: pin number in X-direction; pin_y: pin number in Y-direction; R: number of replicates; D: pin-to-pin distance; d: inter-spot distance; SGx (max): maximum possible number of super grids in X-direction; SGy (max): maximum possible number of super grids in Y-direction; GT: Total number of grids in the slide; Gx: Total Number of Grids in X-direction; Gy: Total Number of grids in Y-direction; ST: Maximum possible number of samples in each grid; Sx: Maximum possible number of samples in each grid in X-direction; Sy: Maximum possible number of samples in each grid in Y-direction; Xs: number of samples in each grid in X-direction for a solution; Ys: number of samples in each grid in Y-direction for a solution; Sg: Total number of samples per grid for a solution; A: Total area covered by the microarray on the slide.