C $Header: /u/gcmpack/MITgcm/model/src/packages_unused_msg.F,v 1.1 2014/05/27 21:23:07 jmc Exp $
C $Name: $
#include "CPP_OPTIONS.h"
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP
C !ROUTINE: PACKAGES_UNUSED_MSG
C !INTERFACE:
SUBROUTINE PACKAGES_UNUSED_MSG( sw_name, sr_name, df_sufx )
C !DESCRIPTION: \bv
C *==============================================================*
C | SUBROUTINE PACKAGES_UNUSED_MSG
C | o This routine is called (within the corresponding
C | {PKG}_READPARAMS routine) when this {PKG} is not used; it
C | prints a (weak) warning if {PKG} parameter file is found.
C *==============================================================*
C \ev
C !USES:
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
C !INPUT/OUTPUT PARAMETERS:
C === Routine arguments ===
C sw_name :: package on/off switch flag name
C sr_name :: subroutine name which calls this S/R
C df_sufx :: package parameter file sufix (prefix='data.')
C myThid :: My thread Id number
CHARACTER*(*) sw_name, sr_name, df_sufx
c INTEGER myThid
C !FUNCTIONS:
INTEGER ILNBLNK
EXTERNAL
C !LOCAL VARIABLES:
C === Local variables ===
C caller_sub :: name of subroutine which is calling this S/R
C data_file :: parameter file to open and copy
C pkgLwc :: PKG name (Lower case)
C pkgUpc :: PKG name (Upper case)
C msgBuf :: Informational/error message buffer
CHARACTER*(MAX_LEN_FNAM) data_file
CHARACTER*(MAX_LEN_MBUF) caller_sub
CHARACTER*(MAX_LEN_MBUF) pkgLwc, pkgUpc
CHARACTER*(MAX_LEN_MBUF) msgBuf
INTEGER iLen, iLen1, iLen2, iLen3
INTEGER myThid
LOGICAL existing
CEOP
WRITE(caller_sub,'(A)') ' '
WRITE(data_file, '(A)') ' '
iLen1 = ILNBLNK(sw_name)
iLen2 = ILNBLNK(sr_name)
iLen3 = ILNBLNK(df_sufx)
IF ( iLen1.GE.4 ) THEN
iLen = iLen1 - 3
pkgLwc = sw_name(4:iLen1)
CALL LCASE(pkgLwc(1:iLen))
pkgUpc = sw_name(4:iLen1)
CALL UCASE(pkgUpc(1:iLen))
WRITE(data_file,'(2A)') 'data.', sw_name(4:iLen1)
ELSE
iLen = 7
pkgLwc = 'unknown'
pkgUpc = 'UNKNOWN'
ENDIF
IF ( iLen2.EQ.0 ) THEN
WRITE(caller_sub,'(2A)') pkgUpc(1:iLen), '_READPARMS'
iLen2 = iLen + 10
ELSE
WRITE(caller_sub,'(2A)') sr_name(1:iLen2)
ENDIF
IF ( iLen3.EQ.0 ) THEN
WRITE(data_file,'(2A)') 'data.', pkgLwc(1:iLen)
iLen3 = 5 + iLen
ELSE
WRITE(data_file,'(2A)') 'data.', df_sufx(1:iLen3)
iLen3 = 5 + iLen3
ENDIF
c WRITE(errorMessageUnit,'(I4,3A)')
c & iLen1, ' >', sw_name(1:iLen1), '<'
c WRITE(errorMessageUnit,'(I4,3A)')
c & iLen2, ' >', caller_sub(1:iLen2), '<'
c WRITE(errorMessageUnit,'(I4,3A)')
c & iLen3, ' >', data_file(1:iLen3), '<'
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
C-- PKG exf is not used: print a (weak) warning if data_file is found
myThid = 1
IF ( iLen1.GE.1 ) THEN
INQUIRE( FILE=data_file, EXIST=existing )
IF ( existing ) THEN
WRITE(msgBuf,'(5A)') '** Warning ** ', caller_sub(1:iLen2),
& ': ignores "', data_file(1:iLen3), '" file since'
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
& SQUEEZE_RIGHT, myThid )
WRITE(msgBuf,'(5A)') '** Warning ** ', caller_sub(1:iLen2),
& ': ', sw_name(1:iLen1), '= F (set from "data.pkg")'
CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
& SQUEEZE_RIGHT, myThid )
ENDIF
ENDIF
RETURN
END