1 |
guez |
108 |
module write_field1d_m |
2 |
|
|
|
3 |
|
|
implicit none |
4 |
|
|
|
5 |
|
|
contains |
6 |
|
|
|
7 |
|
|
subroutine write_field1D(name,Field) |
8 |
|
|
|
9 |
|
|
use int2str_m, only: int2str |
10 |
|
|
|
11 |
|
|
integer, parameter :: MaxDim=1 |
12 |
|
|
character(len=*) :: name |
13 |
|
|
real, dimension(:) :: Field |
14 |
|
|
integer, dimension(MaxDim) :: Dim |
15 |
|
|
integer :: i,nb |
16 |
|
|
integer, parameter :: id=10 |
17 |
|
|
integer, parameter :: NbCol=4 |
18 |
|
|
integer :: ColumnSize |
19 |
|
|
integer :: pos |
20 |
|
|
character(len=255) :: form |
21 |
|
|
character(len=255) :: MaxLen |
22 |
|
|
|
23 |
|
|
|
24 |
|
|
open(unit=id,file=name//'.field',form='formatted',status='replace') |
25 |
|
|
write (id,'("----- Field '//name//'",//)') |
26 |
|
|
Dim=shape(Field) |
27 |
|
|
MaxLen=int2str(len(trim(int2str(Dim(1))))) |
28 |
|
|
ColumnSize=20+6+3+len(trim(int2str(Dim(1)))) |
29 |
|
|
Nb=0 |
30 |
|
|
Pos=2 |
31 |
|
|
do i=1,Dim(1) |
32 |
|
|
nb=nb+1 |
33 |
|
|
|
34 |
|
|
if (MOD(nb,NbCol)==0) then |
35 |
|
|
form='(t'//trim(int2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16,/)' |
36 |
|
|
Pos=2 |
37 |
|
|
else |
38 |
|
|
form='(t'//trim(int2str(pos))// ',i'//trim(MaxLen) //'," ---> ",g22.16," | ",)' |
39 |
|
|
Pos=Pos+ColumnSize |
40 |
|
|
endif |
41 |
|
|
write (id,form,advance='no') i,Field(i) |
42 |
|
|
enddo |
43 |
|
|
|
44 |
|
|
close(id) |
45 |
|
|
|
46 |
|
|
end subroutine write_field1D |
47 |
|
|
|
48 |
|
|
end module write_field1d_m |