编辑代码

program calculate_length
  implicit none
  integer :: i
  type :: my_type
    integer :: a
    real :: b
    character(len=10) :: c
  end type my_type

  type(my_type), allocatable :: obj(:)
  integer :: length
  character(len=20) :: name

  allocate(obj(5))  ! 分配5个元素的空间

  length = size(obj)
  
  print*, "Length of allocatable my_type:", length

  deallocate(obj)  ! 释放内存

  name = 'reh'
  do i = 1, 5
    select case (name)
    case ('tur')
      print *, "Processing case 1"
      ! 在这里添加其他处理语句
      ! ...
      ! 判断是否需要跳出该迭代
    case ('reh')
      print *, "Processing case 2"
      ! 在这里添加其他处理语句
      ! ...
    case ('cmp')
      print *, "Processing case 4"
      ! 在这里添加其他处理语句
      ! ..
    case ('shp')
      print *, "Processing case 5"
      ! 在这里添加其他处理语句
      ! ...
    case default
      !print *, "Processing default case"
      ! 在这里添加其他处理语句
      ! ...
      cycle
    end select
  end do

end program calculate_length