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 13727 for NEMO/branches/2020/dev_12905_xios_restart/tests/STATION_ASF/MY_SRC/nemogcm.F90 – NEMO

Ignore:
Timestamp:
2020-11-05T15:18:53+01:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2462: Upate to trunk rev 13688

Location:
NEMO/branches/2020/dev_12905_xios_restart
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_restart

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
        88 
        99# SETTE 
        10 ^/utils/CI/sette@HEAD         sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/dev_12905_xios_restart/tests/STATION_ASF/MY_SRC/nemogcm.F90

    r12641 r13727  
    3030   USE step_c1d       ! Time stepping loop for the 1D configuration 
    3131   ! 
     32   USE prtctl         ! Print control 
    3233   USE in_out_manager ! I/O manager 
    3334   USE lib_mpp        ! distributed memory computing 
     
    100101      IF( nstop /= 0 .AND. lwp ) THEN        ! error print 
    101102         WRITE(ctmp1,*) '   ==>>>   nemo_gcm: a total of ', nstop, ' errors have been found' 
    102          CALL ctl_stop( ctmp1 ) 
     103         WRITE(ctmp2,*) '           Look for "E R R O R" messages in all existing ocean_output* files' 
     104         CALL ctl_stop( ' ', ctmp1, ' ', ctmp2 ) 
    103105      ENDIF 
    104106      ! 
     
    130132      INTEGER ::   ios, ilocal_comm   ! local integers 
    131133      !! 
    132       NAMELIST/namctl/ sn_cfctl,  nn_print, nn_ictls, nn_ictle,             & 
    133          &             nn_isplt , nn_jsplt, nn_jctls, nn_jctle,             & 
    134          &             ln_timing, ln_diacfl 
     134      NAMELIST/namctl/ sn_cfctl, ln_timing, ln_diacfl,                                & 
     135         &             nn_isplt,  nn_jsplt,  nn_ictls, nn_ictle, nn_jctls, nn_jctle 
    135136      NAMELIST/namcfg/ ln_read_cfg, cn_domcfg, ln_closea, ln_write_cfg, cn_domcfg_out, ln_use_jattr 
    136137      !!---------------------------------------------------------------------- 
     
    184185      ! 
    185186      ! finalize the definition of namctl variables 
    186       IF( sn_cfctl%l_allon ) THEN 
    187          ! Turn on all options. 
    188          CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. ) 
    189          ! Ensure all processors are active 
    190          sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1 
    191       ELSEIF( sn_cfctl%l_config ) THEN 
    192          ! Activate finer control of report outputs 
    193          ! optionally switch off output from selected areas (note this only 
    194          ! applies to output which does not involve global communications) 
    195          IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax  ) .OR. & 
    196            & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) )    & 
    197            &   CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 
    198       ELSE 
    199          ! turn off all options. 
    200          CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. ) 
    201       ENDIF 
     187      IF( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax .OR. MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 )   & 
     188         &   CALL nemo_set_cfctl( sn_cfctl, .FALSE. ) 
    202189      ! 
    203190      lwp = (narea == 1) .OR. sn_cfctl%l_oceout    ! control of all listing output print 
     
    245232      ! 
    246233      IF( ln_read_cfg ) THEN            ! Read sizes in domain configuration file 
    247          CALL domain_cfg ( cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio ) 
     234         CALL domain_cfg ( cn_cfg, nn_cfg, Ni0glo, Nj0glo, jpkglo, jperio ) 
    248235      ELSE                              ! user-defined namelist 
    249          CALL usr_def_nam( cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio ) 
     236         CALL usr_def_nam( cn_cfg, nn_cfg, Ni0glo, Nj0glo, jpkglo, jperio ) 
    250237      ENDIF 
    251238      ! 
     
    308295         WRITE(numout,*) '~~~~~~~~' 
    309296         WRITE(numout,*) '   Namelist namctl' 
    310          WRITE(numout,*) '                              sn_cfctl%l_glochk  = ', sn_cfctl%l_glochk 
    311          WRITE(numout,*) '                              sn_cfctl%l_allon   = ', sn_cfctl%l_allon 
    312          WRITE(numout,*) '       finer control over o/p sn_cfctl%l_config  = ', sn_cfctl%l_config 
    313297         WRITE(numout,*) '                              sn_cfctl%l_runstat = ', sn_cfctl%l_runstat 
    314298         WRITE(numout,*) '                              sn_cfctl%l_trcstat = ', sn_cfctl%l_trcstat 
     
    322306         WRITE(numout,*) '                              sn_cfctl%procincr  = ', sn_cfctl%procincr  
    323307         WRITE(numout,*) '                              sn_cfctl%ptimincr  = ', sn_cfctl%ptimincr  
    324          WRITE(numout,*) '      level of print                  nn_print   = ', nn_print 
    325          WRITE(numout,*) '      Start i indice for SUM control  nn_ictls   = ', nn_ictls 
    326          WRITE(numout,*) '      End i indice for SUM control    nn_ictle   = ', nn_ictle 
    327          WRITE(numout,*) '      Start j indice for SUM control  nn_jctls   = ', nn_jctls 
    328          WRITE(numout,*) '      End j indice for SUM control    nn_jctle   = ', nn_jctle 
    329          WRITE(numout,*) '      number of proc. following i     nn_isplt   = ', nn_isplt 
    330          WRITE(numout,*) '      number of proc. following j     nn_jsplt   = ', nn_jsplt 
    331308         WRITE(numout,*) '      timing by routine               ln_timing  = ', ln_timing 
    332309         WRITE(numout,*) '      CFL diagnostics                 ln_diacfl  = ', ln_diacfl 
    333310      ENDIF 
    334311      ! 
    335       nprint    = nn_print          ! convert DOCTOR namelist names into OLD names 
    336       nictls    = nn_ictls 
    337       nictle    = nn_ictle 
    338       njctls    = nn_jctls 
    339       njctle    = nn_jctle 
    340       isplt     = nn_isplt 
    341       jsplt     = nn_jsplt 
    342  
     312      IF( .NOT.ln_read_cfg )   ln_closea = .false.   ! dealing possible only with a domcfg file 
    343313      IF(lwp) THEN                  ! control print 
    344314         WRITE(numout,*) 
     
    351321         WRITE(numout,*) '      use file attribute if exists as i/p j-start   ln_use_jattr     = ', ln_use_jattr 
    352322      ENDIF 
    353       IF( .NOT.ln_read_cfg )   ln_closea = .false.   ! dealing possible only with a domcfg file 
    354       ! 
    355       !                             ! Parameter control 
    356       ! 
    357       IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN              ! sub-domain area indices for the control prints 
    358          IF( lk_mpp .AND. jpnij > 1 ) THEN 
    359             isplt = jpni   ;   jsplt = jpnj   ;   ijsplt = jpni*jpnj   ! the domain is forced to the real split domain 
    360          ELSE 
    361             IF( isplt == 1 .AND. jsplt == 1  ) THEN 
    362                CALL ctl_warn( ' - isplt & jsplt are equal to 1',   & 
    363                   &           ' - the print control will be done over the whole domain' ) 
    364             ENDIF 
    365             ijsplt = isplt * jsplt            ! total number of processors ijsplt 
    366          ENDIF 
    367          IF(lwp) WRITE(numout,*)'          - The total number of processors over which the' 
    368          IF(lwp) WRITE(numout,*)'            print control will be done is ijsplt : ', ijsplt 
    369          ! 
    370          !                              ! indices used for the SUM control 
    371          IF( nictls+nictle+njctls+njctle == 0 )   THEN    ! print control done over the default area 
    372             lsp_area = .FALSE. 
    373          ELSE                                             ! print control done over a specific  area 
    374             lsp_area = .TRUE. 
    375             IF( nictls < 1 .OR. nictls > jpiglo )   THEN 
    376                CALL ctl_warn( '          - nictls must be 1<=nictls>=jpiglo, it is forced to 1' ) 
    377                nictls = 1 
    378             ENDIF 
    379             IF( nictle < 1 .OR. nictle > jpiglo )   THEN 
    380                CALL ctl_warn( '          - nictle must be 1<=nictle>=jpiglo, it is forced to jpiglo' ) 
    381                nictle = jpiglo 
    382             ENDIF 
    383             IF( njctls < 1 .OR. njctls > jpjglo )   THEN 
    384                CALL ctl_warn( '          - njctls must be 1<=njctls>=jpjglo, it is forced to 1' ) 
    385                njctls = 1 
    386             ENDIF 
    387             IF( njctle < 1 .OR. njctle > jpjglo )   THEN 
    388                CALL ctl_warn( '          - njctle must be 1<=njctle>=jpjglo, it is forced to jpjglo' ) 
    389                njctle = jpjglo 
    390             ENDIF 
    391          ENDIF 
    392       ENDIF 
    393323      ! 
    394324      IF( 1._wp /= SIGN(1._wp,-0._wp)  )   CALL ctl_stop( 'nemo_ctl: The intrinsec SIGN function follows f2003 standard.',  & 
     
    446376 
    447377    
    448    SUBROUTINE nemo_set_cfctl(sn_cfctl, setto, for_all ) 
     378   SUBROUTINE nemo_set_cfctl(sn_cfctl, setto ) 
    449379      !!---------------------------------------------------------------------- 
    450380      !!                     ***  ROUTINE nemo_set_cfctl  *** 
    451381      !! 
    452382      !! ** Purpose :   Set elements of the output control structure to setto. 
    453       !!                for_all should be .false. unless all areas are to be 
    454       !!                treated identically. 
    455383      !! 
    456384      !! ** Method  :   Note this routine can be used to switch on/off some 
    457       !!                types of output for selected areas but any output types 
    458       !!                that involve global communications (e.g. mpp_max, glob_sum) 
    459       !!                should be protected from selective switching by the 
    460       !!                for_all argument 
    461       !!---------------------------------------------------------------------- 
    462       LOGICAL :: setto, for_all 
    463       TYPE(sn_ctl) :: sn_cfctl 
    464       !!---------------------------------------------------------------------- 
    465       IF( for_all ) THEN 
    466          sn_cfctl%l_runstat = setto 
    467          sn_cfctl%l_trcstat = setto 
    468       ENDIF 
     385      !!                types of output for selected areas. 
     386      !!---------------------------------------------------------------------- 
     387      TYPE(sn_ctl), INTENT(inout) :: sn_cfctl 
     388      LOGICAL     , INTENT(in   ) :: setto 
     389      !!---------------------------------------------------------------------- 
     390      sn_cfctl%l_runstat = setto 
     391      sn_cfctl%l_trcstat = setto 
    469392      sn_cfctl%l_oceout  = setto 
    470393      sn_cfctl%l_layout  = setto 
Note: See TracChangeset for help on using the changeset viewer.