I need help about MCIP2ARL

Post questions and find resources to convert meteorological data into a format HYSPLIT can read.
Post Reply
jonghun33
Posts: 7
Joined: June 12th, 2017, 2:53 am
Registered HYSPLIT User: No

I need help about MCIP2ARL

Post by jonghun33 » February 7th, 2019, 4:28 am

Hello hysplit users.

I've installed hysplit4 Linux version. But I found that there is no mcip2arl module.
I couldn't find mcip2arl module in exec folder and hysplit user interface.
I only found mcip2arl.f file in cmaq folder in /hysplit/trunk/cmaq folder
I am really really need to convert mcip data to arl.
what should i do to install mcip2arl and using mcip2arl?

please answer me as soon as you can.

I am using gfortran, mpich-3.0.4 version, netcdf-4.1.3 version, zlib-1.2.7 version.
I really really need your help.

Fantine
Posts: 69
Joined: November 8th, 2012, 3:41 pm

Re: I need help about MCIP2ARL

Post by Fantine » February 7th, 2019, 11:15 am

The readme file in the /cmaq directory explains what are those fortran programs for. "mcip2arl" is the one converting MCIP met data to ARL formatted file for running HYSPLIT.
So... compile the program with the Makefile in the /cmaq directory, and then the executable will be put in /exec directory.

jonghun33
Posts: 7
Joined: June 12th, 2017, 2:53 am
Registered HYSPLIT User: No

Re: I need help about MCIP2ARL

Post by jonghun33 » February 8th, 2019, 1:46 am

Hello fantime.
Thank you for your quick apply.

I installed HYSPLIT as instruction again.
but i can't find mcip2arl again.

As your answer, i checked cmaqreadme.txt
but there is no detailed explanation about installing mcip2arl.

below is cmaqreadme.txt

Code: Select all

 DIRECTORY:../cmaq^M

______________________________________________________________^M

^M

Utilityprograms to convert HYSPLIT output to CMAQ IOAPI^M
orCMAQ MCIP meteorological data for input by HYSPLIT^M

^M

traj2api- convert HYSPLIT trajectory endpoint files to ioapi format^M
conc2api- convert HYSPLIT binary concentration file to ioapi format^M
mcip2arl- convert CMAQ MCIP meteorological data to ARL packed data^M
Below is cmaq Makefile. I changed API path and Links line.
before i changed, LINKS line was below

LINKS = -L$(NETLIB) -lnetcdff -L../library -lhysplit

after i changed, LINKS line was below

LINKS = -L$(NETLIB) -lnetcdff -lnetcdf -L../library -lhysplit

Would you check me what should i change or what should i check to install mcip2arl?
Below is entire cmaq makefile text.

Code: Select all

#------------------------------------------------------------------

#Master Makefile for the ../cmaq/mcip2arl directory
#Last Revised: 21 Nov 2005
# 21 Dec 2005 - put hysplit lib at end
# 09 Aug 2007 - support for gfortran
# 15 Jul 2010 - directory mod for repository
# 03 Nov 2010 - added conc2cdf (no IOAPI)
# 25 Aug 2014 - netCDF libraries previously exported
# 25 Jan 2018 - replaced conc2cdf with con2cdf3/con2cdf4

#------------------------------------------------------------------




SHELL= /bin/sh

EXE= ../exec

#IOAPI LIBRARY
API= /home/kict/다운로드 /IOAPI/Linux2_x86_64gfort

#exported in calling script
#NETINC = /usr/local/include
#NETLIB = /usr/local/lib

#library name for netCDF3=netcdf and for netCDF4=netcdff
#LINKS = -L$(NETLIB) -lnetcdf -L../library -lhysplit
LINKS= -L$(NETLIB) -lnetcdff -lnetcdf -L../library -lhysplit

#standard compilation flags
SUN5= -free -I$(NETINC)
AIXC= -I$(NETINC)
AIX8= -qarch=auto -qmaxmem=8192 -I$(NETINC) -qstrict
DEC3= -assume byterecl -I$(NETINC)
SGI5= -bytereclen -I$(NETINC) -freeform
ABSF= -f free -I$(NETINC)
PGF9= -Mfree -byteswapio -I$(NETINC)
INTL= -FR -assume byterecl -convert big_endian -I$(NETINC)
GF95= -fendian=big -ffree-form -I$(NETINC)
GFOR= -fconvert=big-endian -frecord-marker=4 -ffree-form -I$(NETINC)

CFLAGS= $(GFOR)
FC= gfortran

#CFLAGS= $(INTL)
#FC= ifort
#CFLAGS= $(PGF9)
#FC= pgf90

all: traj2api conc2api mcip2arl con2cdf3 con2cdf4

traj2api: traj2api.f
$(FC)-o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
rm-f *.o

conc2api: conc2api.f
$(FC)-o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
rm-f *.o

mcip2arl: mcip2arl.f
$(FC)-o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
rm-f *.o

con2cdf3: con2cdf3.f
$(FC)-o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
rm-f *.o

con2cdf4: con2cdf4.f
$(FC)-o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
rm-f *.o

clean:

rm-f $(EXE)/traj2api
rm-f $(EXE)/conc2api
rm-f $(EXE)/mcip2arl
rm-f $(EXE)/con2cdf3
rm-f $(EXE)/con2cdf4

Please help me.
I really really need your help
jonghun33 wrote:
February 7th, 2019, 4:28 am
Hello hysplit users.

I've installed hysplit4 Linux version. But I found that there is no mcip2arl module.
I couldn't find mcip2arl module in exec folder and hysplit user interface.
I only found mcip2arl.f file in cmaq folder in /hysplit/trunk/cmaq folder
I am really really need to convert mcip data to arl.
what should i do to install mcip2arl and using mcip2arl?

please answer me as soon as you can.

I am using gfortran, mpich-3.0.4 version, netcdf-4.1.3 version, zlib-1.2.7 version.
I really really need your help.

Fantine
Posts: 69
Joined: November 8th, 2012, 3:41 pm

Re: I need help about MCIP2ARL

Post by Fantine » February 8th, 2019, 11:56 am

You need to modify the Makefile in /cmaq directory to provide the path of IOAPI library, netcdf library, and the compilation flag.

In the attached Makefile, you should uncommand the NETINC and NETLIB, and set the path to your netCDF4. It should be the same netCDF4 library you used to install IOAPI.
For your IOAPI path, double check if it is set correctly. I am not sure the Korean characters can be taken. And there should be no space in the path.
The compilation flag (CFLAGS and FC) should be the same used to compile HYSPLIT. The default setup is gfortran.

Did you install the HYSPLIT successfully? If you did, you will see a "libhysplit.a" in /library directory. This is the HYSPLIT library needed for mcip2arl. Assuming you make all changes listed above in the Makefile, then... you type "make" in the /camq to compile the fortran programs in the directory. The executable will be in /exec.

jonghun33
Posts: 7
Joined: June 12th, 2017, 2:53 am
Registered HYSPLIT User: No

Re: I need help about MCIP2ARL

Post by jonghun33 » February 13th, 2019, 5:21 am

Thank you for your apply Fantime.
i edited the cmaq makefile as you said before.
and i linked API path to directory which have libioapi.a file.
and also removed '#' infront of LETINC and NETLIB as you can see below.

Code: Select all

#------------------------------------------------------------------
# Master Makefile for the ../cmaq/mcip2arl directory
# Last Revised: 21 Nov 2005
#               21 Dec 2005 - put hysplit lib at end
#               09 Aug 2007 - support for gfortran
#               15 Jul 2010 - directory mod for repository
#               03 Nov 2010 - added conc2cdf (no IOAPI)
#               25 Aug 2014 - netCDF libraries previously exported
#               25 Jan 2018 - replaced conc2cdf with con2cdf3/con2cdf4
#------------------------------------------------------------------

SHELL = /bin/sh

EXE = ../exec

# IOAPI LIBRARY
API = /home/kict/다운로드/IOAPI/Linux2_x86_64gfort

# exported in calling script
  NETINC = /home/kict/WRF/Build_WRF/LIBRARIES/netcdf/include
  NETLIB = /home/kict/WRF/Build_WRF/LIBRARIES/netcdf/lib

# library name for netCDF3=netcdf and for netCDF4=netcdff
# LINKS = -L$(NETLIB) -lnetcdf  -L../library -lhysplit
  LINKS = -L$(NETLIB) -lnetcdff -lnetcdf -L../library -lhysplit

# standard compilation flags
SUN5 = -free -I$(NETINC)
AIXC = -I$(NETINC)
AIX8 = -qarch=auto -qmaxmem=8192 -I$(NETINC) -qstrict
DEC3 = -assume byterecl -I$(NETINC)
SGI5 = -bytereclen -I$(NETINC) -freeform
ABSF = -f free -I$(NETINC)
PGF9 = -Mfree -byteswapio -I$(NETINC)
INTL = -FR -assume byterecl -convert big_endian -I$(NETINC)
GF95 = -fendian=big -ffree-form -I$(NETINC)
GFOR = -fconvert=big-endian -frecord-marker=4 -ffree-form -I$(NETINC)

CFLAGS = $(GFOR)
FC = gfortran

#CFLAGS = $(INTL)
#FC = ifort
#CFLAGS = $(PGF9)
#FC = pgf90

all : traj2api conc2api mcip2arl con2cdf3 con2cdf4

traj2api : traj2api.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

conc2api : conc2api.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

mcip2arl : mcip2arl.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

con2cdf3 : con2cdf3.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
        rm -f *.o

con2cdf4 : con2cdf4.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
        rm -f *.o

clean:
        rm -f $(EXE)/traj2api
        rm -f $(EXE)/conc2api
        rm -f $(EXE)/mcip2arl
        rm -f $(EXE)/con2cdf3
        rm -f $(EXE)/con2cdf4

After make edition in cmaq/Makefile, I typed 'make' in cmaq directory. and there is another problem occur.
problem is like below.

Code: Select all

root@kict:/home/kict/HYSPLIT/hysplit/trunk/cmaq# make
gfortran    -o ../exec/traj2api -fconvert=big-endian -frecord-marker=4 -ffree-form -I/home/kict/WRF/Build_WRF/LIBRARIES/netcdf/include traj2api.f -L/home/kict/download/IOAPI/Linux2_x86_64gfort -lioapi -L/home/kict/WRF/Build_WRF/LIBRARIES/netcdf/lib -lnetcdff -lnetcdf -L../library -lhysplit 
traj2api.f:33: Error: Can't open included file 'PARMS3.EXT'
Makefile:50: 'traj2api' command failed for target
make: *** [traj2api] error 1
what is the problem and what should i do to get mcip2arl ?
please let me know.
I really need your help.

Fantine
Posts: 69
Joined: November 8th, 2012, 3:41 pm

Re: I need help about MCIP2ARL

Post by Fantine » February 14th, 2019, 11:13 am

This error message is about the IOAPI library. It failed because it could not find the PARMS3.EXT file in the IOAPI path you provided. Check if your IOAPI was installed properly.

jonghun33
Posts: 7
Joined: June 12th, 2017, 2:53 am
Registered HYSPLIT User: No

Re: I need help about MCIP2ARL

Post by jonghun33 » February 18th, 2019, 5:20 am

Thank you for your apply Fantime.
I re-installed ioapi and hysplit again. I am sure that ioapi is perfectly installed.
but there is no mcip2arl in exec directory.

Do i need to edit cmaq/Makefile?
and Do i need to edit compile.sh?
I edit cmaq/Makefile like previous research which i found in internet. Cmaq/Makefile code is like below.

Code: Select all

#------------------------------------------------------------------
# Master Makefile for the ../cmaq/mcip2arl directory
# Last Revised: 21 Nov 2005
#               21 Dec 2005 - put hysplit lib at end
#               09 Aug 2007 - support for gfortran
#               15 Jul 2010 - directory mod for repository
#               03 Nov 2010 - added conc2cdf (no IOAPI)
#               25 Aug 2014 - netCDF libraries previously exported
#               25 Jan 2018 - replaced conc2cdf with con2cdf3/con2cdf4
#------------------------------------------------------------------

SHELL = /bin/sh

EXE = ../exec

# IOAPI LIBRARY
API = /home/kict/ioapiversion3.1/Linux2_x86_64gfort

# exported in calling script
NETINC = /home/kict/WRF/Build_WRF/LIBRARIES/netcdf/include
NETLIB = /home/kict/WRF/Build_WRF/LIBRARIES/netcdf/lib

# library name for netCDF3=netcdf and for netCDF4=netcdff
# LINKS = -L$(NETLIB) -lnetcdf  -L../library -lhysplit
LINKS = -L$(NETLIB) -lnetcdff -lnetcdf -L../library -lhysplit

# standard compilation flags
SUN5 = -free -I$(NETINC)
AIXC = -I$(NETINC)
AIX8 = -qarch=auto -qmaxmem=8192 -I$(NETINC) -qstrict
DEC3 = -assume byterecl -I$(NETINC)
SGI5 = -bytereclen -I$(NETINC) -freeform
ABSF = -f free -I$(NETINC)
PGF9 = -Mfree -byteswapio -I$(NETINC)
INTL = -FR -assume byterecl -convert big_endian -I$(NETINC)
GF95 = -fendian=big -ffree-form -I$(NETINC)
GFOR = -fconvert=big-endian -frecord-marker=4 -ffree-form -I$(NETINC)

CFLAGS = $(GFOR)
FC = gfortran

#CFLAGS = $(INTL)
#FC = ifort
#CFLAGS = $(PGF9)
#FC = pgf90
all : traj2api conc2api mcip2arl con2cdf3 con2cdf4

traj2api : traj2api.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

conc2api : conc2api.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

mcip2arl : mcip2arl.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f -L$(API) -lioapi $(LINKS)
        rm -f *.o

con2cdf3 : con2cdf3.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
        rm -f *.o

con2cdf4 : con2cdf4.f
        $(FC) -o $(EXE)/$@ $(CFLAGS) $@.f $(LINKS)
        rm -f *.o

clean:
        rm -f $(EXE)/traj2api
        rm -f $(EXE)/conc2api
        rm -f $(EXE)/mcip2arl
        rm -f $(EXE)/con2cdf3
        rm -f $(EXE)/con2cdf4


And i also edit compile.sh like below. i insert mcip2arl 1>>{LOG} 2>>{LOG} in code.

Code: Select all

#!/bin/sh

#----------------------------------------------------------------
# Last Revised: 19 Feb 2008
#               19 Nov 2008 - version 4.9
#               04 Mar 2010 - ARL shapefile manipulation library
#               12 Mar 2010 - minor corrections
#               29 Apr 2010 - insure code unix compatible
#               18 Aug 2010 - additional directories to dos2unix
#               29 Nov 2010 - dos2unix conversion on qwikcode
#               29 Jun 2011 - see ## comments for compiler flags
#               02 Aug 2012 - added command line arguments
#               22 Jan 2013 - revised message for NetCDF compilation
#               25 Aug 2014 - export netCDF lib and include
#               23 Aug 2016 - added lbfgsb library compilation
#               25 Jan 2018 - replaced conc2cdf with con2cdf3/con2cdf4
#----------------------------------------------------------------

if [ $# -eq 0 ]; then
#  standard compilation all elements
   cmd="all"
else
#  any command line argument builds base code only
   cmd="base"
fi

DIR=`pwd`
LOG=${DIR}/compile.log

echo "Build date: `date`"                       >>${LOG}
echo "========================================" >>${LOG}

# clean-up prior to unix/linux application
# to account for repository updates without
# setting correct file or EOL properties

cd ${DIR}/guicode
   dos2unix *.tcl
cd ${DIR}/qwikcode
   dos2unix *.tcl
cd ${DIR}/html
   dos2unix *.htm
cd ${DIR}/source
   dos2unix *.f
   dos2unix *.F
   dos2unix Makefile
cd ${DIR}/cmaq
   dos2unix *.f
   dos2unix Makefile
cd ${DIR}/data2arl/arw2arl
   dos2unix *.f
   dos2unix Makefile
cd ${DIR}/testing
   dos2unix CONTROL.???
   dos2unix SETUP.???
   dos2unix *.scr
   chmod u+x *.scr
cd ${DIR}/library/hysplit
   dos2unix *.f
   dos2unix *.INC
   dos2unix Makefile
cd ${DIR}/gisprog/arlshapes
   dos2unix *.c
   dos2unix *.h
   dos2unix Makefile.in
cd ${DIR}/gisprog/arlshapes/arcview1
   dos2unix *.c
   dos2unix *.h
   dos2unix Makefile.in
cd ${DIR}/gisprog/arlshapes/arcview2
   dos2unix *.c
   dos2unix *.h
   dos2unix Makefile.in
cd ${DIR}/gisprog/dbf/source
   dos2unix *.c
   dos2unix Makefile
cd ${DIR}/examples/volcano
   dos2unix *.volcano
   dos2unix *.txt
   dos2unix *.042
   dos2unix *.scr
cd ${DIR}/examples/wildfire
   dos2unix *_wildfire
   dos2unix *.txt
   dos2unix *.bat
   dos2unix *.sh
#---------------------------------

if [ "$cmd" = "all" ]; then
cd ${DIR}/library/fcsubs
   echo "Building fcsubs library"
   echo ***${PWD}   1>>${LOG} 2>>${LOG}
   rm -f *.a
   rm -f *.o
   chmod u+x configure
## ./configure CC=ncepcc --enable-aix-64 1>>${LOG} 2>>${LOG}
   ./configure      1>>${LOG} 2>>${LOG}
   make LIBA=libfcsubs.a libdir=$DIR/library install  \
                    1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi
fi

cd ${DIR}/library/hysplit
   echo "Building hysplit source library"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   cp -p ../../source/version?.inc .
   rm -f *.o
   rm -f *.mod
   make           1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/library/lbfgsb
   echo "Building lbfgsb source library"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   rm -f *.o
   make           1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/exec
   echo "Building exec directory programs"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   make           1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

#---------------------------------

if [ "$cmd" = "all" ]; then

cd ${DIR}/gisprog/arlshapes
   echo "Building the ascii2shp converter"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   chmod u+x configure
## ./configure CC=ncepcc F77=ncepxlf 1>>${LOG} 2>>${LOG}
   ./configure    1>>${LOG} 2>>${LOG}
## make ascii2shp 1>>${LOG} 2>>${LOG}
   make           1>>${LOG} 2>>${LOG}
   mv ascii2shp ../../exec
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/gisprog/dbf/source
   echo "Building the dbf editor"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   make clean     1>>${LOG} 2>>${LOG}
   make           1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/data2arl/arw2arl
   export NETLIB=/home/kict/WRF/Build_WRF/LIBRARIES/netcdf/lib
   export NETINC=/home/kict/WRF/Build_WRF/LIBRARIES/netcdf/include
#  export NETLIB=/usr/local/netCDF4/lib
#  export NETINC=/usr/local/netCDF4/include
#  export NETLIB=/usr/local/netcdf/netcdf363/lib
#  export NETINC=/usr/local/netcdf/netcdf363/include

   echo "Building the WRF-ARW decoder (requires export NetCDF lib/include)"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   make clean     1>>${LOG} 2>>${LOG}
   make           1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/cmaq
   echo "Building the CMAQ converters (requires NetCDF & IOAPI)"
   echo ***${PWD} 1>>${LOG} 2>>${LOG}
   make clean     1>>${LOG} 2>>${LOG}
   make mcip2arl  1>>${LOG} 2>>${LOG}
   make con2cdf3  1>>${LOG} 2>>${LOG}
#   make con2cdf4  1>>${LOG} 2>>${LOG}
   if [ $? -ne 0 ];then echo "ERROR";exit;fi

cd ${DIR}/working
   ln -s ../guicode/hysplit4.tcl hysplit4.tcl
   chmod u+x hysplit4.tcl
   export GS_DEVICE=x11

fi

Please let me know what should i do to get mcip2arl.
I need your help.

Post Reply