Release communicators for 3D layers for C-reduction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | optional | :: | release_buffers |
SUBROUTINE release_layers_3D_C_reduction(release_buffers) !! Release communicators for 3D layers for C-reduction LOGICAL, OPTIONAL :: release_buffers INTEGER :: ibuff layers_3D_C_reduction%grp = mp_comm_null IF (layers_3D_C_reduction%rowgrp3D .NE. mp_comm_null) CALL mp_comm_free(layers_3D_C_reduction%rowgrp3D) IF (layers_3D_C_reduction%grp3D .NE. mp_comm_null) CALL mp_comm_free(layers_3D_C_reduction%grp3D) layers_3D_C_reduction%rowgrp3D = mp_comm_null layers_3D_C_reduction%grp3D = mp_comm_null layers_3D_C_reduction%num_layers_3D = 1 layers_3D_C_reduction%side3D = HUGE(1) IF (PRESENT(release_buffers)) THEN IF (release_buffers .AND. ALLOCATED(layers_3D_C_reduction%data_red3D)) THEN DO ibuff = 1, SIZE(layers_3D_C_reduction%data_red3D) CALL dbcsr_data_release(layers_3D_C_reduction%data_red3D(ibuff)) END DO DEALLOCATE (layers_3D_C_reduction%data_red3D) END IF END IF END SUBROUTINE release_layers_3D_C_reduction