! ************************************************************************ ! ** Overloads of EEsmf_ReadConfig ** ! ************************************************************************ !BOPI ! !IROUTINE: EEsmf_ReadConfigReal :: Reads a token from .rc file as returning ! :: token as a real. ! !INTERFACE: SUBROUTINE EEsmf_ReadConfigReal ( cf, & label, & default, & index, & rVal, & rc) ! !RETURN VALUE: REAL, INTENT(OUT) :: rVal ! !ARGUMENTS: TYPE(ESMF_Config) :: cf CHARACTER*(*), INTENT(IN) :: label REAL, INTENT(IN), OPTIONAL :: default INTEGER, INTENT(IN), OPTIONAL :: index INTEGER, INTENT(OUT) :: rc !EOPI ! !LOCAL VARIABLES: INTEGER I, INDEX_TMP INTEGER traceLevel traceLevel = 0 rVal = 0. rc = 0 IF ( PRESENT(index) ) THEN INDEX_TMP = INDEX ELSE INDEX_TMP = 1 ENDIF CALL ESMF_ConfigFindLabel( cf, label, rc ) IF ( rc .NE. ESMF_SUCCESS ) THEN IF ( traceLevel .GT. 1 ) THEN PRINT *, 'EESMF_Read_config:: ESMF_ConfigFindLabel rc = ',rc ENDIF RETURN ENDIF DO I=1,INDEX_TMP IF ( PRESENT(default) ) THEN CALL ESMF_ConfigGetAttribute( cf, rVal, default=default, rc =rc ) IF ( rc .NE. ESMF_SUCCESS ) THEN IF ( traceLevel .GT. 1 ) THEN PRINT *, 'EESMF_Read_config:: ESMF_ConfigGetAttribute(1) rc = ',rc ENDIF RETURN ENDIF ELSE CALL ESMF_ConfigGetAttribute( cf, rVal, rc =rc ) IF ( rc .NE. ESMF_SUCCESS ) THEN IF ( traceLevel .GT. 1 ) THEN PRINT *, 'EESMF_Read_config:: ESMF_ConfigGetAttribute(1) rc = ',rc ENDIF RETURN ENDIF ENDIF ENDDO IF ( traceLevel .GT. 1 ) THEN PRINT *, 'Begin EESMF_Read_config summary' PRINT *, ' label = ', TRIM(label) PRINT *, ' returned value = ', rVal PRINT *, ' return code = ', rc PRINT *, 'End EESMF_Read_config summary' ENDIF END SUBROUTINE EEsmf_ReadConfigReal