From 57306424f0ba837643433b2fa16c2440fb523164 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 25 May 2018 10:36:29 +0200 Subject: [PATCH] Philippe 25/05/2018: workarounds for problems with PGI compiler (version 18.4) --- src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 11 ++++++++--- src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 | 8 ++++---- src/LIB/SURCOUCHE/src/update_nhalo1d.f90 | 6 ++++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index da109e179..14442683d 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -961,6 +961,7 @@ INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN INTEGER(KIND=IDCDF_KIND) :: GETSTRDIMID TYPE(DIMCDF), POINTER :: TMP +TYPE(IOCDF), POINTER :: TZIOCDF CHARACTER(LEN=16) :: YSUFFIX INTEGER(KIND=IDCDF_KIND) :: STATUS @@ -988,7 +989,8 @@ IF (.NOT. ASSOCIATED(TMP)) THEN IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'GETSTRDIMID[NF90_DEF_DIM]') NULLIFY(TMP%NEXT) TMP%NEXT => TPFILE%TNCDIMS%DIMSTR - TPFILE%TNCDIMS%DIMSTR => TMP + TZIOCDF => TPFILE%TNCDIMS + TZIOCDF%DIMSTR => TMP END IF GETSTRDIMID = TMP%ID @@ -1722,6 +1724,7 @@ INTEGER(KIND=IDCDF_KIND) :: IVARID INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined +TYPE(IOCDF), POINTER :: TZIOCDF ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -1781,8 +1784,10 @@ IF (YVARNAME == 'JMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NJ)) THEN END IF END IF #endif -IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) & - TPFILE%TNCDIMS%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') +IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) THEN + TZIOCDF => TPFILE%TNCDIMS + TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') +END IF KRESP = IRESP END SUBROUTINE IO_WRITE_FIELD_NC4_N0 diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 index 35487689a..91cc5b329 100644 --- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 @@ -841,8 +841,7 @@ ! ! Local Variable ! - !TYPE(ZONE_ll), ALLOCATABLE, DIMENSION(:) :: TP_ZONE_FROM,TP_ZONE_TO,TZINTER - TYPE(ZONE_ll) , DIMENSION(KPROC) :: TP_ZONE_FROM,TP_ZONE_TO,TZINTER + TYPE(ZONE_ll), ALLOCATABLE, DIMENSION(:) :: TP_ZONE_FROM,TP_ZONE_TO,TZINTER INTEGER :: JI,JII,NSEND,JB,JE,JINC,ITIC INTEGER , DIMENSION(KPROC) :: ISEND !------------------------------------------------------------------------------- @@ -850,8 +849,7 @@ !* 1. ALLOCATE OF THE LOCAL VARIABLES : ! ------------------------------- ! - !ALLOCATE( TZPZS(KPROC), TZTRANSXZS(KPROC), & - ! TZTRANSYZS(KPROC), TZINTER(KPROC) ) + ALLOCATE(TP_ZONE_FROM(KPROC),TP_ZONE_TO(KPROC),TZINTER(KPROC)) ! !------------------------------------------------------------------------------- ! @@ -921,6 +919,8 @@ END DO CALL G2LXZ(TP_TSPLITS_FROM(JI),TP_TRANS_FROM_TO,TBOX_FROM_TO) ! + DEALLOCATE(TP_ZONE_FROM,TP_ZONE_TO,TZINTER) + ! END SUBROUTINE CONSTRUCT_TRANSZZ END SUBROUTINE CONSTRUCT_TRANSZ diff --git a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 index e0f6815b4..d899568ad 100644 --- a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 +++ b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 @@ -87,8 +87,8 @@ INTEGER :: IINFO_ll ! ! structures for the partitionning ! -TYPE(ZONE_ll), DIMENSION(NPROC) :: TZSPLITTING_PHYS !physical splitting of the field -TYPE(ZONE_ll), DIMENSION(NPROC) :: TZSPLITTING_EXT !extended splitting of the field +TYPE(ZONE_ll), DIMENSION(:),ALLOCATABLE :: TZSPLITTING_PHYS !physical splitting of the field +TYPE(ZONE_ll), DIMENSION(:),ALLOCATABLE :: TZSPLITTING_EXT !extended splitting of the field TYPE(ZONE_ll) :: TZFIELD_ll ! global field ! ! structures for the communications @@ -121,6 +121,7 @@ INTEGER , DIMENSION(NPROC) :: IRECVCOUNTS !nteger array containing the number of !! !! we assume that the sizes are correct !! +ALLOCATE(TZSPLITTING_PHYS(NPROC),TZSPLITTING_EXT(NPROC)) !------------------------------------------------------------------------------ ! !* 1. Partitionning of the field @@ -378,6 +379,7 @@ DEALLOCATE(PFIELD3D) DEALLOCATE(PFIELDTMP) DEALLOCATE(TZSEND) DEALLOCATE(TZRECV) +DEALLOCATE(TZSPLITTING_PHYS,TZSPLITTING_EXT) IF (LHOOK) CALL DR_HOOK('UPDATE_NHALO1D',1,ZHOOK_HANDLE) !--------------------------------------------------------------------------- ! -- GitLab