Changes in / [148cff2:2794246] in flexpart.git
- Location:
- src
- Files:
-
- 3 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
src/FLEXPART.f90
r2eefa58 r0a94e13 137 137 write(*,*) 'call readpaths' 138 138 endif 139 call readpaths 139 call readpaths(pathfile) 140 140 141 141 if (verbosity.gt.1) then !show clock info … … 452 452 endif 453 453 454 if (verbosity.gt.0) write (*,*) 'timemanager> call wetdepo'455 454 call timemanager(metdata_format) 456 457 455 458 456 if (verbosity.gt.0) then … … 469 467 endif 470 468 end do 469 write (*,*) 'timemanager> call wetdepo' 471 470 endif 472 471 -
src/FLEXPART_MPI.f90
r2eefa58 r0c8c7f2 146 146 write(*,*) 'call readpaths' 147 147 endif 148 call readpaths 148 call readpaths(pathfile) 149 149 150 150 if (verbosity.gt.1) then !show clock info -
src/com_mod.f90
r2eefa58 r0a94e13 124 124 ! lnetcdfout 1 for netcdf grid output, 0 if not. Set in COMMAND (namelist input) 125 125 126 integer :: linversionout127 ! linversionout 1 for one grid_time output file for each release containing all timesteps128 129 126 integer :: nageclass,lage(maxageclass) 130 127 … … 179 176 real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass) 180 177 real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass) 181 real :: rm(maxspec),dryvel(maxspec) ,kao(maxspec)178 real :: rm(maxspec),dryvel(maxspec) 182 179 real :: ohcconst(maxspec),ohdconst(maxspec),ohnconst(maxspec) 183 180 … … 364 361 real :: ciwc(0:nxmax-1,0:nymax-1,nzmax,numwfmem)=0.0 !ice [kg/kg] 365 362 real :: clw(0:nxmax-1,0:nymax-1,nzmax,numwfmem)=0.0 !combined [m3/m3] 366 ! RLT add pressure and dry air density 367 real :: prs(0:nxmax-1,0:nymax-1,nzmax,numwfmem) 368 real :: rho_dry(0:nxmax-1,0:nymax-1,nzmax,numwfmem) 363 369 364 real :: pv(0:nxmax-1,0:nymax-1,nzmax,numwfmem) 370 365 real :: rho(0:nxmax-1,0:nymax-1,nzmax,numwfmem) … … 388 383 ! uupol,vvpol [m/s] wind components in polar stereographic projection 389 384 ! tt [K] temperature data 390 ! prs air pressure391 385 ! qv specific humidity data 392 386 ! pv (pvu) potential vorticity -
src/concoutput.f90
r2eefa58 r20963b1 72 72 real :: sp_fact 73 73 real :: outnum,densityoutrecept(maxreceptor),xl,yl 74 ! RLT75 real :: densitydryrecept(maxreceptor)76 real :: factor_dryrecept(maxreceptor)77 74 78 75 !real densityoutgrid(0:numxgrid-1,0:numygrid-1,numzgrid), … … 109 106 character(LEN=8),save :: file_stat='REPLACE' 110 107 logical :: ldates_file 111 logical :: lexist112 108 integer :: ierr 113 109 character(LEN=100) :: dates_char … … 207 203 densityoutgrid(ix,jy,kz)=(rho(iix,jjy,kzz,mind)*dz1+ & 208 204 rho(iix,jjy,kzz-1,mind)*dz2)/dz 209 ! RLT210 densitydrygrid(ix,jy,kz)=(rho_dry(iix,jjy,kzz,mind)*dz1+ &211 rho_dry(iix,jjy,kzz-1,mind)*dz2)/dz212 205 end do 213 206 end do … … 221 214 !densityoutrecept(i)=rho(iix,jjy,1,2) 222 215 densityoutrecept(i)=rho(iix,jjy,1,mind) 223 ! RLT224 densitydryrecept(i)=rho_dry(iix,jjy,1,mind)225 216 end do 226 217 227 ! RLT228 ! conversion factor for output relative to dry air229 factor_drygrid=densityoutgrid/densitydrygrid230 factor_dryrecept=densityoutrecept/densitydryrecept231 218 232 219 ! Output is different for forward and backward simulations … … 366 353 ! Concentration output 367 354 !********************* 368 if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5) ) then355 if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5).or.(iout.eq.6)) then 369 356 370 357 ! Wet deposition … … 627 614 end do 628 615 629 ! RLT Aug 2017630 ! Write out conversion factor for dry air631 inquire(file=path(2)(1:length(2))//'factor_drygrid',exist=lexist)632 if (lexist) then633 ! open and append634 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid',form='unformatted',&635 status='old',action='write',access='append')636 else637 ! create new638 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid',form='unformatted',&639 status='new',action='write')640 endif641 sp_count_i=0642 sp_count_r=0643 sp_fact=-1.644 sp_zer=.true.645 do kz=1,numzgrid646 do jy=0,numygrid-1647 do ix=0,numxgrid-1648 if (factor_drygrid(ix,jy,kz).gt.(1.+smallnum).or.factor_drygrid(ix,jy,kz).lt.(1.-smallnum)) then649 if (sp_zer.eqv..true.) then ! first value not equal to one650 sp_count_i=sp_count_i+1651 sparse_dump_i(sp_count_i)= &652 ix+jy*numxgrid+kz*numxgrid*numygrid653 sp_zer=.false.654 sp_fact=sp_fact*(-1.)655 endif656 sp_count_r=sp_count_r+1657 sparse_dump_r(sp_count_r)= &658 sp_fact*factor_drygrid(ix,jy,kz)659 else ! factor is one660 sp_zer=.true.661 endif662 end do663 end do664 end do665 write(unitoutfactor) sp_count_i666 write(unitoutfactor) (sparse_dump_i(i),i=1,sp_count_i)667 write(unitoutfactor) sp_count_r668 write(unitoutfactor) (sparse_dump_r(i),i=1,sp_count_r)669 close(unitoutfactor)670 671 672 616 if (gridtotal.gt.0.) gridtotalunc=gridsigmatotal/gridtotal 673 617 if (wetgridtotal.gt.0.) wetgridtotalunc=wetgridsigmatotal/ & … … 696 640 endif 697 641 698 ! RLT Aug 2017 699 ! Write out conversion factor for dry air 700 if (numreceptor.gt.0) then 701 inquire(file=path(2)(1:length(2))//'factor_dryreceptor',exist=lexist) 702 if (lexist) then 703 ! open and append 704 open(unitoutfactor,file=path(2)(1:length(2))//'factor_dryreceptor',form='unformatted',& 705 status='old',action='write',access='append') 706 else 707 ! create new 708 open(unitoutfactor,file=path(2)(1:length(2))//'factor_dryreceptor',form='unformatted',& 709 status='new',action='write') 710 endif 711 write(unitoutfactor) itime 712 write(unitoutfactor) (factor_dryrecept(i),i=1,numreceptor) 713 close(unitoutfactor) 714 endif 642 715 643 716 644 ! Reinitialization of grid -
src/concoutput_mpi.f90
r6741557 r20963b1 364 364 ! Concentration output 365 365 !********************* 366 if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5) ) then366 if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5).or.(iout.eq.6)) then 367 367 368 368 ! Wet deposition -
src/concoutput_nest.f90
r2eefa58 r7d02c2f 70 70 real :: sp_fact 71 71 real :: outnum,densityoutrecept(maxreceptor),xl,yl 72 ! RLT73 real :: densitydryrecept(maxreceptor)74 real :: factor_dryrecept(maxreceptor)75 72 76 73 !real densityoutgrid(0:numxgrid-1,0:numygrid-1,numzgrid), … … 99 96 character :: adate*8,atime*6 100 97 character(len=3) :: anspec 101 logical :: lexist102 98 integer :: mind 103 99 ! mind eso:added to ensure identical results between 2&3-fields versions … … 168 164 densityoutgrid(ix,jy,kz)=(rho(iix,jjy,kzz,mind)*dz1+ & 169 165 rho(iix,jjy,kzz-1,mind)*dz2)/dz 170 ! RLT171 densitydrygrid(ix,jy,kz)=(rho_dry(iix,jjy,kzz,mind)*dz1+ &172 rho_dry(iix,jjy,kzz-1,mind)*dz2)/dz173 166 end do 174 167 end do … … 182 175 !densityoutrecept(i)=rho(iix,jjy,1,2) 183 176 densityoutrecept(i)=rho(iix,jjy,1,mind) 184 ! RLT185 densitydryrecept(i)=rho_dry(iix,jjy,1,mind)186 177 end do 187 178 188 ! RLT189 ! conversion factor for output relative to dry air190 factor_drygrid=densityoutgrid/densitydrygrid191 factor_dryrecept=densityoutrecept/densitydryrecept192 179 193 180 ! Output is different for forward and backward simulations … … 564 551 end do 565 552 566 ! RLT Aug 2017567 ! Write out conversion factor for dry air568 inquire(file=path(2)(1:length(2))//'factor_drygrid_nest',exist=lexist)569 if (lexist) then570 ! open and append571 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&572 status='old',action='write',access='append')573 else574 ! create new575 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&576 status='new',action='write')577 endif578 sp_count_i=0579 sp_count_r=0580 sp_fact=-1.581 sp_zer=.true.582 do kz=1,numzgrid583 do jy=0,numygridn-1584 do ix=0,numxgridn-1585 if (factor_drygrid(ix,jy,kz).gt.(1.+smallnum).or.factor_drygrid(ix,jy,kz).lt.(1.-smallnum)) then586 if (sp_zer.eqv..true.) then ! first value not equal to one587 sp_count_i=sp_count_i+1588 sparse_dump_i(sp_count_i)= &589 ix+jy*numxgridn+kz*numxgridn*numygridn590 sp_zer=.false.591 sp_fact=sp_fact*(-1.)592 endif593 sp_count_r=sp_count_r+1594 sparse_dump_r(sp_count_r)= &595 sp_fact*factor_drygrid(ix,jy,kz)596 else ! factor is one597 sp_zer=.true.598 endif599 end do600 end do601 end do602 write(unitoutfactor) sp_count_i603 write(unitoutfactor) (sparse_dump_i(i),i=1,sp_count_i)604 write(unitoutfactor) sp_count_r605 write(unitoutfactor) (sparse_dump_r(i),i=1,sp_count_r)606 close(unitoutfactor)607 553 608 554 -
src/concoutput_surf.f90
r2eefa58 r16b61a5 72 72 real :: sp_fact 73 73 real :: outnum,densityoutrecept(maxreceptor),xl,yl 74 ! RLT75 real :: densitydryrecept(maxreceptor)76 real :: factor_dryrecept(maxreceptor)77 74 78 75 !real densityoutgrid(0:numxgrid-1,0:numygrid-1,numzgrid), … … 104 101 character :: adate*8,atime*6 105 102 character(len=3) :: anspec 106 logical :: lexist107 103 108 104 … … 184 180 densityoutgrid(ix,jy,kz)=(rho(iix,jjy,kzz,2)*dz1+ & 185 181 rho(iix,jjy,kzz-1,2)*dz2)/dz 186 ! RLT187 densitydrygrid(ix,jy,kz)=(rho_dry(iix,jjy,kzz,2)*dz1+ &188 rho_dry(iix,jjy,kzz-1,2)*dz2)/dz189 182 end do 190 183 end do … … 197 190 jjy=max(min(nint(yl),nymin1),0) 198 191 densityoutrecept(i)=rho(iix,jjy,1,2) 199 ! RLT200 densitydryrecept(i)=rho_dry(iix,jjy,1,2)201 192 end do 202 193 203 ! RLT204 ! conversion factor for output relative to dry air205 factor_drygrid=densityoutgrid/densitydrygrid206 factor_dryrecept=densityoutrecept/densitydryrecept207 194 208 195 ! Output is different for forward and backward simulations … … 609 596 end do 610 597 611 ! RLT Aug 2017612 ! Write out conversion factor for dry air613 inquire(file=path(2)(1:length(2))//'factor_drygrid',exist=lexist)614 if (lexist) then615 ! open and append616 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid',form='unformatted',&617 status='old',action='write',access='append')618 else619 ! create new620 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid',form='unformatted',&621 status='new',action='write')622 endif623 sp_count_i=0624 sp_count_r=0625 sp_fact=-1.626 sp_zer=.true.627 do kz=1,1628 do jy=0,numygrid-1629 do ix=0,numxgrid-1630 if (factor_drygrid(ix,jy,kz).gt.(1.+smallnum).or.factor_drygrid(ix,jy,kz).lt.(1.-smallnum)) then631 if (sp_zer.eqv..true.) then ! first value not equal to one632 sp_count_i=sp_count_i+1633 sparse_dump_i(sp_count_i)= &634 ix+jy*numxgrid+kz*numxgrid*numygrid635 sp_zer=.false.636 sp_fact=sp_fact*(-1.)637 endif638 sp_count_r=sp_count_r+1639 sparse_dump_r(sp_count_r)= &640 sp_fact*factor_drygrid(ix,jy,kz)641 else ! factor is one642 sp_zer=.true.643 endif644 end do645 end do646 end do647 write(unitoutfactor) sp_count_i648 write(unitoutfactor) (sparse_dump_i(i),i=1,sp_count_i)649 write(unitoutfactor) sp_count_r650 write(unitoutfactor) (sparse_dump_r(i),i=1,sp_count_r)651 close(unitoutfactor)652 653 654 598 if (gridtotal.gt.0.) gridtotalunc=gridsigmatotal/gridtotal 655 599 if (wetgridtotal.gt.0.) wetgridtotalunc=wetgridsigmatotal/ & … … 678 622 endif 679 623 680 ! RLT Aug 2017 681 ! Write out conversion factor for dry air 682 if (numreceptor.gt.0) then 683 inquire(file=path(2)(1:length(2))//'factor_dryreceptor',exist=lexist) 684 if (lexist) then 685 ! open and append 686 open(unitoutfactor,file=path(2)(1:length(2))//'factor_dryreceptor',form='unformatted',& 687 status='old',action='write',access='append') 688 else 689 ! create new 690 open(unitoutfactor,file=path(2)(1:length(2))//'factor_dryreceptor',form='unformatted',& 691 status='new',action='write') 692 endif 693 write(unitoutfactor) itime 694 write(unitoutfactor) (factor_dryrecept(i),i=1,numreceptor) 695 close(unitoutfactor) 696 endif 624 697 625 698 626 ! Reinitialization of grid -
src/concoutput_surf_nest.f90
r2eefa58 r6a678e3 70 70 real :: sp_fact 71 71 real :: outnum,densityoutrecept(maxreceptor),xl,yl 72 ! RLT73 real :: densitydryrecept(maxreceptor)74 real :: factor_dryrecept(maxreceptor)75 72 76 73 !real densityoutgrid(0:numxgrid-1,0:numygrid-1,numzgrid), … … 99 96 character :: adate*8,atime*6 100 97 character(len=3) :: anspec 101 logical :: lexist 98 102 99 103 100 ! Determine current calendar date, needed for the file name … … 162 159 densityoutgrid(ix,jy,kz)=(rho(iix,jjy,kzz,2)*dz1+ & 163 160 rho(iix,jjy,kzz-1,2)*dz2)/dz 164 ! RLT165 densitydrygrid(ix,jy,kz)=(rho_dry(iix,jjy,kzz,2)*dz1+ &166 rho_dry(iix,jjy,kzz-1,2)*dz2)/dz167 161 end do 168 162 end do … … 175 169 jjy=max(min(nint(yl),nymin1),0) 176 170 densityoutrecept(i)=rho(iix,jjy,1,2) 177 ! RLT178 densitydryrecept(i)=rho_dry(iix,jjy,1,2)179 171 end do 180 172 181 ! RLT182 ! conversion factor for output relative to dry air183 factor_drygrid=densityoutgrid/densitydrygrid184 factor_dryrecept=densityoutrecept/densitydryrecept185 173 186 174 ! Output is different for forward and backward simulations … … 329 317 write(unitoutgrid) sp_count_r 330 318 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 331 !write(unitoutgrid) sp_count_r332 !write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)319 write(unitoutgrid) sp_count_r 320 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 333 321 334 322 ! Dry deposition … … 366 354 write(unitoutgrid) sp_count_r 367 355 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 368 !write(unitoutgrid) sp_count_r369 !write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)356 write(unitoutgrid) sp_count_r 357 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 370 358 371 359 … … 411 399 write(unitoutgrid) sp_count_r 412 400 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 413 !write(unitoutgrid) sp_count_r414 !write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)401 write(unitoutgrid) sp_count_r 402 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 415 403 else 416 404 … … 452 440 write(unitoutgrid) sp_count_r 453 441 write(unitoutgrid) (sparse_dump_r(i),i=1,sp_count_r) 454 !write(unitoutgrid) sp_count_r455 !write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r)442 write(unitoutgrid) sp_count_r 443 write(unitoutgrid) (sparse_dump_u(i),i=1,sp_count_r) 456 444 endif ! surf_only 457 445 … … 499 487 write(unitoutgridppt) sp_count_r 500 488 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 501 !write(unitoutgridppt) sp_count_r502 !write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)489 write(unitoutgridppt) sp_count_r 490 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 503 491 504 492 … … 538 526 write(unitoutgridppt) sp_count_r 539 527 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 540 !write(unitoutgridppt) sp_count_r541 !write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)528 write(unitoutgridppt) sp_count_r 529 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 542 530 543 531 … … 582 570 write(unitoutgridppt) sp_count_r 583 571 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 584 !write(unitoutgridppt) sp_count_r585 !write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)572 write(unitoutgridppt) sp_count_r 573 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 586 574 else 587 575 … … 623 611 write(unitoutgridppt) sp_count_r 624 612 write(unitoutgridppt) (sparse_dump_r(i),i=1,sp_count_r) 625 !write(unitoutgridppt) sp_count_r626 !write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r)613 write(unitoutgridppt) sp_count_r 614 write(unitoutgridppt) (sparse_dump_u(i),i=1,sp_count_r) 627 615 endif ! surf_only 628 616 … … 636 624 637 625 end do 638 639 ! RLT Aug 2017640 ! Write out conversion factor for dry air641 inquire(file=path(2)(1:length(2))//'factor_drygrid_nest',exist=lexist)642 if (lexist) then643 ! open and append644 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&645 status='old',action='write',access='append')646 else647 ! create new648 open(unitoutfactor,file=path(2)(1:length(2))//'factor_drygrid_nest',form='unformatted',&649 status='new',action='write')650 endif651 sp_count_i=0652 sp_count_r=0653 sp_fact=-1.654 sp_zer=.true.655 do kz=1,1656 do jy=0,numygridn-1657 do ix=0,numxgridn-1658 if (factor_drygrid(ix,jy,kz).gt.(1.+smallnum).or.factor_drygrid(ix,jy,kz).lt.(1.-smallnum)) then659 if (sp_zer.eqv..true.) then ! first value not equal to one660 sp_count_i=sp_count_i+1661 sparse_dump_i(sp_count_i)= &662 ix+jy*numxgridn+kz*numxgridn*numygridn663 sp_zer=.false.664 sp_fact=sp_fact*(-1.)665 endif666 sp_count_r=sp_count_r+1667 sparse_dump_r(sp_count_r)= &668 sp_fact*factor_drygrid(ix,jy,kz)669 else ! factor is one670 sp_zer=.true.671 endif672 end do673 end do674 end do675 write(unitoutfactor) sp_count_i676 write(unitoutfactor) (sparse_dump_i(i),i=1,sp_count_i)677 write(unitoutfactor) sp_count_r678 write(unitoutfactor) (sparse_dump_r(i),i=1,sp_count_r)679 close(unitoutfactor)680 626 681 627 -
src/getfields.f90
r2eefa58 r6ecb30a 87 87 real :: pvhn(0:nxmaxn-1,0:nymaxn-1,nuvzmax,maxnests) 88 88 real :: wwhn(0:nxmaxn-1,0:nymaxn-1,nwzmax,maxnests) 89 ! RLT added partial pressure water vapor90 real :: pwater(0:nxmax-1,0:nymax-1,nzmax,numwfmem)91 integer :: kz, ix92 character(len=100) :: rowfmt93 89 94 90 integer :: indmin = 1 … … 157 153 40 indmin=indj 158 154 159 160 call writeprecip(itime,memind(1))161 155 if (WETBKDEP) then 156 call writeprecip(itime,memind(1)) 157 endif 162 158 163 159 else … … 208 204 60 indmin=indj 209 205 210 if (WETBKDEP) then 211 call writeprecip(itime,memind(1)) 212 endif 213 214 end if 215 216 ! RLT calculate dry air density 217 pwater=qv*prs/((r_air/r_water)*(1.-qv)+qv) 218 rho_dry=(prs-pwater)/(r_air*tt) 219 220 ! test density 221 ! write(rowfmt,'(A,I6,A)') '(',nymax,'(E11.4,1X))' 222 ! if(itime.eq.0) then 223 ! open(500,file=path(2)(1:length(2))//'rho_dry.txt',status='replace',action='write') 224 ! do kz=1,nzmax 225 ! do ix=1,nxmax 226 ! write(500,fmt=rowfmt) rho_dry(ix,:,kz,1) 227 ! end do 228 ! end do 229 ! close(500) 230 ! open(500,file=path(2)(1:length(2))//'rho.txt',status='replace',action='write') 231 ! do kz=1,nzmax 232 ! do ix=1,nxmax 233 ! write(500,fmt=rowfmt) rho(ix,:,kz,1) 234 ! end do 235 ! end do 236 ! close(500) 237 ! endif 206 if (WETBKDEP) then 207 call writeprecip(itime,memind(1)) 208 endif 209 210 endif 238 211 239 212 lwindinterv=abs(memtime(2)-memtime(1)) -
src/makefile
r2eefa58 r0a94e13 128 128 redist.o \ 129 129 concoutput_surf.o concoutput_surf_nest.o \ 130 concoutput_inversion_nest.o \131 concoutput_inversion.o \132 130 getfields.o \ 133 131 readwind_ecmwf.o … … 202 200 drydepokernel_nest.o zenithangle.o \ 203 201 ohreaction.o getvdep_nests.o \ 204 initial_cond_calc.o initial_cond_output.o initial_cond_output_inversion.o\202 initial_cond_calc.o initial_cond_output.o \ 205 203 dynamic_viscosity.o get_settling.o \ 206 204 initialize_cbl_vel.o re_initialize_particle.o \ … … 274 272 conccalc_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o unc_mod.o 275 273 concoutput.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o 276 concoutput_inversion.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o277 274 concoutput_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \ 278 275 unc_mod.o mean_mod.o 279 276 concoutput_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o 280 concoutput_inversion_nest.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o mean_mod.o281 277 concoutput_nest_mpi.o: com_mod.o mpi_mod.o outg_mod.o par_mod.o point_mod.o \ 282 278 unc_mod.o mean_mod.o … … 325 321 initial_cond_calc.o: com_mod.o outg_mod.o par_mod.o unc_mod.o 326 322 initial_cond_output.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o 327 initial_cond_output_inversion.o: com_mod.o outg_mod.o par_mod.o point_mod.o unc_mod.o328 323 initialize.o: com_mod.o hanna_mod.o interpol_mod.o par_mod.o random_mod.o 329 324 initialize_cbl_vel.o: com_mod.o par_mod.o random_mod.o -
src/outg_mod.f90
r2eefa58 r4c64400 37 37 real,allocatable, dimension (:,:,:) :: areanorth 38 38 real,allocatable, dimension (:,:,:) :: densityoutgrid 39 real,allocatable, dimension (:,:,:) :: densitydrygrid ! added RLT40 real,allocatable, dimension (:,:,:) :: factor_drygrid ! added RLT41 39 real,allocatable, dimension (:,:,:) :: factor3d 42 40 real,allocatable, dimension (:,:,:) :: grid -
src/outgrid_init.f90
r2eefa58 rd2a5a83 268 268 if (stat.ne.0) write(*,*)'ERROR: could not allocate gridunc' 269 269 allocate(densityoutgrid(0:max(numxgrid,numxgridn)-1, & 270 0:max(numygrid,numygridn)-1,numzgrid),stat=stat)271 if (stat.ne.0) write(*,*)'ERROR: could not allocate gridunc'272 ! RLT273 allocate(densitydrygrid(0:max(numxgrid,numxgridn)-1, &274 0:max(numygrid,numygridn)-1,numzgrid),stat=stat)275 if (stat.ne.0) write(*,*)'ERROR: could not allocate gridunc'276 allocate(factor_drygrid(0:max(numxgrid,numxgridn)-1, &277 270 0:max(numygrid,numygridn)-1,numzgrid),stat=stat) 278 271 if (stat.ne.0) write(*,*)'ERROR: could not allocate gridunc' -
src/par_mod.f90
r2eefa58 r0a94e13 30 30 ! Update 15 August 2013 IP * 31 31 ! * 32 ! ESO 2016: * 33 ! GFS specific parameters moved to gfs_mod.f90 * 34 ! ECMWF specific parameters moved to ecmwf_mod.f90 * 32 35 ! * 33 36 !******************************************************************************* … … 77 80 real,parameter :: pi=3.14159265, r_earth=6.371e6, r_air=287.05, ga=9.81 78 81 real,parameter :: cpa=1004.6, kappa=0.286, pi180=pi/180., vonkarman=0.4 79 ! additional constants RLT Aug-201780 real,parameter :: rgas=8.3144781 real,parameter :: r_water=461.49582 82 83 83 ! pi number "pi" … … 89 89 ! kappa exponent of formula for potential temperature 90 90 ! vonkarman von Karman constant 91 ! rgas universal gas constant [J/mol/K]92 ! r_water specific gas constant for water vapor [J/kg/K]93 91 94 92 real,parameter :: karman=0.40, href=15., convke=2.0 … … 292 290 integer,parameter :: unitboundcond=89 293 291 integer,parameter :: unittmp=101 294 ! RLT295 integer,parameter :: unitoutfactor=102296 292 297 293 !****************************************************** -
src/readcommand.f90
r2eefa58 r0a94e13 114 114 surf_only, & 115 115 cblflag, & 116 linversionout, &117 116 ohfields_path 118 117 … … 148 147 surf_only=0 149 148 cblflag=0 ! if using old-style COMMAND file, set to 1 here to use mc cbl routine 150 linversionout=0151 149 ohfields_path="../../flexin/" 152 150 … … 416 414 !********************************************************************** 417 415 418 if ((iout.lt.1).or.(iout.gt. 5)) then416 if ((iout.lt.1).or.(iout.gt.6)) then 419 417 write(*,*) ' #### FLEXPART MODEL ERROR! FILE COMMAND: #### ' 420 418 write(*,*) ' #### IOUT MUST BE 1, 2, 3, 4 OR 5 FOR #### ' … … 476 474 write(*,*) '#### FOR DOMAIN FILLING RUNS OUTPUT FOR ####' 477 475 write(*,*) '#### EACH RELEASE IS FORBIDDEN ! ####' 478 stop479 endif480 481 ! Inversion output format only for backward runs482 !*****************************************************************************483 484 if ((linversionout.eq.1).and.(ldirect.eq.1)) then485 write(*,*) '#### FLEXPART MODEL ERROR! FILE COMMAND: ####'486 write(*,*) '#### INVERSION OUTPUT FORMAT ONLY FOR ####'487 write(*,*) '#### BACKWARD RUNS ####'488 476 stop 489 477 endif -
src/readpaths.f90
r2eefa58 r62e65c7 20 20 !********************************************************************** 21 21 22 subroutine readpaths 22 subroutine readpaths !(pathfile) 23 23 24 24 !***************************************************************************** -
src/timemanager.f90
r2eefa58 r0a94e13 408 408 #endif 409 409 else 410 if (linversionout.eq.1) then411 call concoutput_inversion(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc)412 if (verbosity.eq.1) then413 print*,'called concoutput_inversion'414 call system_clock(count_clock)415 write(*,*) 'system clock',count_clock - count_clock0416 endif417 else418 410 call concoutput_surf(itime,outnum,gridtotalunc,wetgridtotalunc,drygridtotalunc) 419 endif420 411 if (verbosity.eq.1) then 421 412 print*,'called concoutput_surf ' … … 431 422 call concoutput_nest(itime,outnum) 432 423 else 433 if(linversionout.eq.1) then434 call concoutput_inversion_nest(itime,outnum)435 else436 424 call concoutput_surf_nest(itime,outnum) 437 endif438 425 endif 439 426 else … … 752 739 if (ipout.eq.2) call partoutput(itime) ! dump particle positions 753 740 754 if (linit_cond.ge.1) then 755 if(linversionout.eq.1) then 756 call initial_cond_output_inversion(itime) ! dump initial cond. field 757 else 758 call initial_cond_output(itime) ! dump initial cond. fielf 759 endif 760 endif 741 if (linit_cond.ge.1) call initial_cond_output(itime) ! dump initial cond. field 761 742 762 743 !close(104) -
src/verttransform_ecmwf.f90
r2eefa58 r0a94e13 81 81 real,dimension(0:nxmax-1,0:nymax-1,nuvzmax) :: rhoh,uvzlev,wzlev 82 82 real,dimension(0:nxmax-1,0:nymax-1,nzmax) :: pinmconv 83 ! RLT added pressure84 real,dimension(0:nxmax-1,0:nymax-1,nuvzmax) :: prsh85 83 real,dimension(0:nxmax-1,0:nymax-1) :: tvold,pold,pint,tv 86 84 real,dimension(0:nymax-1) :: cosf … … 220 218 !************************* 221 219 220 222 221 do jy=0,nymin1 223 222 do ix=0,nxmin1 … … 230 229 wzlev(:,:,1)=0. 231 230 rhoh(:,:,1)=pold/(r_air*tvold) 232 ! RLT add pressure233 prsh(:,:,1)=ps(:,:,1,n)234 231 235 232 … … 239 236 do kz=2,nuvz 240 237 pint=akz(kz)+bkz(kz)*ps(:,:,1,n) 241 ! RLT add pressure242 prsh(:,:,kz)=pint243 238 tv=tth(:,:,kz,n)*(1.+0.608*qvh(:,:,kz,n)) 244 239 rhoh(:,:,kz)=pint(:,:)/(r_air*tv) … … 292 287 pv(:,:,1,n)=pvh(:,:,1) 293 288 rho(:,:,1,n)=rhoh(:,:,1) 294 ! RLT add pressure295 prs(:,:,1,n)=prsh(:,:,1)296 289 297 290 uu(:,:,nz,n)=uuh(:,:,nuvz) … … 307 300 pv(:,:,nz,n)=pvh(:,:,nuvz) 308 301 rho(:,:,nz,n)=rhoh(:,:,nuvz) 309 ! RLT 310 prs(:,:,nz,n)=prsh(:,:,nuvz) 302 311 303 312 304 kmin=2 … … 328 320 pv(ix,jy,iz,n)=pv(ix,jy,nz,n) 329 321 rho(ix,jy,iz,n)=rho(ix,jy,nz,n) 330 ! RLT331 prs(ix,jy,iz,n)=prs(ix,jy,nz,n)332 322 else 333 323 innuvz: do kz=idx(ix,jy),nuvz … … 363 353 pv(ix,jy,iz,n)=(pvh(ix,jy,kz-1)*dz2+pvh(ix,jy,kz)*dz1)/dz 364 354 rho(ix,jy,iz,n)=(rhoh(ix,jy,kz-1)*dz2+rhoh(ix,jy,kz)*dz1)/dz 365 ! RLT add pressure366 prs(ix,jy,iz,n)=(prsh(ix,jy,kz-1)*dz2+prsh(ix,jy,kz)*dz1)/dz367 355 endif 368 356 enddo
Note: See TracChangeset
for help on using the changeset viewer.