subroutine nonlin(density1,u_par1,t_par1,q_par1, > t_perp1,q_perp1,phi) implicit none include 'itg.par' include 'itg.cmn' include 'itg.mom' complex phi(lz,mz,nz) integer i c c We must calculate {a,b} for a,b=: c uv,w uv,tpar uv,v uv,T c uv,q uv,qpar uflr,w uflr,T c uflr,v uflr2,T uflr2,q c c In each case we want to pass the two variables' real and c imaginary parts to a subroutine which will return the real c and imaginary parts of {a,b} in (x,ky,kz) space. c c c Usual NL terms unless iflr=6, then do like Ron c if (iflr.ne.6) then do i=1,nspecies call nlpsc(0,phi_flr2(1,1,1,i),t_perp1(1,1,1,i), . nl_tperp3(1,1,1,i)) call nlpsc(2,phi_flr1(1,1,1,i),t_perp1(1,1,1,i), . nl_density2(1,1,1,i)) call nlpsc(1,phi_flr1(1,1,1,i),density1(1,1,1,i), . nl_tperp2(1,1,1,i)) call nlpsc(2,phi_u(1,1,1,i),density1(1,1,1,i), . nl_density1(1,1,1,i)) call nlpsc(1,phi_u(1,1,1,i),t_par1(1,1,1,i), . nl_tpar(1,1,1,i)) call nlpsc(1,phi_u(1,1,1,i),u_par1(1,1,1,i), . nl_upar1(1,1,1,i)) call nlpsc(1,phi_u(1,1,1,i),t_perp1(1,1,1,i), . nl_tperp1(1,1,1,i)) c if(nparmom.eq.4) . call nlpsc(1,phi_u(1,1,1,i),q_par1(1,1,1,i), . nl_qpar(1,1,1,i)) c if(nperpmom.eq.2) then call nlpsc(1,phi_u(1,1,1,i),q_perp1(1,1,1,i), . nl_qperp1(1,1,1,i)) call nlpsc(2,phi_flr2(1,1,1,i),q_perp1(1,1,1,i), . nl_qperp3(1,1,1,i)) call nlpsc(2,phi_flr1(1,1,1,i),q_perp1(1,1,1,i), . nl_upar2(1,1,1,i)) call nlpsc(1,phi_flr1(1,1,1,i),u_par1(1,1,1,i), . nl_qperp2(1,1,1,i)) endif enddo else c c Like Ron (3+1 assumed) c do i=1,nspecies call nlpsc(0,phi,density1(1,1,1,i),nl_density1(1,1,1,i)) call nlpsc(1,phi,u_par1(1,1,1,i),nl_upar1(1,1,1,i)) call nlpsc(1,phi,t_par1(1,1,1,i),nl_tpar(1,1,1,i)) call nlpsc(1,phi,t_perp1(1,1,1,i),nl_tperp1(1,1,1,i)) enddo endif return end