Changeset 12810
- Timestamp:
- 2020-04-24T17:09:39+02:00 (3 years ago)
- Location:
- NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/DOM/dom_oce.F90
r12807 r12810 111 111 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:) :: e1f , e2f , r1_e1f, r1_e2f !: horizontal scale factors at f-point [m] 112 112 ! 113 REAL(wp), PUBLIC, POINTER, SAVE , DIMENSION(:,:) :: r1_e1e2t, r1_e1e2u, r1_e1e2v !: associated metrics at t-point 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2t !: associated metrics at t-point 115 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2u , e2_e1u !: associated metrics at u-point 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2v , e1_e2v !: associated metrics at v-point 113 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2t , r1_e1e2t !: associated metrics at t-point 114 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2u , e2_e1u, r1_e1e2u !: associated metrics at u-point 115 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2v , e1_e2v, r1_e1e2v !: associated metrics at v-point 117 116 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2f , r1_e1e2f !: associated metrics at f-point 118 117 ! … … 134 133 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3vw_0 !: vw-vert. scale factor [m] 135 134 ! ! time-dependent scale factors 136 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:) :: e3t, e3u, e3v, e3w !: vert. scale factor [m] 137 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e3uw, e3vw !: vert. scale factor [m] 135 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e3t, e3u, e3v, e3w, e3uw, e3vw !: vert. scale factor [m] 138 136 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3f !: F-point vert. scale factor [m] 139 137 … … 175 173 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: tmask_h !: internal domain T-point mask (Figure 8.5 NEMO book) 176 174 177 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: miku, mikv, mikf !: top first wet U-, V-, F-level (ISF) 178 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: mikt !: top first wet T-level (ISF) 175 INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: mikt, miku, mikv, mikf !: top first wet T-, U-, V-, F-level (ISF) 179 176 180 177 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ssmask, ssumask, ssvmask !: surface mask at T-,U-, V- and F-pts 181 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: fmask !: land/ocean mask at F-pts 182 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: tmask, umask, vmask, wmask !: land/ocean mask at T-, U-, V-pts 178 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: tmask, umask, vmask, wmask, fmask !: land/ocean mask at T-, U-, V-, W- and F-pts 183 179 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: wumask, wvmask !: land/ocean mask at WT-, WU- and WV-pts 184 180 -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/SBC/sbcrnf.F90
r12738 r12810 59 59 INTEGER , PUBLIC :: nkrnf = 0 !: nb of levels over which Kz is increased at river mouths 60 60 61 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: rnfmsk !: river mouth mask (hori.)61 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnfmsk !: river mouth mask (hori.) 62 62 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: rnfmsk_z !: river mouth mask (vert.) 63 63 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: h_rnf !: depth of runoff in m -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/TRA/traadv.F90
r12586 r12810 83 83 INTEGER , INTENT(in) :: kt ! ocean time-step index 84 84 INTEGER , INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 85 REAL(wp), POINTER, DIMENSION(:,:,:,:,:), INTENT(inout) :: pts ! active tracers and RHS of tracer equation85 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts,jpt), INTENT(inout) :: pts ! active tracers and RHS of tracer equation 86 86 ! 87 87 INTEGER :: jk ! dummy loop index 88 REAL(wp), POINTER, DIMENSION(:,:,:) :: zuu, zvv, zww ! 3D workspace88 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zuu, zvv, zww ! 3D workspace 89 89 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt, ztrds 90 90 !!---------------------------------------------------------------------- 91 91 ! 92 92 IF( ln_timing ) CALL timing_start('tra_adv') 93 ALLOCATE( zuu(jpi,jpj,jpk), zvv(jpi,jpj,jpk), zww(jpi,jpj,jpk) )94 93 ! 95 94 ! !== effective transport ==! … … 168 167 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 169 168 ! 170 DEALLOCATE( zuu, zvv, zww )171 169 IF( ln_timing ) CALL timing_stop( 'tra_adv' ) 172 170 ! -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/TRA/traadv_mus.F90
r12719 r12810 31 31 USE lbclnk ! ocean lateral boundary condition (or mpp link) 32 32 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 33 USE halo_mng34 33 35 34 IMPLICIT NONE … … 38 37 PUBLIC tra_adv_mus ! routine called by traadv.F90 39 38 40 REAL(wp), POINTER, SAVE, DIMENSION(:,:) :: upsmsk !: mixed upstream/centered scheme near some straits39 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: upsmsk !: mixed upstream/centered scheme near some straits 41 40 ! ! and in closed seas (orca 2 and 1 configurations) 42 41 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xind !: mixed upstream/centered index … … 45 44 LOGICAL :: l_ptr ! flag to compute poleward transport 46 45 LOGICAL :: l_hst ! flag to compute heat/salt transport 47 48 INTEGER :: jphls = 249 46 50 47 !! * Substitutions … … 83 80 LOGICAL , INTENT(in ) :: ld_msc_ups ! use upstream scheme within muscl 84 81 REAL(wp) , INTENT(in ) :: p2dt ! tracer time-step 85 REAL(wp), POINTER, DIMENSION(:,:,:), INTENT(in ) :: pU, pV, pW ! 3 ocean volume flux components86 REAL(wp), POINTER, DIMENSION(:,:,:,:,:), INTENT(inout) :: pt ! tracers and RHS of tracer equation82 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT(in ) :: pU, pV, pW ! 3 ocean volume flux components 83 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt,jpt), INTENT(inout) :: pt ! tracers and RHS of tracer equation 87 84 ! 88 85 INTEGER :: ji, jj, jk, jn ! dummy loop indices … … 90 87 REAL(wp) :: zu, z0u, zzwx, zw , zalpha ! local scalars 91 88 REAL(wp) :: zv, z0v, zzwy, z0w ! - - 92 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwx, zslpx ! 3D workspace93 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwy, zslpy ! - -89 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwx, zslpx ! 3D workspace 90 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwy, zslpy ! - - 94 91 !!---------------------------------------------------------------------- 95 92 ! 96 CALL halo_mng_set(jphls)97 98 ALLOCATE(zwx(jpi,jpj,jpk))99 ALLOCATE(zwy(jpi,jpj,jpk))100 ALLOCATE(zslpx(jpi,jpj,jpk))101 ALLOCATE(zslpy(jpi,jpj,jpk))102 103 CALL halo_mng_resize(r1_e1e2t,'T', 1._wp)104 CALL halo_mng_resize(r1_e1e2u,'U', 1._wp)105 CALL halo_mng_resize(r1_e1e2v,'V', 1._wp)106 CALL halo_mng_resize(tmask,'T', 1._wp)107 CALL halo_mng_resize(wmask,'W', 1._wp)108 CALL halo_mng_resize(umask,'U', 1._wp)109 CALL halo_mng_resize(vmask,'V', 1._wp)110 CALL halo_mng_resize(pt, 'T', 1._wp, kjpt=kjpt, fjpt=Kbb )111 CALL halo_mng_resize(pt, 'T', 1._wp, kjpt=kjpt, fjpt=Krhs )112 CALL halo_mng_resize(e3t,'T', 1._wp, fillval=1._wp, fjpt=Kmm)113 CALL halo_mng_resize(e3u,'U', 1._wp, fillval=1._wp, fjpt=Kmm )114 CALL halo_mng_resize(e3v,'V', 1._wp, fillval=1._wp, fjpt=Kmm)115 CALL halo_mng_resize(e3w,'W', 1._wp, fillval=1._wp, fjpt=Kmm)116 CALL halo_mng_resize(pU, 'U', -1._wp)117 CALL halo_mng_resize(pV, 'V', -1._wp)118 CALL halo_mng_resize(pW, 'W', 1._wp)119 !120 IF( ln_isfcav ) CALL halo_mng_resize(mikt, 'T', 1._wp)121 IF( ld_msc_ups) CALL halo_mng_resize(rnfmsk,'T', 1._wp)122 IF( ld_msc_ups) CALL halo_mng_resize(upsmsk,'T', 1._wp)123 124 93 IF( kt == kit000 ) THEN 125 94 IF(lwp) WRITE(numout,*) … … 167 136 END_3D 168 137 ! lateral boundary conditions (changed sign) 169 !CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. )138 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) 170 139 ! !-- Slopes of tracer 171 140 zslpx(:,:,jpk) = 0._wp ! bottom values … … 203 172 zwy(ji,jj,jk) = pV(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 204 173 END_3D 205 !CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) ! lateral boundary conditions (changed sign)174 CALL lbc_lnk_multi( 'traadv_mus', zwx, 'U', -1. , zwy, 'V', -1. ) ! lateral boundary conditions (changed sign) 206 175 ! 207 176 DO_3D_00_00( 1, jpkm1 ) … … 264 233 ! 265 234 END DO ! end of tracer loop 266 267 DEALLOCATE(zwx,zwy) 268 DEALLOCATE(zslpx,zslpy) 269 270 CALL halo_mng_set(1) 271 ! 272 CALL halo_mng_resize(r1_e1e2t,'T', 1._wp) 273 CALL halo_mng_resize(r1_e1e2u,'U', 1._wp) 274 CALL halo_mng_resize(r1_e1e2v,'V', 1._wp) 275 CALL halo_mng_resize(pt,'T', 1._wp, kjpt=kjpt, fjpt=Kbb ) 276 CALL halo_mng_resize(pt,'T', 1._wp, kjpt=kjpt, fjpt=Krhs ) 277 CALL halo_mng_resize(tmask,'T', 1._wp) 278 CALL halo_mng_resize(wmask,'W', 1._wp) 279 CALL halo_mng_resize(umask,'U', 1._wp) 280 CALL halo_mng_resize(vmask,'V', 1._wp) 281 CALL halo_mng_resize(e3t,'T', 1._wp, fillval=1._wp, fjpt=Kmm) 282 CALL halo_mng_resize(e3u,'U', 1._wp, fillval=1._wp, fjpt=Kmm) 283 CALL halo_mng_resize(e3v,'V', 1._wp, fillval=1._wp, fjpt=Kmm) 284 CALL halo_mng_resize(e3w,'W', 1._wp, fillval=1._wp, fjpt=Kmm) 285 CALL halo_mng_resize(pU,'U', 1._wp) 286 CALL halo_mng_resize(pV,'V', 1._wp) 287 CALL halo_mng_resize(pW,'W', 1._wp) 288 289 IF( ln_isfcav ) CALL halo_mng_resize(mikt, 'T', 1._wp) 290 IF( ld_msc_ups) CALL halo_mng_resize(rnfmsk, 'T', 1._wp) 291 IF( ld_msc_ups) CALL halo_mng_resize(upsmsk, 'T', 1._wp) 235 ! 292 236 END SUBROUTINE tra_adv_mus 293 237 -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/ZDF/zdfdrg.F90
r12738 r12810 268 268 IF( ln_isfcav ) THEN ! Ocean cavities: top friction setting 269 269 ALLOCATE( rCd0_top(jpi,jpj), rCdU_top(jpi,jpj) ) 270 CALL drg_init( 'TOP ' , INT(mikt), & ! <== in270 CALL drg_init( 'TOP ' , mikt , & ! <== in 271 271 & r_Cdmin_top, r_Cdmax_top, r_z0_top, r_ke0_top, rCd0_top, rCdU_top ) ! ==> out 272 272 ENDIF -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/ZDF/zdfphy.F90
r12586 r12810 247 247 & rCdU_bot ) ! ==>> out : bottom drag [m/s] 248 248 IF( ln_isfcav ) THEN !* top drag (ocean cavities) 249 CALL zdf_drg( kt, Kmm, INT(mikt), r_Cdmin_top, r_Cdmax_top, & ! <<== in249 CALL zdf_drg( kt, Kmm, mikt , r_Cdmin_top, r_Cdmax_top, & ! <<== in 250 250 & r_z0_top, r_ke0_top, rCd0_top, & 251 251 & rCdU_top ) ! ==>> out : bottom drag [m/s] -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/OCE/oce.F90
r12586 r12810 24 24 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wi !: vertical vel. (adaptive-implicit) [m/s] 25 25 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdiv !: horizontal divergence [s-1] 26 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:,:) :: ts !: 4D T-S fields [Celsius,psu]26 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: ts !: 4D T-S fields [Celsius,psu] 27 27 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: rab_b, rab_n !: thermal/haline expansion coef. [Celsius-1,psu-1] 28 28 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rn2b , rn2 !: brunt-vaisala frequency**2 [s-2] -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/TOP/TRP/trcadv.F90
r12586 r12810 76 76 INTEGER , INTENT(in) :: kt ! ocean time-step index 77 77 INTEGER , INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 78 REAL(wp), POINTER, DIMENSION(:,:,:,:,:), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation78 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 79 79 ! 80 80 INTEGER :: jk ! dummy loop index 81 81 CHARACTER (len=22) :: charout 82 REAL(wp), POINTER, DIMENSION(:,:,:) :: zuu, zvv, zww ! effective velocity82 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zuu, zvv, zww ! effective velocity 83 83 !!---------------------------------------------------------------------- 84 84 ! 85 85 IF( ln_timing ) CALL timing_start('trc_adv') 86 ALLOCATE( zuu(jpi,jpj,jpk), zvv(jpi,jpj,jpk), zww(jpi,jpj,jpk) )87 86 ! 88 87 ! !== effective transport ==! … … 144 143 IF( ln_timing ) CALL timing_stop('trc_adv') 145 144 ! 146 DEALLOCATE( zuu, zvv, zww )147 145 END SUBROUTINE trc_adv 148 146 -
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/TOP/trc.F90
r12586 r12810 33 33 REAL(wp), PUBLIC :: areatot !: total volume 34 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: cvol !: volume correction -degrad option- 35 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:,:) :: tr !: tracer concentration35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:) :: tr !: tracer concentration 36 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc_b !: Before sbc fluxes for tracers 37 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc !: Now sbc fluxes for tracers
Note: See TracChangeset
for help on using the changeset viewer.