Changeset 10985 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP
- Timestamp:
- 2019-05-15T21:19:35+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcbbl.F90
r10966 r10985 20 20 !! trc_bbl : update the tracer trends due to the bottom boundary layer (advective and/or diffusive) 21 21 !!---------------------------------------------------------------------- 22 USE oce_trc ! ocean dynamics and active tracers variables22 USE oce_trc ! ocean dynamics and passive tracers variables 23 23 USE trc ! ocean passive tracers variables 24 24 USE trd_oce ! trends: ocean variables … … 36 36 CONTAINS 37 37 38 SUBROUTINE trc_bbl( kt, Kbb, Kmm, Krhs )38 SUBROUTINE trc_bbl( kt, Kbb, Kmm, ptr, Krhs ) 39 39 !!---------------------------------------------------------------------- 40 40 !! *** ROUTINE bbl *** … … 45 45 !! 46 46 !!---------------------------------------------------------------------- 47 INTEGER, INTENT( in ) :: kt ! ocean time-step 48 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! time level indices 47 INTEGER, INTENT( in ) :: kt ! ocean time-step 48 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! time level indices 49 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 49 50 INTEGER :: jn ! loop index 50 51 CHARACTER (len=22) :: charout … … 61 62 IF( l_trdtrc ) THEN 62 63 ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) ! temporary save of trends 63 ztrtrd(:,:,:,:) = tr(:,:,:,:,Krhs)64 ztrtrd(:,:,:,:) = ptr(:,:,:,:,Krhs) 64 65 ENDIF 65 66 … … 67 68 IF( nn_bbl_ldf == 1 ) THEN 68 69 ! 69 CALL tra_bbl_dif( tr(:,:,:,:,Kbb),tr(:,:,:,:,Krhs), jptra, Kmm )70 CALL tra_bbl_dif( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm ) 70 71 IF( ln_ctl ) THEN 71 72 WRITE(charout, FMT="(' bbl_dif')") ; CALL prt_ctl_trc_info(charout) 72 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )73 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 73 74 ENDIF 74 75 ! … … 78 79 IF( nn_bbl_adv /= 0 ) THEN 79 80 ! 80 CALL tra_bbl_adv( tr(:,:,:,:,Kbb),tr(:,:,:,:,Krhs), jptra, Kmm )81 CALL tra_bbl_adv( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm ) 81 82 IF( ln_ctl ) THEN 82 83 WRITE(charout, FMT="(' bbl_adv')") ; CALL prt_ctl_trc_info(charout) 83 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )84 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 84 85 ENDIF 85 86 ! … … 88 89 IF( l_trdtrc ) THEN ! save the horizontal diffusive trends for further diagnostics 89 90 DO jn = 1, jptra 90 ztrtrd(:,:,:,jn) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:,jn)91 ztrtrd(:,:,:,jn) = ptr(:,:,:,jn,Krhs) - ztrtrd(:,:,:,jn) 91 92 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) ) 92 93 END DO -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcdmp.F90
r10966 r10985 63 63 64 64 65 SUBROUTINE trc_dmp( kt, Kbb, Kmm, Krhs )65 SUBROUTINE trc_dmp( kt, Kbb, Kmm, ptr, Krhs ) 66 66 !!---------------------------------------------------------------------- 67 67 !! *** ROUTINE trc_dmp *** … … 82 82 !! - save the trends ('key_trdmxl_trc') 83 83 !!---------------------------------------------------------------------- 84 INTEGER, INTENT(in) :: kt ! ocean time-step index 85 INTEGER, INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 84 INTEGER, INTENT(in ) :: kt ! ocean time-step index 85 INTEGER, INTENT(in ) :: Kbb, Kmm, Krhs ! time level indices 86 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 86 87 ! 87 88 INTEGER :: ji, jj, jk, jn, jl ! dummy loop indices … … 101 102 DO jn = 1, jptra ! tracer loop 102 103 ! ! =========== 103 IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) ! save trends104 IF( l_trdtrc ) ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) ! save trends 104 105 ! 105 106 IF( ln_trc_ini(jn) ) THEN ! update passive tracers arrays with input data read from file … … 114 115 DO jj = 2, jpjm1 115 116 DO ji = fs_2, fs_jpim1 ! vector opt. 116 tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) -tr(ji,jj,jk,jn,Kbb) )117 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 117 118 END DO 118 119 END DO … … 124 125 DO ji = fs_2, fs_jpim1 ! vector opt. 125 126 IF( avt(ji,jj,jk) <= avt_c ) THEN 126 tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) -tr(ji,jj,jk,jn,Kbb) )127 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 127 128 ENDIF 128 129 END DO … … 135 136 DO ji = fs_2, fs_jpim1 ! vector opt. 136 137 IF( gdept(ji,jj,jk,Kmm) >= hmlp (ji,jj) ) THEN 137 tr(ji,jj,jk,jn,Krhs) = tr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) -tr(ji,jj,jk,jn,Kbb) )138 ptr(ji,jj,jk,jn,Krhs) = ptr(ji,jj,jk,jn,Krhs) + restotr(ji,jj,jk) * ( ztrcdta(ji,jj,jk) - ptr(ji,jj,jk,jn,Kbb) ) 138 139 END IF 139 140 END DO … … 146 147 ! 147 148 IF( l_trdtrc ) THEN 148 ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:)149 ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) - ztrtrd(:,:,:) 149 150 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_dmp, ztrtrd ) 150 151 END IF … … 160 161 WRITE(charout, FMT="('dmp ')") 161 162 CALL prt_ctl_trc_info(charout) 162 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )163 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 163 164 ENDIF 164 165 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcldf.F90
r10980 r10985 51 51 CONTAINS 52 52 53 SUBROUTINE trc_ldf( kt, Kbb, Kmm, Krhs )53 SUBROUTINE trc_ldf( kt, Kbb, Kmm, ptr, Krhs ) 54 54 !!---------------------------------------------------------------------- 55 55 !! *** ROUTINE tra_ldf *** … … 58 58 !! 59 59 !!---------------------------------------------------------------------- 60 INTEGER, INTENT( in ) :: kt ! ocean time-step index 61 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! ocean time-level index 60 INTEGER, INTENT(in ) :: kt ! ocean time-step index 61 INTEGER, INTENT(in ) :: Kbb, Kmm, Krhs ! ocean time-level index 62 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 62 63 ! 63 64 INTEGER :: ji, jj, jk, jn 64 65 REAL(wp) :: zdep 65 66 CHARACTER (len=22) :: charout 66 REAL(wp), DIMENSION(jpi,jpj,jpk):: zahu, zahv67 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd67 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zahu, zahv 68 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztrtrd 68 69 !!---------------------------------------------------------------------- 69 70 ! … … 74 75 IF( l_trdtrc ) THEN 75 76 ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) 76 ztrtrd(:,:,:,:) = tr(:,:,:,:,Krhs)77 ztrtrd(:,:,:,:) = ptr(:,:,:,:,Krhs) 77 78 ENDIF 78 79 ! !* set the lateral diffusivity coef. for passive tracer … … 95 96 CASE ( np_lap ) ! iso-level laplacian 96 97 CALL tra_ldf_lap ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 97 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs),jptra, 1 )98 & ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 98 99 CASE ( np_lap_i ) ! laplacian : standard iso-neutral operator (Madec) 99 100 CALL tra_ldf_iso ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 100 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Kbb),tr(:,:,:,:,Krhs), jptra, 1 )101 & ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 101 102 CASE ( np_lap_it ) ! laplacian : triad iso-neutral operator (griffies) 102 103 CALL tra_ldf_triad( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 103 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Kbb),tr(:,:,:,:,Krhs), jptra, 1 )104 & ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, 1 ) 104 105 CASE ( np_blp , np_blp_i , np_blp_it ) ! bilaplacian: all operator (iso-level, -neutral) 105 106 CALL tra_ldf_blp ( kt, Kmm, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 106 & tr(:,:,:,:,Kbb) ,tr(:,:,:,:,Krhs), jptra, nldf_trc )107 & ptr(:,:,:,:,Kbb) , ptr(:,:,:,:,Krhs), jptra, nldf_trc ) 107 108 END SELECT 108 109 ! 109 110 IF( l_trdtrc ) THEN ! send the trends for further diagnostics 110 111 DO jn = 1, jptra 111 ztrtrd(:,:,:,jn) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:,jn)112 ztrtrd(:,:,:,jn) = ptr(:,:,:,jn,Krhs) - ztrtrd(:,:,:,jn) 112 113 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_ldf, ztrtrd(:,:,:,jn) ) 113 114 END DO … … 118 119 WRITE(charout, FMT="('ldf ')") 119 120 CALL prt_ctl_trc_info(charout) 120 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )121 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 121 122 ENDIF 122 123 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcrad.F90
r10966 r10985 37 37 CONTAINS 38 38 39 SUBROUTINE trc_rad( kt, Kbb, Kmm, Krhs )39 SUBROUTINE trc_rad( kt, Kbb, Kmm, Krhs, ptr ) 40 40 !!---------------------------------------------------------------------- 41 41 !! *** ROUTINE trc_rad *** … … 52 52 !! (the total CFC content is not strictly preserved) 53 53 !!---------------------------------------------------------------------- 54 INTEGER, INTENT(in) :: kt ! ocean time-step index 55 INTEGER, INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 54 INTEGER, INTENT(in ) :: kt ! ocean time-step index 55 INTEGER, INTENT(in ) :: Kbb, Kmm, Krhs ! time level indices 56 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 56 57 ! 57 58 CHARACTER (len=22) :: charout … … 60 61 IF( ln_timing ) CALL timing_start('trc_rad') 61 62 ! 62 IF( ln_age ) CALL trc_rad_sms( kt, Kmm, Krhs, tr(:,:,:,:,Kbb),tr(:,:,:,:,Kmm), jp_age , jp_age ) ! AGE63 IF( ll_cfc ) CALL trc_rad_sms( kt, Kmm, Krhs, tr(:,:,:,:,Kbb),tr(:,:,:,:,Kmm), jp_cfc0, jp_cfc1 ) ! CFC model64 IF( ln_c14 ) CALL trc_rad_sms( kt, Kmm, Krhs, tr(:,:,:,:,Kbb),tr(:,:,:,:,Kmm), jp_c14 , jp_c14 ) ! C1465 IF( ln_pisces ) CALL trc_rad_sms( kt, Kmm, Krhs, tr(:,:,:,:,Kbb),tr(:,:,:,:,Kmm), jp_pcs0, jp_pcs1, cpreserv='Y' ) ! PISCES model66 IF( ln_my_trc ) CALL trc_rad_sms( kt, Kmm, Krhs, tr(:,:,:,:,Kbb),tr(:,:,:,:,Kmm), jp_myt0, jp_myt1 ) ! MY_TRC model63 IF( ln_age ) CALL trc_rad_sms( kt, Kmm, Krhs, ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kmm), jp_age , jp_age ) ! AGE 64 IF( ll_cfc ) CALL trc_rad_sms( kt, Kmm, Krhs, ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kmm), jp_cfc0, jp_cfc1 ) ! CFC model 65 IF( ln_c14 ) CALL trc_rad_sms( kt, Kmm, Krhs, ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kmm), jp_c14 , jp_c14 ) ! C14 66 IF( ln_pisces ) CALL trc_rad_sms( kt, Kmm, Krhs, ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kmm), jp_pcs0, jp_pcs1, cpreserv='Y' ) ! PISCES model 67 IF( ln_my_trc ) CALL trc_rad_sms( kt, Kmm, Krhs, ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Kmm), jp_myt0, jp_myt1 ) ! MY_TRC model 67 68 ! 68 69 IF(ln_ctl) THEN ! print mean trends (used for debugging) 69 70 WRITE(charout, FMT="('rad')") 70 71 CALL prt_ctl_trc_info( charout ) 71 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm )72 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Kmm), mask=tmask, clinfo=ctrcnm ) 72 73 ENDIF 73 74 ! -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcsbc.F90
r10966 r10985 37 37 CONTAINS 38 38 39 SUBROUTINE trc_sbc ( kt, Kmm, Krhs )39 SUBROUTINE trc_sbc ( kt, Kmm, ptr, Krhs ) 40 40 !!---------------------------------------------------------------------- 41 41 !! *** ROUTINE trc_sbc *** … … 58 58 !! 59 59 !!---------------------------------------------------------------------- 60 INTEGER, INTENT(in) :: kt ! ocean time-step index 61 INTEGER, INTENT(in) :: Kmm, Krhs ! time level indices 60 INTEGER, INTENT(in ) :: kt ! ocean time-step index 61 INTEGER, INTENT(in ) :: Kmm, Krhs ! time level indices 62 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 62 63 ! 63 64 INTEGER :: ji, jj, jn ! dummy loop indices … … 119 120 DO jj = 2, jpj 120 121 DO ji = fs_2, fs_jpim1 ! vector opt. 121 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * tr(ji,jj,1,jn,Kmm)122 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * ptr(ji,jj,1,jn,Kmm) 122 123 END DO 123 124 END DO … … 138 139 ztfx = zftra ! net tracer flux 139 140 ! 140 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * tr(ji,jj,1,jn,Kmm) )141 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * ptr(ji,jj,1,jn,Kmm) ) 141 142 IF ( zdtra < 0. ) THEN 142 zratio = -zdtra * zse3t * r2dttrc / ( tr(ji,jj,1,jn,Kmm) + zrtrn )143 zratio = -zdtra * zse3t * r2dttrc / ( ptr(ji,jj,1,jn,Kmm) + zrtrn ) 143 144 zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 144 145 ENDIF … … 153 154 DO jn = 1, jptra 154 155 ! 155 IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) ! save trends156 IF( l_trdtrc ) ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) ! save trends 156 157 ! 157 158 DO jj = 2, jpj 158 159 DO ji = fs_2, fs_jpim1 ! vector opt. 159 160 zse3t = zfact / e3t(ji,jj,1,Kmm) 160 tr(ji,jj,1,jn,Krhs) =tr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t161 ptr(ji,jj,1,jn,Krhs) = ptr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 161 162 END DO 162 163 END DO 163 164 ! 164 165 IF( l_trdtrc ) THEN 165 ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:)166 ztrtrd(:,:,:) = ptr(:,:,:,jn,Krhs) - ztrtrd(:,:,:) 166 167 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_nsr, ztrtrd ) 167 168 END IF … … 184 185 IF( ln_ctl ) THEN 185 186 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) 186 CALL prt_ctl_trc( tab4d= tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )187 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 187 188 ENDIF 188 189 IF( l_trdtrc ) DEALLOCATE( ztrtrd ) … … 197 198 !!---------------------------------------------------------------------- 198 199 CONTAINS 199 SUBROUTINE trc_sbc (kt) ! Empty routine 200 INTEGER, INTENT(in) :: kt 200 SUBROUTINE trc_sbc ( kt, Kmm, ptr, Krhs ) ! Empty routine 201 INTEGER, INTENT(in ) :: kt ! ocean time-step index 202 INTEGER, INTENT(in ) :: Kmm, Krhs ! time level indices 203 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 201 204 WRITE(*,*) 'trc_sbc: You should not have seen this print! error?', kt 202 205 END SUBROUTINE trc_sbc -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trctrp.F90
r10966 r10985 61 61 IF( .NOT. lk_c1d ) THEN 62 62 ! 63 CALL trc_sbc ( kt, Kmm, Krhs )! surface boundary condition64 IF( ln_trabbl ) CALL trc_bbl ( kt, Kbb, Kmm, Krhs )! advective (and/or diffusive) bottom boundary layer scheme65 IF( ln_trcdmp ) CALL trc_dmp ( kt, Kbb, Kmm, Krhs )! internal damping trends63 CALL trc_sbc ( kt, Kmm, tr, Krhs ) ! surface boundary condition 64 IF( ln_trabbl ) CALL trc_bbl ( kt, Kbb, Kmm, tr, Krhs ) ! advective (and/or diffusive) bottom boundary layer scheme 65 IF( ln_trcdmp ) CALL trc_dmp ( kt, Kbb, Kmm, tr, Krhs ) ! internal damping trends 66 66 IF( ln_bdy ) CALL trc_bdy_dmp( kt, Kbb, Krhs ) ! BDY damping trends 67 67 CALL trc_adv ( kt, Kbb, Kmm, tr, Krhs ) ! horizontal & vertical advection … … 73 73 ENDIF 74 74 ! 75 CALL trc_ldf ( kt, Kbb, Kmm, Krhs )! lateral mixing75 CALL trc_ldf ( kt, Kbb, Kmm, tr, Krhs ) ! lateral mixing 76 76 #if defined key_agrif 77 77 IF(.NOT. Agrif_Root()) CALL Agrif_Sponge_trc ! tracers sponge … … 79 79 CALL trc_zdf ( kt, Kbb, Kmm, Krhs, tr, Kaa ) ! vert. mixing & after tracer ==> after 80 80 CALL trc_nxt ( kt, Kbb, Kmm, Krhs ) ! tracer fields at next time step 81 IF( ln_trcrad ) CALL trc_rad ( kt, Kbb, Kmm, Krhs )! Correct artificial negative concentrations81 IF( ln_trcrad ) CALL trc_rad ( kt, Kbb, Kmm, Krhs, tr ) ! Correct artificial negative concentrations 82 82 IF( ln_trcdmp_clo ) CALL trc_dmp_clo( kt, Kbb, Kmm ) ! internal damping trends on closed seas only 83 83 84 84 ! 85 85 ELSE ! 1D vertical configuration 86 CALL trc_sbc( kt, Kmm, Krhs )! surface boundary condition87 IF( ln_trcdmp ) CALL trc_dmp( kt, Kbb, Kmm, Krhs )! internal damping trends86 CALL trc_sbc( kt, Kmm, tr, Krhs ) ! surface boundary condition 87 IF( ln_trcdmp ) CALL trc_dmp( kt, Kbb, Kmm, tr, Krhs ) ! internal damping trends 88 88 CALL trc_zdf( kt, Kbb, Kmm, Krhs, tr, Kaa ) ! vert. mixing & after tracer ==> after 89 89 CALL trc_nxt( kt, Kbb, Kmm, Krhs ) ! tracer fields at next time step 90 IF( ln_trcrad ) CALL trc_rad( kt, Kbb, Kmm, Krhs )! Correct artificial negative concentrations90 IF( ln_trcrad ) CALL trc_rad( kt, Kbb, Kmm, Krhs, tr ) ! Correct artificial negative concentrations 91 91 ! 92 92 END IF
Note: See TracChangeset
for help on using the changeset viewer.