openreceptors.f90 3.08 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
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