From 522d4834a4766fd71ed4312e0266e945e831a3d5 Mon Sep 17 00:00:00 2001 From: Levon Saldamli Date: Mon, 17 Mar 2003 09:53:21 +0000 Subject: [PATCH] Fortran 77 support fixed git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@937 f25d12d1-65f4-0310-ae8a-bbce733d8d8e --- c_runtime/real_array.c | 14 +++++++++++++- modeq/codegen.rml | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/c_runtime/real_array.c b/c_runtime/real_array.c index ad3c9b2c670..0ff5e12d71c 100644 --- a/c_runtime/real_array.c +++ b/c_runtime/real_array.c @@ -1322,14 +1322,26 @@ void clone_reverse_real_array_spec(real_array_t* source, real_array_t* dest) void convert_alloc_real_array_to_f77(real_array_t* a, real_array_t* dest) { + int i; clone_reverse_real_array_spec(a,dest); alloc_real_array_data(dest); transpose_real_array (a,dest); + for (i = 0; i < dest->ndims; ++i) + { + dest->dim_size[i] = a->dim_size[i]; + } } void convert_alloc_real_array_from_f77(real_array_t* a, real_array_t* dest) { + int i; clone_reverse_real_array_spec(a,dest); alloc_real_array_data(dest); + for (i = 0; i < dest->ndims; ++i) + { + size_t tmp = dest->dim_size[i]; + dest->dim_size[i] = a->dim_size[i]; + a->dim_size[i] = tmp; + } transpose_real_array (a,dest); -} + } diff --git a/modeq/codegen.rml b/modeq/codegen.rml index 8a218856d6a..eb45e517149 100644 --- a/modeq/codegen.rml +++ b/modeq/codegen.rml @@ -1159,8 +1159,8 @@ relation generate_alloc_outvar_f77 : (DAE.Element,string,int) => (CFunction,int) is_first_in_array id => true & dae_type_str (typ,is_a) => typ_str & var_name_external id => cref_str & - list_reverse inst_dims => inst_dims' & - generate_size_subscripts(inst_dims',tnr) => (cfn1,dim_strs,tnr1) & +(* list_reverse inst_dims => inst_dims' & *) + generate_size_subscripts(inst_dims,tnr) => (cfn1,dim_strs,tnr1) & c_move_statements_to_inits cfn1 => cfn1' & list_length dim_strs => ndims &