Changeset 8762
- Timestamp:
- 2017-11-21T11:15:35+01:00 (7 years ago)
- Location:
- branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/ARCH/arch-openmpi_NAVITI_MERCATOR.fcm
r6140 r8762 23 23 %CPP cpp 24 24 %FC mpif90 25 %FCFLAGS -O 2-fp-model precise -traceback -r8 -convert big_endian -assume byterecl25 %FCFLAGS -O1 -fp-model precise -traceback -r8 -convert big_endian -assume byterecl 26 26 %FFLAGS %FCFLAGS 27 27 %LD mpif90 -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/1_namelist_cfg
r8284 r8762 22 22 &namdom ! space and time domain (bathymetry, mesh, timestep) 23 23 !----------------------------------------------------------------------- 24 ln_linssh = . true. ! =T linear free surface ==>> model level are fixed in time24 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 25 25 nn_closea = 0 ! remove (=0) or keep (=1) closed seas and lakes (ORCA) 26 26 ! … … 171 171 &namdyn_hpg ! Hydrostatic pressure gradient option 172 172 !----------------------------------------------------------------------- 173 ln_hpg_sco = .true. ! s-coordinate (standard jacobian formulation) 173 174 / 174 175 !----------------------------------------------------------------------- -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/TEST_CASES/VORTEX/EXP00/1_namelist_cfg
r8741 r8762 30 30 &namdom ! space and time domain (bathymetry, mesh, timestep) 31 31 !----------------------------------------------------------------------- 32 ln_linssh = . true.! =T linear free surface ==>> model level are fixed in time32 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 33 33 rn_rdt = 480. ! time step for the dynamics (and tracer if nn_acc=0) 34 34 rn_atfp = 0.05 ! asselin time filter parameter … … 39 39 nn_cln_update = 1 ! baroclinic update frequency 40 40 ln_spc_dyn = .true. ! use 0 as special value for dynamics 41 rn_sponge_tra = 2850. ! coefficient for tracer sponge layer [m2/s]42 rn_sponge_dyn = 2850. ! coefficient for dynamics sponge layer [m2/s]41 rn_sponge_tra = 800. ! coefficient for tracer sponge layer [m2/s] 42 rn_sponge_dyn = 800. ! coefficient for dynamics sponge layer [m2/s] 43 43 ln_chk_bathy = .FALSE. ! 44 44 / -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/TEST_CASES/VORTEX/EXP00/namelist_cfg
r8741 r8762 30 30 &namdom ! space and time domain (bathymetry, mesh, timestep) 31 31 !----------------------------------------------------------------------- 32 ln_linssh = . true.! =T linear free surface ==>> model level are fixed in time32 ln_linssh = .false. ! =T linear free surface ==>> model level are fixed in time 33 33 rn_rdt = 1440. ! time step for the dynamics (and tracer if nn_acc=0) 34 34 rn_atfp = 0.05 ! asselin time filter parameter … … 39 39 nn_cln_update = 1 ! baroclinic update frequency 40 40 ln_spc_dyn = .true. ! use 0 as special value for dynamics 41 rn_sponge_tra = 2850. ! coefficient for tracer sponge layer [m2/s]42 rn_sponge_dyn = 2850. ! coefficient for dynamics sponge layer [m2/s]41 rn_sponge_tra = 800. ! coefficient for tracer sponge layer [m2/s] 42 rn_sponge_dyn = 800. ! coefficient for dynamics sponge layer [m2/s] 43 43 ln_chk_bathy = .FALSE. ! 44 44 / -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90
r7646 r8762 38 38 ! 39 39 #if defined SPONGE 40 timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 40 !! timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 41 !! Assume persistence: 42 timecoeff = REAL(Agrif_rhot()-1,wp)/REAL(Agrif_rhot()) 41 43 42 44 CALL Agrif_Sponge … … 61 63 62 64 #if defined SPONGE 63 timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 65 !! timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 66 !! Assume persistence: 67 timecoeff = REAL(Agrif_rhot()-1,wp)/REAL(Agrif_rhot()) 64 68 65 69 Agrif_SpecialValue=0. … … 207 211 ! 208 212 IF( before ) THEN 209 tabres(i1:i2,j1:j2,k1:k2,n1:n2) = ts n(i1:i2,j1:j2,k1:k2,n1:n2)213 tabres(i1:i2,j1:j2,k1:k2,n1:n2) = tsb(i1:i2,j1:j2,k1:k2,n1:n2) 210 214 ELSE 211 215 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90
r8741 r8762 139 139 # if defined key_zdftke 140 140 141 SUBROUTINE Agrif_Update_Tke( )141 SUBROUTINE Agrif_Update_Tke( kt ) 142 142 !!--------------------------------------------- 143 143 !! *** ROUTINE Agrif_Update_Tke *** 144 144 !!--------------------------------------------- 145 145 !! 146 INTEGER, INTENT(in) :: kt 146 147 ! 147 148 IF (Agrif_Root()) RETURN … … 272 273 END SUBROUTINE dom_vvl_update_UVF 273 274 274 SUBROUTINE updateTS( tabres, i1, i2, j1, j2, k1, k2, n1, n2, before , nb, ndir)275 SUBROUTINE updateTS( tabres, i1, i2, j1, j2, k1, k2, n1, n2, before ) 275 276 !!--------------------------------------------- 276 277 !! *** ROUTINE updateT *** … … 279 280 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: tabres 280 281 LOGICAL, INTENT(in) :: before 281 INTEGER, INTENT(in) :: nb, ndir282 282 !! 283 LOGICAL :: western_side, eastern_side, southern_side, northern_side284 283 INTEGER :: ji,jj,jk,jn 285 284 REAL(wp) :: ztb, ztnu, ztno … … 340 339 ENDIF 341 340 ! 342 !343 # if defined DECAL_FEEDBACK344 IF (.NOT.ln_linssh) THEN345 western_side = (nb == 1).AND.(ndir == 1)346 eastern_side = (nb == 1).AND.(ndir == 2)347 southern_side = (nb == 2).AND.(ndir == 1)348 northern_side = (nb == 2).AND.(ndir == 2)349 !350 ! Asselin correction351 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN352 IF (southern_side) THEN353 DO jn = n1,n2354 DO jk=k1,k2355 DO ji=i1,i2356 ztb = tsb(ji,j1-1,jk,jn) * e3t_b(ji,j1-1,jk) ! fse3t_b prior update should be used357 ztnu = tsn(ji,j1-1,jk,jn) * e3t_n(ji,j1-1,jk)358 ztno = tsn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk)359 tsb(ji,j1-1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &360 & * tmask(ji,j1-1,jk) / e3t_b(ji,j1-1,jk)361 END DO362 ENDDO363 ENDDO364 ENDIF365 IF (northern_side) THEN366 DO jn = n1,n2367 DO jk=k1,k2368 DO ji=i1,i2369 ztb = tsb(ji,j2+1,jk,jn) * e3t_b(ji,j2+1,jk) ! fse3t_b prior update should be used370 ztnu = tsn(ji,j2+1,jk,jn) * e3t_n(ji,j2+1,jk)371 ztno = tsn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk)372 tsb(ji,j2+1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &373 & * tmask(ji,j2+1,jk) / e3t_b(ji,j2+1,jk)374 END DO375 ENDDO376 ENDDO377 ENDIF378 IF (western_side) THEN379 DO jn = n1,n2380 DO jk=k1,k2381 DO jj=j1,j2382 ztb = tsb(i1-1,jj,jk,jn) * e3t_b(i1-1,jj,jk) ! fse3t_b prior update should be used383 ztnu = tsn(i1-1,jj,jk,jn) * e3t_n(i1-1,jj,jk)384 ztno = tsn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk)385 tsb(i1-1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &386 & * tmask(i1-1,jj,jk) / e3t_b(i1-1,jj,jk)387 END DO388 ENDDO389 ENDDO390 ENDIF391 IF (eastern_side) THEN392 DO jn = n1,n2393 DO jk=k1,k2394 DO jj=j1,j2395 ztb = tsb(i2+1,jj,jk,jn) * e3t_b(i2+1,jj,jk) ! fse3t_b prior update should be used396 ztnu = tsn(i2+1,jj,jk,jn) * e3t_n(i2+1,jj,jk)397 ztno = tsn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk)398 tsb(i2+1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &399 & * tmask(i2+1,jj,jk) / e3t_b(i2+1,jj,jk)400 END DO401 ENDDO402 ENDDO403 ENDIF404 ENDIF ! Asselin correction405 406 IF (southern_side) THEN407 DO jn = n1,n2408 DO jk=k1,k2409 DO ji=i1,i2410 tsn(ji,j1-1,jk,jn) = tsn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk) / e3t_n(ji,j1-1,jk)411 END DO412 ENDDO413 ENDDO414 ENDIF415 IF (northern_side) THEN416 DO jn = n1,n2417 DO jk=k1,k2418 DO ji=i1,i2419 tsn(ji,j2+1,jk,jn) = tsn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk) / e3t_n(ji,j2+1,jk)420 END DO421 ENDDO422 ENDDO423 ENDIF424 IF (western_side) THEN425 DO jn = n1,n2426 DO jk=k1,k2427 DO jj=j1,j2428 tsn(i1-1,jj,jk,jn) = tsn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk) / e3t_n(i1-1,jj,jk)429 END DO430 ENDDO431 ENDDO432 ENDIF433 IF (eastern_side) THEN434 DO jn = n1,n2435 DO jk=k1,k2436 DO jj=j1,j2437 tsn(i2+1,jj,jk,jn) = tsn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk) / e3t_n(i2+1,jj,jk)438 END DO439 ENDDO440 ENDDO441 ENDIF442 ENDIF443 #endif444 341 ENDIF 445 342 ! … … 676 573 677 574 678 SUBROUTINE updateSSH( tabres, i1, i2, j1, j2, before , nb, ndir)575 SUBROUTINE updateSSH( tabres, i1, i2, j1, j2, before ) 679 576 !!--------------------------------------------- 680 577 !! *** ROUTINE updateSSH *** … … 683 580 REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: tabres 684 581 LOGICAL, INTENT(in) :: before 685 INTEGER, INTENT(in) :: nb, ndir686 582 !! 687 LOGICAL :: western_side, eastern_side, southern_side, northern_side688 583 INTEGER :: ji, jj 689 584 !!--------------------------------------------- … … 717 612 ENDIF 718 613 ! 719 # if defined DECAL_FEEDBACK 720 ! western_side = (nb == 1).AND.(ndir == 1) 721 ! eastern_side = (nb == 1).AND.(ndir == 2) 722 ! southern_side = (nb == 2).AND.(ndir == 1) 723 ! northern_side = (nb == 2).AND.(ndir == 2) 724 ! ! 725 ! ! Asselin correction 726 ! IF ( ln_dynspg_ts.AND.ln_bt_fw ) THEN 727 ! IF (southern_side) THEN 728 ! DO ji=i1,i2 729 ! sshn(ji,j1-1) = sshn(ji,j1-1) - rdt * r1_e2t(ji,j1-1) * (vb2_b_s(ji,j1-1)-vb2_b(ji,j1-1)) 730 ! END DO 731 ! ENDIF 732 ! IF (northern_side) THEN 733 ! DO ji=i1,i2 734 ! sshn(ji,j1+1) = sshn(ji,j1+1) + rdt * r1_e2t(ji,j1+1) * (vb2_b_s(ji,j1)-vb2_b(ji,j1)) 735 ! END DO 736 ! ENDIF 737 ! IF (western_side) THEN 738 ! DO jj=j1,j2 739 ! sshn(i1-1,jj) = sshn(i1-1,jj) - rdt * r1_e2t(i1-1,jj) * (ub2_b_s(i1-1,jj)-ub2_b(i1-1,jj)) 740 ! END DO 741 ! ENDIF 742 ! IF (eastern_side) THEN 743 ! DO jj=j1,j2 744 ! sshn(i1+1,jj) = sshn(i1+1,jj) + rdt * r1_e2t(i1+1,jj) * (ub2_b_s(i1,jj)-ub2_b(i1,jj)) 745 ! END DO 746 ! ENDIF 747 ! ! 748 ! ENDIF 749 #endif 614 750 615 ENDIF 751 616 ! … … 753 618 754 619 755 SUBROUTINE updateub2b( tabres, i1, i2, j1, j2, before )620 SUBROUTINE updateub2b( tabres, i1, i2, j1, j2, before, nb, ndir ) 756 621 !!--------------------------------------------- 757 622 !! *** ROUTINE updateub2b *** … … 760 625 REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: tabres 761 626 LOGICAL, INTENT(in) :: before 627 INTEGER, INTENT(in) :: nb, ndir 762 628 !! 629 LOGICAL :: western_side, eastern_side 763 630 INTEGER :: ji, jj 764 631 REAL(wp) :: zrhoy, za1 … … 774 641 tabres = zrhoy * tabres 775 642 ELSE 643 ! 644 tabres(i1:i2,j1:j2) = tabres(i1:i2,j1:j2) * r1_e2u(i1:i2,j1:j2) 645 ! 646 ! Refluxing here: 647 #if defined DECAL_FEEDBACK 648 western_side = (nb == 1).AND.(ndir == 1) 649 eastern_side = (nb == 1).AND.(ndir == 2) 650 ! 651 IF (western_side) THEN 652 DO jj=j1,j2 653 sshn(i1 ,jj) = sshn(i1 ,jj) + rdt * r1_e1e2t(i1 ,jj) & 654 & * e2u(i1,jj) * (ub2_b(i1,jj)-tabres(i1,jj)) 655 END DO 656 ENDIF 657 IF (eastern_side) THEN 658 DO jj=j1,j2 659 sshn(i2+1,jj) = sshn(i2+1,jj) - rdt * r1_e1e2t(i2+1,jj) & 660 & * e2u(i2,jj) * (ub2_b(i2,jj)-tabres(i2,jj)) 661 END DO 662 ENDIF 663 ! 664 #endif 776 665 za1 = 1._wp / REAL(Agrif_rhot(), wp) 777 tabres(i1:i2,j1:j2) = tabres(i1:i2,j1:j2) * r1_e2u(i1:i2,j1:j2)666 ! 778 667 DO jj=j1,j2 779 668 DO ji=i1,i2 669 ! Update time integrated fluxes also in case of multiply nested grids: 780 670 ub2_i_b(ji,jj) = ub2_i_b(ji,jj) & 781 671 & + za1 * (tabres(ji,jj) - ub2_b(ji,jj)) 782 ! ub2_b_s(ji,jj) = ub2_b(ji,jj) 672 ! Update half step back fluxes: 783 673 ub2_b(ji,jj) = tabres(ji,jj) 784 674 END DO … … 789 679 790 680 791 SUBROUTINE updatevb2b( tabres, i1, i2, j1, j2, before )681 SUBROUTINE updatevb2b( tabres, i1, i2, j1, j2, before, nb, ndir ) 792 682 !!--------------------------------------------- 793 683 !! *** ROUTINE updatevb2b *** … … 796 686 REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: tabres 797 687 LOGICAL, INTENT(in) :: before 688 INTEGER, INTENT(in) :: nb, ndir 798 689 !! 690 LOGICAL :: southern_side, northern_side 799 691 INTEGER :: ji, jj 800 692 REAL(wp) :: zrhox, za1 … … 810 702 tabres = zrhox * tabres 811 703 ELSE 704 ! 705 tabres(i1:i2,j1:j2) = tabres(i1:i2,j1:j2) * r1_e1v(i1:i2,j1:j2) 706 ! 707 ! Refluxing here: 708 #if defined DECAL_FEEDBACK 709 southern_side = (nb == 2).AND.(ndir == 1) 710 northern_side = (nb == 2).AND.(ndir == 2) 711 ! 712 IF (southern_side) THEN 713 DO ji=i1,i2 714 sshn(ji,j1 ) = sshn(ji,j1 ) + rdt * r1_e1e2t(ji,j1 ) & 715 & * e1v(ji,j1 ) * (vb2_b(ji,j1)-tabres(ji,j1)) 716 END DO 717 ENDIF 718 IF (northern_side) THEN 719 DO ji=i1,i2 720 sshn(ji,j2+1) = sshn(ji,j2+1) - rdt * r1_e1e2t(ji,j2+1) & 721 & * e1v(ji,j2 ) * (vb2_b(ji,j2)-tabres(ji,j2)) 722 END DO 723 ENDIF 724 ! 725 #endif 812 726 za1 = 1._wp / REAL(Agrif_rhot(), wp) 813 tabres(i1:i2,j1:j2) = tabres(i1:i2,j1:j2) * r1_e1v(i1:i2,j1:j2)814 727 DO jj=j1,j2 815 728 DO ji=i1,i2 729 ! Update time integrated fluxes also in case of multiply nested grids: 816 730 vb2_i_b(ji,jj) = vb2_i_b(ji,jj) & 817 731 & + za1 * (tabres(ji,jj) - vb2_b(ji,jj)) 818 ! vb2_b_s(ji,jj) = vb2_b(ji,jj) 732 ! Update half step back fluxes: 819 733 vb2_b(ji,jj) = tabres(ji,jj) 820 734 END DO … … 952 866 ! 953 867 !> jc tmp: 954 !DO jk = 1, jpkm1955 !DO jj=j1,j2956 !DO ji=i1,i2957 !IF (tmask(ji,jj,jk)==1) THEN958 !ptab(ji,jj,jk) = ptab(ji,jj,jk) * e3t_0(ji,jj,jk)959 !ELSE960 !ptab(ji,jj,jk) = e3t_0(ji,jj,jk)961 !ENDIF962 !END DO963 !END DO964 !END DO965 ptab(i1:i2,j1:j2,k1:k2) = ptab(i1:i2,j1:j2,k1:k2) * e3t_0(i1:i2,j1:j2,k1:k2)868 DO jk = 1, jpkm1 869 DO jj=j1,j2 870 DO ji=i1,i2 871 IF (tmask(ji,jj,jk)==1) THEN 872 ptab(ji,jj,jk) = ptab(ji,jj,jk) * e3t_0(ji,jj,jk) 873 ELSE 874 ptab(ji,jj,jk) = e3t_0(ji,jj,jk) 875 ENDIF 876 END DO 877 END DO 878 END DO 879 ! ptab(i1:i2,j1:j2,k1:k2) = ptab(i1:i2,j1:j2,k1:k2) * e3t_0(i1:i2,j1:j2,k1:k2) 966 880 !< jc tmp: 967 881 … … 969 883 ! of prognostic variables (needed to update initial state only) 970 884 e3t_a(i1:i2,j1:j2,k1:k2) = e3t_n(i1:i2,j1:j2,k1:k2) 971 ! hdiv b(i1:i2,j1:j2,k1:k2) = e3t_b(i1:i2,j1:j2,k1:k2)885 ! hdivn(i1:i2,j1:j2,k1:k2) = e3t_b(i1:i2,j1:j2,k1:k2) 972 886 973 887 IF ( (.NOT.(lk_agrif_fstep.AND.(neuler==0)).AND.(ln_dynspg_exp)) & -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_sponge.F90
r6140 r8762 46 46 ! 47 47 #if defined SPONGE_TOP 48 timecoeff = REAL( Agrif_NbStepint(), wp ) / Agrif_rhot() 48 !! timecoeff = REAL( Agrif_NbStepint(), wp ) / Agrif_rhot() 49 !! Assume persistence 50 timecoeff = REAL(Agrif_rhot()-1,wp)/REAL(Agrif_rhot()) 49 51 CALL Agrif_sponge 50 52 Agrif_SpecialValue = 0._wp … … 73 75 ! 74 76 IF( before ) THEN 75 tabres(i1:i2,j1:j2,k1:k2,n1:n2) = tr n(i1:i2,j1:j2,k1:k2,n1:n2)77 tabres(i1:i2,j1:j2,k1:k2,n1:n2) = trb(i1:i2,j1:j2,k1:k2,n1:n2) 76 78 ELSE 77 79 !!gm line below use of :,: versus i1:i2,j1:j2 .... strange, not wrong. ===>> to be corrected -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90
r8741 r8762 65 65 66 66 67 SUBROUTINE updateTRC( ptab, i1, i2, j1, j2, k1, k2, n1, n2, before, nb, ndir)67 SUBROUTINE updateTRC( tabres, i1, i2, j1, j2, k1, k2, n1, n2, before ) 68 68 !!---------------------------------------------------------------------- 69 !! *** ROUTINE updateT ***69 !! *** ROUTINE updateTRC *** 70 70 !!---------------------------------------------------------------------- 71 71 INTEGER , INTENT(in ) :: i1, i2, j1, j2, k1, k2, n1, n2 72 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: ptab72 REAL(wp),DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: tabres 73 73 LOGICAL , INTENT(in ) :: before 74 INTEGER, INTENT(in) :: nb, ndir75 74 !! 76 LOGICAL :: western_side, eastern_side, southern_side, northern_side77 75 INTEGER :: ji,jj,jk,jn 78 76 REAL(wp) :: ztb, ztnu, ztno … … 134 132 ENDIF 135 133 ! 136 !137 # if defined DECAL_FEEDBACK138 IF (.NOT.ln_linssh) THEN139 western_side = (nb == 1).AND.(ndir == 1)140 eastern_side = (nb == 1).AND.(ndir == 2)141 southern_side = (nb == 2).AND.(ndir == 1)142 northern_side = (nb == 2).AND.(ndir == 2)143 !144 ! Asselin correction145 IF (.NOT.(lk_agrif_fstep.AND.(neuler==0))) THEN146 IF (southern_side) THEN147 DO jn = n1,n2148 DO jk=k1,k2149 DO ji=i1,i2150 ztb = trb(ji,j1-1,jk,jn) * e3t_b(ji,j1-1,jk) ! fse3t_b prior update should be used151 ztnu = trn(ji,j1-1,jk,jn) * e3t_n(ji,j1-1,jk)152 ztno = trn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk)153 trb(ji,j1-1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &154 & * tmask(ji,j1-1,jk) / e3t_b(ji,j1-1,jk)155 END DO156 ENDDO157 ENDDO158 ENDIF159 IF (northern_side) THEN160 DO jn = n1,n2161 DO jk=k1,k2162 DO ji=i1,i2163 ztb = trb(ji,j2+1,jk,jn) * e3t_b(ji,j2+1,jk) ! fse3t_b prior update should be used164 ztnu = trn(ji,j2+1,jk,jn) * e3t_n(ji,j2+1,jk)165 ztno = trn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk)166 trb(ji,j2+1,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &167 & * tmask(ji,j2+1,jk) / e3t_b(ji,j2+1,jk)168 END DO169 ENDDO170 ENDDO171 ENDIF172 IF (western_side) THEN173 DO jn = n1,n2174 DO jk=k1,k2175 DO jj=j1,j2176 ztb = trb(i1-1,jj,jk,jn) * e3t_b(i1-1,jj,jk) ! fse3t_b prior update should be used177 ztnu = trn(i1-1,jj,jk,jn) * e3t_n(i1-1,jj,jk)178 ztno = trn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk)179 trb(i1-1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &180 & * tmask(i1-1,jj,jk) / e3t_b(i1-1,jj,jk)181 END DO182 ENDDO183 ENDDO184 ENDIF185 IF (eastern_side) THEN186 DO jn = n1,n2187 DO jk=k1,k2188 DO jj=j1,j2189 ztb = trb(i2+1,jj,jk,jn) * e3t_b(i2+1,jj,jk) ! fse3t_b prior update should be used190 ztnu = trn(i2+1,jj,jk,jn) * e3t_n(i2+1,jj,jk)191 ztno = trn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk)192 trb(i2+1,jj,jk,jn) = ( ztb + atfp * ( ztnu - ztno) ) &193 & * tmask(i2+1,jj,jk) / e3t_b(i2+1,jj,jk)194 END DO195 ENDDO196 ENDDO197 ENDIF198 ENDIF ! Asselin correction199 200 IF (southern_side) THEN201 DO jn = n1,n2202 DO jk=k1,k2203 DO ji=i1,i2204 trn(ji,j1-1,jk,jn) = trn(ji,j1-1,jk,jn) * e3t_a(ji,j1-1,jk) / e3t_n(ji,j1-1,jk)205 END DO206 ENDDO207 ENDDO208 ENDIF209 IF (northern_side) THEN210 DO jn = n1,n2211 DO jk=k1,k2212 DO ji=i1,i2213 trn(ji,j2+1,jk,jn) = trn(ji,j2+1,jk,jn) * e3t_a(ji,j2+1,jk) / e3t_n(ji,j2+1,jk)214 END DO215 ENDDO216 ENDDO217 ENDIF218 IF (western_side) THEN219 DO jn = n1,n2220 DO jk=k1,k2221 DO jj=j1,j2222 trn(i1-1,jj,jk,jn) = trn(i1-1,jj,jk,jn) * e3t_a(i1-1,jj,jk) / e3t_n(i1-1,jj,jk)223 END DO224 ENDDO225 ENDDO226 ENDIF227 IF (eastern_side) THEN228 DO jn = n1,n2229 DO jk=k1,k2230 DO jj=j1,j2231 trn(i2+1,jj,jk,jn) = trn(i2+1,jj,jk,jn) * e3t_a(i2+1,jj,jk) / e3t_n(i2+1,jj,jk)232 END DO233 ENDDO234 ENDDO235 ENDIF236 ENDIF237 #endif238 134 ENDIF 239 135 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_user.F90
r8741 r8762 343 343 # if defined key_zdftke 344 344 ! JC remove update because this precludes from perfect restartability 345 !! CALL Agrif_Update_tke( )345 !! CALL Agrif_Update_tke(0) 346 346 # endif 347 347 -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r8741 r8762 1295 1295 #if defined key_agrif 1296 1296 ! Restrict the use of Agrif to the forward case only 1297 !!!IF( .NOT.ln_bt_fw .AND. .NOT.Agrif_Root() ) CALL ctl_stop( 'AGRIF not implemented if ln_bt_fw=.FALSE.' )1297 IF( .NOT.ln_bt_fw .AND. .NOT.Agrif_Root() ) CALL ctl_stop( 'AGRIF not implemented if ln_bt_fw=.FALSE.' ) 1298 1298 #endif 1299 1299 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfgls.F90
r8741 r8762 207 207 DO jj = 2, jpjm1 208 208 DO ji = fs_2, fs_jpim1 ! vector opt. 209 avmu(ji,jj,jk) = 0.5_wp * ( avm(ji,jj,jk) + avm(ji+1,jj,jk) ) & 209 ! avmu(ji,jj,jk) = avmu(ji,jj,jk) & 210 avmu(ji,jj,jk) = 0.5_wp * ( avm(ji,jj,jk) + avm(ji+1,jj,jk) ) * umask(ji,jj,jk) & 210 211 & * ( un(ji,jj,jk-1) - un(ji,jj,jk) ) & 211 212 & * ( ub(ji,jj,jk-1) - ub(ji,jj,jk) ) & 212 213 & / ( e3uw_n(ji,jj,jk) * e3uw_b(ji,jj,jk) ) 213 avmv(ji,jj,jk) = 0.5_wp * ( avm(ji,jj,jk) + avm(ji,jj+1,jk) ) & 214 ! avmv(ji,jj,jk) = avmv(ji,jj,jk) & 215 avmv(ji,jj,jk) = 0.5_wp * ( avm(ji,jj,jk) + avm(ji,jj+1,jk) ) * vmask(ji,jj,jk) & 214 216 & * ( vn(ji,jj,jk-1) - vn(ji,jj,jk) ) & 215 217 & * ( vb(ji,jj,jk-1) - vb(ji,jj,jk) ) & -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r8741 r8762 192 192 ! Update child grid f => parent grid 193 193 !!! JC: suppress update since restartability is not possible in that case 194 !!! IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Tke( 194 !!! IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Tke(kt) ! children only 195 195 #endif 196 196 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/SETTE/sette.sh
r8583 r8762 1114 1114 set_namelist namelist_cfg ln_clobber .true. 1115 1115 set_namelist namelist_cfg ln_read_cfg .true. 1116 set_namelist namelist_cfg ln_linssh .true. 1117 set_namelist namelist_cfg ln_hpg_sco .false. 1118 set_namelist namelist_cfg ln_hpg_zps .true. 1116 set_namelist namelist_cfg ln_linssh .false. 1119 1117 set_namelist namelist_cfg nn_fwb 0 1120 1118 set_namelist namelist_cfg jpni 1 … … 1126 1124 set_namelist 1_namelist_cfg ln_clobber .true. 1127 1125 set_namelist 1_namelist_cfg ln_read_cfg .true. 1128 set_namelist 1_namelist_cfg ln_linssh .true. 1129 set_namelist 1_namelist_cfg ln_hpg_sco .false. 1130 set_namelist 1_namelist_cfg ln_hpg_zps .true. 1126 set_namelist 1_namelist_cfg ln_linssh .false. 1131 1127 if [ ${USING_MPMD} == "yes" ] ; then 1132 1128 set_xio_using_server iodef.xml true … … 1160 1156 set_namelist namelist_cfg ln_clobber .true. 1161 1157 set_namelist namelist_cfg ln_read_cfg .true. 1162 set_namelist namelist_cfg ln_linssh .true. 1163 set_namelist namelist_cfg ln_hpg_sco .false. 1164 set_namelist namelist_cfg ln_hpg_zps .true. 1158 set_namelist namelist_cfg ln_linssh .false. 1165 1159 set_namelist namelist_cfg nn_fwb 0 1166 1160 set_namelist namelist_cfg jpni 2 … … 1197 1191 set_namelist namelist_cfg ln_clobber .true. 1198 1192 set_namelist namelist_cfg ln_read_cfg .true. 1199 set_namelist namelist_cfg ln_linssh .true. 1200 set_namelist namelist_cfg ln_hpg_sco .false. 1201 set_namelist namelist_cfg ln_hpg_zps .true. 1193 set_namelist namelist_cfg ln_linssh .false. 1202 1194 set_namelist namelist_cfg nn_fwb 0 1203 1195 set_namelist namelist_cfg jpni 2 … … 1236 1228 set_namelist namelist_cfg ln_clobber .true. 1237 1229 set_namelist namelist_cfg ln_read_cfg .true. 1238 set_namelist namelist_cfg ln_linssh .true. 1239 set_namelist namelist_cfg ln_hpg_sco .false. 1240 set_namelist namelist_cfg ln_hpg_zps .true. 1230 set_namelist namelist_cfg ln_linssh .false. 1241 1231 set_namelist namelist_cfg nn_fwb 0 1242 1232 set_namelist namelist_cfg jpni 2 … … 1251 1241 set_namelist 1_namelist_cfg ln_clobber .true. 1252 1242 set_namelist 1_namelist_cfg ln_read_cfg .true. 1253 set_namelist 1_namelist_cfg ln_linssh .true. 1254 set_namelist 1_namelist_cfg ln_hpg_sco .false. 1255 set_namelist 1_namelist_cfg ln_hpg_zps .true. 1243 set_namelist 1_namelist_cfg ln_linssh .false. 1256 1244 # 1257 1245 if [ ${USING_MPMD} == "yes" ] ; then … … 1275 1263 set_namelist namelist_cfg ln_clobber .true. 1276 1264 set_namelist namelist_cfg ln_read_cfg .true. 1277 set_namelist namelist_cfg ln_linssh .true. 1278 set_namelist namelist_cfg ln_hpg_sco .false. 1279 set_namelist namelist_cfg ln_hpg_zps .true. 1265 set_namelist namelist_cfg ln_linssh .false. 1280 1266 set_namelist namelist_cfg nn_fwb 0 1281 1267 set_namelist namelist_cfg jpni 2 … … 1291 1277 set_namelist 1_namelist_cfg ln_clobber .true. 1292 1278 set_namelist 1_namelist_cfg ln_read_cfg .true. 1293 set_namelist 1_namelist_cfg ln_linssh .true. 1294 set_namelist 1_namelist_cfg ln_hpg_sco .false. 1295 set_namelist 1_namelist_cfg ln_hpg_zps .true. 1279 set_namelist 1_namelist_cfg ln_linssh .false. 1296 1280 set_namelist namelist_cfg cn_ocerst_in \"O2LP_LONG_00000075_restart\" 1297 1281 set_namelist namelist_ice_cfg cn_icerst_in \"O2LP_LONG_00000075_restart_ice\" … … 1336 1320 set_namelist namelist_cfg ln_clobber .true. 1337 1321 set_namelist namelist_cfg ln_read_cfg .true. 1338 set_namelist namelist_cfg ln_linssh .true. 1339 set_namelist namelist_cfg ln_hpg_sco .false. 1340 set_namelist namelist_cfg ln_hpg_zps .true. 1322 set_namelist namelist_cfg ln_linssh .false. 1341 1323 set_namelist namelist_cfg nn_fwb 0 1342 1324 set_namelist namelist_cfg jpni 4 … … 1349 1331 set_namelist 1_namelist_cfg ln_clobber .true. 1350 1332 set_namelist 1_namelist_cfg ln_read_cfg .true. 1351 set_namelist 1_namelist_cfg ln_linssh .true. 1352 set_namelist 1_namelist_cfg ln_hpg_sco .false. 1353 set_namelist 1_namelist_cfg ln_hpg_zps .true. 1333 set_namelist 1_namelist_cfg ln_linssh .false. 1354 1334 1355 1335 if [ ${USING_MPMD} == "yes" ] ; then … … 1375 1355 set_namelist namelist_cfg ln_clobber .true. 1376 1356 set_namelist namelist_cfg ln_read_cfg .true. 1377 set_namelist namelist_cfg ln_linssh .true. 1378 set_namelist namelist_cfg ln_hpg_sco .false. 1379 set_namelist namelist_cfg ln_hpg_zps .true. 1357 set_namelist namelist_cfg ln_linssh .false. 1380 1358 set_namelist namelist_cfg nn_fwb 0 1381 1359 set_namelist namelist_cfg jpni 2 … … 1388 1366 set_namelist 1_namelist_cfg ln_clobber .true. 1389 1367 set_namelist 1_namelist_cfg ln_read_cfg .true. 1390 set_namelist 1_namelist_cfg ln_linssh .true. 1391 set_namelist 1_namelist_cfg ln_hpg_sco .false. 1392 set_namelist 1_namelist_cfg ln_hpg_zps .true. 1368 set_namelist 1_namelist_cfg ln_linssh .false. 1393 1369 1394 1370 if [ ${USING_MPMD} == "yes" ] ; then -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/SETTE/sette_rpt.sh
r8468 r8762 32 32 cd ${TOOLS_DIR}/REBUILD_NEMO 33 33 #SF echo "REBUILD LONG restart SAS files, without standard output" 34 ./rebuild_nemo -t 4 ../../CONFIG/SAS_LONG/LONG/SAS_00000 100_restart_ice $NPROC > /dev/null 2>&134 ./rebuild_nemo -t 4 ../../CONFIG/SAS_LONG/LONG/SAS_00000240_restart_ice $NPROC > /dev/null 2>&1 35 35 #SF echo "REBUILD SHORT restart SAS files, without standard output" 36 ./rebuild_nemo -t 4 ../../CONFIG/SAS_LONG/SHORT/SAS_00000 100_restart_ice $NPROC >&-36 ./rebuild_nemo -t 4 ../../CONFIG/SAS_LONG/SHORT/SAS_00000240_restart_ice $NPROC >&- 37 37 cd ${SAS_RESTART_DIR}/LONG 38 38 #SF echo "COPY rebuild restart files" 39 cp SAS_00000 100_restart_ice.nc $vdir/$nam/$mach/$dorv/LONG/.40 cp ../SHORT/SAS_00000 100_restart_ice.nc $vdir/$nam/$mach/$dorv/SHORT/.41 42 f1o=$vdir/$nam/$mach/$dorv/LONG/SAS_00000 100_restart_ice.nc43 f2o=$vdir/$nam/$mach/$dorv/SHORT/SAS_00000 100_restart_ice.nc39 cp SAS_00000240_restart_ice.nc $vdir/$nam/$mach/$dorv/LONG/. 40 cp ../SHORT/SAS_00000240_restart_ice.nc $vdir/$nam/$mach/$dorv/SHORT/. 41 42 f1o=$vdir/$nam/$mach/$dorv/LONG/SAS_00000240_restart_ice.nc 43 f2o=$vdir/$nam/$mach/$dorv/SHORT/SAS_00000240_restart_ice.nc 44 44 if [ ! -f $f1o ] && [ ! -f $f2o ] ; then 45 45 printf "%-20s %s\n" $nam " REBUILD SAS restart ice DOES NOT exists; incomplete test";
Note: See TracChangeset
for help on using the changeset viewer.