Changeset 2127
- Timestamp:
- 2010-09-28T13:54:33+02:00 (14 years ago)
- Location:
- branches/DEV_R1821_Rivers/NEMO/OPA_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_R1821_Rivers/NEMO/OPA_SRC/SBC/sbcrnf.F90
r2118 r2127 84 84 !! 85 85 INTEGER :: ji, jj ! dummy loop indices 86 INTEGER :: ierror ! temporary integer87 86 !!---------------------------------------------------------------------- 88 87 ! … … 120 119 rnf_tmp(:,:) = ( sf_tmp_rnf(1)%fnow(:,:) ) 121 120 ELSE 122 rnf_sal(:,:) = 0 121 rnf_sal(:,:) = 0.0 123 122 rnf_tmp(:,:) = -999 124 123 ENDIF … … 142 141 !!---------------------------------------------------------------------- 143 142 CHARACTER(len=32) :: rn_dep_file ! runoff file name 143 INTEGER :: ierror ! temporary integer 144 144 !! 145 145 NAMELIST/namsbc_rnf/ cn_dir, ln_rnf_emp, sn_rnf, sn_cnf, sn_sal_rnf, sn_tmp_rnf, sn_dep_rnf, & -
branches/DEV_R1821_Rivers/NEMO/OPA_SRC/TRA/trasbc.F90
r2101 r2127 149 149 END DO 150 150 151 IF ( ln_rnf .AND. ln_rnf_att ) THEN 152 ! Concentration / dilution effect on (t,s) due to river runoff 151 IF ( ln_rnf ) THEN 152 153 ! Effect on (t,s) due to river runoff (dilution effect automatically applied via vertical tracer advection) 153 154 DO jj=1,jpj 154 155 DO ji=1,jpi 155 156 zdep = 1. / rnf_dep(ji,jj) 156 157 zse3t= 1. / fse3t(ji,jj,1) 157 IF ( rnf_tmp(ji,jj) == -999 ) rnf_tmp(ji,jj)=tn(ji,jj,1) ! if not specified set runoff temp to be sst 158 159 IF ( rnf(ji,jj) .gt. 0.0 ) THEN 160 161 IF( lk_vvl) THEN 162 !!!indirect flux, concentration or dilution effect 163 !!!force a dilution effect in all levels; 164 zdheat=0.0 165 zdsalt=0.0 166 DO jk=1, rnf_mod_dep(ji,jj) 167 zta = -tn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 168 zsa = -sn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 169 ta(ji,jj,jk)=ta(ji,jj,jk)+zta 170 sa(ji,jj,jk)=sa(ji,jj,jk)+zsa 171 zdheat=zdheat+zta*fse3t(ji,jj,jk) 172 zdsalt=zdsalt+zsa*fse3t(ji,jj,jk) 173 ENDDO 174 !!!negate this total change in heat and salt content from top level 175 zta=-zdheat*zse3t 176 zsa=-zdsalt*zse3t 177 ta(ji,jj,1)=ta(ji,jj,1)+zta 178 sa(ji,jj,1)=sa(ji,jj,1)+zsa 179 180 !!!direct flux 181 zta = rnf_tmp(ji,jj) * rnf(ji,jj) * zsrau * zdep 182 zsa = rnf_sal(ji,jj) * rnf(ji,jj) * zsrau * zdep 183 184 DO jk=1, rnf_mod_dep(ji,jj) 185 ta(ji,jj,jk) = ta(ji,jj,jk) + zta 186 sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 187 ENDDO 188 189 ELSE 190 DO jk=1, rnf_mod_dep(ji,jj) 191 zta = ( rnf_tmp(ji,jj)-tn(ji,jj,jk) ) * rnf(ji,jj) * zsrau * zdep 192 zsa = ( rnf_sal(ji,jj)-sn(ji,jj,jk) ) * rnf(ji,jj) * zsrau * zdep 193 ta(ji,jj,jk) = ta(ji,jj,jk) + zta 194 sa(ji,jj,jk) = sa(ji,jj,jk) + zsa 195 ENDDO 196 ENDIF 197 198 ELSEIF (rnf(ji,jj) .lt. 0.) THEN !! for use in baltic when flow is out of domain, want no change in temp and sal 199 200 IF( lk_vvl) THEN 201 !calculate automatic adjustment to sal and temp due to dilution/concentraion effect 202 zata = tn(ji,jj,1) * rnf(ji,jj) * zsrau * zse3t 203 zasa = sn(ji,jj,1) * rnf(ji,jj) * zsrau * zse3t 204 ta(ji,jj,1)=ta(ji,jj,1) + zata 205 sa(ji,jj,1)=sa(ji,jj,1) + zasa 206 ENDIF 207 208 ENDIF 209 158 159 IF ( rnf(ji,jj) .gt. 0.0 ) THEN 160 ! ammend t and s due to direct tracer flux 161 IF ( rnf_tmp(ji,jj) == -999 ) rnf_tmp(ji,jj)=tn(ji,jj,1) ! if not specified set runoff temp to be sst 162 DO jk=1, rnf_mod_dep(ji,jj) 163 ta(ji,jj,jk) = ta(ji,jj,jk) + rnf_tmp(ji,jj) * rnf(ji,jj) * zsrau * zdep 164 sa(ji,jj,jk) = sa(ji,jj,jk) + rnf_sal(ji,jj) * rnf(ji,jj) * zsrau * zdep 165 ENDDO 166 ELSEIF (rnf(ji,jj) .lt. 0.) THEN !! for use in baltic when flow is out of domain, want no change in temp and sal 167 ! negate concentration/dilution effect from traadv, as the tracer leaves domain 168 DO jk=1, rnf_mod_dep(ji,jj) 169 ta(ji,jj,jk) = ta(ji,jj,jk) + tn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 170 sa(ji,jj,jk) = sa(ji,jj,jk) + sn(ji,jj,jk) * rnf(ji,jj) * zsrau * zdep 171 ENDDO 172 ENDIF 173 210 174 ENDDO 211 175 ENDDO 212 176 213 ELSE IF( ln_rnf ) THEN214 215 ! Concentration dilution effect on (t,s) due to runoff without temperatue, salinity and depth attributes216 DO jj = 2, jpj217 DO ji = fs_2, fs_jpim1 ! vector opt.218 #if ! defined key_zco219 zse3t = 1. / fse3t(ji,jj,1)220 #endif221 IF( lk_vvl) THEN222 zta = rnf(ji,jj) * zsrau * tn(ji,jj,1) * zse3t ! & cooling/heating effect of runoff223 zsa = 0.e0 ! No salinity concent./dilut. effect224 ELSE225 zta = 0.0 ! temperature : heat flux226 zsa = - rnf(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect227 ENDIF228 ta(ji,jj,1) = ta(ji,jj,1) + zta ! add the trend to the general tracer trend229 sa(ji,jj,1) = sa(ji,jj,1) + zsa230 END DO231 END DO232 233 177 ENDIF 234 178
Note: See TracChangeset
for help on using the changeset viewer.