For a quick and dirty, assume the engine outputs water at 180F and gets water returned at 150F when operating at full power. This condition holds true for all industrial engines I have operated. That means your cooler needs to make a 30 degree temperature drop.
Next, your heat rate. It's a safe assumption to say your cooling water heat rate is equal to the engine power output.
With those two numbers you can calculate the required mass flow rate.
The radiator area is also going to require knowledge of ambient conditions. You get to pick your max ambient temperature and you can pick either mass flow or surface area. That means you buy a fan and pick the radiator that works with it or buy a radiator and pick the fan that works with it. Obviously the best route will require some optimization so you don't end up with an extreme sized fan or radiator.
Modern engines with mega turbocharging and aftercooling may fudge these numbers a bit.
If your application is automotive you should also consider duty cycle. It's unlikely the engine will spend extended periods at full power so you can increase or decrease the volume of the system to create a capacitive effect which will allow you to undersized the cooling system a bit.
The example described is a design for a locomotive and will differ in various ways for a automotive design. Automotive systems usually are encountering very frequent shifts in load, engine speed and vehicle speed that call for swift adaptations in cooling system parameters over
a rather wide range of operating conditions. usually the most critical conditions is not with the engine under full load, but reduced load under slow speed and reduced airflow through the radiator in traffic jams or city traffic. That may make designing a cooling system a lot more complicated.