[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [TRNSYS-users] Compaq visual fortran 6.1A
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.
[TRNSYSCONSTANTS]
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)
activate?
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.
Thanks
--
David Chèze
--
Développement produit
CLIPSOL - www.clipsol.com
PAE Les Combaruches
73100 Aix-les-Bains - France
tel:0479349818