C $Header: /u/gcmpack/MITgcm/pkg/exf/exf_set_gen.F,v 1.39 2017/02/21 01:04:26 jmc Exp $
C $Name: $
#include "EXF_OPTIONS.h"
C-- File exf_set_gen.F: General routines to load-in an input field
C-- Contents
C-- o EXF_SET_GEN
C-- o EXF_INIT_GEN
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
SUBROUTINE EXF_SET_GEN(
& genfile, genStartTime, genperiod,
& exf_inscal_gen, genremove_intercept, genremove_slope,
& genfld, gen0, gen1, genmask,
#ifdef USE_EXF_INTERPOLATION
& gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,
& gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,
#endif
& myTime, myIter, myThid )
C *=================================================================*
C | SUBROUTINE EXF_SET_GEN
C *=================================================================*
C | o old version of current S/R EXF_SET_FLD, with fewer arguments
C | o kept to allow to compile and use old piece of code
C *=================================================================*
IMPLICIT NONE
C == global variables ==
#include "EEPARAMS.h"
#include "SIZE.h"
#include "EXF_PARAM.h"
C == routine arguments ==
_RL genStartTime, genperiod
_RL exf_inscal_gen
_RL genremove_intercept, genremove_slope
_RL genfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL gen0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL gen1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
CHARACTER*1 genmask
CHARACTER*(128) genfile
_RL myTime
INTEGER myIter
INTEGER myThid
#ifdef USE_EXF_INTERPOLATION
C gen_lon_0 ,gen_lat_0 :: longitude and latitude of SouthWest
C corner of global input grid
C gen_nlon, gen_nlat :: input x-grid and y-grid size
C gen_lon_inc :: scalar x-grid increment
C gen_lat_inc :: vector y-grid increments
C gen_xout, gen_yout :: coordinates for output grid
_RL gen_lon0, gen_lon_inc
_RL gen_lat0, gen_lat_inc(MAX_LAT_INC)
INTEGER gen_nlon, gen_nlat
_RS gen_xout (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS gen_yout (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
INTEGER interp_method
#endif /* USE_EXF_INTERPOLATION */
C == local variables ==
C msgBuf :: Informational/error message buffer
c CHARACTER*(MAX_LEN_MBUF) msgBuf
CHARACTER*(7) gen_name
C == end of interface ==
gen_name = 'exf_gen'
CALL EXF_SET_FLD(
I gen_name, genfile, genmask,
I genStartTime, genperiod, repeatPeriod,
I exf_inscal_gen, genremove_intercept, genremove_slope,
U genfld, gen0, gen1,
#ifdef USE_EXF_INTERPOLATION
I gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,
I gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,
#endif
I myTime, myIter, myThid )
RETURN
END
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
SUBROUTINE EXF_INIT_GEN (
& genfile, genperiod, exf_inscal_gen, genmask,
& genconst, genfld, gen0, gen1,
#ifdef USE_EXF_INTERPOLATION
& gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,
& gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,
#endif
& myThid )
C *=================================================================*
C | SUBROUTINE EXF_INIT_GEN
C *=================================================================*
C | o old version of current S/R EXF_INIT_FLD, with fewer arguments
C | o kept to allow to compile and use old piece of code
C *=================================================================*
IMPLICIT NONE
C == global variables ==
#include "EEPARAMS.h"
#include "SIZE.h"
#include "EXF_PARAM.h"
C == routine arguments ==
_RL genperiod, exf_inscal_gen, genconst
_RL genfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL gen0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL gen1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
CHARACTER*1 genmask
CHARACTER*(128) genfile
INTEGER myThid
#ifdef USE_EXF_INTERPOLATION
C gen_lon_0 ,gen_lat_0 :: longitude and latitude of SouthWest
C corner of global input grid
C gen_nlon, gen_nlat :: input x-grid and y-grid size
C gen_lon_inc :: scalar x-grid increment
C gen_lat_inc :: vector y-grid increments
C gen_xout, gen_yout :: coordinates for output grid
_RL gen_lon0, gen_lon_inc
_RL gen_lat0, gen_lat_inc(MAX_LAT_INC)
INTEGER gen_nlon, gen_nlat
_RS gen_xout (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS gen_yout (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
INTEGER interp_method
#endif /* USE_EXF_INTERPOLATION */
C == local variables ==
C msgBuf :: Informational/error message buffer
c CHARACTER*(MAX_LEN_MBUF) msgBuf
CHARACTER*(7) gen_name
C == end of interface ==
gen_name = 'exf_gen'
CALL EXF_INIT_FLD (
I gen_name, genfile, genmask,
I genperiod, exf_inscal_gen, genconst,
U genfld, gen0, gen1,
#ifdef USE_EXF_INTERPOLATION
I gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,
I gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,
#endif
I myThid )
RETURN
END