New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5206 for branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

Ignore:
Timestamp:
2015-04-13T12:13:10+02:00 (9 years ago)
Author:
cetlod
Message:

First improvment of diurnal cycle for passive tracers, see ticket #1484

Location:
branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3/ice.F90

    r5167 r5206  
    301301 
    302302   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ftr_ice   !: transmitted solar radiation under ice 
     303   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ftr_ice_mean  !: transmitted daily mean solar radiation under ice (diurnal cycle)  
     304 
    303305 
    304306   !!-------------------------------------------------------------------------- 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3/limsbc.F90

    r5187 r5206  
    118118      IF( iom_use('qt_oce' ) )   CALL iom_put( "qt_oce"  , ( qsr(:,:) + qns(:,:) ) * pfrld(:,:) )   
    119119      IF( iom_use('qt_ice' ) )   CALL iom_put( "qt_ice"  , SUM( ( qns_ice(:,:,:) + qsr_ice(:,:,:) ) * a_i_b(:,:,:), dim=3 ) ) 
     120      IF( l_trcdm2dc ) THEN 
     121        IF( iom_use('qsr_oce_mean') )   CALL iom_put( "qsr_oce_mean" , qsr_mean(:,:) * pfrld(:,:) )   !   daily mean solar flux at ocean surface 
     122        IF( iom_use('qsr_ice_mean') )   CALL iom_put( "qsr_ice_mean" , SUM( qsr_ice_mean(:,:,:) * a_i_b(:,:,:), dim=3 ) ) !  daily mean solar flux at ice surface 
     123        IF( iom_use('qtr_ice_mean') )   CALL iom_put( "qtr_ice_mean" , SUM( ftr_ice_mean(:,:,:) * a_i_b(:,:,:), dim=3 ) ) !  daily mean solar flux transmitted thru ice 
     124      ENDIF 
    120125 
    121126      ! pfrld is the lead fraction at the previous time step (actually between TRP and THD) 
     
    212217      fr_i  (:,:)   = at_i(:,:)             ! Sea-ice fraction             
    213218      tn_ice(:,:,:) = t_su(:,:,:)           ! Ice surface temperature                       
     219 
     220 
     221      !   daily mean qsr when diurnal cycle is applied on physics - for BGC models 
     222      IF( l_trcdm2dc ) qsr_mean(:,:) =  pfrld(:,:) * qsr_mean(:,:) +  ftr_ice_mean(:,:) 
    214223 
    215224      !------------------------------------------------! 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r5202 r5206  
    9898      IF( nn_timing == 1 )  CALL timing_start('limthd') 
    9999 
     100      IF( kt == nit000 .AND. l_trcdm2dc )  ALLOCATE( ftr_ice_mean(jpi,jpj,jpl), ftr_ice_mean_1d(jpij), qsr_ice_mean_1d(jpij) ) 
     101 
    100102      ! conservation test 
    101103      IF( ln_limdiahsb ) CALL lim_cons_hsm(0, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
     
    106108      !------------------------------------------------------------------------! 
    107109      ftr_ice(:,:,:) = 0._wp  ! part of solar radiation transmitted through the ice 
     110      IF( l_trcdm2dc ) ftr_ice_mean(:,:,:) = 0._wp   ! part of daily mean solar radiation absorbing inside the ice 
     111 
    108112 
    109113      !-------------------- 
     
    576580         CALL tab_2d_1d( nbpb, qns_ice_1d (1:nbpb), qns_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 
    577581         CALL tab_2d_1d( nbpb, ftr_ice_1d (1:nbpb), ftr_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 
     582         IF( l_trcdm2dc )  THEN 
     583            CALL tab_2d_1d( nbpb, qsr_ice_mean_1d (1:nbpb), qsr_ice_mean(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 
     584            CALL tab_2d_1d( nbpb, ftr_ice_mean_1d (1:nbpb), ftr_ice_mean(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 
     585         ENDIF 
    578586         IF( .NOT. lk_cpl ) THEN 
    579587            CALL tab_2d_1d( nbpb, qla_ice_1d (1:nbpb), qla_ice(:,:,jl) , jpi, jpj, npb(1:nbpb) ) 
     
    670678         CALL tab_1d_2d( nbpb, qns_ice(:,:,jl), npb, qns_ice_1d(1:nbpb) , jpi, jpj) 
    671679         CALL tab_1d_2d( nbpb, ftr_ice(:,:,jl), npb, ftr_ice_1d(1:nbpb) , jpi, jpj ) 
    672                    
     680         !          
     681         IF( l_trcdm2dc )  THEN 
     682            CALL tab_1d_2d( nbpb, qns_ice_mean(:,:,jl), npb, qns_ice_mean_1d(1:nbpb) , jpi, jpj) 
     683            CALL tab_1d_2d( nbpb, ftr_ice_mean(:,:,jl), npb, ftr_ice_mean_1d(1:nbpb) , jpi, jpj ) 
     684         ENDIF 
     685         ! 
    673686      END SELECT 
    674687 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90

    r5202 r5206  
    126126      REAL(wp), POINTER, DIMENSION(:)     ::   zdifcase    ! case of the equation resolution (1->4) 
    127127      REAL(wp), POINTER, DIMENSION(:)     ::   zftrice     ! solar radiation transmitted through the ice 
     128      REAL(wp), POINTER, DIMENSION(:)     ::   zftrice_mean ! daily mean solar radiation transmitted through the ice 
    128129      REAL(wp), POINTER, DIMENSION(:)     ::   zihic 
    129130       
     
    174175      CALL wrk_alloc( jpij,nlay_i+3, zindterm, zindtbis, zdiagbis  ) 
    175176      CALL wrk_alloc( jpij,nlay_i+3,3, ztrid ) 
     177      IF( l_trcdm2dc )  CALL wrk_alloc( jpij, zftrice_mean ) 
    176178 
    177179      CALL wrk_alloc( jpij, zdq, zq_ini, zhfx_err ) 
     
    249251      END DO 
    250252 
     253      IF( l_trcdm2dc ) THEN 
     254         DO ji = kideb , kiut 
     255            zftrice_mean(ji) =  qsr_ice_mean_1d(ji) * i0(ji) ! Solar radiation transmitted below the surface layer 
     256         END DO 
     257      ENDIF 
     258 
    251259      !--------------------------------------------------------- 
    252260      ! Transmission - absorption of solar radiation in the ice 
     
    282290         ftr_ice_1d(ji) = zradtr_i(ji,nlay_i)  
    283291      END DO 
     292 
     293 
     294      IF( l_trcdm2dc ) THEN 
     295         DO ji = kideb , kiut 
     296             ftr_ice_mean_1d(ji) =  ftr_ice_mean_1d(ji) &  
     297                 &                + a_i_1d(ji) * zftrice_mean(ji) & 
     298                 &                             * EXP( - rn_kappa_i * ( MAX ( 0._wp , h_i_1d(ji) ) ) ) & 
     299                                               * EXP( - zraext_s   * ( MAX ( 0._wp , h_s_1d(ji) ) ) ) 
     300         END DO 
     301      ENDIF 
    284302 
    285303      ! 
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r5167 r5206  
    4141   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ftr_ice_1d    
    4242   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   qsr_ice_1d   
     43   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   qsr_ice_mean_1d   
     44   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   ftr_ice_mean_1d    
    4345   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   fr1_i0_1d    
    4446   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   fr2_i0_1d    
Note: See TracChangeset for help on using the changeset viewer.