!
! Change format of the humidity and rain rate data measured by
! Vaisalla CR800 TBL101.dat
!
program TBL101_to_txt
character(len=500)::infle,ofle
character(len=2000)::strm
character datetime*19
integer record
real ta, rh, prec_mm_tot
namelist /para/infle,ofle
read(5,nml=para)
print '(A,A)','Input: ',trim(infle)
print '(A,A)','Output: ',trim(ofle)
open(11,file=infle,action="read")
open(21,file=ofle)
write(21,'(A,A)')'# Input: ',trim(infle)
write(21,'(A)')'# datetime,record,ta,rh,prec_mm_tot'
1 read(11,'(A)',end=9)strm
if(index(strm,"TOA5")/=0)goto 1
if(index(strm,"TIMESTAMP")/=0)goto 1
if(index(strm,"RN")/=0)goto 1
if(index(strm,"Smp")/=0)goto 1
read(strm(2:20),'(a)') datetime
read(strm(23:),*) record,ta,rh,prec_mm_tot
write(21,'(a19,2x,i6.6,f7.2,1x,f7.2,f12.3)')&
datetime,record,ta,rh,prec_mm_tot
goto 1
9 continue
close(21)
close(11)
end program TBL101_to_txt
#j 参考文献
#j makefile の書き方
#j http://www.eis.osakafu-u.ac.jp/~yabu/soft/makefile.html
#j Makefile小技と新バージョンのDelFEM(FEMとUIの日記@New York)
#j http://d.hatena.ne.jp/etopirika5/20091207/1260207955
#
#-----------------------------------------
#j マクロの定義
#-----------------------------------------
#j コンパイラの指定
FC=ifort
#FC=gfortran
#FC=g77
#FC=f77
#j OBJDIR (オブジェクトファイルをおくディレクトリ)
OBJDIR=../obj
#-----------------------------------------
#j コンパイルオプション(ifort)
#-----------------------------------------
#j デバッグ用オプション(はじめて実行するときには必ずこのオプションをつけてコンパイルする)
FDFLAGS= -CB -traceback -fpe0
#j コンパイルオプション
FFLAGS=-module ${OBJDIR}
#j -module : モジュールファイル(.mod)を置く場所を指定する
#j 最適化用(他にも何種類かある. ifort -helpかマニュアルを見て調べる)
#FFLAGS = -O3 -module ${OBJDIR}
#j 倍精度
#FFLAGS = -r8 -module ${OBJDIR}
#j 入力データのバイト・スワップ(大型計算機のバイナリデータを読む時などにつかう)
#FFLAGS = #-convert big_endian -module ${OBJDIR}
#-----------------------------------------
#j リンク用のオプション
#-----------------------------------------
LDFLAGS=-module ${OBJDIR}
#j ターゲット名(最終的に作りたい実行ファイル名)
TARGET1=TBL101_to_txt
TARGET2=
TARGETS=$(TARGET1) $(TARGET2)
#j MOD (Fortran90以降のモジュールファイル)
MOD=
#j SRC7 (Fortran77のソースファイル)
SRC7=
#j SRC9 (Fortran90のソースファイル)
SRC9=TBL101_to_txt.f90
#j OBJ1 (ターゲットを作るのに必要なオブジェクトファイル名)
OBJM=$(MOD:.f90=.o)
OBJ7=$(SRC7:.f=.o)
OBJ9=$(SRC9:.f90=.o)
OBJTMP=$(OBJM) $(OBJ7) $(OBJ9)
OBJ1=$(OBJTMP:%=${OBJDIR}/%)
MOD2=
#j SRC7 (Fortran77のソースファイル)
SRC72=
#j SRC9 (Fortran90のソースファイル)
SRC92=
#j OBJ (ターゲットを作るのに必要なオブジェクトファイル名)
OBJM2=$(MOD2:.f90=.o)
OBJ72=$(SRC72:.f=.o)
OBJ92=$(SRC92:.f90=.o)
OBJTMP2=$(OBJM2) $(OBJ72) $(OBJ92)
OBJ2=$(OBJTMP2:%=${OBJDIR}/%)
OBJ=$(OBJ1) $(OBJ2)
#-----------------------------------------
#j ここからコンパイルのルールの記述
#-----------------------------------------
all: mkobjd $(TARGETS)
$(TARGET1): $(OBJ1)
$(FC) -o $@ $(OBJ1) ${LDFLAGS}
$(TARGET2): $(OBJ2)
$(FC) -o $@ $(OBJ2) ${LDFLAGS}
#j 暗黙のサフィックスルールを無効にする
.SUFFIXES:
#j サフィックスの追加
.SUFFIXES: .o .f .f90
#j f77のソースファイルのコンパイル(.f用のサフィックスルール)
${OBJDIR}/%.o : %.f
$(FC) -c ${FDFLAGS} ${FFLAGS} -c -o $@ $<
#j f90のソースファイルのコンパイル(.f90用のサフィックスルール)
${OBJDIR}/%.o : %.f90
$(FC) -c ${FDFLAGS} ${FFLAGS} -c -o $@ $<
#j オブジェクトファイルを削除
clean:
rm -rf $(OBJ) ${OBJDIR}/*.mod
#j オブジェクトファイルと実行ファイルを削除
distclean:
rm -rf $(OBJ) ${OBJDIR}/*.mod $(TARGETS) \
rm -rf ${OBJDIR}
#j オブジェクトファイルを置くディレクトリを作成
mkobjd:
if [ ! -d ${OBJDIR} ]; then \
mkdir -p ${OBJDIR} ; \
fi
#j tarファイルを作る
tar:
tar cvf $(TARGET1).tar ./*.f90 ./*.f ./*.c ./*.h ./*.txt makefile
#!/bin/sh
exe=TBL101_to_txt
namelist=namelist.${exe}
indir=/work2/kunoki/to_manda_sensei/Tools/U10.Ship/01.Raw
in=CR800Series_TBL101.dat
out=$(basename $in .dat).txt
cat <<EOF > $namelist
¶
infle="${indir}/${in}" ! input file
ofle="$out"
&end
EOF
if [ ! -f ${indir}/${in} ]; then
Error in $: No such file, ${indir}/${in}
exit 1
fi
echo Input: ${indir}/${in}
echo Output: ${out}
$exe < $namelist
exit 0
$ make
if [ ! -d ../obj ]; then \
mkdir -p ../obj ; \
fi
ifort -c -CB -traceback -fpe0 -module ../obj -c -o ../obj/TBL101_to_txt.o TBL101_to_txt.f90
ifort -o TBL101_to_txt ../obj/TBL101_to_txt.o -module ../obj
[2014年 10月 30日 木曜日 09:09:07 JST]
[~/to_manda_sensei/Tools/U10.Ship/01.Raw]
[kunoki@aofd165]
$ TBL101_to_txt.run.sh
Input: /work2/kunoki/to_manda_sensei/Tools/U10.Ship/01.Raw/CR800Series_TBL101.dat
Output: CR800Series_TBL101.txt
Input: /work2/kunoki/to_manda_sensei/Tools/U10.Ship/01.Raw/CR800Series_TBL101.dat
Output: CR800Series_TBL101.txt
"TOA5","CR800Series","CR800","13541","CR800.Std.11","CPU:Airtemp and Humidity Prec _V10.CR8","22686","TBL101"
"TIMESTAMP","RECORD","AirTemp","Humidity","Prec_mm_Tot"
"TS","RN","","",""
"","","Smp","Smp","Tot"
"2012-05-11 17:59:00",0,25.71,44.08,0.081
"2012-05-11 18:00:00",1,25.57,43.98,0
"2012-05-11 18:01:00",2,26.15,44.42,0
"2012-05-11 18:02:00",3,25.74,43.67,0
"2012-05-11 18:03:00",4,26.12,44.04,0
"2012-05-11 18:04:00",5,26.15,44.04,0
"2012-05-11 18:05:00",6,26.15,44.01,0
"2012-05-11 18:06:00",7,25.64,43.5,0
"2012-05-11 18:07:00",8,25.98,43.77,1.951
"2012-05-11 18:08:00",9,26.11,43.87,0.136
"2012-05-11 18:09:00",10,26.15,43.84,0.136
"2012-05-11 18:10:00",11,26.08,44.01,0.047
"2012-05-11 18:11:00",12,26.08,43.81,0.081
"2012-05-11 18:12:00",13,26.15,43.26,0.041
"2012-05-11 18:13:00",14,25.57,43.09,0.047
"2012-05-11 18:14:00",15,25.61,43.16,0.095
"2012-05-11 18:15:00",16,25.64,43.16,0.041
"2012-05-11 18:16:00",17,25.57,42.89,0.081
"2012-05-11 18:17:00",18,26.11,43.4,0.041
"2012-05-11 18:18:00",19,25.91,43.36,0.047
"2012-05-11 18:19:00",20,25.98,42.62,0.02
"2012-05-11 18:20:00",21,26.11,43.13,0.068
"2012-05-11 18:21:00",22,26.18,42.82,9.38
"2012-05-11 18:22:00",23,25.67,42.42,0.108
"2012-05-11 18:23:00",24,26.25,42.86,0.068
"2012-05-11 18:24:00",25,26.18,42.76,0.068
"2012-05-11 18:25:00",26,26.15,42.69,0.068
"2012-05-11 18:26:00",27,26.28,42.59,0.562
"2012-05-11 18:27:00",28,26.66,42.99,0.766
"2012-05-11 18:28:00",29,25.78,42.04,0.86
"2012-05-11 18:29:00",30,26.28,42.48,0.82
"2012-05-11 18:30:00",31,25.67,41.98,0.738
"2012-05-11 18:31:00",32,25.71,41.91,0.542
"2012-05-11 18:32:00",33,25.71,42.42,0.969