openreceptors.f90 4.48 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
!**********************************************************************
! Copyright 1998,1999,2000,2001,2002,2005,2007,2008,2009,2010         *
! Andreas Stohl, Petra Seibert, A. Frank, Gerhard Wotawa,             *
! Caroline Forster, Sabine Eckhardt, John Burkhart, Harald Sodemann   *
!                                                                     *
! This file is part of FLEXPART.                                      *
!                                                                     *
! FLEXPART is free software: you can redistribute it and/or modify    *
! it under the terms of the GNU General Public License as published by*
! the Free Software Foundation, either version 3 of the License, or   *
! (at your option) any later version.                                 *
!                                                                     *
! FLEXPART is distributed in the hope that it will be useful,         *
! but WITHOUT ANY WARRANTY; without even the implied warranty of      *
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       *
! GNU General Public License for more details.                        *
!                                                                     *
! You should have received a copy of the GNU General Public License   *
! along with FLEXPART.  If not, see <http://www.gnu.org/licenses/>.   *
!**********************************************************************

subroutine openreceptors

  !*****************************************************************************
  !                                                                            *
  !  This routine opens the receptor output files and writes out the receptor  *
  !  names and the receptor locations. The receptor output files are not       *
  !  closed, but kept open throughout the simulation. Concentrations are       *
  !  continuously  dumped to these files.                                      *
  !                                                                            *
  !     Author: A. Stohl                                                       *
  !                                                                            *
  !     7 August 2002                                                          *
  !                                                                            *
  !*****************************************************************************
  !                                                                            *
  ! Variables:                                                                 *
  ! numreceptor            actual number of receptor points specified          *
  ! receptornames          names of the receptor points                        *
  ! xreceptor,yreceptor    coordinates of the receptor points                  *
  !                                                                            *
  !*****************************************************************************

  use par_mod
  use com_mod

  implicit none

  integer :: j

  ! Open output file for receptor points and write out a short header
  ! containing receptor names and locations
  !******************************************************************

  if (numreceptor.ge.1) then           ! do it only if receptors are specified

  ! Concentration output
  !*********************

    if ((iout.eq.1).or.(iout.eq.3).or.(iout.eq.5)) then
      open(unitoutrecept,file=path(2)(1:length(2))//'receptor_conc', &
           form='unformatted',err=997)
      write(unitoutrecept) (receptorname(j),j=1,numreceptor)
      write(unitoutrecept) (xreceptor(j)*dx+xlon0, &
           yreceptor(j)*dy+ylat0,j=1,numreceptor)
    endif

  ! Mixing ratio output
  !********************

    if ((iout.eq.2).or.(iout.eq.3)) then
      open(unitoutreceptppt,file=path(2)(1:length(2))//'receptor_pptv', &
           form='unformatted',err=998)
      write(unitoutreceptppt) (receptorname(j),j=1,numreceptor)
      write(unitoutreceptppt) (xreceptor(j)*dx+xlon0, &
           yreceptor(j)*dy+ylat0,j=1,numreceptor)
    endif
  endif

  return


997   write(*,*) ' #### FLEXPART MODEL ERROR! THE FILE           #### '
  write(*,*) ' ####              receptor_conc               #### '
  write(*,*) ' #### CANNOT BE OPENED.                        #### '
  stop

998   write(*,*) ' #### FLEXPART MODEL ERROR! THE FILE           #### '
  write(*,*) ' ####              receptor_pptv               #### '
  write(*,*) ' #### CANNOT BE OPENED.                        #### '
  stop

end subroutine openreceptors