Details
Hi Tony,
I've been looking at the Lare3d code structure to implement a time dependent
driving of say Alfven wave components vy(:,:,nz/2) and by(:,:,nz/2) (with B0
along z-axis) in the mid-z plane. Could you please provide some advice what
would be the best way of doing this? (I trust initial_conditions routine is
read only once at t=0).
would it then be OK to add some lines in the following main loop in
src/core/lare3d.f90
DO
IF ((i >= nsteps .AND. nsteps >= 0) .OR. (time >= t_end)) EXIT
i = i + 1
CALL eta_calc ! lagran.f90
CALL set_dt ! diagnostics.f90
vy(1:nx,1:ny,nz/2)= some_function(time)
by(1:nx,1:ny,nz/2)= some_function(time)
CALL lagrangian_step ! lagran.f90
CALL eulerian_remap(i) ! remap.f90
IF (rke) CALL energy_correction ! diagnostics.f90
IF (any_open) THEN
CALL open_bcs ! openboundary.f90
END IF
CALL output_routines(i) ! diagnostics.f90
END DO
Many thanks in advance.
David
|
Details
Hi Tony,
I've been looking at the Lare3d code structure to implement a time dependent
driving of say Alfven wave components vy(:,:,nz/2) and by(:,:,nz/2) (with B0
along z-axis) in the mid-z plane. Could you please provide some advice what
would be the best way of doing this? (I trust initial_conditions routine is
read only once at t=0).
would it then be OK to add some lines in the following main loop in
src/core/lare3d.f90
DO
IF ((i >= nsteps .AND. nsteps >= 0) .OR. (time >= t_end)) EXIT
i = i + 1
CALL eta_calc ! lagran.f90
CALL set_dt ! diagnostics.f90
vy(1:nx,1:ny,nz/2)= some_function(time)
by(1:nx,1:ny,nz/2)= some_function(time)
CALL lagrangian_step ! lagran.f90
CALL eulerian_remap(i) ! remap.f90
IF (rke) CALL energy_correction ! diagnostics.f90
IF (any_open) THEN
CALL open_bcs ! openboundary.f90
END IF
CALL output_routines(i) ! diagnostics.f90
END DO
Many thanks in advance.
David
|