- Timestamp:
- 2013-05-24T15:40:39+02:00 (11 years ago)
- Location:
- trunk/NEMOGCM
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/iodef.xml
r3771 r3905 58 58 <field field_ref="qsr" name="soshfldo" /> 59 59 <field field_ref="saltflx" name="sosfldow" /> 60 <field field_ref="fmmflx" name="sofmflup" /> 60 61 <field field_ref="qt" name="sohefldo" /> 61 62 <field field_ref="mldr10_1" name="somxl010" /> -
trunk/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r3795 r3905 665 665 sn_mld = 'dyna_grid_T' , 120 , 'somixhgt' , .true. , .true. , 'yearly' , '' , '' 666 666 sn_emp = 'dyna_grid_T' , 120 , 'sowaflup' , .true. , .true. , 'yearly' , '' , '' 667 sn_ sfx = 'dyna_grid_T' , 120 , 'sowaflcd' , .true. , .true. , 'yearly' , '' , ''667 sn_fmf = 'dyna_grid_T' , 120 , 'iowaflup' , .true. , .true. , 'yearly' , '' , '' 668 668 sn_ice = 'dyna_grid_T' , 120 , 'soicecov' , .true. , .true. , 'yearly' , '' , '' 669 669 sn_qsr = 'dyna_grid_T' , 120 , 'soshfldo' , .true. , .true. , 'yearly' , '' , '' -
trunk/NEMOGCM/CONFIG/SHARED/field_def.xml
r3824 r3905 53 53 54 54 <field id="empmr" long_name="Net Upward Water Flux" unit="kg/m2/s" /> 55 <field id="saltflx" long_name="Downward salt flux" unit="PSU/m2/s" /> 55 <field id="saltflx" long_name="Downward salt flux" unit="PSU/m2/s" /> 56 <field id="fmmflx" long_name="Water flux due to freezing/melting" unit="kg/m2/s" /> 56 57 <field id="snowpre" long_name="Snow precipitation" unit="kg/m2/s" /> 57 58 <field id="runoffs" long_name="River Runoffs" unit="Kg/m2/s" /> -
trunk/NEMOGCM/CONFIG/cfg.txt
r3769 r3905 4 4 GYRE_PISCES OPA_SRC TOP_SRC 5 5 ORCA2_LIM3 OPA_SRC LIM_SRC_3 6 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC7 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC8 6 ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC 9 7 ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 10 8 ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 9 ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 10 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC -
trunk/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r3625 r3905 217 217 zemp_snw = rdm_snw(ji,jj) * r1_rdtice ! snow melting = pure water that enters the ocean 218 218 zfmm = rdm_ice(ji,jj) * r1_rdtice ! Freezing minus Melting (F-M) 219 220 fmmflx(ji,jj) = zfmm ! F/M mass flux save at least for biogeochemical model 219 221 220 222 ! salt flux at the ice/ocean interface (sea ice fraction) [PSU*kg/m2/s] -
trunk/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90
r3625 r3905 226 226 zemp_snw = rdm_snw(ji,jj) * r1_rdtice ! snow melting = pure water that enters the ocean 227 227 zfmm = rdm_ice(ji,jj) * r1_rdtice ! Freezing minus mesting 228 229 fmmflx(ji,jj) = zfmm ! F/M mass flux save at least for biogeochemical model 228 230 229 231 emp(ji,jj) = zemp + zemp_snw + zfmm ! mass flux + F/M mass flux (always ice/ocean mass exchange) -
trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r3827 r3905 72 72 INTEGER , SAVE :: jf_eiv ! index of v-eiv 73 73 INTEGER , SAVE :: jf_eiw ! index of w-eiv 74 INTEGER , SAVE :: jf_ sfx! index of downward salt flux74 INTEGER , SAVE :: jf_fmf ! index of downward salt flux 75 75 76 76 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_dyn ! structure of input fields (file informations, fields read) … … 254 254 wndm(:,:) = sf_dyn(jf_wnd)%fnow(:,:,1) * tmask(:,:,1) ! wind speed - needed for gas exchange 255 255 emp (:,:) = sf_dyn(jf_emp)%fnow(:,:,1) * tmask(:,:,1) ! E-P 256 sfx (:,:) = 0.0_wp ! enable testing with old inputs ! downward salt flux 257 ! sfx (:,:) = sf_dyn(jf_sfx)%fnow(:,:,1) * tmask(:,:,1) ! downward salt flux (v3.5+) 256 fmmflx(:,:) = sf_dyn(jf_fmf)%fnow(:,:,1) * tmask(:,:,1) ! downward salt flux (v3.5+) 258 257 fr_i(:,:) = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1) ! Sea-ice fraction 259 258 qsr (:,:) = sf_dyn(jf_qsr)%fnow(:,:,1) * tmask(:,:,1) ! solar radiation … … 302 301 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i - : ', mask1=tmask, ovlap=1 ) 303 302 CALL prt_ctl(tab2d_1=hmld , clinfo1=' hmld - : ', mask1=tmask, ovlap=1 ) 304 CALL prt_ctl(tab2d_1= sfx , clinfo1=' sfx- : ', mask1=tmask, ovlap=1 )303 CALL prt_ctl(tab2d_1=fmmflx , clinfo1=' fmmflx - : ', mask1=tmask, ovlap=1 ) 305 304 CALL prt_ctl(tab2d_1=emp , clinfo1=' emp - : ', mask1=tmask, ovlap=1 ) 306 305 CALL prt_ctl(tab2d_1=wndm , clinfo1=' wspd - : ', mask1=tmask, ovlap=1 ) … … 331 330 TYPE(FLD_N) :: sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd ! informations about the fields to be read 332 331 TYPE(FLD_N) :: sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl ! " " 333 TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_ sfx! " "332 TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf ! " " 334 333 ! 335 334 NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_degrad, & 336 335 & sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, & 337 336 & sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl, & 338 & sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_ sfx337 & sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf 339 338 340 339 !!---------------------------------------------------------------------- … … 349 348 sn_mld = FLD_N( 'dyna_grid_T' , 120 , 'somixght' , .true. , .true. , 'yearly' , '' , '' ) 350 349 sn_emp = FLD_N( 'dyna_grid_T' , 120 , 'sowaflup' , .true. , .true. , 'yearly' , '' , '' ) 351 sn_sfx = FLD_N( 'dyna_grid_T' , 120 , 'sowaflcd' , .true. , .true. , 'yearly' , '' , '' ) 352 !! sn_sfx = FLD_N( 'dyna_grid_T' , 120 , 'sosfldow' , .true. , .true. , 'yearly' , '' , '' ) ! v3.5+ 350 sn_fmf = FLD_N( 'dyna_grid_T' , 120 , 'sofmflup' , .true. , .true. , 'yearly' , '' , '' ) 353 351 sn_ice = FLD_N( 'dyna_grid_T' , 120 , 'soicecov' , .true. , .true. , 'yearly' , '' , '' ) 354 352 sn_qsr = FLD_N( 'dyna_grid_T' , 120 , 'soshfldo' , .true. , .true. , 'yearly' , '' , '' ) … … 391 389 ENDIF 392 390 393 jf_tem = 1 ; jf_sal = 2 ; jf_mld = 3 ; jf_emp = 4 ; jf_ sfx= 5 ; jf_ice = 6 ; jf_qsr = 7391 jf_tem = 1 ; jf_sal = 2 ; jf_mld = 3 ; jf_emp = 4 ; jf_fmf = 5 ; jf_ice = 6 ; jf_qsr = 7 394 392 jf_wnd = 8 ; jf_uwd = 9 ; jf_vwd = 10 ; jf_wwd = 11 ; jf_avt = 12 ; jfld = 12 395 393 ! 396 394 slf_d(jf_tem) = sn_tem ; slf_d(jf_sal) = sn_sal ; slf_d(jf_mld) = sn_mld 397 slf_d(jf_emp) = sn_emp ; slf_d(jf_ sfx ) = sn_sfx; slf_d(jf_ice) = sn_ice395 slf_d(jf_emp) = sn_emp ; slf_d(jf_fmf ) = sn_fmf ; slf_d(jf_ice) = sn_ice 398 396 slf_d(jf_qsr) = sn_qsr ; slf_d(jf_wnd) = sn_wnd ; slf_d(jf_avt) = sn_avt 399 397 slf_d(jf_uwd) = sn_uwd ; slf_d(jf_vwd) = sn_vwd ; slf_d(jf_wwd) = sn_wwd … … 429 427 ENDIF 430 428 ENDIF 431 ! Salt flux and concntration/dilution terms (new from v3.5) !! disabled to allow testing with old input files432 !! jf_sfx = jfld + 1 ; jfld = jfld + 1433 !! slf_d(jf_sfx) = sn_sfx434 429 435 430 ALLOCATE( sf_dyn(jfld), STAT=ierr ) ! set sf structure -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r3680 r3905 70 70 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx , sfx_b !: salt flux [PSU/m2/s] 71 71 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tot !: total E-P over ocean and ice [Kg/m2/s] 72 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmflx !: freshwater budget: freezing/melting [Kg/m2/s] 72 73 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: rnf , rnf_b !: river runoff [Kg/m2/s] 73 74 !! … … 115 116 & qsr_tot(jpi,jpj) , qsr (jpi,jpj) , & 116 117 & emp (jpi,jpj) , emp_b(jpi,jpj) , & 117 & sfx (jpi,jpj) , sfx_b(jpi,jpj) , emp_tot(jpi,jpj) 118 & sfx (jpi,jpj) , sfx_b(jpi,jpj) , emp_tot(jpi,jpj), fmmflx(jpi,jpj), STAT=ierr(2) ) 118 119 ! 119 120 ALLOCATE( rnf (jpi,jpj) , sbc_tsc (jpi,jpj,jpts) , qsr_hc (jpi,jpj,jpk) , & -
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r3764 r3905 146 146 sfx(:,:) = 0.0_wp ! the salt flux due to freezing/melting will be computed (i.e. will be non-zero) 147 147 ! only if sea-ice is present 148 149 fmmflx(:,:) = 0.0_wp ! freezing-melting array initialisation 148 150 149 151 ! ! restartability … … 362 364 ! (includes virtual salt flux beneath ice 363 365 ! in linear free surface case) 366 CALL iom_put( "fmmflx", fmmflx ) ! Freezing-melting water flux 364 367 CALL iom_put( "qt" , qns + qsr ) ! total heat flux 365 368 CALL iom_put( "qns" , qns ) ! solar heat flux -
trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90
r3904 r3905 105 105 DO ji = 1, jpi 106 106 zdep = rfact2 / fse3t(ji,jj,1) 107 ! zwflux = ( emps(ji,jj) - emp(ji,jj) ) & 108 ! & * tsn(ji,jj,1,jp_sal) / ( tsn(ji,jj,1,jp_sal) - 6.0 ) / 1000. 109 zwflux = 0. 110 zfminus = MIN( 0., -zwflux ) * trn(ji,jj,1,jpfer) * zdep 111 zfplus = MAX( 0., -zwflux ) * 10E-9 * zdep 107 zwflux = fmmflx(ji,jj) / 1000._wp 108 zfminus = MIN( 0._wp, -zwflux ) * trn(ji,jj,1,jpfer) * zdep 109 zfplus = MAX( 0._wp, -zwflux ) * icefeinput * zdep 112 110 zironice(ji,jj) = zfplus + zfminus 113 111 END DO -
trunk/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r3680 r3905 99 99 USE sbc_oce , ONLY : emp => emp !: freshwater budget: volume flux [Kg/m2/s] 100 100 USE sbc_oce , ONLY : emp_b => emp_b !: freshwater budget: volume flux [Kg/m2/s] 101 USE sbc_oce , ONLY : sfx => sfx !: downward salt flux [PSU/m2/s]101 USE sbc_oce , ONLY : fmmflx => fmmflx !: freshwater budget: volume flux [Kg/m2/s] 102 102 USE sbc_oce , ONLY : rnf => rnf !: river runoff [Kg/m2/s] 103 103 USE sbc_oce , ONLY : ln_dm2dc => ln_dm2dc !: Daily mean to Diurnal Cycle short wave (qsr) -
trunk/NEMOGCM/NEMO/TOP_SRC/trc.F90
r3882 r3905 141 141 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr_i_tm !: average ice fraction [m/s] 142 142 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_tm !: freshwater budget: volume flux [Kg/m2/s] 143 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_tm !: downward salt flux [PSU/m2/s]143 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fmmflx_tm !: freshwater budget: freezing/melting [Kg/m2/s] 144 144 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_b_hold !: hold emp from the beginning of each sub-stepping[m] 145 145 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr_tm !: solar radiation average [m] … … 181 181 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivb_temp, rotb_temp 182 182 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hmld_temp, qsr_temp, fr_i_temp,wndm_temp 183 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_temp, sfx_temp, emp_b_temp183 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: emp_temp, fmmflx_temp, emp_b_temp 184 184 ! 185 185 #if defined key_trabbl -
trunk/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r3680 r3905 124 124 fr_i_tm (:,:) = fr_i_tm (:,:) + fr_i (:,:) 125 125 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 126 sfx_tm (:,:) = sfx_tm (:,:) + sfx(:,:)126 fmmflx_tm(:,:) = fmmflx_tm(:,:) + fmmflx(:,:) 127 127 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 128 128 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) … … 212 212 emp_temp (:,:) = emp (:,:) 213 213 emp_b_temp (:,:) = emp_b (:,:) 214 sfx_temp (:,:) = sfx(:,:)214 fmmflx_temp(:,:) = fmmflx(:,:) 215 215 qsr_temp (:,:) = qsr (:,:) 216 216 wndm_temp (:,:) = wndm (:,:) … … 316 316 fr_i_tm (:,:) = fr_i_tm (:,:) + fr_i (:,:) 317 317 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 318 sfx_tm (:,:) = sfx_tm (:,:) + sfx(:,:)318 fmmflx_tm(:,:) = fmmflx_tm (:,:) + fmmflx(:,:) 319 319 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 320 320 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) … … 335 335 qsr (:,:) = qsr_tm (:,:) * r1_ndttrc 336 336 emp (:,:) = emp_tm (:,:) * r1_ndttrc 337 sfx (:,:) = sfx_tm(:,:) * r1_ndttrc337 fmmflx(:,:) = fmmflx_tm (:,:) * r1_ndttrc 338 338 fr_i (:,:) = fr_i_tm (:,:) * r1_ndttrc 339 339 # if defined key_trabbl … … 351 351 qsr (:,:) = qsr_tm (:,:) * r1_ndttrcp1 352 352 emp (:,:) = emp_tm (:,:) * r1_ndttrcp1 353 sfx (:,:) = sfx_tm(:,:) * r1_ndttrcp1353 fmmflx(:,:) = fmmflx_tm (:,:) * r1_ndttrcp1 354 354 fr_i (:,:) = fr_i_tm (:,:) * r1_ndttrcp1 355 355 # if defined key_trabbl … … 501 501 CALL lbc_lnk( emp (:,:) , 'T', 1. ) 502 502 CALL lbc_lnk( emp_b (:,:) , 'T', 1. ) 503 CALL lbc_lnk( sfx(:,:) , 'T', 1. )503 CALL lbc_lnk( fmmflx(:,:) , 'T', 1. ) 504 504 CALL lbc_lnk( qsr (:,:) , 'T', 1. ) 505 505 CALL lbc_lnk( wndm (:,:) , 'T', 1. ) … … 601 601 fr_i_tm(:,:) = 0._wp 602 602 emp_tm (:,:) = 0._wp 603 sfx_tm(:,:) = 0._wp603 fmmflx_tm(:,:) = 0._wp 604 604 qsr_tm (:,:) = 0._wp 605 605 wndm_tm(:,:) = 0._wp … … 708 708 fr_i (:,:) = fr_i_temp (:,:) 709 709 emp (:,:) = emp_temp (:,:) 710 sfx (:,:) = sfx_temp(:,:)710 fmmflx(:,:) = fmmflx_temp(:,:) 711 711 emp_b (:,:) = emp_b_temp (:,:) 712 712 qsr (:,:) = qsr_temp (:,:) … … 827 827 fr_i_tm (:,:) = fr_i (:,:) 828 828 emp_tm (:,:) = emp (:,:) 829 sfx_tm (:,:) = sfx(:,:)829 fmmflx_tm (:,:) = fmmflx(:,:) 830 830 qsr_tm (:,:) = qsr (:,:) 831 831 wndm_tm (:,:) = wndm (:,:) … … 1056 1056 & rnf_temp(jpi,jpj) , h_rnf_temp(jpi,jpj) , & 1057 1057 & tsn_temp(jpi,jpj,jpk,2) , emp_b_temp(jpi,jpj), & 1058 & emp_temp(jpi,jpj) , sfx_temp(jpi,jpj) ,&1058 & emp_temp(jpi,jpj) , fmmflx_temp(jpi,jpj), & 1059 1059 & hmld_temp(jpi,jpj) , qsr_temp(jpi,jpj) , & 1060 1060 & fr_i_temp(jpi,jpj) , fr_i_tm(jpi,jpj) , & … … 1104 1104 & sshv_n_tm(jpi,jpj) , sshv_b_hold(jpi,jpj), & 1105 1105 & tsn_tm(jpi,jpj,jpk,2) , & 1106 & emp_tm(jpi,jpj) , sfx_tm(jpi,jpj) ,&1106 & emp_tm(jpi,jpj) , fmmflx_tm(jpi,jpj) , & 1107 1107 & emp_b_hold(jpi,jpj) , & 1108 1108 & hmld_tm(jpi,jpj) , qsr_tm(jpi,jpj) , &
Note: See TracChangeset
for help on using the changeset viewer.