- Timestamp:
- 2020-05-14T21:46:00+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Property svn:externals
-
old new 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/TOP/trcbdy.F90
r12178 r12928 37 37 CONTAINS 38 38 39 SUBROUTINE trc_bdy( kt )39 SUBROUTINE trc_bdy( kt, Kbb, Kmm, Krhs ) 40 40 !!---------------------------------------------------------------------- 41 41 !! *** SUBROUTINE trc_bdy *** … … 44 44 !! 45 45 !!---------------------------------------------------------------------- 46 INTEGER, INTENT( in ) :: kt ! Main time step counter 46 INTEGER, INTENT( in ) :: kt ! Main time step counter 47 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! time level indices 47 48 !! 48 49 INTEGER :: ib_bdy ,ir, jn ,igrd ! Loop indices … … 70 71 CASE('none' ) ; CYCLE 71 72 CASE('frs' ) ! treat the whole boundary at once 72 IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy), tr a(:,:,:,jn), ztrc*zfac )73 IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc*zfac ) 73 74 CASE('specified' ) ! treat the whole rim at once 74 IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy), tr a(:,:,:,jn), ztrc*zfac )75 CASE('neumann' ) ; CALL bdy_nmn( idx_bdy(ib_bdy), igrd , tr a(:,:,:,jn) ) ! tra masked76 CASE('orlanski' ) ; CALL bdy_orl( idx_bdy(ib_bdy), tr b(:,:,:,jn), tra(:,:,:,jn), ztrc*zfac, ll_npo=.false. )77 CASE('orlanski_npo') ; CALL bdy_orl( idx_bdy(ib_bdy), tr b(:,:,:,jn), tra(:,:,:,jn), ztrc*zfac, ll_npo=.true. )75 IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy), tr(:,:,:,jn,Krhs), ztrc*zfac ) 76 CASE('neumann' ) ; CALL bdy_nmn( idx_bdy(ib_bdy), igrd , tr(:,:,:,jn,Krhs) ) ! tra masked 77 CASE('orlanski' ) ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.false. ) 78 CASE('orlanski_npo') ; CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.true. ) 78 79 CASE DEFAULT ; CALL ctl_stop( 'trc_bdy : unrecognised option for open boundaries for passive tracers' ) 79 80 END SELECT … … 95 96 END DO 96 97 IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN ! if need to send/recv in at least one direction 97 CALL lbc_lnk( ' bdytra', tsa, 'T', 1., kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 )98 CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T', 1., kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 98 99 END IF 99 100 ! … … 105 106 106 107 107 SUBROUTINE trc_bdy_dmp( kt )108 SUBROUTINE trc_bdy_dmp( kt, Kbb, Krhs ) 108 109 !!---------------------------------------------------------------------- 109 110 !! *** SUBROUTINE trc_bdy_dmp *** … … 114 115 !!---------------------------------------------------------------------- 115 116 INTEGER, INTENT(in) :: kt 117 INTEGER, INTENT(in) :: Kbb, Krhs ! time level indices 116 118 !! 117 119 INTEGER :: jn ! Tracer index … … 134 136 zwgt = idx_bdy(ib_bdy)%nbd(ib,igrd) 135 137 DO ik = 1, jpkm1 136 zta = zwgt * ( trcdta_bdy(jn, ib_bdy)%trc(ib,ik) - tr b(ii,ij,ik,jn) ) * tmask(ii,ij,ik)137 tr a(ii,ij,ik,jn) = tra(ii,ij,ik,jn) + zta138 zta = zwgt * ( trcdta_bdy(jn, ib_bdy)%trc(ib,ik) - tr(ii,ij,ik,jn,Kbb) ) * tmask(ii,ij,ik) 139 tr(ii,ij,ik,jn,Krhs) = tr(ii,ij,ik,jn,Krhs) + zta 138 140 END DO 139 141 END DO
Note: See TracChangeset
for help on using the changeset viewer.