Changeset 27 for trunk/src/FLEXPART.f90
- Timestamp:
- Jul 3, 2014, 2:55:50 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/FLEXPART.f90
r24 r27 60 60 call gasdev1(idummy,rannumb(maxrand),rannumb(maxrand-1)) 61 61 62 ! 63 flexversion='Version 9.2 beta (2014-05-23)' 64 !verbosity=0 62 ! FLEXPART version string 63 flexversion='Version 9.2 beta (2014-07-01)' 64 verbosity=0 65 65 66 ! Read the pathnames where input/output files are stored 66 67 !******************************************************* … … 76 77 call getarg(1,arg1) 77 78 pathfile=arg1 78 verbosity=079 79 if (arg1(1:1).eq.'-') then 80 81 80 write(pathfile,'(a11)') './pathnames' 81 inline_options=arg1 82 82 endif 83 83 case (0) 84 84 write(pathfile,'(a11)') './pathnames' 85 verbosity=086 85 end select 87 86 88 if (inline_options(1:1).eq.'-') then89 print*, 'inline options=', inline_options90 if (trim(inline_options).eq.'-v'.or.trim(inline_options).eq.'-v1') then91 print*, 'verbose mode 1: additional information will be displayed'92 verbosity=193 endif94 if (trim(inline_options).eq.'-v2') then95 print*, 'verbose mode 2: additional information will be displayed'96 verbosity=297 endif98 if (trim(inline_options).eq.'-i') then99 print*, 'info mode: will provide run specific information and stop'100 verbosity=1101 info_flag=1102 endif103 if (trim(inline_options).eq.'-i2') then104 print*, 'info mode: will provide run specific information and stop'105 verbosity=2106 info_flag=1107 endif108 endif109 110 111 87 ! Print the GPL License statement 112 88 !******************************************************* 113 89 print*,'Welcome to FLEXPART ', trim(flexversion) 114 print*,'FLEXPART is free software released under the GNU Genera'// & 115 'l Public License.' 116 117 if (verbosity.gt.0) then 118 WRITE(*,*) 'call readpaths' 90 print*,'FLEXPART is free software released under the GNU General Public License.' 91 92 if (inline_options(1:1).eq.'-') then 93 if (trim(inline_options).eq.'-v'.or.trim(inline_options).eq.'-v1') then 94 print*, 'Verbose mode 1: display detailed information during run' 95 verbosity=1 96 endif 97 if (trim(inline_options).eq.'-v2') then 98 print*, 'Verbose mode 2: display more detailed information during run' 99 verbosity=2 100 endif 101 if (trim(inline_options).eq.'-i') then 102 print*, 'Info mode: provide detailed run specific information and stop' 103 verbosity=1 104 info_flag=1 105 endif 106 if (trim(inline_options).eq.'-i2') then 107 print*, 'Info mode: provide more detailed run specific information and stop' 108 verbosity=2 109 info_flag=1 110 endif 111 endif 112 113 if (verbosity.gt.0) then 114 write(*,*) 'call readpaths' 119 115 endif 120 116 call readpaths(pathfile) 121 122 117 123 118 if (verbosity.gt.1) then !show clock info … … 131 126 endif 132 127 133 134 128 ! Read the user specifications for the current model run 135 129 !******************************************************* 136 130 137 131 if (verbosity.gt.0) then 138 WRITE(*,*) 'call readcommand'132 write(*,*) 'call readcommand' 139 133 endif 140 134 call readcommand 141 135 if (verbosity.gt.0) then 142 WRITE(*,*) ' ldirect=', ldirect 143 WRITE(*,*) ' ibdate,ibtime=',ibdate,ibtime 144 WRITE(*,*) ' iedate,ietime=', iedate,ietime 145 if (verbosity.gt.1) then 146 CALL SYSTEM_CLOCK(count_clock, count_rate, count_max) 147 WRITE(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max 148 endif 149 endif 150 136 write(*,*) ' ldirect=', ldirect 137 write(*,*) ' ibdate,ibtime=',ibdate,ibtime 138 write(*,*) ' iedate,ietime=', iedate,ietime 139 if (verbosity.gt.1) then 140 CALL SYSTEM_CLOCK(count_clock, count_rate, count_max) 141 write(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max 142 endif 143 endif 151 144 152 145 ! Read the age classes to be used 153 146 !******************************** 154 147 if (verbosity.gt.0) then 155 WRITE(*,*) 'call readageclasses'148 write(*,*) 'call readageclasses' 156 149 endif 157 150 call readageclasses 158 151 159 152 if (verbosity.gt.1) then 160 161 WRITE(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max153 CALL SYSTEM_CLOCK(count_clock, count_rate, count_max) 154 write(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max 162 155 endif 163 164 165 156 166 157 ! Read, which wind fields are available within the modelling period … … 168 159 169 160 if (verbosity.gt.0) then 170 WRITE(*,*) 'call readavailable'161 write(*,*) 'call readavailable' 171 162 endif 172 163 call readavailable … … 177 168 178 169 if (verbosity.gt.0) then 179 WRITE(*,*) 'call gridcheck'170 write(*,*) 'call gridcheck' 180 171 endif 181 172 … … 183 174 184 175 if (verbosity.gt.1) then 185 186 WRITE(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max176 CALL SYSTEM_CLOCK(count_clock, count_rate, count_max) 177 write(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max 187 178 endif 188 189 190 if (verbosity.gt.0) then 191 WRITE(*,*) 'call gridcheck_nests' 179 180 if (verbosity.gt.0) then 181 write(*,*) 'call gridcheck_nests' 192 182 endif 193 183 call gridcheck_nests 194 184 195 196 185 ! Read the output grid specifications 197 186 !************************************ 198 187 199 188 if (verbosity.gt.0) then 200 WRITE(*,*) 'call readoutgrid'189 write(*,*) 'call readoutgrid' 201 190 endif 202 191 … … 204 193 205 194 if (nested_output.eq.1) then 206 195 call readoutgrid_nest 207 196 if (verbosity.gt.0) then 208 WRITE(*,*) '# readoutgrid_nest'197 write(*,*) '# readoutgrid_nest' 209 198 endif 210 199 endif … … 232 221 call readlanduse 233 222 234 235 223 ! Assign fractional cover of landuse classes to each ECMWF grid point 236 224 !******************************************************************** … … 241 229 call assignland 242 230 243 244 245 231 ! Read the coordinates of the release locations 246 232 !********************************************** … … 251 237 call readreleases 252 238 253 254 239 ! Read and compute surface resistances to dry deposition of gases 255 240 !**************************************************************** … … 267 252 print*,'call coordtrafo' 268 253 endif 269 270 254 271 255 ! Initialize all particles to non-existent … … 295 279 endif 296 280 297 298 281 ! Calculate volume, surface area, etc., of all output grid cells 299 282 ! Allocate fluxes and OHfield if necessary 300 283 !*************************************************************** 301 284 302 303 285 if (verbosity.gt.0) then 304 286 print*,'call outgrid_init' … … 307 289 if (nested_output.eq.1) call outgrid_init_nest 308 290 309 310 291 ! Read the OH field 311 292 !****************** … … 313 294 if (OHREA.eqv..TRUE.) then 314 295 if (verbosity.gt.0) then 315 316 endif 317 296 print*,'call readOHfield' 297 endif 298 call readOHfield 318 299 endif 319 300 … … 321 302 ! and open files that are to be kept open throughout the simulation 322 303 !****************************************************************** 323 324 304 325 305 if (verbosity.gt.0) then … … 332 312 !if (nested_output.eq.1) call writeheader_nest 333 313 if (nested_output.eq.1.and.surf_only.ne.1) call writeheader_nest 334 335 314 if (nested_output.eq.1.and.surf_only.eq.1) call writeheader_nest_surf 336 315 if (nested_output.ne.1.and.surf_only.eq.1) call writeheader_surf 337 316 338 339 340 317 !open(unitdates,file=path(2)(1:length(2))//'dates') 341 318 … … 346 323 if ((iout.eq.4).or.(iout.eq.5)) call openouttraj 347 324 348 349 325 ! Releases can only start and end at discrete times (multiples of lsynctime) 350 326 !*************************************************************************** … … 354 330 endif 355 331 do i=1,numpoint 356 ireleasestart(i)=nint(real(ireleasestart(i))/ & 357 real(lsynctime))*lsynctime 358 ireleaseend(i)=nint(real(ireleaseend(i))/ & 359 real(lsynctime))*lsynctime 360 end do 361 332 ireleasestart(i)=nint(real(ireleasestart(i))/real(lsynctime))*lsynctime 333 ireleaseend(i)=nint(real(ireleaseend(i))/real(lsynctime))*lsynctime 334 end do 362 335 363 336 ! Initialize cloud-base mass fluxes for the convection scheme … … 381 354 end do 382 355 383 384 356 ! Calculate particle trajectories 385 357 !******************************** … … 388 360 if (verbosity.gt.1) then 389 361 CALL SYSTEM_CLOCK(count_clock, count_rate, count_max) 390 WRITE(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max362 write(*,*) 'SYSTEM_CLOCK',(count_clock - count_clock0)/real(count_rate) !, count_rate, count_max 391 363 endif 392 364 if (info_flag.eq.1) then 393 394 365 print*, 'info only mode (stop)' 366 stop 395 367 endif 396 368 print*,'call timemanager' … … 399 371 call timemanager 400 372 401 402 write(*,*) 'CONGRATULATIONS: YOU HAVE SUCCESSFULLY COMPLETED A FLE& 403 &XPART MODEL RUN!' 373 write(*,*) 'CONGRATULATIONS: YOU HAVE SUCCESSFULLY COMPLETED A FLEXPART MODEL RUN!' 404 374 405 375 end program flexpart
Note: See TracChangeset
for help on using the changeset viewer.