New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5868 for branches/2015/dev_r5847_MERCATOR9_solveur_simplification – NEMO

Ignore:
Timestamp:
2015-11-06T19:07:02+01:00 (8 years ago)
Author:
jchanut
Message:

Free surface simplification #1620. Step 1: suppress filtered free surface

Location:
branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM
Files:
2 deleted
41 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/AMM12/EXP00/namelist_cfg

    r5836 r5868  
    347347!----------------------------------------------------------------------- 
    348348!                          !  explicit free surface                     ("key_dynspg_exp") 
    349 !                          !  filtered free surface                     ("key_dynspg_flt") 
    350349!                          !  split-explicit free surface               ("key_dynspg_ts") 
    351350 
     
    408407/ 
    409408!----------------------------------------------------------------------- 
    410 &namsol        !   elliptic solver / island / free surface 
    411 !----------------------------------------------------------------------- 
    412 / 
    413 !----------------------------------------------------------------------- 
    414409&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    415410!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/C1D_PAPA/EXP00/namelist_cfg

    r5836 r5868  
    295295/ 
    296296!----------------------------------------------------------------------- 
    297 &namsol        !   elliptic solver / island / free surface 
    298 !----------------------------------------------------------------------- 
    299    nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    300    nn_nmin     =    210    !  minimum of iterations for the SOR solver 
    301    rn_sor      =  1.96     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    302 / 
    303 !----------------------------------------------------------------------- 
    304297&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    305298!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE/EXP00/namelist_cfg

    r5836 r5868  
    341341/ 
    342342!----------------------------------------------------------------------- 
    343 &namsol        !   elliptic solver / island / free surface 
    344 !----------------------------------------------------------------------- 
    345    nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    346    nn_nmin     =    210    !  minimum of iterations for the SOR solver 
    347    rn_sor      =  1.96     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    348 / 
    349 !----------------------------------------------------------------------- 
    350343&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    351344!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE/cpp_GYRE.fcm

    r5836 r5868  
    1  bld::tool::fppkeys key_dynspg_flt key_zdftke key_iomput key_mpp_mpi 
     1 bld::tool::fppkeys key_dynspg_ts key_zdftke key_iomput key_mpp_mpi 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_BFM/EXP00/namelist_cfg

    r5836 r5868  
    345345/ 
    346346!----------------------------------------------------------------------- 
    347 &namsol        !   elliptic solver / island / free surface 
    348 !----------------------------------------------------------------------- 
    349    nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    350    nn_nmin     =    210    !  minimum of iterations for the SOR solver 
    351    rn_sor      =  1.96     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    352 / 
    353 !----------------------------------------------------------------------- 
    354347&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    355348!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_BFM/cpp_GYRE_BFM.fcm

    r5836 r5868  
    1 bld::tool::fppkeys key_dynspg_flt key_zdftke key_top key_my_trc key_mpp_mpi key_iomput 
     1bld::tool::fppkeys key_dynspg_ts key_zdftke key_top key_my_trc key_mpp_mpi key_iomput 
    22inc $BFMDIR/src/nemo/bfm.fcm 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_PISCES/EXP00/namelist_cfg

    r5836 r5868  
    244244/ 
    245245!----------------------------------------------------------------------- 
    246 &namsol        !   elliptic solver / island / free surface 
    247 !----------------------------------------------------------------------- 
    248    nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    249    nn_nmin     =    210    !  minimum of iterations for the SOR solver 
    250    rn_sor      =  1.96     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    251 / 
    252 !----------------------------------------------------------------------- 
    253246&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    254247!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_PISCES/cpp_GYRE_PISCES.fcm

    r5836 r5868  
    1 bld::tool::fppkeys  key_dynspg_flt key_zdftke key_top key_pisces_reduced key_mpp_mpi 
     1bld::tool::fppkeys  key_dynspg_ts key_zdftke key_top key_pisces_reduced key_mpp_mpi 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_XIOS/EXP00/namelist_cfg

    r5836 r5868  
    300300/ 
    301301!----------------------------------------------------------------------- 
    302 &namsol        !   elliptic solver / island / free surface 
    303 !----------------------------------------------------------------------- 
    304    nn_solv     =      2    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    305    nn_nmin     =    210    !  minimum of iterations for the SOR solver 
    306    rn_sor      =  1.96     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    307 / 
    308 !----------------------------------------------------------------------- 
    309302&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    310303!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/GYRE_XIOS/cpp_GYRE_XIOS.fcm

    r5836 r5868  
    1  bld::tool::fppkeys key_dynspg_flt key_zdftke key_iomput key_mpp_mpi 
     1 bld::tool::fppkeys key_dynspg_ts key_zdftke key_iomput key_mpp_mpi 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist_cfg

    r5836 r5868  
    246246/ 
    247247!----------------------------------------------------------------------- 
    248 &namsol        !   elliptic solver / island / free surface  
    249 !----------------------------------------------------------------------- 
    250 / 
    251 !----------------------------------------------------------------------- 
    252248&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    253249!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist_cfg

    r5836 r5868  
    228228/ 
    229229!----------------------------------------------------------------------- 
    230 &namsol        !   elliptic solver / island / free surface 
    231 !----------------------------------------------------------------------- 
    232 / 
    233 !----------------------------------------------------------------------- 
    234230&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    235231!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM/cpp_ORCA2_LIM.fcm

    r5836 r5868  
    1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_zdftke key_zdfddm key_zdftmx  key_mpp_mpi key_iomput 
     1bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_ts key_zdftke key_zdfddm key_zdftmx  key_mpp_mpi key_iomput 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/1_namelist_cfg

    r5836 r5868  
    245245/ 
    246246!----------------------------------------------------------------------- 
    247 &namsol        !   elliptic solver / island / free surface  
    248 !----------------------------------------------------------------------- 
    249 / 
    250 !----------------------------------------------------------------------- 
    251247&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    252248!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM3/EXP00/namelist_cfg

    r5836 r5868  
    236236/ 
    237237!----------------------------------------------------------------------- 
    238 &namsol        !   elliptic solver / island / free surface 
    239 !----------------------------------------------------------------------- 
    240 / 
    241 !----------------------------------------------------------------------- 
    242238&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    243239!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/1_namelist_cfg

    r5836 r5868  
    1111!!              8 - Verical physics  (namzdf, namzdf_ric, namzdf_tke, namzdf_kpp, namzdf_ddm, namzdf_tmx) 
    1212!!              9 - diagnostics      (namnc4, namtrd, namspr, namflo, namptr, namhsb) 
    13 !!             10 - miscellaneous    (namsol, nammpp, nammpp_dyndist, namctl) 
     13!!             10 - miscellaneous    (nammpp, nammpp_dyndist, namctl) 
    1414!!             11 - Obs & Assim      (namobs, nam_asminc) 
    1515!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    559559!----------------------------------------------------------------------- 
    560560!                          !  explicit free surface                     ("key_dynspg_exp") 
    561 !                          !  filtered free surface                     ("key_dynspg_flt") 
    562561!                          !  split-explicit free surface               ("key_dynspg_ts") 
    563562 
     
    702701!!   nammpp_dyndist    Massively Parallel domain decomposition          ("key_agrif" && "key_mpp_dyndist") 
    703702!!   namctl            Control prints & Benchmark 
    704 !!   namsol            elliptic solver / island / free surface  
    705 !!====================================================================== 
    706 ! 
    707 !----------------------------------------------------------------------- 
    708 &namsol        !   elliptic solver / island / free surface  
    709 !----------------------------------------------------------------------- 
    710    nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    711                            !                   =2 successive-over-relaxation (sor) 
    712    nn_sol_arp  =      0    !  absolute/relative (0/1) precision convergence test 
    713    rn_eps      =  1.e-6    !  absolute precision of the solver 
    714    nn_nmin     =    300    !  minimum of iterations for the SOR solver 
    715    nn_nmax     =    800    !  maximum of iterations for the SOR solver 
    716    nn_nmod     =     10    !  frequency of test for the SOR solver 
    717    rn_resmax   =  1.e-10   !  absolute precision for the SOR solver 
    718    rn_sor      =  1.92     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    719 / 
     703!!====================================================================== 
     704! 
    720705!----------------------------------------------------------------------- 
    721706&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/EXP00/namelist_cfg

    r5836 r5868  
    299299/ 
    300300!----------------------------------------------------------------------- 
    301 &namsol        !   elliptic solver / island / free surface  
    302 !----------------------------------------------------------------------- 
    303 / 
    304 !----------------------------------------------------------------------- 
    305301&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    306302!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM_CFC_C14b/cpp_ORCA2_LIM_CFC_C14b.fcm

    r5836 r5868  
    1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_zdftke key_zdfddm key_zdftmx key_top key_cfc key_c14b key_iomput key_mpp_mpi 
     1bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_ts key_zdftke key_zdfddm key_zdftmx key_top key_cfc key_c14b key_iomput key_mpp_mpi 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist_cfg

    r5836 r5868  
    228228/ 
    229229!----------------------------------------------------------------------- 
    230 &namsol        !   elliptic solver / island / free surface 
    231 !----------------------------------------------------------------------- 
    232 / 
    233 !----------------------------------------------------------------------- 
    234230&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
    235231!----------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/cpp_ORCA2_LIM_PISCES.fcm

    r5836 r5868  
    1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_zdftke key_zdfddm key_zdftmx key_top key_pisces key_mpp_mpi key_iomput 
     1bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_ts key_zdftke key_zdfddm key_zdftmx key_top key_pisces key_mpp_mpi key_iomput 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/ORCA2_SAS_LIM/cpp_ORCA2_SAS_LIM.fcm

    r5836 r5868  
    1  bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_flt key_zdftke key_zdfddm key_zdftmx key_iomput key_mpp_mpi 
     1 bld::tool::fppkeys key_trabbl key_lim2 key_dynspg_ts key_zdftke key_zdfddm key_zdftmx key_iomput key_mpp_mpi 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/SHARED/field_def.xml

    r5836 r5868  
    672672      <field id="ketrd_hpg"     long_name="ke-trend: hydrostatic pressure gradient"          unit="W/s^3"                        /> 
    673673      <field id="ketrd_spg"     long_name="ke-trend: surface     pressure gradient"          unit="W/s^3"                        /> 
    674       <field id="ketrd_spgexp"  long_name="ke-trend: surface pressure gradient (explicit)"   unit="W/s^3"                        /> 
    675       <field id="ketrd_spgflt"  long_name="ke-trend: surface pressure gradient (filter)"     unit="W/s^3"                        /> 
    676       <field id="ssh_flt"       long_name="filtered contribution to ssh (dynspg_flt)"        unit="m"       grid_ref="grid_T_2D" /> 
    677674      <field id="w0"            long_name="surface vertical velocity"                        unit="m/s"     grid_ref="grid_T_2D" /> 
    678675      <field id="pw0_exp"       long_name="surface pressure flux due to ssh"                 unit="W/s^2"   grid_ref="grid_T_2D" /> 
     
    716713     <field id="utrd_hpg"       long_name="i-trend: hydrostatic pressure gradient"          unit="m/s^2"                        /> 
    717714     <field id="utrd_spg"       long_name="i-trend: surface     pressure gradient"          unit="m/s^2"                        /> 
    718      <field id="utrd_spgexp"    long_name="i-trend: surface pressure gradient (explicit)"   unit="m/s^2"                        /> 
    719      <field id="utrd_spgflt"    long_name="i-trend: surface pressure gradient (filtered)"   unit="m/s^2"                        /> 
    720715     <field id="utrd_keg"       long_name="i-trend: KE gradient         or hor. adv."       unit="m/s^2"                        /> 
    721716     <field id="utrd_rvo"       long_name="i-trend: relative  vorticity or metric term"     unit="m/s^2"                        /> 
     
    736731     <field id="vtrd_hpg"       long_name="j-trend: hydrostatic pressure gradient"          unit="m/s^2"                        /> 
    737732     <field id="vtrd_spg"       long_name="j-trend: surface     pressure gradient"          unit="m/s^2"                        /> 
    738      <field id="vtrd_spgexp"    long_name="j-trend: surface pressure gradient (explicit)"   unit="m/s^2"                        /> 
    739      <field id="vtrd_spgflt"    long_name="j-trend: surface pressure gradient (filtered)"   unit="m/s^2"                        /> 
    740733     <field id="vtrd_keg"       long_name="j-trend: KE gradient         or hor. adv."       unit="m/s^2"                        /> 
    741734     <field id="vtrd_rvo"       long_name="j-trend: relative  vorticity or metric term"     unit="m/s^2"                        /> 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/CONFIG/SHARED/namelist_ref

    r5836 r5868  
    1313!!              8 - Verical physics  (namzdf, namzdf_ric, namzdf_tke, namzdf_ddm, namzdf_tmx) 
    1414!!              9 - diagnostics      (namnc4, namtrd, namspr, namflo, namhsb, namsto) 
    15 !!             10 - miscellaneous    (namsol, nammpp, namctl) 
     15!!             10 - miscellaneous    (nammpp, namctl) 
    1616!!             11 - Obs & Assim      (namobs, nam_asminc) 
    1717!!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
     
    870870!----------------------------------------------------------------------- 
    871871!                          !  explicit free surface                     ("key_dynspg_exp") 
    872 !                          !  filtered free surface                     ("key_dynspg_flt") 
    873872!                          !  split-explicit free surface               ("key_dynspg_ts") 
    874873 
     
    10051004!!                  ***  Miscellaneous namelists  *** 
    10061005!!====================================================================== 
    1007 !!   namsol            elliptic solver / island / free surface 
    10081006!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi) 
    10091007!!   namctl            Control prints & Benchmark 
     
    10141012!!====================================================================== 
    10151013! 
    1016 !----------------------------------------------------------------------- 
    1017 &namsol        !   elliptic solver / island / free surface 
    1018 !----------------------------------------------------------------------- 
    1019    nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg) 
    1020                            !                   =2 successive-over-relaxation (sor) 
    1021    nn_sol_arp  =      0    !  absolute/relative (0/1) precision convergence test 
    1022    rn_eps      =  1.e-6    !  absolute precision of the solver 
    1023    nn_nmin     =    300    !  minimum of iterations for the SOR solver 
    1024    nn_nmax     =    800    !  maximum of iterations for the SOR solver 
    1025    nn_nmod     =     10    !  frequency of test for the SOR solver 
    1026    rn_resmax   =  1.e-10   !  absolute precision for the SOR solver 
    1027    rn_sor      =  1.92     !  optimal coefficient for SOR solver (to be adjusted with the domain) 
    1028 / 
    10291014!----------------------------------------------------------------------- 
    10301015&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90

    r5656 r5868  
    2222   USE oce 
    2323   USE dom_oce       
    24    USE sol_oce 
    2524   USE agrif_oce 
    2625   USE phycst 
     
    3837 
    3938   PUBLIC   Agrif_tra, Agrif_dyn, Agrif_ssh, Agrif_dyn_ts, Agrif_ssh_ts, Agrif_dta_ts 
    40    PUBLIC   interpun, interpvn, interpun2d, interpvn2d  
     39   PUBLIC   interpun, interpvn 
    4140   PUBLIC   interptsn,  interpsshn 
    4241   PUBLIC   interpunb, interpvnb, interpub2b, interpvb2b 
     
    9594      CALL Agrif_Bc_variable(un_interp_id,procname=interpun) 
    9695      CALL Agrif_Bc_variable(vn_interp_id,procname=interpvn) 
    97  
    98 #if defined key_dynspg_flt 
    99       CALL Agrif_Bc_variable(e1u_id,calledweight=1., procname=interpun2d) 
    100       CALL Agrif_Bc_variable(e2v_id,calledweight=1., procname=interpvn2d) 
    101 #endif 
    10296 
    10397      Agrif_UseSpecialValue = .FALSE. 
     
    126120 
    127121      IF((nbondi == -1).OR.(nbondi == 2)) THEN 
    128 #if defined key_dynspg_flt 
    129          DO jk=1,jpkm1 
    130             DO jj=j1,j2 
    131                ua(2,jj,jk) = (ua(2,jj,jk) - z2dt * znugdt * laplacu(2,jj))*umask(2,jj,jk) 
    132             END DO 
    133          END DO 
    134  
    135          spgu(2,:)=0. 
    136  
    137          DO jk=1,jpkm1 
    138             DO jj=1,jpj 
    139                spgu(2,jj)=spgu(2,jj)+fse3u(2,jj,jk)*ua(2,jj,jk) 
    140             END DO 
    141          END DO 
    142  
    143          DO jj=1,jpj 
    144             IF (umask(2,jj,1).NE.0.) THEN 
    145                spgu(2,jj)=spgu(2,jj)/hu(2,jj) 
    146             ENDIF 
    147          END DO 
    148 #else 
    149122         spgu(2,:) = ua_b(2,:) 
    150 #endif 
    151123 
    152124         DO jk=1,jpkm1 
     
    198170 
    199171      IF((nbondi == 1).OR.(nbondi == 2)) THEN 
    200 #if defined key_dynspg_flt 
    201          DO jk=1,jpkm1 
    202             DO jj=j1,j2 
    203                ua(nlci-2,jj,jk) = (ua(nlci-2,jj,jk)- z2dt * znugdt * laplacu(nlci-2,jj))*umask(nlci-2,jj,jk) 
    204             END DO 
    205          END DO 
    206          spgu(nlci-2,:)=0. 
    207          DO jk=1,jpkm1 
    208             DO jj=1,jpj 
    209                spgu(nlci-2,jj)=spgu(nlci-2,jj)+fse3u(nlci-2,jj,jk)*ua(nlci-2,jj,jk) 
    210             ENDDO 
    211          ENDDO 
    212          DO jj=1,jpj 
    213             IF (umask(nlci-2,jj,1).NE.0.) THEN 
    214                spgu(nlci-2,jj)=spgu(nlci-2,jj)/hu(nlci-2,jj) 
    215             ENDIF 
    216          END DO 
    217 #else 
    218172         spgu(nlci-2,:) = ua_b(nlci-2,:) 
    219 #endif 
     173 
    220174         DO jk=1,jpkm1 
    221175            DO jj=j1,j2 
     
    266220 
    267221      IF((nbondj == -1).OR.(nbondj == 2)) THEN 
    268  
    269 #if defined key_dynspg_flt 
    270          DO jk=1,jpkm1 
    271             DO ji=1,jpi 
    272                va(ji,2,jk) = (va(ji,2,jk) - z2dt * znugdt * laplacv(ji,2))*vmask(ji,2,jk) 
    273             END DO 
    274          END DO 
    275  
    276          spgv(:,2)=0. 
    277  
    278          DO jk=1,jpkm1 
    279             DO ji=1,jpi 
    280                spgv(ji,2)=spgv(ji,2)+fse3v(ji,2,jk)*va(ji,2,jk) 
    281             END DO 
    282          END DO 
    283  
    284          DO ji=1,jpi 
    285             IF (vmask(ji,2,1).NE.0.) THEN 
    286                spgv(ji,2)=spgv(ji,2)/hv(ji,2) 
    287             ENDIF 
    288          END DO 
    289 #else 
    290222         spgv(:,2)=va_b(:,2) 
    291 #endif 
    292223 
    293224         DO jk=1,jpkm1 
     
    341272      IF((nbondj == 1).OR.(nbondj == 2)) THEN 
    342273 
    343 #if defined key_dynspg_flt 
    344          DO jk=1,jpkm1 
    345             DO ji=1,jpi 
    346                va(ji,nlcj-2,jk) = (va(ji,nlcj-2,jk)-z2dt * znugdt * laplacv(ji,nlcj-2))*vmask(ji,nlcj-2,jk) 
    347             END DO 
    348          END DO 
    349  
    350  
    351          spgv(:,nlcj-2)=0. 
    352  
    353          DO jk=1,jpkm1 
    354             DO ji=1,jpi 
    355                spgv(ji,nlcj-2)=spgv(ji,nlcj-2)+fse3v(ji,nlcj-2,jk)*va(ji,nlcj-2,jk) 
    356             END DO 
    357          END DO 
    358  
    359          DO ji=1,jpi 
    360             IF (vmask(ji,nlcj-2,1).NE.0.) THEN 
    361                spgv(ji,nlcj-2)=spgv(ji,nlcj-2)/hv(ji,nlcj-2) 
    362             ENDIF 
    363          END DO 
    364  
    365 #else 
    366274         spgv(:,nlcj-2)=va_b(:,nlcj-2) 
    367 #endif 
    368275 
    369276         DO jk=1,jpkm1 
     
    828735   END SUBROUTINE interpun 
    829736 
    830  
    831    SUBROUTINE interpun2d(ptab,i1,i2,j1,j2,before) 
    832       !!--------------------------------------------- 
    833       !!   *** ROUTINE interpun *** 
    834       !!---------------------------------------------     
    835       ! 
    836       INTEGER, INTENT(in) :: i1,i2,j1,j2 
    837       REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: ptab 
    838       LOGICAL, INTENT(in) :: before 
    839       ! 
    840       INTEGER :: ji,jj 
    841       REAL(wp) :: ztref 
    842       REAL(wp) :: zrhoy  
    843       !!---------------------------------------------     
    844       ! 
    845       ztref = 1. 
    846  
    847       IF (before) THEN  
    848          DO jj=j1,j2 
    849             DO ji=i1,MIN(i2,nlci-1) 
    850                ptab(ji,jj) = e2u(ji,jj) * ((gcx(ji+1,jj) - gcx(ji,jj))/e1u(ji,jj))  
    851             END DO 
    852          END DO 
    853       ELSE 
    854          zrhoy = Agrif_Rhoy() 
    855          DO jj=j1,j2 
    856             laplacu(i1:i2,jj) = ztref * (ptab(i1:i2,jj)/(zrhoy*e2u(i1:i2,jj))) !*umask(i1:i2,jj,1) 
    857          END DO 
    858       ENDIF 
    859       !  
    860    END SUBROUTINE interpun2d 
    861  
    862  
    863737   SUBROUTINE interpvn(ptab,i1,i2,j1,j2,k1,k2, before) 
    864738      !!--------------------------------------------- 
     
    895769      !         
    896770   END SUBROUTINE interpvn 
    897  
    898    SUBROUTINE interpvn2d(ptab,i1,i2,j1,j2,before) 
    899       !!--------------------------------------------- 
    900       !!   *** ROUTINE interpvn *** 
    901       !!---------------------------------------------     
    902       ! 
    903       INTEGER, INTENT(in) :: i1,i2,j1,j2 
    904       REAL(wp), DIMENSION(i1:i2,j1:j2), INTENT(inout) :: ptab 
    905       LOGICAL, INTENT(in) :: before 
    906       ! 
    907       INTEGER :: ji,jj 
    908       REAL(wp) :: zrhox  
    909       REAL(wp) :: ztref 
    910       !!---------------------------------------------     
    911       !  
    912       ztref = 1.     
    913       IF (before) THEN  
    914          !interpv entre 1 et k2 et interpv2d en jpkp1 
    915          DO jj=j1,MIN(j2,nlcj-1) 
    916             DO ji=i1,i2 
    917                ptab(ji,jj) = e1v(ji,jj) * ((gcx(ji,jj+1) - gcx(ji,jj))/e2v(ji,jj)) * vmask(ji,jj,1) 
    918             END DO 
    919          END DO 
    920       ELSE            
    921          zrhox = Agrif_Rhox() 
    922          DO ji=i1,i2 
    923             laplacv(ji,j1:j2) = ztref * (ptab(ji,j1:j2)/(zrhox*e1v(ji,j1:j2))) 
    924          END DO 
    925       ENDIF 
    926       !       
    927    END SUBROUTINE interpvn2d 
    928771 
    929772   SUBROUTINE interpunb(ptab,i1,i2,j1,j2,before,nb,ndir) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/NST_SRC/agrif_top_interp.F90

    r5656 r5868  
    44   USE oce 
    55   USE dom_oce       
    6    USE sol_oce 
    76   USE agrif_oce 
    87   USE agrif_top_sponge 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r5656 r5868  
    104104   USE dom_oce 
    105105   USE nemogcm 
    106    USE sol_oce 
    107106   USE in_out_manager 
    108107   USE agrif_opa_update 
     
    172171   USE dom_oce 
    173172   USE nemogcm 
    174    USE sol_oce 
    175173   USE lib_mpp 
    176174   USE in_out_manager 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90

    r5836 r5868  
    3434   USE zdfmxl             ! Mixed layer depth 
    3535   USE dom_oce, ONLY :   ndastp 
    36    USE sol_oce, ONLY :   gcx   ! Solver variables defined in memory 
    3736   USE in_out_manager     ! I/O manager 
    3837   USE iom                ! I/O module 
     
    114113            CALL iom_rstput( kt, nitbkg_r, inum, 'en'     , en                ) 
    115114#endif 
    116             CALL iom_rstput( kt, nitbkg_r, inum, 'gcx'    , gcx               ) 
    117115            ! 
    118116            CALL iom_close( inum ) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

    r4689 r5868  
    3535   PRIVATE 
    3636 
    37    PUBLIC   bdy_dyn     ! routine called in dynspg_flt (if lk_dynspg_flt) or  
    38                         ! dyn_nxt (if lk_dynspg_ts or lk_dynspg_exp) 
     37   PUBLIC   bdy_dyn    ! routine called in dyn_nxt 
    3938 
    4039#  include "domzgr_substitute.h90" 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90

    r5836 r5868  
    1010   !!            3.4  !  2011     (D. Storkey) rewrite in preparation for OBC-BDY merge 
    1111   !!---------------------------------------------------------------------- 
    12 #if   defined key_bdy   &&   defined key_dynspg_flt 
     12#if   defined key_bdy 
    1313   !!---------------------------------------------------------------------- 
    14    !!   'key_bdy'            AND      unstructured open boundary conditions 
    15    !!   'key_dynspg_flt'                              filtered free surface 
     14   !!   'key_bdy'      unstructured open boundary conditions 
    1615   !!---------------------------------------------------------------------- 
    1716   USE oce             ! ocean dynamics and tracers  
     
    3029   PRIVATE 
    3130 
    32    PUBLIC bdy_vol        ! routine called by dynspg_flt.h90 
     31   PUBLIC bdy_vol       
    3332 
    3433   !! * Substitutions 
     
    4544      !!                      ***  ROUTINE bdyvol  *** 
    4645      !! 
    47       !! ** Purpose :   This routine is called in dynspg_flt to control  
    48       !!      the volume of the system. A correction velocity is calculated 
     46      !! ** Purpose :   This routine controls the volume of the system.  
     47      !!      A correction velocity is calculated 
    4948      !!      to correct the total transport through the unstructured OBC.  
    5049      !!      The total depth used is constant (H0) to be consistent with the  
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r5836 r5868  
    3030   USE zdf_oce         ! ocean vertical physics 
    3131   USE ldftra          ! lateral physics: eddy diffusivity coef. 
    32    USE sol_oce         ! solver variables 
    3332   USE sbc_oce         ! Surface boundary condition: ocean fields 
    3433   USE sbc_ice         ! Surface boundary condition: ice fields 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r5836 r5868  
    3535   USE dtauvd          ! data: U & V current             (dta_uvd routine) 
    3636   USE domvvl          ! varying vertical mesh 
    37    USE dynspg_oce      ! pressure gradient schemes 
    38    USE dynspg_flt      ! filtered free surface 
    39    USE sol_oce         ! ocean solver variables 
    4037   ! 
    4138   USE in_out_manager  ! I/O manager 
     
    133130      ENDIF 
    134131      ! 
    135       IF( lk_agrif ) THEN                  ! read free surface arrays in restart file 
    136          IF( ln_rstart ) THEN 
    137             IF( lk_dynspg_flt )  THEN      ! read or initialize the following fields 
    138                !                           ! gcx, gcxb for agrif_opa_init 
    139                IF( sol_oce_alloc()  > 0 )   CALL ctl_stop('agrif sol_oce_alloc: allocation of arrays failed') 
    140                CALL flt_rst( nit000, 'READ' ) 
    141             ENDIF 
    142          ENDIF                             ! explicit case not coded yet with AGRIF 
    143       ENDIF 
    144       ! 
    145132      !  
    146133      ! Initialize "now" and "before" barotropic velocities: 
     
    445432      !!                 p=integral [ rau*g dz ] 
    446433      !!---------------------------------------------------------------------- 
    447       USE dynspg          ! surface pressure gradient             (dyn_spg routine) 
    448434      USE divhor          ! hor. divergence                       (div_hor routine) 
    449435      USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    450436      ! 
    451437      INTEGER ::   ji, jj, jk        ! dummy loop indices 
    452       INTEGER ::   indic             ! ??? 
    453438      REAL(wp) ::   zmsv, zphv, zmsu, zphu, zalfg     ! temporary scalars 
    454439      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprn 
     
    517502      vb(:,:,:) = vn(:,:,:) 
    518503       
    519       ! WARNING !!!!! 
    520       ! after initializing u and v, we need to calculate the initial streamfunction bsf. 
    521       ! Otherwise, only the trend will be computed and the model will blow up (inconsistency). 
    522       ! to do that, we call dyn_spg with a special trick: 
    523       ! we fill ua and va with the velocities divided by dt, and the streamfunction will be brought to the 
    524       ! right value assuming the velocities have been set up in one time step. 
    525       ! we then set bsfd to zero (first guess for next step is d(psi)/dt = 0.) 
    526       !  sets up s false trend to calculate the barotropic streamfunction. 
    527  
    528       ua(:,:,:) = ub(:,:,:) / rdt 
    529       va(:,:,:) = vb(:,:,:) / rdt 
    530  
    531       ! calls dyn_spg. we assume euler time step, starting from rest. 
    532       indic = 0 
    533       CALL dyn_spg( nit000, indic )       ! surface pressure gradient 
    534       ! 
    535       ! the new velocity is ua*rdt 
    536       ! 
    537       CALL lbc_lnk( ua, 'U', -1. ) 
    538       CALL lbc_lnk( va, 'V', -1. ) 
    539  
    540       ub(:,:,:) = ua(:,:,:) * rdt 
    541       vb(:,:,:) = va(:,:,:) * rdt 
    542       ua(:,:,:) = 0.e0 
    543       va(:,:,:) = 0.e0 
    544       un(:,:,:) = ub(:,:,:) 
    545       vn(:,:,:) = vb(:,:,:) 
    546504      ! 
    547505!!gm  Check  here call to div_hor should not be necessary 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynnxt.F90

    r5643 r5868  
    7878      !!             (lk_vvl=T), the leap-frog is applied on thickness weighted 
    7979      !!             velocity. 
    80       !!             Note also that in filtered free surface (lk_dynspg_flt=T), 
    81       !!             the time stepping has already been done in dynspg module 
    8280      !! 
    8381      !!              * Apply lateral boundary conditions on after velocity  
     
    10199      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    102100      INTEGER  ::   iku, ikv     ! local integers 
    103 #if ! defined key_dynspg_flt 
    104101      REAL(wp) ::   z2dt         ! temporary scalar 
    105 #endif 
    106102      REAL(wp) ::   zue3a, zue3n, zue3b, zuf, zec      ! local scalars 
    107103      REAL(wp) ::   zve3a, zve3n, zve3b, zvf, z1_2dt   !   -      - 
     
    120116         IF(lwp) WRITE(numout,*) '~~~~~~~' 
    121117      ENDIF 
    122  
    123 #if defined key_dynspg_flt 
    124       ! 
    125       ! Next velocity :   Leap-frog time stepping already done in dynspg_flt.F routine 
    126       ! ------------- 
    127  
    128       ! Update after velocity on domain lateral boundaries      (only local domain required) 
    129       ! -------------------------------------------------- 
    130       CALL lbc_lnk( ua, 'U', -1. )         ! local domain boundaries 
    131       CALL lbc_lnk( va, 'V', -1. )  
    132       ! 
    133 #else 
    134118 
    135119# if defined key_dynspg_exp 
     
    201185      CALL Agrif_dyn( kt )             !* AGRIF zoom boundaries 
    202186# endif 
    203 #endif 
    204187 
    205188      IF( l_trddyn ) THEN             ! prepare the atf trend computation + some diagnostics 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90

    r5836 r5868  
    2121   USE dynspg_exp     ! surface pressure gradient     (dyn_spg_exp routine) 
    2222   USE dynspg_ts      ! surface pressure gradient     (dyn_spg_ts  routine) 
    23    USE dynspg_flt     ! surface pressure gradient     (dyn_spg_flt routine) 
    2423   USE dynadv         ! dynamics: vector invariant versus flux form 
    2524   USE dynhpg, ONLY: ln_dynhpg_imp 
     
    3231   USE in_out_manager ! I/O manager 
    3332   USE lib_mpp        ! MPP library 
    34    USE solver         ! solver initialization 
    3533   USE wrk_nemo       ! Memory Allocation 
    3634   USE timing         ! Timing 
     
    5553CONTAINS 
    5654 
    57    SUBROUTINE dyn_spg( kt, kindic ) 
     55   SUBROUTINE dyn_spg( kt ) 
    5856      !!---------------------------------------------------------------------- 
    5957      !!                  ***  ROUTINE dyn_spg  *** 
     
    8078      ! 
    8179      INTEGER, INTENT(in   ) ::   kt       ! ocean time-step index 
    82       INTEGER, INTENT(  out) ::   kindic   ! solver flag 
    8380      ! 
    8481      INTEGER  ::   ji, jj, jk                             ! dummy loop indices 
     
    171168      CASE (  0 )   ;   CALL dyn_spg_exp( kt )              ! explicit 
    172169      CASE (  1 )   ;   CALL dyn_spg_ts ( kt )              ! time-splitting 
    173       CASE (  2 )   ;   CALL dyn_spg_flt( kt, kindic )      ! filtered 
    174170      !                                                     
    175171      END SELECT 
    176172      !                     
    177173      IF( l_trddyn )   THEN                      ! save the surface pressure gradient trends for further diagnostics 
    178          SELECT CASE ( nspg ) 
    179          CASE ( 0, 1 ) 
    180             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    181             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    182          CASE( 2 ) 
    183             z2dt = 2. * rdt 
    184             IF( neuler == 0 .AND. kt == nit000 )   z2dt = rdt 
    185             ztrdu(:,:,:) = ( ua(:,:,:) - ub(:,:,:) ) / z2dt - ztrdu(:,:,:) 
    186             ztrdv(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) / z2dt - ztrdv(:,:,:) 
    187          END SELECT 
     174         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     175         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    188176         CALL trd_dyn( ztrdu, ztrdv, jpdyn_spg, kt ) 
    189177         ! 
     
    217205         WRITE(numout,*) '     Explicit free surface                  lk_dynspg_exp = ', lk_dynspg_exp 
    218206         WRITE(numout,*) '     Free surface with time splitting       lk_dynspg_ts  = ', lk_dynspg_ts 
    219          WRITE(numout,*) '     Filtered free surface cst volume       lk_dynspg_flt = ', lk_dynspg_flt 
    220207      ENDIF 
    221208 
     
    233220      IF(lk_dynspg_exp)   ioptio = ioptio + 1 
    234221      IF(lk_dynspg_ts )   ioptio = ioptio + 1 
    235       IF(lk_dynspg_flt)   ioptio = ioptio + 1 
    236222      ! 
    237223      IF(  ioptio > 1  .OR. ( ioptio == 0 .AND. .NOT. lk_c1d ) )   & 
     
    242228      IF( lk_dynspg_exp)   nspg =  0 
    243229      IF( lk_dynspg_ts )   nspg =  1 
    244       IF( lk_dynspg_flt)   nspg =  2 
     230 
    245231      ! 
    246232      IF(lwp) THEN 
     
    248234         IF( nspg ==  0 )   WRITE(numout,*) '     explicit free surface' 
    249235         IF( nspg ==  1 )   WRITE(numout,*) '     free surface with time splitting scheme' 
    250          IF( nspg ==  2 )   WRITE(numout,*) '     filtered free surface' 
    251       ENDIF 
    252  
    253 #if defined key_dynspg_flt 
    254       CALL solver_init( nit000 )   ! Elliptic solver initialisation 
    255 #endif 
     236      ENDIF 
    256237      !               ! Control of hydrostatic pressure choice 
    257238      IF( lk_dynspg_ts .AND. ln_dynhpg_imp )   CALL ctl_stop( 'Semi-implicit hpg not compatible with time splitting' ) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_oce.F90

    r5836 r5868  
    2626#else 
    2727   LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_ts  = .FALSE.  !: Free surface with time splitting flag 
    28 #endif 
    29 #if   defined key_dynspg_flt 
    30    LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_flt = .TRUE.   !: Filtered free surface cst volume flag 
    31 #else 
    32    LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_flt = .FALSE.  !: Filtered free surface cst volume flag 
    3328#endif 
    3429  !                                                                         !!! Time splitting scheme (key_dynspg_ts)  
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trd_oce.F90

    r5215 r5868  
    7171   INTEGER, PUBLIC, PARAMETER ::   jpdyn_bfri = 12     !: implicit bottom friction (ln_bfrimp=.TRUE.) 
    7272   INTEGER, PUBLIC, PARAMETER ::   jpdyn_ken  = 13     !: use for calculation of KE 
    73    INTEGER, PUBLIC, PARAMETER ::   jpdyn_spgflt  = 14  !: filter contribution to surface pressure gradient (spg_flt) 
    74    INTEGER, PUBLIC, PARAMETER ::   jpdyn_spgexp  = 15  !: explicit contribution to surface pressure gradient (spg_flt) 
    7573   ! 
    7674   !!---------------------------------------------------------------------- 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trddyn.F90

    r5215 r5868  
    113113      CASE( jpdyn_spg )   ;   CALL iom_put( "utrd_spg", putrd )    ! surface pressure gradient 
    114114                              CALL iom_put( "vtrd_spg", pvtrd ) 
    115       CASE( jpdyn_spgexp );   CALL iom_put( "utrd_spgexp", putrd ) ! surface pressure gradient (explicit) 
    116                               CALL iom_put( "vtrd_spgexp", pvtrd ) 
    117       CASE( jpdyn_spgflt );   CALL iom_put( "utrd_spgflt", putrd ) ! surface pressure gradient (filtered) 
    118                               CALL iom_put( "vtrd_spgflt", pvtrd ) 
    119115      CASE( jpdyn_pvo )   ;   CALL iom_put( "utrd_pvo", putrd )    ! planetary vorticity 
    120116                              CALL iom_put( "vtrd_pvo", pvtrd ) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90

    r5836 r5868  
    120120         CASE( jpdyn_hpg )   ;   CALL iom_put( "ketrd_hpg", zke )    ! hydrostatic pressure gradient 
    121121         CASE( jpdyn_spg )   ;   CALL iom_put( "ketrd_spg", zke )    ! surface pressure gradient 
    122          CASE( jpdyn_spgexp );   CALL iom_put( "ketrd_spgexp", zke ) ! surface pressure gradient (explicit) 
    123          CASE( jpdyn_spgflt );   CALL iom_put( "ketrd_spgflt", zke ) ! surface pressure gradient (filter) 
    124122         CASE( jpdyn_pvo )   ;   CALL iom_put( "ketrd_pvo", zke )    ! planetary vorticity 
    125123         CASE( jpdyn_rvo )   ;   CALL iom_put( "ketrd_rvo", zke )    ! relative  vorticity     (or metric term) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/step.F90

    r5836 r5868  
    214214#endif 
    215215                                  CALL dyn_hpg( kstp )         ! horizontal gradient of Hydrostatic pressure 
    216                                   CALL dyn_spg( kstp, indic )  ! surface pressure gradient 
     216                                  CALL dyn_spg( kstp )         ! surface pressure gradient 
    217217 
    218218                                  ua_sv(:,:,:) = ua(:,:,:)     ! Save trends (barotropic trend has been fully updated at this stage) 
     
    329329                               CALL dyn_bfr( kstp )         ! bottom friction 
    330330                               CALL dyn_zdf( kstp )         ! vertical diffusion 
    331                                CALL dyn_spg( kstp, indic )  ! surface pressure gradient 
     331                               CALL dyn_spg( kstp )         ! surface pressure gradient 
    332332      ENDIF 
    333333                               CALL dyn_nxt( kstp )         ! lateral velocity at next time step 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/OPA_SRC/stpctl.F90

    r3294 r5868  
    1616   USE oce             ! ocean dynamics and tracers variables 
    1717   USE dom_oce         ! ocean space and time domain variables  
    18    USE sol_oce         ! ocean space and time domain variables  
    1918   USE in_out_manager  ! I/O manager 
    2019   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2120   USE lib_mpp         ! distributed memory computing 
    22    USE dynspg_oce      ! pressure gradient schemes  
    2321   USE c1d             ! 1D vertical configuration 
    2422 
     
    4341      !! ** Method  : - Save the time step in numstp 
    4442      !!              - Print it each 50 time steps 
    45       !!              - Print solver statistics in numsol  
    46       !!              - Stop the run IF problem for the solver ( indec < 0 ) 
     43      !!              - Stop the run IF problem ( indic < 0 ) 
    4744      !! 
    4845      !! ** Actions :   'time.step' file containing the last ocean time-step 
     
    5047      !!---------------------------------------------------------------------- 
    5148      INTEGER, INTENT( in ) ::   kt         ! ocean time-step index 
    52       INTEGER, INTENT( inout ) ::   kindic  ! indicator of solver convergence 
     49      INTEGER, INTENT( inout ) ::   kindic  ! error indicator 
    5350      !! 
    5451      INTEGER  ::   ji, jj, jk              ! dummy loop indices 
     
    143140      IF( lk_c1d )  RETURN          ! No log file in case of 1D vertical configuration 
    144141 
    145       ! log file (solver or ssh statistics) 
    146       ! -------- 
    147       IF( lk_dynspg_flt ) THEN      ! elliptic solver statistics (if required) 
    148          ! 
    149          IF(lwp) WRITE(numsol,9200) kt, niter, res, SQRT(epsr)/eps       ! Solver 
    150          ! 
    151          IF( kindic < 0 .AND. zsmin > 0.e0 .AND. zumax <= 20.e0 ) THEN   ! create a abort file if problem found  
    152             IF(lwp) THEN 
    153                WRITE(numout,*) ' stpctl: the elliptic solver DO not converge or explode' 
    154                WRITE(numout,*) ' ====== ' 
    155                WRITE(numout,9200) kt, niter, res, sqrt(epsr)/eps 
    156                WRITE(numout,*) 
    157                WRITE(numout,*) ' stpctl: output of last fields' 
    158                WRITE(numout,*) ' ======  ' 
    159             ENDIF 
    160          ENDIF 
    161          ! 
    162       ELSE                                   !* ssh statistics (and others...) 
    163          IF( kt == nit000 .AND. lwp ) THEN   ! open ssh statistics file (put in solver.stat file) 
    164             CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
    165          ENDIF 
    166          ! 
    167          zssh2 = SUM( sshn(:,:) * sshn(:,:) * tmask_i(:,:) ) 
    168          IF( lk_mpp )   CALL mpp_sum( zssh2 )      ! sum over the global domain 
    169          ! 
    170          IF(lwp) WRITE(numsol,9300) kt, zssh2, zumax, zsmin      ! ssh statistics 
    171          ! 
     142      ! log file (ssh statistics) 
     143      ! --------                                   !* ssh statistics (and others...) 
     144      IF( kt == nit000 .AND. lwp ) THEN   ! open ssh statistics file (put in solver.stat file) 
     145         CALL ctl_opn( numsol, 'solver.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
    172146      ENDIF 
     147      ! 
     148      zssh2 = SUM( sshn(:,:) * sshn(:,:) * tmask_i(:,:) ) 
     149      IF( lk_mpp )   CALL mpp_sum( zssh2 )      ! sum over the global domain 
     150      ! 
     151      IF(lwp) WRITE(numsol,9300) kt, zssh2, zumax, zsmin      ! ssh statistics 
     152      ! 
    173153 
    1741549200  FORMAT('it:', i8, ' iter:', i4, ' r: ',e16.10, ' b: ',e16.10 ) 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/SAS_SRC/diawri.F90

    r5836 r5868  
    2626   USE dom_oce         ! ocean space and time domain 
    2727   USE zdf_oce         ! ocean vertical physics 
    28    USE sol_oce         ! solver variables 
    2928   USE sbc_oce         ! Surface boundary condition: ocean fields 
    3029   USE sbc_ice         ! Surface boundary condition: ice fields 
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/SETTE/sette.sh

    r5840 r5868  
    168168    set_namelist namelist_cfg ln_clobber .true. 
    169169    set_namelist namelist_cfg nn_fwb 0 
    170     set_namelist namelist_cfg nn_solv 2 
    171170    set_namelist namelist_cfg jpni 2 
    172171    set_namelist namelist_cfg jpnj 2 
     
    192191    set_namelist namelist_cfg ln_clobber .true. 
    193192    set_namelist namelist_cfg nn_fwb 0 
    194     set_namelist namelist_cfg nn_solv 2 
    195193    set_namelist namelist_cfg jpni 2 
    196194    set_namelist namelist_cfg jpnj 2 
     
    238236    set_namelist namelist_cfg ln_ctl .false. 
    239237    set_namelist namelist_cfg ln_clobber .true. 
    240     set_namelist namelist_cfg nn_solv 2 
    241238    set_namelist namelist_cfg jpni 1 
    242239    set_namelist namelist_cfg jpnj 4 
     
    265262    set_namelist namelist_cfg ln_ctl .false. 
    266263    set_namelist namelist_cfg ln_clobber .true. 
    267     set_namelist namelist_cfg nn_solv 2 
    268264    set_namelist namelist_cfg jpni 2 
    269265    set_namelist namelist_cfg jpnj 2 
     
    304300    set_namelist namelist_cfg jpnj 4 
    305301    set_namelist namelist_cfg jpnij 8 
    306     set_namelist namelist_cfg nn_solv 2 
    307302    set_namelist namelist_top_cfg ln_trcdta .false. 
    308303    set_namelist namelist_top_cfg ln_diatrc .false. 
     
    340335    set_namelist namelist_cfg jpnj 4 
    341336    set_namelist namelist_cfg jpnij 8 
    342     set_namelist namelist_cfg nn_solv 2 
    343337    set_namelist namelist_top_cfg ln_diatrc .false. 
    344338    set_namelist namelist_top_cfg ln_rsttr .true. 
     
    398392    set_namelist namelist_cfg jpnj 4 
    399393    set_namelist namelist_cfg jpnij 16 
    400     set_namelist namelist_cfg nn_solv 2 
    401394    set_namelist namelist_top_cfg ln_trcdta .false. 
    402395    set_namelist namelist_top_cfg ln_diatrc .false. 
     
    437430    set_namelist namelist_cfg jpnj 8 
    438431    set_namelist namelist_cfg jpnij 16 
    439     set_namelist namelist_cfg nn_solv 2 
    440432    set_namelist namelist_top_cfg ln_trcdta .false. 
    441433    set_namelist namelist_top_cfg ln_diatrc .false. 
     
    658650    set_namelist namelist_cfg jpnj 2 
    659651    set_namelist namelist_cfg jpnij 4 
    660     set_namelist namelist_cfg nn_solv 2 
    661652    if [ ${USING_MPMD} == "yes" ] ; then 
    662653       set_xio_using_server iodef.xml true 
     
    682673    set_namelist namelist_cfg jpnj 2 
    683674    set_namelist namelist_cfg jpnij 4 
    684     set_namelist namelist_cfg nn_solv 2 
    685675    set_namelist namelist_cfg cn_ocerst_in \"O2L3_LONG_00000075_restart\" 
    686676    set_namelist namelist_ice_cfg cn_icerst_in \"O2L3_LONG_00000075_restart_ice\" 
     
    723713    set_namelist namelist_cfg jpnj 4 
    724714    set_namelist namelist_cfg jpnij 16 
    725     set_namelist namelist_cfg nn_solv 2 
    726715    if [ ${USING_MPMD} == "yes" ] ; then 
    727716       set_xio_using_server iodef.xml true 
     
    748737    set_namelist namelist_cfg jpnj 8 
    749738    set_namelist namelist_cfg jpnij 16 
    750     set_namelist namelist_cfg nn_solv 2 
    751739    if [ ${USING_MPMD} == "yes" ] ; then 
    752740       set_xio_using_server iodef.xml true 
     
    10191007    set_namelist namelist_cfg ln_clobber .true. 
    10201008    set_namelist namelist_cfg nn_fwb 0 
    1021     set_namelist namelist_cfg nn_solv 2 
    10221009    set_namelist namelist_cfg jpni 2 
    10231010    set_namelist namelist_cfg jpnj 2 
     
    10431030    set_namelist namelist_cfg ln_clobber .true. 
    10441031    set_namelist namelist_cfg nn_fwb 0 
    1045     set_namelist namelist_cfg nn_solv 2 
    10461032    set_namelist namelist_cfg jpni 2 
    10471033    set_namelist namelist_cfg jpnj 2 
     
    10881074    set_namelist namelist_cfg ln_ctl .false. 
    10891075    set_namelist namelist_cfg ln_clobber .true. 
    1090     set_namelist namelist_cfg nn_solv 2 
    10911076    set_namelist namelist_cfg jpni 1 
    10921077    set_namelist namelist_cfg jpnj 4 
     
    11151100    set_namelist namelist_cfg ln_ctl .false. 
    11161101    set_namelist namelist_cfg ln_clobber .true. 
    1117     set_namelist namelist_cfg nn_solv 2 
    11181102    set_namelist namelist_cfg jpni 2 
    11191103    set_namelist namelist_cfg jpnj 2 
     
    11541138    set_namelist namelist_cfg jpnj 4 
    11551139    set_namelist namelist_cfg jpnij 16 
    1156     set_namelist namelist_cfg nn_solv 2    
    11571140    set_namelist namelist_cfg ln_t3d .true. 
    11581141    set_namelist namelist_cfg ln_s3d .true. 
     
    11931176    set_namelist namelist_cfg jpnj 8 
    11941177    set_namelist namelist_cfg jpnij 16 
    1195     set_namelist namelist_cfg nn_solv 2 
    11961178    set_namelist namelist_cfg ln_t3d .true. 
    11971179    set_namelist namelist_cfg ln_s3d .true. 
     
    13471329    set_namelist namelist_cfg jpnj 2 
    13481330    set_namelist namelist_cfg jpnij 4 
    1349     set_namelist namelist_cfg nn_solv 2 
    13501331# 
    13511332    set_namelist 1_namelist_cfg cn_exp \"O2LP_LONG\" 
     
    13801361 
    13811362    set_namelist namelist_cfg jpnij 4 
    1382     set_namelist namelist_cfg nn_solv 2 
    13831363    set_namelist 1_namelist_cfg cn_exp \"O2LP_SHORT\" 
    13841364    set_namelist 1_namelist_cfg nn_it000 151 
     
    14321412    set_namelist namelist_cfg jpnj 4 
    14331413    set_namelist namelist_cfg jpnij 16 
    1434     set_namelist namelist_cfg nn_solv 2 
    14351414# 
    14361415    set_namelist 1_namelist_cfg nn_it000 1 
     
    14641443    set_namelist namelist_cfg jpnj 8 
    14651444    set_namelist namelist_cfg jpnij 16 
    1466     set_namelist namelist_cfg nn_solv 2 
    14671445# 
    14681446    set_namelist 1_namelist_cfg nn_it000 1 
Note: See TracChangeset for help on using the changeset viewer.