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 2187 – NEMO

Changeset 2187


Ignore:
Timestamp:
2010-10-07T17:44:48+02:00 (13 years ago)
Author:
smasson
Message:

add diurna cycle in dev_r2174_DCY, see ticket:730

Location:
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r1730 r2187  
    2626   USE fldread         ! read input fields 
    2727   USE sbc_oce         ! Surface boundary condition: ocean fields 
     28   USE sbcdcy          ! surface forcing: diurnal cycle 
    2829   USE iom             ! I/O manager library 
    2930   USE in_out_manager  ! I/O manager 
     
    147148         READ  ( numnam, namsbc_core ) 
    148149         ! 
     150         ! do we plan to use ln_dm2dc with non-daily forcing? 
     151         IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   & 
     152            &   CALL ctl_stop( 'sbc_blk_core: ln_dm2dc can be activated only with daily short-wave forcing' )  
     153         IF( ln_dm2dc .AND. sn_qsr%ln_tint ) THEN 
     154            CALL ctl_warn( 'sbc_blk_core: ln_dm2dc is taking care of the temporal interpolation of daily qsr',   & 
     155                 &         '              ==> We force time interpolation = .false. for qsr' ) 
     156            sn_qsr%ln_tint = .false. 
     157         ENDIF 
     158         ! 
    149159         ! store namelist information in an array 
    150160         slf_i(jp_wndi) = sn_wndi   ;   slf_i(jp_wndj) = sn_wndj 
     
    169179         ! 
    170180         ! fill sf with slf_i and control print 
    171          CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_core', 'flux formulattion for ocean surface boundary condition', 'namsbc_core' ) 
     181         CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_core', 'flux formulation for ocean surface boundary condition', 'namsbc_core' ) 
    172182         ! 
    173183      ENDIF 
    174184 
    175185      CALL fld_read( kt, nn_fsbc, sf )                   ! input fields provided at the current time-step 
     186 
     187      IF( ln_dm2dc )   CALL sbc_dcy( kt , sf(jp_qsr)%fnow )   ! modify sf(jp_qsr)%fnow for diurnal cycle 
    176188 
    177189#if defined key_lim3 
  • branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcflx.F90

    r1730 r2187  
    2929   USE sbc_oce         ! Surface boundary condition: ocean fields 
    3030   USE phycst          ! physical constants 
     31   USE sbcdcy          ! diurnal cycle on qsr 
    3132   USE fldread         ! read input fields 
    3233   USE iom             ! IOM library 
     
    115116         READ   ( numnam, namsbc_flx )  
    116117 
     118         ! do we plan to use ln_dm2dc with non-daily forcing? 
     119         IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   & 
     120            &   CALL ctl_stop( 'sbc_blk_core: ln_dm2dc can be activated only with daily short-wave forcing' )  
     121 
    117122         ! store namelist information in an array 
    118123         slf_i(jp_utau) = sn_utau   ;   slf_i(jp_vtau) = sn_vtau 
     
    138143      CALL fld_read( kt, nn_fsbc, sf )           ! Read input fields and provides the 
    139144      !                                          ! input fields at the current time-step 
     145      IF( ln_dm2dc )   CALL sbc_dcy( kt , sf(jp_qsr)%fnow )   ! modify sf(jp_qsr)%fnow for diurnal cycle 
    140146 
    141147      IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN 
  • branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcmod.F90

    r1792 r2187  
    137137      IF( nn_ice == 2 .AND. .NOT.( ln_blk_clio .OR. ln_blk_core .OR. lk_cpl ) )   & 
    138138         &   CALL ctl_stop( 'sea-ice model requires a bulk formulation or coupled configuration' ) 
     139       
     140      IF( ln_dm2dc .AND. .NOT.( ln_flx .OR. ln_blk_core ) )   & 
     141         &   CALL ctl_stop( 'diurnal cycle into qsr field from daily values requires a flux or core-bulk formulation' ) 
     142       
     143      IF( ln_dm2dc .AND. ( ( NINT(rday) / ( nn_fsbc * NINT(rdt) ) )  < 8 ) )   & 
     144         &   CALL ctl_warn( 'diurnal cycle for qsr: the sampling of the diurnal cycle is too small...' ) 
    139145       
    140146      ! Choice of the Surface Boudary Condition (set nsbc) 
     
    216222      ! Misc. Options 
    217223      ! ------------- 
    218  
    219 !!gm  IF( ln_dm2dc       )   CALL sbc_dcy( kt )                 ! Daily mean qsr distributed over the Diurnal Cycle 
    220224       
    221225      SELECT CASE( nn_ice )                                     ! Update heat and freshwater fluxes over sea-ice areas 
     
    239243         CALL iom_put( "emp"    , emp       )                   ! upward water flux 
    240244         CALL iom_put( "emps"   , emps      )                   ! c/d water flux 
    241          CALL iom_put( "qns+qsr", qns + qsr )                   ! total heat flux   (caution if ln_dm2dc=true, to be  
    242          CALL iom_put( "qns"    , qns       )                   ! solar heat flux    moved after the call to iom_setkt) 
    243          CALL iom_put( "qsr"    ,       qsr )                   ! solar heat flux    moved after the call to iom_setkt) 
     245         CALL iom_put( "qns+qsr", qns + qsr )                   ! total heat flux 
     246         CALL iom_put( "qns"    , qns       )                   ! solar heat flux 
     247         CALL iom_put( "qsr"    ,       qsr )                   ! solar heat flux 
    244248         IF(  nn_ice > 0 )   CALL iom_put( "ice_cover", fr_i )  ! ice fraction  
    245249      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.