A C++ procedure has been developed for the design and optimization of Fast Reactor (FR) cores. It couples the ERANOS based EQL3D procedure developed at PSI for FR equilibrium fuel cycle analysis with a dedicated MATLAB script that evaluates the thermal-hydraulic characteristics of the reactor core. It is conceived to investigate reactors with both standard pins and annular pins. The procedure accepts as input the physical properties of the system, as well as a set of target core parameters presently consisting of core power, maximum fuel burnup, multiplication factor, inner pin diameter (for annular pins) or maximum pressure losses (for standard pins), and core height. It gives as a result a core design fulfilling these design objectives and meeting the constraints on maximum fuel and clad temperatures. In case of annular pins, it also equalizes the temperature rise inside and outside of the core average pin. The procedure considers the possibility of two-zone cores and adjusts the fuel composition in the two zones to achieve an optimal radial power distribution. Finally, it can evaluate safety parameters and fuel cycle characteristics both at beginning-of-life and at equilibrium. As a test case, the procedure has been used for the pre-conceptual design of a sub-critical Gas Fast Reactor core employing inert-matrix sphere-pac fuel and annular pins with SiC cladding.