PROGRAMHDPJ CHARACTER*(100)CMDFILE,INFILE,REGIONFILE,LOCALFILE,FILETYPE REALEIGVAL INTEGER ITERATION WRITE(*,*)'INPUTCMDFILE-NAME:' READ(*,*)CMDFILE CALLREADCMD(CMDFILE,FILETYPE,INFILE,REGIONFILE,LOCALFILE,MLINE,* NLINE,RADX,RADY,ITERATION,EPS,EIGVAL) IF((.'GRD').OR.(.'GRD'))THEN CALLPROCESSGRD(INFILE,REGIONFILE,LOCALFILE,MLINE,NLINE,RADX,*RADY,ITERATION,EPS,EIGVAL) ELSEIF((.'BLN').OR.(.'BLN'))THENCALLPROCESSBLN(INFILE,REGIONFILE,LOCALFILE,MLINE,RADX,*ITERATION,EPS,EIGVAL) ELSEIF((.'XYZ').OR.(.'XYZ'))THEN CALLPROCESSXYZ(INFILE,REGIONFILE,LOCALFILE,MLINE,RADX,*RADY,ITERATION,EPS,EIGVAL) ELSE WRITE(*,*)'无此类型' ENDIF ENDPROGRAM!参数输入子程序 SUBROUTINEREADCMD(CMDFILE,FILETYPE,INFILE,REGIONFILE,LOCALFILE,* MLINE,NLINE,RADX,RADY,ITERATION,EPS,EIGVAL) CHARACTER*(*)CMDFILE,FILETYPE,INFILE,REGIONFILE,LOCALFILE OPEN(10,FILE=CMDFILE,STATUS='OLD',* ACCESS='SEQUENTIAL',FORM='FORMATTED') READ(10,*)FILETYPE READ(10,*)INFILE READ(10,*)REGIONFILE READ(10,*)LOCALFILE READ(10,*)RADX,RADY READ(10,*)ITERATION READ(10,*)EPS READ(10,*)EIGVAL CLOSE(10) IF((.'GRD').OR.(.'GRD'))THEN CALLMNGRD(INFILE,MLINE,NLINE) ELSEIF((.'BLN').OR.(.'BLN'))THENCALLMNBLN(INFILE,MLINE) ELSEIF((.'XYZ').OR.(.'XYZ'))THEN CALLMNXYZ(INFILE,MLINE) ELSE ENDIF ENDSUBROUTINE!*******************************************GRD**************************************************!个数输入子程序 SUBROUTINEMNGRD(INFILE,MLINE,NLINE) CHARACTER*(*)INFILE OPEN(10,FILE=INFILE,STATUS='OLD',ACCESS='SEQUENTIAL',* FORM='FORMATTED') READ(10,*) READ(10,*)MLINE,NLINE CLOSE(10) ENDSUBROUTINE!GRD类型数据处理子程序 SUBROUTINEPROCESSGRD(INFILE,REGIONFILE,LOCALFILE,MLINE,NLINE,*RADX,RADY,ITERATION,EPS,EIGVAL) CHARACTER*(*)INFILE,REGIONFILE,LOCALFILE REAL,ALLOCATABLE::FIRST(:,:),REGION(:,:),LOCAL(:,:),*REFIRST(:,:) ALLOCATE(FIRST(MLINE,NLINE),REGION(MLINE,NLINE),*LOCAL(MLINE,NLINE),REFIRST(MLINE,NLINE)) CALLREADGRD(INFILE,MLINE,NLINE,XMIN,X
滑动平均法 来自淘豆网www.taodocs.com转载请标明出处.