He is correct that this has nothing to do with CW. What has been describes would cause a link error in most "C" systems, as you have doubly defined it.
Perhaps the reason you are doing this has to do with PE and the regeneration of the code.
You should not define things in the files generated by PE, as they could get lost later.
If you are using PE generated code, normally you pass in variables, and other variables you need can be defined in files you create. Look at the API that PE has generated and see if this is not the case - that it is un-necessary to define a variable in the PE generated code. Both the .f file and the.c file will document the APi.