c     Copyright (C)
c     2010-2013 Université Bordeaux 1
c     2010-2013 Ecole des Mines d'Albi
c     2014-2018 - Mesostar
c     
c     This program is free software; you can redistribute it and/or modify
c     it under the terms of the GNU General Public License as published by
c     the Free Software Foundation; either version 2, or (at your option)
c     any later version.

c     This program is distributed in the hope that it will be useful,
c     but WITHOUT ANY WARRANTY; without even the implied warranty of
c     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
c     GNU General Public License for more details.

c     You should have received a copy of the GNU General Public License
c     along with this program; if not, write to the Free Software
c     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
c     USA.
c
      subroutine get_nlines(file,nlines_file,nl)
      implicit none
      include 'max.inc'
c
c     Purpose: to find the number of lines in a given file
c
c     Inputs:
c       + file: file whose number of lines has to be found
c       + nlines_file: temporary file to use
c     
c     Outputs:
c       + nl: number of lines within "file"
c

c     I/O
      character*(Nchar_mx) file
      character*(Nchar_mx) nlines_file
      integer nl
c     temp
      integer ios
      character*(Nchar_mx) command
      integer strlen
      character*(Nchar_mx) label
      label='subroutine get_nlines'

      open(10,file=file(1:strlen(file))
     &     ,status='old',iostat=ios)
      if (ios.ne.0) then        ! file not found
         nl=0
         goto 123
      endif

c     Number of lines in the specified data file
      command='wc -l < '
     &     //file(1:strlen(file))
     &     //' > ./'
     &     //nlines_file(1:strlen(nlines_file))
      call exec(command)

      open(10,file=nlines_file(1:strlen(nlines_file)))
      read(10,*) nl
      close(10)

 123  continue

      return
      end
