SUBROUTINE NOMFI(CDPREF,CDSUFF,CDNOM)
! --------------------------------------------------------------------------
! **** *nomfi* Provides the name of an non-existing file.
! --------------------------------------------------------------------------
! Sujet:
! ------
! Arguments explicites:
! ---------------------
! Arguments implicites:
! ---------------------
! Methode:
! --------
! Externes:
! ---------
! Auteur:   95-02, J.M. Piriou.
! -------
! Modifications:
!        M.Hamrud      01-Oct-2003 CY28 Cleaning
! --------------------------------------------------------------------------
! En entree: cdpref et cdsuff: resp. prefixe et suffixe du nom de fichier.
! En sortie: cdnom nom d'un fichier inexistant.
! La presente routine ajoute des caracteres entre prefixe et suffixe d'entree
! jusqu'a ce que cdnom corresponde a un fichier inexistant.
! Les prefixe et suffixe peuvent etre initialises a ' ' par l'appelant.

! Exemple1: cdpref='Tutu.' cdsuff='-tmp' ==> cdnom='Tutu.26-tmp'
! Exemple2: cdpref=' '     cdsuff=' '    ==> cdnom='67'
! --------------------------------------------------------------------------
USE PARKIND1  ,ONLY : JPIM     ,JPRB
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK

IMPLICIT NONE
CHARACTER(LEN=*)  ,INTENT(IN)    :: CDPREF 
CHARACTER(LEN=*)  ,INTENT(IN)    :: CDSUFF 
CHARACTER(LEN=*)  ,INTENT(INOUT) :: CDNOM 
INTEGER(KIND=JPIM) ::IC,ILNOM
LOGICAL :: LLEX
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK('NOMFI',0,ZHOOK_HANDLE)
IC=0

!-------------------------------------------------
! Increase integer value until the corresponding name is an non-existing file.
!-------------------------------------------------

100 CONTINUE
IC=IC+1

!-------------------------------------------------
! Write the integer value on a character variable.
!-------------------------------------------------

WRITE(CDNOM,FMT=*) IC
CDNOM=ADJUSTL(CDNOM)
ILNOM=LEN_TRIM(CDNOM)

!-------------------------------------------------
! If the prefix in input is not a blank, add it on the left hand side of the name.
!-------------------------------------------------

IF(CDPREF /= ' ') THEN
  CDNOM=CDPREF(1:LEN_TRIM(CDPREF))//CDNOM(1:ILNOM)
ELSE
  CDNOM=CDNOM(1:ILNOM)
ENDIF
ILNOM=LEN_TRIM(CDNOM)

!-------------------------------------------------
! If the suffix in input is not a blank, add it on the right hand side of the name.
!-------------------------------------------------

IF(CDSUFF /= ' ') THEN
  CDNOM=CDNOM(1:ILNOM)//CDSUFF(1:LEN_TRIM(CDSUFF))
ENDIF

!-------------------------------------------------
! If this name is an existing file, continue.
!-------------------------------------------------

INQUIRE(FILE=CDNOM,EXIST=LLEX)
IF(LLEX) GOTO 100
IF (LHOOK) CALL DR_HOOK('NOMFI',1,ZHOOK_HANDLE)
END SUBROUTINE NOMFI 
