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

Changeset 12074


Ignore:
Timestamp:
2019-12-05T17:54:17+01:00 (4 years ago)
Author:
laurent
Message:

Fixed namelist hphi/hpgj issue + added sanity check for air humidity.

Location:
NEMO/branches/2019/dev_ASINTER-01-05_merged
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/cfgs/SHARED/namelist_ref

    r12063 r12074  
    55!! namelists    2 - Surface boundary (namsbc, namsbc_flx, namsbc_blk, namsbc_cpl, 
    66!!                                    namsbc_sas, namtra_qsr, namsbc_rnf, 
    7 !!                                    namsbc_isf, namsbc_iscpl, namsbc_apr,  
     7!!                                    namsbc_isf, namsbc_iscpl, namsbc_apr, 
    88!!                                    namsbc_ssr, namsbc_wave, namberg) 
    99!!              3 - lateral boundary (namlbc, namagrif, nambdy, nambdy_tide) 
     
    8888      cn_domcfg = "domain_cfg"  ! domain configuration filename 
    8989      ! 
    90       ln_closea    = .false.    !  T => keep closed seas (defined by closea_mask field) in the   
     90      ln_closea    = .false.    !  T => keep closed seas (defined by closea_mask field) in the 
    9191      !                         !       domain and apply special treatment of freshwater fluxes. 
    92       !                         !  F => suppress closed seas (defined by closea_mask field)  
     92      !                         !  F => suppress closed seas (defined by closea_mask field) 
    9393      !                         !       from the bathymetry at runtime. 
    9494      !                         !  If closea_mask field doesn't exist in the domain_cfg file 
     
    106106   ln_tsd_init = .false.         !  ocean initialisation 
    107107   ln_tsd_dmp  = .false.         !  T-S restoring   (see namtra_dmp) 
    108     
     108 
    109109   cn_dir      = './'      !  root directory for the T-S data location 
    110110   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     
    195195   nn_fsbc     = 2         !  frequency of SBC module call 
    196196      !                    !  (control sea-ice & iceberg model call) 
    197                      ! Type of air-sea fluxes  
     197                     ! Type of air-sea fluxes 
    198198   ln_usr      = .false.   !  user defined formulation                  (T => check usrdef_sbc) 
    199199   ln_flx      = .false.   !  flux formulation                          (T => fill namsbc_flx ) 
     
    206206      !                    !  =0 no opa-sas OASIS coupling: default single executable config. 
    207207      !                    !  =1 opa-sas OASIS coupling: multi executable config., OPA component 
    208       !                    !  =2 opa-sas OASIS coupling: multi executable config., SAS component  
     208      !                    !  =2 opa-sas OASIS coupling: multi executable config., SAS component 
    209209                     ! Sea-ice : 
    210    nn_ice      = 0         !  =0 no ice boundary condition     
     210   nn_ice      = 0         !  =0 no ice boundary condition 
    211211      !                    !  =1 use observed ice-cover                 (  => fill namsbc_iif ) 
    212212      !                    !  =2 or 3 automatically for SI3 or CICE    ("key_si3" or "key_cice") 
     
    214214   ln_ice_embd = .false.   !  =T embedded sea-ice (pressure + mass and salt exchanges) 
    215215      !                    !  =F levitating ice (no pressure, mass and salt exchanges) 
    216                      ! Misc. options of sbc :  
     216                     ! Misc. options of sbc : 
    217217   ln_traqsr   = .false.   !  Light penetration in the ocean            (T => fill namtra_qsr) 
    218218   ln_dm2dc    = .false.   !  daily mean to diurnal cycle on short wave 
     
    226226   ln_wave     = .false.   !  Activate coupling with wave  (T => fill namsbc_wave) 
    227227   ln_cdgw     = .false.   !  Neutral drag coefficient read from wave model (T => ln_wave=.true. & fill namsbc_wave) 
    228    ln_sdw      = .false.   !  Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave)  
     228   ln_sdw      = .false.   !  Read 2D Surf Stokes Drift & Computation of 3D stokes drift (T => ln_wave=.true. & fill namsbc_wave) 
    229229   nn_sdrift   =  0        !  Parameterization for the calculation of 3D-Stokes drift from the surface Stokes drift 
    230230      !                    !   = 0 Breivik 2015 parameterization: v_z=v_0*[exp(2*k*z)/(1-8*k*z)] 
     
    284284   sn_tair     = 't_10.15JUNE2009_fill'       ,    6.        , 'T_10_MOD',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
    285285   sn_humi     = 'q_10.15JUNE2009_fill'       ,    6.        , 'Q_10_MOD',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     286   sn_hpgi     = 'NONE'                       ,   24.        , 'uhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'UG'     , '' 
     287   sn_hpgj     = 'NONE'                       ,   24.        , 'vhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'VG'     , '' 
    286288   sn_prec     = 'ncar_precip.15JUNE2009_fill',   -1.        , 'PRC_MOD1',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
    287289   sn_snow     = 'ncar_precip.15JUNE2009_fill',   -1.        , 'SNOW'    ,   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     
    410412   nn_chldta   =      0       !  RGB : Chl data (=1) or cst value (=0) 
    411413   rn_si1      =   23.0       !  2BD : longest depth of extinction 
    412     
     414 
    413415   cn_dir      = './'      !  root directory for the chlorophyl data location 
    414416   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     
    474476/ 
    475477!----------------------------------------------------------------------- 
    476 &namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T)  
     478&namsbc_isf    !  Top boundary layer (ISF)                              (ln_isfcav =T : read (ln_read_cfg=T) 
    477479!-----------------------------------------------------------------------             or set or usr_def_zgr ) 
    478    !                 ! type of top boundary layer  
     480   !                 ! type of top boundary layer 
    479481   nn_isf      = 1         !  ice shelf melting/freezing 
    480                            !  1 = presence of ISF   ;  2 = bg03 parametrisation  
     482                           !  1 = presence of ISF   ;  2 = bg03 parametrisation 
    481483                           !  3 = rnf file for ISF  ;  4 = ISF specified freshwater flux 
    482484                           !  options 1 and 4 need ln_isfcav = .true. (domzgr) 
     
    501503!* nn_isf = 3 case 
    502504   sn_rnfisf   = 'rnfisf'    ,         -12.      ,'sofwfisf' ,  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    503 !* nn_isf = 2 and 3 cases  
     505!* nn_isf = 2 and 3 cases 
    504506   sn_depmax_isf ='rnfisf'   ,         -12.      ,'sozisfmax',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
    505507   sn_depmin_isf ='rnfisf'   ,         -12.      ,'sozisfmin',  .false.    , .true.  , 'yearly'  ,    ''    ,   ''     ,    '' 
     
    508510/ 
    509511!----------------------------------------------------------------------- 
    510 &namsbc_iscpl  !   land ice / ocean coupling option                     (ln_isfcav =T : read (ln_read_cfg=T)  
     512&namsbc_iscpl  !   land ice / ocean coupling option                     (ln_isfcav =T : read (ln_read_cfg=T) 
    511513!-----------------------------------------------------------------------             or set or usr_def_zgr ) 
    512514   nn_drown    = 10        ! number of iteration of the extrapolation loop (fill the new wet cells) 
     
    608610         ln_read_load  = .false.               ! Or read load potential from file 
    609611            cn_tide_load = 'tide_LOAD_grid_T.nc'  ! filename for load potential 
    610             !       
     612            ! 
    611613      ln_tide_ramp  = .false.               !  Use linear ramp for tides at startup 
    612614         rdttideramp   =    0.                 !  ramp duration in days 
     
    687689   filtide          = 'bdydta/amm12_bdytide_'   !  file name root of tidal forcing files 
    688690   ln_bdytide_2ddta = .false.                   ! 
    689    ln_bdytide_conj  = .false.                   !  
     691   ln_bdytide_conj  = .false.                   ! 
    690692/ 
    691693 
     
    714716!----------------------------------------------------------------------- 
    715717   rn_Cd0      =  1.e-3    !  drag coefficient [-] 
    716    rn_Uc0      =  0.4      !  ref. velocity [m/s] (linear drag=Cd0*Uc0)  
     718   rn_Uc0      =  0.4      !  ref. velocity [m/s] (linear drag=Cd0*Uc0) 
    717719   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag) 
    718720   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases) 
     
    725727!----------------------------------------------------------------------- 
    726728   rn_Cd0      =  1.e-3    !  drag coefficient [-] 
    727    rn_Uc0      =  0.4      !  ref. velocity [m/s] (linear drag=Cd0*Uc0)  
     729   rn_Uc0      =  0.4      !  ref. velocity [m/s] (linear drag=Cd0*Uc0) 
    728730   rn_Cdmax    =  0.1      !  drag value maximum [-] (logarithmic drag) 
    729731   rn_ke0      =  2.5e-3   !  background kinetic energy  [m2/s2] (non-linear cases) 
     
    792794      nn_cen_v   =  4            !  =2/4, vertical   2nd order CEN / 4th order COMPACT 
    793795   ln_traadv_fct = .false. !  FCT scheme 
    794       nn_fct_h   =  2            !  =2/4, horizontal 2nd / 4th order  
    795       nn_fct_v   =  2            !  =2/4, vertical   2nd / COMPACT 4th order  
     796      nn_fct_h   =  2            !  =2/4, horizontal 2nd / 4th order 
     797      nn_fct_v   =  2            !  =2/4, vertical   2nd / COMPACT 4th order 
    796798   ln_traadv_mus = .false. !  MUSCL scheme 
    797799      ln_mus_ups = .false.       !  use upstream scheme near river mouths 
     
    814816   ln_traldf_triad = .false.   !  iso-neutral (triad    operator) 
    815817   ! 
    816    !                       !  iso-neutral options:         
     818   !                       !  iso-neutral options: 
    817819   ln_traldf_msc   = .false.   !  Method of Stabilizing Correction      (both operators) 
    818820   rn_slpmax       =  0.01     !  slope limit                           (both operators) 
     
    824826   nn_aht_ijk_t    = 0         !  space/time variation of eddy coefficient: 
    825827      !                             !   =-20 (=-30)    read in eddy_diffusivity_2D.nc (..._3D.nc) file 
    826       !                             !   =  0           constant  
    827       !                             !   = 10 F(k)      =ldf_c1d  
    828       !                             !   = 20 F(i,j)    =ldf_c2d  
     828      !                             !   =  0           constant 
     829      !                             !   = 10 F(k)      =ldf_c1d 
     830      !                             !   = 20 F(i,j)    =ldf_c2d 
    829831      !                             !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation 
    830832      !                             !   = 30 F(i,j,k)  =ldf_c2d * ldf_c1d 
    831833      !                             !   = 31 F(i,j,k,t)=F(local velocity and grid-spacing) 
    832       !                        !  time invariant coefficients:  aht0 = 1/2  Ud*Ld   (lap case)  
     834      !                        !  time invariant coefficients:  aht0 = 1/2  Ud*Ld   (lap case) 
    833835      !                             !                           or   = 1/12 Ud*Ld^3 (blp case) 
    834836      rn_Ud        = 0.01           !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30) 
     
    856858      nn_aei_ijk_t    = 0           !  space/time variation of eddy coefficient: 
    857859      !                             !   =-20 (=-30)    read in eddy_induced_velocity_2D.nc (..._3D.nc) file 
    858       !                             !   =  0           constant  
    859       !                             !   = 10 F(k)      =ldf_c1d  
    860       !                             !   = 20 F(i,j)    =ldf_c2d  
     860      !                             !   =  0           constant 
     861      !                             !   = 10 F(k)      =ldf_c1d 
     862      !                             !   = 20 F(i,j)    =ldf_c2d 
    861863      !                             !   = 21 F(i,j,t)  =Treguier et al. JPO 1997 formulation 
    862864      !                             !   = 30 F(i,j,k)  =ldf_c2d * ldf_c1d 
    863       !                        !  time invariant coefficients:  aei0 = 1/2  Ue*Le  
     865      !                        !  time invariant coefficients:  aei0 = 1/2  Ue*Le 
    864866      rn_Ue        = 0.02           !  lateral diffusive velocity [m/s] (nn_aht_ijk_t= 0, 10, 20, 30) 
    865867      rn_Le        = 200.e+3        !  lateral diffusive length   [m]   (nn_aht_ijk_t= 0, 10) 
     
    921923   ln_dynvor_eeT = .false. !  energy conserving scheme (een using e3t) 
    922924   ln_dynvor_een = .false. !  energy & enstrophy scheme 
    923       nn_een_e3f = 0          ! =0  e3f = mi(mj(e3t))/4  
     925      nn_een_e3f = 0          ! =0  e3f = mi(mj(e3t))/4 
    924926      !                       ! =1  e3f = mi(mj(e3t))/mi(mj( tmask)) 
    925927   ln_dynvor_msk = .false. !  vorticity multiplied by fmask (=T)        ==>>> PLEASE DO NOT ACTIVATE 
     
    966968      !                             !  =-30  read in eddy_viscosity_3D.nc file 
    967969      !                             !  =-20  read in eddy_viscosity_2D.nc file 
    968       !                             !  =  0  constant  
     970      !                             !  =  0  constant 
    969971      !                             !  = 10  F(k)=c1d 
    970972      !                             !  = 20  F(i,j)=F(grid spacing)=c2d 
     
    972974      !                             !  = 31  F(i,j,k)=F(grid spacing and local velocity) 
    973975      !                             !  = 32  F(i,j,k)=F(local gridscale and deformation rate) 
    974       !                        !  time invariant coefficients :  ahm = 1/2  Uv*Lv   (lap case)  
     976      !                        !  time invariant coefficients :  ahm = 1/2  Uv*Lv   (lap case) 
    975977      !                             !                            or  = 1/12 Uv*Lv^3 (blp case) 
    976978      rn_Uv      = 0.1              !  lateral viscous velocity [m/s] (nn_ahm_ijk_t= 0, 10, 20, 30) 
     
    10961098                              !        = 0  constant 10 m length scale 
    10971099                              !        = 1  0.5m at the equator to 30m poleward of 40 degrees 
    1098       rn_eice     =   4       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4    
     1100      rn_eice     =   4       !  below sea ice: =0 ON ; =4 OFF when ice fraction > 1/4 
    10991101/ 
    11001102!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/src/OCE/SBC/sbcblk.F90

    r12063 r12074  
    392392      !!---------------------------------------------------------------------- 
    393393      INTEGER, INTENT(in) ::   kt   ! ocean time step 
    394       !! 
     394      !!---------------------------------------------------------------------- 
    395395      REAL(wp), DIMENSION(jpi,jpj) ::   zssq, zcd_du, zsen, zevp 
    396       !!--------------------------------------------------------------------- 
     396      REAL(wp) :: ztmp 
     397      !!---------------------------------------------------------------------- 
    397398      ! 
    398399      CALL fld_read( kt, nn_fsbc, sf )             ! input fields provided at the current time-step 
    399       ! 
     400 
     401      ! Sanity/consistence test on humidity at first time step to detect potential screw-up: 
     402      IF( kt == nit000 ) THEN 
     403         WRITE(numout,*) '' 
     404         ztmp = SUM(tmask(:,:,1)) ! number of ocean points on local proc domain 
     405         IF( ztmp > 8._wp ) THEN ! test only on proc domains with at least 8 ocean points! 
     406            ztmp = SUM(sf(jp_humi)%fnow(:,:,1)*tmask(:,:,1))/ztmp ! mean humidity over ocean on proc 
     407            SELECT CASE( nhumi ) 
     408            CASE( np_humi_sph ) ! specific humidity => expect: 0. <= something < 0.065 [kg/kg] (0.061 is saturation at 45degC !!!) 
     409               IF(  (ztmp < 0._wp) .OR. (ztmp > 0.065)  ) ztmp = -1._wp 
     410            CASE( np_humi_dpt ) ! dew-point temperature => expect: 110. <= something < 320. [K] 
     411               IF( (ztmp < 110._wp).OR.(ztmp > 320._wp) ) ztmp = -1._wp 
     412            CASE( np_humi_rlh ) ! relative humidity => expect: 0. <= something < 100. [%] 
     413               IF(  (ztmp < 0._wp) .OR.(ztmp > 100._wp) ) ztmp = -1._wp 
     414            END SELECT 
     415            IF(ztmp < 0._wp) THEN 
     416               WRITE(numout,'("   Mean humidity value found on proc #",i5.5," is: ",f)'), narea, ztmp 
     417               CALL ctl_stop( 'STOP', 'Something is wrong with air humidity!!!', & 
     418                  &   ' ==> check the unit in your input files'       , & 
     419                  &   ' ==> check consistence of namelist choice: specific? relative? dew-point?', & 
     420                  &   ' ==> ln_humi_sph -> [kg/kg] | ln_humi_rlh -> [%] | ln_humi_dpt -> [K] !!!' ) 
     421            END IF 
     422         END IF 
     423         WRITE(numout,*) ' === Sanity/consistence test on air humidity sucessfuly passed! ===' 
     424         WRITE(numout,*) '' 
     425      END IF !IF( kt == nit000 ) 
     426 
    400427      !                                            ! compute the surface ocean fluxes using bulk formulea 
    401428      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/tests/STATION_ASF/EXPREF/namelist_coare3p6-noskin_cfg

    r11996 r12074  
    148148   sn_snow     = 'Station_PAPA_50N-145W_precip_daily', 24., 'snow',     .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    149149   sn_slp      = 'Station_PAPA_50N-145W_atm_hourly',  1.  , 'slp',      .true.     , .false. , 'yearly'  , ''  , ''   , '' 
    150    sn_tdif     = 'Station_PAPA_50N-145W_atm_hourly', 24.  , 'taudif'  , .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    151  
     150/ 
     151!----------------------------------------------------------------------- 
     152&namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T) 
     153!----------------------------------------------------------------------- 
    152154/ 
    153155!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/tests/STATION_ASF/EXPREF/namelist_coare3p6_cfg

    r11930 r12074  
    148148   sn_snow     = 'Station_PAPA_50N-145W_precip_daily', 24., 'snow',     .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    149149   sn_slp      = 'Station_PAPA_50N-145W_atm_hourly',  1.  , 'slp',      .true.     , .false. , 'yearly'  , ''  , ''   , '' 
    150    sn_tdif     = 'Station_PAPA_50N-145W_atm_hourly', 24.  , 'taudif'  , .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    151  
     150/ 
     151!----------------------------------------------------------------------- 
     152&namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T) 
     153!----------------------------------------------------------------------- 
    152154/ 
    153155!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/tests/STATION_ASF/EXPREF/namelist_ecmwf-noskin_cfg

    r11996 r12074  
    148148   sn_snow     = 'Station_PAPA_50N-145W_precip_daily', 24., 'snow',     .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    149149   sn_slp      = 'Station_PAPA_50N-145W_atm_hourly',  1.  , 'slp',      .true.     , .false. , 'yearly'  , ''  , ''   , '' 
    150    sn_tdif     = 'Station_PAPA_50N-145W_atm_hourly', 24.  , 'taudif'  , .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    151  
     150/ 
     151!----------------------------------------------------------------------- 
     152&namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T) 
     153!----------------------------------------------------------------------- 
    152154/ 
    153155!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/tests/STATION_ASF/EXPREF/namelist_ecmwf_cfg

    r11930 r12074  
    148148   sn_snow     = 'Station_PAPA_50N-145W_precip_daily', 24., 'snow',     .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    149149   sn_slp      = 'Station_PAPA_50N-145W_atm_hourly',  1.  , 'slp',      .true.     , .false. , 'yearly'  , ''  , ''   , '' 
    150    sn_tdif     = 'Station_PAPA_50N-145W_atm_hourly', 24.  , 'taudif'  , .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    151  
     150/ 
     151!----------------------------------------------------------------------- 
     152&namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T) 
     153!----------------------------------------------------------------------- 
    152154/ 
    153155!----------------------------------------------------------------------- 
  • NEMO/branches/2019/dev_ASINTER-01-05_merged/tests/STATION_ASF/EXPREF/namelist_ncar_cfg

    r11930 r12074  
    122122   ln_NCAR      = .true.    ! "NCAR"      algorithm   (Large and Yeager 2008) 
    123123   ln_COARE_3p0 = .false.   ! "COARE 3.0" algorithm   (Fairall et al. 2003) 
    124    ln_COARE_3p6 = .false.   ! "COARE 3.5" algorithm   (Edson et al. 2013) 
     124   ln_COARE_3p6 = .false.   ! "COARE 3.6" algorithm   (Edson et al. 2013) 
    125125   ln_ECMWF     = .false.   ! "ECMWF"     algorithm   (IFS cycle 31) 
    126126      rn_zqt    =  2.5      !  Air temperature & humidity reference height (m) [PAPA station] 
     
    148148   sn_snow     = 'Station_PAPA_50N-145W_precip_daily', 24., 'snow',     .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    149149   sn_slp      = 'Station_PAPA_50N-145W_atm_hourly',  1.  , 'slp',      .true.     , .false. , 'yearly'  , ''  , ''   , '' 
    150    sn_tdif     = 'Station_PAPA_50N-145W_atm_hourly', 24.  , 'taudif'  , .false.    , .false. , 'yearly'  , ''  , ''   , '' 
    151  
     150/ 
     151!----------------------------------------------------------------------- 
     152&namsbc_abl    !   Atmospheric Boundary Layer formulation           (ln_abl = T) 
     153!----------------------------------------------------------------------- 
    152154/ 
    153155!----------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.