Changeset 1975 for branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/trasbc.F90
- Timestamp:
- 2010-06-28T19:22:14+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/trasbc.F90
r1870 r1975 104 104 INTEGER, INTENT(in) :: kt ! ocean time-step index 105 105 !! 106 INTEGER :: ji, jj 107 REAL(wp) :: z ta, zsa, zsrau, zse3t! temporary scalars106 INTEGER :: ji, jj ! dummy loop indices 107 REAL(wp) :: zsrau, zse3t ! temporary scalars 108 108 !!---------------------------------------------------------------------- 109 109 … … 129 129 qsr(:,:) = 0.e0 ! qsr set to zero 130 130 IF( kt == nit000 ) THEN ! idem on before field at nit000 131 qns_b(:,:) = qns_b(:,:) + qsr_b(:,:)132 131 qsr_b(:,:) = 0.e0 133 132 ENDIF 134 133 ENDIF 135 136 ! Concentration dillution effect on (t,s)137 !! DO jj = 2, jpj138 !! DO ji = fs_2, fs_jpim1 ! vector opt.139 !!#if ! defined key_zco140 !! zse3t = 1. / fse3t(ji,jj,1)141 !!#endif142 !! IF( lk_vvl) THEN143 !! zta = ro0cpr * qns(ji,jj) * zse3t & ! temperature : heat flux144 !! & - emp(ji,jj) * zsrau * tn(ji,jj,1) * zse3t ! & cooling/heating effet of EMP flux145 !! zsa = 0.e0 ! No salinity concent./dilut. effect146 !! ELSE147 !! zta = ro0cpr * qns(ji,jj) * zse3t ! temperature : heat flux148 !! zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect149 !! ENDIF150 !! ta(ji,jj,1) = ta(ji,jj,1) + zta ! add the trend to the general tracer trend151 !! sa(ji,jj,1) = sa(ji,jj,1) + zsa152 !! END DO153 !! END DO154 134 155 135 ! ! ---------------------- ! 156 136 IF( lk_vvl ) THEN ! Variable Volume case ! 157 137 ! ! ---------------------- ! 158 DO jj = 2, jpj 159 DO ji = fs_2, fs_jpim1 ! vector opt. 160 zse3t = 0.5 / fse3t(ji,jj,1) 161 ! ! temperature: heat flux + cooling/heating effet of EMP flux 162 ta(ji,jj,1) = ta(ji,jj,1) + ( ro0cpr * ( qns(ji,jj) + qns_b(ji,jj) ) & 163 & - zsrau * ( emp(ji,jj) + emp_b(ji,jj) ) * tn(ji,jj,1) ) * zse3t 164 ! ! salinity: salt flux 165 sa(ji,jj,1) = sa(ji,jj,1) + ( emps(ji,jj) + emps_b(ji,jj) ) * zse3t 166 167 !!gm BUG : in key_vvl emps must be modified to only include the salt flux due to with sea-ice freezing/melting 168 !!gm otherwise this flux will be missing ==> modification required in limsbc, limsbc_2 and CICE interface. 169 170 END DO 171 END DO 138 !!gm BUG : in key_vvl emps must be modified to only include the salt flux due to sea-ice freezing/melting 139 !!gm otherwise this flux will be missing ==> modification required in limsbc, limsbc_2 and CICE interface.s 140 IF ( neuler == 0 .AND. kt == nit000 ) THEN 141 DO jj = 2, jpj 142 DO ji = fs_2, fs_jpim1 ! vector opt. 143 ! temperature : heat flux + cooling/heating effet of EMP flux 144 sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tn(ji,jj,1) 145 #if ! defined key_zco 146 zse3t = 1. / fse3t(ji,jj,1) 147 #endif 148 ta(ji,jj,1) = ta(ji,jj,1) + zse3t * sbc_trd_hc_n(ji,jj) 149 END DO 150 END DO 151 ELSE 152 DO jj = 2, jpj 153 DO ji = fs_2, fs_jpim1 ! vector opt. 154 ! temperature : heat flux + cooling/heating effet of EMP flux 155 sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tn(ji,jj,1) 156 #if ! defined key_zco 157 zse3t = 1. / fse3t(ji,jj,1) 158 #endif 159 ta(ji,jj,1) = ta(ji,jj,1) + 0.5 * ( sbc_trd_hc_b(ji,jj) + sbc_trd_hc_n(ji,jj) ) * zse3t 160 END DO 161 END DO 162 ENDIF 172 163 ! ! ---------------------- ! 173 164 ELSE ! Constant Volume case ! 174 165 ! ! ---------------------- ! 175 DO jj = 2, jpj 176 DO ji = fs_2, fs_jpim1 ! vector opt. 177 zse3t = 0.5 / fse3t(ji,jj,1) 178 ! ! temperature: heat flux 179 ta(ji,jj,1) = ta(ji,jj,1) + ro0cpr * ( qns (ji,jj) + qns_b (ji,jj) ) * zse3t 180 ! ! salinity: salt flux + concent./dilut. effect (both in emps) 181 sa(ji,jj,1) = sa(ji,jj,1) + zsrau * ( emps(ji,jj) + emps_b(ji,jj) ) * sn(ji,jj,1) * zse3t 182 END DO 183 END DO 166 IF ( neuler == 0 .AND. kt == nit000 ) THEN 167 DO jj = 2, jpj 168 DO ji = fs_2, fs_jpim1 ! vector opt. 169 ! temperature : heat flux 170 sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) 171 ! salinity : salt flux + concent./dilut. effect (both in emps) 172 sbc_trd_sc_n(ji,jj) = zsrau * emps(ji,jj) * sn(ji,jj,1) 173 #if ! defined key_zco 174 zse3t = 1. / fse3t(ji,jj,1) 175 #endif 176 ta(ji,jj,1) = ta(ji,jj,1) + sbc_trd_hc_n(ji,jj) * zse3t 177 sa(ji,jj,1) = sa(ji,jj,1) + sbc_trd_sc_n(ji,jj) * zse3t 178 END DO 179 END DO 180 ELSE 181 DO jj = 2, jpj 182 DO ji = fs_2, fs_jpim1 ! vector opt. 183 ! temperature : heat flux 184 sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) 185 ! salinity : salt flux + concent./dilut. effect (both in emps) 186 sbc_trd_sc_n(ji,jj) = zsrau * emps(ji,jj) * sn(ji,jj,1) 187 #if ! defined key_zco 188 zse3t = 1. / fse3t(ji,jj,1) 189 #endif 190 ! temperature : heat flux 191 ta(ji,jj,1) = ta(ji,jj,1) + 0.5 * ( sbc_trd_hc_b(ji,jj) + sbc_trd_hc_n(ji,jj) ) * zse3t 192 sa(ji,jj,1) = sa(ji,jj,1) + 0.5 * ( sbc_trd_sc_b(ji,jj) + sbc_trd_sc_n(ji,jj) ) * zse3t 193 END DO 194 END DO 195 ENDIF 184 196 ! 185 197 ENDIF 186 198 187 IF( l_trdtra ) THEN ! save the sbc trends for diagnostic199 IF( l_trdtra ) THEN ! save the sbc trends for diagnostic 188 200 ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 189 201 ztrds(:,:,:) = sa(:,:,:) - ztrds(:,:,:) 190 202 CALL trd_mod(ztrdt, ztrds, jptra_trd_nsr, 'TRA', kt) 191 203 ENDIF 192 ! ! control print204 ! ! control print 193 205 IF(ln_ctl) CALL prt_ctl( tab3d_1=ta, clinfo1=' sbc - Ta: ', mask1=tmask, & 194 206 & tab3d_2=sa, clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )
Note: See TracChangeset
for help on using the changeset viewer.