Changeset 2528 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90
- Timestamp:
- 2010-12-27T18:33:53+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tranpc.F90
- Property svn:eol-style deleted
r1537 r2528 8 8 !! NEMO 1.0 ! 2002-06 (G. Madec) free form F90 9 9 !! 3.0 ! 2008-06 (G. Madec) applied on ta, sa and called before tranxt in step.F90 10 !! 3.3 ! 2010-05 (C. Ethe, G. Madec) merge TRC-TRA 10 11 !!---------------------------------------------------------------------- 11 12 … … 16 17 USE dom_oce ! ocean space and time domain 17 18 USE zdf_oce ! ocean vertical physics 18 USE trdmod 19 USE trd mod_oce ! ocean variablestrends19 USE trdmod_oce ! ocean active tracer trends 20 USE trdtra ! ocean active tracer trends 20 21 USE eosbn2 ! equation of state (eos routine) 21 22 USE lbclnk ! lateral boundary conditions (or mpp link) … … 30 31 # include "domzgr_substitute.h90" 31 32 !!---------------------------------------------------------------------- 32 !! NEMO/OPA 3. 2 , LOCEAN-IPSL (2009)33 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 33 34 !! $Id$ 34 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 35 !!---------------------------------------------------------------------- 36 35 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 36 !!---------------------------------------------------------------------- 37 37 CONTAINS 38 38 … … 55 55 !! References : Madec, et al., 1991, JPO, 21, 9, 1349-1371. 56 56 !!---------------------------------------------------------------------- 57 USE oce, ONLY : ztrdt => ua ! use ua as 3D workspace58 USE oce, ONLY : ztrds => va ! use va as 3D workspace59 !!60 57 INTEGER, INTENT(in) :: kt ! ocean time-step index 61 58 !! … … 68 65 REAL(wp), DIMENSION(jpi,jpk) :: zwx, zwy, zwz ! 2D arrays 69 66 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zrhop ! 3D arrays 67 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt, ztrds 70 68 !!---------------------------------------------------------------------- 71 69 … … 75 73 inpci = 0 76 74 77 CALL eos( ta, sa, rhd, zrhop ) ! Potential density 78 79 80 IF( l_trdtra ) THEN ! Save ta and sa trends 81 ztrdt(:,:,:) = ta(:,:,:) 82 ztrds(:,:,:) = sa(:,:,:) 75 CALL eos( tsa, rhd, zrhop ) ! Potential density 76 77 IF( l_trdtra ) THEN !* Save ta and sa trends 78 ALLOCATE( ztrdt(jpi,jpj,jpk) ) ; ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 79 ALLOCATE( ztrds(jpi,jpj,jpk) ) ; ztrds(:,:,:) = tsa(:,:,:,jp_sal) 83 80 ENDIF 84 81 … … 133 130 IF( zwy(ji,1) /= 0.e0 ) THEN 134 131 ! 135 ikbot = mb athy(ji,jj) ! ikbot: ocean bottomlevel132 ikbot = mbkt(ji,jj) ! ikbot: ocean bottom T-level 136 133 ! 137 134 DO jiter = 1, jpk ! vertical iteration … … 142 139 220 CONTINUE 143 140 ik = ik + 1 144 IF( ik >= ikbot -1) GO TO 200141 IF( ik >= ikbot ) GO TO 200 145 142 zwx(ji,ik) = zrhop(ji,jj,ik) - zrhop(ji,jj,ik+1) 146 143 IF( zwx(ji,ik) <= 0.e0 ) GO TO 220 … … 151 148 ! 152 149 ze3tot= fse3t(ji,jj,ikup) 153 zta = t a (ji,jj,ikup)154 zsa = sa (ji,jj,ikup)150 zta = tsa (ji,jj,ikup,jp_tem) 151 zsa = tsa (ji,jj,ikup,jp_sal) 155 152 zraua = zrhop(ji,jj,ikup) 156 153 ! … … 162 159 ze3dwn = fse3t(ji,jj,jkdown) 163 160 ze3tot = ze3tot + ze3dwn 164 zta = ( zta*(ze3tot-ze3dwn) + t a(ji,jj,jkdown)*ze3dwn )/ze3tot165 zsa = ( zsa*(ze3tot-ze3dwn) + sa(ji,jj,jkdown)*ze3dwn )/ze3tot161 zta = ( zta*(ze3tot-ze3dwn) + tsa(ji,jj,jkdown,jp_tem)*ze3dwn )/ze3tot 162 zsa = ( zsa*(ze3tot-ze3dwn) + tsa(ji,jj,jkdown,jp_sal)*ze3dwn )/ze3tot 166 163 zraua = ( zraua*(ze3tot-ze3dwn) + zrhop(ji,jj,jkdown)*ze3dwn )/ze3tot 167 164 inpci = inpci+1 … … 171 168 ! 172 169 DO jkp = ikup, ikdown-1 173 t a(ji,jj,jkp) = zta174 sa(ji,jj,jkp) = zsa175 zrhop(ji,jj,jkp ) = zraua170 tsa (ji,jj,jkp,jp_tem) = zta 171 tsa (ji,jj,jkp,jp_sal) = zsa 172 zrhop(ji,jj,jkp ) = zraua 176 173 END DO 177 174 IF (ikdown == ikbot-1 .AND. zraua >= zrhop(ji,jj,ikdown) ) THEN 178 t a(ji,jj,ikdown) = zta179 sa(ji,jj,ikdown) = zsa180 zrhop(ji,jj,ikdown ) = zraua175 tsa (ji,jj,jkp,jp_tem) = zta 176 tsa (ji,jj,jkp,jp_sal) = zsa 177 zrhop(ji,jj,ikdown ) = zraua 181 178 ENDIF 182 179 END DO … … 191 188 ! 192 189 IF( l_trdtra ) THEN ! save the Non penetrative mixing trends for diagnostic 193 ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 194 ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 195 CALL trd_mod(ztrdt, ztrds, jptra_trd_npc, 'TRA', kt) 190 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 191 ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 192 CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_npc, ztrdt ) 193 CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_npc, ztrds ) 194 DEALLOCATE( ztrdt ) ; DEALLOCATE( ztrds ) 196 195 ENDIF 197 196 198 197 ! Lateral boundary conditions on ( ta, sa ) ( Unchanged sign) 199 198 ! ------------------------------============ 200 CALL lbc_lnk( t a, 'T', 1. )201 CALL lbc_lnk( sa, 'T', 1. )199 CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1. ) 200 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1. ) 202 201 203 202
Note: See TracChangeset
for help on using the changeset viewer.