SUBROUTINE get_kinetic (n, toe, kinetic, xvals, kmax, kase, dafx, nd_daf, ndaf) USE Numeric_Kinds_Module USE FileUnits_Module IMPLICIT NONE !============================================================================== LOGICAL, PARAMETER :: debug=.false. INTEGER :: i, j, n, kmax INTEGER :: nd_daf, ndaf CHARACTER (len=8) :: kase REAL (dp) :: toe (0:nd_daf), kinetic (n, n), xvals (n), dafx (0:nd_daf, 0:ndaf) !============================================================================== DO i = 1, n DO j = 1, n kinetic (i, j) = 0.d0 ENDDO ENDDO IF (n.gt.1) THEN IF (kase.eq.'rho ') THEN CALL kin_rho (n, toe, kinetic, nd_daf, kmax) ELSEIF (kase.eq.'theta ') THEN PRINT*,'ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!' ! CALL kin_theta (n, kinetic, xvals, kmax, usys2, dafx, nd_daf, ndaf) ELSEIF (kase.eq.'chi ') THEN CALL kin_chi (n, toe, kinetic, xvals, nd_daf, kmax) ELSEIF (kase.eq.'coriolis') THEN WRITE(Output_Unit, * ) 'coriolis' CALL kin_chi (n, toe, kinetic, xvals, nd_daf, kmax) ELSE WRITE(Output_Unit, * ) 'Incorrect kase=', kase STOP 'get_kinetic' ENDIF ELSE kinetic(1,1)=1.d0 ENDIF IF (debug) THEN WRITE(Output_Unit, * ) 'Kinetic Energy Matrix, kase=', kase CALL mxout (kinetic, n, n) ENDIF RETURN END SUBROUTINE get_kinetic