Changes in trunk/src/readoutgrid_nest.f90 [27:4]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/readoutgrid_nest.f90
r27 r4 53 53 real,parameter :: eps=1.e-4 54 54 55 integer :: readerror56 55 57 ! declare namelist58 namelist /outgridn/ &59 outlon0n,outlat0n, &60 numxgridn,numygridn, &61 dxoutn,dyoutn62 63 ! helps identifying failed namelist input64 dxoutn=-1.065 56 66 57 ! Open the OUTGRID file and read output grid specifications 67 58 !********************************************************** 68 59 69 open(unitoutgrid,file=path(1)(1:length(1))//'OUTGRID_NEST',form='formatted',status='old',err=999) 60 open(unitoutgrid,file=path(1)(1:length(1))//'OUTGRID_NEST', & 61 status='old',err=999) 70 62 71 ! try namelist input72 read(unitoutgrid,outgridn,iostat=readerror)73 close(unitoutgrid)74 63 75 if ((dxoutn.le.0).or.(readerror.ne.0)) then64 call skplin(5,unitoutgrid) 76 65 77 open(unitoutgrid,file=path(1)(1:length(1))//'OUTGRID_NEST',status='old',err=999)78 call skplin(5,unitoutgrid)79 66 80 81 67 ! 1. Read horizontal grid specifications 68 !**************************************** 82 69 83 84 85 86 87 88 89 90 91 92 93 94 70 call skplin(3,unitoutgrid) 71 read(unitoutgrid,'(4x,f11.4)') outlon0n 72 call skplin(3,unitoutgrid) 73 read(unitoutgrid,'(4x,f11.4)') outlat0n 74 call skplin(3,unitoutgrid) 75 read(unitoutgrid,'(4x,i5)') numxgridn 76 call skplin(3,unitoutgrid) 77 read(unitoutgrid,'(4x,i5)') numygridn 78 call skplin(3,unitoutgrid) 79 read(unitoutgrid,'(4x,f12.5)') dxoutn 80 call skplin(3,unitoutgrid) 81 read(unitoutgrid,'(4x,f12.5)') dyoutn 95 82 96 close(unitoutgrid)97 endif98 83 99 ! write outgrid_nest file in namelist format to output directory if requested 100 if (nmlout.eqv..true.) then 101 open(unitoutgrid,file=path(2)(1:length(2))//'OUTGRID_NEST.namelist',err=1000) 102 write(unitoutgrid,nml=outgridn) 103 close(unitoutgrid) 104 endif 105 106 allocate(orooutn(0:numxgridn-1,0:numygridn-1),stat=stat) 107 if (stat.ne.0) write(*,*)'ERROR: could not allocate orooutn' 108 allocate(arean(0:numxgridn-1,0:numygridn-1),stat=stat) 109 if (stat.ne.0) write(*,*)'ERROR: could not allocate arean' 110 allocate(volumen(0:numxgridn-1,0:numygridn-1,numzgrid),stat=stat) 111 if (stat.ne.0) write(*,*)'ERROR: could not allocate volumen' 84 allocate(orooutn(0:numxgridn-1,0:numygridn-1) & 85 ,stat=stat) 86 if (stat.ne.0) write(*,*)'ERROR: could not allocate outh' 87 allocate(arean(0:numxgridn-1,0:numygridn-1) & 88 ,stat=stat) 89 if (stat.ne.0) write(*,*)'ERROR: could not allocate outh' 90 allocate(volumen(0:numxgridn-1,0:numygridn-1,numzgrid) & 91 ,stat=stat) 92 if (stat.ne.0) write(*,*)'ERROR: could not allocate outh' 112 93 113 94 ! Check validity of output grid (shall be within model domain) … … 129 110 xoutshiftn=xlon0-outlon0n 130 111 youtshiftn=ylat0-outlat0n 112 close(unitoutgrid) 131 113 return 132 114 133 999 write(*,*) ' #### FLEXPART MODEL ERROR! FILE "OUTGRID" #### ' 115 116 999 write(*,*) ' #### FLEXPART MODEL ERROR! FILE OUTGRID_NEST #### ' 134 117 write(*,*) ' #### CANNOT BE OPENED IN THE DIRECTORY #### ' 135 write(*,'(a)') path(1)(1:length(1)) 136 stop 137 138 1000 write(*,*) ' #### FLEXPART MODEL ERROR! FILE "OUTGRID" #### ' 139 write(*,*) ' #### CANNOT BE OPENED IN THE DIRECTORY #### ' 140 write(*,'(a)') path(2)(1:length(2)) 118 write(*,*) ' #### xxx/flexpart/options #### ' 141 119 stop 142 120
Note: See TracChangeset
for help on using the changeset viewer.