diff options
Diffstat (limited to 'Ganlib/src/lcmmod.f90')
| -rw-r--r-- | Ganlib/src/lcmmod.f90 | 1917 |
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 |
