@@ -4,6 +4,8 @@ MODULE sparse_ir
4
4
!
5
5
IMPLICIT NONE
6
6
!
7
+ PRIVATE
8
+ !
7
9
INTEGER , PARAMETER :: DP = KIND (0d0 )
8
10
REAL (KIND = DP), PARAMETER :: one = 1.0D0
9
11
REAL (KIND = DP), PARAMETER :: zero = 0.0D0
@@ -57,6 +59,13 @@ MODULE sparse_ir
57
59
MODULE PROCEDURE evaluate_matsubara_b_from_dlr_zz, evaluate_matsubara_b_from_dlr_dz
58
60
END INTERFACE evaluate_matsubara_b_from_dlr
59
61
!
62
+ PUBLIC :: DecomposedMatrix_z, DecomposedMatrix_d, IR
63
+ PUBLIC :: init_ir, set_beta, finalize_ir
64
+ PUBLIC :: evaluate_tau, evaluate_matsubara_f, evaluate_matsubara_b
65
+ PUBLIC :: fit_tau, fit_matsubara_f, fit_matsubara_b
66
+ PUBLIC :: to_dlr
67
+ PUBLIC :: evaluate_tau_from_dlr, evaluate_matsubara_f_from_dlr, evaluate_matsubara_b_from_dlr
68
+ !
60
69
!- ----------------------------------------------------------------------
61
70
TYPE DecomposedMatrix_z
62
71
!- ----------------------------------------------------------------------
@@ -393,6 +402,7 @@ SUBROUTINE finalize_ir(obj)
393
402
!
394
403
TYPE (IR) :: obj
395
404
! ! contains all the IR-basis objects
405
+ !
396
406
IF (ALLOCATED (obj% x)) DEALLOCATE (obj% x)
397
407
IF (ALLOCATED (obj% tau)) DEALLOCATE (obj% tau)
398
408
IF (ALLOCATED (obj% s)) DEALLOCATE (obj% s)
@@ -430,7 +440,7 @@ SUBROUTINE finalize_dmat_z(dmat)
430
440
IF (ALLOCATED (dmat% a_odd)) DEALLOCATE (dmat% a_odd)
431
441
IF (ALLOCATED (dmat% a_even)) DEALLOCATE (dmat% a_even)
432
442
IF (ALLOCATED (dmat% inv_s)) DEALLOCATE (dmat% inv_s)
433
- IF (ALLOCATED (dmat% inv_s )) DEALLOCATE (dmat% inv_s_dl)
443
+ IF (ALLOCATED (dmat% inv_s_dl )) DEALLOCATE (dmat% inv_s_dl)
434
444
IF (ALLOCATED (dmat% ut)) DEALLOCATE (dmat% ut)
435
445
IF (ALLOCATED (dmat% v)) DEALLOCATE (dmat% v)
436
446
IF (ALLOCATED (dmat% ut_real)) DEALLOCATE (dmat% ut_real)
@@ -455,7 +465,7 @@ SUBROUTINE finalize_dmat_d(dmat)
455
465
IF (ALLOCATED (dmat% a)) DEALLOCATE (dmat% a)
456
466
IF (ALLOCATED (dmat% a_real)) DEALLOCATE (dmat% a_real)
457
467
IF (ALLOCATED (dmat% inv_s)) DEALLOCATE (dmat% inv_s)
458
- IF (ALLOCATED (dmat% inv_s )) DEALLOCATE (dmat% inv_s_dl)
468
+ IF (ALLOCATED (dmat% inv_s_dl )) DEALLOCATE (dmat% inv_s_dl)
459
469
IF (ALLOCATED (dmat% ut)) DEALLOCATE (dmat% ut)
460
470
IF (ALLOCATED (dmat% v)) DEALLOCATE (dmat% v)
461
471
IF (ALLOCATED (dmat% ut_real)) DEALLOCATE (dmat% ut_real)
@@ -1271,6 +1281,7 @@ SUBROUTINE evaluate_matsubara_f_zz(obj, arr, res)
1271
1281
ENDIF
1272
1282
DEALLOCATE (res_r)
1273
1283
DEALLOCATE (res_i)
1284
+ DEALLOCATE (arr_half)
1274
1285
!
1275
1286
!- ----------------------------------------------------------------------
1276
1287
END SUBROUTINE evaluate_matsubara_f_zz
@@ -1355,6 +1366,7 @@ SUBROUTINE evaluate_matsubara_f_dz(obj, arr, res)
1355
1366
res = CMPLX (res_r, res_i, KIND = DP)
1356
1367
DEALLOCATE (res_r)
1357
1368
DEALLOCATE (res_i)
1369
+ DEALLOCATE (arr_half)
1358
1370
!
1359
1371
!- ----------------------------------------------------------------------
1360
1372
END SUBROUTINE evaluate_matsubara_f_dz
@@ -1472,6 +1484,7 @@ SUBROUTINE evaluate_matsubara_b_zz(obj, arr, res)
1472
1484
ENDIF
1473
1485
DEALLOCATE (res_r)
1474
1486
DEALLOCATE (res_i)
1487
+ DEALLOCATE (arr_half)
1475
1488
!
1476
1489
!- ----------------------------------------------------------------------
1477
1490
END SUBROUTINE evaluate_matsubara_b_zz
@@ -1556,6 +1569,7 @@ SUBROUTINE evaluate_matsubara_b_dz(obj, arr, res)
1556
1569
res = CMPLX (res_r, res_i, KIND = DP)
1557
1570
DEALLOCATE (res_r)
1558
1571
DEALLOCATE (res_i)
1572
+ DEALLOCATE (arr_half)
1559
1573
!
1560
1574
!- ----------------------------------------------------------------------
1561
1575
END SUBROUTINE evaluate_matsubara_b_dz
@@ -1896,7 +1910,7 @@ SUBROUTINE fit_tau_zd(obj, arr, res)
1896
1910
DEALLOCATE (ut_arr, arr_tmp)
1897
1911
!
1898
1912
!- ----------------------------------------------------------------------
1899
- END SUBROUTINE
1913
+ END SUBROUTINE fit_tau_zd
1900
1914
!- ----------------------------------------------------------------------
1901
1915
!
1902
1916
!- ----------------------------------------------------------------------
@@ -1989,7 +2003,7 @@ SUBROUTINE fit_tau_dd(obj, arr, res)
1989
2003
DEALLOCATE (ut_arr)
1990
2004
!
1991
2005
!- ----------------------------------------------------------------------
1992
- END SUBROUTINE
2006
+ END SUBROUTINE fit_tau_dd
1993
2007
!- ----------------------------------------------------------------------
1994
2008
!
1995
2009
!- ----------------------------------------------------------------------
0 commit comments