Currently grid application developers often configure available application components into a workflow of tasks that they can submit for executing on the grid. In this paper, we present an abstract grid workflow language (AGWL) for describing grid workflow applications at a high level of abstraction. AGWL has been designed such that the user can concentrate on specifying grid applications without dealing with either the complexity of the grid or any specific implementation technology (e.g. Web service). AGWL is an XML-based language which allows a programmer to define a graph of activities that refer mostly to computational tasks. Activities are connected by control and data flow links. A rich set of constructs (compound activities) is provided to simplify the specification of grid workflow applications which includes compound activities such as if, forEach and while loops as well as advanced compound activities including parallel sections, parallel loops and collection iterators. Moreover, AGWL supports a generic high level access mechanism to data repositories. AGWL is the main interface to the ASKALON grid application development environment and has been applied to numerous real world applications. We describe a material science workflow that has been successfully ported to a grid infrastructure based on an AGWL specification. Only a dozen AGWL activities are needed to describe a workflow with several hundred activity instances.