! This script extracts the 1-D data from 3-D offline dynamics.
program generate1d
implicit none
INCLUDE 'netcdf.inc'
integer,parameter::jpi=499,jpj=604,jpk=46,jpt=31
integer::ncid,ncfile,tempid,saliid,windid,wateid,swrnid,turbid,icecid,dim1,dim2,dim3,dim4,it,dtemp,dsali,dwind,dicec,dswrn,dturb,dwate
real,dimension(jpi,jpj,jpk,jpt)::temp,sali
real,dimension(jpi,jpj,jpt)::wind,wate,swrn,turb,icec
integer,dimension(3)::stnx,stny,dim1d
integer,dimension(4)::dim2d
real,dimension(3,1,jpk,jpt)::temp1,sali1
real,dimension(3,1,jpt)::wind1,wate1,swrn1,turb1,icec1
! Open the data file
ncfile=nf_open('Lab_T_94_07.nc',nf_nowrite,ncid)
! Inquire the variables
ncfile=nf_inq_varid(ncid,'votemper',tempid)
ncfile=nf_inq_varid(ncid,'vosaline',saliid)
ncfile=nf_inq_varid(ncid,'sowindsp',windid)
ncfile=nf_inq_varid(ncid,'sowaflcd',wateid)
ncfile=nf_inq_varid(ncid,'soshfldo',swrnid)
ncfile=nf_inq_varid(ncid,'somixhgt',turbid)
ncfile=nf_inq_varid(ncid,'soicecov',icecid)
! Extract 3D data
ncfile=nf_get_var_real(ncid,tempid,temp)
ncfile=nf_get_var_real(ncid,saliid,sali)
ncfile=nf_get_var_real(ncid,windid,wind)
ncfile=nf_get_var_real(ncid,wateid,wate)
ncfile=nf_get_var_real(ncid,swrnid,swrn)
ncfile=nf_get_var_real(ncid,turbid,turb)
ncfile=nf_get_var_real(ncid,icecid,icec)
! Close the data file
ncfile=nf_close(ncid)
stnx=(/ 282, 301, 350 /)
stny=(/ 382, 416, 500 /)
do it=1,3
temp1(it,1,:,:)=temp(stnx(it),stny(it),:,:)
sali1(it,1,:,:)=sali(stnx(it),stny(it),:,:)
wind1(it,1,:)=wind(stnx(it),stny(it),:)
wate1(it,1,:)=wate(stnx(it),stny(it),:)
swrn1(it,1,:)=swrn(stnx(it),stny(it),:)
turb1(it,1,:)=turb(stnx(it),stny(it),:)
icec1(it,1,:)=icec(stnx(it),stny(it),:)
end do
ncfile=nf_create('Lab_T_1d_94_07.nc',nf_share,ncid)
ncfile=nf_def_dim(ncid,'nlon',3,dim1)
ncfile=nf_def_dim(ncid,'nlat',1,dim2)
ncfile=nf_def_dim(ncid,'ndepth',jpk,dim3)
ncfile=nf_def_dim(ncid,'ntime',jpt,dim4)
dim2d(1)=dim1
dim2d(2)=dim2
dim2d(3)=dim3
dim2d(4)=dim4
dim1d(1)=dim1
dim1d(2)=dim2
dim1d(3)=dim4
ncfile=nf_def_var(ncid,'nvotemper',nf_real,4,dim2d,dtemp)
ncfile=nf_def_var(ncid,'nvosaline',nf_real,4,dim2d,dsali)
ncfile=nf_def_var(ncid,'nsowindsp',nf_real,3,dim1d,dwind)
ncfile=nf_def_var(ncid,'nsoshfldo',nf_real,3,dim1d,dswrn)
ncfile=nf_def_var(ncid,'nsoicecov',nf_real,3,dim1d,dicec)
ncfile=nf_def_var(ncid,'nsowaflcd',nf_real,3,dim1d,dwate)
ncfile=nf_def_var(ncid,'nsomixhgt',nf_real,3,dim1d,dturb)
ncfile=nf_enddef(ncid)
ncfile=nf_put_var_real(ncid,dtemp,temp1)
ncfile=nf_put_var_real(ncid,dsali,sali1)
ncfile=nf_put_var_real(ncid,dwind,wind1)
ncfile=nf_put_var_real(ncid,dswrn,swrn1)
ncfile=nf_put_var_real(ncid,dicec,icec1)
ncfile=nf_put_var_real(ncid,dwate,wate1)
ncfile=nf_put_var_real(ncid,dturb,turb1)
ncfile=nf_close(ncid)
end program generate1d
subroutine handle_err(errcode)
implicit none
include 'netcdf.inc'
integer errcode
print *, 'Error: ', nf_strerror(errcode)
stop 2
end
0 件のコメント:
コメントを投稿