C $Header: /u/gcmpack/MITgcm/pkg/atm2d/atm2d_readparms.F,v 1.3 2017/08/09 15:23:39 mlosch Exp $
C $Name:  $

#include "ctrparam.h"
#include "ATM2D_OPTIONS.h"

C
      SUBROUTINE ATM2D_READPARMS( myThid )
C     /==========================================================\
C     | SUBROUTINE ATM2D_READPARMS                               |
C     |==========================================================|
C     | Initialize ATM2D parameters, read in data.atm2d          |
C     \==========================================================/
      IMPLICIT NONE

#include "ATMSIZE.h"
#include "SIZE.h"
#include "EEPARAMS.h"
#include "ATM2D_VARS.h"

C     === Routine arguments ===
      INTEGER myThid

      NAMELIST //PARM01_ATM2D
     &        atmosTauuFile, atmosTauvFile,atmosWindFile

      NAMELIST //PARM02_ATM2D
     &        tauuFile, tauvFile, windFile,
     &        qnetFile, evapFile, precipFile

      NAMELIST //PARM03_ATM2D
     &        thetaRelaxFile, saltRelaxFile,
     &        tauThetaRelax, tauSaltRelax,
     &        nttyperelax, nstyperelax

      NAMELIST //PARM04_ATM2D
     &        runoffFile, runoffMapFile,
     &        numbands, rband

      NAMELIST //PARM05_ATM2D
     &        useObsEmP,useObsRunoff,useAltDeriv


C     === Local variables ===
C     msgBuf      - Informational/error meesage buffer
C     iUnit       - Work variable for IO unit number
      CHARACTER*(MAX_LEN_MBUF) msgBuf
      INTEGER iUnit
      INTEGER j     ! loop counter


      WRITE(msgBuf,'(A)') ' ATM2D_READPARMS: opening data.atm2d'
      CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
     &                    SQUEEZE_RIGHT , 1)

      CALL OPEN_COPY_DATA_FILE(
     I                          'data.atm2d', 'ATM2D_READPARMS',
     O                          iUnit,
     I                          myThid )

C--   Default values
      atmosTauuFile=' '
      atmosTauvFile=' '
      atmosWindFile=' '
      tauuFile=' '
      tauvFile=' '
      windFile=' '
      qnetFile=' '
      evapFile=' '
      precipFile=' '
      runoffFile=' '
      thetaRelaxFile=' '
      saltRelaxFile=' '
      runoffFile=' '
      runoffMapFile=' '
C
      useObsEmP=.FALSE.
      useObsRunoff=.FALSE.
      useAltDeriv=.FALSE.
C
      r_tauThetaRelax=0. _d 0
      r_tauSaltRelax=0. _d 0
      ntTypeRelax=0
      nsTypeRelax=0

      numBands=1
      do j=1,sNy
        rband(j)=0
      enddo

c--   Read parameters from open data file
      READ(UNIT=iUnit,NML=PARM01_ATM2D)
c
      READ(UNIT=iUnit,NML=PARM02_ATM2D)
c
      READ(UNIT=iUnit,NML=PARM03_ATM2D)
c
      READ(UNIT=iUnit,NML=PARM04_ATM2D)
c
      READ(UNIT=iUnit,NML=PARM05_ATM2D)
c
      WRITE(msgBuf,'(A)') ' ATM2D_READPARMS: read PARM01_ATM2D'
      CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
     &                    SQUEEZE_RIGHT , 1)

C--   Close the open data file
#ifdef SINGLE_DISK_IO
      CLOSE(iUnit)
#else
      CLOSE(iUnit,STATUS='DELETE')
#endif /* SINGLE_DISK_IO */

      IF (tauThetaRelax .NE. 0. _d 0)
     &                  r_tauThetaRelax= 1. _d 0/tauThetaRelax
      IF (tauSaltRelax .NE. 0. _d 0)
     &                  r_tauSaltRelax= 1. _d 0/tauSaltRelax

      RETURN
      END