# AOCreate
Creates an application ordering. That is an object that maps from an application ordering to a PETSc ordering and vice versa 
## Synopsis
```
#include "petscao.h" 
PetscErrorCode AOCreate(MPI_Comm comm, AO *ao)
```
Collective


## Input Parameters

- ***comm -*** MPI communicator that is to share the `AO`



## Output Parameter

- ***ao -*** the new application ordering



## Options Database Key

- ***-ao_type <aotype> -*** create ao with particular format
- ***-ao_view -*** call AOView() at the conclusion of AOCreate()





## See Also
 [](sec_ao), `AO`, `AOSetIS()`, `AODestroy()`, `AOPetscToApplication()`, `AOApplicationToPetsc()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/ao/interface/ao.c.html#AOCreate">src/vec/is/ao/interface/ao.c</A>

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/ao/impls/basic/aobasic.c.html#AOCreate_Basic">AOCreate_Basic in src/vec/is/ao/impls/basic/aobasic.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/is/ao/impls/memscalable/aomemscalable.c.html#AOCreate_MemoryScalable">AOCreate_MemoryScalable in src/vec/is/ao/impls/memscalable/aomemscalable.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/is/ao/interface/ao.c)


[Index of all AO routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
