dc_string::get_array Interface Reference

Private Member Functions

subroutine str2ip (int_ptr, string_in)
 
subroutine str2rp (real_ptr, string_in)
 
subroutine str2dp (real_ptr, string_in)
 

Detailed Description

Definition at line 61 of file dc_string.f90.

Member Function/Subroutine Documentation

◆ str2dp()

subroutine dc_string::get_array::str2dp ( real(dp), dimension(:), pointer  real_ptr,
character(len = *), intent(in)  string_in 
)
private

Definition at line 659 of file dc_string.f90.

659  !
660  ! string で与えられる文字型変数をカンマ「,」で区切り、
661  ! 倍精度実数型配列ポインタ real_ptr(:) にして返します。
662  ! real_ptr(:) の配列サイズは string の内容に応じて自動的に決まります。
663  !
664  ! ただし、real_ptr(:) は必ず空状態または不定状態で与えてください。
665  ! 既に割り付けられている場合、メモリリークを起こします。
666  !
667  real(DP), pointer:: real_ptr(:) !(out)
668  character(len = *), intent(in):: string_in
669  integer:: i, j, idx, nvalues
670  continue
671  nvalues = 1
672  i = 1
673  do
674  idx = index(string_in(i: ), ',')
675  if (idx == 0) exit
676  i = i + idx - 1 + 1
677  nvalues = nvalues + 1
678  enddo
679  allocate(real_ptr(nvalues))
680  i = 1
681  j = 1
682  do
683  idx = index(string_in(i: ), ',')
684  if (idx == 0) then
685  real_ptr(j) = stod(string_in(i: ))
686  exit
687  endif
688  real_ptr(j) = stod(string_in(i: i+idx-2))
689  i = i + idx - 1 + 1
690  j = j + 1
691  enddo

◆ str2ip()

subroutine dc_string::get_array::str2ip ( integer, dimension(:), pointer  int_ptr,
character(len = *), intent(in)  string_in 
)
private

Definition at line 587 of file dc_string.f90.

587  !
588  ! string で与えられる文字型変数をカンマ「,」で区切り、
589  ! 整数型配列ポインタ int_ptr(:) にして返します。 int_ptr(:)
590  ! の配列サイズは string の内容に応じて自動的に決まります。
591  !
592  ! ただし、int_ptr(:) は必ず空状態または不定状態で与えてください。
593  ! 既に割り付けられている場合、メモリリークを起こします。
594  !
595  integer, pointer:: int_ptr(:) !(out)
596  character(len = *), intent(in):: string_in
597  integer:: i, j, idx, nvalues
598  continue
599  nvalues = 1
600  i = 1
601  do
602  idx = index(string_in(i: ), ',')
603  if (idx == 0) exit
604  i = i + idx - 1 + 1
605  nvalues = nvalues + 1
606  enddo
607  allocate(int_ptr(nvalues))
608  i = 1
609  j = 1
610  do
611  idx = index(string_in(i: ), ',')
612  if (idx == 0) then
613  int_ptr(j) = stoi(string_in(i: ))
614  exit
615  endif
616  int_ptr(j) = stod(string_in(i: i+idx-2))
617  i = i + idx - 1 + 1
618  j = j + 1
619  enddo

◆ str2rp()

subroutine dc_string::get_array::str2rp ( real, dimension(:), pointer  real_ptr,
character(len = *), intent(in)  string_in 
)
private

Definition at line 623 of file dc_string.f90.

623  !
624  ! string で与えられる文字型変数をカンマ「,」で区切り、
625  ! 単精度実数型配列ポインタ real_ptr(:) にして返します。
626  ! real_ptr(:) の配列サイズは string の内容に応じて自動的に決まります。
627  !
628  ! ただし、real_ptr(:) は必ず空状態または不定状態で与えてください。
629  ! 既に割り付けられている場合、メモリリークを起こします。
630  !
631  real, pointer:: real_ptr(:) !(out)
632  character(len = *), intent(in):: string_in
633  integer:: i, j, idx, nvalues
634  continue
635  nvalues = 1
636  i = 1
637  do
638  idx = index(string_in(i: ), ',')
639  if (idx == 0) exit
640  i = i + idx - 1 + 1
641  nvalues = nvalues + 1
642  enddo
643  allocate(real_ptr(nvalues))
644  i = 1
645  j = 1
646  do
647  idx = index(string_in(i: ), ',')
648  if (idx == 0) then
649  real_ptr(j) = stod(string_in(i: ))
650  exit
651  endif
652  real_ptr(j) = stod(string_in(i: i+idx-2))
653  i = i + idx - 1 + 1
654  j = j + 1
655  enddo

The documentation for this interface was generated from the following file: