1*********************************************************************** 2* FORWARD LEGENDRE TRANSFORMATION (MIDDLE LEVEL) 3*********************************************************************** 4* Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved. 5*----------------------------------------------------------------------- 6 SUBROUTINE SHLFWM(MM,JM,M,ISW,WM,SM,SD,XC,PM,WY,WX,R,Z) 7 8 REAL SM(M:MM),WM(-JM:JM) 9 REAL SD(0:MM+1) 10 REAL XC(0:JM) 11 REAL PM(0:MM+1,0:JM) 12 REAL WY(0:JM,2),WX(0:JM,2) 13 REAL R((MM+1)*(MM+1)),Z(JM,0:JM,4) 14 15 IF((ISW.EQ.-1).AND.(M.EQ.0)) THEN 16 DO 10 N=M,MM 17 SM(N)=0 18 10 CONTINUE 19 ELSE 20 CALL SHLY2X(JM,M,ISW,WM,WX,WY,Z) 21 IF((ISW.EQ.0).AND.(M.NE.0)) THEN 22 DO 20 J=0,JM 23 WX(J,1)=WX(J,1)*XC(J) 24 WX(J,2)=WX(J,2)*XC(J) 25 20 CONTINUE 26 ELSE IF((ISW.EQ.1).AND.(M.EQ.0)) THEN 27 DO 30 J=0,JM 28 WX(J,1)=WX(J,1)/XC(J) 29 WX(J,2)=WX(J,2)/XC(J) 30 30 CONTINUE 31 END IF 32 DO 40 N=M,MM+1 33 CALL SHLFWL(MM,JM,N,M,WX,SD(N),PM) 34 40 CONTINUE 35 CALL SHLSDS(MM,M,ISW,SD,SM,R) 36 END IF 37 38 END 39