Changeset 13678 for NEMO/branches
- Timestamp:
- 2020-10-26T18:52:53+01:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3
- Files:
-
- 1 added
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/NST/agrif_oce_interp.F90
r13286 r13678 50 50 INTEGER :: bdy_tinterp = 0 51 51 52 !!---------------------------------------------------------------------- 52 !! * Substitutions 53 # include "domzgr_substitute.h90" 53 54 !! NEMO/NST 4.0 , NEMO Consortium (2018) 54 55 !! $Id$ -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/NST/agrif_oce_sponge.F90
r13312 r13678 32 32 33 33 !! * Substitutions 34 # include "domzgr_substitute.h90" 34 35 # include "do_loop_substitute.h90" 35 36 !!---------------------------------------------------------------------- -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/NST/agrif_oce_update.F90
r13286 r13678 27 27 USE vremap ! Vertical remapping 28 28 USE lbclnk 29 29 #if defined key_qco 30 USE domqco 31 #endif 30 32 IMPLICIT NONE 31 33 PRIVATE … … 34 36 PUBLIC Update_Scales 35 37 38 !! * Substitutions 39 # include "domzgr_substitute.h90" 36 40 !!---------------------------------------------------------------------- 37 41 !! NEMO/NST 4.0 , NEMO Consortium (2018) … … 191 195 END SUBROUTINE Agrif_Update_Tke 192 196 193 194 197 SUBROUTINE Agrif_Update_vvl( ) 195 198 !!--------------------------------------------- … … 201 204 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update e3 from grid Number',Agrif_Fixed(), 'Step', Agrif_Nb_Step() 202 205 ! 206 #if ! defined key_qco 203 207 Agrif_UseSpecialValueInUpdate = .TRUE. 204 208 Agrif_SpecialValueFineGrid = 0. … … 213 217 CALL dom_vvl_update_UVF 214 218 CALL Agrif_ParentGrid_To_ChildGrid() 219 #else 220 !! JC: should be something like that: 221 CALL Agrif_ChildGrid_To_ParentGrid() 222 CALL dom_qco_r3c( ssh(:,:,Kbb_a), r3t(:,:,Kbb_a), r3u(:,:,Kbb_a), r3v(:,:,Kbb_a) ) 223 CALL dom_qco_r3c( ssh(:,:,Kmm_a), r3t(:,:,Kmm_a), r3u(:,:,Kmm_a), r3v(:,:,Kmm_a), r3f(:,:) ) 224 CALL Agrif_ParentGrid_To_ChildGrid() 225 #endif 215 226 ! 216 227 END SUBROUTINE Agrif_Update_vvl 217 228 229 #if ! defined key_qco 218 230 SUBROUTINE dom_vvl_update_UVF 219 231 !!--------------------------------------------- … … 224 236 REAL(wp):: zcoef 225 237 !!--------------------------------------------- 226 227 238 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Finalize e3 on grid Number', & 228 239 & Agrif_Fixed(), 'Step', Agrif_Nb_Step() … … 290 301 ! 291 302 END SUBROUTINE dom_vvl_update_UVF 303 #endif 292 304 293 305 #if defined key_vertical … … 1332 1344 END SUBROUTINE updateAVM 1333 1345 1346 #if ! defined key_qco 1334 1347 SUBROUTINE updatee3t(ptab_dum, i1, i2, j1, j2, k1, k2, before ) 1335 1348 !!--------------------------------------------- … … 1443 1456 ! 1444 1457 END SUBROUTINE updatee3t 1458 #endif 1445 1459 1446 1460 #else -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/NST/agrif_user.F90
r13295 r13678 288 288 CALL Agrif_Init_Variable(sshini_id, procname=agrif_initssh) 289 289 CALL lbc_lnk( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. ) 290 #if ! defined key_qco 290 291 DO jk = 1, jpk 291 292 e3t(:,:,jk,Kbb) = e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kbb) ) & … … 293 294 & + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) ) 294 295 END DO 296 #endif 295 297 ENDIF 296 298 -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/OCE/DYN/dynatf_qco.F90
r13427 r13678 1 MODULE dynatf qco1 MODULE dynatf_qco 2 2 !!========================================================================= 3 !! *** MODULE dynatf qco ***3 !! *** MODULE dynatf_qco *** 4 4 !! Ocean dynamics: time filtering 5 5 !!========================================================================= … … 50 50 USE prtctl ! Print control 51 51 USE timing ! Timing 52 #if defined key_agrif53 USE agrif_oce_interp54 #endif55 52 56 53 IMPLICIT NONE … … 235 232 236 233 !!========================================================================= 237 END MODULE dynatf qco234 END MODULE dynatf_qco -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/OCE/TRA/traatf_qco.F90
r13295 r13678 1 MODULE traatf qco1 MODULE traatf_qco 2 2 !!====================================================================== 3 !! *** MODULE traatf qco ***3 !! *** MODULE traatf_qco *** 4 4 !! Ocean active tracers: Asselin time filtering for temperature and salinity 5 5 !!====================================================================== … … 45 45 USE prtctl ! Print control 46 46 USE timing ! Timing 47 #if defined key_agrif48 USE agrif_oce_interp49 #endif50 47 51 48 IMPLICIT NONE … … 149 146 ENDIF 150 147 ! 151 CALL lbc_lnk_multi( 'traatf qco', pts(:,:,:,jp_tem,Kbb) , 'T', 1., pts(:,:,:,jp_sal,Kbb) , 'T', 1., &152 & pts(:,:,:,jp_tem,Kmm) , 'T', 1., pts(:,:,:,jp_sal,Kmm) , 'T', 1., &153 & pts(:,:,:,jp_tem,Kaa), 'T', 1., pts(:,:,:,jp_sal,Kaa), 'T', 1. )148 CALL lbc_lnk_multi( 'traatf_qco', pts(:,:,:,jp_tem,Kbb) , 'T', 1., pts(:,:,:,jp_sal,Kbb) , 'T', 1., & 149 & pts(:,:,:,jp_tem,Kmm) , 'T', 1., pts(:,:,:,jp_sal,Kmm) , 'T', 1., & 150 & pts(:,:,:,jp_tem,Kaa) , 'T', 1., pts(:,:,:,jp_sal,Kaa) , 'T', 1. ) 154 151 ! 155 152 ENDIF … … 372 369 373 370 !!====================================================================== 374 END MODULE traatf qco371 END MODULE traatf_qco -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/src/OCE/nemogcm.F90
r13608 r13678 67 67 #endif 68 68 #if defined key_qco 69 USE stp MLF! NEMO time-stepping (stp_MLF routine)69 USE stpmlf ! NEMO time-stepping (stp_MLF routine) 70 70 #else 71 71 USE step ! NEMO time-stepping (stp routine) -
NEMO/branches/2020/dev_r13327_KERNEL-06_2_techene_e3/tests/VORTEX/MY_SRC/domvvl.F90
r13295 r13678 9 9 !! 3.6 ! 2014-11 (P. Mathiot) add ice shelf capability 10 10 !! 4.1 ! 2019-08 (A. Coward, D. Storkey) rename dom_vvl_sf_swp -> dom_vvl_sf_update for new timestepping 11 !! 4.x ! 2020-02 (G. Madec, S. Techene) introduce ssh to h0 ratio 11 12 !!---------------------------------------------------------------------- 12 13 13 !!----------------------------------------------------------------------14 !! dom_vvl_init : define initial vertical scale factors, depths and column thickness15 !! dom_vvl_sf_nxt : Compute next vertical scale factors16 !! dom_vvl_sf_update : Swap vertical scale factors and update the vertical grid17 !! dom_vvl_interpol : Interpolate vertical scale factors from one grid point to another18 !! dom_vvl_rst : read/write restart file19 !! dom_vvl_ctl : Check the vvl options20 !!----------------------------------------------------------------------21 14 USE oce ! ocean dynamics and tracers 22 15 USE phycst ! physical constant … … 36 29 PRIVATE 37 30 38 PUBLIC dom_vvl_init ! called by domain.F9039 PUBLIC dom_vvl_zgr ! called by isfcpl.F9040 PUBLIC dom_vvl_sf_nxt ! called by step.F9041 PUBLIC dom_vvl_sf_update ! called by step.F9042 PUBLIC dom_vvl_interpol ! called by dynnxt.F9043 44 31 ! !!* Namelist nam_vvl 45 32 LOGICAL , PUBLIC :: ln_vvl_zstar = .FALSE. ! zstar vertical coordinate … … 63 50 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: frq_rst_hdv ! retoring period for low freq. divergence 64 51 52 #if defined key_qco 53 !!---------------------------------------------------------------------- 54 !! 'key_qco' EMPTY MODULE Quasi-Eulerian vertical coordonate 55 !!---------------------------------------------------------------------- 56 #else 57 !!---------------------------------------------------------------------- 58 !! Default key Old management of time varying vertical coordinate 59 !!---------------------------------------------------------------------- 60 61 !!---------------------------------------------------------------------- 62 !! dom_vvl_init : define initial vertical scale factors, depths and column thickness 63 !! dom_vvl_sf_nxt : Compute next vertical scale factors 64 !! dom_vvl_sf_update : Swap vertical scale factors and update the vertical grid 65 !! dom_vvl_interpol : Interpolate vertical scale factors from one grid point to another 66 !! dom_vvl_rst : read/write restart file 67 !! dom_vvl_ctl : Check the vvl options 68 !!---------------------------------------------------------------------- 69 70 PUBLIC dom_vvl_init ! called by domain.F90 71 PUBLIC dom_vvl_zgr ! called by isfcpl.F90 72 PUBLIC dom_vvl_sf_nxt ! called by step.F90 73 PUBLIC dom_vvl_sf_update ! called by step.F90 74 PUBLIC dom_vvl_interpol ! called by dynnxt.F90 75 65 76 !! * Substitutions 66 77 # include "do_loop_substitute.h90" … … 135 146 ! 136 147 END SUBROUTINE dom_vvl_init 137 ! 148 149 138 150 SUBROUTINE dom_vvl_zgr(Kbb, Kmm, Kaa) 139 151 !!---------------------------------------------------------------------- … … 261 273 IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 262 274 IF( nn_cfg == 3 ) THEN ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 263 ii0 = 103 ; ii1 = 111264 ij0 = 128 ; ij1 = 135 ;275 ii0 = 103 + nn_hls - 1 ; ii1 = 111 + nn_hls - 1 276 ij0 = 128 + nn_hls ; ij1 = 135 + nn_hls 265 277 frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 0.0_wp 266 278 frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) = 1.e0_wp / rn_Dt … … 450 462 ELSE 451 463 ijk_max = MAXLOC( ze3t(:,:,:) ) 452 ijk_max(1) = mig0_oldcmp(ijk_max(1))453 ijk_max(2) = mjg0_oldcmp(ijk_max(2))464 ijk_max(1) = ijk_max(1) + nimpp - 1 465 ijk_max(2) = ijk_max(2) + njmpp - 1 454 466 ijk_min = MINLOC( ze3t(:,:,:) ) 455 ijk_min(1) = mig0_oldcmp(ijk_min(1))456 ijk_min(2) = mjg0_oldcmp(ijk_min(2))467 ijk_min(1) = ijk_min(1) + nimpp - 1 468 ijk_min(2) = ijk_min(2) + njmpp - 1 457 469 ENDIF 458 470 IF (lwp) THEN … … 911 923 ELSE 912 924 ! 913 ! usr_def_istate called here only to get ssh(Kbb) needed to initialize e3t(Kbb) and e3t(Kmm) 914 ! 915 CALL usr_def_istate( gdept_0, tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb), ssh(:,:,Kbb) ) 916 ! 917 ! usr_def_istate will be called again in istate_init to initialize ts, ssh, u and v 925 ! Just to read set ssh in fact, called latter once vertical grid 926 ! is set up: 927 CALL usr_def_istate( gdept_0, tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb), ssh(:,:,Kbb) ) 918 928 ! 919 929 DO jk=1,jpk 920 930 e3t(:,:,jk,Kbb) = e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kbb) ) & 921 & / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk)&922 & + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) ) ! make sure e3t(:,:,:,Kbb) != 0 on land points931 & / ( ht_0(:,:) + 1._wp -ssmask(:,:) ) * tmask(:,:,jk) & 932 & +(1._wp-tmask(:,:,jk))*e3t_0(:,:,jk) 923 933 END DO 924 934 e3t(:,:,:,Kmm) = e3t(:,:,:,Kbb) 925 ssh(:,:,Kmm) = ssh(:,:,Kbb) ! needed later for gde3w 935 ! ssh(:,:,Kmm)=0._wp 936 ! e3t(:,:,:,Kmm)=e3t_0(:,:,:) 937 ! e3t(:,:,:,Kbb)=e3t_0(:,:,:) 926 938 ! 927 939 END IF ! end of ll_wd edits … … 1030 1042 END SUBROUTINE dom_vvl_ctl 1031 1043 1044 #endif 1045 1032 1046 !!====================================================================== 1033 1047 END MODULE domvvl
Note: See TracChangeset
for help on using the changeset viewer.