;************************************************************************ PRO hyman, f, t, dt if n_params(0) eq 0 then begin print,'PRO hyman, f, t, dt' return endif ; ; Hymans 3rd order leap frog time advance ; ;************************************************************************ COMMON hymanc, fold, first ; Used by this routine itself /Bo. default,first,0. if first eq 0.0 then begin fnew = f + dt*pde(f) first=1. end else begin pdef = pde(f) fpredict=fold + 2.*dt*pdef fnew = 0.8*f + 0.2*fold + dt*(0.8*pdef + 0.4*pde(fpredict)) first=first+1. end ; fold = f f = fnew t = t + dt END