[MITgcm-support] periodic boundary conditions in X, walls in Y
Jane Jimeian
jane at atlantic.ocean.fsu.edu
Fri Sep 24 14:21:21 EDT 2004
i'm resending this message because the first message didn't get posted.
i've combined the two:
i'm trying to set up a channel where there are perodic boundary conditions
in X and walls in Y. i doesn't seem to work. i try running the model without
the using bathyFile='topog.channel' and the results look ok. when
i uses topog.channel then T starts to dissipate. any suggestions would be
helpful.
---------------------------------------------------------------------------
data.pkg
---------------------------------------------------------------------------
# Packages
&PACKAGES
useOBCS=.FALSE.,
&
---------------------------------------------------------------------------
data
---------------------------------------------------------------------------
# ====================
# | Model parameters |
# ====================
#
# Continuous equation parameters
&PARM01
tRef= 50*0,
sRef= 50*35.,
viscAz=1.E-4,
viscAh=2.E1,
no_slip_sides=.FALSE.,
no_slip_bottom=.FALSE.,
viscA4=0.E12,
diffKhT=2.E1,
diffKzT=1.E-5,
diffKhS=2.E1,
diffKzS=1.E-5,
f0=1.e-4,
beta=0.E-11,
tAlpha=2.E-4,
sBeta =0.E-4,
gravity=9.81,
gBaro=9.81,
rigidLid=.FALSE.,
implicitFreeSurface=.TRUE.,
eosType='LINEAR',
hFacMin=0.2,
nonHydrostatic=.FALSE.,
readBinaryPrec=64,
globalFiles=.TRUE.,
&
# Elliptic solver parameters
&PARM02
cg2dMaxIters=1000,
cg2dTargetResidual=1.E-13,
cg3dMaxIters=400,
cg3dTargetResidual=1.E-13,
&
# Time stepping parameters
&PARM03
niter0=0,
nTimeSteps=6048,
deltaT=200.0,
abEps=0.1,
pChkptFreq=604800.0,
chkptFreq=0.0,
dumpFreq=86400.,
monitorFreq=86400.,
&
# Gridding parameters
&PARM04
usingCartesianGrid=.TRUE.,
usingSphericalPolarGrid=.FALSE.,
delX=200*5.e3,
delY=50*5.e3,
delZ=50*30,
&
# Input datasets
&PARM05
bathyFile='topog.channel',
hydrogThetaFile='theta.bin',
&
---------------------------------------------------------------------------
gendata.m
---------------------------------------------------------------------------
% This is a matlab script that generates the input data
% Dimensions of grid
nx=200;
ny=50;
nz=50;
% Nominal depth of model (meters)
H=1500;
% Scale of bump (m)
L=25e3;
% Height of bump (m)
%dh=0.90*H;
% Horizontal resolution (m)
dx=5e3;
% Rotation
f=1e-4;
% Stratification
N=1.5 * f*L/H;
% Gravity
g=9.81;
% E.O.S.
alpha=2.e-4;
z=[15:30:1500];
dz=30;
% dz=H/nz;
sprintf('delZ = %d * %7.6g',nz,dz)
x=(1:nx)*dx;x=x-mean(x);x=x+nx/3*dx;
y=(1:ny)*dx;y=y-mean(y);
[Y,X]=meshgrid(y,x);
% z=-dz/2:-dz:-H;
%z=-(cumsum(dz)-dz/2);
% Temperature profile
%Tz=N^2/(g*alpha)
%phi=sprintf(' %8.6g',Tz*z+sum(Tz*dz)/2);
%Tref=str2num(phi);
%[sprintf('Tref =') sprintf(' %8.6g,',Tz*z+sum(Tz*dz)/2)]
ieee='b';
accuracy='real*8';
% Create three dimensional temperature profile
t3d=zeros(nx,ny,nz);
r0=20e3;
r2=X.^2 + Y.^2;
z0=300;
for k=1:nz
t3d(:,:,k)=10-10*z(k)/H;
for i=1:nx
for j=1:ny
if Y(i,j) >= 0
if z(k) >=240
zp=z(k)-240;
fz=(abs(zp)*exp(-abs(zp)/z0))/z0;
else
fz=0;
end
else
if z(k) < 1260
zp=z(k)-1260;
fz=(abs(zp)*exp(-abs(zp)/z0))/z0;
else
fz=0;
end
end
% Tp=fz.*(r0.*Y(i,j)./r0^2).*exp(-r2(i,j)./r0^2).*4.*2.7*2.7;
zp=z(k)-750;
Tp=3.*exp(-zp*zp/300^2);
if r2(i,j) > 2*r0^2
rp=r2(i,j)-2*r0^2;
Tp=Tp*exp(-rp^2/r0^2);
end
t3d(i,j,k)=t3d(i,j,k)+Tp;
% t3d(i,j,k)=Tp;
end
end
end
fid=fopen('theta.bin','w',ieee); fwrite(fid,t3d,accuracy); fclose(fid);
% Simple channel
h=zeros(nx,ny);
%h(:,1)=0;
h(:,2:ny-1)=-H;
%h(:,ny)=0;
fid=fopen('topog.channel','w',ieee); fwrite(fid,h,accuracy); fclose(fid);
--
More information about the MITgcm-support
mailing list