diff --git a/fvn_sparse/fvn_sparse.f90 b/fvn_sparse/fvn_sparse.f90 index a7abc81..cc7af45 100644 --- a/fvn_sparse/fvn_sparse.f90 +++ b/fvn_sparse/fvn_sparse.f90 @@ -14,7 +14,7 @@ contains function umfpack_return_code(c) implicit none - integer(4), intent(in) :: c + integer(kind=sp_kind), intent(in) :: c character(len=80) :: umfpack_return_code select case(c) case(0) @@ -51,6 +51,7 @@ function umfpack_return_code(c) umfpack_return_code="Unknown return code" end select end function + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! SPARSE RESOLUTION @@ -121,7 +122,7 @@ call umfpack_zl_defaults(control) call umfpack_zl_symbolic(n,n,Ap,Ai,Ax,Az,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -129,7 +130,7 @@ endif call umfpack_zl_numeric (Ap, Ai, Ax, Az, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -142,7 +143,7 @@ if (present(det) ) then ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -160,7 +161,7 @@ sys=0 call umfpack_zl_solve (sys, Ap, Ai, Ax,Az, xx,xz, bx,bz, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during solving" + write(*,*) "Problem during solving : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -230,7 +231,7 @@ call umfpack_zi_defaults(control) call umfpack_zi_symbolic(n,n,Ap,Ai,Ax,Az,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -238,7 +239,7 @@ endif call umfpack_zi_numeric (Ap, Ai, Ax, Az, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -251,7 +252,7 @@ if (present(det) ) then ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -270,7 +271,7 @@ sys=0 call umfpack_zi_solve (sys, Ap, Ai, Ax,Az, xx,xz, bx,bz, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during solving" + write(*,*) "Problem during solving : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -331,7 +332,7 @@ call umfpack_dl_defaults(control) call umfpack_dl_symbolic(n,n,Ap,Ai,A,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -339,7 +340,7 @@ endif call umfpack_dl_numeric (Ap, Ai, A, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -352,7 +353,7 @@ if (present(det) ) then ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -366,7 +367,7 @@ sys=0 call umfpack_dl_solve (sys, Ap, Ai, A, x, B, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during solving" + write(*,*) "Problem during solving : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -426,7 +427,7 @@ call umfpack_di_defaults(control) call umfpack_di_symbolic(n,n,Ap,Ai,A,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -434,7 +435,7 @@ endif call umfpack_di_numeric (Ap, Ai, A, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -447,7 +448,7 @@ if (present(det) ) then ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -459,7 +460,7 @@ sys=0 call umfpack_di_solve (sys, Ap, Ai, A, x, B, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during solving" + write(*,*) "Problem during solving : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -521,7 +522,7 @@ call umfpack_zl_defaults(control) call umfpack_zl_symbolic(n,n,Ap,Ai,Ax,Az,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -529,7 +530,7 @@ endif call umfpack_zl_numeric (Ap, Ai, Ax, Az, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -540,7 +541,7 @@ call umfpack_zl_get_determinant(det(1),det(2),det(3),numeric,info,status) ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -600,7 +601,7 @@ call umfpack_zi_defaults(control) call umfpack_zi_symbolic(n,n,Ap,Ai,Ax,Az,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -608,7 +609,7 @@ endif call umfpack_zi_numeric (Ap, Ai, Ax, Az, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -619,7 +620,7 @@ call umfpack_zi_get_determinant(det(1),det(2),det(3),numeric,info,status) ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -670,7 +671,7 @@ call umfpack_dl_defaults(control) call umfpack_dl_symbolic(n,n,Ap,Ai,A,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -678,7 +679,7 @@ endif call umfpack_dl_numeric (Ap, Ai, A, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -689,7 +690,7 @@ call umfpack_dl_get_determinant(det(1),det(2),numeric,info,status) ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif @@ -745,7 +746,7 @@ call umfpack_di_defaults(control) call umfpack_di_symbolic(n,n,Ap,Ai,A,symbolic, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during symbolic analysis" + write(*,*) "Problem during symbolic analysis : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -753,7 +754,7 @@ endif call umfpack_di_numeric (Ap, Ai, A, symbolic, numeric, control, info) ! info(1) should be zero if (info(1) /= 0) then - write(*,*) "Problem during numerical factorization" + write(*,*) "Problem during numerical factorization : ",trim(umfpack_return_code(int(info(1)))) status=info(1) endif @@ -765,7 +766,7 @@ call umfpack_di_get_determinant(det(1),det(2),numeric,info,status) ! info(1) should be zero if (info(1) /= 0) then if ( (info(1) < 1) .or. (info(1) >3) ) then ! not a warning - write(*,*) "Problem during sparse determinant, returned code : ",info(1) + write(*,*) "Problem during sparse determinant : ",trim(umfpack_return_code(int(info(1)))) endif status=info(1) endif