Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
! *****************
SUBROUTINE ALLBLO
! *****************
!
&( BLO , NOM )
!
!***********************************************************************
! BIEF V7P3
!***********************************************************************
!
! Augmentation locale de la mémoire
!
!***********************************************************************
!
!brief ALLOCATES MEMORY FOR A BLOCK STRUCTURE.
!
!history J-M HERVOUET (LNH)
!+ 10/01/95
!+ V5P5
!+
!
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
!+ 13/07/2010
!+ V6P0
!+ Translation of French comments within the FORTRAN sources into
!+ English comments
!
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
!+ 21/08/2010
!+ V6P0
!+ Creation of DOXYGEN tags for automated documentation and
!+ cross-referencing of the FORTRAN sources
!
!history J-M HERVOUET (LNHE)
!+ 09/08/2011
!+ V6P25
!+ Maximum size BLO%MAXBLOCK increased from 128 to 256
!+
!history J-M HERVOUET (jubilado)
!+ 04/11/2016
!+ V7P3
!+ Allowing several successive allocations of the same BIEF_OBJ.
!
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!| BLO |-->| THE BLOCK TO BE ALLOCATED
!| NOM |-->| FORTRAN NAME OF THIS BLOCK
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
USE BIEF, EX_ALLBLO => ALLBLO
!
USE DECLARATIONS_SPECIAL
IMPLICIT NONE
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
TYPE(BIEF_OBJ) , INTENT(INOUT) :: BLO
CHARACTER(LEN=6), INTENT(IN) :: NOM
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
INTEGER I,ERR
!
!-----------------------------------------------------------------------
! COMMON PART FOR ALL OBJECTS
!-----------------------------------------------------------------------
!
! KEY OF THE OBJECT
!
BLO%KEY = 123456
!
! TYPE OF THE OBJECT
!
BLO%TYPE = 4
!
! Defines how the object was created
!
BLO%FATHER = 'XXXXXX'
!
! NAME OF THE OBJECT
!
BLO%NAME = NOM
!
!-----------------------------------------------------------------------
! PART SPECIFIC TO BLOCKS
!-----------------------------------------------------------------------
!
! NUMBER OF OBJECTS IN THE BLOCK
!
BLO%N = 0
!
! ALLOCATES THE POINTERS ARRAY ADR
!
! BLO%MAXBLOCK = 256
BLO%MAXBLOCK = 512
!
ERR=0
IF(.NOT.ASSOCIATED(BLO%ADR)) THEN
ALLOCATE(BLO%ADR(BLO%MAXBLOCK),STAT=ERR)
DO I=1,BLO%MAXBLOCK
NULLIFY(BLO%ADR(I)%P)
ENDDO
ENDIF
!
!-----------------------------------------------------------------------
!
IF(ERR.NE.0) THEN
WRITE(LU,20) NOM,ERR
20 FORMAT(1X,'ERROR DURING ALLOCATION OF BLOCK: ',A6,/,1X,
& 'ERROR CODE: ',1I6)
CALL PLANTE(1)
STOP
ENDIF
!
!-----------------------------------------------------------------------
!
RETURN
END