summaryrefslogtreecommitdiff
path: root/Ganlib/src/lcmmod.f90
diff options
context:
space:
mode:
Diffstat (limited to 'Ganlib/src/lcmmod.f90')
-rw-r--r--Ganlib/src/lcmmod.f901917
1 files changed, 1917 insertions, 0 deletions
diff --git a/Ganlib/src/lcmmod.f90 b/Ganlib/src/lcmmod.f90
new file mode 100644
index 0000000..beeef3a
--- /dev/null
+++ b/Ganlib/src/lcmmod.f90
@@ -0,0 +1,1917 @@
+!
+!-----------------------------------------------------------------------
+!
+!Purpose:
+! Fortran-2003 bindings for lcm -- part 2.
+!
+!Copyright:
+! Copyright (C) 2009 Ecole Polytechnique de Montreal
+! This library is free software; you can redistribute it and/or
+! modify it under the terms of the GNU Lesser General Public
+! License as published by the Free Software Foundation; either
+! version 2.1 of the License, or (at your option) any later version.
+!
+!Author(s): A. Hebert
+!
+!-----------------------------------------------------------------------
+!
+module LCMMOD
+ use LCMAUX
+ private
+ public :: LCMPUT, LCMGET, LCMPDL, LCMGDL
+ interface LCMPUT
+ ! store a record in an associative table
+ MODULE PROCEDURE LCMPUT_I0, LCMPUT_R0, LCMPUT_D0, LCMPUT_L0, LCMPUT_C0, &
+ LCMPUT_I1, LCMPUT_R1, LCMPUT_D1, LCMPUT_L1, LCMPUT_C1, &
+ LCMPUT_I2, LCMPUT_R2, LCMPUT_D2, LCMPUT_L2, LCMPUT_C2, &
+ LCMPUT_I3, LCMPUT_R3, LCMPUT_D3, LCMPUT_L3, LCMPUT_C3, &
+ LCMPUT_I4, LCMPUT_R4, LCMPUT_D4, LCMPUT_L4, LCMPUT_C4
+ end interface
+ interface LCMGET
+ ! recover a record from an associative table
+ MODULE PROCEDURE LCMGET_I0, LCMGET_R0, LCMGET_D0, LCMGET_L0, LCMGET_C0, &
+ LCMGET_I1, LCMGET_R1, LCMGET_D1, LCMGET_L1, LCMGET_C1, &
+ LCMGET_I2, LCMGET_R2, LCMGET_D2, LCMGET_L2, LCMGET_C2, &
+ LCMGET_I3, LCMGET_R3, LCMGET_D3, LCMGET_L3, LCMGET_C3, &
+ LCMGET_I4, LCMGET_R4, LCMGET_D4, LCMGET_L4, LCMGET_C4
+ end interface
+ interface LCMPDL
+ ! store a record in an heterogeneous list
+ MODULE PROCEDURE LCMPDL_I0, LCMPDL_R0, LCMPDL_D0, LCMPDL_L0, LCMPDL_C0, &
+ LCMPDL_I1, LCMPDL_R1, LCMPDL_D1, LCMPDL_L1, LCMPDL_C1, &
+ LCMPDL_I2, LCMPDL_R2, LCMPDL_D2, LCMPDL_L2, LCMPDL_C2, &
+ LCMPDL_I3, LCMPDL_R3, LCMPDL_D3, LCMPDL_L3, LCMPDL_C3
+ end interface
+ interface LCMGDL
+ ! recover a record from an heterogeneous list
+ MODULE PROCEDURE LCMGDL_I0, LCMGDL_R0, LCMGDL_D0, LCMGDL_L0, LCMGDL_C0, &
+ LCMGDL_I1, LCMGDL_R1, LCMGDL_D1, LCMGDL_L1, LCMGDL_C1, &
+ LCMGDL_I2, LCMGDL_R2, LCMGDL_D2, LCMGDL_L2, LCMGDL_C2, &
+ LCMGDL_I3, LCMGDL_R3, LCMGDL_D3, LCMGDL_L3, LCMGDL_C3
+ end interface
+contains
+subroutine LCMPUT_I0(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ integer, target :: idata
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPUT_I0: type 1 or 3 expected.')
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_I0
+!
+subroutine LCMPUT_R0(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ real, target :: idata
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPUT_R0: type 2 expected.')
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_R0
+!
+subroutine LCMPUT_D0(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ double precision, target :: idata
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPUT_D0: type 4 expected.')
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_D0
+!
+subroutine LCMPUT_L0(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ logical, target :: idata
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPUT_L0: type 5 expected.')
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_L0
+!
+subroutine LCMPUT_C0(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ complex, target :: idata
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPUT_C0: type 6 expected.')
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_C0
+!
+subroutine LCMPUT_I1(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ integer, target, dimension(:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPUT_I1: type 1 or 3 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_I1
+!
+subroutine LCMPUT_R1(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ real, target, dimension(:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPUT_R1: type 2 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_R1
+!
+subroutine LCMPUT_D1(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ double precision, target, dimension(:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPUT_D1: type 4 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_D1
+!
+subroutine LCMPUT_L1(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ logical, target, dimension(:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPUT_L1: type 5 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_L1
+!
+subroutine LCMPUT_C1(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ complex, target, dimension(:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPUT_C1: type 6 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_C1
+!
+subroutine LCMPUT_I2(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ integer, target, dimension(:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPUT_I2: type 1 or 3 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_I2
+!
+subroutine LCMPUT_R2(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ real, target, dimension(:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPUT_R2: type 2 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_R2
+!
+subroutine LCMPUT_D2(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ double precision, target, dimension(:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPUT_D2: type 4 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_D2
+!
+subroutine LCMPUT_L2(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ logical, target, dimension(:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPUT_L2: type 5 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_L2
+!
+subroutine LCMPUT_C2(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ complex, target, dimension(:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPUT_C2: type 6 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_C2
+!
+subroutine LCMPUT_I3(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ integer, target, dimension(:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPUT_I3: type 1 or 3 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_I3
+!
+subroutine LCMPUT_R3(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ real, target, dimension(:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPUT_R3: type 2 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_R3
+!
+subroutine LCMPUT_D3(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ double precision, target, dimension(:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPUT_D3: type 4 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_D3
+!
+subroutine LCMPUT_L3(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ logical, target, dimension(:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPUT_L3: type 5 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_L3
+!
+subroutine LCMPUT_C3(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ complex, target, dimension(:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPUT_C3: type 6 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_C3
+!
+subroutine LCMPUT_I4(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ integer, target, dimension(:,:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPUT_I4: type 1 or 3 expected.')
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_I4
+!
+subroutine LCMPUT_R4(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ real, target, dimension(:,:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPUT_R4: type 2 expected.')
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_R4
+!
+subroutine LCMPUT_D4(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ double precision, target, dimension(:,:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPUT_D4: type 4 expected.')
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_D4
+!
+subroutine LCMPUT_L4(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ logical, target, dimension(:,:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPUT_L4: type 5 expected.')
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_L4
+!
+subroutine LCMPUT_C4(iplist, name, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer :: ilong, itype
+ complex, target, dimension(:,:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmput_c (iplist, namp, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ integer(c_int), value :: ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmput_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPUT_C4: type 6 expected.')
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmput_c(iplist, name13, ilong, itype, pt_data)
+end subroutine LCMPUT_C4
+!
+subroutine LCMGET_I0(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer, target :: idata
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_I0
+!
+subroutine LCMGET_R0(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ real, target :: idata
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_R0
+!
+subroutine LCMGET_D0(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ double precision, target :: idata
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_D0
+!
+subroutine LCMGET_L0(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ logical, target :: idata
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_L0
+!
+subroutine LCMGET_C0(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ complex, target :: idata
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ pt_data=c_loc(idata)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_C0
+!
+subroutine LCMGET_I1(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer, target, dimension(:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_I1
+!
+subroutine LCMGET_R1(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ real, target, dimension(:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_R1
+!
+subroutine LCMGET_D1(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ double precision, target, dimension(:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_D1
+!
+subroutine LCMGET_L1(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ logical, target, dimension(:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_L1
+!
+subroutine LCMGET_C1(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ complex, target, dimension(:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_C1
+!
+subroutine LCMGET_I2(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer, target, dimension(:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_I2
+!
+subroutine LCMGET_R2(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ real, target, dimension(:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_R2
+!
+subroutine LCMGET_D2(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ double precision, target, dimension(:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_D2
+!
+subroutine LCMGET_L2(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ logical, target, dimension(:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_L2
+!
+subroutine LCMGET_C2(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ complex, target, dimension(:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_C2
+!
+subroutine LCMGET_I3(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer, target, dimension(:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_I3
+!
+subroutine LCMGET_R3(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ real, target, dimension(:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_R3
+!
+subroutine LCMGET_D3(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ double precision, target, dimension(:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_D3
+!
+subroutine LCMGET_L3(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ logical, target, dimension(:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_L3
+!
+subroutine LCMGET_C3(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ complex, target, dimension(:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_C3
+!
+subroutine LCMGET_I4(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ integer, target, dimension(:,:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_I4
+!
+subroutine LCMGET_R4(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ real, target, dimension(:,:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_R4
+!
+subroutine LCMGET_D4(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ double precision, target, dimension(:,:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_D4
+!
+subroutine LCMGET_L4(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ logical, target, dimension(:,:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_L4
+!
+subroutine LCMGET_C4(iplist, name, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ character(len=*),intent(in) :: name
+ character(kind=c_char), dimension(13) :: name13
+ complex, target, dimension(:,:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmget_c (iplist, namp, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ character(kind=c_char), dimension(*) :: namp
+ type(c_ptr), value :: idata
+ end subroutine lcmget_c
+ end interface
+ idata_p => idata(1,1,1,1)
+ pt_data=c_loc(idata_p)
+ call STRCUT(name13, name)
+ call lcmget_c(iplist, name13, pt_data)
+end subroutine LCMGET_C4
+!
+subroutine LCMPDL_I0(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ integer, target :: idata
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPDL_I0: type 1 or 3 expected.')
+ pt_data=c_loc(idata)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_I0
+!
+subroutine LCMPDL_R0(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ real, target :: idata
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPDL_R0: type 2 expected.')
+ pt_data=c_loc(idata)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_R0
+!
+subroutine LCMPDL_D0(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ double precision, target :: idata
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPDL_D0: type 4 expected.')
+ pt_data=c_loc(idata)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_D0
+!
+subroutine LCMPDL_L0(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ logical, target :: idata
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPDL_L0: type 5 expected.')
+ pt_data=c_loc(idata)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_L0
+!
+subroutine LCMPDL_C0(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ complex, target :: idata
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPDL_C0: type 6 expected.')
+ pt_data=c_loc(idata)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_C0
+!
+subroutine LCMPDL_I1(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ integer, target, dimension(:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPDL_I1: type 1 or 3 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_I1
+!
+subroutine LCMPDL_R1(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ real, target, dimension(:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPDL_R1: type 2 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_R1
+!
+subroutine LCMPDL_D1(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ double precision, target, dimension(:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPDL_D1: type 4 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_D1
+!
+subroutine LCMPDL_L1(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ logical, target, dimension(:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPDL_L1: type 5 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_L1
+!
+subroutine LCMPDL_C1(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ complex, target, dimension(:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPDL_C1: type 6 expected.')
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_C1
+!
+subroutine LCMPDL_I2(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ integer, target, dimension(:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPDL_I2: type 1 or 3 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_I2
+!
+subroutine LCMPDL_R2(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ real, target, dimension(:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPDL_R2: type 2 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_R2
+!
+subroutine LCMPDL_D2(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ double precision, target, dimension(:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPDL_D2: type 4 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_D2
+!
+subroutine LCMPDL_L2(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ logical, target, dimension(:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPDL_L2: type 5 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_L2
+!
+subroutine LCMPDL_C2(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ complex, target, dimension(:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPDL_C2: type 6 expected.')
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_C2
+!
+subroutine LCMPDL_I3(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ integer, target, dimension(:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if((itype.ne.1).and.(itype.ne.3)) call XABORT('LCMPDL_I3: type 1 or 3 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_I3
+!
+subroutine LCMPDL_R3(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ real, target, dimension(:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.2) call XABORT('LCMPDL_R3: type 2 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_R3
+!
+subroutine LCMPDL_D3(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ double precision, target, dimension(:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.4) call XABORT('LCMPDL_D3: type 4 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_D3
+!
+subroutine LCMPDL_L3(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ logical, target, dimension(:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.5) call XABORT('LCMPDL_L3: type 5 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_L3
+!
+subroutine LCMPDL_C3(iplist, ipos, ilong, itype, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos, ilong, itype
+ complex, target, dimension(:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmpdl_c (iplist, ipos, ilong, itype, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos, ilong, itype
+ type(c_ptr), value :: idata
+ end subroutine lcmpdl_c
+ end interface
+ if(itype.ne.6) call XABORT('LCMPDL_C3: type 6 expected.')
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmpdl_c(iplist, ipos-1, ilong, itype, pt_data)
+end subroutine LCMPDL_C3
+!
+subroutine LCMGDL_I0(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ integer, target :: idata
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ pt_data=c_loc(idata)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_I0
+!
+subroutine LCMGDL_R0(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ real, target :: idata
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ pt_data=c_loc(idata)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_R0
+!
+subroutine LCMGDL_D0(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ double precision, target :: idata
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ pt_data=c_loc(idata)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_D0
+!
+subroutine LCMGDL_L0(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ logical, target :: idata
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ pt_data=c_loc(idata)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_L0
+!
+subroutine LCMGDL_C0(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ complex, target :: idata
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ pt_data=c_loc(idata)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_C0
+!
+subroutine LCMGDL_I1(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ integer, target, dimension(:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_I1
+!
+subroutine LCMGDL_R1(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ real, target, dimension(:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_R1
+!
+subroutine LCMGDL_D1(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ double precision, target, dimension(:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_D1
+!
+subroutine LCMGDL_L1(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ logical, target, dimension(:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_L1
+!
+subroutine LCMGDL_C1(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ complex, target, dimension(:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_C1
+!
+subroutine LCMGDL_I2(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ integer, target, dimension(:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_I2
+!
+subroutine LCMGDL_R2(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ real, target, dimension(:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_R2
+!
+subroutine LCMGDL_D2(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ double precision, target, dimension(:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_D2
+!
+subroutine LCMGDL_L2(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ logical, target, dimension(:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_L2
+!
+subroutine LCMGDL_C2(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ complex, target, dimension(:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_C2
+!
+subroutine LCMGDL_I3(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ integer, target, dimension(:,:,:) :: idata
+ integer, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_I3
+!
+subroutine LCMGDL_R3(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ real, target, dimension(:,:,:) :: idata
+ real, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_R3
+!
+subroutine LCMGDL_D3(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ double precision, target, dimension(:,:,:) :: idata
+ double precision, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_D3
+!
+subroutine LCMGDL_L3(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ logical, target, dimension(:,:,:) :: idata
+ logical, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_L3
+!
+subroutine LCMGDL_C3(iplist, ipos, idata)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist, pt_data
+ integer :: ipos
+ complex, target, dimension(:,:,:) :: idata
+ complex, pointer :: idata_p
+ interface
+ subroutine lcmgdl_c (iplist, ipos, idata) bind(c)
+ use, intrinsic :: iso_c_binding
+ type(c_ptr) :: iplist
+ integer(c_int), value :: ipos
+ type(c_ptr), value :: idata
+ end subroutine lcmgdl_c
+ end interface
+ idata_p => idata(1,1,1)
+ pt_data=c_loc(idata_p)
+ call lcmgdl_c(iplist, ipos-1, pt_data)
+end subroutine LCMGDL_C3
+end module LCMMOD