diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 3d989f9e64dce4a883a920a6e89dbaf54d74b3ce..d7d0de5f3fde27d3babb19f35e3afc6036c53ce7 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -377,11 +377,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocessor execution IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -400,7 +400,7 @@ CONTAINS ' not found in list') END IF IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,TZFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,PFIELD,IRESP) END IF END DO ENDIF @@ -499,7 +499,7 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocessor execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -525,7 +525,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -644,15 +644,15 @@ CONTAINS IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE ! multiprocessor execution CALL SECOND_MNH2(T0) @@ -726,7 +726,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF #ifdef MNH_GA !!$ IF (ISP .EQ. 1 ) THEN @@ -882,15 +882,15 @@ CONTAINS IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( (TZFD%nb_procio .eq. 1 ) .OR. ( YDIR == '--' ) ) THEN ! multiprocessor execution & 1 proc IO #ifndef MNH_INT8 @@ -924,7 +924,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1000,7 +1000,7 @@ CONTAINS TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 ! IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLIDE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TZFILE%TNCDIMS,ZSLIDE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLIDE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -1131,7 +1131,7 @@ CONTAINS TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 !JUANIOZ IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLIDE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TZFILE%TNCDIMS,ZSLIDE_ll,IRESP, & + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLIDE_ll,IRESP, & KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 @@ -1266,10 +1266,10 @@ CONTAINS ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #ifndef MNH_INT8 @@ -1302,7 +1302,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1410,10 +1410,10 @@ CONTAINS ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #ifndef MNH_INT8 @@ -1447,7 +1447,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1548,7 +1548,7 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1576,7 +1576,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1662,11 +1662,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1685,7 +1685,7 @@ CONTAINS ' not found in list') END IF IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,TZFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,KFIELD,IRESP) END IF END DO ENDIF @@ -1779,7 +1779,7 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocessor execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1805,7 +1805,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1915,15 +1915,15 @@ CONTAINS IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocessor execution #ifndef MNH_INT8 @@ -1960,7 +1960,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 @@ -2070,15 +2070,15 @@ CONTAINS IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,KFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocessor execution #ifndef MNH_INT8 @@ -2112,7 +2112,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,IFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2201,11 +2201,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,OFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,OFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2224,7 +2224,7 @@ CONTAINS ' not found in list') END IF IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,OFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,TZFILE%TNCDIMS,OFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,OFIELD,IRESP) END IF END DO ENDIF @@ -2318,7 +2318,7 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,OFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocessor execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -2344,7 +2344,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,GFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,GFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,GFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2430,11 +2430,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,HFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,HFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2537,11 +2537,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,HFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,HFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2622,11 +2622,11 @@ CONTAINS IF (ASSOCIATED(TZFD)) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,TFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,TFIELD,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2749,10 +2749,10 @@ CONTAINS IF (LPACK .AND. L2D) THEN TX3DP=>PLB(:,JPHEXT+1:JPHEXT+1,:) IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,TX3DP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PLB,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,PLB,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PLB,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN @@ -2781,7 +2781,7 @@ CONTAINS TX3DP=>Z3D END IF IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,TX3DP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE NB_REQ=0 ALLOCATE(REQ_TAB(1)) @@ -2874,7 +2874,7 @@ CONTAINS ZFIELDP=>PFIELD END IF IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE ! multiprocessor execution IF (ISP == TPFILE%NMASTER_RANK) THEN ! Allocate the box @@ -2891,7 +2891,7 @@ CONTAINS ! IF (ISP == TPFILE%NMASTER_RANK) THEN IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TPFILE%TNCDIMS,ZFIELDP,IRESP) + IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 084ea9d175e6978270f570f9dd662f10b6306ea0..52ba9465f04159b89e1aa9ea5e5b2b629f8b04d6 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -415,11 +415,10 @@ END DO END SUBROUTINE FILLVDIMS -SUBROUTINE IO_WRITE_FIELD_NC4_X0(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL, INTENT(IN) :: PFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -457,11 +456,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X0 -SUBROUTINE IO_WRITE_FIELD_NC4_X1(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X1(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -490,7 +488,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -518,13 +516,12 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X1 -SUBROUTINE IO_WRITE_FIELD_NC4_X2(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP,KVERTLEVEL,KZFILE) +SUBROUTINE IO_WRITE_FIELD_NC4_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE) ! USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP INTEGER,OPTIONAL, INTENT(IN) :: KVERTLEVEL ! Number of the vertical level (needed for Z-level splitted files) @@ -578,7 +575,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TZFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -606,11 +603,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X2 -SUBROUTINE IO_WRITE_FIELD_NC4_X3(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -640,7 +636,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -668,11 +664,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X3 -SUBROUTINE IO_WRITE_FIELD_NC4_X4(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -702,7 +697,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -730,11 +725,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X4 -SUBROUTINE IO_WRITE_FIELD_NC4_X5(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:,:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -764,7 +758,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -792,11 +786,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X5 -SUBROUTINE IO_WRITE_FIELD_NC4_X6(TPFILE,TPFIELD,PZCDF,PFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF REAL,DIMENSION(:,:,:,:,:,:), INTENT(IN) :: PFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -826,7 +819,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -854,7 +847,7 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_X6 -SUBROUTINE IO_WRITE_FIELD_NC4_N0(TPFILE,TPFIELD,PZCDF,KFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 @@ -864,7 +857,6 @@ USE MODD_IO_ll, ONLY : LPACK,L1D,L2D ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF INTEGER, INTENT(IN) :: KFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -907,22 +899,23 @@ IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N0 ! /!\ Can only work if IMAX, JMAX or KMAX are written before any array ! #if 0 -IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(PZCDF%DIMX)) PZCDF%DIMX=>GETDIMCDF(PZCDF,KFIELD+2*JPHEXT,'X') -IF (YVARNAME == 'JMAX' .AND. .NOT. ASSOCIATED(PZCDF%DIMY)) THEN +IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIMX)) TPFILE%TNCDIMS%DIMX=>GETDIMCDF(TPFILE%TNCDIMS,KFIELD+2*JPHEXT,'X') +IF (YVARNAME == 'JMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIMY)) THEN IF (LPACK .AND. L2D) THEN - PZCDF%DIMY=>GETDIMCDF(PZCDF, 1,'Y') + TPFILE%TNCDIMS%DIMY=>GETDIMCDF(TPFILE%TNCDIMS, 1,'Y') ELSE - PZCDF%DIMY=>GETDIMCDF(PZCDF, KFIELD+2*JPHEXT, 'Y') + TPFILE%TNCDIMS%DIMY=>GETDIMCDF(TPFILE%TNCDIMS, KFIELD+2*JPHEXT, 'Y') END IF END IF #endif -IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(PZCDF%DIMZ)) PZCDF%DIMZ=>GETDIMCDF(PZCDF,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') +IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIMZ)) & + TPFILE%TNCDIMS%DIMZ=>GETDIMCDF(TPFILE%TNCDIMS,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N0 -SUBROUTINE IO_WRITE_FIELD_NC4_N1(TPFILE,TPFIELD,PZCDF,KFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 @@ -932,7 +925,6 @@ USE MODD_IO_ll, ONLY : LPACK,L1D,L2D ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF INTEGER, DIMENSION(:), INTENT(IN) :: KFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -961,7 +953,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable #ifndef MNH_INT8 @@ -984,11 +976,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N1 -SUBROUTINE IO_WRITE_FIELD_NC4_N2(TPFILE,TPFIELD,PZCDF,KFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF INTEGER,DIMENSION(:,:),INTENT(IN) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -1018,7 +1009,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable #ifndef MNH_INT8 @@ -1045,11 +1036,10 @@ IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N2 KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N2 -SUBROUTINE IO_WRITE_FIELD_NC4_N3(TPFILE,TPFIELD,PZCDF,KFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_N3(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET, INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF INTEGER,DIMENSION(:,:,:),INTENT(IN) :: KFIELD ! array containing the data field INTEGER, INTENT(OUT):: KRESP ! @@ -1079,7 +1069,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable #ifndef MNH_INT8 @@ -1106,13 +1096,12 @@ IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N3 KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N3 -SUBROUTINE IO_WRITE_FIELD_NC4_L0(TPFILE,TPFIELD,PZCDF,OFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! USE MODD_PARAMETERS_ll, ONLY : JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF LOGICAL, INTENT(IN) :: OFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -1158,13 +1147,12 @@ IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_L0 KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_L0 -SUBROUTINE IO_WRITE_FIELD_NC4_L1(TPFILE,TPFIELD,PZCDF,OFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! USE MODD_PARAMETERS_ll, ONLY : JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF LOGICAL, DIMENSION(:), INTENT(IN) :: OFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -1194,7 +1182,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean @@ -1221,11 +1209,10 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_L1 -SUBROUTINE IO_WRITE_FIELD_NC4_C0(TPFILE,TPFIELD,PZCDF,HFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF CHARACTER(LEN=*), INTENT(IN) :: HFIELD INTEGER, INTENT(OUT):: KRESP ! @@ -1258,7 +1245,7 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(PZCDF,INT(ILEN,KIND=IDCDF_KIND)) + IVDIMS(1) = GETSTRDIMID(TPFILE%TNCDIMS,INT(ILEN,KIND=IDCDF_KIND)) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_C0[NF90_DEF_VAR]') @@ -1279,11 +1266,10 @@ DEALLOCATE(YFIELD) KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_C0 -SUBROUTINE IO_WRITE_FIELD_NC4_C1(TPFILE,TPFIELD,PZCDF,HFIELD,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_C1(TPFILE,TPFIELD,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF CHARACTER(LEN=*),DIMENSION(:),INTENT(IN) :: HFIELD INTEGER, INTENT(OUT) :: KRESP ! @@ -1313,8 +1299,8 @@ CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(PZCDF,ILEN) - CALL FILLVDIMS(PZCDF, (/ISIZE/), TPFIELD%CDIR, IVDIMS(2:2)) + IVDIMS(1) = GETSTRDIMID(TPFILE%TNCDIMS,ILEN) + CALL FILLVDIMS(TPFILE%TNCDIMS, (/ISIZE/), TPFIELD%CDIR, IVDIMS(2:2)) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_C1[NF90_DEF_VAR]') @@ -1332,13 +1318,12 @@ KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_C1 -SUBROUTINE IO_WRITE_FIELD_NC4_T0(TPFILE,TPFIELD,PZCDF,TPDATA,KRESP) +SUBROUTINE IO_WRITE_FIELD_NC4_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -TYPE(IOCDF), POINTER :: PZCDF TYPE (DATE_TIME), INTENT(IN) :: TPDATA INTEGER, INTENT(OUT):: KRESP ! @@ -1407,7 +1392,7 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(PZCDF, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) + CALL FILLVDIMS(TPFILE%TNCDIMS, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), TPFIELD%CDIR, IVDIMS) ! Define the variable STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_INT, IVDIMS, IVARID)