New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
pack_f.f90 in vendors/XMLIO_SERVER/current/src/IOSERVER – NEMO

source: vendors/XMLIO_SERVER/current/src/IOSERVER/pack_f.f90 @ 1897

Last change on this file since 1897 was 1897, checked in by flavoni, 14 years ago

importing XMLIO_SERVER vendor

File size: 5.0 KB
Line 
1SUBROUTINE packf_r(buffer,position,var,var_size)
2  USE mod_prec
3  IMPLICIT NONE
4    INTEGER           :: var_size
5    REAL,DIMENSION(var_size) :: buffer
6    INTEGER           :: position
7    REAL,DIMENSION(var_size) :: var
8   
9    INTEGER :: i
10    INTEGER :: tot_size
11
12    tot_size=var_size*REAL_SIZE
13
14    DO i=1,var_size
15      buffer(i)=var(i)
16    ENDDO
17
18    position=position+tot_size/BLOCK_SIZE
19    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
20
21END SUBROUTINE packf_r
22
23
24SUBROUTINE packf_field(buffer,position,var,var_size)
25  USE mod_prec
26  IMPLICIT NONE
27    INTEGER           :: var_size
28    REAL,DIMENSION(var_size) :: buffer
29    INTEGER           :: position
30    REAL,DIMENSION(var_size) :: var
31   
32    INTEGER :: i
33    INTEGER :: tot_size
34   
35    tot_size=var_size*REAL_SIZE
36       
37    DO i=1,var_size
38      buffer(i)=var(i)
39    ENDDO
40         
41    position=position+tot_size/BLOCK_SIZE
42    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
43   
44END SUBROUTINE packf_field
45
46SUBROUTINE packf_i(buffer,position,var,var_size)
47  USE mod_prec
48  IMPLICIT NONE
49    INTEGER           :: var_size
50    INTEGER,DIMENSION(var_size) :: buffer
51    INTEGER           :: position
52    INTEGER,DIMENSION(var_size) :: var
53   
54    INTEGER :: i
55    INTEGER :: tot_size
56   
57    tot_size=var_size*INTEGER_SIZE
58       
59    DO i=1,var_size
60      buffer(i)=var(i)
61    ENDDO
62         
63    position=position+tot_size/BLOCK_SIZE
64    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
65   
66END SUBROUTINE packf_i
67
68SUBROUTINE packf_l(buffer,position,var,var_size)
69  USE mod_prec
70  IMPLICIT NONE
71    INTEGER           :: var_size
72    LOGICAL,DIMENSION(var_size) :: buffer
73    INTEGER           :: position
74    LOGICAL,DIMENSION(var_size) :: var
75   
76    INTEGER :: i
77    INTEGER :: tot_size
78   
79    tot_size=var_size*LOGICAL_SIZE
80       
81    DO i=1,var_size
82      buffer(i)=var(i)
83    ENDDO
84         
85    position=position+tot_size/BLOCK_SIZE
86    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
87   
88END SUBROUTINE packf_l
89
90SUBROUTINE packf_c(buffer,position,var,var_size)
91  USE mod_prec
92  IMPLICIT NONE
93    INTEGER                  :: var_size
94    CHARACTER(LEN=var_size)  :: buffer
95    INTEGER                  :: position
96    CHARACTER(LEN=var_size)  :: var
97   
98    INTEGER :: tot_size
99   
100    tot_size=var_size*CHARACTER_SIZE
101       
102    buffer(1:var_size)=var(1:var_size)
103         
104    position=position+tot_size/BLOCK_SIZE
105    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
106   
107END SUBROUTINE packf_c
108
109
110
111
112
113
114SUBROUTINE unpackf_r(buffer,position,var,var_size)
115  USE mod_prec
116  IMPLICIT NONE
117    INTEGER           :: var_size
118    REAL,DIMENSION(var_size) :: buffer
119    INTEGER           :: position
120    REAL,DIMENSION(var_size) :: var
121   
122    INTEGER :: i
123    INTEGER :: tot_size
124   
125    tot_size=var_size*REAL_SIZE
126       
127    DO i=1,var_size
128      var(i)=buffer(i)
129    ENDDO
130         
131    position=position+tot_size/BLOCK_SIZE
132    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
133   
134END SUBROUTINE unpackf_r
135
136
137SUBROUTINE unpackf_field(buffer,position,var,var_size)
138  USE mod_prec
139  IMPLICIT NONE
140    INTEGER           :: var_size
141    REAL,DIMENSION(var_size) :: buffer
142    INTEGER           :: position
143    REAL,DIMENSION(var_size) :: var
144   
145    INTEGER :: i
146    INTEGER :: tot_size
147   
148    tot_size=var_size*REAL_SIZE
149       
150    DO i=1,var_size
151      var(i)=buffer(i)
152    ENDDO
153         
154    position=position+tot_size/BLOCK_SIZE
155    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
156   
157END SUBROUTINE unpackf_field
158
159SUBROUTINE unpackf_i(buffer,position,var,var_size)
160  USE mod_prec
161  IMPLICIT NONE
162    INTEGER           :: var_size
163    INTEGER,DIMENSION(var_size) :: buffer
164    INTEGER           :: position
165    INTEGER,DIMENSION(var_size) :: var
166   
167    INTEGER :: i
168    INTEGER :: tot_size
169   
170    tot_size=var_size*INTEGER_SIZE
171       
172    DO i=1,var_size
173      var(i)=buffer(i)
174    ENDDO
175         
176    position=position+tot_size/BLOCK_SIZE
177    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
178   
179END SUBROUTINE unpackf_i
180
181SUBROUTINE unpackf_l(buffer,position,var,var_size)
182  USE mod_prec
183  IMPLICIT NONE
184    INTEGER           :: var_size
185    LOGICAL,DIMENSION(var_size) :: buffer
186    INTEGER           :: position
187    LOGICAL,DIMENSION(var_size) :: var
188   
189    INTEGER :: i
190    INTEGER :: tot_size
191   
192    tot_size=var_size*LOGICAL_SIZE
193       
194    DO i=1,var_size
195      var(i)=buffer(i)
196    ENDDO
197         
198    position=position+tot_size/BLOCK_SIZE
199    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
200   
201END SUBROUTINE unpackf_l
202
203SUBROUTINE unpackf_c(buffer,position,var,var_size)
204  USE mod_prec
205  IMPLICIT NONE
206    INTEGER                  :: var_size
207    CHARACTER(LEN=var_size)  :: buffer
208    INTEGER                  :: position
209    CHARACTER(LEN=var_size)  :: var
210   
211    INTEGER :: tot_size
212   
213    tot_size=var_size*CHARACTER_SIZE
214       
215    var(1:var_size)=buffer(1:var_size)
216         
217    position=position+tot_size/BLOCK_SIZE
218    IF (MOD(tot_size,BLOCK_SIZE)/=0) position=position+1
219   
220END SUBROUTINE unpackf_c
Note: See TracBrowser for help on using the repository browser.