56 use,
INTRINSIC :: iso_c_binding, only: c_bool
63#include "implicit_f.inc"
71 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
72 CHARACTER*(*),
INTENT(IN)::NAME
74 INTEGER,
INTENT(IN)::S_RARRAY
78 .
INTENT(OUT)::rarray(s_rarray)
79 LOGICAL,
INTENT(OUT)::IS_AVAILABLE
83 INTEGER :: I,J,SUB_ID,IFLAGUNIT,UID
84 my_real :: fac_l,fac_m,fac_t,fac
85 real*8 :: length_dim,mass_dim,time_dim,dval(s_rarray)
86 LOGICAL(KIND=C_BOOL) C_IS_AVAILABLE
88 c_is_available = .false.
94 CALL cpp_get_float_array(name(1:len_trim(name)),len_trim(name),dval,c_is_available,
95 . length_dim,mass_dim,time_dim,uid,sub_id,index
96 is_available = c_is_available
100 IF(sub_id /= 0 .AND. uid == 0)
THEN
102 uid = lsubmodel(sub_id)%UID
113 IF (unitab%UNIT_ID(j) == uid)
THEN
114 fac_m = unitab%FAC_M(j)
115 fac_l = unitab%FAC_L(j)
116 fac_t = unitab%FAC_T(j)
121 IF (fac_m /= zero) fac = fac * (fac_m ** mass_dim )
122 IF (fac_l /= zero) fac = fac * (fac_l ** length_dim)
123 IF (fac_t /= zero) fac = fac * (fac_t ** time_dim )
126 rarray(i) = dval(i) * fac