- Timestamp:
- 2016-11-28T17:04:10+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90
r5215 r7351 29 29 PUBLIC bdy_dyn3d_dmp ! routine called by step 30 30 31 !! * Substitutions32 # include "domzgr_substitute.h90"33 31 !!---------------------------------------------------------------------- 34 32 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 45 43 !! 46 44 !!---------------------------------------------------------------------- 47 INTEGER, INTENT( in ) :: kt! Main time step counter48 ! !49 INTEGER :: ib_bdy! loop index50 !! 51 45 INTEGER, INTENT(in) :: kt ! Main time step counter 46 ! 47 INTEGER :: ib_bdy ! loop index 48 !!---------------------------------------------------------------------- 49 ! 52 50 DO ib_bdy=1, nb_bdy 53 51 ! 54 52 SELECT CASE( cn_dyn3d(ib_bdy) ) 55 CASE('none') 56 CYCLE 57 CASE('frs') 58 CALL bdy_dyn3d_frs( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 59 CASE('specified') 60 CALL bdy_dyn3d_spe( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 61 CASE('zero') 62 CALL bdy_dyn3d_zro( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 63 CASE('orlanski') 64 CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.false. ) 65 CASE('orlanski_npo') 66 CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.true. ) 67 CASE DEFAULT 68 CALL ctl_stop( 'bdy_dyn3d : unrecognised option for open boundaries for baroclinic velocities' ) 53 CASE('none') ; CYCLE 54 CASE('frs' ) ; CALL bdy_dyn3d_frs( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 55 CASE('specified') ; CALL bdy_dyn3d_spe( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 56 CASE('zero') ; CALL bdy_dyn3d_zro( idx_bdy(ib_bdy), dta_bdy(ib_bdy), kt, ib_bdy ) 57 CASE('orlanski' ) ; CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.false. ) 58 CASE('orlanski_npo'); CALL bdy_dyn3d_orlanski( idx_bdy(ib_bdy), dta_bdy(ib_bdy), ib_bdy, ll_npo=.true. ) 59 CASE DEFAULT ; CALL ctl_stop( 'bdy_dyn3d : unrecognised option for open boundaries for baroclinic velocities' ) 69 60 END SELECT 70 END DO71 61 END DO 62 ! 72 63 END SUBROUTINE bdy_dyn3d 64 73 65 74 66 SUBROUTINE bdy_dyn3d_spe( idx, dta, kt , ib_bdy ) … … 80 72 !! 81 73 !!---------------------------------------------------------------------- 82 INTEGER :: kt83 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices84 TYPE(OBC_DATA) , INTENT(in) :: dta! OBC external data85 INTEGER ,INTENT(in) :: ib_bdy ! BDY set index86 ! !74 INTEGER , INTENT(in) :: kt ! time step index 75 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 76 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 77 INTEGER , INTENT(in) :: ib_bdy ! BDY set index 78 ! 87 79 INTEGER :: jb, jk ! dummy loop indices 88 80 INTEGER :: ii, ij, igrd ! local integers … … 112 104 CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy ) 113 105 ! 114 IF( kt .eq. nit000 )CLOSE( unit = 102 )115 106 IF( kt == nit000 ) CLOSE( unit = 102 ) 107 ! 116 108 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_spe') 117 109 ! 118 110 END SUBROUTINE bdy_dyn3d_spe 119 111 112 120 113 SUBROUTINE bdy_dyn3d_zro( idx, dta, kt, ib_bdy ) 121 114 !!---------------------------------------------------------------------- … … 125 118 !! 126 119 !!---------------------------------------------------------------------- 127 INTEGER :: kt128 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices129 TYPE(OBC_DATA) , INTENT(in) :: dta! OBC external data120 INTEGER , INTENT(in) :: kt ! time step index 121 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 122 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 130 123 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 131 ! !124 ! 132 125 INTEGER :: ib, ik ! dummy loop indices 133 INTEGER :: ii, ij, igrd , zcoef! local integers126 INTEGER :: ii, ij, igrd ! local integers 134 127 REAL(wp) :: zwgt ! boundary weight 135 128 !!---------------------------------------------------------------------- … … 157 150 CALL lbc_bdy_lnk( ua, 'U', -1., ib_bdy ) ; CALL lbc_bdy_lnk( va, 'V', -1.,ib_bdy ) ! Boundary points should be updated 158 151 ! 159 IF( kt .eq. nit000 )CLOSE( unit = 102 )160 161 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_zro')162 152 IF( kt == nit000 ) CLOSE( unit = 102 ) 153 ! 154 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_zro') 155 ! 163 156 END SUBROUTINE bdy_dyn3d_zro 157 164 158 165 159 SUBROUTINE bdy_dyn3d_frs( idx, dta, kt, ib_bdy ) … … 174 168 !! topography. Tellus, 365-382. 175 169 !!---------------------------------------------------------------------- 176 INTEGER :: kt177 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices178 TYPE(OBC_DATA) , INTENT(in) :: dta! OBC external data170 INTEGER , INTENT(in) :: kt ! time step index 171 TYPE(OBC_INDEX), INTENT(in) :: idx ! OBC indices 172 TYPE(OBC_DATA) , INTENT(in) :: dta ! OBC external data 179 173 INTEGER, INTENT(in) :: ib_bdy ! BDY set index 180 ! !174 ! 181 175 INTEGER :: jb, jk ! dummy loop indices 182 176 INTEGER :: ii, ij, igrd ! local integers … … 208 202 CALL lbc_bdy_lnk( va, 'V', -1., ib_bdy ) 209 203 ! 210 IF( kt .eq. nit000 )CLOSE( unit = 102 )211 212 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_frs')213 204 IF( kt == nit000 ) CLOSE( unit = 102 ) 205 ! 206 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_frs') 207 ! 214 208 END SUBROUTINE bdy_dyn3d_frs 209 215 210 216 211 SUBROUTINE bdy_dyn3d_orlanski( idx, dta, ib_bdy, ll_npo ) … … 259 254 !! 260 255 !!---------------------------------------------------------------------- 261 INTEGER :: kt262 ! !256 INTEGER, INTENT(in) :: kt ! time step index 257 ! 263 258 INTEGER :: jb, jk ! dummy loop indices 259 INTEGER :: ib_bdy ! loop index 264 260 INTEGER :: ii, ij, igrd ! local integers 265 261 REAL(wp) :: zwgt ! boundary weight 266 INTEGER :: ib_bdy ! loop index 267 !!---------------------------------------------------------------------- 268 ! 269 IF( nn_timing == 1 ) CALL timing_start('bdy_dyn3d_dmp') 270 ! 271 !------------------------------------------------------- 272 262 !!---------------------------------------------------------------------- 263 ! 264 IF( nn_timing == 1 ) CALL timing_start('bdy_dyn3d_dmp') 265 ! 273 266 DO ib_bdy=1, nb_bdy 274 267 IF ( ln_dyn3d_dmp(ib_bdy) .and. cn_dyn3d(ib_bdy) /= 'none' ) THEN … … 295 288 END DO 296 289 ENDIF 297 END DO290 END DO 298 291 ! 299 292 CALL lbc_lnk( ua, 'U', -1. ) ; CALL lbc_lnk( va, 'V', -1. ) ! Boundary points should be updated 300 293 ! 301 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_dmp')302 294 IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_dmp') 295 ! 303 296 END SUBROUTINE bdy_dyn3d_dmp 304 297 … … 311 304 WRITE(*,*) 'bdy_dyn3d: You should not have seen this print! error?', kt 312 305 END SUBROUTINE bdy_dyn3d 313 314 306 SUBROUTINE bdy_dyn3d_dmp( kt ) ! Empty routine 315 307 WRITE(*,*) 'bdy_dyn3d_dmp: You should not have seen this print! error?', kt 316 308 END SUBROUTINE bdy_dyn3d_dmp 317 318 309 #endif 319 310
Note: See TracChangeset
for help on using the changeset viewer.