[TRNSYS-users] Compaq visual fortran 6.1A

David Chèze david.cheze at clipsol.com
Wed Dec 1 00:00:43 PST 2004

Michaël Kummert a écrit :

> David,
>> I'm trying to change/develop user components and everything (CVF 
>> configurations, building of the different Dlls with old TRNSYS user 
>> types etc...) was ok until I decide to insert "use TRNSYSconstants"  
>> in one of my subroutine, compiler returning the following message:
>> T:\TypesUtil\Type242\Type242.f90(89) : Error: The module file cannot 
>> be read.  Its format requires a more recent F90 compiler.   
>> Should I necessarly update my CVF to 6.6 or is there something i can 
>> do wrong ?
> Module files (.mod) are compiler-dependent so you cannot mix different 
> compiler versions. Theoretically, you could get rid of that error by 
> recompiling the main TRNSYS DLL (TRNDll.dll) with your compiler. 
> However, in your case you would have a different problem, which is that 
> CVF versions prior to 6.6B do not fully support the instructions to 
> build a multi-DLL project that are used in the TRNDll source code.
> So in short, yes, you do have to upgrade to CVF 6.6B in order to be able 
> to use the module files.
> A more general note on adding user Types in external DLL's:
> You can create Types in any programming language with a compiler that is 
> able to create Windows DLL's. The advantage of using CVF6.6b (or IVF) is 
> that you are able to directly "use" the data modules, which means you 
> can use kernel constants and functions without having to re-declare 
> them. If you are using another compiler (in Fortran or not), you are 
> still able to create a user Type that uses the access functions, but you 
> have to declare them correctly (see e.g the Trnsys.h file for C/C++ 
> Types). So, again in theory, you should be able to create an external 
> DLL with CVF 6.1 if you do not use the modules but rather access the 
> kernel variables through access functions. This assumes CVF 6.1 is able 
> to create working Windows DLL's, which I don't think is true. Please let 
> us know if you succeed in doing so.
> I hope this helps,
> Michaël Kummert
When I tried to recompile the main TRNDll, I get the following error 
message with each type:
C:\Program Files\Trnsys16\SourceCode\Types\Type109.f90
f90: Error: Unrecognized keyword "arg_temp_created" for option "-check"
C:\Program Files\Trnsys16\SourceCode\Kernel\View.for
f90: Error: Unrecognized keyword "arg_temp_created" for option "-check"
C:\Program Files\Trnsys16\SourceCode\Kernel\TrnsysConstants.f90
f90: Error: Unrecognized keyword "arg_temp_created" for option "-check"
etc... for all types : it sounds like if CVF 6.1 is not able to re- 
compile/build the TRNDll, isn't it? Is there any option I should(n't) 

Moreover it's possible to create multiDll project with CVF 6.1A (See the 
screenshot attached file) and until I use the "use TRNSYSconstants" 
there wasn't pb and I was able to build the "CLIPSOLDll.dll". Since I 
have to adapt all of my previous user types to new TRNSYS 16 
programming, I have not yet attempted to run simulation that uses these 
types. So I can't say categorically that it works well about the 
multiDll structure.


David Chèze
Développement produit
CLIPSOL - www.clipsol.com
PAE Les Combaruches
73100 Aix-les-Bains - France
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screenshot.jpg
Type: image/jpeg
Size: 396181 bytes
Desc: not available
URL: <http://lists.onebuilding.org/pipermail/trnsys-users-onebuilding.org/attachments/20041201/d2588e12/attachment-0001.jpg>

More information about the TRNSYS-users mailing list