This is generated when using = to compare REAL values. It works with INTEGERS but GDL is prone to false results for Real values due to precision.
The usual workaround in your coding is:
EPS = 0.0001 !or some other small value to suit your object
IF ABS (WALL_SKINS_PARAMS[i] - 3.00) < eps THEN...
this way if the divergence between values is less the EPS then the result will be TRUE, and any value greater than 3.00 will be FALSE
You would expect the core to be an integer (0, 1 or 3), but because WALL_SKINS_PARAMS can also tell you the skin thickness, the entire parameter is probably treated as a real number (just my guess).
So the core value (although it may be exactly '3') is also treated as a real number, which means it could have a decimal precision.
You are then trying to compare something that may have a decimal precision with something that does not - hence the message to say "Use of real types can result in precision problems".
In this case it is just a warning and can probably be ignored - you will only see it when checking the script.
Or it is a case of scripting as DGSketcher suggested to allow for a small decimal range (error).