Changeset 8214 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO
- Timestamp:
- 2017-06-25T11:54:36+02:00 (7 years ago)
- Location:
- branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90
r7953 r8214 44 44 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_u 45 45 LOGICAL , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tabspongedone_v 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsaht_spu, fsaht_spv !: sponge diffusivities 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsahm_spt, fsahm_spf !: sponge viscosities 46 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsaht_spu, fsaht_spv !: sponge diffusivities 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fsahm_spt, fsahm_spf !: sponge viscosities 48 49 !!gm add PUBLIC in all variable below: should we need to add it 48 50 49 51 ! Barotropic arrays used to store open boundary data during time-splitting loop: 50 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_w, vbdy_w, hbdy_w51 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_e, vbdy_e, hbdy_e52 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_n, vbdy_n, hbdy_n53 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_s, vbdy_s, hbdy_s52 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_w, vbdy_w, hbdy_w 53 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_e, vbdy_e, hbdy_e 54 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_n, vbdy_n, hbdy_n 55 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: ubdy_s, vbdy_s, hbdy_s 54 56 55 !!gm add PUBLIC in all variable below:56 57 57 58 INTEGER, PUBLIC :: tsn_id ! AGRIF profile for tracers interpolation and update -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90
r7953 r8214 548 548 ENDIF 549 549 ! 550 IF( nbondj == -1 .OR. (nbondj == 2 ) THEN550 IF( nbondj == -1 .OR. nbondj == 2 ) THEN 551 551 DO ji = 1, jpi 552 552 ssha_e(ji,2) = hbdy_s(ji) … … 935 935 ! 936 936 IF( bdy_tinterp == 0 .OR. bdy_tinterp == 2) THEN 937 IF( western_side ) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 938 IF( eastern_side ) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 939 IF( southern_side ) vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 940 IF( northern_side ) vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 937 IF(western_side) THEN 938 vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) & 939 & * vmask(i1,j1:j2,1) 941 940 ENDIF 941 IF(eastern_side) THEN 942 vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) & 943 & * vmask(i1,j1:j2,1) 944 ENDIF 945 IF(southern_side) THEN 946 vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) & 947 & * vmask(i1:i2,j1,1) 948 ENDIF 949 IF(northern_side) THEN 950 vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) & 951 & * vmask(i1:i2,j1,1) 952 ENDIF 953 !!gm better coding 954 ! IF( western_side ) vbdy_w(j1:j2) = vbdy_w(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 955 ! IF( eastern_side ) vbdy_e(j1:j2) = vbdy_e(j1:j2) / (zrhox*e1v(i1,j1:j2)) * vmask(i1,j1:j2,1) 956 ! IF( southern_side ) vbdy_s(i1:i2) = vbdy_s(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 957 ! IF( northern_side ) vbdy_n(i1:i2) = vbdy_n(i1:i2) / (zrhox*e1v(i1:i2,j1)) * vmask(i1:i2,j1,1) 958 !!gm end 942 959 ENDIF 943 960 ENDIF … … 1167 1184 !!---------------------------------------------------------------------- 1168 1185 ! 1169 IF( before ) THEN ; ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1170 ELSE ; avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1171 ENDIF 1186 IF( before ) THEN 1187 ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1188 ELSE 1189 avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1190 ENDIF 1191 !!gm better coding ??? 1192 ! IF( before ) THEN ; ptab (i1:i2,j1:j2,k1:k2) = avm_k(i1:i2,j1:j2,k1:k2) 1193 ! ELSE ; avm_k(i1:i2,j1:j2,k1:k2) = ptab (i1:i2,j1:j2,k1:k2) 1194 ! ENDIF 1195 !!gm 1172 1196 ! 1173 1197 END SUBROUTINE interpavm -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90
r7953 r8214 250 250 zbtr = r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 251 251 ! horizontal diffusive trends 252 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji 252 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk) ) 253 253 ! add it to the general tracer trends 254 254 tsa(ji,jj,jk,jn) = tsa(ji,jj,jk,jn) + ztsa … … 285 285 tabres = un(i1:i2,j1:j2,:) 286 286 ELSE 287 ubdiff(i1:i2,j1:j2,:) = ( ub(i1:i2,j1:j2,:) - tabres(:,:,:))*umask(i1:i2,j1:j2,:)287 ubdiff(i1:i2,j1:j2,:) = ( ub(i1:i2,j1:j2,:) - tabres(:,:,:) )*umask(i1:i2,j1:j2,:) 288 288 ! 289 289 DO jk = 1, jpkm1 ! Horizontal slab … … 304 304 DO ji = i1,i2 ! vector opt. 305 305 zbtr = r1_e1e2f(ji,jj) * e3f_n(ji,jj,jk) * fsahm_spf(ji,jj) 306 rotdiff(ji,jj,jk) = (-e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 307 +e1u(ji,jj ) * ubdiff(ji,jj ,jk) & 308 & ) * fmask(ji,jj,jk) * zbtr 306 rotdiff(ji,jj,jk) = ( -e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 307 & +e1u(ji,jj ) * ubdiff(ji,jj ,jk) ) * fmask(ji,jj,jk) * zbtr 309 308 END DO 310 309 END DO … … 319 318 ze1v = hdivdiff(ji,jj,jk) 320 319 ! horizontal diffusive trends 321 zua = - ( ze2u - rotdiff (ji,jj-1,jk) ) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) &322 + ( hdivdiff(ji+1,jj,jk) - ze1v ) /e1u(ji,jj)320 zua = - ( ze2u - rotdiff (ji,jj-1,jk) ) / ( e2u(ji,jj) * e3u_n(ji,jj,jk) ) & 321 + ( hdivdiff(ji+1,jj,jk) - ze1v ) * r1_e1u(ji,jj) 323 322 324 323 ! add it to the general momentum trends … … 345 344 346 345 ! horizontal diffusive trends 347 zva = + ( ze2u - rotdiff (ji-1,jj,jk) ) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) &348 + ( hdivdiff(ji,jj+1,jk) - ze1v ) /e2v(ji,jj)346 zva = + ( ze2u - rotdiff (ji-1,jj,jk) ) / ( e1v(ji,jj) * e3v_n(ji,jj,jk) ) & 347 + ( hdivdiff(ji,jj+1,jk) - ze1v ) * r1_e2v(ji,jj) 349 348 350 349 ! add it to the general momentum trends … … 382 381 ELSE 383 382 ! 384 vbdiff(i1:i2,j1:j2,:) = ( vb(i1:i2,j1:j2,:) - tabres(:,:,:))*vmask(i1:i2,j1:j2,:)383 vbdiff(i1:i2,j1:j2,:) = ( vb(i1:i2,j1:j2,:) - tabres(:,:,:) ) * vmask(i1:i2,j1:j2,:) 385 384 ! 386 385 DO jk = 1, jpkm1 ! Horizontal slab -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90
r8143 r8214 70 70 CALL wrk_alloc( jpi,jpj,jpk, ze3t, ze3w ) 71 71 CALL wrk_alloc( jpi,jpj,jpk, ze3u, ze3v ) 72 CALL wrk_alloc( jpi,jpj,jpk, zt , zs , z3d )72 CALL wrk_alloc( jpi,jpj,jpk, zt , zs , z3d ) 73 73 ! 74 74 CALL wrk_alloc( jpi_crs,jpj_crs,jpk, zt_crs, zs_crs ) -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r8143 r8214 1123 1123 IF( lrst_oce .AND.ln_bt_fw ) CALL ts_rst( kt, 'WRITE' ) 1124 1124 ! 1125 IF( ln_wd ) DEALLOCATE( zcpx, zcpy )1125 IF( ln_wd ) DEALLOCATE( zcpx, zcpy ) 1126 1126 ! 1127 1127 IF ( ln_diatmb ) THEN -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/LBC/lbclnk.F90
r7904 r8214 2 2 !!====================================================================== 3 3 !! *** MODULE lbclnk *** 4 !! NEMO : lateral boundary conditions4 !! NEMO : lateral boundary conditions --- MPP exchanges 5 5 !!===================================================================== 6 6 !! History : OPA ! 1997-06 (G. Madec) Original code -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/TRD/trdken.F90
r8143 r8214 17 17 USE zdf_oce ! ocean vertical physics variables 18 18 USE zdfdrg ! ocean vertical physics: bottom friction 19 !!gm USE dynhpg ! hydrostatic pressure gradient20 19 USE ldftra ! ocean active tracers lateral physics 21 20 USE trd_oce ! trends: ocean variables -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r8160 r8214 55 55 USE ldfdyn ! lateral viscosity setting (ldfdyn_init routine) 56 56 USE ldftra ! lateral diffusivity setting (ldftra_init routine) 57 !!gm USE zdfphy ! vertical physics manager (zdf_phy_init routine)58 57 USE trdini ! dyn/tra trends initialization (trd_init routine) 59 58 USE asminc ! assimilation increments -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/step.F90
r8178 r8214 195 195 ENDIF 196 196 197 IF( .NOT.ln_drgimp) CALL dyn_bfr 197 IF( .NOT.ln_drgimp) CALL dyn_bfr ( kstp ) ! bottom friction 198 198 199 199 CALL dyn_zdf ( kstp ) ! vertical diffusion -
branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90
r7954 r8214 71 71 ENDIF 72 72 ! 73 END 73 ENDIF 74 74 75 75 !* Advective bbl : bbl upstream advective trends added to the tracer trends … … 82 82 ENDIF 83 83 ! 84 END 84 ENDIF 85 85 86 86 IF( l_trdtrc ) THEN ! save the horizontal diffusive trends for further diagnostics
Note: See TracChangeset
for help on using the changeset viewer.