From d09c365e3c4c784196cbcf88641d781bf9084721 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 26 Mar 2018 17:15:16 +0200 Subject: [PATCH] Philippe 26/03/2018: IO: bug correction: deallocate IVDIMS only if allocated --- src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 38ac393a8..5df150185 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -1293,7 +1293,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X1[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X1 @@ -1384,7 +1384,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFI STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X2[NF90_PUT_VAR] '//TRIM(TZFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X2 @@ -1451,7 +1451,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFI STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X3[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X3 @@ -1518,7 +1518,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFI STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X4[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X4 @@ -1585,7 +1585,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFI STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X5[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X5 @@ -1652,7 +1652,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFI STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X6[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X6 @@ -1805,7 +1805,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N1[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N1 @@ -1872,7 +1872,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFI STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N2[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N2 @@ -1938,7 +1938,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFI STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N3[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N3 @@ -2071,7 +2071,7 @@ CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) STATUS = NF90_PUT_VAR(INCID, IVARID, IFIELD) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_L1[NF90_PUT_VAR] '//TRIM(TPFIELD%CMNHNAME),IRESP) -DEALLOCATE(IVDIMS) +IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_L1 -- GitLab