Changeset 10780
- Timestamp:
- 2019-03-20T18:53:44+01:00 (6 years ago)
- Location:
- NEMO/releases/release-4.0/src/TOP
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/releases/release-4.0/src/TOP/PISCES/P4Z/p4zsbc.F90
r10522 r10780 27 27 LOGICAL , PUBLIC :: ln_ironsed !: boolean for Fe input from sediments 28 28 LOGICAL , PUBLIC :: ln_hydrofe !: boolean for Fe input from hydrothermal vents 29 LOGICAL , PUBLIC :: ln_ironice !: boolean for Fe input from sea ice30 29 REAL(wp), PUBLIC :: sedfeinput !: Coastal release of Iron 31 30 REAL(wp), PUBLIC :: dustsolub !: Solubility of the dust … … 109 108 IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_dust > 1 ) ) THEN 110 109 CALL fld_read( kt, 1, sf_dust ) 111 IF( nn_ice_tr == -1 .AND. .NOT.ln_ironice ) THEN ; dust(:,:) = MAX( rtrn, sf_dust(1)%fnow(:,:,1) ) 112 ELSE ; dust(:,:) = MAX( rtrn, sf_dust(1)%fnow(:,:,1) * ( 1.-fr_i(:,:) ) ) 113 ENDIF 110 dust(:,:) = MAX( rtrn, sf_dust(1)%fnow(:,:,1) ) * ( 1.0 - fr_i(ji,jj) ) 114 111 ENDIF 115 112 ENDIF … … 265 262 END IF 266 263 267 IF( nn_ice_tr >= 0 .AND. ln_ironice ) THEN268 IF(lwp) THEN269 WRITE(numout,*) ' ==>>> ln_ironice incompatible with nn_ice_tr = ', nn_ice_tr270 WRITE(numout,*) ' Specify your sea ice iron concentration in nampisice instead '271 WRITE(numout,*) ' ln_ironice is forced to .FALSE. '272 ENDIF273 ln_ironice = .FALSE.274 ENDIF275 276 264 IF( ln_dust .OR. ln_river .OR. ln_ndepo ) THEN ; ll_sbc = .TRUE. 277 265 ELSE ; ll_sbc = .FALSE. -
NEMO/releases/release-4.0/src/TOP/PISCES/P4Z/p4zsed.F90
r10425 r10780 53 53 INTEGER :: ji, jj, jk, ikt 54 54 REAL(wp) :: zrivalk, zrivsil, zrivno3 55 REAL(wp) :: zwflux, zfminus, zfplus 56 REAL(wp) :: zlim, zfact, zfactcal 55 REAL(wp) :: zwflux, zlim, zfact, zfactcal 57 56 REAL(wp) :: zo2, zno3, zflx, zpdenit, z1pdenit, zolimit 58 57 REAL(wp) :: zsiloss, zcaloss, zws3, zws4, zwsc, zdep … … 104 103 zdep = rfact2 / e3t_n(ji,jj,1) 105 104 zwflux = fmmflx(ji,jj) / 1000._wp 106 zfminus = MIN( 0._wp, -zwflux ) * trb(ji,jj,1,jpfer) * zdep 107 zfplus = MAX( 0._wp, -zwflux ) * icefeinput * zdep 108 zironice(ji,jj) = zfplus + zfminus 105 zironice(ji,jj) = MAX( -0.99 * trb(ji,jj,1,jpfer), -zwflux * icefeinput * zdep ) 109 106 END DO 110 107 END DO -
NEMO/releases/release-4.0/src/TOP/PISCES/sms_pisces.F90
r10425 r10780 67 67 !!* Mass conservation 68 68 LOGICAL :: ln_check_mass !: Flag to check mass conservation 69 LOGICAL , PUBLIC :: ln_ironice !: boolean for Fe input from sea ice 69 70 70 71 !!* Biological fluxes for light : variables shared by pisces & lobster -
NEMO/releases/release-4.0/src/TOP/PISCES/trcice_pisces.F90
r10213 r10780 266 266 zpisc(jpgon,4) = 1.05e-8_wp 267 267 zpisc(jpgop,4) = 1.05e-8_wp 268 268 ! 269 ! ln_ironice and tracers in seaice are redundant. Thus, if tracers in ice 270 ! is activated, ln_ironice should be set to false 271 ! ------------------------------------------------------------------------ 272 IF( nn_ice_tr >= 0 .AND. ln_ironice ) THEN 273 IF(lwp) THEN 274 WRITE(numout,*) ' ==>>> ln_ironice incompatible with nn_ice_tr = ', nn_ice_tr 275 WRITE(numout,*) ' Specify your sea ice iron concentration in nampisice instead ' 276 WRITE(numout,*) ' ln_ironice is forced to .FALSE. ' 277 ENDIF 278 ln_ironice = .FALSE. 279 ENDIF 280 ! 269 281 DO jn = jp_pcs0, jp_pcs1 270 282 IF( cn_trc_o(jn) == 'GL ' ) trc_o(:,:,jn) = zpisc(jn,1) ! Global case … … 310 322 trc_i(:,:,jn) = trc_ice_prescr(jn) 311 323 ENDIF 312 313 324 !-- Baltic 314 325 IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN … … 318 329 trc_i(:,:,jn) = zratio(jn,2) * trc_o(:,:,jn) 319 330 END WHERE 320 ELSE ! prescribed tracer concentration in ice 321 WHERE( 14._wp <= glamt(:,:) .AND. glamt(:,:) <= 32._wp .AND. & 322 54._wp <= gphit(:,:) .AND. gphit(:,:) <= 66._wp ) 323 trc_i(:,:,jn) = trc_ice_prescr(jn) 324 END WHERE 325 ENDIF ! trc_ice_ratio 331 ENDIF 326 332 ENDIF 327 333 ! -
NEMO/releases/release-4.0/src/TOP/TRP/trcsbc.F90
r10425 r10780 61 61 ! 62 62 INTEGER :: ji, jj, jn ! dummy loop indices 63 REAL(wp) :: zse3t, zrtrn, z ratio, zfact ! local scalars64 REAL(wp) :: zftra, z cd, zdtra, ztfx, ztra ! - -63 REAL(wp) :: zse3t, zrtrn, zfact ! local scalars 64 REAL(wp) :: zftra, zdtra, ztfx, ztra ! - - 65 65 CHARACTER (len=22) :: charout 66 66 REAL(wp), DIMENSION(jpi,jpj) :: zsfx … … 113 113 114 114 ! 0. initialization 115 IF( nn_ice_tr == -1 ) THEN ! No tracers in sea ice (null concentration in sea ice) 115 SELECT CASE ( nn_ice_tr ) 116 117 CASE ( -1 ) ! No tracers in sea ice (null concentration in sea ice) 116 118 ! 117 119 DO jn = 1, jptra … … 123 125 END DO 124 126 ! 125 ELSE 127 CASE ( 0 ) ! Same concentration in sea ice and in the ocean 128 ! 129 DO jn = 1, jptra 130 DO jj = 2, jpj 131 DO ji = fs_2, fs_jpim1 ! vector opt. 132 sbc_trc(ji,jj,jn) = ( zsfx(ji,jj) + fmmflx(ji,jj) ) * r1_rau0 * trn(ji,jj,1,jn) 133 END DO 134 END DO 135 END DO 136 ! 137 CASE ( 1 ) ! Specific treatment of sea ice fluxes with an imposed concentration in sea ice 126 138 ! 127 139 DO jn = 1, jptra … … 131 143 ! tracer flux at the ice/ocean interface (tracer/m2/s) 132 144 zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice 133 zcd = trc_o(ji,jj,jn) * fmmflx(ji,jj) ! concentration dilution due to freezing-melting,134 145 ! ! only used in the levitating sea ice case 135 146 ! tracer flux only : add concentration dilution term in net tracer flux, no F-M in volume flux 136 147 ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 137 ztfx = zftra 148 ztfx = zftra ! net tracer flux 138 149 ! 139 zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) )150 zdtra = r1_rau0 * ( ztfx + ( zsfx(ji,jj) + fmmflx(ji,jj) ) * trn(ji,jj,1,jn) ) 140 151 IF ( zdtra < 0. ) THEN 141 zratio = -zdtra * zse3t * r2dttrc / ( trn(ji,jj,1,jn) + zrtrn ) 142 zdtra = MIN(1.0, zratio) * zdtra ! avoid negative concentrations to arise 152 zdtra = MAX(zdtra, -trn(ji,jj,1,jn) * e3t_n(ji,jj,1) / r2dttrc ) ! avoid negative concentrations to arise 143 153 ENDIF 144 154 sbc_trc(ji,jj,jn) = zdtra … … 146 156 END DO 147 157 END DO 148 END IF158 END SELECT 149 159 ! 150 160 CALL lbc_lnk( 'trcsbc', sbc_trc(:,:,:), 'T', 1. ) -
NEMO/releases/release-4.0/src/TOP/TRP/trcsink.F90
r10376 r10780 81 81 END DO 82 82 END DO 83 iiter( ji,jj) = MIN( iiter(ji,jj), nitermax )83 iiter(:,:) = MIN( iiter(:,:), nitermax ) 84 84 ENDIF 85 85
Note: See TracChangeset
for help on using the changeset viewer.