This discussion may not be for everyone. Writing a decoder sound slot is advanced work that requires patience while dealing with with very incomplete documentation. Still, I find it rewarding when "a plan comes together."
There should be a more prototypical way to play radiator fan sounds than just randomly.
The sound file is S0786, an EMD 567C for a V5L decoder. The target locomotives are a pair of Red Caboose GP9s for the NR&W with brass frames and P&D drives.
The RC GP9 kit is an early model with 4 fans. On the prototype, as water temperature rises, first the shutters behind the cab open up, then the fans come on one-by-one. I'm not modeling all of this, since I don't want to use 4 sound slots in the simulation. For now it's "Keep it simple" with a single set of shutters and only one fan sound.
The new sound slot is named Radiator Fan Logic 2 (Logic 1 didn't work...) Under Function Mapping, it is activated when the engine is started and it exits when the engine shuts down. Click on any image below to enlarge it to reading size.

Exploring the sound slots in the file, I found both a radiator fan sound and shutter open/close sounds. Since the prototype turns on fans as a function of water temperature, it seems like one approach might be to create a loose simulation of water temperature based on time spent in different throttle notches.
We will need a few resources:
1. A way to define some constant values we will use
2. A timer
3. A way to find out the current throttle notch
4. A way to accumulate water temperature
1. First, to the constants. We define those in the sound slot itself. Look at Constant Values to the left of the slot. Pretty much all of these were empirically derived based on what I liked to hear in the sound slot simulator.

2. In a sound slot there are several timers, each of which is local to that sound slot. So we don't need to concern ourselves with sharing timers or for the most part other resources other than share<n>, where <n> is a digit. On a state transition in a sound slot, a timer appears as "tmr1" etc.
3. A way to discover the current throttle notch. So far, every V5 diesel file I've examined consistently uses the same values of share1. Once the engine finishes its start up,
A. Idle = 9
B. Run 1 = 13
C. Run2 = 16
D. Run 3 = 19 (seeing a pattern here?)
E. Run 4 = 22
F. Run 5 = 25
G. Run 6 = 28
H. Run 7 = 31
I. Run 8 = 34
In the next post we will discover a way to model radiator water temperature and start/stop the fans and shutters in a somewhat more prototypical way.