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