### 18.12.1. USER_PARTICLE_INFO Routine

The `USER_PARTICLE_INFO` routine enables you to access or update particle data that is not directly accessible in the user interface. For example:

- particle seed (`ISEED`) (required for anything that uses random numbers)

- particle mode (`PMODE`) (required to distinguish 'regular' particles from 'wall (film)' particles)

- breakup flag (`BREAKUP`) (indicates whether particle broke up due to external forces)

The `USER_PARTICLE_INFO` routine is called with three arguments (where all three arguments are integer values): For example `CALL USER_PARTICLE_INFO(IACTION,IWHAT,IVALUE)`.

`IACTION` can have two values, `1` or `2`.

- `1` transfers the value stored in `IVALUE` back to the particle tracker to be used there

- `2` picks up the requested data from internal tracker data structures and stores it in `IVALUE` for use in User Fortran code.

`IWHAT` can have values of `1`, `2` or `3`, and these refer to the different internal particle properties `ISEED`, `PMODE` and `BREAKUP` respectively.

The proper use of `USER_PARTICLE_INFO` is as follows (the example is for a particle seed):

    C
    C---- Pick up particle seed from tracker
    C
          IACTION = 2
          IWHAT = 1
          CALL USER_PARTICLE_INFO(IACTION,IWHAT,ISEED)

    <User code follows, that needs and updates ISEED>

    C
    C---- Store updated particle seed back to tracker
    C
          IACTION = 1
          IWHAT = 1
          CALL USER_PARTICLE_INFO(IACTION,IWHAT,ISEED)

You can retrieve or write an integer `IVALUE` to any of these data properties, which in turn will affect the internal particle calculations.

Release 18.2 - © ANSYS, Inc. All rights reserved.