C*********************************************************************** ! This component has been assigned Type Number 210. If that number conflicts with ! another user Type number, you will need to change it and recompile the appropriate ! dll. SUBROUTINE TYPE210(TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) !DEC$ATTRIBUTES DLLEXPORT :: TYPE210 C --------------------------------------------------------------------- C C TYPE 210 : CLAMPED SPLIT C C*********************************************************************** DOUBLE PRECISION XIN,OUT REAL K,PAR C INTEGER IOSTAT DIMENSION XIN(2),OUT(4),PAR(2) C DIMENSION IOSTAT(4) ! Set the version information for TRNSYS IF (INFO(7).EQ.-2) THEN INFO(12) = 15 RETURN 1 ENDIF P2= XIN(1) P3= XIN(2) P0= PAR(1) K= PAR(2) S1=1. S2=1. S3=1. DP2=P0-P2 DP3=P0-P3 IF (DP2.NE.0.) S2=SIGN(1.,DP2) IF (DP3.NE.0.) S3=SIGN(1.,DP3) W2=S2*SQRT(2.*ABS(DP2)/K) W3=S3*SQRT(2.*ABS(DP3)/K) W1=W2+W3 IF (W1.NE.0.) S1=SIGN(1.,W1) P1=P0+0.5*K*S1*W1**2 OUT(1)= P1 OUT(2)= W1 OUT(3)= W2 OUT(4)= W3 C DO 10 I=1,4 C IOSTAT(I)=1 C 10 CONTINUE RETURN 1 END