21INTEGER (KIND=c_int) FUNCTION msd (DLT, NDTS) bind (C,NAME='msd_')
34INTEGER (KIND=c_int),
INTENT(IN) :: ndts
35real(kind=c_double),
INTENT(IN) :: dlt
36DOUBLE PRECISION :: masstot
37DOUBLE PRECISION,
DIMENSION(:),
ALLOCATABLE :: msdtab
48if(.not.transpo())
then
64numth = omp_get_max_threads()
65if (
ns.lt.numth) numth=
ns
230if (
ns*ndts*dlt .gt. 30000 .and.
ns.gt.1000)
then
238 l=int(1.0/(ndts*dlt))
251allocate(msdtab(
ns-1), stat=
err)
253 call show_error (
"Impossible to allocate memory"//char(0), &
254 "Function: MSD"//char(0),
"Table: MSDTAB"//char(0))
264 call save_curve (
ns-1, msdtab,
k,
idmsd)
269 call save_curve (
ns-1, msdtab,
k,
idmsd)
278 call save_curve (
ns-1, msdtab,
k,
idmsd)
288 call save_curve (
ns-1, msdtab,
k,
idmsd)
297 call save_curve (
ns-1, msdtab,
k,
idmsd)
304 call save_curve (
ns-1, msdtab,
k,
idmsd)
318LOGICAL FUNCTION transpo()
325 call show_error (
"Impossible to allocate memory"//char(0), &
326 "Function: TRANSPO"//char(0),
"Table: NFULLPOS"//char(0))
331if (
allocated(
poa))
deallocate(
poa)
334 call show_error (
"Impossible to allocate memory"//char(0), &
335 "Function: TRANSPO"//char(0),
"Table: POA"//char(0))
340if (
allocated(
pob))
deallocate(
pob)
343 call show_error (
"Impossible to allocate memory"//char(0), &
344 "Function: TRANSPO"//char(0),
"Table: POB"//char(0))
384if (
allocated(
poa))
deallocate(
poa)
385if (
allocated(
pob))
deallocate(
pob)
logical function allocmsd()
void show_error(char *error, int val, GtkWidget *win)
show error message
integer(kind=c_int) function msd(dlt, ndts)
double precision, dimension(:,:,:), allocatable fullpos
double precision, dimension(:,:,:), allocatable nfullpos
double precision, dimension(3) rcm
double precision, dimension(:,:), allocatable d2inac
double precision, dimension(:), allocatable mass
double precision, dimension(:,:), allocatable pob
double precision, dimension(:,:,:), allocatable d2dirnac
double precision, dimension(:,:), allocatable poa
double precision, dimension(:), allocatable dcte
integer, dimension(:), allocatable nbspbs
double precision, dimension(:,:), allocatable d2i
double precision, dimension(:,:), allocatable cor
double precision, dimension(3) rij
double precision, dimension(:,:,:), allocatable d2dir
double precision, dimension(:,:), allocatable drift
double precision, dimension(3) rcm2
integer, dimension(:), allocatable lot
double precision, dimension(3) r2cor
subroutine calcrij(at1, at2, step_1, step_2, sid)