Since there is a parameter (It is not very clear what this parameter is but, I presume, like David, it is the initial condition y[x,0] (let it be alpha):
In this case, ParametricNDSolve is a good choice
In[236]:= Clear[\[Alpha], sol, y]
a = 100; T = 60000; L = \[Pi];
sol = ParametricNDSolve[{I \!\(
\*SubscriptBox[\(\[PartialD]\), \(t\)]\(y[x, t]\)\) + .0004 \!\(
\*SubscriptBox[\(\[PartialD]\), \(x, x\)]\(y[x, t]\)\) == 0,
y[-a, t] == y[a, t],
y[x, 0] ==
Piecewise[{{0, x < -(L/2)}, {0,
x > L/2}, {Sqrt[2/L] \[Alpha] Cos[x], -(L/2) <= x <= L/2}}]},
y, {x, -a, a}, {t, 0, T}, {\[Alpha]}];
y /. sol
y[.1] /. sol
%[0., 0.5]
Out[239]= ParametricFunction[ <> ]
Out[240]= InterpolatingFunction[{{\[Ellipsis], -100.,
100., \[Ellipsis]}, {0., 60000.}}, <>]
Out[241]= 0.0797883 - 5.73532*10^-7 I
and the Plot3D is really affected by the value of alpha as can be seen with a Manipulate:
Manipulate[
Quiet@Plot3D[
Evaluate[Abs[y[\[Alpha]][x, t]] /. sol], {x, -100, 100}, {t, -3.5,
3.5},
PlotRange -> All, PlotPoints -> 50], {{\[Alpha], 1.57}, -5,
10, .01, Appearance -> "Labeled"}, SynchronousUpdating -> False]
![][1]
The effect of alpha can also be seen from the following plot:
Plot[Evaluate[
Table[Abs[y[\[Alpha]][x, .95] /. sol], {\[Alpha], -10,
10}]], {x, -1, 1}]