[TRNSYS-users] problems creating a new type

David Bradley bradley at tess-inc.com
Thu Aug 24 07:00:25 PDT 2006


Marijke,

>1/I want to call the Psychrometrics - subroutine that is already available 
>in Trnsys from my dll.
>I found some info on how to do this in the Manuel's Programmer's guide but 
>it is still unclear to
>me where in the Fortran-file i have to put these lines. I have the 
>temperature and relative humidity
>of the air as inputs but i want to calculate the wet bulb temperature and 
>use it in my calculations
>within the dll. How should i do this?

there should be no difference in the way that your Type (in an external 
DLL) calls the psychrometrics() routine and the way that a standard Type 
(in TRNDll.dll) calls the psychrometrics() routine. The two basic arguments 
required by psychrometrics() are a mode switch to tell the routine what 
property data you are providing and then an array that contains that data 
and some space for psychrometrics to fill in the rest. The double precision 
array is usually called PSYDAT() and is dimensioned to 7 spots. One of the 
clearest examples of callng psychrometrics is in Type33:

C       SET UP ARRAY PSYDAT TO GIVE INFO TO SUBROUTINE PSYCH
100      PSYDAT(1) = PATM
                 PSYDAT(2) = TDRY
                 PSYDAT(3) = TWET
                 PSYDAT(4) = RELHUM
                 PSYDAT(5) = TDEW
                 PSYDAT(6) = HUMRAT
                 PSYDAT(7) = ENTHAL

C       DO NOT PRINT ERROR WARNINGS ON THE FIRST CALL
                 CALL 
PSYCHROMETRICS(TIME,INFO,1,MODE,WBMODE,PSYDAT,0,STATUS,*101)
                 CALL LINKCK('TYPE 33','PSYCHROMETRICS',1,99)
101      CONTINUE

C       GET INFO FROM PSYCH
                 PATM = PSYDAT(1)
                 TDRY = PSYDAT(2)
                 TWET = PSYDAT(3)
                 RELHUM = PSYDAT(4)
                 TDEW = PSYDAT(5)
                 HUMRAT = PSYDAT(6)
                 ENTHAL = PSYDAT(7)
                 RHOWM = PSYDAT(8)
                 RHOWA = PSYDAT(9)

>2/My second question is that i need to call an external file from the dll 
>to choose in that file appropriate
>values according to an input value calculated within the dll (like chosing 
>a value from a table). I think
>calling a dynamic data can be a good way to do this. Does anyone know how 
>this works and where i
>have to put the necessary lines in my fortran-file?

a call to DynamicData is useful if you need the information in your 
external file to be interpolated. If that is the case, then there should be 
some information in the 08 Programmer's Guide manual on how to call 
DynamicData. There are also some good examples again in the code; like with 
the psychrometrics() call, there is no difference between a call to 
DynamicData() in the TRNDll.dll and in an external DLL. You might look at 
Type71 for an example:

C    USE THE DATA SUBROUTINE TO INTERPOLATE TO FIND THE IAM FOR BEAM RADIATION
         X(1)=THETAL
         NXJ(1)=NXDATAL
         X(2)=THETAT
         NXJ(2)=NXDATAT
         CALL DYNAMICDATA(LUDATA1,2,NXJ,1,X,Y,INFO,*821)
         CALL LINKCK('TYPE71','DYNAMICDATA  ',1,99)
821     XKATB=Y(1)

One warning I might give is that when you are dealing with data files that 
are read by external DLLs, you have to make sure that both the TRNDll.dll 
and the external DLL are set to the same configuration (release or debug). 
If the configurations do not match then you will get all sorts of strange 
errors that will make you crazy.
Cheers,
  David




****************************************************************************************
Thermal Energy System Specialists (TESS), LLC
David BRADLEY                           2916 Marketplace Drive - Suite 104
Partner                                        Madison, WI 53719
Phone: (608) 274-2577 USA
Fax: (608) 278-1475
E-mail: bradley at tess-inc.com
Web Pages:  http://www.tess-inc.com     and      http://www.trnsys.com

"Providing software solutions for today's energy engineering projects"
****************************************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.onebuilding.org/pipermail/trnsys-users-onebuilding.org/attachments/20060824/b0993ec4/attachment-0005.htm>


More information about the TRNSYS-users mailing list