- Timestamp:
- 2015-03-27T15:29:08+01:00 (9 years ago)
- Location:
- branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/CONFIG/SHARED/namelist_pisces_ref
r5148 r5184 371 371 pisdiabio(17) = 'SEDNO3' , 'NO3 remineralization from SED', 'mmole/m3/s' 372 372 / 373 !''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 374 &nampisice ! Prescribed sea ice tracers 375 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 376 ! constant ocean tracer concentrations are defined in trcice_pisces.F90 (Global, Arctic, Antarctic and Baltic) 377 ! trc_ice_ratio * betw 0 and 1: prescribed ice/ocean tracer concentration ratio 378 ! * -1 => the ice-ocean tracer concentration ratio follows the 379 ! ice-ocean salinity ratio 380 ! * -2 => tracer concentration in sea ice is prescribed and 381 ! trc_ice_prescr is used 382 ! trc_ice_prescr * prescribed tracer concentration used only if 383 ! trc_ice_ratio = -2, or -99. if not used 384 ! cn_trc_o * 'GL' use global ocean values making the Baltic distinction only 385 ! 'AA' use Arctic/Antarctic contrast besides Baltic distinction 386 !,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 387 ! sn_tri_ ! trc_ice_ratio ! trc_ice_prescr ! cn_trc_o 388 sn_tri_dic = -1., -99., 'AA' 389 sn_tri_doc = 0., -99., 'AA' 390 sn_tri_tal = -1., -99., 'AA' 391 sn_tri_oxy = -1., -99., 'GL' 392 sn_tri_cal = 0., -99., 'GL' 393 sn_tri_po4 = -1., -99., 'AA' 394 sn_tri_poc = 0., -99., 'GL' 395 sn_tri_goc = 0., -99., 'GL' 396 sn_tri_bfe = 0., -99., 'GL' 397 sn_tri_num = 0., -99., 'GL' 398 sn_tri_sil = -1., -99., 'AA' 399 sn_tri_dsi = 0., -99., 'GL' 400 sn_tri_gsi = 0., -99., 'GL' 401 sn_tri_phy = 0., -99., 'GL' 402 sn_tri_dia = 0., -99., 'GL' 403 sn_tri_zoo = 0., -99., 'GL' 404 sn_tri_mes = 0., -99., 'GL' 405 sn_tri_fer = -2., 15E-9, 'AA' 406 sn_tri_sfe = 0., -99., 'GL' 407 sn_tri_dfe = 0., -99., 'GL' 408 sn_tri_nfe = 0., -99., 'GL' 409 sn_tri_nch = 0., -99., 'GL' 410 sn_tri_dch = 0., -99., 'GL' 411 sn_tri_no3 = -1., -99., 'AA' 412 sn_tri_nh4 = 1., -99., 'AA' 413 / -
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/CONFIG/SHARED/namelist_top_ref
r5102 r5184 80 80 ! =2 no damping in the mixed layer (rho crieria) 81 81 cn_resto_tr = 'resto_tr.nc' ! create a damping.coeff NetCDF file (=1) or not (=0) 82 !----------------------------------------------------------------------- 83 &namtrc_ice ! Representation of sea ice growth & melt effects 84 !----------------------------------------------------------------------- 85 nn_ice_tr = 1 ! tracer concentration in sea ice 86 ! =-1 identical cc in ice and ocean (= old code) 87 ! = 0 nil 88 ! = 1 prescribed to a namelist value (implemented in pisces only) 82 89 / 83 90 !----------------------------------------------------------------------- -
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r4996 r5184 73 73 CHARACTER (len=25) :: charout 74 74 REAL(wp), POINTER, DIMENSION(:,: ) :: zpdep, zsidep, zwork1, zwork2, zwork3, zwork4 75 REAL(wp), POINTER, DIMENSION(:,: ) :: zdenit2d, z ironice, zbureff75 REAL(wp), POINTER, DIMENSION(:,: ) :: zdenit2d, zbureff 76 76 REAL(wp), POINTER, DIMENSION(:,: ) :: zwsbio3, zwsbio4, zwscal 77 77 REAL(wp), POINTER, DIMENSION(:,:,:) :: znitrpot, zirondep, zsoufer … … 97 97 zwork3 (:,:) = 0.e0 98 98 zwork4 (:,:) = 0.e0 99 100 ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al.101 ! ----------------------------------------------------102 IF( ln_ironice ) THEN103 !104 CALL wrk_alloc( jpi, jpj, zironice )105 !106 DO jj = 1, jpj107 DO ji = 1, jpi108 zdep = rfact2 / fse3t(ji,jj,1)109 zwflux = fmmflx(ji,jj) / 1000._wp110 zfminus = MIN( 0._wp, -zwflux ) * trn(ji,jj,1,jpfer) * zdep111 zfplus = MAX( 0._wp, -zwflux ) * icefeinput * zdep112 zironice(ji,jj) = zfplus + zfminus113 END DO114 END DO115 !116 trn(:,:,1,jpfer) = trn(:,:,1,jpfer) + zironice(:,:)117 !118 IF( lk_iomput .AND. jnt == nrdttrc .AND. iom_use( "Ironice" ) ) &119 & CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) ) ! iron flux from ice120 !121 CALL wrk_dealloc( jpi, jpj, zironice )122 !123 ENDIF124 99 125 100 ! Add the external input of nutrients from dust deposition -
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90
r4990 r5184 21 21 USE trd_oce 22 22 USE trdtra 23 USE sbc_oce 24 USE dom_oce 23 25 24 26 IMPLICIT NONE … … 60 62 INTEGER, INTENT( in ) :: kt ! ocean time-step index 61 63 ! 62 INTEGER :: ji, jj, jn ! dummy loop indices 63 REAL(wp) :: zsrau, zse3t ! temporary scalars 64 INTEGER :: ji, jj, jn ! dummy loop indices 65 REAL(wp) :: zsrau, zse3t ! temporary scalars 66 REAL(wp) :: zswitch, zftra, zcd, zdtra, ztfx, ztra, zeuler ! temporary scalars 64 67 CHARACTER (len=22) :: charout 65 68 REAL(wp), POINTER, DIMENSION(:,: ) :: zsfx 66 69 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrtrd 70 67 71 !!--------------------------------------------------------------------- 68 72 ! … … 72 76 CALL wrk_alloc( jpi, jpj, zsfx ) 73 77 IF( l_trdtrc ) CALL wrk_alloc( jpi, jpj, jpk, ztrtrd ) 78 79 SELECT CASE( nn_ice_embd ) ! levitating or embedded sea-ice option 80 CASE( 0 ) ; zswitch = 1 ! (0) standard levitating sea-ice : salt exchange only 81 CASE( 1, 2 ) ; zswitch = 0 ! (1) levitating sea-ice: salt and volume exchange but no pressure effect 82 ! (2) embedded sea-ice : salt and volume fluxes and pressure 83 END SELECT 74 84 75 85 IF( kt == nittrc000 ) THEN … … 91 101 ! 0. initialization 92 102 zsrau = 1. / rau0 103 104 zeuler = 1. ; IF ( neuler .EQ. 0 ) zeuler = 0. 105 93 106 DO jn = 1, jptra 94 107 ! 95 108 IF( l_trdtrc ) ztrtrd(:,:,:) = tra(:,:,:,jn) ! save trends 96 109 ! ! add the trend to the general tracer trend 97 DO jj = 2, jpj 98 DO ji = fs_2, fs_jpim1 ! vector opt. 99 zse3t = 1. / fse3t(ji,jj,1) 100 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 110 111 IF ( nn_ice_tr == -1 ) THEN ! identical concentrations in ice and ocean (old code) 112 113 DO jj = 2, jpj 114 DO ji = fs_2, fs_jpim1 ! vector opt. 115 zse3t = 1. / fse3t(ji,jj,1) 116 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 117 END DO 101 118 END DO 102 END DO 119 120 ELSE 121 122 DO jj = 2, jpj 123 DO ji = fs_2, fs_jpim1 ! vector opt. 124 125 zse3t = 1. / fse3t(ji,jj,1) 126 127 ! tracer flux at the ice/ocean interface (tracer/m2/s) 128 zftra = - trc_i(ji,jj,jn) * fmmflx(ji,jj) ! uptake of tracer in the sea ice 129 zcd = trc_o(ji,jj,jn) * fmmflx(ji,jj) ! concentration dilution due to freezing-melting, 130 ! only used in the levitating sea ice case 131 ! tracer flux only : add concentration dilution term in net tracer flux, no F-M in volume flux 132 ! tracer and mass fluxes : no concentration dilution term in net tracer flux, F-M term in volume flux 133 ztfx = zftra + zswitch * zcd ! net tracer flux (+C/D if no ice/ocean mass exchange) 134 135 ! tracer change (left member: euler; right member:leapfrog) 136 ztra = ( 1. - zeuler ) * trn(ji,jj,1,jn) + zeuler * trb(ji,jj,1,jn) 137 138 ! MAX is there to avoid integral ocean uptake in the case of freezing (for iron) 139 zdtra = MAX ( - ztra / r2dtra(1) , zsrau * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t ) ! tracer tendency 140 ! r2dtra is time step 141 tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zdtra ! new line 142 143 ! IF ( ztfx .NE. 0.0 ) THEN 144 ! WRITE(numout,*) ji, jj, jn 145 ! WRITE(numout,*) ' trc_o : ', trc_o(ji,jj,jn) 146 ! WRITE(numout,*) ' trc_i : ', trc_i(ji,jj,jn) 147 ! WRITE(numout,*) ' fmmflx : ', fmmflx(ji,jj) 148 ! WRITE(numout,*) ' zswitch: ', zswitch 149 ! WRITE(numout,*) ' zcd : ', zcd 150 ! WRITE(numout,*) ' zftra : ', zftra 151 ! WRITE(numout,*) ' ztfx : ', ztfx 152 ! WRITE(numout,*) ' zsrau : ', zsrau 153 ! WRITE(numout,*) ' zsfx : ', zsfx(ji,jj) 154 ! WRITE(numout,*) ' zse3t : ', zse3t 155 ! WRITE(numout,*) ' ztra : ', ztra 156 ! WRITE(numout,*) ' zdtra : ', zdtra 157 ! WRITE(numout,*) ' Old tendency : ', zsfx(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 158 ! ENDIF 159 160 END DO 161 END DO 162 163 ENDIF 103 164 104 165 IF( l_trdtrc ) THEN -
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trc.F90
r4990 r5184 34 34 REAL(wp), PUBLIC :: areatot !: total volume 35 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: cvol !: volume correction -degrad option- 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trn !: traceur concentration for now time step 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tra !: traceur concentration for next time step 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trb !: traceur concentration for before time step 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trn !: tracer concentration for now time step 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tra !: tracer concentration for next time step 38 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trb !: tracer concentration for before time step 39 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: trc_i !: prescribed tracer concentration in sea ice for SBC 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: trc_o !: prescribed tracer concentration in ocean for SBC 41 INTEGER , PUBLIC :: nn_ice_tr !: handling of sea ice tracers 39 42 40 43 !! interpolated gradient … … 185 188 ! 186 189 ALLOCATE( trn(jpi,jpj,jpk,jptra), trb(jpi,jpj,jpk,jptra), tra(jpi,jpj,jpk,jptra), & 190 & trc_i(jpi,jpj,jptra) , trc_o(jpi,jpj,jptra) , & 187 191 & gtru (jpi,jpj,jptra) , gtrv (jpi,jpj,jptra) , & 188 192 & gtrui(jpi,jpj,jptra) , gtrvi(jpi,jpj,jptra) , & -
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r5120 r5184 31 31 USE lib_mpp ! distribued memory computing library 32 32 USE sbc_oce 33 USE trcice ! tracers in sea ice 33 34 34 35 IMPLICIT NONE … … 100 101 IF( lk_c14b ) CALL trc_ini_c14b ! C14 bomb tracer 101 102 IF( lk_my_trc ) CALL trc_ini_my_trc ! MY_TRC tracers 103 104 CALL trc_ice_ini ! Tracers in sea ice 102 105 103 106 IF( lwp ) THEN
Note: See TracChangeset
for help on using the changeset viewer.