SUBROUTINE allocate_lattice_memory( this, nx, ny, nz )
IMPLICIT NONE
CLASS(id_lattice), INTENT(INOUT):: this
INTEGER, INTENT(IN):: nx, ny, nz
IF(.NOT.ALLOCATED( this% coords ))THEN
ALLOCATE( this% coords( nx, ny, nz, 3 ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array coords. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% lapse ))THEN
ALLOCATE( this% lapse( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array lapse. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% shift_x ))THEN
ALLOCATE( this% shift_x( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array shift_x. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% shift_y ))THEN
ALLOCATE( this% shift_y( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array shift_y. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% shift_z ))THEN
ALLOCATE( this% shift_z( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array shift_z. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_xx ))THEN
ALLOCATE( this% g_xx( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_xx. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_xy ))THEN
ALLOCATE( this% g_xy( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_xy. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_xz ))THEN
ALLOCATE( this% g_xz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_xz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_yy ))THEN
ALLOCATE( this% g_yy( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_yy. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_yz ))THEN
ALLOCATE( this% g_yz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_yz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% g_zz ))THEN
ALLOCATE( this% g_zz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array g_zz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_xx ))THEN
ALLOCATE( this% k_xx( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_xx. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_xy ))THEN
ALLOCATE( this% k_xy( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_xy. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_xz ))THEN
ALLOCATE( this% k_xz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_xz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_yy ))THEN
ALLOCATE( this% k_yy( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_yy. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_yz ))THEN
ALLOCATE( this% k_yz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_yz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% k_zz ))THEN
ALLOCATE( this% k_zz( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array k_zz. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% mass_density ))THEN
ALLOCATE( this% mass_density( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array mass_density. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% specific_energy ))THEN
ALLOCATE( this% specific_energy( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array specific_energy. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% pressure ))THEN
ALLOCATE( this% pressure( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array pressure. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% v_eul_x ))THEN
ALLOCATE( this% v_eul_x( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array v_eul_x. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% v_eul_y ))THEN
ALLOCATE( this% v_eul_y( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array v_eul_y. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
IF(.NOT.ALLOCATED( this% v_eul_z ))THEN
ALLOCATE( this% v_eul_z( nx, ny, nz ), STAT= ios, &
ERRMSG= err_msg )
IF( ios > 0 )THEN
PRINT *, "...allocation error for array v_eul_z. ", &
"The error message is", err_msg
STOP
ENDIF
ENDIF
END SUBROUTINE allocate_lattice_memory