[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TRNSYS-users] How to connect dynamic number of output variables



Henk,

 

Depending on which version of the software you're using (16 or 17), I'm guessing you didn't set the INFO(6) array indicator correctly or didn't call the SetNumberofOutputs function correctly.  Let's say you had two outputs plus a variable number of outputs depending on the number of layers (let's say this is parameter 5).

Here are the relevant snippets of code you'll need in both versions:

 

v 17:

!Declarations

Integer N_Layers_Max, N_Layers,N_Outputs

Parameter (N_Layers_Max=99)

Double Precision Temp_Layer(N_Layers_Max)

 

!First Call of Simulation Manipulations

If (FirstCallofSimulation) Then

   N_Layers=JFIX(getParameterValue(5)+0.5)

   If (N_Layers>N_Layers_Max) Then

      Call FoundBadParameter(5,'Fatal','The number of layers must be less than 99.')

      Return

   EndIf

 

   N_Outputs=2+N_Layers

   Call SetNumberofOutputs(N_Outputs)

 

EndIf

 

 

v 16:

!Declarations

Integer N_Layers_Max, N_Layers, N_Outputs, N_Parameters, N_Inputs, N_Derivatives

Parameter (N_Layers_Max=99)

Double Precision Temp_Layer(N_Layers_Max)

 

!First Call of Simulation Manipulations

If (Info(7).eq.-1) Then

   N_Layers=JFIX(PAR(5)+0.5)

   If (N_Layers>N_Layers_Max) Then

      Call Typeck(-4,Info,0,5,0)

      Return 1

   EndIf

 

   N_Outputs=2+N_Layers

   N_Parameters=3

   N_Inputs=3

   N_Derivatives=0

   Info(6)=N_Outputs

    Call Typeck(1,Info,N_Inputs,N_Parameters,N_Derivatives)

EndIf

 

Hope this helps.

 

Jeff

---

Jeff Thornton

President - TESS LLC

22 N. Carroll Street, Madison WI USA 53703

Office: (608) 274-2577  Fax: (608) 278-1475

www.tess-inc.com

E-Mail: thornton@tess-inc.com

 

On 05/08/2012 8:22 am, Henk Stijnen wrote:

Hi,

 

I’ve created a component in which it’s possible to specify a dynamic number of output variables. In the parameters there is a variable “number of segments to monitor” and depending of that number there are output variables created. So far OK. However, when I link the newly created output variables to some printer I get an error “The listed input referenced an output number beyond the allocated outputs for the connected type”. What can be wrong?

 

Thanks for help

 

Henk