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

Changeset 516 for trunk/NEMO/OPA_SRC


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
Location:
trunk/NEMO/OPA_SRC
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DOM/domain.F90

    r392 r516  
    142142      NAMELIST/namrun/ no    , cexper   , ln_rstart , nrstdt , nit000,         & 
    143143         &             nitend, ndate0   , nleapy   , ninist , nstock,          & 
    144          &             nprint, nwrite   , nrunoff  , ln_ctl , nictls, nictle,   & 
    145          &             njctls, njctle   , nbench   , isplt  , jsplt 
     144         &             nwrite, nrunoff 
    146145 
    147146      NAMELIST/namdom/ ntopo , e3zps_min, e3zps_rat, ngrid  , nmsh  ,   & 
     
    172171         WRITE(numout,*) '           leap year calendar (0/1)        nleapy    = ', nleapy 
    173172         WRITE(numout,*) '           initial state output            ninist    = ', ninist 
    174          WRITE(numout,*) '           level of print                  nprint    = ', nprint 
    175173         WRITE(numout,*) '           frequency of restart file       nstock    = ', nstock 
    176174         WRITE(numout,*) '           frequency of output file        nwrite    = ', nwrite 
    177175         WRITE(numout,*) '           runoff option                   nrunoff   = ', nrunoff 
    178          WRITE(numout,*) '           run control (for debugging)     ln_ctl    = ', ln_ctl 
    179          WRITE(numout,*) '           Start i indice for SUM control  nictls    = ', nictls 
    180          WRITE(numout,*) '           End i indice for SUM control    nictle    = ', nictle 
    181          WRITE(numout,*) '           Start j indice for SUM control  njctls    = ', njctls 
    182          WRITE(numout,*) '           End j indice for SUM control    njctle    = ', njctle 
    183          WRITE(numout,*) '           number of proc. following i     isplt     = ', isplt 
    184          WRITE(numout,*) '           number of proc. following j     jsplt     = ', jsplt 
    185          WRITE(numout,*) '           benchmark parameter (0/1)       nbench    = ', nbench 
    186176      ENDIF 
    187177 
  • trunk/NEMO/OPA_SRC/DOM/domhgr.F90

    r473 r516  
    365365         gphi0 = zphi1 + zsin_alpha * ze1deg * FLOAT( jpjglo-2 ) 
    366366 
    367          IF(lwp) WRITE(numout,*) 'ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha 
    368          IF(lwp) WRITE(numout,*) 'ze1deg', ze1deg, 'glam0', glam0, 'gphi0', gphi0 
     367         IF( nprint==1 .AND. lwp )   THEN 
     368            WRITE(numout,*) '          ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha 
     369            WRITE(numout,*) '          ze1deg', ze1deg, 'glam0', glam0, 'gphi0', gphi0 
     370         ENDIF 
    369371 
    370372         DO jj = 1, jpj 
     
    404406      ! ---------------- 
    405407 
    406       IF(lwp .AND. .NOT.ln_rstart ) THEN 
     408      IF( lwp .AND. .NOT.ln_rstart ) THEN 
    407409         WRITE(numout,*) 
    408410         WRITE(numout,*) '          longitude and e1 scale factors' 
     
    468470         ff(:,:) = ( zf0  + zbeta * gphif(:,:) * 1.e+3 )                        ! f = f0 +beta* y ( y=0 at south) 
    469471          
    470          IF(lwp) WRITE(numout,*)  
    471          IF(lwp) WRITE(numout,*) ' Beta-plane: Beta parameter = constant = ', ff(nldi,nldj) 
    472          IF(lwp) WRITE(numout,*) ' Coriolis parameter varies from ', ff(nldi,nldj),' to ', ff(nldi,nlej) 
     472         IF(lwp) THEN 
     473            WRITE(numout,*)  
     474            WRITE(numout,*) '          Beta-plane: Beta parameter = constant = ', ff(nldi,nldj) 
     475            WRITE(numout,*) '          Coriolis parameter varies from ', ff(nldi,nldj),' to ', ff(nldi,nlej) 
     476         ENDIF 
    473477         IF( lk_mpp ) THEN  
    474478            zminff=ff(nldi,nldj) 
     
    476480            CALL mpp_min( zminff )   ! min over the global domain 
    477481            CALL mpp_max( zmaxff )   ! max over the global domain 
    478             IF(lwp) WRITE(numout,*) ' Coriolis parameter varies globally from ', zminff,' to ', zmaxff 
     482            IF(lwp) WRITE(numout,*) '          Coriolis parameter varies globally from ', zminff,' to ', zmaxff 
    479483         END IF 
    480484 
     
    487491         ff(:,:) = ( zf0 + zbeta * ABS( gphif(:,:) - zphi0 ) * rad * ra )   ! f = f0 +beta* y ( y=0 at south) 
    488492 
    489          IF(lwp) WRITE(numout,*) ' Beta-plane and rotated domain : ' 
    490          IF(lwp) WRITE(numout,*) ' Coriolis parameter varies in this processor from ', ff(nldi,nldj),' to ', ff(nldi,nlej) 
     493         IF(lwp) THEN 
     494            WRITE(numout,*)  
     495            WRITE(numout,*) '          Beta-plane and rotated domain : ' 
     496            WRITE(numout,*) '          Coriolis parameter varies in this processor from ', ff(nldi,nldj),' to ', ff(nldi,nlej) 
     497         ENDIF 
     498 
    491499         IF( lk_mpp ) THEN  
    492500            zminff=ff(nldi,nldj) 
     
    494502            CALL mpp_min( zminff )   ! min over the global domain 
    495503            CALL mpp_max( zmaxff )   ! max over the global domain 
    496             IF(lwp) WRITE(numout,*) ' Coriolis parameter varies globally from ', zminff,' to ', zmaxff 
     504            IF(lwp) WRITE(numout,*) '          Coriolis parameter varies globally from ', zminff,' to ', zmaxff 
    497505         END IF 
    498506 
  • trunk/NEMO/OPA_SRC/DOM/domzgr.F90

    r473 r516  
    100100      ENDIF 
    101101 
    102  
    103102      ! Build the vertical coordinate system 
    104103      ! ------------------------------------ 
     
    115114 
    116115!!bug gm control print: 
    117       write(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
    118       write(numout,*) ' MIN val depth t ', MINVAL( fsdept(:,:,:) ),   & 
    119          &                   ' w ',   MINVAL( fsdepw(:,:,:) ), '3w ', MINVAL( fsde3w(:,:,:) ) 
    120       write(numout,*) ' MIN val e3    t ', MINVAL( fse3t(:,:,:) ), ' f ', MINVAL( fse3f(:,:,:) ),  & 
    121          &                   ' u ',   MINVAL( fse3u(:,:,:) ), ' u ', MINVAL( fse3v(:,:,:) ),  & 
    122          &                   ' uw',   MINVAL( fse3uw(:,:,:)), ' vw', MINVAL( fse3vw(:,:,:)),   & 
    123          &                   ' w ',   MINVAL( fse3w(:,:,:) ) 
    124  
    125       write(numout,*) ' MAX val depth t ', MAXVAL( fsdept(:,:,:) ),   & 
    126          &                   ' w ',   MAXVAL( fsdepw(:,:,:) ), '3w ', MAXVAL( fsde3w(:,:,:) ) 
    127       write(numout,*) ' MAX val e3    t ', MAXVAL( fse3t(:,:,:) ), ' f ', MAXVAL( fse3f(:,:,:) ),  & 
    128          &                   ' u ',   MAXVAL( fse3u(:,:,:) ), ' u ', MAXVAL( fse3v(:,:,:) ),  & 
    129          &                   ' uw',   MAXVAL( fse3uw(:,:,:)), ' vw', MAXVAL( fse3vw(:,:,:)),   & 
    130          &                   ' w ',   MAXVAL( fse3w(:,:,:) ) 
     116      IF( nprint == 1 .AND. lwp )   THEN 
     117         WRITE(numout,*) ' MIN val mbathy ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
     118         WRITE(numout,*) ' MIN val depth t ', MINVAL( fsdept(:,:,:) ),   & 
     119            &                   ' w ',   MINVAL( fsdepw(:,:,:) ), '3w ', MINVAL( fsde3w(:,:,:) ) 
     120         WRITE(numout,*) ' MIN val e3    t ', MINVAL( fse3t(:,:,:) ), ' f ', MINVAL( fse3f(:,:,:) ),  & 
     121            &                   ' u ',   MINVAL( fse3u(:,:,:) ), ' u ', MINVAL( fse3v(:,:,:) ),  & 
     122            &                   ' uw',   MINVAL( fse3uw(:,:,:)), ' vw', MINVAL( fse3vw(:,:,:)),   & 
     123            &                   ' w ',   MINVAL( fse3w(:,:,:) ) 
     124 
     125         WRITE(numout,*) ' MAX val depth t ', MAXVAL( fsdept(:,:,:) ),   & 
     126            &                   ' w ',   MAXVAL( fsdepw(:,:,:) ), '3w ', MAXVAL( fsde3w(:,:,:) ) 
     127         WRITE(numout,*) ' MAX val e3    t ', MAXVAL( fse3t(:,:,:) ), ' f ', MAXVAL( fse3f(:,:,:) ),  & 
     128            &                   ' u ',   MAXVAL( fse3u(:,:,:) ), ' u ', MAXVAL( fse3v(:,:,:) ),  & 
     129            &                   ' uw',   MAXVAL( fse3uw(:,:,:)), ' vw', MAXVAL( fse3vw(:,:,:)),   & 
     130            &                   ' w ',   MAXVAL( fse3w(:,:,:) ) 
     131      ENDIF 
    131132!!!bug gm 
    132133 
     
    421422         !                                            ! =============== ! 
    422423 
    423          CALL iom_open ( 'bathy_level.nc', inum )   ! Level bathymetry 
    424          IF ( inum > 0 ) THEN 
     424         IF( ln_zco )   THEN 
     425            CALL iom_open ( 'bathy_level.nc', inum )   ! Level bathymetry 
    425426            CALL iom_get ( inum, jpdom_data, 'Bathy_level', bathy ) 
    426427            CALL iom_close (inum) 
    427428            mbathy(:,:) = INT( bathy(:,:) ) 
    428          ELSE  
    429             IF( ln_zco ) THEN 
    430                CALL ctl_stop( '    zgr_bat : unable to read the file ' ) 
    431             ELSE 
    432                IF(lwp) WRITE(numout,*)'    zgr_bat : bathy_level will be computed from bathy_meter' 
    433                nstop = nstop - 1        ! supress the error count for opening 'bathy_level.nc' 
    434                mbathy(:,:) = jpkm1       
    435             ENDIF 
    436429         ENDIF 
    437430 
    438          CALL iom_open ( 'bathy_meter.nc', inum )   ! meter bathymetry 
    439          IF ( inum > 0 ) THEN 
     431         IF( ln_zps .OR. ln_sco )   THEN 
     432            CALL iom_open ( 'bathy_meter.nc', inum )   ! meter bathymetry 
    440433            CALL iom_get ( inum, jpdom_data, 'Bathymetry', bathy ) 
    441434            CALL iom_close (inum) 
    442          ELSE  
    443             IF( ln_zps .OR. ln_sco ) THEN 
    444               CALL ctl_stop( '    zgr_bat : unable to read the file ' ) 
    445             ELSE 
    446                bathy(:,:) = 0.e0        ! initialisation 
    447                nstop = nstop - 1        ! supress the error count for opening 'bathy_level.nc' 
    448                IF(lwp) WRITE(numout,*)'    zgr_bat : bathy_meter not found, but not used, bathy array set to zero' 
    449             ENDIF 
    450435         ENDIF 
    451436         !                                            ! =============== ! 
     
    969954         zrmax  = EXP( -(gphit(10,jj)/8)**2 ) 
    970955         ztaper = EXP( -(FLOAT(jj-74)/10.)**2 ) 
    971          write(numout,*) jj, (FLOAT(jj-74)/10.), ztaper,(gphit(10,jj)/8), zrmax 
    972       END DO 
    973  
    974       write(numout,*) ' bathy  MAX ', MAXVAL( bathy(:,:) ), ' MIN ', MINVAL( bathy(:,:) ) 
    975       write(numout,*) ' hbatt  MAX ', MAXVAL( hbatt(:,:) ), ' MIN ', MINVAL( hbatt(:,:) ) 
     956         IF( nprint == 1 .AND. lwp ) WRITE(numout,*) jj, (FLOAT(jj-74)/10.), ztaper,(gphit(10,jj)/8), zrmax 
     957      END DO 
     958 
     959      IF( nprint == 1 .AND. lwp )   THEN 
     960         WRITE(numout,*) ' bathy  MAX ', MAXVAL( bathy(:,:) ), ' MIN ', MINVAL( bathy(:,:) ) 
     961         WRITE(numout,*) ' hbatt  MAX ', MAXVAL( hbatt(:,:) ), ' MIN ', MINVAL( hbatt(:,:) ) 
     962      ENDIF 
    976963 
    977964      ! Control print 
     
    10481035      hiff(:,:) = MIN( hiff(:,:), hbatf(:,:) ) 
    10491036 
    1050       write(numout,*) ' MAX val hif   t ', MAXVAL( hift(:,:) ), ' f ', MAXVAL( hiff(:,:) ),  & 
    1051          &                        ' u ',   MAXVAL( hifu(:,:) ), ' v ', MAXVAL( hifv(:,:) ) 
    1052       write(numout,*) ' MIN val hif   t ', MINVAL( hift(:,:) ), ' f ', MINVAL( hiff(:,:) ),  & 
    1053          &                        ' u ',   MINVAL( hifu(:,:) ), ' v ', MINVAL( hifv(:,:) ) 
    1054       write(numout,*) ' MAX val hbat  t ', MAXVAL( hbatt(:,:) ), ' f ', MAXVAL( hbatf(:,:) ),  & 
    1055          &                        ' u ',   MAXVAL( hbatu(:,:) ), ' v ', MAXVAL( hbatv(:,:) ) 
    1056       write(numout,*) ' MIN val hbat  t ', MINVAL( hbatt(:,:) ), ' f ', MINVAL( hbatf(:,:) ),  & 
    1057          &                        ' u ',   MINVAL( hbatu(:,:) ), ' v ', MINVAL( hbatv(:,:) ) 
     1037      IF( nprint == 1 .AND. lwp )   THEN 
     1038         WRITE(numout,*) ' MAX val hif   t ', MAXVAL( hift(:,:) ), ' f ', MAXVAL( hiff(:,:) ),  & 
     1039            &                        ' u ',   MAXVAL( hifu(:,:) ), ' v ', MAXVAL( hifv(:,:) ) 
     1040         WRITE(numout,*) ' MIN val hif   t ', MINVAL( hift(:,:) ), ' f ', MINVAL( hiff(:,:) ),  & 
     1041            &                        ' u ',   MINVAL( hifu(:,:) ), ' v ', MINVAL( hifv(:,:) ) 
     1042         WRITE(numout,*) ' MAX val hbat  t ', MAXVAL( hbatt(:,:) ), ' f ', MAXVAL( hbatf(:,:) ),  & 
     1043            &                        ' u ',   MAXVAL( hbatu(:,:) ), ' v ', MAXVAL( hbatv(:,:) ) 
     1044         WRITE(numout,*) ' MIN val hbat  t ', MINVAL( hbatt(:,:) ), ' f ', MINVAL( hbatf(:,:) ),  & 
     1045            &                        ' u ',   MINVAL( hbatu(:,:) ), ' v ', MINVAL( hbatv(:,:) ) 
     1046      ENDIF 
    10581047!! helsinki 
    10591048 
     
    10691058      END DO 
    10701059 
    1071       write(numout,*) 'gsigw 1 jpk    ', gsigw(1), gsigw(jpk) 
     1060      IF( nprint == 1 .AND. lwp ) WRITE(numout,*) 'gsigw 1 jpk    ', gsigw(1), gsigw(jpk) 
    10721061 
    10731062!!org DO jk = 1, jpk 
     
    11401129      END DO 
    11411130 
    1142       write(numout,*) ' MIN val mbathy h90 ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
     1131      IF( nprint == 1 .AND. lwp ) WRITE(numout,*) ' MIN val mbathy h90 ', MINVAL( mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
    11431132 
    11441133 
  • trunk/NEMO/OPA_SRC/ZDF/zdfbfr.F90

    r474 r516  
    171171      CALL lbc_lnk( avmv, 'V', 1. ) 
    172172 
    173       IF(ln_ctl)   THEN 
    174          CALL prt_ctl(tab3d_1=avmu, clinfo1=' bfr  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk) 
     173      IF(ln_ctl)  THEN 
     174         CALL prt_ctl(tab3d_1=avmu, clinfo1=' bfr  - u: ', mask1=umask, & 
     175            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask,ovlap=1, kdim=jpk) 
    175176      ENDIF 
    176177 
  • trunk/NEMO/OPA_SRC/ZDF/zdfddm.F90

    r258 r516  
    204204      IF(ln_ctl) THEN 
    205205         CALL prt_ctl(tab3d_1=avt , clinfo1=' ddm  - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk) 
    206          CALL prt_ctl(tab3d_1=avmu, clinfo1=' ddm  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk) 
     206         CALL prt_ctl(tab3d_1=avmu, clinfo1=' ddm  - u: ', mask1=umask, & 
     207            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk) 
    207208      ENDIF 
    208209       
  • trunk/NEMO/OPA_SRC/ZDF/zdfkpp.F90

    r503 r516  
    12311231         IF(ln_ctl) THEN 
    12321232#if defined key_zdfddm 
    1233             CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp  - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk) 
     1233            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', tab3d_2=avs , clinfo2=' s: ', ovlap=1, kdim=jpk) 
    12341234#else 
    1235             CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp  - t: ', ovlap=1, kdim=jpk) 
    1236 #endif 
    1237             CALL prt_ctl(tab3d_1=avmu, clinfo1='       u: ', tab3d_2=avmv , clinfo2=' v: ', ovlap=1, kdim=jpk) 
     1235            CALL prt_ctl(tab3d_1=avt , clinfo1=' kpp - t: ', ovlap=1, kdim=jpk) 
     1236#endif 
     1237            CALL prt_ctl(tab3d_1=avmu, clinfo1=' kpp - u: ', mask1=umask,  & 
     1238               &         tab3d_2=avmv, clinfo2=      ' v: ', mask2=vmask, ovlap=1, kdim=jpk) 
    12381239         ENDIF 
    12391240 
  • trunk/NEMO/OPA_SRC/ZDF/zdftke.F90

    r508 r516  
    594594      IF(ln_ctl) THEN 
    595595         CALL prt_ctl(tab3d_1=en  , clinfo1=' tke  - e: ', tab3d_2=avt , clinfo2=' t: ', ovlap=1, kdim=jpk) 
    596          CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk) 
     596         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', mask1=umask, & 
     597            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask, ovlap=1, kdim=jpk) 
    597598      ENDIF 
    598599 
  • trunk/NEMO/OPA_SRC/ZDF/zdftke_jki.F90

    r508 r516  
    526526      IF(ln_ctl) THEN 
    527527         CALL prt_ctl(tab3d_1=en  , clinfo1=' tke  - e: ', tab3d_2=avt , clinfo2=' t: ', ovlap=1, kdim=jpk) 
    528          CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', tab3d_2=avmv, clinfo2=' v: ', ovlap=1, kdim=jpk) 
     528         CALL prt_ctl(tab3d_1=avmu, clinfo1=' tke  - u: ', mask1=umask, & 
     529            &         tab3d_2=avmv, clinfo2=       ' v: ', mask2=vmask,ovlap=1, kdim=jpk) 
    529530      ENDIF 
    530531 
  • trunk/NEMO/OPA_SRC/daymod.F90

    r258 r516  
    157157      IF(ln_ctl) THEN 
    158158         WRITE(charout,FMT="('kt =', I4,'  d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 
    159          CALL prt_ctl_info(charout) 
     159         CALL prt_ctl_info(charout, itime=kt) 
    160160      ENDIF 
    161161 
  • trunk/NEMO/OPA_SRC/mppini.F90

    r474 r516  
    193193         WRITE(numout,*) '           defines mpp subdomains' 
    194194         WRITE(numout,*) '           ----------------------' 
    195          WRITE(numout,*) '              iresti=',iresti,' irestj=',irestj 
    196          WRITE(numout,*) '              jpni=',jpni,' jpnj=',jpnj 
     195         WRITE(numout,*) '           iresti=',iresti,' irestj=',irestj 
     196         WRITE(numout,*) '           jpni  =',jpni  ,' jpnj  =',jpnj 
    197197         ifreq = 4 
    198198         il1   = 1 
     
    200200            il2 = MIN( jpni, il1+ifreq-1 ) 
    201201            WRITE(numout,*) 
    202             WRITE(numout,9201) (ji,ji = il1,il2) 
    203202            WRITE(numout,9200) ('***',ji = il1,il2-1) 
    204             DO jj = 1, jpnj 
     203            DO jj = jpnj, 1, -1 
    205204               WRITE(numout,9203) ('   ',ji = il1,il2-1) 
    206205               WRITE(numout,9202) jj, ( ilcit(ji,jj),ilcjt(ji,jj),ji = il1,il2 ) 
     
    208207               WRITE(numout,9200) ('***',ji = il1,il2-1) 
    209208            END DO 
     209            WRITE(numout,9201) (ji,ji = il1,il2) 
    210210            il1 = il1+ifreq 
    211211         END DO 
     
    536536 
    537537      IF(lwp) THEN 
     538          WRITE(numout,*) 
    538539          WRITE(numout,*) 'mpp_init_ioipsl :   iloc  = ', iloc (1), iloc (2) 
    539540          WRITE(numout,*) '~~~~~~~~~~~~~~~     iabsf = ', iabsf(1), iabsf(2) 
  • trunk/NEMO/OPA_SRC/opa.F90

    r508 r516  
    166166      CHARACTER (len=20) ::   namelistname 
    167167      CHARACTER (len=28) ::   file_out 
     168      NAMELIST/namctl/  ln_ctl, nprint, nictls, nictle,   & 
     169         &              isplt , jsplt , njctls, njctle, nbench 
    168170      !!---------------------------------------------------------------------- 
    169171 
     
    178180            &         'SEQUENTIAL', 1, numout, .FALSE., 1 ) 
    179181      ENDIF 
    180  
    181       namelistname = 'namelist' 
    182       CALL ctlopn( numnam, namelistname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
    183          &           1, numout, .FALSE., 1 ) 
    184182 
    185183      WRITE(numout,*) 
     
    191189      WRITE(numout,*) 
    192190 
     191      namelistname = 'namelist' 
     192      CALL ctlopn( numnam, namelistname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   & 
     193         &           1, numout, .FALSE., 1 ) 
     194 
     195      ! Namelist namctl : Control prints & Benchmark 
     196      REWIND( numnam ) 
     197      READ  ( numnam, namctl ) 
     198 
    193199      ! Nodes selection 
    194200      narea = mynode() 
     
    196202      lwp   = narea == 1 
    197203 
    198       IF( lk_mpp )   THEN 
    199          CLOSE( numout )       ! standard model output file 
    200          WRITE(file_out,FMT="('ocean.output_',I4.4)") narea-1 
    201          IF ( numout /= 0 .AND. numout /= 6 ) THEN  
    202             CALL ctlopn( numout, file_out, 'UNKNOWN', 'FORMATTED',   & 
    203                  &         'SEQUENTIAL', 1, numout, .FALSE., 1 ) 
     204      ! open additionnal listing 
     205      IF( ln_ctl )   THEN 
     206         IF( narea-1 > 0 )   THEN 
     207            WRITE(file_out,FMT="('ocean.output_',I4.4)") narea-1 
     208            IF( numout /= 0 .AND. numout /= 6 ) THEN  
     209               CALL ctlopn( numout, file_out, 'UNKNOWN', 'FORMATTED',   & 
     210                  &         'SEQUENTIAL', 1, numout, .FALSE., 1 ) 
     211            ENDIF 
     212            lwp = .TRUE. 
     213            ! 
     214            WRITE(numout,*) 
     215            WRITE(numout,*) '                 L O D Y C - I P S L' 
     216            WRITE(numout,*) '                     O P A model' 
     217            WRITE(numout,*) '            Ocean General Circulation Model' 
     218            WRITE(numout,*) '               version OPA 9.0  (2005) ' 
     219            WRITE(numout,*) '                   MPI Ocean output ' 
     220            WRITE(numout,*) 
     221            WRITE(numout,*) 
    204222         ENDIF 
    205          ! 
    206          WRITE(numout,*) 
    207          WRITE(numout,*) '                 L O D Y C - I P S L' 
    208          WRITE(numout,*) '                     O P A model' 
    209          WRITE(numout,*) '            Ocean General Circulation Model' 
    210          WRITE(numout,*) '               version OPA 9.0  (2005) ' 
    211          WRITE(numout,*) '                   MPI Ocean output ' 
    212          WRITE(numout,*) 
    213          WRITE(numout,*) 
    214223      ENDIF 
    215224 
     
    220229      IF(lwp) WRITE(numout,cform_aaa)       ! Flag AAAAAAA 
    221230 
     231      IF(lwp) THEN 
     232         WRITE(numout,*) 
     233         WRITE(numout,*) 'opa_init: Control prints & Benchmark' 
     234         WRITE(numout,*) '~~~~~~~~ ' 
     235         WRITE(numout,*) '          Namelist namctl' 
     236         WRITE(numout,*) '             run control (for debugging)     ln_ctl    = ', ln_ctl 
     237         WRITE(numout,*) '             level of print                  nprint    = ', nprint 
     238         WRITE(numout,*) '             Start i indice for SUM control  nictls    = ', nictls 
     239         WRITE(numout,*) '             End i indice for SUM control    nictle    = ', nictle 
     240         WRITE(numout,*) '             Start j indice for SUM control  njctls    = ', njctls 
     241         WRITE(numout,*) '             End j indice for SUM control    njctle    = ', njctle 
     242         WRITE(numout,*) '             number of proc. following i     isplt     = ', isplt 
     243         WRITE(numout,*) '             number of proc. following j     jsplt     = ', jsplt 
     244         WRITE(numout,*) '             benchmark parameter (0/1)       nbench    = ', nbench 
     245      ENDIF 
    222246                                            ! Domain decomposition 
    223247      IF( jpni*jpnj == jpnij ) THEN 
  • 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,*)  
  • trunk/NEMO/OPA_SRC/step.F90

    r508 r516  
    230230         CALL prt_ctl(tab3d_1=tn     , clinfo1=' sst  -   : ', mask1=tmask, ovlap=1, kdim=1) 
    231231         CALL prt_ctl(tab3d_1=sn     , clinfo1=' sss  -   : ', mask1=tmask, ovlap=1, kdim=1) 
    232          CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', tab2d_2=tauy, clinfo2='      - y : ', ovlap=1) 
     232         CALL prt_ctl(tab2d_1=taux   , clinfo1=' tau  - x : ', mask1=umask, & 
     233            &         tab2d_2=tauy   , clinfo2='      - y : ', mask2=vmask,ovlap=1) 
    233234      ENDIF 
    234235 
Note: See TracChangeset for help on using the changeset viewer.