Changeset 2528 for trunk/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcexp.F90
- Timestamp:
- 2010-12-27T18:33:53+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcexp.F90
r1795 r2528 19 19 USE lbclnk 20 20 USE trc 21 USE trc trp_lec21 USE trcnam_trp 22 22 USE prtctl_trc ! Print control for debbuging 23 USE trdm ld_trc24 USE trdm ld_trc_oce23 USE trdmod_oce 24 USE trdmod_trc 25 25 USE iom 26 26 … … 33 33 # include "top_substitute.h90" 34 34 !!---------------------------------------------------------------------- 35 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)35 !! NEMO/TOP 3.3 , NEMO Consortium (2010) 36 36 !! $Id$ 37 !! Software governed by the CeCILL licence ( modipsl/doc/NEMO_CeCILL.txt)37 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 38 38 !!---------------------------------------------------------------------- 39 39 … … 55 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 56 56 !! 57 INTEGER :: ji, jj, jk, jl, ik bot58 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t 57 INTEGER :: ji, jj, jk, jl, ikt 58 REAL(wp) :: zgeolpoc, zfact, zwork, ze3t, zsedpocd 59 59 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrbio 60 60 CHARACTER (len=25) :: charout … … 75 75 IF( l_trdtrc )THEN 76 76 ALLOCATE( ztrbio(jpi,jpj,jpk) ) 77 ztrbio(:,:,:) = tra(:,:,:,jp no3)77 ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) 78 78 ENDIF 79 79 … … 82 82 DO ji = fs_2, fs_jpim1 83 83 ze3t = 1. / fse3t(ji,jj,jk) 84 tra(ji,jj,jk,jp no3) = tra(ji,jj,jk,jpno3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj)84 tra(ji,jj,jk,jp_lob_no3) = tra(ji,jj,jk,jp_lob_no3) + ze3t * dmin3(ji,jj,jk) * fbod(ji,jj) 85 85 END DO 86 86 END DO … … 95 95 DO jj = 2, jpjm1 96 96 DO ji = fs_2, fs_jpim1 97 ik bot = mbathy(ji,jj) - 198 tra(ji,jj,ik bot,jpno3) = tra(ji,jj,ikbot,jpno3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikbot)97 ikt = mbkt(ji,jj) 98 tra(ji,jj,ikt,jp_lob_no3) = tra(ji,jj,ikt,jp_lob_no3) + sedlam * sedpocn(ji,jj) / fse3t(ji,jj,ikt) 99 99 ! Deposition of organic matter in the sediment 100 zwork = vsed * trn(ji,jj,ik bot,jpdet)100 zwork = vsed * trn(ji,jj,ikt,jp_lob_det) 101 101 sedpoca(ji,jj) = ( zwork + dminl(ji,jj) * fbod(ji,jj) & 102 102 & - sedlam * sedpocn(ji,jj) - sedlostpoc * sedpocn(ji,jj) ) * rdt … … 107 107 DO jj = 2, jpjm1 108 108 DO ji = fs_2, fs_jpim1 109 tra(ji,jj,1,jp no3) = tra(ji,jj,1,jpno3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1)109 tra(ji,jj,1,jp_lob_no3) = tra(ji,jj,1,jp_lob_no3) + zgeolpoc * cmask(ji,jj) / areacot / fse3t(ji,jj,1) 110 110 END DO 111 111 END DO … … 114 114 115 115 ! Oa & Ek: diagnostics depending on jpdia2d ! left as example 116 #if defined key_ trc_diaadd116 #if defined key_diatrc 117 117 # if ! defined key_iomput 118 118 trc2d(:,:,jp_lob0_2d + 18) = sedpocn(:,:) … … 122 122 #endif 123 123 124 ! Leap-frog scheme (only in explicit case, otherwise the125 ! ---------------- time stepping is already done in trczdf)126 IF( l_trczdf_exp .AND. (ln_trcadv_cen2 .OR. ln_trcadv_tvd) ) THEN127 zfact = 2. * rdttra(jk) * FLOAT( ndttrc )128 IF( neuler == 0 .AND. kt == nittrc000 ) zfact = rdttra(jk) * FLOAT(ndttrc)129 sedpoca(:,:) = sedpocb(:,:) + zfact * sedpoca(:,:)130 ENDIF131 132 124 133 125 ! Time filter and swap of arrays 134 126 ! ------------------------------ 135 IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN ! centred or tvd scheme 136 IF( neuler == 0 .AND. kt == nittrc000 ) THEN 137 DO jj = 1, jpj 138 DO ji = 1, jpi 139 sedpocb(ji,jj) = sedpocn(ji,jj) 140 sedpocn(ji,jj) = sedpoca(ji,jj) 141 sedpoca(ji,jj) = 0.e0 142 END DO 143 END DO 144 ELSE 145 DO jj = 1, jpj 146 DO ji = 1, jpi 147 sedpocb(ji,jj) = atfp * ( sedpocb(ji,jj) + sedpoca(ji,jj) ) & 148 & + atfp1 * sedpocn(ji,jj) 149 sedpocn(ji,jj) = sedpoca(ji,jj) 150 sedpoca(ji,jj) = 0.e0 151 END DO 152 END DO 153 ENDIF 154 ELSE ! case of smolar scheme or muscl 155 sedpocb(:,:) = sedpoca(:,:) 156 sedpocn(:,:) = sedpoca(:,:) 157 sedpoca(:,:) = 0.e0 127 IF( neuler == 0 .AND. kt == nit000 ) THEN ! Euler time-stepping at first time-step 128 ! ! (only swap) 129 sedpocn(:,:) = sedpoca(:,:) 130 ! 131 ELSE 132 ! 133 DO jj = 1, jpj 134 DO ji = 1, jpi 135 zsedpocd = sedpoca(ji,jj) - 2. * sedpocn(ji,jj) + sedpocb(ji,jj) ! time laplacian on tracers 136 sedpocb(ji,jj) = sedpocn(ji,jj) + atfp * zsedpocd ! sedpocb <-- filtered sedpocn 137 sedpocn(ji,jj) = sedpoca(ji,jj) ! sedpocn <-- sedpoca 138 END DO 139 END DO 140 ! 158 141 ENDIF 142 sedpoca(:,:) = 0.e0 159 143 ! 160 144 IF( l_trdtrc ) THEN 161 ztrbio(:,:,:) = tra(:,:,:,jp no3) - ztrbio(:,:,:)145 ztrbio(:,:,:) = tra(:,:,:,jp_lob_no3) - ztrbio(:,:,:) 162 146 jl = jp_lob0_trd + 16 163 147 CALL trd_mod_trc( ztrbio, jl, kt ) ! handle the trend
Note: See TracChangeset
for help on using the changeset viewer.