# This config file contains the compile options for compilation
# of the GSI code on the NCEP IBM SP.  All production builds
# on NCEP IBM SP are 64-bit

# ----------------------------------
# Redefine variables for NCEP IBM SP
# ----------------------------------
COREINC  = /nwprod/lib/incmod
INCsfcio = $(COREINC)/sfcio_4
INCsigio = $(COREINC)/sigio_4
INCgfsio = $(COREINC)/gfsio_4

INCcrtm = /global/save/wx20ml/CRTM_REL-2.0/REL-2.0.2.JCSDA_CRTM/include
LIBcrtm = /global/save/wx20ml/CRTM_REL-2.0/REL-2.0.2.JCSDA_CRTM/lib/libCRTM.a

INCgsi  = ../../src
LIBgsi  = ../../lib/libgsi.a

INCnemsio = /global/save/wx20ml/nemsio_libs/nemsio/incmod
LIBnemsio = /global/save/wx20ml/nemsio_libs/nemsio/libnemsio.a

LIBw3 = /global/save/wx20ml/nemsio_libs/w3/libw3_d.a

WRFPATH=/nwprod/sorc/nam_nmm_real_fcst.fd
LIBwrfio_int    = $(WRFPATH)/external/io_int/libwrfio_int.a
LIBwrfio_netcdf = $(WRFPATH)/external/io_netcdf/libwrfio_nf.a
INCnetcdf       = /nwprod/lib/sorc/netcdf/netcdf-3.5.0/include
OBJwrf_frame_pk = $(WRFPATH)/frame/pack_utils.o
OBJwrf_sizeof_int = $(WRFPATH)/frame/module_machine.o
WRFLIB = $(LIBwrfio_int) $(LIBwrfio_netcdf) $(OBJwrf_frame_pk) $(OBJwrf_sizeof_int)


# Empty out definition of libs use by GMAO GSI building structure
LIBtransf = #-L$(CORELIB) -ltransf
LIBhermes = #-L$(CORELIB) -lhermes
LIBgfio   = #-L$(CORELIB) -lgfio
INChdf    = #-I$(BASEDIR)/$(ARCH)/include/hdf
LIBhdf    = #-L$(BASEDIR)/$(ARCH)/lib  -lmfhdf -ldf -lhdfjpeg -lhdfz -lsz

# ---------------------------
# General targets/definitions
# ---------------------------

  ARFLAGS = -X64 -v -q
  AR     = ar

# ----------------------------
# Fortran compiler and options
# ----------------------------

  CF            = mpxlf95_r
  FC            = $(CF)

#--- Normal mode options
  PROF= #-pg
  OMP = -qsmp=noauto

  FFLAGS_F90    = -qfree=f90 -qsuffix=f=f90:cpp=F90 -WF,-Dibm_sp,-DWRF

  FFLAGS_COM_N  = -I ./ -I$(INCgsi) -I $(INCcrtm) -I $(INCsfcio) -I $(INCsigio) \
                  -I $(INCgfsio) -I $(INCnetcdf) -I ${INCnemsio} -qarch=auto -O3  \
                  -qmaxmem=-1 -qfullpath -qdbg -qstrict -q64 $(OMP)

  FFLAGS_COM_N_NOSWAP = $(FFLAGS_COM_N)

  FFLAGS_N  = $(FFLAGS_F90) $(FFLAGS_COM_N) $(PROF)
  FFLAGS_NOSWAP_N  = $(FFLAGS_F90) $(FFLAGS_COM_N_NOSWAP) $(PROF)
  FFLAGS_f  = -qfixed       $(FFLAGS_COM_N) $(PROF)
  FFLAGS    = $(FFLAGS_N) $(PROF)



#--- Debug mode options
#  -qflttrap=overflow:zero:enable \ is ok
#  -qflttrap=overflow:zero:underflow:enable \ fails
#  -qsave=all \ fails, so removing from option list
  FFLAGS_COM_D  =  -I ./ -I$(INCgsi) -I $(INCcrtm) -I $(INCsfcio) -I $(INCsigio) \
          -I $(INCgfsio) -I $(INCnetcdf) -I ${INCnemsio} -qarch=auto \
          -qmaxmem=-1 -qfullpath -qdbg -qstrict -q64 \
          -O0 \
          -qsigtrap=xl__trcedump \
          -qflttrap=overflow:zero:enable \
          -qinitauto=7FF7FFFF \
          -qcheck \
          -qwarn64 \
          -qflag=i:u \
          -qlistopt \
          -qsource

  FFLAGS_COM_NOSWAP_D = $(FFLAGS_COM_D)

  FFLAGS_D  = $(FFLAGS_F90) $(FFLAGS_COM_D)
  FFLAGS_NOSWAP_D = $(FFLAGS_F90) $(FFLAGS_COM_NOSWAP_D)



# ----------------------
# C Compiler and options
# ----------------------

  CC            = /usr/vac/bin/cc_r

#--- Normal mode options

  CFLAGS_N      = -I ./ -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -DIBM4 -O3 $(PROF)

#--- Debug mode options

  CFLAGS_D      = -I ./ -DFortranByte=char -DFortranInt=int -DFortranLlong='long long' -DIBM4 -g


# ------------------
# Linker and options
# ------------------

  LD            = $(CF)

#--- Normal mode options

##  LIBS_N        = -L/nwprod/lib -lsp_d -lw3_d -lbufr_d_64 -lbacio_4 -lmpitrace \
##                    -lsigio_4 -lsfcio_4 -lgfsio_4 -lnetcdf_64 \
##                    $(LIBcrtm) $(WRFLIB)

  LIBS_N        =   $(LIB) $(LIBw3) $(LIBnemsio) \
                    -L/nwprod/lib -lsp_d -lbufr_d_64 -lbacio_4 -lmpitrace \
                    -lsigio_4 -lsfcio_4 -lgfsio_4 -lnetcdf_64 \
                    $(LIBcrtm) $(WRFLIB)

  LDFLAGS_N     = -lessl_r -lmass -bloadmap:loadmap.txt \
                  -bdatapsize:64K -bstackpsize:64K $(OMP) $(PROF)

  LDFLAGS       = $(LDFLAGS_N)

#--- Debug mode options

  LIBS_D        = $(LIBS_N) -lhmd

  LDFLAGS_D     = -lessl_r -lmass -bloadmap:loadmap.txt \
                  -bdatapsize:64K -bstackpsize:64K $(OMP)

#--- Empty out mpi library definition: embedded in compiler

  LIBmpi	=