Changeset 1257 for trunk/NEMO/TOP_SRC/TRP/trcrad.F90
- Timestamp:
- 2009-01-13T11:34:10+01:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/TRP/trcrad.F90
r1193 r1257 15 15 USE oce_trc ! ocean dynamics and tracers variables 16 16 USE trp_trc ! ocean passive tracers variables 17 USE trctrp_lec , ONLY : ln_trcadv_tvd, ln_trcadv_cen218 17 USE trdmld_trc 19 18 USE trdmld_trc_oce … … 24 23 PRIVATE 25 24 26 PUBLIC trc_rad ! routine called by trcstp.F9025 PUBLIC trc_rad ! routine called by trcstp.F90 27 26 28 27 !! * Substitutions … … 61 60 ENDIF 62 61 63 IF( lk_cfc ) CALL trc_rad_sms( kt, trb, trn, jp_cfc0, jp_cfc1 ) ! CFC model 64 IF( lk_lobster ) CALL trc_rad_sms( kt, trb, trn, jp_lob0, jp_lob1, cpreserv='Y' ) ! LOBSTER model 65 IF( lk_pisces ) CALL trc_rad_sms( kt, trb, trn, jp_pcs0, jp_pcs1, cpreserv='Y' ) ! PISCES model 66 IF( lk_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0, jp_myt1 ) ! MY_TRC model 62 IF( lk_cfc ) CALL trc_rad_sms( kt, trb, trn, jp_cfc0 , jp_cfc1 ) ! CFC model 63 IF( lk_c14b ) CALL trc_rad_sms( kt, trb, trn, jp_c14b0, jp_c14b1 ) ! bomb C14 64 IF( lk_lobster ) CALL trc_rad_sms( kt, trb, trn, jp_lob0 , jp_lob1, cpreserv='Y' ) ! LOBSTER model 65 IF( lk_pisces ) CALL trc_rad_sms( kt, trb, trn, jp_pcs0 , jp_pcs1, cpreserv='Y' ) ! PISCES model 66 IF( lk_my_trc ) CALL trc_rad_sms( kt, trb, trn, jp_myt0 , jp_myt1 ) ! MY_TRC model 67 67 68 68 … … 110 110 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrtrdb ! workspace arrays 111 111 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrtrdn ! workspace arrays 112 REAL(wp) :: zs2rdt 112 113 LOGICAL :: lldebug = .FALSE. 113 114 … … 137 138 DO jj = 1, jpj 138 139 DO ji = 1, jpi 139 zvolk = e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) &140 zvolk = cvol(ji,jj,jk) 140 141 # if defined key_off_degrad 141 & * facvol(ji,jj,jk) &142 zvolk = zvolk * facvol(ji,jj,jk) 142 143 # endif 143 & * tmask(ji,jj,jk) * tmask_i(ji,jj) 144 145 ztrcorb = ztrcorb + MIN( 0., ptrb(ji,jj,jk,jn) ) * zvolk 146 ztrcorn = ztrcorn + MIN( 0., ptrn(ji,jj,jk,jn) ) * zvolk 147 148 ptrb(ji,jj,jk,jn) = MAX( 0. , ptrb(ji,jj,jk,jn) ) 149 ptrn(ji,jj,jk,jn) = MAX( 0. , ptrn(ji,jj,jk,jn) ) 144 ztrcorb = ztrcorb + MIN( 0., ptrb(ji,jj,jk,jn) ) * zvolk 145 ztrcorn = ztrcorn + MIN( 0., ptrn(ji,jj,jk,jn) ) * zvolk 146 147 ptrb(ji,jj,jk,jn) = MAX( 0., ptrb(ji,jj,jk,jn) ) 148 ptrn(ji,jj,jk,jn) = MAX( 0., ptrn(ji,jj,jk,jn) ) 150 149 151 150 ztrmasb = ztrmasb + ptrb(ji,jj,jk,jn) * zvolk … … 178 177 IF( l_trdtrc ) THEN 179 178 ! 180 ztrtrdb(:,:,:) = ( ptrb(:,:,:,jn) - ztrtrdb(:,:,:) ) / (2.*rdt) 181 ztrtrdn(:,:,:) = ( ptrn(:,:,:,jn) - ztrtrdn(:,:,:) ) / (2.*rdt) 179 zs2rdt = 1. / ( 2. * rdt ) 180 ztrtrdb(:,:,:) = ( ptrb(:,:,:,jn) - ztrtrdb(:,:,:) ) * zs2rdt 181 ztrtrdn(:,:,:) = ( ptrn(:,:,:,jn) - ztrtrdn(:,:,:) ) * zs2rdt 182 182 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrdb, jn, jptrc_trd_radb, kt ) ! Asselin-like trend handling 183 183 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrdn, jn, jptrc_trd_radn, kt ) ! standard trend handling … … 191 191 192 192 DO jn = jp_sms0, jp_sms1 193 194 IF( l_trdtrc ) THEN 195 ztrtrdb(:,:,:) = ptrb(:,:,:,jn) ! save input trb for trend computation 196 ztrtrdn(:,:,:) = ptrn(:,:,:,jn) ! save input trn for trend computation 197 ENDIF 198 193 199 DO jk = 1, jpkm1 194 200 DO jj = 1, jpj … … 199 205 END DO 200 206 END DO 201 END DO 207 208 IF( l_trdtrc ) THEN 209 ! 210 zs2rdt = 1. / ( 2. * rdt * FLOAT(ndttrc) ) 211 ztrtrdb(:,:,:) = ( ptrb(:,:,:,jn) - ztrtrdb(:,:,:) ) * zs2rdt 212 ztrtrdn(:,:,:) = ( ptrn(:,:,:,jn) - ztrtrdn(:,:,:) ) * zs2rdt 213 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrdb, jn, jptrc_trd_radb, kt ) ! Asselin-like trend handling 214 IF (luttrd(jn)) CALL trd_mod_trc( ztrtrdn, jn, jptrc_trd_radn, kt ) ! standard trend handling 215 ! 216 ENDIF 217 ! 218 ENDDO 202 219 203 220 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.