首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

麻烦高手帮小弟我将fortran转成C++ 或者帮小弟我写个注释

2013-01-06 
麻烦高手帮我将fortran转成C++ 或者帮我写个注释我自己尝试着写了一下,希望各位帮我指正一下,多谢!!!progr

麻烦高手帮我将fortran转成C++ 或者帮我写个注释
我自己尝试着写了一下,希望各位帮我指正一下,多谢!!
!      program mian
!       integer deltat,ifh0,nx,ny,nz,nt,idx_map,nvar
!       real dx,dy  
!       integer idx_vars(nvar)
!       real var(nx,ny,nz,nt,nvar),xlon(nx,ny),xlat(nx,ny)
   
 !---------------------------
 !    调用前需要对()中的变量赋值。
                   .....
 !--------------------------       
!call putout1h(filename,deltat,ifh0,nx,ny,nz,nt,nvar,
!     + dx,dy,idx_map,xlon,xlat,idx_vars,var)

!end
subroutine putout1h(filename,deltat,ifh0,nx,ny,nz,nt,nvar,
     + dx,dy,idx_map,xlon,xlat,idx_vars,var)         //声明函数putout1h
       integer deltat,ifh0,nx,ny,nz,nt,idx_map,nvar  //声明整形
       real dx,dy                              //浮点型声明
       integer idx_vars(nvar)                        //声明整形数组
       real var(nx,ny,nz,nt,nvar),xlon(nx,ny),xlat(nx,ny) //声明三个浮点型数组第一个五维数组
!input
  character filename*200                       //字符串
        
!temp
   real,allocatable::u1h(:,:,:,:)               //应该类似开辟一个内存块吧?这里不清楚了
  integer idx_vars0(nvar+2)                    //声明一个整形数组?

!---------------------------------------------
        idx_vars0(1)=1                                //类似 int idx_vars0[1] = 1
        idx_vars0(2)=2                                //类似 int idx_vars0[2] = 2
        do iv=1,nvar-2                                //类似 for(int iv = 1;iv <nvar-2; i++)
   idx_vars0(iv+2)=idx_vars(iv)               //类似idx_vars0[iv+2]=idx_vars[iv]  
  enddo

        allocate(u1h(nx,ny,nz,nt))                    //这里好像是真的分配内存块吧,搞不灵清了
!-------------------------------------------------
! read head
        open(1,file=trim(filename),form='binary')      //打开文件


        write(1) deltat                                //第一行写入 这里问题最大 是说我文件里                                                                              个名字是deltat的变量,然后把这个变量的值取出来么? 
        write(1) ifh0                                  //第二行写入 同理 将ifho的值取出来
        write(1) nx                                    //同上
        write(1) ny                                    //同上
        write(1) nz                                    //同上
        write(1) nt                                    //同上
        write(1) idx_map       
        write(1) dx             
        write(1) dy             
        write(1) nvar+2        
  write(1) idx_vars0                            //同上
        write(1) xlon          
        write(1) xlat          
  do i=1,nvar          
         write(1) u1h          
   do it=1,nt
    do iz=1,nz
     do iy=1,ny
      do ix=1,nx
       var(ix,iy,iz,it,i)=u1h(ix,iy,iz,it)
      enddo
     enddo
    enddo
   enddo
  enddo
  close(1)
        return
  deallocate(u1h)


       end


搞了一大圈 发现最大的问题是,我不知道他是如何读取文件中的数据的,因为这个fortarn语句的功能就是读取一个dat文件,将dat文件转成一个类似excel表格的txt文件  请教了,谢谢
[解决办法]
是不是matlab等可以完成自动转换?

热点排行