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 516 for trunk/NEMO/OPA_SRC/prtctl.F90 – NEMO

Ignore:
Timestamp:
2006-10-05T17:53:31+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_072 : CT : - lights modifications to ensure good control prints for the restartability & reproductibility tests

  • build all ocean.output_XXXX files only if logical namelist ln_ctl is TRUE, in all case keep the initial ocean.output file (require a new namelist namctl)
  • conditionning some prints using nprint parameter
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/prtctl.F90

    r473 r516  
    2222      t_ctll , s_ctll ,   &  !: previous trend values 
    2323      u_ctll , v_ctll 
     24 
     25   INTEGER ::   ktime        !: time step 
    2426 
    2527   !! * Routine accessibility 
     
    7981      REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: tab3d_1 
    8082      REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask1 
    81       CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo1 
     83      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo1 
    8284      REAL(wp), DIMENSION(:,:)  , INTENT(in), OPTIONAL :: tab2d_2 
    8385      REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: tab3d_2 
    8486      REAL(wp), DIMENSION(:,:,:), INTENT(in), OPTIONAL :: mask2 
    85       CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo2 
    86       INTEGER, INTENT(in), OPTIONAL :: ovlap 
    87       INTEGER, INTENT(in), OPTIONAL :: kdim 
    88       CHARACTER (len=*), INTENT(in), OPTIONAL :: clinfo3 
     87      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo2 
     88      INTEGER                   , INTENT(in), OPTIONAL :: ovlap 
     89      INTEGER                   , INTENT(in), OPTIONAL :: kdim 
     90      CHARACTER (len=*)         , INTENT(in), OPTIONAL :: clinfo3 
    8991 
    9092      !! * Local declarations 
     
    135137      DO jn = sind, eind 
    136138 
    137          numid = 90 
     139         numid = 90 + jn 
    138140 
    139141         ! Set indices for the SUM control 
     
    184186 
    185187         ! Print the result 
    186          IF( PRESENT(clinfo2) .OR. PRESENT(tab2d_2) .OR. PRESENT(tab3d_2) )   THEN 
     188         IF( PRESENT(clinfo3) )   THEN 
    187189            WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1-zvctl1, cl2, zsum2-zvctl2 
    188              IF( clinfo3 == 'tra-ta' )  THEN 
    189                 t_ctll(jn) = zsum1 
    190              ENDIF  
    191              IF( clinfo3 == 'tra' )  THEN 
     190            SELECT CASE( clinfo3 ) 
     191            CASE ( 'tra-ta' )  
     192               t_ctll(jn) = zsum1 
     193            CASE ( 'tra' )  
    192194                t_ctll(jn) = zsum1 
    193195                s_ctll(jn) = zsum2 
    194              ENDIF  
    195              IF( clinfo3 == 'dyn' )   THEN 
     196            CASE ( 'dyn' )  
    196197                u_ctll(jn) = zsum1 
    197198                v_ctll(jn) = zsum2  
    198              ENDIF 
     199            END SELECT 
     200         ELSEIF ( PRESENT(clinfo2) .OR. PRESENT(tab2d_2) .OR. PRESENT(tab3d_2) )   THEN 
     201            WRITE(numid,FMT='(a,D23.16,3x,a,D23.16)')clinfo1, zsum1, cl2, zsum2 
    199202         ELSE 
    200203            WRITE(numid,FMT='(a,D23.16)')clinfo1, zsum1 
     
    206209 
    207210 
    208    SUBROUTINE prt_ctl_info (clinfo1, ivar1, clinfo2, ivar2) 
     211   SUBROUTINE prt_ctl_info (clinfo1, ivar1, clinfo2, ivar2, itime) 
    209212      !!---------------------------------------------------------------------- 
    210213      !!                     ***  ROUTINE prt_ctl_info  *** 
     
    223226      !! * Arguments 
    224227      CHARACTER (len=*), INTENT(in) ::   clinfo1 
    225       INTEGER, INTENT(in), OPTIONAL ::   ivar1 
     228      INTEGER          , INTENT(in), OPTIONAL ::   ivar1 
    226229      CHARACTER (len=*), INTENT(in), OPTIONAL ::   clinfo2 
    227       INTEGER, INTENT(in), OPTIONAL ::   ivar2 
     230      INTEGER          , INTENT(in), OPTIONAL ::   ivar2 
     231      INTEGER          , INTENT(in), OPTIONAL ::   itime 
    228232 
    229233      !! * Local declarations 
    230       INTEGER ::  numid, jn, sind, eind 
     234      INTEGER ::  numid, jn, sind, eind, iltime 
    231235      !!---------------------------------------------------------------------- 
    232236 
     
    241245      ENDIF 
    242246 
     247      ! Set to zero arrays at each new time step 
     248      IF( PRESENT(itime) )   THEN 
     249         iltime = itime 
     250         IF( iltime > ktime )   THEN 
     251            t_ctll(:) = 0.e0   ;   s_ctll(:) = 0.e0 
     252            u_ctll(:) = 0.e0   ;   v_ctll(:) = 0.e0 
     253            ktime = iltime 
     254         ENDIF 
     255      ENDIF 
     256 
    243257      ! Loop over each sub-domain, i.e. number of processors ijsplt 
    244258      DO jn = sind, eind 
    245259 
    246          numid = 90  
     260         numid = 90 + jn 
    247261 
    248262         IF( PRESENT(ivar1) .AND. PRESENT(clinfo2) .AND. PRESENT(ivar2) )   THEN 
     
    296310 
    297311      ! Initialization  
    298       t_ctll (:)=0.e0 
    299       s_ctll (:)=0.e0 
    300       u_ctll (:)=0.e0 
    301       v_ctll (:)=0.e0 
     312      t_ctll(:)=0.e0 
     313      s_ctll(:)=0.e0 
     314      u_ctll(:)=0.e0 
     315      v_ctll(:)=0.e0 
     316      ktime = 1 
    302317 
    303318      IF( lk_mpp ) THEN 
     
    330345 
    331346      DO jn = sind, eind 
    332          numid = 90  
     347         numid = 90 + jn 
    333348         WRITE(clfile_out,FMT=clb_name) jn-1 
    334349         OPEN ( UNIT=numid, FILE=TRIM(clfile_out),FORM='FORMATTED' ) 
     
    345360         ! Print the SUM control indices 
    346361         IF( .NOT. lsp_area )   THEN 
    347             IF ( lk_mpp )   THEN 
    348                nictls = nlditl(jn)  
    349                nictle = nleitl(jn) 
    350                njctls = nldjtl(jn) 
    351                njctle = nlejtl(jn) 
    352             ELSE 
    353                nictls = nimpptl(jn) + nlditl(jn) - 1 
    354                nictle = nimpptl(jn) + nleitl(jn) - 1 
    355                njctls = njmpptl(jn) + nldjtl(jn) - 1 
    356                njctle = njmpptl(jn) + nlejtl(jn) - 1 
    357             ENDIF 
     362            nictls = nimpptl(jn) + nlditl(jn) - 1 
     363            nictle = nimpptl(jn) + nleitl(jn) - 1 
     364            njctls = njmpptl(jn) + nldjtl(jn) - 1 
     365            njctle = njmpptl(jn) + nlejtl(jn) - 1 
    358366         ENDIF 
    359367         WRITE(numid,*)  
Note: See TracChangeset for help on using the changeset viewer.