diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 66f9e704e57869bad0e879cac7076adb270904d9..9c855784e6025d7ba1e51a478e92926f6567bc1f 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -294,6 +294,18 @@ CONTAINS END SUBROUTINE IO_FILE_WRITE_CHECK + SUBROUTINE IO_WRITE_SELECT_FORMAT(TPFILE,OLFI,ONC4) + TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure + LOGICAL, INTENT(OUT) :: OLFI ! Write in LFI format? + LOGICAL, INTENT(OUT) :: ONC4 ! Write in netCDF format? + + OLFI = .FALSE. + ONC4 = .FALSE. + IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') OLFI = .TRUE. + IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') ONC4 = .TRUE. + END SUBROUTINE IO_WRITE_SELECT_FORMAT + + SUBROUTINE IO_WRITE_HEADER(TPFILE,HDAD_NAME) ! USE MODD_CONF @@ -369,7 +381,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X0(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY: GSMONOPROC,ISP ! USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! @@ -392,6 +404,7 @@ CONTAINS ! INTEGER :: IK_FILE TYPE(TFILEDATA),POINTER :: TZFILE + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -408,14 +421,16 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X0',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) 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) @@ -425,8 +440,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,PFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,PFIELD,IRESP) END IF END DO ENDIF @@ -442,8 +457,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X1(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -469,7 +482,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X1(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY: GSMONOPROC,ISP ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -494,6 +507,7 @@ CONTAINS INTEGER :: ISIZEMAX REAL,DIMENSION(:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 ! CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP @@ -511,10 +525,12 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X1',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -539,8 +555,8 @@ CONTAINS END IF ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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) @@ -558,8 +574,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X2(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -585,7 +599,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X2(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -615,6 +629,7 @@ CONTAINS INTEGER :: IRESP REAL,DIMENSION(:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 ! REAL*8,DIMENSION(2) :: T0,T1,T2 REAL*8,DIMENSION(2) :: T11,T22 @@ -641,21 +656,23 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X2',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE ! multiprocesses execution CALL SECOND_MNH2(T0) @@ -714,8 +731,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF #ifdef MNH_GA call ga_sync @@ -740,8 +757,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X3(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -767,7 +782,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X3(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -799,6 +814,7 @@ CONTAINS INTEGER :: IRESP REAL,DIMENSION(:,:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 INTEGER :: JK,JKK REAL,DIMENSION(:,:),POINTER :: ZSLICE_ll,ZSLICE INTEGER :: IK_FILE,IK_RANK,INB_PROC_REAL,JK_MAX @@ -844,21 +860,23 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X3',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC .AND. TPFILE%NSUBFILES_IOZ==0 ) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR=='--' ) THEN ! multiprocesses execution & 1 proc IO #ifndef MNH_INT8 @@ -891,8 +909,8 @@ CONTAINS END IF ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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) @@ -957,8 +975,8 @@ CONTAINS CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 ! - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -1057,8 +1075,8 @@ CONTAINS END DO CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -1094,8 +1112,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X4(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1121,7 +1137,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X4(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -1149,6 +1165,7 @@ CONTAINS INTEGER :: IRESP REAL,DIMENSION(:,:,:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP @@ -1168,6 +1185,8 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X4',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN @@ -1176,11 +1195,11 @@ CONTAINS ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #ifndef MNH_INT8 @@ -1212,8 +1231,8 @@ CONTAINS END IF ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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) @@ -1231,8 +1250,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X5(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1258,7 +1275,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_X5(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -1286,6 +1303,7 @@ CONTAINS INTEGER :: IRESP REAL,DIMENSION(:,:,:,:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP @@ -1305,6 +1323,8 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X5',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN @@ -1313,11 +1333,11 @@ CONTAINS ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #ifndef MNH_INT8 @@ -1350,8 +1370,8 @@ CONTAINS END IF ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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) @@ -1369,8 +1389,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_X6(TPFILE,HNAME,PFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1395,7 +1413,7 @@ CONTAINS END SUBROUTINE IO_WRITE_FIELD_BYNAME_X6 SUBROUTINE IO_WRITE_FIELD_BYFIELD_X6(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -1422,6 +1440,7 @@ CONTAINS INTEGER :: ISIZEMAX INTEGER :: IRESP REAL,DIMENSION(:,:,:,:,:,:),POINTER :: ZFIELDP + LOGICAL :: GLFI, GNC4 LOGICAL :: GALLOC INTEGER :: IHEXTOT CHARACTER(LEN=:),ALLOCATABLE :: YMSG @@ -1442,10 +1461,12 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X6',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,PFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) 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) @@ -1472,8 +1493,8 @@ CONTAINS END IF ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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) @@ -1491,8 +1512,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_N0(TPFILE,HNAME,KFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1518,7 +1537,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_N0(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP !* 0. DECLARATIONS ! ------------ ! @@ -1536,6 +1555,7 @@ CONTAINS INTEGER :: IRESP INTEGER :: IK_FILE TYPE(TFILEDATA),POINTER :: TZFILE + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -1548,14 +1568,16 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N0',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) 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,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) 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) @@ -1565,8 +1587,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,KFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,KFIELD,IRESP) END IF END DO ENDIF @@ -1582,8 +1604,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_N1(TPFILE,HNAME,KFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1610,7 +1630,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC,LIOCDF4,LLFIOUT,TFILEDATA + USE MODD_IO_ll, ONLY : ISP,GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -1634,6 +1654,7 @@ CONTAINS INTEGER :: IRESP INTEGER,DIMENSION(:),POINTER :: IFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -1650,10 +1671,12 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N1',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocesses execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1678,8 +1701,8 @@ CONTAINS END IF ! 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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) @@ -1698,8 +1721,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_N2(TPFILE,HNAME,KFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1725,7 +1746,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_N2(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -1752,6 +1773,7 @@ CONTAINS INTEGER :: IRESP INTEGER,DIMENSION(:,:),POINTER :: IFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 ! REAL*8,DIMENSION(2) :: T0,T1,T2 REAL*8,DIMENSION(2) :: T11,T22 @@ -1776,20 +1798,22 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N2',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #ifndef MNH_INT8 @@ -1825,8 +1849,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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 @@ -1849,8 +1873,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_N3(TPFILE,HNAME,KFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -1875,7 +1897,7 @@ CONTAINS END SUBROUTINE IO_WRITE_FIELD_BYNAME_N3 SUBROUTINE IO_WRITE_FIELD_BYFIELD_N3(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_TIMEZ, ONLY : TIMEZ ! @@ -1902,6 +1924,7 @@ CONTAINS INTEGER :: IRESP INTEGER,DIMENSION(:,:,:),POINTER :: IFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 ! REAL*8,DIMENSION(2) :: T11,T22 INTEGER :: IHEXTOT @@ -1925,20 +1948,22 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N3',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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,KFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #ifndef MNH_INT8 @@ -1971,8 +1996,8 @@ CONTAINS END IF ! 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,IFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) 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) @@ -1993,8 +2018,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_L0(TPFILE,HNAME,OFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2019,7 +2042,7 @@ CONTAINS END SUBROUTINE IO_WRITE_FIELD_BYNAME_L0 SUBROUTINE IO_WRITE_FIELD_BYFIELD_L0(TPFILE,TPFIELD,OFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP ! USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME !* 0. DECLARATIONS @@ -2038,6 +2061,7 @@ CONTAINS INTEGER :: IERR INTEGER :: IRESP INTEGER :: IK_FILE + LOGICAL :: GLFI, GNC4 TYPE(TFILEDATA),POINTER :: TZFILE CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP @@ -2051,14 +2075,16 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L0',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,OFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) 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,OFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) 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) @@ -2068,8 +2094,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,OFIELD,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,OFIELD,IRESP) END IF END DO ENDIF @@ -2085,8 +2111,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_L1(TPFILE,HNAME,OFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2113,7 +2137,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC,LIOCDF4,LLFIOUT,TFILEDATA + USE MODD_IO_ll, ONLY : ISP,GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -2137,6 +2161,7 @@ CONTAINS INTEGER :: IRESP LOGICAL,DIMENSION(:),POINTER :: GFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -2153,10 +2178,12 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L1',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,OFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocesses execution #ifndef MNH_INT8 CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -2181,8 +2208,8 @@ CONTAINS END IF ! 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,GFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,GFIELDP,IRESP) + IF (GNC4) 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) @@ -2201,8 +2228,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_C0(TPFILE,HNAME,HFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2228,7 +2253,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_C0(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2245,6 +2270,7 @@ CONTAINS ! INTEGER :: IERR INTEGER :: IRESP + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -2254,7 +2280,9 @@ CONTAINS ! CALL FIELD_METADATA_CHECK(TPFIELD,TYPECHAR,0,'IO_WRITE_FIELD_BYFIELD_C0') ! - IF (LEN(HFIELD)==0 .AND. LLFIOUT) THEN + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! + IF (LEN(HFIELD)==0 .AND. GLFI) THEN CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C0',& 'zero-size string not allowed if LFI output for '//TRIM(TPFIELD%CMNHNAME)) END IF @@ -2263,12 +2291,12 @@ CONTAINS ! IF (IRESP==0) 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,HFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) 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,HFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) 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) @@ -2285,8 +2313,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_C1(TPFILE,HNAME,HFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2312,7 +2338,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_C1(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2333,6 +2359,7 @@ CONTAINS INTEGER :: ILE, IP INTEGER,DIMENSION(:),ALLOCATABLE :: IFIELD INTEGER :: ILENG + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -2342,7 +2369,9 @@ CONTAINS ! IRESP = 0 ! - IF(LLFIOUT) THEN + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! + IF(GLFI) THEN ILE=LEN(HFIELD) IP=SIZE(HFIELD) ILENG=ILE*IP @@ -2367,12 +2396,12 @@ CONTAINS ! IF (IRESP==0) 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,HFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) 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,HFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) 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) @@ -2390,8 +2419,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_T0(TPFILE,HNAME,TFIELD,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2417,7 +2444,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_T0(TPFILE,TPFIELD,TFIELD,KRESP) - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP USE MODD_TYPE_DATE ! !* 0. DECLARATIONS @@ -2435,6 +2462,7 @@ CONTAINS ! INTEGER :: IERR INTEGER :: IRESP + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -2446,14 +2474,16 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_T0',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) 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,TFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) 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,TFIELD,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) 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) @@ -2470,8 +2500,6 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYNAME_LB(TPFILE,HNAME,KL3D,PLB,KRESP) - ! - USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -2499,7 +2527,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BYFIELD_LB(TPFILE,TPFIELD,KL3D,PLB,KRESP) ! - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK USE MODD_PARAMETERS_ll, ONLY : JPHEXT USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE ! @@ -2531,6 +2559,7 @@ CONTAINS INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ,IKU + LOGICAL :: GLFI, GNC4 TYPE TX_3DP REAL,DIMENSION(:,:,:), POINTER :: X END TYPE TX_3DP @@ -2564,15 +2593,17 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_LB',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution 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,TX3DP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) 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,PLB,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PLB,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PLB,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN @@ -2600,8 +2631,8 @@ CONTAINS ELSE TX3DP=>Z3D END IF - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE NB_REQ=0 ALLOCATE(REQ_TAB(1)) @@ -2643,7 +2674,7 @@ CONTAINS SUBROUTINE IO_WRITE_FIELD_BOX_BYFIELD_X5(TPFILE,TPFIELD,HBUDGET,PFIELD,KXOBOX,KXEBOX,KYOBOX,KYEBOX,KRESP) ! - USE MODD_IO_ll + USE MODD_IO_ll, ONLY : GSMONOPROC, ISP ! USE MODE_GATHER_ll ! @@ -2666,6 +2697,7 @@ CONTAINS INTEGER :: IRESP REAL,DIMENSION(:,:,:,:,:),POINTER :: ZFIELDP LOGICAL :: GALLOC + LOGICAL :: GLFI, GNC4 CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! @@ -2676,6 +2708,8 @@ CONTAINS ! CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BOX_BYFIELD_X5',IRESP) ! + CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (HBUDGET /= 'BUDGET') THEN @@ -2685,8 +2719,8 @@ CONTAINS ! take the field as a budget ZFIELDP=>PFIELD END IF - IF (LLFIOUT) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (LIOCDF4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE ! multiprocesses execution IF (ISP == TPFILE%NMASTER_RANK) THEN ! Allocate the box @@ -2702,8 +2736,8 @@ CONTAINS & KXOBOX,KXEBOX,KYOBOX,KYEBOX,HBUDGET) ! 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,ZFIELDP,IRESP) + IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) 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_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 627734e13556e570e158bf9854b62c34d54c3c8e..46c9aee02bba3f7d815734e8132e46da564be8f0 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -54,7 +54,7 @@ END SUBROUTINE SET_FMPACK_ll SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,OPARALLELIO,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM, NMNHVERSION -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA +USE MODD_IO_ll, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT USE MODE_FMREAD USE MODE_IO_ll, ONLY : OPEN_ll @@ -226,7 +226,7 @@ IF (PRESENT(KRESP)) KRESP = IRESP END SUBROUTINE IO_FILE_OPEN_ll SUBROUTINE FMOPEN_ll(TPFILE,KRESP,OPARALLELIO,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY : ISTDOUT,LIOCDF4,LLFIOUT,LLFIREAD,TFILEDATA +USE MODD_IO_ll, ONLY : ISTDOUT,TFILEDATA USE MODE_IO_ll, ONLY : OPEN_ll,GCONFIO !JUANZ USE MODD_CONFZ,ONLY : NB_PROCIO_R,NB_PROCIO_W @@ -326,8 +326,8 @@ IF (TPFILE%LMASTER) THEN END IF #if defined(MNH_IOCDF4) - IF (LIOCDF4) THEN - IF (YACTION == 'READ' .AND. .NOT. LLFIREAD) THEN + IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN + IF (YACTION == 'READ') THEN !! Open NetCDF File for reading TPFILE%TNCDIMS => NEWIOCDF() CALL PRINT_MSG(NVERB_DEBUG,'IO','FMOPEN_ll','NF90_OPEN for '//TRIM(YFILEM)//'.nc') @@ -354,8 +354,7 @@ IF (TPFILE%LMASTER) THEN END IF #endif - IF (.NOT. LIOCDF4 .OR. (YACTION=='WRITE' .AND. LLFIOUT) & - & .OR. (YACTION=='READ' .AND. LLFIREAD)) THEN + IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN ! LFI Case IRESOU = 0 GNAMFI = .TRUE. @@ -393,7 +392,7 @@ IF (TPFILE%LMASTER) THEN END IF #if defined(MNH_IOCDF4) !Write coordinates variables in NetCDF file -IF (LIOCDF4 .AND.YACTION == 'WRITE') THEN +IF (YACTION == 'WRITE' .AND. TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 6444bde79c85084ca158edcc7e02a641390200bd..577c57abf07fbacec5344f74740e697b648e0ffc 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -610,8 +610,7 @@ CONTAINS END IF #if defined(MNH_IOCDF4) - IF (TPFILE%LMASTER .AND. (.NOT. LIOCDF4 .OR. (YACTION=='WRITE' .AND. LLFIOUT) & - & .OR. (YACTION=='READ' .AND. LLFIREAD))) THEN + IF (TPFILE%LMASTER .AND. (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') ) THEN #else IF (TPFILE%LMASTER) THEN #endif @@ -650,8 +649,8 @@ CONTAINS IF ( TZSPLITFILE%LMASTER ) THEN #if defined(MNH_IOCDF4) - IF (LIOCDF4) THEN - IF (YACTION == 'READ' .AND. .NOT. LLFIREAD) THEN + IF (TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN + IF (YACTION == 'READ') THEN ! Open NetCDF File for reading TZSPLITFILE%TNCDIMS => NEWIOCDF() CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_ll','NF90_OPEN(IO_ZSPLIT) for '//TRIM(TPFILE%CNAME)//CFILE//'.nc') @@ -686,8 +685,7 @@ CONTAINS END IF END IF #endif - IF (.NOT. LIOCDF4 .OR. (YACTION=='WRITE' .AND. LLFIOUT)& - & .OR. (YACTION=='READ' .AND. LLFIREAD)) THEN + IF (TZSPLITFILE%CFORMAT=='LFI' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN ! LFI case ! Open LFI File for reading !this proc must write on this file open it ... @@ -722,7 +720,7 @@ CONTAINS ! #if defined(MNH_IOCDF4) !Write coordinates variables in NetCDF file - IF (LIOCDF4 .AND.YACTION == 'WRITE') THEN + IF (YACTION == 'WRITE' .AND. TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN CALL IO_WRITE_COORDVAR_NC4(TZSPLITFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 6b3793448337ea7fa33efe37b045823012e9f551..73128f79268516230ac8fb25a4e254815d14d7bf 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -103,7 +103,7 @@ USE MODD_FIELD_n USE MODD_GR_FIELD_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_SURFEX +USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_SURFEX USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 0a896fe3cd477132771dd11450fb937265ac243c..df8192de199e767f017fa76f4c94c5bafab3b7c9 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -420,7 +420,7 @@ USE MODD_ADVFRC_n USE MODD_RELFRC_n USE MODD_2D_FRC USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL -USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILEDATA,TFILE_FIRST,TFILE_LAST +USE MODD_IO_ll, ONLY : TFILEDATA,TFILE_FIRST,TFILE_LAST ! USE MODD_CH_PRODLOSSTOT_n USE MODI_CH_INIT_PRODLOSSTOT_n diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index 160de109468a884df4118a30bb8177e08973fff6..2395cf621fe9462401de02728f9279d6c8275608 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -174,7 +174,7 @@ USE MODD_CONF USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODN_CONFZ USE MODD_DYN -USE MODD_IO_ll, ONLY: ISP,LIOCDF4,LLFIREAD,NVERB_FATAL,NVERB_WARNING,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO_ll, ONLY: NVERB_FATAL,NVERB_WARNING,TFILE_OUTPUTLISTING,TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n, ONLY: CINIFILE_n=> CINIFILE, TINIFILE_n => TINIFILE, CINIFILEPGD_n=> CINIFILEPGD, TLUOUT, LUNIT_MODEL USE MODD_PARAM_n, ONLY: CSURF diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 384f43ed65612064af202f8d310078611e33b0dd..ba1dab2cd533874a239b2d3dbb06faad192c7d4c 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -73,7 +73,7 @@ USE MODD_FRC_n USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT_n, ONLY: COUTFILE, TLUOUT diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index bba05aba176e58a97380f63ca610d090e35ff19d..b5abff18fd8396eb0fc5d3ecce3e7067c16bd0c8 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -285,7 +285,7 @@ USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n USE MODD_ICE_C1R3_DESCR, ONLY: XRTMIN_C1R3=>XRTMIN -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX,TFILE_DUMMY +USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_SURFEX,TFILE_DUMMY USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 2ec5d200f222fff01afc8b006cdec11888498216..e8d5a26a920fbc7f009bda72fbff5c853156b52a 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -80,7 +80,7 @@ USE MODD_LUNIT_n USE MODD_CONF USE MODD_NESTING USE MODD_PARAMETERS -USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE +USE MODD_IO_ll, ONLY : TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE ! USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index af371c97c2aa6933b454da6afbffe05b62d25ad1..8c5af24c9c354c87d74a116ec77dc1e6e3edd505 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -426,7 +426,7 @@ USE MODE_FMWRIT USE MODI_WRITE_HGRID USE MODD_MPIF USE MODD_VAR_ll -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX +USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_SURFEX ! USE MODE_MPPDB ! diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index f8bf8dc78fc478b75cbf399ae6f7ec85d5f25cfe..d9bc738fdfd8792c7f354aea7642440950bcc01d 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -81,7 +81,7 @@ USE MODD_CONF_n,ONLY : CSTORAGE_TYPE USE MODD_LUNIT, ONLY : CLUOUT0,TLUOUT0 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL USE MODD_PARAMETERS, ONLY : XUNDEF -USE MODD_IO_ll, ONLY : GSMONOPROC,LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX +USE MODD_IO_ll, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY : NHALO USE MODD_SPAWN, ONLY : NDXRATIO,NDYRATIO,NXSIZE,NYSIZE,NXOR,NYOR ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 0cc39c4408b4c967b3da5a274a8dd6a6eb0fffce..302396cca08da6e89bf178c41a648228fdecc7b4 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -401,7 +401,7 @@ USE MODD_GR_FIELD_n USE MODD_GRID USE MODD_GRID_n USE MODD_HURR_CONF -USE MODD_IO_ll, ONLY: GSMONOPROC,TFILEDATA,LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX +USE MODD_IO_ll, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT, ONLY: CLUOUT0,TPGDFILE,TLUOUT0,TOUTDATAFILE diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index f3200a838d3d7d8412c323d014e86eaa4eb32c60..9e98c8a6630b37acd91e2f26f894bb29bcf41fca 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -38,7 +38,7 @@ USE MODD_CONF, ONLY : CPROGRAM,NMASDEV,NBUGFIX,CBIBUSER,& L1D, L2D, LPACK USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY : TFILEDATA, LIOCDF4, LLFIOUT, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX +USE MODD_IO_ll, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index c598b4fd25b9b159ede18e277723afa97c6fb250..ba56be923a2fe744dca60ea16c2b259d146184a2 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -227,7 +227,7 @@ USE MODD_CH_MNHC_n USE MODD_PASPOL_n !$20140515 USE MODD_VAR_ll, ONLY : NPROC -USE MODD_IO_ll, ONLY: TFILEDATA,LIOCDF4,LLFIOUT,TFILE_SURFEX +USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_SURFEX ! USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 4c9498550b7d72c1c96f8d5c863ef8eefa9096a6..58b5344ff2713199207d7e22bea2e0b210830619 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -52,7 +52,7 @@ ! USE MODD_CONF, ONLY : CPROGRAM, NMASDEV, NBUGFIX, CBIBUSER, & L1D, L2D, LPACK -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF