SUBROUTINE CH_READNML (CDNAME,KFLAG) 2 use modstag, only : lstagwinds #if defined (DOC) * ***s/r CH_READNML - Check if namelist cdname is present on logical unit * . NULNAM and read it, for chemistry-related namelists * * Author: Y. Yang, following s/r readnml by P. Gauthier *ARMA/AES * (August 29, 1994; adapted from CHECNML by MICHEL DESGAGNE * OCT 1993 (for MC2)) to read NAMCHEM and NAMVARSTD for species *REVISION: * * Y.J. Rochon *ARQX/MSC Feb 2006 * . moved reading of namvarstd to dynamic conterpart readnml.ftn * Y.Yang AROI/MSC Feb. 2006 * . added reading of namsplit *Arguments * i CDNAME : variable character string containing the name of * . the NAMELIST to be read * o KFLAG : flag for error * ** #endif IMPLICIT NONE *implicits #include "pardim.cdk"
#include "comlun.cdk"
C #include "comct0.cdk"
#include "namct0.cdk"
C #include "comdim.cdk"
#include "namdim.cdk"
C #include "comdimo.cdk"
#include "namdimo.cdk"
C #include "comchem.cdk"
#include "namchem.cdk"
C #include "comsplit.cdk"
#include "namsplit.cdk"
C * CHARACTER*60 CLDUMMY * CHARACTER*(*) CDNAME INTEGER KFLAG * ** 1. Position the file to where the NAMELIST is located * REWIND(NULNAM) 100 CONTINUE READ (NULNAM,'(2X,A)',END=300,IOSTAT=KFLAG) CLDUMMY IF (CLDUMMY.EQ.CDNAME) THEN BACKSPACE (NULNAM) GOTO 200 ELSE GOTO 100 ENDIF * ** 2. Read the NAMELIST (if present) * 200 CONTINUE WRITE(NULOUT,9200)CDNAME 9200 FORMAT(//,5X,"CH_READNML- reading Namelist ",A) C C IF(CDNAME.EQ.'NAMCHEM')THEN C #if defined (C910) READ(NULNAM,NML=NAMCHEM) WRITE(NULOUT,NML=NAMCHEM) #else READ(NULNAM,NAMCHEM) WRITE(NULOUT,NAMCHEM) #endif C ELSE IF(CDNAME.EQ.'NAMSPLIT')THEN C #if defined (C910) READ(NULNAM,NML=NAMSPLIT) WRITE(NULOUT,NML=NAMSPLIT) #else READ(NULNAM,NAMSPLIT) WRITE(NULOUT,NAMSPLIT) #endif C END IF C RETURN * ** 3. Abort the job if the NAMELIST is absent * 300 CONTINUE WRITE(NULOUT,9300)CDNAME 9300 FORMAT(//,10X,"-NAMELIST ",A," not found") CALL ABORT3D(NULOUT," CH_READNML ") END