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 12501 for NEMO/trunk – NEMO

Changeset 12501 for NEMO/trunk


Ignore:
Timestamp:
2020-03-02T18:51:24+01:00 (4 years ago)
Author:
gsamson
Message:

replace iom calls in zdf_iwm_init subroutine by fldread interface, remove MY_SRC version in BENCH testcase (+ minor bugfix in BENCH namelist_pisces_cfg) and adjusts related namelists accordingly, see #2395

Location:
NEMO/trunk
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_cfg

    r12489 r12501  
    2828&namdom        !   time and space domain 
    2929!----------------------------------------------------------------------- 
    30    rn_Dt      = 5400.     !  time step for the dynamics and tracer 
     30   rn_Dt       = 5400.     !  time step for the dynamics and tracer 
    3131/ 
    3232!----------------------------------------------------------------------- 
     
    381381   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency 
    382382   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F) 
     383 
     384   cn_dir      = './'      !  root directory for the iwm data location                                                                            
     385   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     386   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask ! 
     387   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   ! 
     388   sn_mpb      = 'mixing_power_bot'      , -12               , 'field'   , .false.  , .true. , 'yearly' , '' , ''  , '' 
     389   sn_mpp      = 'mixing_power_pyc'      , -12               , 'field'   , .false.  , .true. , 'yearly' , '' , ''  , '' 
     390   sn_mpc      = 'mixing_power_cri'      , -12               , 'field'   , .false.  , .true. , 'yearly' , '' , ''  , '' 
     391   sn_dsb      = 'decay_scale_bot'       , -12               , 'field'   , .false.  , .true. , 'yearly' , '' , ''  , '' 
     392   sn_dsc      = 'decay_scale_cri'       , -12               , 'field'   , .false.  , .true. , 'yearly' , '' , ''  , '' 
    383393/ 
    384394!!====================================================================== 
  • NEMO/trunk/cfgs/SHARED/namelist_ref

    r12489 r12501  
    7272   ln_linssh   = .false.   !  =T  linear free surface  ==>>  model level are fixed in time 
    7373   ! 
    74    rn_Dt      = 5400.     !  time step for the dynamics and tracer 
     74   rn_Dt       = 5400.     !  time step for the dynamics and tracer 
    7575   rn_atfp     =    0.1    !  asselin time filter parameter 
    7676   ! 
     
    272272      rn_pfac    = 1.       !  multipl. factor for precipitation (total & snow) 
    273273      rn_efac    = 1.       !  multipl. factor for evaporation (0. or 1.) 
    274       rn_vfac    = 0.       !  multipl. factor for ocean & ice velocity  
     274      rn_vfac    = 0.       !  multipl. factor for ocean & ice velocity 
    275275      !                     !  used to calculate the wind stress 
    276276      !                     ! (0. => absolute or 1. => relative winds) 
     
    292292   sn_tair     = 't_10.15JUNE2009_fill'       ,    6.        , 'T_10_MOD',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
    293293   sn_humi     = 'q_10.15JUNE2009_fill'       ,    6.        , 'Q_10_MOD',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
    294    sn_hpgi     = 'NONE'                       ,   24.        , 'uhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'UG'     , '' 
    295    sn_hpgj     = 'NONE'                       ,   24.        , 'vhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'VG'     , '' 
     294   sn_hpgi     = 'NOT USED'                   ,   24.        , 'uhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'UG'     , '' 
     295   sn_hpgj     = 'NOT USED'                   ,   24.        , 'vhpg'    ,   .false.   , .false., 'monthly' , 'weights_ERAI3D_F128_2_ORCA2_bicubic', 'VG'     , '' 
    296296   sn_prec     = 'ncar_precip.15JUNE2009_fill',   -1.        , 'PRC_MOD1',   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
    297297   sn_snow     = 'ncar_precip.15JUNE2009_fill',   -1.        , 'SNOW'    ,   .false.   , .true. , 'yearly'  , 'weights_core_orca2_bilinear_noc.nc' , ''       , '' 
     
    999999      ln_bt_auto    = .true.     ! Number of sub-step defined from: 
    10001000         rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed 
    1001          nn_e      = 30          ! =F : the number of sub-step in rn_Dt seconds 
     1001         nn_e         = 30          ! =F : the number of sub-step in rn_Dt seconds 
    10021002      rn_bt_alpha   = 0.         ! Temporal diffusion parameter (if ln_bt_av=F) 
    10031003/ 
     
    11931193   ln_mevar    = .true.    !  variable (T) or constant (F) mixing efficiency 
    11941194   ln_tsdiff   = .true.    !  account for differential T/S mixing (T) or not (F) 
    1195 / 
    1196  
     1195 
     1196   cn_dir      = './'      !  root directory for the iwm data location                                                                            
     1197   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________! 
     1198   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask ! 
     1199   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   ! 
     1200   sn_mpb      = 'NOT USED'              , -12               , 'mixing_power_bot' , .false.  , .true. , 'yearly' , '' , ''  , '' 
     1201   sn_mpp      = 'NOT USED'              , -12               , 'mixing_power_pyc' , .false.  , .true. , 'yearly' , '' , ''  , '' 
     1202   sn_mpc      = 'NOT USED'              , -12               , 'mixing_power_cri' , .false.  , .true. , 'yearly' , '' , ''  , '' 
     1203   sn_dsb      = 'NOT USED'              , -12               , 'decay_scale_bot'  , .false.  , .true. , 'yearly' , '' , ''  , '' 
     1204   sn_dsc      = 'NOT USED'              , -12               , 'decay_scale_cri'  , .false.  , .true. , 'yearly' , '' , ''  , '' 
     1205/ 
    11971206!!====================================================================== 
    11981207!!                  ***  Diagnostics namelists  ***                   !! 
  • NEMO/trunk/src/OCE/ZDF/zdfiwm.F90

    r12489 r12501  
    2323   USE phycst         ! physical constants 
    2424   ! 
     25   USE fldread        ! field read 
    2526   USE prtctl         ! Print control 
    2627   USE in_out_manager ! I/O manager 
     
    383384      !!              de Lavergne et al. in prep., 2017 
    384385      !!---------------------------------------------------------------------- 
    385       INTEGER  ::   inum         ! local integer 
     386      INTEGER  ::   ifpr               ! dummy loop indices 
     387      INTEGER  ::   inum               ! local integer 
    386388      INTEGER  ::   ios 
    387389      REAL(wp) ::   zbot, zpyc, zcri   ! local scalars 
    388       !! 
    389       NAMELIST/namzdf_iwm/ nn_zpyc, ln_mevar, ln_tsdiff 
     390      ! 
     391      CHARACTER(len=256)            ::   cn_dir                 ! Root directory for location of ssr files 
     392      INTEGER, PARAMETER            ::   jpiwm  = 5             ! maximum number of files to read 
     393      INTEGER, PARAMETER            ::   jp_mpb = 1 
     394      INTEGER, PARAMETER            ::   jp_mpp = 2 
     395      INTEGER, PARAMETER            ::   jp_mpc = 3 
     396      INTEGER, PARAMETER            ::   jp_dsb = 4 
     397      INTEGER, PARAMETER            ::   jp_dsc = 5 
     398      ! 
     399      TYPE(FLD_N), DIMENSION(jpiwm) ::   slf_iwm                ! array of namelist informations 
     400      TYPE(FLD_N)                   ::   sn_mpb, sn_mpp, sn_mpc ! informations about Mixing Power field to be read 
     401      TYPE(FLD_N)                   ::   sn_dsb, sn_dsc         ! informations about Decay Scale field to be read 
     402      TYPE(FLD  ), DIMENSION(jpiwm) ::   sf_iwm                 ! structure of input fields (file informations, fields read) 
     403      ! 
     404      NAMELIST/namzdf_iwm/ nn_zpyc, ln_mevar, ln_tsdiff, & 
     405         &                 cn_dir, sn_mpb, sn_mpp, sn_mpc, sn_dsb, sn_dsc 
    390406      !!---------------------------------------------------------------------- 
    391407      ! 
     
    422438      IF( zdf_iwm_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'zdf_iwm_init : unable to allocate iwm arrays' ) 
    423439      ! 
     440      ! store namelist information in an array 
     441      slf_iwm(jp_mpb) = sn_mpb ; slf_iwm(jp_mpp) = sn_mpp ; slf_iwm(jp_mpc) = sn_mpc 
     442      slf_iwm(jp_dsb) = sn_dsb ; slf_iwm(jp_dsc) = sn_dsc 
     443      ! 
     444      DO ifpr= 1, jpiwm 
     445         ALLOCATE( sf_iwm(ifpr)%fnow(jpi,jpj,1)   ) 
     446         IF( slf_iwm(ifpr)%ln_tint )ALLOCATE( sf_iwm(ifpr)%fdta(jpi,jpj,1,2) ) 
     447      END DO 
     448 
     449      ! fill sf_iwm with sf_iwm and control print 
     450      CALL fld_fill( sf_iwm, slf_iwm , cn_dir, 'zdfiwm_init', 'iwm input file', 'namiwm' ) 
     451 
     452      !                             ! hard-coded default definition (to be defined in namelist ?) 
     453      sf_iwm(jp_mpb)%fnow(:,:,1) = 1.e-6 
     454      sf_iwm(jp_mpp)%fnow(:,:,1) = 1.e-6 
     455      sf_iwm(jp_mpc)%fnow(:,:,1) = 1.e-10 
     456      sf_iwm(jp_dsb)%fnow(:,:,1) = 100. 
     457      sf_iwm(jp_dsc)%fnow(:,:,1) = 100. 
     458 
    424459      !                             ! read necessary fields 
    425       CALL iom_open('mixing_power_bot',inum)       ! energy flux for high-mode wave breaking [W/m2] 
    426       CALL iom_get  (inum, jpdom_data, 'field', ebot_iwm, 1 )  
    427       CALL iom_close(inum) 
    428       ! 
    429       CALL iom_open('mixing_power_pyc',inum)       ! energy flux for pynocline-intensified wave breaking [W/m2] 
    430       CALL iom_get  (inum, jpdom_data, 'field', epyc_iwm, 1 ) 
    431       CALL iom_close(inum) 
    432       ! 
    433       CALL iom_open('mixing_power_cri',inum)       ! energy flux for critical slope wave breaking [W/m2] 
    434       CALL iom_get  (inum, jpdom_data, 'field', ecri_iwm, 1 ) 
    435       CALL iom_close(inum) 
    436       ! 
    437       CALL iom_open('decay_scale_bot',inum)        ! spatially variable decay scale for high-mode wave breaking [m] 
    438       CALL iom_get  (inum, jpdom_data, 'field', hbot_iwm, 1 ) 
    439       CALL iom_close(inum) 
    440       ! 
    441       CALL iom_open('decay_scale_cri',inum)        ! spatially variable decay scale for critical slope wave breaking [m] 
    442       CALL iom_get  (inum, jpdom_data, 'field', hcri_iwm, 1 ) 
    443       CALL iom_close(inum) 
    444  
    445       ebot_iwm(:,:) = ebot_iwm(:,:) * ssmask(:,:) 
    446       epyc_iwm(:,:) = epyc_iwm(:,:) * ssmask(:,:) 
    447       ecri_iwm(:,:) = ecri_iwm(:,:) * ssmask(:,:) 
     460      CALL fld_read( 1, 1, sf_iwm ) 
     461 
     462      ebot_iwm(:,:) = sf_iwm(1)%fnow(:,:,1) * ssmask(:,:) ! energy flux for high-mode wave breaking [W/m2] 
     463      epyc_iwm(:,:) = sf_iwm(2)%fnow(:,:,1) * ssmask(:,:) ! energy flux for pynocline-intensified wave breaking [W/m2] 
     464      ecri_iwm(:,:) = sf_iwm(3)%fnow(:,:,1) * ssmask(:,:) ! energy flux for critical slope wave breaking [W/m2] 
     465      hbot_iwm(:,:) = sf_iwm(4)%fnow(:,:,1)               ! spatially variable decay scale for high-mode wave breaking [m] 
     466      hcri_iwm(:,:) = sf_iwm(5)%fnow(:,:,1)               ! spatially variable decay scale for critical slope wave breaking [m] 
    448467 
    449468      zbot = glob_sum( 'zdfiwm', e1e2t(:,:) * ebot_iwm(:,:) ) 
    450469      zpyc = glob_sum( 'zdfiwm', e1e2t(:,:) * epyc_iwm(:,:) ) 
    451470      zcri = glob_sum( 'zdfiwm', e1e2t(:,:) * ecri_iwm(:,:) ) 
     471 
    452472      IF(lwp) THEN 
    453473         WRITE(numout,*) '      High-mode wave-breaking energy:             ', zbot * 1.e-12_wp, 'TW' 
  • NEMO/trunk/tests/BENCH/EXPREF/namelist_pisces_cfg

    r10343 r12501  
    8181/ 
    8282!----------------------------------------------------------------------- 
    83 &nampissbc     !   parameters for inputs deposition 
     83&nampisbc      !   parameters for inputs deposition 
    8484!----------------------------------------------------------------------- 
    85    ln_dust     =  .false.   ! boolean for dust input from the atmosphere 
    86    ln_solub    =  .false.   ! boolean for variable solubility of atm. Iron 
    87    ln_river    =  .false.   ! boolean for river input of nutrients 
    88    ln_ndepo    =  .false.   ! boolean for atmospheric deposition of N 
    8985   ln_ironsed  =  .false.   ! boolean for Fe input from sediments 
    9086   ln_ironice  =  .false.   ! boolean for Fe input from sea ice 
Note: See TracChangeset for help on using the changeset viewer.