brn_calc_bdw Subroutine

public subroutine brn_calc_bdw(mob, bdw, ierr, lconv, f)

Main driver routine for calculating B.dW.

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(inout), dimension(:,:) :: mob

(sizm,sizm) symmetric positive definite matrix. On entry, contains the mobility matrix. On return, if meth = 'CHOL', the upper triangular part is overwritten with the result of Cholesky decomposition. The strictly lower triangular part is left intact.

real(kind=rp), intent(inout), dimension(:,:) :: bdw

(sizm,s) matrix. On entry, contains s column vectors drawn from standard normal distribution. On return, the s columns are overwritten with the result of B.dW.

integer, intent(out) :: ierr

Error flag.

logical, intent(out), optional :: lconv

If meth = 'LANC', returns true if converged, false otherwise.

integer, intent(out), optional :: f

If meth = 'LANC', the number of iterations performed.


Calls

proc~~brn_calc_bdw~~CallsGraph proc~brn_calc_bdw brn_calc_bdw proc~calc_bdw_blanc calc_bdw_blanc proc~brn_calc_bdw->proc~calc_bdw_blanc proc~calc_bdw_cholesky calc_bdw_cholesky proc~brn_calc_bdw->proc~calc_bdw_cholesky proc~calc_bdw_lanc calc_bdw_lanc proc~brn_calc_bdw->proc~calc_bdw_lanc dgemm dgemm proc~calc_bdw_blanc->dgemm dgeqp3 dgeqp3 proc~calc_bdw_blanc->dgeqp3 dorgqr dorgqr proc~calc_bdw_blanc->dorgqr dsbevd dsbevd proc~calc_bdw_blanc->dsbevd dsymm dsymm proc~calc_bdw_blanc->dsymm proc~logger_log_msg logger_t%logger_log_msg proc~calc_bdw_blanc->proc~logger_log_msg dpotrf dpotrf proc~calc_bdw_cholesky->dpotrf dtrmm dtrmm proc~calc_bdw_cholesky->dtrmm dtrmv dtrmv proc~calc_bdw_cholesky->dtrmv proc~calc_bdw_cholesky->proc~logger_log_msg dgemv dgemv proc~calc_bdw_lanc->dgemv dstevd dstevd proc~calc_bdw_lanc->dstevd dsymv dsymv proc~calc_bdw_lanc->dsymv proc~calc_bdw_lanc->proc~logger_log_msg proc~timestring timestring proc~logger_log_msg->proc~timestring

Called by

proc~~brn_calc_bdw~~CalledByGraph proc~brn_calc_bdw brn_calc_bdw proc~calc_diffusion calc_diffusion proc~calc_diffusion->proc~brn_calc_bdw proc~integrate_em integrate_em proc~integrate_em->proc~calc_diffusion proc~integrate_se integrate_se proc~integrate_se->proc~calc_diffusion proc~bds_run bds_run proc~bds_run->proc~integrate_em proc~bds_run->proc~integrate_se proc~run run proc~run->proc~bds_run program~main main program~main->proc~run