Changeset 15683 for NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate
- Timestamp:
- 2022-02-02T16:49:18+01:00 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/BDY/bdytides.F90
r14250 r15683 69 69 INTEGER :: ii, ij ! dummy loop indices 70 70 INTEGER :: inum, igrd 71 INTEGER :: isz ! bdy data size71 INTEGER, DIMENSION(3) :: ilen0 ! length of boundary data (from OBC arrays) 72 72 INTEGER :: ios ! Local integer output status for namelist read 73 73 CHARACTER(len=80) :: clfile ! full file name for tidal input file … … 117 117 IF(lwp) WRITE(numout,*) ' ' 118 118 119 ! If FRS scheme is used, we assume that tidal is needed over the whole relaxation area 120 IF( cn_dyn2d(ib_bdy) == 'frs' ) THEN ; ilen0(:) = idx_bdy(ib_bdy)%nblen (:) 121 ELSE ; ilen0(:) = idx_bdy(ib_bdy)%nblenrim(:) 122 ENDIF 123 119 124 ! Allocate space for tidal harmonics data - get size from BDY data arrays 120 125 ! Allocate also slow varying data in the case of time splitting: … … 122 127 ! ----------------------------------------------------------------------- 123 128 IF( ASSOCIATED(dta%ssh) ) THEN ! we use bdy ssh on this mpi subdomain 124 isz =SIZE(dta%ssh)125 ALLOCATE( td%ssh0( i sz, nb_harmo, 2 ), td%ssh( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%ssh( isz) )129 !IF(lwp) WRITE(numout,*) ' nambdy_tide bdytides.F90 JCastillo Tide Update SSH: ', ilen0(1), SIZE(dta%ssh) 130 ALLOCATE( td%ssh0( ilen0(1), nb_harmo, 2 ), td%ssh( ilen0(1), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%ssh( ilen0(1) ) ) 126 131 dta_bdy_s(ib_bdy)%ssh(:) = 0._wp ! needed? 127 132 ENDIF 128 133 IF( ASSOCIATED(dta%u2d) ) THEN ! we use bdy u2d on this mpi subdomain 129 isz =SIZE(dta%u2d)130 ALLOCATE( td%u0 ( i sz, nb_harmo, 2 ), td%u ( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%u2d( isz) )134 !IF(lwp) WRITE(numout,*) ' nambdy_tide bdytides.F90 JCastillo Tide Update U: ', ilen0(2), SIZE(dta%u2d) 135 ALLOCATE( td%u0 ( ilen0(2), nb_harmo, 2 ), td%u ( ilen0(2), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%u2d( ilen0(2) ) ) 131 136 dta_bdy_s(ib_bdy)%u2d(:) = 0._wp ! needed? 132 137 ENDIF 133 138 IF( ASSOCIATED(dta%v2d) ) THEN ! we use bdy v2d on this mpi subdomain 134 isz =SIZE(dta%v2d)135 ALLOCATE( td%v0 ( i sz, nb_harmo, 2 ), td%v ( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%v2d( isz) )139 !IF(lwp) WRITE(numout,*) ' nambdy_tide bdytides.F90 JCastillo Tide Update V: ', ilen0(3), SIZE(dta%v2d) 140 ALLOCATE( td%v0 ( ilen0(3), nb_harmo, 2 ), td%v ( ilen0(3), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%v2d( ilen0(3) ) ) 136 141 dta_bdy_s(ib_bdy)%v2d(:) = 0._wp ! needed? 137 142 ENDIF … … 147 152 ! 148 153 ! SSH fields 154 IF( ASSOCIATED(dta%ssh) ) THEN ! we use bdy ssh on this mpi subdomain 149 155 clfile = TRIM(filtide)//'_grid_T.nc' 150 156 CALL iom_open( clfile , inum ) … … 153 159 CALL iom_get( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_z1', ztr(:,:) ) 154 160 CALL iom_get( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_z2', zti(:,:) ) 155 IF( ASSOCIATED(dta%ssh) ) THEN ! we use bdy ssh on this mpi subdomain156 161 DO ib = 1, SIZE(dta%ssh) 157 162 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 160 165 td%ssh0(ib,itide,2) = zti(ii,ij) 161 166 END DO 162 ENDIF163 167 END DO 164 168 CALL iom_close( inum ) 169 END IF 165 170 ! 166 171 ! U fields 172 IF( ASSOCIATED(dta%u2d) ) THEN ! we use bdy u2d on this mpi subdomain 167 173 clfile = TRIM(filtide)//'_grid_U.nc' 168 174 CALL iom_open( clfile , inum ) … … 171 177 CALL iom_get ( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_u1', ztr(:,:) ) 172 178 CALL iom_get ( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_u2', zti(:,:) ) 173 IF( ASSOCIATED(dta%u2d) ) THEN ! we use bdy u2d on this mpi subdomain174 179 DO ib = 1, SIZE(dta%u2d) 175 180 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 178 183 td%u0(ib,itide,2) = zti(ii,ij) 179 184 END DO 180 END IF181 185 END DO 182 CALL iom_close( inum ) 186 CALL iom_close( inum ) 187 END IF 183 188 ! 184 189 ! V fields 190 IF( ASSOCIATED(dta%v2d) ) THEN ! we use bdy v2d on this mpi subdomain 185 191 clfile = TRIM(filtide)//'_grid_V.nc' 186 192 CALL iom_open( clfile , inum ) … … 189 195 CALL iom_get ( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_v1', ztr(:,:) ) 190 196 CALL iom_get ( inum, jpdom_autoglo, TRIM(Wave(ntide(itide))%cname_tide)//'_v2', zti(:,:) ) 191 IF( ASSOCIATED(dta%v2d) ) THEN ! we use bdy v2d on this mpi subdomain192 197 DO ib = 1, SIZE(dta%v2d) 193 198 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) … … 196 201 td%v0(ib,itide,2) = zti(ii,ij) 197 202 END DO 198 END IF199 203 END DO 200 CALL iom_close( inum ) 204 CALL iom_close( inum ) 205 END IF 201 206 ! 202 207 DEALLOCATE( ztr, zti ) … … 214 219 ! ! SSH fields 215 220 IF( ASSOCIATED(dta%ssh) ) THEN ! we use bdy ssh on this mpi subdomain 216 isz = SIZE(dta%ssh)217 221 clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_T.nc' 218 222 CALL iom_open( clfile, inum ) 219 CALL fld_map( inum, 'z1', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) )220 td%ssh0(:,itide,1) = dta_read(1:i sz,1,1)221 CALL fld_map( inum, 'z2', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) )222 td%ssh0(:,itide,2) = dta_read(1:i sz,1,1)223 CALL fld_map( inum, 'z1', dta_read(1:ilen0(1),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) ) 224 td%ssh0(:,itide,1) = dta_read(1:ilen0(1),1,1) 225 CALL fld_map( inum, 'z2', dta_read(1:ilen0(1),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) ) 226 td%ssh0(:,itide,2) = dta_read(1:ilen0(1),1,1) 223 227 CALL iom_close( inum ) 224 228 ENDIF 225 229 ! ! U fields 226 230 IF( ASSOCIATED(dta%u2d) ) THEN ! we use bdy u2d on this mpi subdomain 227 isz = SIZE(dta%u2d)228 231 clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_U.nc' 229 232 CALL iom_open( clfile, inum ) 230 CALL fld_map( inum, 'u1', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) )231 td%u0(:,itide,1) = dta_read(1:i sz,1,1)232 CALL fld_map( inum, 'u2', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) )233 td%u0(:,itide,2) = dta_read(1:i sz,1,1)233 CALL fld_map( inum, 'u1', dta_read(1:ilen0(2),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) ) 234 td%u0(:,itide,1) = dta_read(1:ilen0(2),1,1) 235 CALL fld_map( inum, 'u2', dta_read(1:ilen0(2),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) ) 236 td%u0(:,itide,2) = dta_read(1:ilen0(2),1,1) 234 237 CALL iom_close( inum ) 235 238 ENDIF 236 239 ! ! V fields 237 240 IF( ASSOCIATED(dta%v2d) ) THEN ! we use bdy v2d on this mpi subdomain 238 isz = SIZE(dta%v2d)239 241 clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_V.nc' 240 242 CALL iom_open( clfile, inum ) 241 CALL fld_map( inum, 'v1', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) )242 td%v0(:,itide,1) = dta_read(1:i sz,1,1)243 CALL fld_map( inum, 'v2', dta_read(1:i sz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) )244 td%v0(:,itide,2) = dta_read(1:i sz,1,1)243 CALL fld_map( inum, 'v1', dta_read(1:ilen0(3),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) ) 244 td%v0(:,itide,1) = dta_read(1:ilen0(3),1,1) 245 CALL fld_map( inum, 'v2', dta_read(1:ilen0(3),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) ) 246 td%v0(:,itide,2) = dta_read(1:ilen0(3),1,1) 245 247 CALL iom_close( inum ) 246 248 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.