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 5385 for trunk/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

Ignore:
Timestamp:
2015-06-09T15:50:42+02:00 (9 years ago)
Author:
cetlod
Message:

merge 2015/dev_r5204_CNRS_PISCES_dcy branch into the trunk, see ticket #1532

Location:
trunk/NEMOGCM/NEMO/LIM_SRC_2
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90

    r5341 r5385  
    6767 
    6868   !!* Ice Rheology 
    69  
    70    LOGICAL , PUBLIC::  ltrcdm2dc_ice = .FALSE.              !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 
    71  
    7269# if defined key_lim2_vp 
    7370   !                                                      !!* VP rheology * 
     
    115112   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   qdtcn         !: energy from the ice to the ocean point (at a factor 2) 
    116113   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   thcm          !: part of the solar energy used in the lead heat budget 
    117    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fstric_daymean!: Solar flux transmitted trough the ice, for day mean of qsr ( PISCES, with dirunal cycle ) 
     114   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fstric_mean   !: Solar flux transmitted trough the ice, for day mean of qsr ( PISCES, with dirunal cycle ) 
    118115   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   fstric        !: Solar flux transmitted trough the ice 
    119116   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ffltbif       !: linked with the max heat contained in brine pockets (?) 
     
    175172         &     tbif  (jpi,jpj,jplayersp1)                           , STAT=ierr(5)) 
    176173 
    177       IF( ltrcdm2dc_ice ) ALLOCATE(fstric_daymean(jpi,jpj), STAT=ierr(6) ) 
    178  
    179174      !* moment used in the advection scheme 
    180175      ALLOCATE(sxice (jpi,jpj) , syice (jpi,jpj) , sxxice(jpi,jpj) ,     & 
     
    203198   !!   Default option         Empty module        NO LIM 2.0 sea-ice model 
    204199   !!---------------------------------------------------------------------- 
    205    LOGICAL , PUBLIC::  ltrcdm2dc_ice = .FALSE.              !: In case of Diurnal Cycle short wave, compute a Daily Mean short waves flux 
    206200#endif 
    207201   !!----------------------------------------------------------------- 
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/iceini_2.F90

    r5341 r5385  
    6060      ENDIF 
    6161      !                                 
    62       ! When Diurnal cycle, core bulk and LIM2  are activated,  
    63       ! a daily mean qsr is computed for tracer/biogeochemistery model                                 ! 
    64       IF( ltrcdm2dc )THEN  ; ltrcdm2dc_ice = .TRUE. 
    65       ELSE                 ; ltrcdm2dc_ice = .FALSE. 
    66       ENDIF 
    6762      !                                ! Allocate the ice arrays 
    6863      ierr =        ice_alloc_2    ()       ! ice variables 
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r4990 r5385  
    4646   PUBLIC   lim_sbc_flx_2      ! called by sbc_ice_lim_2 
    4747   PUBLIC   lim_sbc_tau_2      ! called by sbc_ice_lim_2 
    48    PUBLIC   lim_bio_meanqsr_2  ! called by sbc_ice_lim_2 
    4948 
    5049   REAL(wp)  ::   r1_rdtice            ! = 1. / rdt_ice  
     
    430429   END SUBROUTINE lim_sbc_tau_2 
    431430 
    432    SUBROUTINE lim_bio_meanqsr_2 
    433       !!--------------------------------------------------------------------- 
    434       !!                     ***  ROUTINE lim_bio_meanqsr 
    435       !! 
    436       !! ** Purpose :   provide daily qsr_mean for PISCES when  
    437       !!                analytic diurnal cycle is applied in physic 
    438       !! 
    439       !! ** Method  :   add part under ice 
    440       !! 
    441       !!--------------------------------------------------------------------- 
    442  
    443       qsr_mean(:,:) =  pfrld(:,:) * qsr_mean(:,:) + ( 1. - pfrld(:,:) ) * fstric_daymean(:,:) 
    444  
    445    END SUBROUTINE lim_bio_meanqsr_2 
    446431 
    447432   SUBROUTINE lim_sbc_init_2 
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/limthd_2.F90

    r4990 r5385  
    114114      CALL wrk_alloc( jpi, jpj, jpk, zmsk ) 
    115115 
    116       IF( kt == nit000 )   CALL lim_thd_init_2  ! Initialization (first time-step only) 
     116      IF( kt == nit000 )   CALL lim_thd_init_2   ! Initialization (first time-step only) 
    117117    
    118118      !-------------------------------------------! 
     
    137137      rdq_ice(:,:) = 0.e0   ! heat content associated with rdm_ice 
    138138      zmsk (:,:,:) = 0.e0 
    139       IF( ltrcdm2dc_ice  ) fstric_daymean (:,:) = 0.e0   ! part of solar radiation absorbing inside the ice 
    140139 
    141140      ! set to zero snow thickness smaller than epsi04 
     
    285284         CALL tab_2d_1d_2( nbpb, tbif_1d    (1:nbpb , 3 ), tbif(:,:,3)    , jpi, jpj, npb(1:nbpb) ) 
    286285         CALL tab_2d_1d_2( nbpb, qsr_ice_1d (1:nbpb)     , qsr_ice(:,:,1) , jpi, jpj, npb(1:nbpb) ) 
    287          IF( ltrcdm2dc_ice ) & 
    288          & CALL tab_2d_1d_2( nbpb, qsr_ice_mean_1d (1:nbpb), qsr_ice_mean(:,:,1), jpi, jpj, npb(1:nbpb) ) 
    289286         CALL tab_2d_1d_2( nbpb, fr1_i0_1d  (1:nbpb)     , fr1_i0         , jpi, jpj, npb(1:nbpb) ) 
    290287         CALL tab_2d_1d_2( nbpb, fr2_i0_1d  (1:nbpb)     , fr2_i0         , jpi, jpj, npb(1:nbpb) ) 
     
    336333         CALL tab_1d_2d_2( nbpb, qsr_ice(:,:,1), npb, qsr_ice_1d(1:nbpb)  , jpi, jpj ) 
    337334         CALL tab_1d_2d_2( nbpb, qns_ice(:,:,1), npb, qns_ice_1d(1:nbpb)  , jpi, jpj ) 
    338          IF( ltrcdm2dc_ice )THEN 
    339             CALL tab_1d_2d_2( nbpb, fstric_daymean     , npb, fstbif_daymean_1d (1:nbpb)  , jpi, jpj ) 
    340             CALL tab_1d_2d_2( nbpb, qsr_ice_mean(:,:,1), npb,    qsr_ice_mean_1d(1:nbpb)  , jpi, jpj ) 
    341          ENDIF 
    342          IF( .NOT. lk_cpl )   CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb)             , jpi, jpj ) 
     335         IF( .NOT. lk_cpl )   CALL tab_1d_2d_2( nbpb, qla_ice(:,:,1), npb, qla_ice_1d(1:nbpb), jpi, jpj ) 
    343336         ! 
    344337      ENDIF 
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/limthd_zdf_2.F90

    r4990 r5385  
    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  
    287275       !-------------------------------------------------------------------------------- 
    288276       !  4. Computation of the surface temperature : determined by considering the  
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/thd_ice_2.F90

    r4306 r5385  
    5555      fstbif_1d   ,     &  !:    "                  "      fstric 
    5656      fltbif_1d   ,     &  !:    "                  "      ffltbif 
    57       fstbif_daymean_1d, & !:    "                  " fstric_daymean 
    5857      fscbq_1d    ,     &  !:    "                  "      fscmcbq 
    5958      qsr_ice_1d  ,     &  !:    "                  "      qsr_ice 
    60       qsr_ice_mean_1d , &  !:    "                  "      qsr_ice_mean 
    6159      fr1_i0_1d   ,     &  !:    "                  "      fr1_i0 
    6260      fr2_i0_1d   ,     &  !:    "                  "      fr2_i0 
     
    122120         &      tbif_1d(jpij, jplayersp1), Stat=ierr(4)) 
    123121         ! 
    124       IF( ltrcdm2dc_ice )ALLOCATE(fstbif_daymean_1d(jpij),qsr_ice_mean_1d(jpij),Stat=ierr(5)) 
    125          ! 
    126122      thd_ice_alloc_2 = MAXVAL(ierr) 
    127123      IF( thd_ice_alloc_2 /= 0 )   CALL ctl_warn('thd_ice_alloc_2: failed to allocate arrays') 
Note: See TracChangeset for help on using the changeset viewer.