Changeset 11053 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM
- Timestamp:
- 2019-05-24T12:53:06+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM/dom_oce.F90
r11050 r11053 121 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE , DIMENSION(:,:) :: e1e2f , r1_e1e2f !: associated metrics at f-point 122 122 ! 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ff_f , ff_t !: Coriolis factor at f- & t-points [1/s] 124 124 !!---------------------------------------------------------------------- 125 125 !! vertical coordinate and scale factors … … 138 138 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3vw_0 !: vw-vert. scale factor [m] 139 139 ! ! time-dependent scale factors 140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET,DIMENSION(:,:,:,:) :: e3t, e3u, e3v, e3w, e3uw, e3vw !: vert. scale factor [m]141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:,:) ::e3f !: F-point vert. scale factor [m]140 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e3t, e3u, e3v, e3w, e3uw, e3vw !: vert. scale factor [m] 141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: e3f !: F-point vert. scale factor [m] 142 142 143 143 ! ! reference depths of cells … … 146 146 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gde3w_0 !: w- depth (sum of e3w) [m] 147 147 ! ! time-dependent depths of cells 148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET,DIMENSION(:,:,:,:) :: gdept, gdepw149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET,DIMENSION(:,:,:) :: gde3w148 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: gdept, gdepw 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: gde3w 150 150 151 151 ! ! reference heights of water column … … 154 154 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hv_0 !: v-depth [m] 155 155 ! time-dependent heights of water column 156 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:) :: ht !: height of water column at T-points [m] 157 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, TARGET, DIMENSION(:,:,:) :: hu, hv, r1_hu, r1_hv !: height of water column [m] and reciprocal [1/m] 158 159 !! TEMPORARY POINTERS FOR DEVELOPMENT ONLY 160 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3t_b , e3t_n , e3t_a !: t- vert. scale factor [m] 161 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3u_b , e3u_n , e3u_a !: u- vert. scale factor [m] 162 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3v_b , e3v_n , e3v_a !: v- vert. scale factor [m] 163 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3f_n !: f- vert. scale factor [m] 164 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3w_b , e3w_n !: w- vert. scale factor [m] 165 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3uw_b , e3uw_n !: uw-vert. scale factor [m] 166 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: e3vw_b , e3vw_n !: vw-vert. scale factor [m] 167 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: gdept_b , gdept_n !: t- depth [m] 168 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: gdepw_b , gdepw_n !: w- depth [m] 169 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:) :: gde3w_n !: w- depth (sum of e3w) [m] 170 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: ht_n !: t-depth [m] 171 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: hu_b , hu_n , hu_a !: u-depth [m] 172 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: hv_b , hv_n , hv_a !: v-depth [m] 173 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: r1_hu_b , r1_hu_n , r1_hu_a !: inverse of u-depth [1/m] 174 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:) :: r1_hv_b , r1_hv_n , r1_hv_a !: inverse of v-depth [1/m] 175 !! TEMPORARY POINTERS FOR DEVELOPMENT ONLY 156 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ht !: height of water column at T-points [m] 157 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hu, hv, r1_hu, r1_hv !: height of water column [m] and reciprocal [1/m] 176 158 177 159 INTEGER, PUBLIC :: nla10 !: deepest W level Above ~10m (nlb10 - 1) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM/domain.F90
r10978 r11053 179 179 ! 180 180 ! before ! now ! after ! 181 ht _n= ht_0 ! ! water column thickness182 hu _b = hu_0 ; hu_n = hu_0 ; hu_a= hu_0 !183 hv _b = hv_0 ; hv_n = hv_0 ; hv_a= hv_0 !184 r1_hu _b = z1_hu_0 ; r1_hu_n = z1_hu_0 ; r1_hu_a= z1_hu_0 ! inverse of water column thickness185 r1_hv _b = z1_hv_0 ; r1_hv_n = z1_hv_0 ; r1_hv_a= z1_hv_0 !181 ht = ht_0 ! ! water column thickness 182 hu(:,:,Kbb) = hu_0 ; hu(:,:,Kmm) = hu_0 ; hu(:,:,Kaa) = hu_0 ! 183 hv(:,:,Kbb) = hv_0 ; hv(:,:,Kmm) = hv_0 ; hv(:,:,Kaa) = hv_0 ! 184 r1_hu(:,:,Kbb) = z1_hu_0 ; r1_hu(:,:,Kmm) = z1_hu_0 ; r1_hu(:,:,Kaa) = z1_hu_0 ! inverse of water column thickness 185 r1_hv(:,:,Kbb) = z1_hv_0 ; r1_hv(:,:,Kmm) = z1_hv_0 ; r1_hv(:,:,Kaa) = z1_hv_0 ! 186 186 ! 187 187 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM/domvvl.F90
r11050 r11053 181 181 ! 182 182 ! !== thickness of the water column !! (ocean portion only) 183 ht _n(:,:) = e3t(:,:,1,Kmm) * tmask(:,:,1) !!gm BUG : this should be 1/2 * e3w(k=1) ....184 hu _b(:,:) = e3u(:,:,1,Kbb) * umask(:,:,1)185 hu _n(:,:) = e3u(:,:,1,Kmm) * umask(:,:,1)186 hv _b(:,:) = e3v(:,:,1,Kbb) * vmask(:,:,1)187 hv _n(:,:) = e3v(:,:,1,Kmm) * vmask(:,:,1)183 ht(:,:) = e3t(:,:,1,Kmm) * tmask(:,:,1) !!gm BUG : this should be 1/2 * e3w(k=1) .... 184 hu(:,:,Kbb) = e3u(:,:,1,Kbb) * umask(:,:,1) 185 hu(:,:,Kmm) = e3u(:,:,1,Kmm) * umask(:,:,1) 186 hv(:,:,Kbb) = e3v(:,:,1,Kbb) * vmask(:,:,1) 187 hv(:,:,Kmm) = e3v(:,:,1,Kmm) * vmask(:,:,1) 188 188 DO jk = 2, jpkm1 189 ht _n(:,:) = ht_n(:,:) + e3t(:,:,jk,Kmm) * tmask(:,:,jk)190 hu _b(:,:) = hu_b(:,:) + e3u(:,:,jk,Kbb) * umask(:,:,jk)191 hu _n(:,:) = hu_n(:,:) + e3u(:,:,jk,Kmm) * umask(:,:,jk)192 hv _b(:,:) = hv_b(:,:) + e3v(:,:,jk,Kbb) * vmask(:,:,jk)193 hv _n(:,:) = hv_n(:,:) + e3v(:,:,jk,Kmm) * vmask(:,:,jk)189 ht(:,:) = ht(:,:) + e3t(:,:,jk,Kmm) * tmask(:,:,jk) 190 hu(:,:,Kbb) = hu(:,:,Kbb) + e3u(:,:,jk,Kbb) * umask(:,:,jk) 191 hu(:,:,Kmm) = hu(:,:,Kmm) + e3u(:,:,jk,Kmm) * umask(:,:,jk) 192 hv(:,:,Kbb) = hv(:,:,Kbb) + e3v(:,:,jk,Kbb) * vmask(:,:,jk) 193 hv(:,:,Kmm) = hv(:,:,Kmm) + e3v(:,:,jk,Kmm) * vmask(:,:,jk) 194 194 END DO 195 195 ! 196 196 ! !== inverse of water column thickness ==! (u- and v- points) 197 r1_hu _b(:,:) = ssumask(:,:) / ( hu_b(:,:) + 1._wp - ssumask(:,:) ) ! _i mask due to ISF198 r1_hu _n(:,:) = ssumask(:,:) / ( hu_n(:,:) + 1._wp - ssumask(:,:) )199 r1_hv _b(:,:) = ssvmask(:,:) / ( hv_b(:,:) + 1._wp - ssvmask(:,:) )200 r1_hv _n(:,:) = ssvmask(:,:) / ( hv_n(:,:) + 1._wp - ssvmask(:,:) )197 r1_hu(:,:,Kbb) = ssumask(:,:) / ( hu(:,:,Kbb) + 1._wp - ssumask(:,:) ) ! _i mask due to ISF 198 r1_hu(:,:,Kmm) = ssumask(:,:) / ( hu(:,:,Kmm) + 1._wp - ssumask(:,:) ) 199 r1_hv(:,:,Kbb) = ssvmask(:,:) / ( hv(:,:,Kbb) + 1._wp - ssvmask(:,:) ) 200 r1_hv(:,:,Kmm) = ssvmask(:,:) / ( hv(:,:,Kmm) + 1._wp - ssvmask(:,:) ) 201 201 202 202 ! !== z_tilde coordinate case ==! (Restoring frequencies) … … 550 550 ! *********************************** ! 551 551 552 hu _a(:,:) = e3u(:,:,1,Kaa) * umask(:,:,1)553 hv _a(:,:) = e3v(:,:,1,Kaa) * vmask(:,:,1)552 hu(:,:,Kaa) = e3u(:,:,1,Kaa) * umask(:,:,1) 553 hv(:,:,Kaa) = e3v(:,:,1,Kaa) * vmask(:,:,1) 554 554 DO jk = 2, jpkm1 555 hu _a(:,:) = hu_a(:,:) + e3u(:,:,jk,Kaa) * umask(:,:,jk)556 hv _a(:,:) = hv_a(:,:) + e3v(:,:,jk,Kaa) * vmask(:,:,jk)555 hu(:,:,Kaa) = hu(:,:,Kaa) + e3u(:,:,jk,Kaa) * umask(:,:,jk) 556 hv(:,:,Kaa) = hv(:,:,Kaa) + e3v(:,:,jk,Kaa) * vmask(:,:,jk) 557 557 END DO 558 558 ! ! Inverse of the local depth 559 559 !!gm BUG ? don't understand the use of umask_i here ..... 560 r1_hu _a(:,:) = ssumask(:,:) / ( hu_a(:,:) + 1._wp - ssumask(:,:) )561 r1_hv _a(:,:) = ssvmask(:,:) / ( hv_a(:,:) + 1._wp - ssvmask(:,:) )560 r1_hu(:,:,Kaa) = ssumask(:,:) / ( hu(:,:,Kaa) + 1._wp - ssumask(:,:) ) 561 r1_hv(:,:,Kaa) = ssvmask(:,:) / ( hv(:,:,Kaa) + 1._wp - ssvmask(:,:) ) 562 562 ! 563 563 IF( ln_timing ) CALL timing_stop('dom_vvl_sf_nxt') … … 625 625 ! -------------------------------------- 626 626 ! - ML - e3u(:,:,:,Kbb) and e3v(:,:,:,Kbb) are allready computed in dynnxt 627 ! - JC - hu _b, hv_b, hur_b, hvr_b also627 ! - JC - hu(:,:,:,Kbb), hv(:,:,:,:,Kbb), hur_b, hvr_b also 628 628 629 629 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM/iscplrst.F90
r10978 r11053 108 108 gdept(:,:,:,Kbb) = gdept(:,:,:,Kmm) 109 109 gdepw(:,:,:,Kbb) = gdepw(:,:,:,Kmm) 110 hu _b (:,:) = hu_n (:,:)111 hv _b (:,:) = hv_n (:,:)112 r1_hu _b(:,:) = r1_hu_n(:,:)113 r1_hv _b(:,:) = r1_hv_n(:,:)110 hu (:,:,Kbb) = hu (:,:,Kmm) 111 hv (:,:,Kbb) = hv (:,:,Kmm) 112 r1_hu(:,:,Kbb) = r1_hu(:,:,Kmm) 113 r1_hv(:,:,Kbb) = r1_hv(:,:,Kmm) 114 114 ! 115 115 END SUBROUTINE iscpl_stp … … 240 240 ! t-, u- and v- water column thickness 241 241 ! ------------------------------------ 242 ht _n(:,:) = 0._wp ; hu_n(:,:) = 0._wp ; hv_n(:,:) = 0._wp242 ht(:,:) = 0._wp ; hu(:,:,Kmm) = 0._wp ; hv(:,:,Kmm) = 0._wp 243 243 DO jk = 1, jpkm1 244 hu _n(:,:) = hu_n(:,:) + e3u(:,:,jk,Kmm) * umask(:,:,jk)245 hv _n(:,:) = hv_n(:,:) + e3v(:,:,jk,Kmm) * vmask(:,:,jk)246 ht _n(:,:) = ht_n(:,:) + e3t(:,:,jk,Kmm) * tmask(:,:,jk)244 hu(:,:,Kmm) = hu(:,:,Kmm) + e3u(:,:,jk,Kmm) * umask(:,:,jk) 245 hv(:,:,Kmm) = hv(:,:,Kmm) + e3v(:,:,jk,Kmm) * vmask(:,:,jk) 246 ht(:,:) = ht(:,:) + e3t(:,:,jk,Kmm) * tmask(:,:,jk) 247 247 END DO 248 248 ! ! Inverse of the local depth 249 r1_hu _n(:,:) = 1._wp / ( hu_n(:,:) + 1._wp - ssumask(:,:) ) * ssumask(:,:)250 r1_hv _n(:,:) = 1._wp / ( hv_n(:,:) + 1._wp - ssvmask(:,:) ) * ssvmask(:,:)249 r1_hu(:,:,Kmm) = 1._wp / ( hu(:,:,Kmm) + 1._wp - ssumask(:,:) ) * ssumask(:,:) 250 r1_hv(:,:,Kmm) = 1._wp / ( hv(:,:,Kmm) + 1._wp - ssvmask(:,:) ) * ssvmask(:,:) 251 251 252 252 END IF -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/OCE/DOM/istate.F90
r10978 r11053 175 175 END DO 176 176 ! 177 uu_b(:,:,Kmm) = uu_b(:,:,Kmm) * r1_hu _n(:,:)178 vv_b(:,:,Kmm) = vv_b(:,:,Kmm) * r1_hv _n(:,:)177 uu_b(:,:,Kmm) = uu_b(:,:,Kmm) * r1_hu(:,:,Kmm) 178 vv_b(:,:,Kmm) = vv_b(:,:,Kmm) * r1_hv(:,:,Kmm) 179 179 ! 180 uu_b(:,:,Kbb) = uu_b(:,:,Kbb) * r1_hu _b(:,:)181 vv_b(:,:,Kbb) = vv_b(:,:,Kbb) * r1_hv _b(:,:)180 uu_b(:,:,Kbb) = uu_b(:,:,Kbb) * r1_hu(:,:,Kbb) 181 vv_b(:,:,Kbb) = vv_b(:,:,Kbb) * r1_hv(:,:,Kbb) 182 182 ! 183 183 END SUBROUTINE istate_init
Note: See TracChangeset
for help on using the changeset viewer.