1 |
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 |