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

Changeset 15473


Ignore:
Timestamp:
2021-11-05T12:40:18+01:00 (2 years ago)
Author:
dford
Message:

Use cool skin SST in air-sea CO2 flux calculations.

Location:
branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/CONFIG/SHARED/field_def.xml

    r13114 r15473  
    2222       
    2323      <field_group id="grid_T" grid_ref="grid_T_2D" > 
     24         <field id="sst_wl"       long_name="diurnal warm layer SST" standard_name="warm_layer" unit="degC"     grid_ref="grid_T_2D" /> 
     25         <field id="sst_cs"       long_name="diurnal cool skin SST" standard_name="cool_skin" unit="degC"     grid_ref="grid_T_2D" /> 
    2426         <field id="e3t"          long_name="Ocean Model cell Thickness"   standard_name="cell_thickness"   unit="m"   grid_ref="grid_T_3D"/> 
    2527         <field id="e3t_surf"     field_ref="e3t"  long_name="T-cell thickness: surface layer"   standard_name="cell_thickness"   unit="m"  grid_ref="grid_T_surface_extract"/> 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/CONFIG/SHARED/namelist_ref

    r12613 r15473  
    13931393   ln_incpc       = .FALSE. 
    13941394/ 
     1395!----------------------------------------------------------------------- 
     1396&namdiu 
     1397!----------------------------------------------------------------------- 
     1398   ln_diurnal      = .false. 
     1399   ln_diurnal_only = .false. 
     1400/ 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r13114 r15473  
    5757   USE timing          ! preformance summary 
    5858   USE wrk_nemo        ! working array 
     59   USE diurnal_bulk    ! diurnal warm layer 
     60   USE cool_skin       ! Cool skin 
    5961 
    6062   IMPLICIT NONE 
     
    144146         CALL dia_wri_state( 'output.init', kt ) 
    145147         ninist = 0 
     148      ENDIF 
     149       
     150      IF(ln_diurnal) THEN 
     151         CALL iom_put( "sst_wl"   , x_dsst               )    ! warm layer 
     152         CALL iom_put( "sst_cs"   , x_csdsst             )    ! cool skin 
     153         !CALL iom_put( "temp_3m"  , tsn(:,:,4,jp_tem)    )    ! temperature at ~3m 
    146154      ENDIF 
    147155 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r10302 r15473  
    2727   USE sbc_oce         ! for icesheet freshwater input variables 
    2828   USE timing 
     29   USE diurnal_bulk    ! diurnal SST 
    2930 
    3031   IMPLICIT NONE 
     
    136137      !!---------------------------------------------------------------------- 
    137138                     IF(nn_timing == 2)  CALL timing_start('iom_rstput') 
     139                     IF( ln_diurnal ) CALL iom_rstput( kt, nitrst, numrow, 'Dsst', x_dsst    )  
    138140                     CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics time step 
    139141                     CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) )   ! surface tracer time step 
     
    260262         neuler = 0 
    261263      ENDIF 
     264      IF( ln_diurnal ) THEN 
     265         IF( iom_varid( numror, 'Dsst', ldstop = .FALSE. ) > 0 ) THEN 
     266            CALL iom_get( numror, jpdom_autoglo, 'Dsst' , x_dsst  ) 
     267         ELSE 
     268            x_dsst(:,:) = 0.0 
     269         ENDIF 
     270      ENDIF 
    262271      ! 
    263272      CALL iom_get( numror, jpdom_autoglo, 'un'     , un      )   ! now    fields 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90

    r11442 r15473  
    8989   USE stopar 
    9090   USE stopts 
     91   USE diurnal_bulk    ! diurnal bulk SST 
    9192 
    9293   IMPLICIT NONE 
     
    422423 
    423424      IF( ln_ctl        )   CALL prt_ctl_init   ! Print control 
     425 
     426      CALL diurnal_sst_bulk_init            ! diurnal sst 
     427      IF ( ln_diurnal ) CALL diurnal_sst_coolskin_init   ! cool skin 
    424428 
    425429                            CALL  istate_init   ! ocean initial state (Dynamics and tracers) 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/OPA_SRC/step.F90

    r13355 r15473  
    253253      ENDIF 
    254254 
     255      ! Cool skin 
     256      IF ( ln_diurnal ) THEN  
     257         IF ( ln_blk_core ) THEN 
     258            CALL diurnal_sst_coolskin_step(qns(:,:)+(rn_abs*qsr(:,:)), taum, rhop(:,:,1), rdt) 
     259         ELSE 
     260            CALL diurnal_sst_coolskin_step(qns, taum, rhop(:,:,1), rdt) 
     261         ENDIF 
     262      ENDIF 
     263 
    255264      !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    256265      ! diagnostics and outputs             (ua, va, tsa used as workspace) 
     
    266275      ! 
    267276      IF( ln_crs     )      CALL crs_fld( kstp )         ! ocean model: online field coarsening & output 
     277 
     278      !Diurnal warm layer model        
     279      IF ( ln_diurnal ) THEN 
     280         IF ( ln_blk_core ) THEN 
     281            IF( kstp == nit000 )THEN  
     282               CALL diurnal_sst_takaya_step( &  
     283                  &    qsr(:,:)-(rn_abs*qsr(:,:)), qns(:,:)+(rn_abs*qsr(:,:)), & 
     284                  &    taum, rhop(:,:,1), & 
     285                  &    rdt, ld_calcfrac = .TRUE.)  
     286            ELSE  
     287               CALL diurnal_sst_takaya_step( &  
     288                  &    qsr(:,:)-(rn_abs*qsr(:,:)), qns(:,:)+(rn_abs*qsr(:,:)), & 
     289                  &    taum, rhop(:,:,1), rdt )  
     290            ENDIF 
     291         ELSE 
     292            IF( kstp == nit000 )THEN  
     293               CALL diurnal_sst_takaya_step( &  
     294                  &    qsr, qns, taum, rhop(:,:,1), & 
     295                  &    rdt, ld_calcfrac = .TRUE.)  
     296            ELSE  
     297               CALL diurnal_sst_takaya_step( &  
     298                  &    qsr, qns, taum, rhop(:,:,1), rdt )  
     299            ENDIF 
     300         ENDIF 
     301      ENDIF 
    268302 
    269303#if defined key_top 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/OPA_SRC/step_oce.F90

    r11442 r15473  
    8585   USE zdfmxl           ! Mixed-layer depth                (zdf_mxl routine) 
    8686 
     87   USE diurnal_bulk    ! diurnal SST bulk routines  (diurnal_sst_takaya routine)  
     88   USE cool_skin       ! diurnal cool skin correction (diurnal_sst_coolskin routine)    
     89   USE sbc_oce         ! surface fluxes 
     90 
    8791   USE zpshde           ! partial step: hor. derivative     (zps_hde routine) 
    8892 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14_dsst_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90

    r12102 r15473  
    9696      USE lib_mpp,           ONLY: ctl_stop 
    9797      USE trcstat,           ONLY: trc_rst_dia_stat  
     98      USE cool_skin,         ONLY: x_csdsst 
    9899 
    99100   !!* Substitution 
     
    228229               !!                 chemistry package; note that depth is set to 
    229230               !!                 zero in this call 
    230                CALL mocsy_interface(ztmp(ji,jj),zsal(ji,jj),zalk(ji,jj),     & 
     231               CALL mocsy_interface(ztmp(ji,jj)+x_csdsst(ji,jj),zsal(ji,jj),zalk(ji,jj),     & 
    231232                                    zdic(ji,jj),zsil(ji,jj),zpho(ji,jj),     & 
    232233                                    f_pp0(ji,jj),0.0,                        & 
Note: See TracChangeset for help on using the changeset viewer.