$ time pl.monthly.mean.tendency.run.sh > log.txt 2>&1
......
......
Done pl.monthly.mean.tendency.run.sh.
Started at 2015年 8月 27日 木曜日 10:56:44 JST
Finished at 2015年 8月 27日 木曜日 10:58:16 JST
::::::::::::::
pl.monthly.mean.tendency.run.sh
::::::::::::::
#!/bin/sh
export LANC=C
stime=$(date)
exe=./runncl.sh
ncl=pl.monthly.mean.tendency.ncl
if [ ! -f $ncl ]; then
echo
echo Error in $0 : No such file, $ncl
echo
exit 1
fi
yyyys=1993
yyyye=2014
indir=/work4/data/ECCO.dr080g
outdir=/work4/data/ECCO.dr080g
figdir=${HOME}/2015.Ibnu.Indian.Ocean/Fig/$(basename $(pwd))/\
$(basename $0 .sh)
if [ ! -d $indir ]; then
echo
echo Error in $0 : No such directory, $indir
echo
exit 1
fi
if [ ! -d $outdir ]; then
mkdir -vp $outdir
fi
if [ ! -d $figdir ]; then
mkdir -vp $outdir
fi
mmm_list="JFM AMJ JAS OND"
vlev=1
yyyy=$yyyys
while [ $yyyy -le $yyyye ]; do
for mmm in $mmm_list; do
$exe $ncl $yyyy $mmm $vlev $indir $outdir $figdir
done #mmm
yyyy=$(expr $yyyy + 1)
done #yyyy
etime=$(date)
echo
echo Done $(basename $0).
echo
echo
echo Started at $stime
echo Finished at $etime
echo
::::::::::::::
pl.monthly.mean.tendency.ncl
::::::::::::::
;
; Plot tendency term in heat budget equation
;
; Refer to http://dx.doi.org/10.1002/2014JC010336 for details on dr080
;
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
begin
;
; Default value
;
dataset="dr080g"
yyyys=1993
yyyye=2014
dtavesec_inv=1.0/(60.0*86400.0)
varname="gtTndave"
;
; Read command line arguments
;
scname = getenv("NCL_ARG_1")
yyyy1 = stringtointeger(getenv("NCL_ARG_2"))
mmm = getenv("NCL_ARG_3")
klev = stringtointeger(getenv("NCL_ARG_4")) - 1
indir = getenv("NCL_ARG_5")
outdir = getenv("NCL_ARG_6")
figdir = getenv("NCL_ARG_7")
yearday_JFM="n10day_01_09"
yearday_AMJ="n10day_10_18"
yearday_JAS="n10day_19_27"
yearday_OND="n10day_28_37"
datainfo_JFM="_08_08.00001_02160_720"
datainfo_AMJ="_08_08.02160_04320_720"
datainfo_JAS="_08_08.04320_06480_720"
datainfo_OND="_08_08.06480_08880_720"
if (mmm .eq. "JFM") then
yearday1=yearday_JFM
datainfo1=datainfo_JFM
end if
if (mmm .eq. "AMJ") then
yearday1=yearday_AMJ
datainfo1=datainfo_AMJ
end if
if (mmm .eq. "JAS") then
yearday1=yearday_JAS
datainfo1=datainfo_JAS
end if
if (mmm .eq. "OND") then
yearday1=yearday_OND
datainfo1=datainfo_OND
end if
indir1=indir + "/" + dataset + "_" + yyyy1 + "/" + yearday1
infle1=indir1 + "/" + "Tmon" + datainfo1 + ".cdf"
f1=addfile(infle1, "r")
T1=f1->varm(0,:,:,:)
lat =f1->lat
lat_v=f1->lat_v
lon =f1->lon
lon_u=f1->lon_u
depth=f1->depth
time=f1->timem
dim=dimsizes(T1)
gtTndave=new( (/3,dim(0),dim(1),dim(2)/), typeof(T1))
gtTndave!0="time"
gtTndave!1="depth"
gtTndave!2="lat"
gtTndave!3="lon"
gtTndave@_FillValue=-1.e+10
do m1=0,2
flag_fillvalue=False
if (yyyy1 .eq. yyyys .and. mmm .eq. "JFM" .and. m1 .eq. 0)then
print("")
print(yyyy1 + " " + mmm + " " + m1 + ": " + "Tnd = _Fillvalue")
print("")
flag_fillvalue=True
end if
if (yyyy1 .eq. yyyye .and. mmm .eq. "OND" .and. m1 .eq. 2)then
print("")
print(yyyy1 + " " + mmm + " " + m1 + ": " + "Tnd = _Fillvalue")
print("")
flag_fillvalue=True
end if
if (m1 .eq. 0 .and. flag_fillvalue .eq. False)then
m0=2
m2=1
yyyy0=yyyy1
if (mmm .eq. "JFM") then
yyyy0=yyyy1-1
yearday0=yearday_OND
datainfo0=datainfo_OND
end if
if (mmm .eq. "AMJ") then
yearday0=yearday_JFM
datainfo0=datainfo_JFM
end if
if (mmm .eq. "JAS") then
yearday0=yearday_AMJ
datainfo0=datainfo_AMJ
end if
if (mmm .eq. "OND") then
yearday0=yearday_JAS
datainfo0=datainfo_JAS
end if
indir0=indir + "/" + dataset + "_" + yyyy0 + "/" + yearday0
infle0=indir0 + "/" + "Tmon" + datainfo0 + ".cdf"
yyyy2=yyyy1
yearday2=yearday1
datainfo2=datainfo1
indir2=indir + "/" + dataset + "_" + yyyy2 + "/" + yearday2
infle2=indir2 + "/" + "Tmon" + datainfo2 + ".cdf"
print(yyyy1 + " " + mmm + " " + m1)
print (yyyy0 + "/" + yearday0 + "/" + "Tmon" + datainfo0 + ".cdf" + " " + m0)
print (yyyy1 + "/" + yearday1 + "/" + "Tmon" + datainfo1 + ".cdf" + " " + m1)
print (yyyy2 + "/" + yearday2 + "/" + "Tmon" + datainfo2 + ".cdf" + " " + m2)
print("")
f0=addfile(infle0, "r")
f2=addfile(infle2, "r")
T0=f0->varm(m0,:,:,:)
T2=f2->varm(m2,:,:,:)
end if ; m1=0
if (m1 .eq. 1)then
m0=0
m2=2
yyyy0=yyyy1
yearday0=yearday1
datainfo0=datainfo1
indir0=indir + "/" + dataset + "_" + yyyy0 + "/" + yearday0
infle0=indir0 + "/" + "Tmon" + datainfo0 + ".cdf"
print(yyyy1 + " " + mmm + " " + m1)
print (yyyy0 + "/" + yearday0 + "/" + "Tmon" + datainfo0 + ".cdf" + " " + m0 + " " + m2)
print("")
f0=addfile(infle0, "r")
T0=f0->varm(m0,:,:,:)
T2=f0->varm(m2,:,:,:)
end if ; m1=1
if (m1 .eq. 2 .and. flag_fillvalue .eq. False)then
m0=1
m2=0
yyyy2=yyyy1
if (mmm .eq. "JFM") then
yearday2=yearday_AMJ
datainfo2=datainfo_AMJ
end if
if (mmm .eq. "AMJ") then
yearday2=yearday_JAS
datainfo2=datainfo_JAS
end if
if (mmm .eq. "JAS") then
yearday2=yearday_OND
datainfo2=datainfo_OND
end if
if (mmm .eq. "OND") then
yyyy2=yyyy1+1
yearday2=yearday_JFM
datainfo2=datainfo_JFM
end if
yyyy0=yyyy1
yearday0=yearday1
datainfo0=datainfo1
indir0=indir + "/" + dataset + "_" + yyyy0 + "/" + yearday0
infle0=indir0 + "/" + "Tmon" + datainfo0 + ".cdf"
indir2=indir + "/" + dataset + "_" + yyyy2 + "/" + yearday2
infle2=indir2 + "/" + "Tmon" + datainfo2 + ".cdf"
print(yyyy1 + " " + mmm + " " + m1)
print (yyyy0 + "/" + yearday0 + "/" + "Tmon" + datainfo0 + ".cdf" + " " + m0)
print (yyyy1 + "/" + yearday1 + "/" + "Tmon" + datainfo1 + ".cdf" + " " + m1)
print (yyyy2 + "/" + yearday2 + "/" + "Tmon" + datainfo2 + ".cdf" + " " + m2)
print("")
f0=addfile(infle0, "r")
f2=addfile(infle2, "r")
T0=f0->varm(m0,:,:,:)
T2=f2->varm(m2,:,:,:)
end if ; m1=2
if(flag_fillvalue .eq. False)then
gtTndave(m1,:,:,:)=(T2(:,:,:)-T0(:,:,:))*dtavesec_inv
else
gtTndave(m1,:,:,:)=gtTndave@_FillValue
end if
end do ;m1
ofle=outdir + "/" + dataset + "_" + yyyy1 + "/" + yearday1 + "/" \
+ varname + datainfo1 + ".cdf"
system("/bin/rm -f " + ofle)
fout =addfile (ofle, "c")
setfileoption(fout,"DefineMode",True)
setfileoption(fout,"MissingToFillValue",True)
fAtt = True ; assign file attributes
fAtt@title = dataset
fAtt@source_file = infle0 + " " + infle2
fAtt@Conventions = "None"
fAtt@history= "Converted from MITGCM output on 07/24/2015\n"
fAtt@creation_date = systemfunc ("export LANG=C; date")
fileattdef( fout, fAtt ) ; copy file attributes
ntim = dimsizes(time) ; get dimension sizes
klev = dimsizes(depth)
nlat = dimsizes(lat)
nlat_v= dimsizes(lat_v)
nlon = dimsizes(lon)
nlon_u= dimsizes(lon_u)
nvar = dimsizes(gtTndave)
dimNames = (/"time", "lat", "lat_v", "lon", "lon_u", "depth"/)
dimSizes = (/ -1 , nlat, nlat_v, nlon, nlon_u, klev /)
dimUnlim = (/ True , False, False, False, False, False /)
filedimdef(fout,dimNames,dimSizes,dimUnlim)
filevardef(fout, "lat" ,typeof(lat), getvardims(lat))
filevardef(fout, "lat_v" ,typeof(lat_v),getvardims(lat_v))
filevardef(fout, "lon" ,typeof(lon), getvardims(lon))
filevardef(fout, "lon_u" ,typeof(lon_u),getvardims(lon_u))
filevardef(fout, "depth" ,typeof(depth),getvardims(depth) )
filevardef(fout, "time" ,typeof(time), "time")
filevardef(fout, "gtTndave" ,typeof(gtTndave),getvardims(gtTndave))
filevarattdef(fout,"lat" ,lat)
filevarattdef(fout,"lat_v" ,lat_v)
filevarattdef(fout,"lon" ,lon)
filevarattdef(fout,"lon_u" ,lon_u)
filevarattdef(fout,"depth" ,depth)
filevarattdef(fout,"time" ,time)
filevarattdef(fout,"gtTndave" ,gtTndave)
fout->lat =(/lat/)
fout->lat_v=(/lat_v/)
fout->lon = (/lon/)
fout->lon_u= (/lon_u/)
fout->depth=(/depth/)
fout->time =(/time/)
fout->gtTndave = (/gtTndave/)
print("Output: "+ ofle)
print("")
end
$ ncdump -h /work4/data/ECCO.dr080g/dr080g_1993/n10day_01_09/Tmon_08_08.00001_02160_720.cdf
netcdf Tmon_08_08.00001_02160_720 {
dimensions:
timem = UNLIMITED ; // (3 currently)
lat = 224 ;
lat_v = 224 ;
lon = 360 ;
lon_u = 360 ;
depth = 46 ;
variables:
float lat(lat) ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:actual_range = -90.f, 90.f ;
float lat_v(lat_v) ;
lat_v:long_name = "Latitude_v" ;
lat_v:units = "degrees_north" ;
lat_v:actual_range = -90.f, 90.f ;
float lon(lon) ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:actual_range = 0.f, 360.f ;
float lon_u(lon_u) ;
lon_u:long_name = "Longitude_u" ;
lon_u:units = "degrees_east" ;
lon_u:actual_range = 0.f, 360.f ;
float depth(depth) ;
depth:long_name = "depth" ;
depth:units = "meters" ;
depth:positive = "down" ;
depth:actual_range = 0.f, 6000.f ;
float timem(timem) ;
timem:units = "hours since 1970-01-01 00:00:0.0" ;
timem:long_name = "Time in hours" ;
timem:delta_t = "0000-00-00 01:00:00" ;
timem:_FillValue = 9.96921e+36f ;
float varm(timem, depth, lat, lon) ;
varm:units = "Deg C" ;
varm:long_name = "Temperature" ;
varm:missing_value = -1.e+10f ;
varm:add_offset = 0.f ;
varm:scale_factor = 1.f ;
varm:_FillValue = -1.e+10f ;
// global attributes:
:creation_date = "Fri Aug 21 11:03:46 JST 2015" ;
:history = "Converted from MITGCM output on 07/24/2015\\n" ;
:Conventions = "None" ;
:source_file = "/work4/data/ECCO.dr080g/dr080g_1993/n10day_01_09/Tave_08_08.00001_02160_240.cdf" ;
:title = "dr080g" ;
}
$ ncdump -h /work4/data/ECCO.dr080g/dr080g_1993/n10day_01_09/gtUave_08_08.00001_02160_720.cdf
netcdf gtUave_08_08.00001_02160_720 {
dimensions:
time = UNLIMITED ; // (3 currently)
depth = 46 ;
lat = 224 ;
lat_v = 224 ;
lon = 360 ;
lon_u = 360 ;
variables:
float lat(lat) ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:actual_range = -90.f, 90.f ;
float lat_v(lat_v) ;
lat_v:long_name = "Latitude_v" ;
lat_v:units = "degrees_north" ;
lat_v:actual_range = -90.f, 90.f ;
float lon(lon) ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:actual_range = 0.f, 360.f ;
float lon_u(lon_u) ;
lon_u:long_name = "Longitude_u" ;
lon_u:units = "degrees_east" ;
lon_u:actual_range = 0.f, 360.f ;
float depth(depth) ;
depth:long_name = "depth" ;
depth:units = "meters" ;
depth:positive = "down" ;
depth:actual_range = 0.f, 6000.f ;
float time(time) ;
time:units = "hours since 1970-01-01 00:00:0.0" ;
time:long_name = "Time in hours" ;
time:delta_t = "0000-00-00 01:00:00" ;
float gtUave(time, depth, lat, lon) ;
gtUave:units = "DEGREES/S" ;
gtUave:long_name = "Temperature tendency due to U advection (30d)" ;
gtUave:missing_value = -1.e+10f ;
gtUave:add_offset = 0.f ;
gtUave:scale_factor = 1.f ;
// global attributes:
:title = "dr080g" ;
:history = "Converted from MITGCM output on 07/24/2015\n",
"" ;
}
$ ncdump /work4/data/ECCO.dr080g/dr080g_1993/n10day_01_09/Tmon_08_08.00001_02160_720.cdf |grep "timem = "
timem = UNLIMITED ; // (3 currently)
timem = 202344, 203064, 203784 ;
$ ncdump /work4/data/ECCO.dr080g/dr080g_1993/n10day_01_09/gtUave_08_08.00001_02160_720.cdf|grep "time = "
time = UNLIMITED ; // (3 currently)
time = 202344, 203064, 203784 ;
$ cd /work1/am/2015.Ibnu.Indian.Ocean/ECCO.dr080g
$ mkdir Monthly.mean.heatbudget