- Timestamp:
- 2018-11-16T16:16:27+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r9950_old_tidal_mixing/src/NST/agrif_user.F90
r9950 r10324 1 1 #undef UPD_HIGH /* MIX HIGH UPDATE */ 2 2 #if defined key_agrif 3 !!----------------------------------------------------------------------4 !! NEMO/NST 4.0 , NEMO Consortium (2018)5 !! $Id$6 !! Software governed by the CeCILL licence (./LICENSE)7 !!----------------------------------------------------------------------3 !!---------------------------------------------------------------------- 4 !! NEMO/NST 4.0 , NEMO Consortium (2018) 5 !! $Id$ 6 !! Software governed by the CeCILL license (see ./LICENSE) 7 !!---------------------------------------------------------------------- 8 8 SUBROUTINE agrif_user 9 9 END SUBROUTINE agrif_user … … 13 13 14 14 SUBROUTINE Agrif_InitWorkspace 15 !!----------------------------------------------------------------------16 !! *** ROUTINE Agrif_InitWorkspace ***17 !!----------------------------------------------------------------------15 !!---------------------------------------------------------------------- 16 !! *** ROUTINE Agrif_InitWorkspace *** 17 !!---------------------------------------------------------------------- 18 18 USE par_oce 19 19 USE dom_oce 20 20 USE nemogcm 21 21 USE mppini 22 !!23 IMPLICIT NONE 24 !!----------------------------------------------------------------------22 !! 23 IMPLICIT NONE 24 !!---------------------------------------------------------------------- 25 25 ! 26 26 IF( .NOT. Agrif_Root() ) THEN … … 37 37 38 38 SUBROUTINE Agrif_InitValues 39 !!----------------------------------------------------------------------40 !! *** ROUTINE Agrif_InitValues ***41 !!42 !! ** Purpose :: Declaration of variables to be interpolated43 !!----------------------------------------------------------------------39 !!---------------------------------------------------------------------- 40 !! *** ROUTINE Agrif_InitValues *** 41 !! 42 !! ** Purpose :: Declaration of variables to be interpolated 43 !!---------------------------------------------------------------------- 44 44 USE Agrif_Util 45 45 USE oce … … 50 50 !! 51 51 IMPLICIT NONE 52 !!----------------------------------------------------------------------52 !!---------------------------------------------------------------------- 53 53 ! 54 54 CALL nemo_init !* Initializations of each fine grid … … 69 69 70 70 SUBROUTINE Agrif_InitValues_cont_dom 71 !!----------------------------------------------------------------------72 !! *** ROUTINE Agrif_InitValues_cont ***73 !!74 !! ** Purpose :: Declaration of variables to be interpolated75 !!----------------------------------------------------------------------71 !!---------------------------------------------------------------------- 72 !! *** ROUTINE Agrif_InitValues_cont *** 73 !! 74 !! ** Purpose :: Declaration of variables to be interpolated 75 !!---------------------------------------------------------------------- 76 76 USE Agrif_Util 77 77 USE oce … … 84 84 ! 85 85 IMPLICIT NONE 86 !!----------------------------------------------------------------------86 !!---------------------------------------------------------------------- 87 87 ! 88 88 ! Declaration of the type of variable which have to be interpolated … … 94 94 95 95 SUBROUTINE agrif_declare_var_dom 96 !!----------------------------------------------------------------------97 !! *** ROUTINE agrif_declare_var ***98 !!99 !! ** Purpose :: Declaration of variables to be interpolated100 !!----------------------------------------------------------------------96 !!---------------------------------------------------------------------- 97 !! *** ROUTINE agrif_declare_var *** 98 !! 99 !! ** Purpose :: Declaration of variables to be interpolated 100 !!---------------------------------------------------------------------- 101 101 USE agrif_util 102 102 USE par_oce … … 106 106 ! 107 107 INTEGER :: ind1, ind2, ind3 108 !!----------------------------------------------------------------------109 110 ! 1. Declaration of the type of variable which have to be interpolated111 !---------------------------------------------------------------------108 !!---------------------------------------------------------------------- 109 110 ! 1. Declaration of the type of variable which have to be interpolated 111 !--------------------------------------------------------------------- 112 112 ind1 = nbghostcells 113 113 ind2 = 1 + nbghostcells … … 116 116 CALL agrif_declare_variable((/2,1/),(/ind3,ind2/),(/'x','y'/),(/1,1/),(/nlci,nlcj/),e2v_id) 117 117 118 ! 2. Type of interpolation119 !-------------------------118 ! 2. Type of interpolation 119 !------------------------- 120 120 CALL Agrif_Set_bcinterp( e1u_id, interp1=Agrif_linear, interp2=AGRIF_ppm ) 121 121 CALL Agrif_Set_bcinterp( e2v_id, interp1=AGRIF_ppm , interp2=Agrif_linear ) 122 122 123 ! 3. Location of interpolation124 !-----------------------------123 ! 3. Location of interpolation 124 !----------------------------- 125 125 CALL Agrif_Set_bc(e1u_id,(/0,ind1-1/)) 126 126 CALL Agrif_Set_bc(e2v_id,(/0,ind1-1/)) 127 127 128 ! 4. Update type129 !---------------128 ! 4. Update type 129 !--------------- 130 130 # if defined UPD_HIGH 131 131 CALL Agrif_Set_Updatetype(e1u_id,update1 = Agrif_Update_Average, update2=Agrif_Update_Full_Weighting) … … 140 140 141 141 SUBROUTINE Agrif_InitValues_cont 142 !!----------------------------------------------------------------------143 !! *** ROUTINE Agrif_InitValues_cont ***144 !!145 !! ** Purpose :: Declaration of variables to be interpolated146 !!----------------------------------------------------------------------142 !!---------------------------------------------------------------------- 143 !! *** ROUTINE Agrif_InitValues_cont *** 144 !! 145 !! ** Purpose :: Declaration of variables to be interpolated 146 !!---------------------------------------------------------------------- 147 147 USE agrif_oce_update 148 148 USE agrif_oce_interp … … 161 161 LOGICAL :: check_namelist 162 162 CHARACTER(len=15) :: cl_check1, cl_check2, cl_check3, cl_check4 163 !!----------------------------------------------------------------------163 !!---------------------------------------------------------------------- 164 164 165 165 ! 1. Declaration of the type of variable which have to be interpolated … … 293 293 294 294 SUBROUTINE agrif_declare_var 295 !!----------------------------------------------------------------------296 !! *** ROUTINE agrif_declarE_var ***297 !!298 !! ** Purpose :: Declaration of variables to be interpolated299 !!----------------------------------------------------------------------295 !!---------------------------------------------------------------------- 296 !! *** ROUTINE agrif_declarE_var *** 297 !! 298 !! ** Purpose :: Declaration of variables to be interpolated 299 !!---------------------------------------------------------------------- 300 300 USE agrif_util 301 301 USE agrif_oce … … 307 307 ! 308 308 INTEGER :: ind1, ind2, ind3 309 !!----------------------------------------------------------------------309 !!---------------------------------------------------------------------- 310 310 311 311 ! 1. Declaration of the type of variable which have to be interpolated … … 451 451 #if defined key_si3 452 452 SUBROUTINE Agrif_InitValues_cont_ice 453 !!----------------------------------------------------------------------454 !! *** ROUTINE Agrif_InitValues_cont_ice ***455 !!456 !! ** Purpose :: Initialisation of variables to be interpolated for ice457 !!----------------------------------------------------------------------453 !!---------------------------------------------------------------------- 454 !! *** ROUTINE Agrif_InitValues_cont_ice *** 455 !! 456 !! ** Purpose :: Initialisation of variables to be interpolated for ice 457 !!---------------------------------------------------------------------- 458 458 USE Agrif_Util 459 459 USE sbc_oce, ONLY : nn_fsbc ! clem: necessary otherwise Agrif_Parent(nn_fsbc) = nn_fsbc … … 465 465 ! 466 466 IMPLICIT NONE 467 !!----------------------------------------------------------------------467 !!---------------------------------------------------------------------- 468 468 ! 469 469 ! Declaration of the type of variable which have to be interpolated (parent=>child) … … 495 495 496 496 SUBROUTINE agrif_declare_var_ice 497 !!----------------------------------------------------------------------498 !! *** ROUTINE agrif_declare_var_ice ***499 !!500 !! ** Purpose :: Declaration of variables to be interpolated for ice501 !!----------------------------------------------------------------------497 !!---------------------------------------------------------------------- 498 !! *** ROUTINE agrif_declare_var_ice *** 499 !! 500 !! ** Purpose :: Declaration of variables to be interpolated for ice 501 !!---------------------------------------------------------------------- 502 502 USE Agrif_Util 503 503 USE ice … … 507 507 ! 508 508 INTEGER :: ind1, ind2, ind3 509 !!----------------------------------------------------------------------509 !!---------------------------------------------------------------------- 510 510 ! 511 511 ! 1. Declaration of the type of variable which have to be interpolated (parent=>child) … … 553 553 # if defined key_top 554 554 SUBROUTINE Agrif_InitValues_cont_top 555 !!----------------------------------------------------------------------556 !! *** ROUTINE Agrif_InitValues_cont_top ***557 !!558 !! ** Purpose :: Declaration of variables to be interpolated559 !!----------------------------------------------------------------------555 !!---------------------------------------------------------------------- 556 !! *** ROUTINE Agrif_InitValues_cont_top *** 557 !! 558 !! ** Purpose :: Declaration of variables to be interpolated 559 !!---------------------------------------------------------------------- 560 560 USE Agrif_Util 561 561 USE oce … … 575 575 CHARACTER(len=10) :: cl_check1, cl_check2, cl_check3 576 576 LOGICAL :: check_namelist 577 !!----------------------------------------------------------------------577 !!---------------------------------------------------------------------- 578 578 579 579 … … 634 634 635 635 SUBROUTINE agrif_declare_var_top 636 !!----------------------------------------------------------------------637 !! *** ROUTINE agrif_declare_var_top ***638 !!639 !! ** Purpose :: Declaration of TOP variables to be interpolated640 !!----------------------------------------------------------------------636 !!---------------------------------------------------------------------- 637 !! *** ROUTINE agrif_declare_var_top *** 638 !! 639 !! ** Purpose :: Declaration of TOP variables to be interpolated 640 !!---------------------------------------------------------------------- 641 641 USE agrif_util 642 642 USE agrif_oce … … 647 647 ! 648 648 INTEGER :: ind1, ind2, ind3 649 !!----------------------------------------------------------------------649 !!---------------------------------------------------------------------- 650 650 651 651 ! 1. Declaration of the type of variable which have to be interpolated … … 684 684 685 685 SUBROUTINE Agrif_detect( kg, ksizex ) 686 !!----------------------------------------------------------------------687 !! *** ROUTINE Agrif_detect ***688 !!----------------------------------------------------------------------686 !!---------------------------------------------------------------------- 687 !! *** ROUTINE Agrif_detect *** 688 !!---------------------------------------------------------------------- 689 689 INTEGER, DIMENSION(2) :: ksizex 690 690 INTEGER, DIMENSION(ksizex(1),ksizex(2)) :: kg 691 !!----------------------------------------------------------------------691 !!---------------------------------------------------------------------- 692 692 ! 693 693 RETURN … … 697 697 698 698 SUBROUTINE agrif_nemo_init 699 !!----------------------------------------------------------------------700 !! *** ROUTINE agrif_init ***701 !!----------------------------------------------------------------------699 !!---------------------------------------------------------------------- 700 !! *** ROUTINE agrif_init *** 701 !!---------------------------------------------------------------------- 702 702 USE agrif_oce 703 703 USE agrif_ice … … 710 710 INTEGER :: iminspon 711 711 NAMELIST/namagrif/ rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn, ln_chk_bathy 712 !!--------------------------------------------------------------------------------------712 !!-------------------------------------------------------------------------------------- 713 713 ! 714 714 REWIND( numnam_ref ) ! Namelist namagrif in reference namelist : AGRIF zoom … … 747 747 748 748 SUBROUTINE Agrif_InvLoc( indloc, nprocloc, i, indglob ) 749 !!----------------------------------------------------------------------750 !! *** ROUTINE Agrif_InvLoc ***751 !!----------------------------------------------------------------------749 !!---------------------------------------------------------------------- 750 !! *** ROUTINE Agrif_InvLoc *** 751 !!---------------------------------------------------------------------- 752 752 USE dom_oce 753 753 !! … … 755 755 ! 756 756 INTEGER :: indglob, indloc, nprocloc, i 757 !!----------------------------------------------------------------------757 !!---------------------------------------------------------------------- 758 758 ! 759 759 SELECT CASE( i ) … … 768 768 769 769 SUBROUTINE Agrif_get_proc_info( imin, imax, jmin, jmax ) 770 !!----------------------------------------------------------------------771 !! *** ROUTINE Agrif_get_proc_info ***772 !!----------------------------------------------------------------------770 !!---------------------------------------------------------------------- 771 !! *** ROUTINE Agrif_get_proc_info *** 772 !!---------------------------------------------------------------------- 773 773 USE par_oce 774 774 !! … … 777 777 INTEGER, INTENT(out) :: imin, imax 778 778 INTEGER, INTENT(out) :: jmin, jmax 779 !!----------------------------------------------------------------------779 !!---------------------------------------------------------------------- 780 780 ! 781 781 imin = nimppt(Agrif_Procrank+1) ! ????? … … 788 788 789 789 SUBROUTINE Agrif_estimate_parallel_cost(imin, imax,jmin, jmax, nbprocs, grid_cost) 790 !!----------------------------------------------------------------------791 !! *** ROUTINE Agrif_estimate_parallel_cost ***792 !!----------------------------------------------------------------------790 !!---------------------------------------------------------------------- 791 !! *** ROUTINE Agrif_estimate_parallel_cost *** 792 !!---------------------------------------------------------------------- 793 793 USE par_oce 794 794 !! … … 799 799 INTEGER, INTENT(in) :: nbprocs 800 800 REAL(wp), INTENT(out) :: grid_cost 801 !!----------------------------------------------------------------------801 !!---------------------------------------------------------------------- 802 802 ! 803 803 grid_cost = REAL(imax-imin+1,wp)*REAL(jmax-jmin+1,wp) / REAL(nbprocs,wp) … … 809 809 #else 810 810 SUBROUTINE Subcalledbyagrif 811 !!----------------------------------------------------------------------812 !! *** ROUTINE Subcalledbyagrif ***813 !!----------------------------------------------------------------------811 !!---------------------------------------------------------------------- 812 !! *** ROUTINE Subcalledbyagrif *** 813 !!---------------------------------------------------------------------- 814 814 WRITE(*,*) 'Impossible to be here' 815 815 END SUBROUTINE Subcalledbyagrif
Note: See TracChangeset
for help on using the changeset viewer.