Changeset 5116 for LMDZ6/branches/Amaury_dev/libf/misc/lmdz_formcoord.f90
- Timestamp:
- Jul 24, 2024, 2:54:37 PM (2 months ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_formcoord.f90
r5115 r5116 1 MODULE lmdz_formcoord 2 IMPLICIT NONE; PRIVATE 3 PUBLIC formcoord 4 CONTAINS 1 5 2 ! $Header$ 6 SUBROUTINE formcoord(unit, n, x, a, rev, text) 7 IMPLICIT NONE 8 INTEGER :: n, unit, ndec 9 logical :: rev 10 REAL :: x(n), a 11 CHARACTER(LEN = 4) :: text 3 12 4 SUBROUTINE formcoord(unit,n,x,a,rev,text) 5 IMPLICIT NONE 6 integer :: n,unit,ndec 7 logical :: rev 8 real :: x(n),a 9 character(len=4) :: text 13 INTEGER :: i, id, i1, i2, in 14 REAL :: dx, dxmin 10 15 11 integer :: i,id,i1,i2,in 12 real :: dx,dxmin 16 IF(rev) THEN 17 id = -1 18 i1 = n 19 i2 = n - 1 20 in = 1 21 WRITE(unit, 3000) text(1:1) 22 else 23 id = 1 24 i1 = 1 25 i2 = 2 26 in = n 27 endif 13 28 14 if(rev) then 15 id=-1 16 i1=n 17 i2=n-1 18 in=1 19 write(unit,3000) text(1:1) 20 else 21 id=1 22 i1=1 23 i2=2 24 in=n 25 endif 29 if (n<2) THEN 30 ndec = 1 31 WRITE(unit, 1000) text, n, x(1) * a 32 else 33 dxmin = abs(x(2) - x(1)) 34 do i = 2, n - 1 35 dx = abs(x(i + 1) - x(i)) 36 if (dx<dxmin) dxmin = dx 37 enddo 26 38 27 if (n<2) then28 ndec=129 write(unit,1000) text,n,x(1)*a30 else31 dxmin=abs(x(2)-x(1))32 do i=2,n-133 dx=abs(x(i+1)-x(i))34 if (dx<dxmin) dxmin=dx35 enddo39 ndec = -log10(dxmin) + 2 40 IF(mod(n, 6)==1) THEN 41 WRITE(unit, 1000) text, n, x(i1) * a 42 WRITE(unit, 2000) (x(i) * a, i=i2, in, id) 43 else 44 WRITE(unit, 1000) text, n 45 WRITE(unit, 2000) (x(i) * a, i=i1, in, id) 46 endif 47 endif 36 48 37 ndec=-log10(dxmin)+2 38 if(mod(n,6)==1) then 39 write(unit,1000) text,n,x(i1)*a 40 write(unit,2000) (x(i)*a,i=i2,in,id) 41 else 42 write(unit,1000) text,n 43 write(unit,2000) (x(i)*a,i=i1,in,id) 44 endif 45 endif 49 1000 format(a4, 2x, i4, ' LEVELS', 43x, f12.2) 50 2000 format(6f12.2) 51 3000 format('FORMAT ', a1, 'REV') 46 52 47 1000 format(a4,2x,i4,' LEVELS',43x,f12.2) 48 2000 format(6f12.2) 49 !1000 format(a4,2x,i4,' LEVELS',43x,f12.<ndec>) 50 !2000 format(6f12.<ndec>) 51 3000 format('FORMAT ',a1,'REV') 52 53 54 end subroutine formcoord 53 END SUBROUTINE formcoord 54 END MODULE lmdz_formcoord
Note: See TracChangeset
for help on using the changeset viewer.