From 86fa57d8ecd6f24301233858266dac39a51e1d6d Mon Sep 17 00:00:00 2001 From: schnetter Date: Wed, 19 May 2004 07:26:48 +0000 Subject: Add onw more header file, and fix two others git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Fortran/trunk@9 51d2df92-0e4f-0410-a727-bd43d766d6b6 --- src/cctk.F90 | 1 + src/cctk_Groups.F90 | 4 +- src/cctk_IO.F90 | 2 +- src/cctk_IOMethods.F90 | 10 +++-- src/cctk_Interp.F90 | 109 +++++++++++++++++++++++++++++++++++++++++++++++++ src/make.code.defn | 1 + 6 files changed, 121 insertions(+), 6 deletions(-) create mode 100644 src/cctk_Interp.F90 diff --git a/src/cctk.F90 b/src/cctk.F90 index f6564ec..dbde6bb 100644 --- a/src/cctk.F90 +++ b/src/cctk.F90 @@ -31,5 +31,6 @@ module cctk use cctk_GroupsOnGH use cctk_IO use cctk_IOMethods + use cctk_Interp implicit none end module cctk diff --git a/src/cctk_Groups.F90 b/src/cctk_Groups.F90 index c6499bb..888b2e8 100644 --- a/src/cctk_Groups.F90 +++ b/src/cctk_Groups.F90 @@ -21,12 +21,14 @@ module cctk_Groups integer staggered end subroutine CCTK_StaggerVars - subroutine CCTK_DecomposeName (ierr, fullname, implementation, name) + subroutine CCTK_DecomposeName (ierr, fullname, implementation, implementation_nchars, name, name_nchars) implicit none integer ierr character(*) fullname character(*) implementation + integer implementation_nchars character(*) name + integer name_nchars end subroutine CCTK_DecomposeName subroutine CCTK_FirstVarIndex (index, group) diff --git a/src/cctk_IO.F90 b/src/cctk_IO.F90 index c6a65a8..c90d358 100644 --- a/src/cctk_IO.F90 +++ b/src/cctk_IO.F90 @@ -47,4 +47,4 @@ module cctk_IO end interface -end module cctk_Groups +end module cctk_IO diff --git a/src/cctk_IOMethods.F90 b/src/cctk_IOMethods.F90 index bbfbc57..9aefa55 100644 --- a/src/cctk_IOMethods.F90 +++ b/src/cctk_IOMethods.F90 @@ -16,9 +16,9 @@ module cctk_IOMethods interface - subroutine CCTKi_RegisterIOMethod (ierr, thorn, name) + subroutine CCTKi_RegisterIOMethod (handle, thorn, name) implicit none - integer ierr + integer handle character(*) thorn character(*) name end subroutine CCTKi_RegisterIOMethod @@ -51,14 +51,16 @@ module cctk_IOMethods CCTK_FPOINTER OutputVarAs end subroutine CCTK_RegisterIOMethodOutputVarAs - subroutine CCTK_IOMethodImplementation (imp, handle) + subroutine CCTK_IOMethodImplementation (nchars, imp, handle) implicit none + integer nchars character(*) imp integer handle end subroutine CCTK_IOMethodImplementation - subroutine CCTK_IOMethod (method, handle) + subroutine CCTK_IOMethod (nchars, method, handle) implicit none + integer nchars character(*) method integer handle end subroutine CCTK_IOMethod diff --git a/src/cctk_Interp.F90 b/src/cctk_Interp.F90 new file mode 100644 index 0000000..6495c1a --- /dev/null +++ b/src/cctk_Interp.F90 @@ -0,0 +1,109 @@ +/*@@ + @file $RCSfile$ + @author $Author$ + @date $Date$ + @desc + Fortran 90 interface declarations for the routines + which have their C declarations in cctk_Interp.h + @enddesc + @version $Header$ +@@*/ + +#include "cctk.h" + +module cctk_Interp + implicit none + + interface + + subroutine CCTK_InterpHandle (handle, name) + implicit none + integer handle + character(*) name + end subroutine CCTK_InterpHandle + + subroutine CCTKi_InterpRegisterOperatorGV (operator_ptr, operator_name, thorn) + implicit none + CCTK_FPOINTER operator_ptr + character(*) operator_name + character(*) thorn + end subroutine CCTKi_InterpRegisterOperatorGV + + subroutine CCTKi_InterpRegisterOperatorLocal (operator_ptr, operator_name, thorn) + implicit none + CCTK_FPOINTER operator_ptr + character(*) operator_name + character(*) thorn + end subroutine CCTKi_InterpRegisterOperatorLocal + + subroutine CCTKi_InterpRegisterOpLocalUniform (operator_ptr, operator_name, thorn) + implicit none + CCTK_FPOINTER operator_ptr + character(*) operator_name + character(*) thorn + end subroutine CCTKi_InterpRegisterOpLocalUniform + + subroutine CCTK_InterpOperatorImplementation (nchars, imp, handle) + implicit none + integer nchars + character(*) imp + integer handle + end subroutine CCTK_InterpOperatorImplementation + + subroutine CCTK_InterpOperator (nchars, operator, handle) + implicit none + integer nchars + character(*) operator + integer handle + end subroutine CCTK_InterpOperator + + subroutine CCTK_NumInterpOperators (num) + implicit none + integer num + end subroutine CCTK_NumInterpOperators + + end interface + + external CCTK_InterpGV + external CCTK_InterpLocal + + interface + + subroutine CCTK_InterpLocalUniform & + (ierr, & + N_dims, & + operator_handle, & + param_table_handle, & + coord_origin, & + coord_delta, & + N_interp_points, & + interp_coords_type_code, & + interp_coords, & + N_input_arrays, & + input_array_type_codes, & + input_arrays, & + N_output_arrays, & + output_array_type_codes, & + output_arrays) + implicit none + integer ierr + integer N_dims + integer operator_handle + integer param_table_handle + CCTK_REAL coord_origin(N_dims) + CCTK_REAL coord_delta(N_dims) + integer N_interp_points + integer interp_coords_type_code + CCTK_POINTER_TO_CONST interp_coords(N_interp_points) + integer N_input_arrays + CCTK_INT input_array_dims(N_input_arrays) + CCTK_INT input_array_type_codes(N_input_arrays) + CCTK_POINTER_TO_CONST input_arrays(N_input_arrays) + integer N_output_arrays + CCTK_INT output_array_type_codes(N_output_arrays) + CCTK_POINTER output_arrays(N_output_arrays) + end subroutine CCTK_InterpLocalUniform + + end interface + +end module cctk_Interp diff --git a/src/make.code.defn b/src/make.code.defn index 34ae018..d024fad 100644 --- a/src/make.code.defn +++ b/src/make.code.defn @@ -24,6 +24,7 @@ SRCS = cctk.F90 \ cctk_GroupsOnGH.F90 \ cctk_IO.F90 \ cctk_IOMethods.F90 \ + cctk_Interp.F90 \ util_Table.F90 else -- cgit v1.2.3