- Timestamp:
- Jul 21, 2025, 10:52:25 AM (6 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/misc/strings_mod.f90
r5771 r5785 827 827 IMPLICIT NONE 828 828 CHARACTER(LEN=*), INTENT(IN) :: v0(:,:), v1(:,:) 829 CHARACTER(LEN=maxlen), ALLOCATABLE :: out(:,:), pk(:), tmp(:,:)829 CHARACTER(LEN=maxlen), ALLOCATABLE :: out(:,:), pk(:), pk0(:), pk1(:), tmp(:,:) 830 830 INTEGER :: n0, n1, nrow 831 831 n0 = SIZE(v0,1) … … 833 833 nrow = MAX(n0, n1) 834 834 IF(n0 == n1) THEN 835 pk = PACK(v0, .TRUE.); pk = [pk, PACK(v1, .TRUE.)]835 pk0 = PACK(v0, .TRUE.); pk1 = PACK(v1, .TRUE.); pk = [pk0, pk1] 836 836 ELSE IF(n0 /= nrow) THEN 837 ALLOCATE(tmp(nrow,SIZE(v0,2))); tmp(:,:) = ''; tmp(1:n0,:) = v0(:,:); pk = PACK(tmp, .TRUE.); pk = [pk, PACK(v1, .TRUE.)]837 ALLOCATE(tmp(nrow,SIZE(v0,2))); tmp(:,:) = ''; tmp(1:n0,:) = v0(:,:); pk0 = PACK(tmp, .TRUE.); pk1 = PACK(v1, .TRUE.); pk = [pk0, pk1] 838 838 ELSE 839 ALLOCATE(tmp(nrow,SIZE(v1,2))); tmp(:,:) = ''; tmp(1:n1,:) = v1(:,:); pk = PACK(tmp, .TRUE.); pk = [PACK(v0, .TRUE.), pk]839 ALLOCATE(tmp(nrow,SIZE(v1,2))); tmp(:,:) = ''; tmp(1:n1,:) = v1(:,:); pk0 = PACK(tmp, .TRUE.); pk1 = PACK(v1, .TRUE.); pk = [pk0, pk1] 840 840 END IF 841 841 out = RESHAPE(pk, SHAPE=[nrow, SIZE(v0, 2) + SIZE(v1, 2)]) … … 1265 1265 CHARACTER(LEN=*), INTENT(IN) :: t(:,:) 1266 1266 INTEGER, ALLOCATABLE :: n(:) 1267 INTEGER :: i, j 1268 n = [(MAXVAL([(LEN_TRIM(t(i,j)), i=1, SIZE(t,1))], DIM=1), j=1, SIZE(t,2))] 1267 INTEGER :: i, j, nr, nc 1268 INTEGER, ALLOCATABLE :: trimmed_len(:) 1269 nr = SIZE(t,1) 1270 nc = SIZE(t,2) 1271 ALLOCATE(n(nc)) 1272 DO j = 1, nc 1273 ALLOCATE(trimmed_len(nr)) 1274 DO i = 1, nr 1275 trimmed_len(i) = LEN_TRIM(t(i, j)) 1276 END DO 1277 n(j) = MAXVAL(trimmed_len) 1278 DEALLOCATE(trimmed_len) 1279 END DO 1269 1280 END FUNCTION tableCellsWidth 1270 1281 … … 1412 1423 CHARACTER(LEN=1) :: sp = '|' !--- Separator 1413 1424 INTEGER :: ir, ic, nr, nc, i, j, n(SIZE(d,2)), nttl, id, p 1425 INTEGER, ALLOCATABLE :: col_len(:), trimmed_len(:) 1414 1426 nr = SIZE(d, DIM=1); nc = SIZE(d, DIM=2) !--- Dimensions of the table 1427 ALLOCATE(col_len(nc)) 1428 ALLOCATE(trimmed_len(nr)) 1415 1429 nttl = 0; IF(PRESENT(nTitle)) nttl = nTitle 1416 n = [(MAXVAL([(LEN_TRIM(d(i,j)), i=1, nr)], DIM=1), j=1, nc)] + 2*nm 1430 DO j = 1, nc 1431 DO i = 1, nr 1432 trimmed_len(i) = LEN_TRIM(d(i, j)) 1433 END DO 1434 col_len(j) = MAXVAL(trimmed_len) + 2 * nm 1435 END DO 1436 n = col_len 1417 1437 ALLOCATE(m(nr+1)) !--- Allocate the vector (+1 for header line) 1418 1438 i = 1
Note: See TracChangeset
for help on using the changeset viewer.