| 本帖最后由 安靖 于 2015-5-22 20:59 编辑 
 用gdb调试Fortran程序,如何查看派生类型数据?
 例如,查看ndim就可以直接输入:   p data%ndim但是要查看coorn里的数据是什么命令呢? coorn是动态分配的数组
 我输入 p data%coorn 提示 =<object is not allocated>
 但是coorn明明已经分配好内存了
 
 
 [Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode 
!   test2.f90
program main
        use comm_data
        implicit none
        type(core_data) :: data
        call allo_core_data( data, 2, 4)
        data % coorn = 4.0
        write(*,*) data % coorn
        stop
end program main
! comm_data.f90
module comm_data
        implicit none
        
        save
        
        type core_data                
                integer ndim                
                integer npoint
                real,    allocatable, dimension(:,:) :: coorn                
        end type core_data        
        
        contains
subroutine allo_core_data(        data, ndim, npoint )
        implicit none
        type(core_data), intent(out) :: data
        integer, intent(in) :: npoint
        integer, intent(in) :: ndim
        
        data % ndim = ndim
        data % npoint = npoint
        
        allocate( data % coorn( data % ndim, data % npoint ) )
        data % coorn = 0.0
        
end subroutine allo_core_data
end module comm_data
 makefile
 
 TARGET  = test.out
 GC        = ifort
 CFLAGS  = -fpp -g
 SOR        = comm_data.f90 test2.f90
 OBJS        = test2.o comm_data.o
 $(OBJS):
 @echo "-----------------------------------"
 @echo "Compiling..."
 @echo "-----------------------------------"
 @$(GC) $(CFLAGS) -c $(SOR) $(INCLUDE)
 @echo "-----------------------------------"
 @echo "Linking..."
 @echo "-----------------------------------"
 @$(GC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS)
 @echo "-----------------------------------"
 @echo "Deleting OBJ & MOD files..."
 @echo "-----------------------------------"
 @rm -fr *.o
 @echo "-----------------------------------"
 clean:
 @rm -fr *.o *.mod
 @rm -fr $(TARGET)
 
 
 
 
 |