subroutine oqp_banner(infos)
use messages, only: show_message, with_abort
use types, only: information
!$ use omp_lib, only: omp_get_max_threads
use oqp_tagarray_driver
use iso_c_binding, only: c_char
use parallel, only: par_env_t
implicit none
type(information), intent(inout) :: infos
integer :: iw, CPU_core, i
character(len=28) :: cdate
character(len=:), allocatable :: hostnames
type(par_env_t) :: pe
! Section of Tagarray for the log filename
! We are getting lot file name from Python via tagarray
character(len=1,kind=c_char), contiguous, pointer :: log_filename(:)
character(len=*), parameter :: subroutine_name = "oqp_banner"
character(len=*), parameter :: tags_general(1) = (/ character(len=80) :: &
OQP_log_filename /)
call data_has_tags(infos%dat, tags_general, module_name, subroutine_name, with_abort)
call tagarray_get_data(infos%dat, OQP_log_filename, log_filename)
allocate(character(ubound(log_filename,1)) :: infos%log_filename)
do i = 1, ubound(log_filename,1)
infos%log_filename(i:i) = log_filename(i)
end do
call pe%init(infos%mpiinfo%comm, infos%mpiinfo%usempi)
open (newunit=iw, file=infos%log_filename, position="append")
write(iw, '(/,10x, "***********************************************************")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "* OpenQP: Open Quantum Platform *")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "* Version: 1.0 Aug, 2024 *")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "***********************************************************")')
write(iw, '(10x, "* The most efficient implementation of MRSF-TDDFT. *")')
write(iw, '(10x, "***********************************************************")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "* OpenQP was initiated by Prof. Cheol Ho Choi in 2012. *")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "* It has since been developed by: *")')
write(iw, '(10x, "* Dr. Vladimir Mironov *")')
write(iw, '(10x, "* Dr. Konstantin Komarov *")')
write(iw, '(10x, "* Mr. Igor Gerasimov *")')
write(iw, '(10x, "* Dr. Hiroya Nakata *")')
write(iw, '(10x, "* Dr. Mohsen Mazaherifar *")')
write(iw, '(10x, "* Mr. Alireza Lashkaripour *")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "* In 2024, Prof. Jingbai Li at Hoffmann Institute of *")')
write(iw, '(10x, "* Advanced Materials began developing PyOQP. *")')
write(iw, '(10x, "* *")')
write(iw, '(10x, "***********************************************************")')
call fdate(cdate)
call pe%get_hostnames(hostnames)
CPU_core = 1
!$ CPU_core = omp_get_max_threads()
if (pe%use_mpi) then
write(iw, '(/20x,A,"Job Details:",/,22x,"Start Time: ",A,/,22x,"Host List: ",A,/,22x,"Resources Allocated:",/,24x,"OpenMP Threads: ",I4,/,24x,"MPI Processors: ",I4)') &
' ', cdate, hostnames, CPU_core, pe%size
else
write(iw, '(/20x,A,"Job Details:",/,22x,"Start Time: ",A,/,22x,"Host: ",A,/,22x,"Resources Allocated:",/,24x,"OpenMP Threads: ",I4)') &
' ', cdate, hostnames, CPU_core
endif
close (iw)
end subroutine oqp_banner