- Timestamp:
- 2016-11-25T17:17:41+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_NOC_2016/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r6140 r7342 100 100 & cn_ice_lim, nn_ice_lim_dta, & 101 101 & rn_ice_tem, rn_ice_sal, rn_ice_age, & 102 & ln_vol, nn_volctl, nn_rimwidth 102 & ln_vol, nn_volctl, nn_rimwidth, nb_jpk_bdy 103 103 ! 104 104 NAMELIST/nambdy_index/ ctypebdy, nbdyind, nbdybeg, nbdyend … … 209 209 dta_bdy(ib_bdy)%ll_u3d = .true. 210 210 dta_bdy(ib_bdy)%ll_v3d = .true. 211 CASE('neumann') 212 IF(lwp) WRITE(numout,*) ' Neumann conditions' 213 dta_bdy(ib_bdy)%ll_u3d = .false. 214 dta_bdy(ib_bdy)%ll_v3d = .false. 215 CASE('zerograd') 216 IF(lwp) WRITE(numout,*) ' Zero gradient for baroclinic velocities' 217 dta_bdy(ib_bdy)%ll_u3d = .false. 218 dta_bdy(ib_bdy)%ll_v3d = .false. 211 219 CASE('zero') 212 220 IF(lwp) WRITE(numout,*) ' Zero baroclinic velocities (runoff case)' … … 377 385 IF(lwp) WRITE(numout,*) 'No volume correction applied at open boundaries' 378 386 IF(lwp) WRITE(numout,*) 387 ENDIF 388 IF( nb_jpk_bdy > 0 ) THEN 389 IF(lwp) WRITE(numout,*) '*** open boundary will be interpolate in the vertical onto the native grid ***' 390 ELSE 391 IF(lwp) WRITE(numout,*) '*** open boundary will be read straight onto the native grid without vertical interpolation ***' 379 392 ENDIF 380 393 ENDIF … … 499 512 & nbrdta(jpbdta, jpbgrd, nb_bdy) ) 500 513 501 ALLOCATE( dta_global(jpbdtau, 1, jpk) ) 502 IF ( icount>0 ) ALLOCATE( dta_global2(jpbdtas, nrimmax, jpk) ) 514 IF( nb_jpk_bdy>0 ) THEN 515 ALLOCATE( dta_global(jpbdtau, 1, nb_jpk_bdy) ) 516 ALLOCATE( dta_global_z(jpbdtau, 1, nb_jpk_bdy) ) 517 ALLOCATE( dta_global_dz(jpbdtau, 1, nb_jpk_bdy) ) 518 ELSE 519 ALLOCATE( dta_global(jpbdtau, 1, jpk) ) 520 ALLOCATE( dta_global_z(jpbdtau, 1, jpk) ) ! needed ?? TODO 521 ALLOCATE( dta_global_dz(jpbdtau, 1, jpk) )! needed ?? TODO 522 ENDIF 523 524 IF ( icount>0 ) THEN 525 IF( nb_jpk_bdy>0 ) THEN 526 ALLOCATE( dta_global2(jpbdtas, nrimmax, nb_jpk_bdy) ) 527 ALLOCATE( dta_global2_z(jpbdtas, nrimmax, nb_jpk_bdy) ) 528 ALLOCATE( dta_global2_dz(jpbdtas, nrimmax, nb_jpk_bdy) ) 529 ELSE 530 ALLOCATE( dta_global2(jpbdtas, nrimmax, jpk) ) 531 ALLOCATE( dta_global2_z(jpbdtas, nrimmax, jpk) ) ! needed ?? TODO 532 ALLOCATE( dta_global2_dz(jpbdtas, nrimmax, jpk) )! needed ?? TODO 533 ENDIF 534 ENDIF 503 535 ! 504 536 ENDIF … … 1092 1124 ! = 0 elsewhere 1093 1125 1126 bdytmask(:,:) = ssmask(:,:) 1127 1094 1128 IF( ln_mask_file ) THEN 1095 1129 CALL iom_open( cn_mask_file, inum ) … … 1108 1142 CALL lbc_lnk( bdyumask(:,:), 'U', 1. ) ; CALL lbc_lnk( bdyvmask(:,:), 'V', 1. ) ! Lateral boundary cond. 1109 1143 1110 1111 ! Mask corrections1112 ! ----------------1113 DO ik = 1, jpkm11114 DO ij = 1, jpj1115 DO ii = 1, jpi1116 tmask(ii,ij,ik) = tmask(ii,ij,ik) * bdytmask(ii,ij)1117 umask(ii,ij,ik) = umask(ii,ij,ik) * bdyumask(ii,ij)1118 vmask(ii,ij,ik) = vmask(ii,ij,ik) * bdyvmask(ii,ij)1119 END DO1120 END DO1121 DO ij = 2, jpjm11122 DO ii = 2, jpim11123 fmask(ii,ij,ik) = fmask(ii,ij,ik) * bdytmask(ii,ij ) * bdytmask(ii+1,ij ) &1124 & * bdytmask(ii,ij+1) * bdytmask(ii+1,ij+1)1125 END DO1126 END DO1127 END DO1128 tmask_i (:,:) = ssmask(:,:) * tmask_i(:,:)1129 !1130 1144 ENDIF ! ln_mask_file=.TRUE. 1131 1145 1132 bdytmask(:,:) = ssmask(:,:)1133 1146 IF( .NOT.ln_mask_file ) THEN 1134 1147 ! If .not. ln_mask_file then we need to derive mask on U and V grid from mask on T grid here.
Note: See TracChangeset
for help on using the changeset viewer.