Changeset 4306


Ignore:
Timestamp:
2013-11-21T15:59:57+01:00 (7 years ago)
Author:
cetlod
Message:

dev_MERGE_2013 : merge in the solar mean flux branch from MERCATOR, see ticket #1187

Location:
branches/2013/dev_MERGE_2013/NEMOGCM
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_MERGE_2013/NEMOGCM/CONFIG/cfg.txt

    r4292 r4306  
    44ORCA2_LIM_CFC_C14b OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
    55GYRE OPA_SRC 
    6 ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
    76ORCA2_OFF_PISCES OPA_SRC OFF_SRC TOP_SRC 
    87ORCA2_SAS_LIM OPA_SRC SAS_SRC LIM_SRC_2 NST_SRC 
     
    109ORCA2_LIM OPA_SRC LIM_SRC_2 NST_SRC 
    1110C1D_PAPA OPA_SRC 
     11ORCA2_LIM_PISCES OPA_SRC LIM_SRC_2 NST_SRC TOP_SRC 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90

    r4161 r4306  
    6363 
    6464   !!* Ice Rheology 
     65 
     66   LOGICAL , PUBLIC::  ltrcdm2dc_ice = .FALSE.              !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 
     67 
    6568# if defined key_lim2_vp 
    6669   !                                                      !!* VP rheology * 
     
    108111   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qdtcn         !: energy from the ice to the ocean point (at a factor 2) 
    109112   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   thcm          !: part of the solar energy used in the lead heat budget 
     113   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fstric_daymean!: Solar flux transmitted trough the ice, for day mean of qsr ( PISCES, with dirunal cycle ) 
    110114   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fstric        !: Solar flux transmitted trough the ice 
    111115   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ffltbif       !: linked with the max heat contained in brine pockets (?) 
     
    167171         &     tbif  (jpi,jpj,jplayersp1)                           , STAT=ierr(5)) 
    168172 
     173      IF( ltrcdm2dc_ice ) ALLOCATE(fstric_daymean(jpi,jpj), STAT=ierr(6) ) 
     174 
    169175      !* moment used in the advection scheme 
    170176      ALLOCATE(sxice (jpi,jpj) , syice (jpi,jpj) , sxxice(jpi,jpj) ,     & 
     
    193199   !!   Default option         Empty module        NO LIM 2.0 sea-ice model 
    194200   !!---------------------------------------------------------------------- 
     201   LOGICAL , PUBLIC::  ltrcdm2dc_ice = .FALSE.              !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 
    195202#endif 
    196203   !!----------------------------------------------------------------- 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90

    r4147 r4306  
    7676      CALL ctl_opn( numnam_ice_cfg, 'namelist_ice_cfg',    'OLD',     'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 
    7777      CALL ctl_opn( numoni,         'output.namelist.ice', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp ) 
     78      ! When Diurnal cycle, core bulk and LIM2  are activated,  
     79      ! a daily mean qsr is computed for tracer/biogeochemistery model                                 ! 
     80      IF( ltrcdm2dc ) ltrcdm2dc_ice = .TRUE. 
     81 
     82      !                                ! Open the namelist file  
    7883      !     
    7984      CALL ice_run_2                   ! read in namelist some run parameters 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r4292 r4306  
    4848   PUBLIC   lim_sbc_flx_2      ! called by sbc_ice_lim_2 
    4949   PUBLIC   lim_sbc_tau_2      ! called by sbc_ice_lim_2 
     50   PUBLIC   lim_bio_meanqsr_2  ! called by sbc_ice_lim_2 
    5051 
    5152   REAL(wp)  ::   r1_rdtice            ! = 1. / rdt_ice  
     
    437438   END SUBROUTINE lim_sbc_tau_2 
    438439 
     440   SUBROUTINE lim_bio_meanqsr_2 
     441      !!--------------------------------------------------------------------- 
     442      !!                     ***  ROUTINE lim_bio_meanqsr 
     443      !! 
     444      !! ** Purpose :   provide daily qsr_mean for PISCES when  
     445      !!                analytic diurnal cycle is applied in physic 
     446      !! 
     447      !! ** Method  :   add part under ice 
     448      !! 
     449      !!--------------------------------------------------------------------- 
     450 
     451      qsr_mean(:,:) =  pfrld(:,:) * qsr_mean(:,:) + ( 1. - pfrld(:,:) ) * fstric_daymean(:,:) 
     452 
     453   END SUBROUTINE lim_bio_meanqsr_2 
    439454 
    440455   SUBROUTINE lim_sbc_init_2 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90

    r4292 r4306  
    139139      rdq_ice(:,:) = 0.e0   ! heat content associated with rdm_ice 
    140140      zmsk (:,:,:) = 0.e0 
     141      IF( ltrcdm2dc_ice  ) fstric_daymean (:,:) = 0.e0   ! part of solar radiation absorbing inside the ice 
    141142 
    142143      ! set to zero snow thickness smaller than epsi04 
     
    286287         CALL tab_2d_1d_2( nbpb, tbif_1d    (1:nbpb , 3 ), tbif(:,:,3)    , jpi, jpj, npb(1:nbpb) ) 
    287288         CALL tab_2d_1d_2( nbpb, qsr_ice_1d (1:nbpb)     , qsr_ice(:,:,1) , jpi, jpj, npb(1:nbpb) ) 
     289         IF( ltrcdm2dc_ice ) & 
     290         & CALL tab_2d_1d_2( nbpb, qsr_ice_mean_1d (1:nbpb), qsr_ice_mean(:,:,1), jpi, jpj, npb(1:nbpb) ) 
    288291         CALL tab_2d_1d_2( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0         , jpi, jpj, npb(1:nbpb) ) 
    289292         CALL tab_2d_1d_2( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0         , jpi, jpj, npb(1:nbpb) ) 
     
    335338         CALL tab_1d_2d_2( nbpb, qsr_ice(:,:,1), npb, qsr_ice_1d(1:nbpb)  , jpi, jpj ) 
    336339         CALL tab_1d_2d_2( nbpb, qns_ice(:,:,1), npb, qns_ice_1d(1:nbpb)  , jpi, jpj ) 
    337          IF( .NOT. lk_cpl )   CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb)  , jpi, jpj ) 
     340         IF( ltrcdm2dc_ice )THEN 
     341            CALL tab_1d_2d_2( nbpb, fstric_daymean     , npb, fstbif_daymean_1d (1:nbpb)  , jpi, jpj ) 
     342            CALL tab_1d_2d_2( nbpb, qsr_ice_mean(:,:,1), npb,    qsr_ice_mean_1d(1:nbpb)  , jpi, jpj ) 
     343         ENDIF 
     344         IF( .NOT. lk_cpl )   CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb)             , jpi, jpj ) 
    338345         ! 
    339346      ENDIF 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90

    r3625 r4306  
    273273       END DO 
    274274 
     275       IF( ltrcdm2dc_ice )THEN 
     276 
     277          DO ji = kideb , kiut 
     278             zihsn  = MAX( zzero , SIGN (zone , -h_snow_1d(ji) ) ) 
     279             zihic  = MAX( zzero , 1.0 - ( h_ice_1d(ji) / zhsu ) ) 
     280             zi0(ji)  = zihsn * ( fr1_i0_1d(ji) + zihic * fr2_i0_1d(ji) ) 
     281             zexp     = MIN( zone , EXP( -1.5 * ( h_ice_1d(ji) - zhsu ) ) ) 
     282             fstbif_daymean_1d(ji) = zi0(ji) * qsr_ice_mean_1d(ji) * zexp 
     283          END DO 
     284 
     285       ENDIF 
     286 
    275287       !-------------------------------------------------------------------------------- 
    276288       !  4. Computation of the surface temperature : determined by considering the  
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90

    r4147 r4306  
    1313   !!---------------------------------------------------------------------- 
    1414   USE par_ice_2 
     15   USE ice_2 
    1516 
    1617   IMPLICIT NONE 
     
    5455      fstbif_1d   ,     &  !:    "                  "      fstric 
    5556      fltbif_1d   ,     &  !:    "                  "      ffltbif 
     57      fstbif_daymean_1d, & !:    "                  " fstric_daymean 
    5658      fscbq_1d    ,     &  !:    "                  "      fscmcbq 
    5759      qsr_ice_1d  ,     &  !:    "                  "      qsr_ice 
     60      qsr_ice_mean_1d , &  !:    "                  "      qsr_ice_mean 
    5861      fr1_i0_1d   ,     &  !:    "                  "      fr1_i0 
    5962      fr2_i0_1d   ,     &  !:    "                  "      fr2_i0 
     
    9699      !!---------------------------------------------------------------------- 
    97100      USE lib_mpp        ! MPP library 
    98       INTEGER :: ierr(4) 
     101      INTEGER :: ierr(5) 
    99102      !!---------------------------------------------------------------------- 
    100103      ! 
     
    119122         &      tbif_1d(jpij, jplayersp1), Stat=ierr(4)) 
    120123         ! 
     124      IF( ltrcdm2dc_ice )ALLOCATE(fstbif_daymean_1d(jpij),qsr_ice_mean_1d(jpij),Stat=ierr(5)) 
     125         ! 
    121126      thd_ice_alloc_2 = MAXVAL(ierr) 
    122127      IF( thd_ice_alloc_2 /= 0 )   CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays') 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r3625 r4306  
    1919# if defined key_lim2 
    2020   USE par_ice_2        ! LIM-2 parameters 
     21   USE ice_2 
    2122# endif 
    2223# if defined key_cice  
     
    5556 
    5657#if defined key_lim3 || defined key_lim2  
    57    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qns_ice   !: non solar heat flux over ice                  [W/m2] 
    58    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qsr_ice   !: solar heat flux over ice                      [W/m2] 
    59    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qla_ice   !: latent flux over ice                          [W/m2] 
    60    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqla_ice  !: latent sensibility over ice                 [W/m2/K] 
    61    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqns_ice  !: non solar heat flux over ice (LW+SEN+LA)    [W/m2/K] 
    62    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tn_ice    !: ice surface temperature                          [K] 
    63    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   alb_ice   !: albedo of ice 
     58   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qns_ice       !: non solar heat flux over ice                  [W/m2] 
     59   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qsr_ice       !: solar heat flux over ice                      [W/m2] 
     60   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qsr_ice_mean  !: dauly mean solar heat flux over ice       [W/m2] 
     61   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   qla_ice       !: latent flux over ice                          [W/m2] 
     62   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqla_ice      !: latent sensibility over ice                 [W/m2/K] 
     63   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   dqns_ice      !: non solar heat flux over ice (LW+SEN+LA)    [W/m2/K] 
     64   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tn_ice        !: ice surface temperature                          [K] 
     65   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   alb_ice       !: albedo of ice 
    6466 
    6567   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   utau_ice  !: atmos-ice u-stress. VP: I-pt ; EVP: U,V-pts   [N/m2] 
     
    109111      !!                     ***  FUNCTION sbc_ice_alloc  *** 
    110112      !!---------------------------------------------------------------------- 
     113      INTEGER :: ierr(2) 
     114      !!---------------------------------------------------------------------- 
     115      ierr(:) = 0 
     116 
    111117#if defined key_lim3 || defined key_lim2 
    112118      ALLOCATE( qns_ice (jpi,jpj,jpl) , qsr_ice (jpi,jpj,jpl) ,     & 
     
    117123         &      fr1_i0  (jpi,jpj)     , fr2_i0  (jpi,jpj)     ,     & 
    118124#if defined key_lim3 
    119          &      emp_ice(jpi,jpj)      , tatm_ice(jpi,jpj)     , STAT= sbc_ice_alloc ) 
     125         &      emp_ice(jpi,jpj)      , tatm_ice(jpi,jpj)     , STAT= ierr(1) ) 
    120126#else 
    121          &      emp_ice(jpi,jpj)                              , STAT= sbc_ice_alloc ) 
     127         &      emp_ice(jpi,jpj)                              , STAT= ierr(1) ) 
    122128#endif 
    123129#elif defined key_cice 
     
    126132                wndj_ice(jpi,jpj)     , nfrzmlt(jpi,jpj)      , ss_iou(jpi,jpj)       , & 
    127133                ss_iov(jpi,jpj)       , fr_iu(jpi,jpj)        , fr_iv(jpi,jpj)        , & 
    128                 a_i(jpi,jpj,ncat)     , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat), STAT= sbc_ice_alloc ) 
     134                a_i(jpi,jpj,ncat)     , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat), STAT= ierr(1) ) 
    129135#endif 
    130136         ! 
     137#if defined key_lim2 
     138      IF( ltrcdm2dc_ice )THEN 
     139         ALLOCATE( qsr_ice_mean (jpi,jpj,jpl), STAT=ierr(2) ) 
     140      ENDIF 
     141#endif 
     142         ! 
     143      sbc_ice_alloc = MAXVAL( ierr ) 
    131144      IF( lk_mpp            )   CALL mpp_sum ( sbc_ice_alloc ) 
    132145      IF( sbc_ice_alloc > 0 )   CALL ctl_warn('sbc_ice_alloc: allocation of arrays failed') 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r4292 r4306  
    6464   !!---------------------------------------------------------------------- 
    6565   LOGICAL , PUBLIC ::   lhftau = .FALSE.        !: HF tau used in TKE: mean(stress module) - module(mean stress) 
     66   LOGICAL , PUBLIC ::   ltrcdm2dc               !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 
    6667   !!                                   !!   now    ! before   !! 
    6768   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   utau   , utau_b   !: sea surface i-stress (ocean referential)     [N/m2] 
     
    7172   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   wndm              !: wind speed module at T-point (=|U10m-Uoce|)  [m/s] 
    7273   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qsr               !: sea heat flux:     solar                     [W/m2] 
     74   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qsr_mean          !: daily mean sea heat flux: solar              [W/m2] 
    7375   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qns    , qns_b    !: sea heat flux: non solar                     [W/m2] 
    7476   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qsr_tot           !: total     solar heat flux (over sea and ice) [W/m2] 
     
    141143#endif 
    142144         ! 
     145      IF( ltrcdm2dc ) ALLOCATE( qsr_mean(jpi,jpj) , STAT=ierr(5) ) 
     146         ! 
    143147      sbc_oce_alloc = MAXVAL( ierr ) 
    144148      IF( lk_mpp            )   CALL mpp_sum ( sbc_oce_alloc ) 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r4245 r4306  
    4949   PUBLIC   sbc_blk_core         ! routine called in sbcmod module 
    5050   PUBLIC   blk_ice_core         ! routine called in sbc_ice_lim module 
     51   PUBLIC   blk_ice_meanqsr      ! routine called in sbc_ice_lim module 
    5152   PUBLIC   turb_core_2z         ! routine calles in sbcblk_mfs module 
    5253 
     
    189190      !                                            ! compute the surface ocean fluxes using CORE bulk formulea 
    190191      IF( MOD( kt - 1, nn_fsbc ) == 0 )   CALL blk_oce_core( kt, sf, sst_m, ssu_m, ssv_m ) 
     192 
     193      ! If diurnal cycle is activated, compute a daily mean short waves flux for biogeochemistery  
     194      IF( ltrcdm2dc )   CALL blk_bio_meanqsr 
    191195 
    192196#if defined key_cice 
     
    438442      ! 
    439443   END SUBROUTINE blk_oce_core 
    440     
     444   
     445   SUBROUTINE blk_bio_meanqsr 
     446      !!--------------------------------------------------------------------- 
     447      !!                     ***  ROUTINE blk_bio_meanqsr 
     448      !!                      
     449      !! ** Purpose :   provide daily qsr_mean for PISCES when 
     450      !!                analytic diurnal cycle is applied in physic 
     451      !!                 
     452      !! ** Method  :   add part where there is no ice 
     453      !!  
     454      !!--------------------------------------------------------------------- 
     455      IF( nn_timing == 1 )  CALL timing_start('blk_bio_meanqsr') 
     456 
     457      qsr_mean(:,:) = (1. - albo ) *  sf(jp_qsr)%fnow(:,:,1) 
     458 
     459      IF( nn_timing == 1 )  CALL timing_stop('blk_bio_meanqsr') 
     460 
     461   END SUBROUTINE blk_bio_meanqsr 
     462  
     463  
     464   SUBROUTINE blk_ice_meanqsr(palb,p_qsr_mean,pdim) 
     465      !!--------------------------------------------------------------------- 
     466      !! 
     467      !! ** Purpose :   provide the daily qsr_mean over sea_ice for PISCES when 
     468      !!                analytic diurnal cycle is applied in physic 
     469      !! 
     470      !! ** Method  :   compute qsr 
     471      !!  
     472      !!--------------------------------------------------------------------- 
     473      REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   palb       ! ice albedo (clear sky) (alb_ice_cs)               [%] 
     474      REAL(wp), DIMENSION(:,:,:), INTENT(  out) ::   p_qsr_mean !     solar heat flux over ice (T-point)         [W/m2] 
     475      INTEGER                   , INTENT(in   ) ::   pdim       ! number of ice categories 
     476      !! 
     477      INTEGER  ::   ijpl          ! number of ice categories (size of 3rd dim of input arrays) 
     478      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
     479      REAL(wp) ::   zztmp         ! temporary variable 
     480      !!--------------------------------------------------------------------- 
     481      IF( nn_timing == 1 )  CALL timing_start('blk_ice_meanqsr') 
     482      ! 
     483      ijpl  = pdim                            ! number of ice categories 
     484      zztmp = 1. / ( 1. - albo ) 
     485      !                                     ! ========================== ! 
     486      DO jl = 1, ijpl                       !  Loop over ice categories  ! 
     487         !                                  ! ========================== ! 
     488         DO jj = 1 , jpj 
     489            DO ji = 1, jpi 
     490                  p_qsr_mean(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr_mean(ji,jj) 
     491            END DO 
     492         END DO 
     493      END DO 
     494      ! 
     495      IF( nn_timing == 1 )  CALL timing_stop('blk_ice_meanqsr') 
     496      ! 
     497   END SUBROUTINE blk_ice_meanqsr   
     498  
    441499    
    442500   SUBROUTINE blk_ice_core(  pst   , pui   , pvi   , palb ,   & 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90

    r3680 r4306  
    176176               &                      tprecip    , sprecip    ,                         & 
    177177               &                      fr1_i0     , fr2_i0     , cp_ice_msh , jpl  ) 
     178            IF( ltrcdm2dc_ice )   CALL blk_ice_meanqsr( zalb_ice_cs, qsr_ice_mean, jpl ) 
     179 
    178180         CASE( 5 )           ! Coupled formulation : atmosphere-ice stress only (fluxes provided after ice dynamics) 
    179181            CALL sbc_cpl_ice_tau( utau_ice , vtau_ice ) 
     
    216218                           CALL lim_thd_2      ( kt )      ! Ice thermodynamics  
    217219                           CALL lim_sbc_flx_2  ( kt )      ! update surface ocean mass, heat & salt fluxes  
     220#if defined key_top 
     221        IF( ltrcdm2dc_ice )CALL lim_bio_meanqsr_2 
     222#endif 
    218223 
    219224         IF( ( MOD( kt+nn_fsbc-1, ninfo ) == 0 .OR. ntmoy == 1 ) .AND. .NOT. lk_mpp )   & 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90

    r4292 r4306  
    111111      !                                        !* Photosynthetically Available Radiation (PAR) 
    112112      !                                        !  -------------------------------------- 
     113 
    113114      IF( ln_varpar ) THEN 
    114115         ze1(:,:,1) = par_varsw(:,:) * qsr(:,:) * EXP( -0.5 * zekb(:,:,1) ) 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90

    r4292 r4306  
    8282   USE sbc_oce , ONLY :   vtau       =>    vtau       !: j-surface stress component 
    8383   USE sbc_oce , ONLY :   wndm       =>    wndm       !: 10m wind speed  
    84    USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2)   
     84   USE sbc_oce , ONLY :   qsr        =>    qsr        !: penetrative solar radiation (w m-2) 
    8585   USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s] 
    8686   USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s] 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r4230 r4306  
    2828   USE zpshde          ! partial step: hor. derivative   (zps_hde routine) 
    2929   USE prtctl_trc      ! Print control passive tracers (prt_ctl_trc_init routine) 
    30    USE trcsub       ! variables to substep passive tracers 
    31     
     30   USE trcsub          ! variables to substep passive tracers 
     31   USE lib_mpp         ! distribued memory computing library 
     32   USE sbc_oce 
     33  
    3234   IMPLICIT NONE 
    3335   PRIVATE 
     
    6971      CALL top_alloc()              ! allocate TOP arrays 
    7072 
    71       IF( ln_dm2dc .AND. lk_pisces )    & 
    72          &  CALL ctl_stop( ' The diurnal cycle is not compatible with PISCES ' ) 
     73      IF( ln_dm2dc .AND. ln_blk_core .AND. nn_ice==2 )THEN 
     74         ! When Diurnal cycle, core bulk and LIM2  are activated,  
     75         ! a daily mean qsr is computed for tracer/biogeochemistery model  
     76         CALL ctl_warn( ' Diurnal cycle on physics but not in PISCES or LOBSTER ' ) 
     77         ltrcdm2dc     = .TRUE. 
     78      ENDIF 
    7379 
    7480      IF( nn_cla == 1 )   & 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r4147 r4306  
    1111   !!---------------------------------------------------------------------- 
    1212   USE oce_trc          ! ocean dynamics and active tracers variables 
     13   USE sbc_oce 
    1314   USE trc 
    1415   USE trctrp           ! passive tracers transport 
     
    5152      INTEGER               ::  jk, jn  ! dummy loop indices 
    5253      REAL(wp)              ::  ztrai 
    53       CHARACTER (len=25)    ::  charout 
     54      CHARACTER (len=25)    ::  charout  
     55 
     56      REAL(wp), DIMENSION(:,:), POINTER ::   zqsr_tmp ! save qsr during TOP time-step 
    5457      !!------------------------------------------------------------------- 
    5558      ! 
     
    6669      ENDIF 
    6770      !     
    68      IF( nn_dttrc /= 1 )   CALL trc_sub_stp( kt )  ! averaging physical variables for sub-stepping 
    69  
    70      IF( MOD( kt , nn_dttrc ) == 0 ) THEN      ! only every nn_dttrc time step 
     71      IF( ltrcdm2dc ) THEN 
     72         ! When Diurnal cycle, core bulk and LIM2  are activated, put daily mean qsr in qsr for TOP/biogeochemistery time-step 
     73         ! and save qsr with diurnal cycle in qsr_tmp 
     74         CALL wrk_alloc( jpi,jpj, zqsr_tmp ) 
     75         zqsr_tmp(:,:) = qsr     (:,:) 
     76         qsr     (:,:) = qsr_mean(:,:)     
     77      ENDIF 
     78      !     
     79      IF( nn_dttrc /= 1 )   CALL trc_sub_stp( kt )  ! averaging physical variables for sub-stepping 
     80      !     
     81      IF( MOD( kt , nn_dttrc ) == 0 ) THEN      ! only every nn_dttrc time step 
    7182         ! 
    7283         IF(ln_ctl) THEN 
     
    95106      ENDIF 
    96107      ! 
     108      IF( ltrcdm2dc ) THEN 
     109         ! put back qsr with diurnal cycle in qsr 
     110         qsr(:,:) = zqsr_tmp(:,:) 
     111         CALL wrk_dealloc( jpi,jpj, zqsr_tmp ) 
     112      ENDIF 
     113      ! 
    97114      ztrai = 0._wp                                                   !  content of all tracers 
    98115      DO jn = 1, jptra 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    r4292 r4306  
    2727   USE divcur          ! hor. divergence and curl      (div & cur routines) 
    2828   USE sbcrnf, ONLY: h_rnf, nk_rnf   ! River runoff  
    29    USE sbc_oce         ! surface boundary condition: ocean 
    3029   USE bdy_oce 
    3130#if defined key_obc 
Note: See TracChangeset for help on using the changeset viewer.