diff --git a/Source/dump.f90 b/Source/dump.f90 index 380e5659765..0a080cce34f 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -9554,11 +9554,12 @@ SUBROUTINE DUMP_DEVICES(T) IF (PY%HISTOGRAM_CUMULATIVE) VALUE = CUMSUM IF (PY%HISTOGRAM_NORMALIZE .AND. CONST>TWO_EPSILON_EB) VALUE = VALUE / CONST IF (PY%HISTOGRAM_NORMALIZE .AND. .NOT.PY%HISTOGRAM_CUMULATIVE) VALUE = VALUE / COORD_FACTOR - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" IF (DV%HIDE_COORDINATES) THEN + WRITE(TCFORM,'(3A)') "(",FMT_R,")" WRITE(HISTOGRAM_VALUE(N,NN),TCFORM) VALUE ELSE - WRITE(HISTOGRAM_VALUE(N,NN),TCFORM) DI*COORD_FACTOR,',',VALUE + WRITE(TCFORM,'(5A)') "(1(",FMT_R,",','),",FMT_R,")" + WRITE(HISTOGRAM_VALUE(N,NN),TCFORM) DI*COORD_FACTOR,VALUE ENDIF ENDDO ENDIF @@ -9619,43 +9620,32 @@ SUBROUTINE DUMP_DEVICES(T) DO N=1,N_DEVC DV => DEVICE(N) IF (DV%LINE>0) THEN + IF (DV%LINE_COORD_CODE==0) THEN + WRITE(TCFORM,'(3A)') "(",FMT_R,")" + ELSEIF (DV%LINE_COORD_CODE<10) THEN + WRITE(TCFORM,'(5A)') "(1(",FMT_R,",','),",FMT_R,")" + ELSEIF (DV%LINE_COORD_CODE<100) THEN + WRITE(TCFORM,'(5A)') "(2(",FMT_R,",','),",FMT_R,")" + ELSE + WRITE(TCFORM,'(5A)') "(3(",FMT_R,",','),",FMT_R,")" + ENDIF SELECT CASE(DV%LINE_COORD_CODE) - CASE(0) - WRITE(TCFORM,'(3A)') "(",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%VALUE/DV%TIME_INTERVAL - CASE(1) - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%X*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(2) - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%Y*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(3) - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%Z*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(4) - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) SQRT(DV%X**2+DV%Y**2+DV%Z**2)*DV%COORD_FACTOR, & - ',',DV%VALUE/DV%TIME_INTERVAL - CASE(5) - WRITE(TCFORM,'(5A)') "(1(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) SQRT((DV%X-DV%X0)**2+(DV%Y-DV%Y0)**2+(DV%Z-DV%Z0)**2)& - *DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(12) - WRITE(TCFORM,'(5A)') "(2(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & - DV%X*DV%COORD_FACTOR,',',DV%Y*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(13) - WRITE(TCFORM,'(5A)') "(2(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & - DV%X*DV%COORD_FACTOR,',',DV%Z*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(23) - WRITE(TCFORM,'(5A)') "(2(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & - DV%Y*DV%COORD_FACTOR,',',DV%Z*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL - CASE(123) - WRITE(TCFORM,'(5A)') "(3(",FMT_R,",A),",FMT_R,")" - WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & - DV%X*DV%COORD_FACTOR,',',DV%Y*DV%COORD_FACTOR,',',DV%Z*DV%COORD_FACTOR,',',DV%VALUE/DV%TIME_INTERVAL + CASE(0) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%VALUE/DV%TIME_INTERVAL + CASE(1) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%X*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(2) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%Y*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(3) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) DV%Z*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(4) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + SQRT(DV%X**2+DV%Y**2+DV%Z**2)*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(5) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + SQRT((DV%X-DV%X0)**2+(DV%Y-DV%Y0)**2+(DV%Z-DV%Z0)**2)*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(12) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + DV%X*DV%COORD_FACTOR,DV%Y*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(13) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + DV%X*DV%COORD_FACTOR,DV%Z*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(23) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + DV%Y*DV%COORD_FACTOR,DV%Z*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL + CASE(123) ; WRITE(LINE_DEVC_VALUE(DV%LINE,DV%POINT),TCFORM) & + DV%X*DV%COORD_FACTOR,DV%Y*DV%COORD_FACTOR,DV%Z*DV%COORD_FACTOR,DV%VALUE/DV%TIME_INTERVAL END SELECT ENDIF ENDDO