Changeset 10966 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcsbc.F90
- Timestamp:
- 2019-05-10T18:43:09+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcsbc.F90
r10946 r10966 49 49 !! The surface freshwater flux modify the ocean volume 50 50 !! and thus the concentration of a tracer as : 51 !! tr a = tra + emp * trn/ e3t for k=151 !! tr(Krhs) = tr(Krhs) + emp * tr(Kmm) / e3t for k=1 52 52 !! where emp, the surface freshwater budget (evaporation minus 53 53 !! precipitation ) given in kg/m2/s is divided 54 54 !! by 1035 kg/m3 (density of ocean water) to obtain m/s. 55 55 !! 56 !! ** Action : - Update the 1st level of tr awith the trend associated56 !! ** Action : - Update the 1st level of tr(:,:,:,:,Krhs) with the trend associated 57 57 !! with the tracer surface boundary condition 58 58 !! … … 103 103 ENDIF 104 104 105 ! Coupling online : river runoff is added to the horizontal divergence (hdiv n) in the subroutine sbc_rnf_div105 ! Coupling online : river runoff is added to the horizontal divergence (hdiv) in the subroutine sbc_rnf_div 106 106 ! one only consider the concentration/dilution effect due to evaporation minus precipitation + freezing/melting of sea-ice 107 107 ! Coupling offline : runoff are in emp which contains E-P-R … … 119 119 DO jj = 2, jpj 120 120 DO ji = fs_2, fs_jpim1 ! vector opt. 121 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * tr n(ji,jj,1,jn)121 sbc_trc(ji,jj,jn) = zsfx(ji,jj) * r1_rau0 * tr(ji,jj,1,jn,Kmm) 122 122 END DO 123 123 END DO … … 129 129 DO jj = 2, jpj 130 130 DO ji = fs_2, fs_jpim1 ! vector opt. 131 zse3t = 1. / e3t _n(ji,jj,1)131 zse3t = 1. / e3t(ji,jj,1,Kmm) 132 132 ! tracer flux at the ice/ocean interface (tracer/m2/s) 133 133 zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice … … 138 138 ztfx = zftra ! net tracer flux 139 139 ! 140 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * tr n(ji,jj,1,jn) )140 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * tr(ji,jj,1,jn,Kmm) ) 141 141 IF ( zdtra < 0. ) THEN 142 zratio = -zdtra * zse3t * r2dttrc / ( tr n(ji,jj,1,jn) + zrtrn )142 zratio = -zdtra * zse3t * r2dttrc / ( tr(ji,jj,1,jn,Kmm) + zrtrn ) 143 143 zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 144 144 ENDIF … … 153 153 DO jn = 1, jptra 154 154 ! 155 IF( l_trdtrc ) ztrtrd(:,:,:) = tr a(:,:,:,jn) ! save trends155 IF( l_trdtrc ) ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) ! save trends 156 156 ! 157 157 DO jj = 2, jpj 158 158 DO ji = fs_2, fs_jpim1 ! vector opt. 159 zse3t = zfact / e3t _n(ji,jj,1)160 tr a(ji,jj,1,jn) = tra(ji,jj,1,jn) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t159 zse3t = zfact / e3t(ji,jj,1,Kmm) 160 tr(ji,jj,1,jn,Krhs) = tr(ji,jj,1,jn,Krhs) + ( sbc_trc_b(ji,jj,jn) + sbc_trc(ji,jj,jn) ) * zse3t 161 161 END DO 162 162 END DO 163 163 ! 164 164 IF( l_trdtrc ) THEN 165 ztrtrd(:,:,:) = tr a(:,:,:,jn) - ztrtrd(:,:,:)165 ztrtrd(:,:,:) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:) 166 166 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_nsr, ztrtrd ) 167 167 END IF … … 184 184 IF( ln_ctl ) THEN 185 185 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) 186 CALL prt_ctl_trc( tab4d=tr a, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )186 CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 187 187 ENDIF 188 188 IF( l_trdtrc ) DEALLOCATE( ztrtrd )
Note: See TracChangeset
for help on using the changeset viewer.