diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index 67afce2de6abae410971f31a73a5ad5f1f012090..3a239a05c4ded2f9ff069aef8aa61e92b5e4df77 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -1658,7 +1658,8 @@ ! ! ! - SUBROUTINE SET_LB_FIELD_ll( HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB, IIE, IJE, SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ) + SUBROUTINE SET_LB_FIELD_ll( HLBTYPE, PFIELD, PLBXFIELD, PLBYFIELD, IIB, IJB,& + IIE, IJE, SHIFTWEST, SHIFTEAST, SHIFTSOUTH, SHIFTNORTH ) ! ####################################################################### ! !!**** *SET_LB_FIELD_ll * - subroutine to copy the values associated with the @@ -1733,7 +1734,8 @@ ! and the corresponding indices for the LB global arrays CALL GET_DISTRIB_LB(YLBTYPEX,ISP,'FM','WRITE',NRIMX,IIB_GLBLB,IIE_GLBLB,IJB_GLBLB,IJE_GLBLB) IF ( IIE_LOCLB-IIB_LOCLB /= IIE_GLBLB-IIB_GLBLB ) THEN - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, West-East IIE_LOCLB-IIB_LOCLB =", IIE_LOCLB-IIB_LOCLB, " /= IIE_GLBLB-IIB_GLBLB =", IIE_GLBLB-IIB_GLBLB + WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, West-East IIE_LOCLB-IIB_LOCLB =",& + IIE_LOCLB-IIB_LOCLB, " /= IIE_GLBLB-IIB_GLBLB =", IIE_GLBLB-IIB_GLBLB CALL ABORT ENDIF LOCLBSIZEW = 0 @@ -1771,7 +1773,8 @@ ! and the corresponding indices for the LB global arrays CALL GET_DISTRIB_LB(YLBTYPEY,ISP,'FM','WRITE',NRIMY,IIB_GLBLB,IIE_GLBLB,IJB_GLBLB,IJE_GLBLB) IF ( IJE_LOCLB-IJB_LOCLB /= IJE_GLBLB-IJB_GLBLB ) THEN - WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, South-North IJE_LOCLB-IJB_LOCLB =", IJE_LOCLB-IJB_LOCLB, " /= IJE_GLBLB-IJB_GLBLB =", IJE_GLBLB-IJB_GLBLB + WRITE(*,*) "ERROR: from SET_LB_FIELD_ll, South-North IJE_LOCLB-IJB_LOCLB =",& + IJE_LOCLB-IJB_LOCLB, " /= IJE_GLBLB-IJB_GLBLB =", IJE_GLBLB-IJB_GLBLB CALL ABORT ENDIF IF ( IJB_LOCLB /= 0 ) THEN ! if the LB zone of the local subdomain is non-empty diff --git a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 index 48c3566b69452e311b3c2ec1ef3e4aedeee5dfc5..e0f6815b480317fe4222e570c537a5b3c9f3bfa4 100644 --- a/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 +++ b/src/LIB/SURCOUCHE/src/update_nhalo1d.f90 @@ -133,7 +133,7 @@ INTEGER , DIMENSION(NPROC) :: IRECVCOUNTS !nteger array containing the number of ! Donc on fait un WARNING et un ABORT ! IF ( NHALO > KXEND - KXOR + 1 .OR. NHALO > KYEND - KYOR + 1 ) THEN - WRITE(*,*) "ERROR in UPDATE_NHALO1D : size of local subdomain is (", KXEND - KXOR + 1,",",KYEND - KYOR + 1, \ + WRITE(*,*) "ERROR in UPDATE_NHALO1D : size of local subdomain is (", KXEND - KXOR + 1,",",KYEND - KYOR + 1, & ") which is less than NHALO=",NHALO WRITE(*,*) "Try with less MPI processes or a larger domain" CALL ABORT diff --git a/src/MNH/pgd_grid_io_init_mnh.f90 b/src/MNH/pgd_grid_io_init_mnh.f90 index 8884f11451298ff55ec9b65a06c5106c795b7c3f..052bc66554732c2a4c629aa5ffccccb0b2b00c8c 100644 --- a/src/MNH/pgd_grid_io_init_mnh.f90 +++ b/src/MNH/pgd_grid_io_init_mnh.f90 @@ -187,7 +187,7 @@ IF (CPROGRAM=='IDEAL ' .OR. CPROGRAM=='SPAWN ') RETURN ! ! #ifdef MNH_PARALLEL -IF ( PRESENT(KIMAX) .AND. PRESENT(KJMAX) .AND. PRESENT(HGRID) .AND. PRESENT(ORECT) \ +IF ( PRESENT(KIMAX) .AND. PRESENT(KJMAX) .AND. PRESENT(HGRID) .AND. PRESENT(ORECT) & .AND. PRESENT(KDXRATIO) .AND. PRESENT(KDYRATIO) ) THEN YGRID = HGRID GRECT = ORECT @@ -240,7 +240,7 @@ CALL SET_DAD_ll(0, 1) ! get the son splitting. #ifdef MNH_PARALLEL -IF ( PRESENT(KIMAX) .AND. PRESENT(KJMAX) .AND. PRESENT(HGRID) .AND. PRESENT(ORECT) \ +IF ( PRESENT(KIMAX) .AND. PRESENT(KJMAX) .AND. PRESENT(HGRID) .AND. PRESENT(ORECT) & .AND. PRESENT(KDXRATIO) .AND. PRESENT(KDYRATIO) ) THEN CALL INI_PARAZ_CHILD_ll(IINFO_ll) CALL SET_XRATIO_ll(1, 1) ! il faut faire ça dans le cas PREP_PGD sur le modele fils car dans ce cas on ne diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index bfe7052f2068d2a774082f52a4f1c0df5a46570d..479fa8bf6fa0db30e13120fca85645990c71863c 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -415,7 +415,7 @@ END IF ! NULLIFY( TZFIELDS_ll ) CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODJ) -CALL ADD3DFIELD_ll(TZFIELDS_ll,PRVREF) +IF ( SIZE(PRVREF,1) /= 0 ) CALL ADD3DFIELD_ll(TZFIELDS_ll,PRVREF) CALL ADD3DFIELD_ll(TZFIELDS_ll,PRHODREF) CALL ADD3DFIELD_ll(TZFIELDS_ll,PEXNREF) CALL ADD3DFIELD_ll(TZFIELDS_ll,PTHVREF) @@ -423,7 +423,7 @@ CALL UPDATE_HALO_ll(TZFIELDS_ll,IINFO_ll) CALL CLEANLIST_ll(TZFIELDS_ll) ! CALL MPPDB_CHECK3D(ZRHOREF,"SET_REF::ZRHOREF",PRECISION) -CALL MPPDB_CHECK3D(PRVREF,"SET_REF::PRVREF",PRECISION) +IF ( SIZE(PRVREF,1) /= 0 ) CALL MPPDB_CHECK3D(PRVREF,"SET_REF::PRVREF",PRECISION) CALL MPPDB_CHECK3D(PRHODJ,"SET_REF::PRHODJ",PRECISION) diff --git a/src/MNH/spawn_grid2.f90 b/src/MNH/spawn_grid2.f90 index 23e9a897441348c7c2c11cce792cf4042f603507..3fa646362d621e8502f2fa8f20fa1f2a2ce0c3cd 100644 --- a/src/MNH/spawn_grid2.f90 +++ b/src/MNH/spawn_grid2.f90 @@ -368,7 +368,8 @@ ELSE ZPOND2 = FLOAT(KDXRATIO-JEPSX)/FLOAT(KDXRATIO) ZPOND1 = 1.-ZPOND2 IF( JPHEXT+1-(JI-1)*KDXRATIO-JEPSX > 0 ) THEN - PXHAT(JPHEXT+1-(JI-1)*KDXRATIO-JEPSX) = ZPOND1*ZXHAT_EXTENDED_C(JPHEXT+1-JI+1)+ ZPOND2*ZXHAT_EXTENDED_C(JPHEXT+1-JI+2) + PXHAT(JPHEXT+1-(JI-1)*KDXRATIO-JEPSX) = ZPOND1*ZXHAT_EXTENDED_C(JPHEXT+1-JI+1) & + + ZPOND2*ZXHAT_EXTENDED_C(JPHEXT+1-JI+2) ENDIF ENDDO ENDDO @@ -377,7 +378,8 @@ ELSE DO JEPSX = 1,KDXRATIO ZPOND2 = FLOAT(JEPSX-1)/FLOAT(KDXRATIO) ZPOND1 = 1.-ZPOND2 - PXHAT(JPHEXT+JEPSX+(JI-1)*KDXRATIO) = ZPOND1*ZXHAT_EXTENDED_C(JI+IIB_C)+ ZPOND2*ZXHAT_EXTENDED_C(JI+IIB_C+1) + PXHAT(JPHEXT+JEPSX+(JI-1)*KDXRATIO) = ZPOND1*ZXHAT_EXTENDED_C(JI+IIB_C) & + + ZPOND2*ZXHAT_EXTENDED_C(JI+IIB_C+1) ENDDO ENDDO !on the east halo of the son model @@ -386,7 +388,8 @@ ELSE ZPOND1 = FLOAT(KDXRATIO-JEPSX+1)/FLOAT(KDXRATIO) ZPOND2 = 1.-ZPOND1 IF( SIZE(PXHAT)-JPHEXT+(JI-1)*KDXRATIO+JEPSX <= SIZE(PXHAT) ) THEN - PXHAT(SIZE(PXHAT)-JPHEXT+(JI-1)*KDXRATIO+JEPSX) = ZPOND1*ZXHAT_EXTENDED_C(IDIMX_C-JPHEXT+JI-1)+ ZPOND2*ZXHAT_EXTENDED_C(IDIMX_C-JPHEXT+JI) + PXHAT(SIZE(PXHAT)-JPHEXT+(JI-1)*KDXRATIO+JEPSX) = ZPOND1*ZXHAT_EXTENDED_C(IDIMX_C-JPHEXT+JI-1) & + + ZPOND2*ZXHAT_EXTENDED_C(IDIMX_C-JPHEXT+JI) ENDIF ENDDO ENDDO @@ -423,7 +426,8 @@ ELSE ZPOND2 = FLOAT(KDXRATIO-JEPSY)/FLOAT(KDYRATIO) ZPOND1 = 1.-ZPOND2 IF( JPHEXT+1-(JJ-1)*KDYRATIO-JEPSY > 0 ) THEN - PYHAT(JPHEXT+1-(JJ-1)*KDYRATIO-JEPSY) = ZPOND1*ZYHAT_EXTENDED_C(JPHEXT+1-JJ+1)+ ZPOND2*ZYHAT_EXTENDED_C(JPHEXT+1-JJ+2) + PYHAT(JPHEXT+1-(JJ-1)*KDYRATIO-JEPSY) = ZPOND1*ZYHAT_EXTENDED_C(JPHEXT+1-JJ+1) & + + ZPOND2*ZYHAT_EXTENDED_C(JPHEXT+1-JJ+2) ENDIF ENDDO ENDDO @@ -432,7 +436,8 @@ ELSE DO JEPSY = 1,KDYRATIO ZPOND2 = FLOAT(JEPSY-1)/FLOAT(KDYRATIO) ZPOND1 = 1.-ZPOND2 - PYHAT(JPHEXT+JEPSY+(JJ-1)*KDYRATIO) = ZPOND1*ZYHAT_EXTENDED_C(JJ+JPHEXT+1)+ ZPOND2*ZYHAT_EXTENDED_C(JJ+JPHEXT+1+1) + PYHAT(JPHEXT+JEPSY+(JJ-1)*KDYRATIO) = ZPOND1*ZYHAT_EXTENDED_C(JJ+JPHEXT+1) & + + ZPOND2*ZYHAT_EXTENDED_C(JJ+JPHEXT+1+1) ENDDO ENDDO !on the north halo of the son model @@ -441,7 +446,8 @@ ELSE ZPOND1 = FLOAT(KDYRATIO-JEPSY+1)/FLOAT(KDYRATIO) ZPOND2 = 1.-ZPOND1 IF( SIZE(PYHAT)-JPHEXT+(JJ-1)*KDYRATIO+JEPSY <= SIZE(PYHAT) ) THEN - PYHAT(SIZE(PYHAT)-JPHEXT+(JJ-1)*KDYRATIO+JEPSY) = ZPOND1*ZYHAT_EXTENDED_C(IDIMY_C-JPHEXT+JJ-1)+ ZPOND2*ZYHAT_EXTENDED_C(IDIMY_C-JPHEXT+JJ) + PYHAT(SIZE(PYHAT)-JPHEXT+(JJ-1)*KDYRATIO+JEPSY) = ZPOND1*ZYHAT_EXTENDED_C(IDIMY_C-JPHEXT+JJ-1) & + + ZPOND2*ZYHAT_EXTENDED_C(IDIMY_C-JPHEXT+JJ) ENDIF ENDDO ENDDO diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90 index bc65fcc59212221391c4eb521b8fc89ea3ce4122..db0816f9040defea6f0d5227d160e07355126782 100644 --- a/src/MNH/spawn_zs.f90 +++ b/src/MNH/spawn_zs.f90 @@ -505,7 +505,8 @@ IF (KDXRATIO/=1 .OR. KDYRATIO/=1) THEN ! cause errors on the south-east and north-west internal border of the neigbouring processes DO JI=1,JPHEXT+1 DO JJ=1,JPHEXT+1 - ZZS1CHILDGRID_C(SIZE(PZS2_C,1)+2-JI+1-JPHEXT-1,SIZE(PZS2_C,2)+2-JJ+1-JPHEXT-1) = ZZS1_C(IDIMX_C-JI+1-JPHEXT-1,IDIMY_C-JJ+1-JPHEXT-1) ! local value, on local physical domain + ZZS1CHILDGRID_C(SIZE(PZS2_C,1)+2-JI+1-JPHEXT-1,SIZE(PZS2_C,2)+2-JJ+1-JPHEXT-1) & + = ZZS1_C(IDIMX_C-JI+1-JPHEXT-1,IDIMY_C-JJ+1-JPHEXT-1) ! local value, on local physical domain END DO END DO !