Changeset 12236
- Timestamp:
- 2019-12-13T10:19:48+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019
- Files:
-
- 95 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/namelist_ref
r12229 r12236 1386 1386 &namctl ! Control prints (default: OFF) 1387 1387 !----------------------------------------------------------------------- 1388 ln_ctl = .FALSE. ! Toggle all report printing on/off (T/F); Ignored if sn_cfctl%l_config is T 1388 sn_cfctl%l_glochk = .FALSE. ! Range sanity checks are local (F) or global (T). Set T for debugging only 1389 sn_cfctl%l_allon = .FALSE. ! IF T activate all options. If F deactivate all unless l_config is T 1389 1390 sn_cfctl%l_config = .TRUE. ! IF .true. then control which reports are written with the following 1390 1391 sn_cfctl%l_runstat = .TRUE. ! switches and which areas produce reports with the proc integer settings. … … 1392 1393 sn_cfctl%l_oceout = .FALSE. ! that all areas report. 1393 1394 sn_cfctl%l_layout = .FALSE. ! 1394 sn_cfctl%l_mppout = .FALSE. ! 1395 sn_cfctl%l_mpptop = .FALSE. ! 1395 sn_cfctl%l_prtctl = .FALSE. ! 1396 sn_cfctl%l_prttrc = .FALSE. ! 1397 sn_cfctl%l_oasout = .FALSE. ! 1396 1398 sn_cfctl%procmin = 0 ! Minimum area number for reporting [default:0] 1397 1399 sn_cfctl%procmax = 1000000 ! Maximum area number for reporting [default:1000000] -
NEMO/branches/2019/dev_r11943_MERGE_2019/doc/latex/NEMO/subfiles/chap_misc.tex
r11693 r12236 362 362 363 363 %% ================================================================================================= 364 \subsection{Control print} 365 366 The \np{ln_ctl}{ln\_ctl} switch was originally used as a debugging option in two modes: 367 368 \begin{enumerate} 369 \item {\np{ln_ctl}{ln\_ctl}: compute and print the trends averaged over the interior domain in all TRA, DYN, LDF and 370 ZDF modules. 371 This option is very helpful when diagnosing the origin of an undesired change in model results. } 372 373 \item {also \np{ln_ctl}{ln\_ctl} but using the nictl and njctl namelist parameters to check the source of differences between 374 mono and multi processor runs.} 364 \subsection{Status and debugging information output} 365 366 367 NEMO can produce a range of text information output either: in the main output 368 file (ocean.output) written by the normal reporting processor (narea == 1) or various 369 specialist output files (e.g. layout.dat, run.stat, tracer.stat etc.). Some, for example 370 run.stat and tracer.stat, contain globally collected values for which a single file is 371 sufficient. Others, however, contain information that could, potentially, be different 372 for each processing region. For computational efficiency, the default volume of text 373 information produced is reduced to just a few files from the narea=1 processor. 374 375 When more information is required for monitoring or debugging purposes, the various 376 forms of output can be selected via the \np{sn\_cfctl} structure. As well as simple 377 on-off switches this structure also allows selection of a range of processors for 378 individual reporting (where appropriate) and a time-increment option to restrict 379 globally collected values to specified time-step increments. 380 381 Most options within the structure are influenced by the top-level switches shown here 382 with their default settings: 383 384 \begin{verbatim} 385 sn_cfctl%l_allon = .FALSE. ! IF T activate all options. If F deactivate all unless l_config is T 386 sn_cfctl%l_config = .TRUE. ! IF .true. then control which reports are written with the following 387 \end{verbatim} 388 389 The first switch is a convenience option which can be used to switch on and off all 390 sub-options. However, if it is false then switching off all sub-options is only done 391 if \texttt{sn_cfctl%l\_config} is also false. Specifically, the logic is: 392 393 \begin{verbatim} 394 IF ( sn_cfctl%l_allon ) THEN 395 set all suboptions .TRUE. 396 and set procmin, procmax and procincr so that all regions are selected ([0,10000000,1], respectively) 397 ELSEIF ( sn_cfctl%l_config ) THEN 398 honour individual settings of the suboptions from the namelist 399 ELSE 400 set all suboptions .FALSE. 401 ENDIF 402 \end{verbatim} 403 404 Details of the suboptions follow but first an explanation of the stand-alone option: 405 \texttt{sn_cfctl%l_glochk}. This option modifies the action of the early warning checks 406 carried out in \textt{stpctl.F90}. These checks detect probable numerical instabilites 407 by searching for excessive sea surface heights or velocities and salinity values 408 outside a sensible physical range. If breaches are detected then the default behaviour 409 is to locate and report the local indices of the grid-point in breach. These indices 410 are included in the error message that precedes the model shutdown. When true, 411 \texttt{sn_cfctl%l_glochk} modifies this action by performing a global location of 412 the various minimum and maximum values and the global indices are reported. This has 413 some value in locating the most severe error in cases where the first detected error 414 may not be the worst culprit. 415 416 \subsubsection{Control print suboptions} 417 418 The options that can be individually selected fall into three categories: 419 420 \begin{enumerate} \item{Time step progress information} This category includes 421 \texttt{run.stat} and \texttt{tracer.stat} files which record certain physical and 422 passive tracer metrics (respectively). Typical contents of \texttt{run.stat} include 423 global maximums of ssh, velocity; and global minimums and maximums of temperature 424 and salinity. A netCDF version of \texttt{run.stat} (\texttt{run.stat.nc}) is also 425 produced with the same time-series data and this can easily be expanded to include 426 extra monitoring information. \texttt{tracer.stat} contains the volume-weighted 427 average tracer value for each passive tracer. Collecting these metrics involves 428 global communications and will impact on model efficiency so both these options are 429 disabled by default by setting the respective options, \texttt{sn\_cfctl%runstat} and 430 \texttt{sn\_cfctl%trcstat} to false. A compromise can be made by activating either or 431 both of these options and setting the \texttt{sn\_cfctl%timincr} entry to an integer 432 value greater than one. This increment determines the time-step frequency at which 433 the global metrics are collected and reported. This increment also applies to the 434 time.step file which is otherwise updated every timestep. 435 \item{One-time configuration information/progress logs} 436 437 Some run-time configuration information and limited progress information is always 438 produced by the first ocean process. This includes the \texttt{ocean.output} file 439 which reports on all the namelist options read by the model and remains open to catch 440 any warning or error messages generated during execution. A \texttt{layout.dat} 441 file is also produced which details the MPI-decomposition used by the model. The 442 suboptions: \texttt{sn\_cfctl%oceout} and \texttt{sn\_cfctl%layout} can be used 443 to activate the creation of these files by all ocean processes. For example, 444 when \texttt{sn\_cfctl%oceout} is true all processors produce their own version of 445 \texttt{ocean.output}. All files, beyond the the normal reporting processor (narea == 1), are 446 named with a \_XXXX extension to their name, where XXXX is a 4-digit area number (with 447 leading zeros, if required). This is useful as a debugging aid since all processes can 448 report their local conditions. Note though that these files are buffered on most UNIX 449 systems so bug-hunting efforts using this facility should also utilise the \fortran: 450 451 \begin{verbatim} 452 CALL FLUSH(numout) 453 \end{verbatim} 454 455 statement after any additional write statements to ensure that file contents reflect 456 the last model state. Associated with the \texttt{sn\_cfctl%oceout} option is the 457 additional \texttt{sn\_cfctl%oasout} suboption. This does not activate its own output 458 file but rather activates the writing of addition information regarding the OASIS 459 configuration when coupling via oasis and the sbccpl routine. This information is 460 written to any active \texttt{ocean.output} files. 461 \item{Control sums of trends for debugging} 462 463 NEMO includes an option for debugging reproducibility differences between 464 a MPP and mono-processor runs. This is somewhat dated and clearly only 465 useful for this purpose when dealing with configurations that can be run 466 on a single processor. The full details can be found in this report: \href{ 467 http://forge.ipsl.jussieu.fr/nemo/attachment/wiki/Documentation/prtctl_NEMO_doc_v2.pdf}{The 468 control print option in NEMO} The switches to activate production of the control sums 469 of trends for either the physics or passive tracers are the \texttt{sn\_cfctl%prtctl} 470 and \texttt{sn\_cfctl%prttrc} suboptions, respectively. Although, perhaps, of limited use for its 471 original intention, the ability to produce these control sums of trends in specific 472 areas provides another tool for diagnosing model behaviour. If only the output from a 473 select few regions is required then additional options are available to activate options 474 for only a simple subset of processing regions. These are: \texttt{sn\_cfctl%procmin}, 475 \texttt{sn\_cfctl%procmax} and \texttt{sn\_cfctl%procincr} which can be used to specify 476 the minimum and maximum active areas and the increment. The default values are set 477 such that all regions will be active. Note this subsetting can also be used to limit 478 which additional \texttt{ocean.output} and \texttt{layout.dat} files are produced if 479 those suboptions are active. 480 375 481 \end{enumerate} 376 482 377 However, in recent versions it has also been used to force all processors to assume the 378 reporting role. Thus when \np{ln_ctl}{ln\_ctl} is true all processors produce their own versions 379 of files such as: ocean.output, layout.dat, etc. All such files, beyond the the normal 380 reporting processor (narea == 1), are named with a \_XXXX extension to their name, where 381 XXXX is a 4-digit area number (with leading zeros, if required). Other reporting files 382 such as run.stat (and its netCDF counterpart: run.stat.nc) and tracer.stat contain global 383 information and are only ever produced by the reporting master (narea == 1). For version 384 4.0 a start has been made to return \np{ln_ctl}{ln\_ctl} to its original function by introducing 385 a new control structure which allows finer control over which files are produced. This 386 feature is still evolving but it does already allow the user to: select individually the 387 production of run.stat and tracer.stat files and to toggle the production of other files 388 on processors other than the reporting master. These other reporters can be a simple 389 subset of processors as defined by a minimum, maximum and incremental processor number. 390 391 Note, that production of the run.stat and tracer.stat files require global communications. 392 For run.stat, these are global min and max operations to find metrics such as the gloabl 393 maximum velocity. For tracer.stat these are global sums of tracer fields. To improve model 394 performance these operations are disabled by default and, where necessary, any use of the 395 global values have been replaced with local calculations. For example, checks on the CFL 396 criterion are now done on the local domain and only reported if a breach is detected. 397 398 Experienced users may wish to still monitor this information as a check on model progress. 399 If so, the best compromise will be to activate the files with: 400 401 \begin{verbatim} 402 sn_cfctl%l_config = .TRUE. 403 sn_cfctl%l_runstat = .TRUE. 404 sn_cfctl%l_trcstat = .TRUE. 405 \end{verbatim} 406 407 and to use the new time increment setting to ensure the values are collected and reported 408 at a suitably long interval. For example: 409 410 \begin{verbatim} 411 sn_cfctl%ptimincr = 25 412 \end{verbatim} 413 414 will carry out the global communications and write the information every 25 timesteps. This 415 increment also applies to the time.step file which is otherwise updated every timestep. 483 484 sn_cfctl%l_glochk = .FALSE. ! Range sanity checks are local (F) or global (T). Set T for debugging only 485 sn_cfctl%l_allon = .FALSE. ! IF T activate all options. If F deactivate all unless l_config is T 486 sn_cfctl%l_config = .TRUE. ! IF .true. then control which reports are written with the following 487 sn_cfctl%l_runstat = .FALSE. ! switches and which areas produce reports with the proc integer settings. 488 sn_cfctl%l_trcstat = .FALSE. ! The default settings for the proc integers should ensure 489 sn_cfctl%l_oceout = .FALSE. ! that all areas report. 490 sn_cfctl%l_layout = .FALSE. ! 491 sn_cfctl%l_prtctl = .FALSE. ! 492 sn_cfctl%l_prttrc = .FALSE. ! 493 sn_cfctl%l_oasout = .FALSE. ! 494 sn_cfctl%procmin = 0 ! Minimum area number for reporting [default:0] 495 sn_cfctl%procmax = 1000000 ! Maximum area number for reporting [default:1000000] 496 sn_cfctl%procincr = 1 ! Increment for optional subsetting of areas [default:1] 497 sn_cfctl%ptimincr = 1 ! Timestep increment for writing time step progress info 498 499 416 500 417 501 \subinc{\input{../../global/epilogue}} -
NEMO/branches/2019/dev_r11943_MERGE_2019/doc/namelists/namctl
r10601 r12236 2 2 &namctl ! Control prints (default: OFF) 3 3 !----------------------------------------------------------------------- 4 ln_ctl = .FALSE. ! Toggle all report printing on/off (T/F); Ignored if sn_cfctl%l_config is T 4 sn_cfctl%l_glochk = .FALSE. ! Range sanity checks are local (F) or global (T). Set T for debugging only 5 sn_cfctl%l_allon = .FALSE. ! IF T activate all options. If F deactivate all unless l_config is T 5 6 sn_cfctl%l_config = .TRUE. ! IF .true. then control which reports are written with the following 6 7 sn_cfctl%l_runstat = .FALSE. ! switches and which areas produce reports with the proc integer settings. … … 8 9 sn_cfctl%l_oceout = .FALSE. ! that all areas report. 9 10 sn_cfctl%l_layout = .FALSE. ! 10 sn_cfctl%l_mppout = .FALSE. ! 11 sn_cfctl%l_mpptop = .FALSE. ! 11 sn_cfctl%l_prtctl = .FALSE. ! 12 sn_cfctl%l_prttrc = .FALSE. ! 13 sn_cfctl%l_oasout = .FALSE. ! 12 14 sn_cfctl%procmin = 0 ! Minimum area number for reporting [default:0] 13 15 sn_cfctl%procmax = 1000000 ! Maximum area number for reporting [default:1000000] -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ABL/ablmod.F90
r12015 r12236 579 579 CALL iom_put( "taum_oce", ptaum ) 580 580 581 IF( ln_ctl) THEN581 IF(sn_cfctl%l_prtctl) THEN 582 582 CALL prt_ctl( tab2d_1=pwndm , clinfo1=' abl_stp: wndm : ' ) 583 583 CALL prt_ctl( tab2d_1=ptaui , clinfo1=' abl_stp: utau : ' ) … … 605 605 CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1., ptauj_ice, 'V', -1. ) 606 606 ! 607 IF( ln_ctl) CALL prt_ctl( tab2d_1=ptaui_ice , clinfo1=' abl_stp: putaui : ' &608 & , tab2d_2=ptauj_ice , clinfo2=' pvtaui : ' )607 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=ptaui_ice , clinfo1=' abl_stp: putaui : ' & 608 & , tab2d_2=ptauj_ice , clinfo2=' pvtaui : ' ) 609 609 #endif 610 610 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icecor.F90
r11536 r12236 165 165 ! 166 166 ! controls 167 IF( ln_ctl ) CALL ice_prt3D ('icecor') ! prints 167 IF( sn_cfctl%l_prtctl ) & 168 & CALL ice_prt3D ('icecor') ! prints 168 169 IF( ln_icectl .AND. kn == 2 ) & 169 170 & CALL ice_prt ( kt, iiceprt, jiceprt, 2, ' - Final state - ' ) ! prints -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icectl.F90
r11612 r12236 695 695 !! *** ROUTINE ice_prt3D *** 696 696 !! 697 !! ** Purpose : CTL prints of ice arrays in case ln_ctl is activated697 !! ** Purpose : CTL prints of ice arrays in case sn_cfctl%prtctl is activated 698 698 !! 699 699 !!------------------------------------------------------------------- -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icedyn_rdgrft.F90
r11960 r12236 268 268 269 269 ! controls 270 IF( ln_ctl ) CALL ice_prt3D ('icedyn_rdgrft')! prints270 IF( sn_cfctl%l_prtctl ) CALL ice_prt3D ('icedyn_rdgrft') ! prints 271 271 IF( ln_icectl ) CALL ice_prt (kt, iiceprt, jiceprt,-1, ' - ice dyn rdgrft - ') ! prints 272 272 IF( ln_icediachk ) CALL ice_cons_hsm(1, 'icedyn_rdgrft', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icedyn_rhg.F90
r11960 r12236 87 87 ! 88 88 ! controls 89 IF( ln_ctl ) CALL ice_prt3D ('icedyn_rhg') ! prints 89 IF( sn_cfctl%l_prtctl ) & 90 & CALL ice_prt3D ('icedyn_rhg') ! prints 90 91 IF( ln_icediachk ) CALL ice_cons_hsm(1, 'icedyn_rhg', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 91 92 IF( ln_icediachk ) CALL ice_cons2D (1, 'icedyn_rhg', diag_v, diag_s, diag_t, diag_fv, diag_fs, diag_ft) ! conservation -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icedyn_rhg_evp.F90
r11949 r12236 346 346 l_full_nf_update = jter == nn_nevp ! false: disable full North fold update (performances) for iter = 1 to nn_nevp-1 347 347 ! 348 !!$ IF( ln_ctl) THEN ! Convergence test348 !!$ IF(sn_cfctl%l_prtctl) THEN ! Convergence test 349 349 !!$ DO jj = 1, jpjm1 350 350 !!$ zu_ice(:,jj) = u_ice(:,jj) ! velocity at previous time step … … 668 668 ENDIF 669 669 670 !!$ IF( ln_ctl) THEN ! Convergence test670 !!$ IF(sn_cfctl%l_prtctl) THEN ! Convergence test 671 671 !!$ DO jj = 2 , jpjm1 672 672 !!$ zresr(:,jj) = MAX( ABS( u_ice(:,jj) - zu_ice(:,jj) ), ABS( v_ice(:,jj) - zv_ice(:,jj) ) ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/icethd.F90
r11960 r12236 252 252 ! controls 253 253 IF( ln_icectl ) CALL ice_prt (kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ') ! prints 254 IF( ln_ctl ) CALL ice_prt3D ('icethd') ! prints 254 IF( sn_cfctl%l_prtctl ) & 255 & CALL ice_prt3D ('icethd') ! prints 255 256 IF( ln_timing ) CALL timing_stop('icethd') ! timing 256 257 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/iceupdate.F90
r11949 r12236 285 285 #endif 286 286 IF( ln_icectl ) CALL ice_prt (kt, iiceprt, jiceprt, 3, 'Final state ice_update') ! prints 287 IF( ln_ctl) CALL ice_prt3D ('iceupdate') ! prints287 IF( sn_cfctl%l_prtctl ) CALL ice_prt3D ('iceupdate') ! prints 288 288 IF( ln_timing ) CALL timing_stop ('ice_update') ! timing 289 289 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/C1D/dyncor_c1d.F90
r11949 r12236 97 97 98 98 ! 99 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' cor - Ua: ', mask1=umask, &100 & tab3d_2=pvv(:,:,:,Krhs), clinfo2=' Va: ' , mask2=vmask )99 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' cor - Ua: ', mask1=umask, & 100 & tab3d_2=pvv(:,:,:,Krhs), clinfo2=' Va: ' , mask2=vmask ) 101 101 ! 102 102 END SUBROUTINE dyn_cor_c1d -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/C1D/dyndmp.F90
r11960 r12236 219 219 ! 220 220 ! ! Control print 221 IF( ln_ctl ) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' dmp - Ua: ', mask1=umask, &222 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )221 IF( sn_cfctl%l_prtctl ) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' dmp - Ua: ', mask1=umask, & 222 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 223 223 ! 224 224 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DOM/daymod.F90
r10068 r12236 277 277 IF( nsec_week > 7*nsecd ) nsec_week = ndt05 ! New week 278 278 279 IF( ln_ctl) THEN279 IF(sn_cfctl%l_prtctl) THEN 280 280 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 281 281 CALL prt_ctl_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynadv_cen2.F90
r11949 r12236 141 141 ENDIF 142 142 ! ! Control print 143 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' cen2 adv - Ua: ', mask1=umask, &144 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )143 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' cen2 adv - Ua: ', mask1=umask, & 144 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 145 145 ! 146 146 END SUBROUTINE dyn_adv_cen2 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynadv_ubs.F90
r11949 r12236 234 234 ENDIF 235 235 ! ! Control print 236 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ubs2 adv - Ua: ', mask1=umask, &237 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )236 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ubs2 adv - Ua: ', mask1=umask, & 237 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 238 238 ! 239 239 END SUBROUTINE dyn_adv_ubs -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynatf.F90
r12150 r12236 328 328 ENDIF 329 329 ! 330 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Kaa), clinfo1=' nxt - puu(:,:,:,Kaa): ', mask1=umask, &331 & tab3d_2=pvv(:,:,:,Kaa), clinfo2=' pvv(:,:,:,Kaa): ' , mask2=vmask )330 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Kaa), clinfo1=' nxt - puu(:,:,:,Kaa): ', mask1=umask, & 331 & tab3d_2=pvv(:,:,:,Kaa), clinfo2=' pvv(:,:,:,Kaa): ' , mask2=vmask ) 332 332 ! 333 333 IF( ln_dynspg_ts ) DEALLOCATE( zue, zve ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynhpg.F90
r12150 r12236 124 124 ENDIF 125 125 ! 126 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' hpg - Ua: ', mask1=umask, &127 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )126 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' hpg - Ua: ', mask1=umask, & 127 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 128 128 ! 129 129 IF( ln_timing ) CALL timing_stop('dyn_hpg') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynkeg.F90
r11949 r12236 149 149 ENDIF 150 150 ! 151 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' keg - Ua: ', mask1=umask, &152 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )151 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' keg - Ua: ', mask1=umask, & 152 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 153 153 ! 154 154 IF( ln_timing ) CALL timing_stop('dyn_keg') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynldf.F90
r11949 r12236 82 82 ENDIF 83 83 ! ! print sum trends (used for debugging) 84 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ldf - Ua: ', mask1=umask, &85 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )84 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ldf - Ua: ', mask1=umask, & 85 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 86 86 ! 87 87 IF( ln_timing ) CALL timing_stop('dyn_ldf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynldf_iso.F90
r11949 r12236 288 288 289 289 ! print sum trends (used for debugging) 290 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ldfh - Ua: ', mask1=umask, &291 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )290 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' ldfh - Ua: ', mask1=umask, & 291 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 292 292 293 293 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynspg.F90
r12205 r12236 178 178 ENDIF 179 179 ! ! print mean trends (used for debugging) 180 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' spg - Ua: ', mask1=umask, &181 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )180 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' spg - Ua: ', mask1=umask, & 181 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 182 182 ! 183 183 IF( ln_timing ) CALL timing_stop('dyn_spg') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynvor.F90
r11960 r12236 181 181 ! 182 182 ! ! print sum trends (used for debugging) 183 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' vor - Ua: ', mask1=umask, &184 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )183 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' vor - Ua: ', mask1=umask, & 184 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 185 185 ! 186 186 IF( ln_timing ) CALL timing_stop('dyn_vor') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynzad.F90
r11949 r12236 116 116 ENDIF 117 117 ! ! Control print 118 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' zad - Ua: ', mask1=umask, &119 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )118 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Krhs), clinfo1=' zad - Ua: ', mask1=umask, & 119 & tab3d_2=pvv(:,:,:,Krhs), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 120 120 ! 121 121 IF( ln_timing ) CALL timing_stop('dyn_zad') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/dynzdf.F90
r12150 r12236 494 494 ENDIF 495 495 ! ! print mean trends (used for debugging) 496 IF( ln_ctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Kaa), clinfo1=' zdf - Ua: ', mask1=umask, &497 & tab3d_2=pvv(:,:,:,Kaa), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )496 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=puu(:,:,:,Kaa), clinfo1=' zdf - Ua: ', mask1=umask, & 497 & tab3d_2=pvv(:,:,:,Kaa), clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 498 498 ! 499 499 IF( ln_timing ) CALL timing_stop('dyn_zdf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/sshwzv.F90
r12150 r12236 125 125 ! !------------------------------! 126 126 ! 127 IF( ln_ctl) CALL prt_ctl( tab2d_1=pssh(:,:,Kaa), clinfo1=' pssh(:,:,Kaa) - : ', mask1=tmask )127 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=pssh(:,:,Kaa), clinfo1=' pssh(:,:,Kaa) - : ', mask1=tmask ) 128 128 ! 129 129 IF( ln_timing ) CALL timing_stop('ssh_nxt') … … 267 267 ENDIF 268 268 ! 269 IF( ln_ctl) CALL prt_ctl( tab2d_1=pssh(:,:,Kmm), clinfo1=' pssh(:,:,Kmm) - : ', mask1=tmask )269 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=pssh(:,:,Kmm), clinfo1=' pssh(:,:,Kmm) - : ', mask1=tmask ) 270 270 ! 271 271 IF( ln_timing ) CALL timing_stop('ssh_atf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/IOM/in_out_manager.F90
r12182 r12236 99 99 !! output monitoring 100 100 !!---------------------------------------------------------------------- 101 LOGICAL :: ln_ctl !: run control for debugging 102 TYPE :: sn_ctl !: optional use structure for finer control over output selection 101 TYPE :: sn_ctl !: structure for control over output selection 102 LOGICAL :: l_glochk = .FALSE. !: range sanity checks are local (F) or global (T) 103 ! Use global setting for debugging only; 104 ! local breaches will still be reported 105 ! and stop the code in most cases. 106 LOGICAL :: l_allon = .FALSE. !: overall control; activate all following output options 103 107 LOGICAL :: l_config = .FALSE. !: activate/deactivate finer control 104 ! Note if l_config is True then ln_ctl is ignored. 105 ! Otherwise setting ln_ctl True is equivalent to setting 106 ! all the following logicals in this structure True 108 ! Note if l_config is True then sn_cfctl%l_allon is ignored. 109 ! Otherwise setting sn_cfctl%l_allon T/F is equivalent to 110 ! setting all the following logicals in this structure T/F 111 ! and disabling subsetting of processors 107 112 LOGICAL :: l_runstat = .FALSE. !: Produce/do not produce run.stat file (T/F) 108 113 LOGICAL :: l_trcstat = .FALSE. !: Produce/do not produce tracer.stat file (T/F) 109 114 LOGICAL :: l_oceout = .FALSE. !: Produce all ocean.outputs (T) or just one (F) 110 115 LOGICAL :: l_layout = .FALSE. !: Produce all layout.dat files (T) or just one (F) 111 LOGICAL :: l_mppout = .FALSE. !: Produce/do not produce mpp.output_XXXX files (T/F) 112 LOGICAL :: l_mpptop = .FALSE. !: Produce/do not produce mpp.top.output_XXXX files (T/F) 116 LOGICAL :: l_prtctl = .FALSE. !: Produce/do not produce mpp.output_XXXX files (T/F) 117 LOGICAL :: l_prttrc = .FALSE. !: Produce/do not produce mpp.top.output_XXXX files (T/F) 118 LOGICAL :: l_oasout = .FALSE. !: Produce/do not write oasis setup info to ocean.output (T/F) 113 119 ! Optional subsetting of processor report files 114 120 ! Default settings of 0/1000000/1 should ensure all areas report. … … 169 175 CHARACTER(lc) :: ctmp10 !: temporary character 10 170 176 LOGICAL :: lwm = .FALSE. !: boolean : true on the 1st processor only (always) 171 LOGICAL :: lwp = .FALSE. !: boolean : true on the 1st processor only .OR. ln_ctl177 LOGICAL :: lwp = .FALSE. !: boolean : true on the 1st processor only .OR. sn_cfctl%l_oceout=T 172 178 LOGICAL :: lsp_area = .TRUE. !: to make a control print over a specific area 173 179 CHARACTER(lc) :: cxios_context !: context name used in xios -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/IOM/prtctl.F90
r10068 r12236 50 50 !! debugging a new parametrization in mono or mpp. 51 51 !! 52 !! ** Method : 2 possibilities exist when setting the ln_ctl parameter to52 !! ** Method : 2 possibilities exist when setting the sn_cfctl%prtctl parameter to 53 53 !! .true. in the ocean namelist: 54 54 !! - to debug a MPI run .vs. a mono-processor one; … … 64 64 !! name must be explicitly typed if used. For instance if the 3D 65 65 !! array tn(:,:,:) must be passed through the prt_ctl subroutine, 66 !! it must look slike: CALL prt_ctl(tab3d_1=tn).66 !! it must look like: CALL prt_ctl(tab3d_1=tn). 67 67 !! 68 68 !! tab2d_1 : first 2D array -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/LBC/mppini.F90
r11960 r12236 171 171 !!---------------------------------------------------------------------- 172 172 ! 173 llwrtlay = lw p .OR. ln_ctl.OR. sn_cfctl%l_layout173 llwrtlay = lwm .OR. sn_cfctl%l_layout 174 174 ! 175 175 ! 0. read namelists parameters -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/LDF/ldfslp.F90
r12150 r12236 367 367 CALL lbc_lnk_multi( 'ldfslp', uslp , 'U', -1. , vslp , 'V', -1. , wslpi, 'W', -1., wslpj, 'W', -1. ) 368 368 369 IF( ln_ctl) THEN369 IF(sn_cfctl%l_prtctl) THEN 370 370 CALL prt_ctl(tab3d_1=uslp , clinfo1=' slp - u : ', tab3d_2=vslp, clinfo2=' v : ', kdim=jpk) 371 371 CALL prt_ctl(tab3d_1=wslpi, clinfo1=' slp - wi: ', tab3d_2=wslpj, clinfo2=' wj: ', kdim=jpk) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/cpl_oasis3.F90
r12182 r12236 203 203 paral(5) = jpiglo ! global extent in x 204 204 205 IF( ln_ctl) THEN205 IF( sn_cfctl%l_oasout ) THEN 206 206 WRITE(numout,*) ' multiexchg: paral (1:5)', paral 207 207 WRITE(numout,*) ' multiexchg: jpi, jpj =', jpi, jpj … … 243 243 ENDIF 244 244 #endif 245 IF( ln_ctl) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_Out245 IF( sn_cfctl%l_oasout ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_Out 246 246 CALL oasis_def_var (ssnd(ji)%nid(jc,jm), zclname, id_part , (/ 2, 1 /), & 247 247 & OASIS_Out , ishape , OASIS_REAL, nerror ) … … 250 250 CALL oasis_abort ( ssnd(ji)%nid(jc,jm), 'cpl_define', 'Failure in oasis_def_var' ) 251 251 ENDIF 252 IF( ln_ctl.AND. ssnd(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"253 IF( ln_ctl.AND. ssnd(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"252 IF( sn_cfctl%l_oasout .AND. ssnd(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple" 253 IF( sn_cfctl%l_oasout .AND. ssnd(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple" 254 254 END DO 255 255 END DO … … 288 288 ENDIF 289 289 #endif 290 IF( ln_ctl) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_In290 IF( sn_cfctl%l_oasout ) WRITE(numout,*) "Define", ji, jc, jm, " "//TRIM(zclname), " for ", OASIS_In 291 291 CALL oasis_def_var (srcv(ji)%nid(jc,jm), zclname, id_part , (/ 2, 1 /), & 292 292 & OASIS_In , ishape , OASIS_REAL, nerror ) … … 295 295 CALL oasis_abort ( srcv(ji)%nid(jc,jm), 'cpl_define', 'Failure in oasis_def_var' ) 296 296 ENDIF 297 IF( ln_ctl.AND. srcv(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple"298 IF( ln_ctl.AND. srcv(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple"297 IF( sn_cfctl%l_oasout .AND. srcv(ji)%nid(jc,jm) /= -1 ) WRITE(numout,*) "variable defined in the namcouple" 298 IF( sn_cfctl%l_oasout .AND. srcv(ji)%nid(jc,jm) == -1 ) WRITE(numout,*) "variable NOT defined in the namcouple" 299 299 300 300 END DO … … 349 349 CALL oasis_put ( ssnd(kid)%nid(jc,jm), kstep, pdata(nldi:nlei, nldj:nlej,jc), kinfo ) 350 350 351 IF ( ln_ctl) THEN352 IF ( kinfo == OASIS_Sent .OR. kinfo == OASIS_ToRest .OR. &351 IF ( sn_cfctl%l_oasout ) THEN 352 IF ( kinfo == OASIS_Sent .OR. kinfo == OASIS_ToRest .OR. & 353 353 & kinfo == OASIS_SentOut .OR. kinfo == OASIS_ToRestOut ) THEN 354 354 WRITE(numout,*) '****************' … … 420 420 & kinfo == OASIS_RecvOut .OR. kinfo == OASIS_FromRestOut 421 421 422 IF ( ln_ctl) WRITE(numout,*) "llaction, kinfo, kstep, ivarid: " , llaction, kinfo, kstep, srcv(kid)%nid(jc,jm)422 IF ( sn_cfctl%l_oasout ) WRITE(numout,*) "llaction, kinfo, kstep, ivarid: " , llaction, kinfo, kstep, srcv(kid)%nid(jc,jm) 423 423 424 424 IF( llaction ) THEN … … 432 432 ENDIF 433 433 434 IF ( ln_ctl) THEN434 IF ( sn_cfctl%l_oasout ) THEN 435 435 WRITE(numout,*) '****************' 436 436 WRITE(numout,*) 'oasis_get: Incoming ', srcv(kid)%clname -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcblk.F90
r12200 r12236 178 178 ! 179 179 ! !** read bulk namelist 180 !REWIND( numnam_ref ) !* Namelist namsbc_blk in reference namelist : bulk parameters181 180 READ ( numnam_ref, namsbc_blk, IOSTAT = ios, ERR = 901) 182 181 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_blk in reference namelist' ) 183 182 ! 184 !REWIND( numnam_cfg ) !* Namelist namsbc_blk in configuration namelist : bulk parameters185 183 READ ( numnam_cfg, namsbc_blk, IOSTAT = ios, ERR = 902 ) 186 184 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namsbc_blk in configuration namelist' ) … … 703 701 CALL lbc_lnk_multi( 'sbcblk', utau, 'U', -1., vtau, 'V', -1. ) 704 702 705 IF( ln_ctl) THEN703 IF(sn_cfctl%l_prtctl) THEN 706 704 CALL prt_ctl( tab2d_1=wndm , clinfo1=' blk_oce_1: wndm : ') 707 705 CALL prt_ctl( tab2d_1=utau , clinfo1=' blk_oce_1: utau : ', mask1=umask, & … … 718 716 ENDIF 719 717 720 IF( ln_ctl) THEN718 IF(sn_cfctl%l_prtctl) THEN 721 719 CALL prt_ctl( tab2d_1=pevp , clinfo1=' blk_oce_1: pevp : ' ) 722 720 CALL prt_ctl( tab2d_1=psen , clinfo1=' blk_oce_1: psen : ' ) … … 762 760 ! local scalars ( place there for vector optimisation purposes) 763 761 762 764 763 ztskk(:,:) = ptsk(:,:) + rt0 ! => ptsk in Kelvin rather than Celsius 765 764 … … 782 781 ENDDO 783 782 784 IF( ln_ctl) THEN783 IF(sn_cfctl%l_prtctl) THEN 785 784 CALL prt_ctl( tab2d_1=zqla , clinfo1=' blk_oce_2: zqla : ' ) 786 785 CALL prt_ctl( tab2d_1=zqlw , clinfo1=' blk_oce_2: zqlw : ', tab2d_2=qsr, clinfo2=' qsr : ' ) … … 826 825 ENDIF 827 826 ! 828 IF( ln_ctl) THEN827 IF(sn_cfctl%l_prtctl) THEN 829 828 CALL prt_ctl(tab2d_1=zqlw , clinfo1=' blk_oce_2: zqlw : ') 830 829 CALL prt_ctl(tab2d_1=zqla , clinfo1=' blk_oce_2: zqla : ', tab2d_2=qsr , clinfo2=' qsr : ') … … 927 926 CALL lbc_lnk_multi( 'sbcblk', putaui, 'U', -1., pvtaui, 'V', -1. ) 928 927 ! 929 IF( ln_ctl)CALL prt_ctl( tab2d_1=putaui , clinfo1=' blk_ice: putaui : ' &930 & , tab2d_2=pvtaui , clinfo2=' pvtaui : ' )928 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=putaui , clinfo1=' blk_ice: putaui : ' & 929 & , tab2d_2=pvtaui , clinfo2=' pvtaui : ' ) 931 930 ELSE 932 931 zztmp1 = 11637800.0_wp … … 943 942 ENDIF 944 943 ! 945 IF( ln_ctl) CALL prt_ctl(tab2d_1=wndm_ice , clinfo1=' blk_ice: wndm_ice : ')944 IF(sn_cfctl%l_prtctl) CALL prt_ctl(tab2d_1=wndm_ice , clinfo1=' blk_ice: wndm_ice : ') 946 945 ! 947 946 END SUBROUTINE blk_ice_1 … … 1129 1128 ENDIF 1130 1129 ! 1131 IF( ln_ctl) THEN1130 IF(sn_cfctl%l_prtctl) THEN 1132 1131 CALL prt_ctl(tab3d_1=qla_ice , clinfo1=' blk_ice: qla_ice : ', tab3d_2=z_qsb , clinfo2=' z_qsb : ', kdim=jpl) 1133 1132 CALL prt_ctl(tab3d_1=z_qlw , clinfo1=' blk_ice: z_qlw : ', tab3d_2=dqla_ice, clinfo2=' dqla_ice : ', kdim=jpl) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcmod.F90
r12193 r12236 574 574 CALL iom_put( "vtau", vtau ) ! j-wind stress 575 575 ! 576 IF( ln_ctl) THEN! print mean trends (used for debugging)576 IF(sn_cfctl%l_prtctl) THEN ! print mean trends (used for debugging) 577 577 CALL prt_ctl(tab2d_1=fr_i , clinfo1=' fr_i - : ', mask1=tmask ) 578 578 CALL prt_ctl(tab2d_1=(emp-rnf) , clinfo1=' emp-rnf - : ', mask1=tmask ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/eosbn2.F90
r12150 r12236 296 296 END SELECT 297 297 ! 298 IF( ln_ctl) CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu : ', kdim=jpk )298 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-insitu : ', kdim=jpk ) 299 299 ! 300 300 IF( ln_timing ) CALL timing_stop('eos-insitu') … … 463 463 END SELECT 464 464 ! 465 IF( ln_ctl) CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk )465 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=prd, clinfo1=' eos-pot: ', tab3d_2=prhop, clinfo2=' pot : ', kdim=jpk ) 466 466 ! 467 467 IF( ln_timing ) CALL timing_stop('eos-pot') … … 558 558 END SELECT 559 559 ! 560 IF( ln_ctl) CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' )560 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=prd, clinfo1=' eos2d: ' ) 561 561 ! 562 562 IF( ln_timing ) CALL timing_stop('eos2d') … … 671 671 END SELECT 672 672 ! 673 IF( ln_ctl) CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', &674 & tab3d_2=pab(:,:,:,jp_sal), clinfo2=' rab_3d_s : ', kdim=jpk )673 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pab(:,:,:,jp_tem), clinfo1=' rab_3d_t: ', & 674 & tab3d_2=pab(:,:,:,jp_sal), clinfo2=' rab_3d_s : ', kdim=jpk ) 675 675 ! 676 676 IF( ln_timing ) CALL timing_stop('rab_3d') … … 786 786 END SELECT 787 787 ! 788 IF( ln_ctl) CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', &789 & tab2d_2=pab(:,:,jp_sal), clinfo2=' rab_2d_s : ' )788 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=pab(:,:,jp_tem), clinfo1=' rab_2d_t: ', & 789 & tab2d_2=pab(:,:,jp_sal), clinfo2=' rab_2d_s : ' ) 790 790 ! 791 791 IF( ln_timing ) CALL timing_stop('rab_2d') … … 932 932 END DO 933 933 ! 934 IF( ln_ctl) CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2 : ', kdim=jpk )934 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pn2, clinfo1=' bn2 : ', kdim=jpk ) 935 935 ! 936 936 IF( ln_timing ) CALL timing_stop('bn2') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traadv.F90
r12193 r12236 171 171 ENDIF 172 172 ! ! print mean trends (used for debugging) 173 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' adv - Ta: ', mask1=tmask, &174 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )173 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' adv - Ta: ', mask1=tmask, & 174 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 175 175 ! 176 176 IF( ln_timing ) CALL timing_stop( 'tra_adv' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traatf.F90
r12156 r12236 178 178 ! 179 179 ! ! control print 180 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Kmm), clinfo1=' nxt - Tn: ', mask1=tmask, &181 & tab3d_2=pts(:,:,:,jp_sal,Kmm), clinfo2= ' Sn: ', mask2=tmask )180 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Kmm), clinfo1=' nxt - Tn: ', mask1=tmask, & 181 & tab3d_2=pts(:,:,:,jp_sal,Kmm), clinfo2= ' Sn: ', mask2=tmask ) 182 182 ! 183 183 IF( ln_timing ) CALL timing_stop('tra_atf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trabbc.F90
r12193 r12236 103 103 ! 104 104 CALL iom_put ( "hfgeou" , rau0_rcp * qgh_trd0(:,:) ) 105 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc - Ta: ', mask1=tmask, clinfo3='tra-ta' )105 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbc - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 106 106 ! 107 107 IF( ln_timing ) CALL timing_stop('tra_bbc') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trabbl.F90
r11960 r12236 121 121 ! 122 122 CALL tra_bbl_dif( pts(:,:,:,:,Kbb), pts(:,:,:,:,Krhs), jpts, Kmm ) 123 IF( ln_ctl ) &123 IF( sn_cfctl%l_prtctl ) & 124 124 CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbl_ldf - Ta: ', mask1=tmask, & 125 125 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 134 134 ! 135 135 CALL tra_bbl_adv( pts(:,:,:,:,Kbb), pts(:,:,:,:,Krhs), jpts, Kmm ) 136 IF( ln_ctl) &136 IF(sn_cfctl%l_prtctl) & 137 137 CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' bbl_adv - Ta: ', mask1=tmask, & 138 138 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/tradmp.F90
r11960 r12236 159 159 ENDIF 160 160 ! ! Control print 161 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' dmp - Ta: ', mask1=tmask, &162 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )161 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' dmp - Ta: ', mask1=tmask, & 162 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 163 163 ! 164 164 IF( ln_timing ) CALL timing_stop('tra_dmp') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traldf.F90
r11949 r12236 87 87 ENDIF 88 88 ! !* print mean trends (used for debugging) 89 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' ldf - Ta: ', mask1=tmask, &90 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )89 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' ldf - Ta: ', mask1=tmask, & 90 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 91 91 ! 92 92 IF( ln_timing ) CALL timing_stop('tra_ldf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traqsr.F90
r11960 r12236 302 302 ENDIF 303 303 ! ! print mean trends (used for debugging) 304 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' qsr - Ta: ', mask1=tmask, clinfo3='tra-ta' )304 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' qsr - Ta: ', mask1=tmask, clinfo3='tra-ta' ) 305 305 ! 306 306 IF( ln_timing ) CALL timing_stop('tra_qsr') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trasbc.F90
r12150 r12236 217 217 ENDIF 218 218 ! 219 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' sbc - Ta: ', mask1=tmask, &220 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )219 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' sbc - Ta: ', mask1=tmask, & 220 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 221 221 ! 222 222 IF( ln_timing ) CALL timing_stop('tra_sbc') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trazdf.F90
r11949 r12236 101 101 ENDIF 102 102 ! ! print mean trends (used for debugging) 103 IF( ln_ctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Kaa), clinfo1=' zdf - Ta: ', mask1=tmask, &104 & tab3d_2=pts(:,:,:,jp_sal,Kaa), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' )103 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Kaa), clinfo1=' zdf - Ta: ', mask1=tmask, & 104 & tab3d_2=pts(:,:,:,jp_sal,Kaa), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 105 105 ! 106 106 IF( ln_timing ) CALL timing_stop('tra_zdf') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRD/trdmxl.F90
r11960 r12236 372 372 hmxlbn(:,:) = hmxl(:,:) 373 373 374 IF( ln_ctl ) THEN374 IF( sn_cfctl%l_prtctl ) THEN 375 375 WRITE(numout,*) ' we reach kt == nit000 + 1 = ', nit000+1 376 376 CALL prt_ctl(tab2d_1=tmlbb , clinfo1=' tmlbb - : ', mask1=tmask) … … 381 381 END IF 382 382 383 IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. ( ln_ctl )) THEN383 IF( ( ln_rstart ) .AND. ( kt == nit000 ) .AND. sn_cfctl%l_prtctl ) THEN 384 384 IF( ln_trdmxl_instant ) THEN 385 385 WRITE(numout,*) ' restart from kt == nit000 = ', nit000 … … 549 549 hmxlbn (:,:) = hmxl (:,:) 550 550 551 IF( ln_ctl ) THEN551 IF( sn_cfctl%l_prtctl ) THEN 552 552 IF( ln_trdmxl_instant ) THEN 553 553 CALL prt_ctl(tab2d_1=tmlbb , clinfo1=' tmlbb - : ', mask1=tmask) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfddm.F90
r11949 r12236 164 164 ! ! =============== 165 165 ! 166 IF( ln_ctl) THEN166 IF(sn_cfctl%l_prtctl) THEN 167 167 CALL prt_ctl(tab3d_1=avt , clinfo1=' ddm - t: ', tab3d_2=avs , clinfo2=' s: ', kdim=jpk) 168 168 ENDIF -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfdrg.F90
r11960 r12236 140 140 ENDIF 141 141 ! 142 IF( ln_ctl) CALL prt_ctl( tab2d_1=pCdU, clinfo1=' Cd*U ')142 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=pCdU, clinfo1=' Cd*U ') 143 143 ! 144 144 END SUBROUTINE zdf_drg … … 215 215 ENDIF 216 216 ! ! print mean trends (used for debugging) 217 IF( ln_ctl) CALL prt_ctl( tab3d_1=pua, clinfo1=' bfr - Ua: ', mask1=umask, &218 & tab3d_2=pva, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' )217 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab3d_1=pua, clinfo1=' bfr - Ua: ', mask1=umask, & 218 & tab3d_2=pva, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 219 219 ! 220 220 END SUBROUTINE zdf_drg_exp -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfgls.F90
r11960 r12236 825 825 p_avt(:,:,1) = 0._wp 826 826 ! 827 IF( ln_ctl) THEN827 IF(sn_cfctl%l_prtctl) THEN 828 828 CALL prt_ctl( tab3d_1=en , clinfo1=' gls - e: ', tab3d_2=p_avt, clinfo2=' t: ', kdim=jpk) 829 829 CALL prt_ctl( tab3d_1=p_avm, clinfo1=' gls - m: ', kdim=jpk ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfiwm.F90
r12182 r12236 384 384 CALL iom_put( "emix_iwm", zemx_iwm ) 385 385 386 IF( ln_ctl) CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk)386 IF(sn_cfctl%l_prtctl) CALL prt_ctl(tab3d_1=zav_wave , clinfo1=' iwm - av_wave: ', tab3d_2=avt, clinfo2=' avt: ', kdim=jpk) 387 387 ! 388 388 END SUBROUTINE zdf_iwm -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfmxl.F90
r12150 r12236 139 139 ENDIF 140 140 ! 141 IF( ln_ctl) CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' )141 IF(sn_cfctl%l_prtctl) CALL prt_ctl( tab2d_1=REAL(nmln,wp), clinfo1=' nmln : ', tab2d_2=hmlp, clinfo2=' hmlp : ' ) 142 142 ! 143 143 END SUBROUTINE zdf_mxl -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdfosm.F90
r11960 r12236 1664 1664 ENDIF 1665 1665 1666 IF( ln_ctl) THEN1666 IF(sn_cfctl%l_prtctl) THEN 1667 1667 CALL prt_ctl( tab3d_1=pts(:,:,:,jp_tem,Krhs), clinfo1=' osm - Ta: ', mask1=tmask, & 1668 1668 & tab3d_2=pts(:,:,:,jp_sal,Krhs), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/ZDF/zdftke.F90
r11960 r12236 622 622 ENDIF 623 623 ! 624 IF( ln_ctl) THEN624 IF(sn_cfctl%l_prtctl) THEN 625 625 CALL prt_ctl( tab3d_1=en , clinfo1=' tke - e: ', tab3d_2=p_avt, clinfo2=' t: ', kdim=jpk) 626 626 CALL prt_ctl( tab3d_1=p_avm, clinfo1=' tke - m: ', kdim=jpk ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/nemogcm.F90
r12205 r12236 267 267 INTEGER :: ios, ilocal_comm ! local integers 268 268 !! 269 NAMELIST/namctl/ ln_ctl , sn_cfctl, nn_print, nn_ictls, nn_ictle,&269 NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle, & 270 270 & nn_isplt , nn_jsplt, nn_jctls, nn_jctle, & 271 271 & ln_timing, ln_diacfl … … 318 318 ! 319 319 ! !--------------------! 320 ! ! Open listing units ! -> need ln_ctl from namctl to define lwp320 ! ! Open listing units ! -> need sn_cfctl from namctl to define lwp 321 321 ! !--------------------! 322 322 ! … … 326 326 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist' ) 327 327 ! 328 lwp = (narea == 1) .OR. ln_ctl ! control of all listing output print 328 ! finalize the definition of namctl variables 329 IF( sn_cfctl%l_allon ) THEN 330 ! Turn on all options. 331 CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. ) 332 ! Ensure all processors are active 333 sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1 334 ELSEIF( sn_cfctl%l_config ) THEN 335 ! Activate finer control of report outputs 336 ! optionally switch off output from selected areas (note this only 337 ! applies to output which does not involve global communications) 338 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. & 339 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) & 340 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 341 ELSE 342 ! turn off all options. 343 CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. ) 344 ENDIF 345 ! 346 lwp = (narea == 1) .OR. sn_cfctl%l_oceout ! control of all listing output print 329 347 ! 330 348 IF(lwp) THEN ! open listing units … … 358 376 ENDIF 359 377 ! 360 ! finalize the definition of namctl variables361 IF( sn_cfctl%l_config ) THEN362 ! Activate finer control of report outputs363 ! optionally switch off output from selected areas (note this only364 ! applies to output which does not involve global communications)365 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. &366 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) &367 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )368 ELSE369 ! Use ln_ctl to turn on or off all options.370 CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )371 ENDIF372 !373 378 IF(lwm) WRITE( numond, namctl ) 374 379 ! … … 417 422 CALL dom_init( Nbb, Nnn, Naa, "OPA") ! Domain 418 423 IF( ln_crs ) CALL crs_init( Nnn ) ! coarsened grid: domain initialization 419 IF( ln_ctl ) CALL prt_ctl_init ! Print control 424 IF( sn_cfctl%l_prtctl ) & 425 & CALL prt_ctl_init ! Print control 420 426 421 CALL diurnal_sst_bulk_init! diurnal sst427 CALL diurnal_sst_bulk_init ! diurnal sst 422 428 IF( ln_diurnal ) CALL diurnal_sst_coolskin_init ! cool skin 423 429 ! 424 IF( ln_diurnal_only ) THEN ! diurnal only: a subset of the initialisation routines425 CALL istate_init( Nbb, Nnn, Naa ) 426 CALL sbc_init( Nbb, Nnn, Naa ) 427 CALL tra_qsr_init 428 IF( ln_diaobs ) THEN 429 CALL dia_obs_init( Nnn ) 430 CALL dia_obs( nit000 - 1, Nnn ) 430 IF( ln_diurnal_only ) THEN ! diurnal only: a subset of the initialisation routines 431 CALL istate_init( Nbb, Nnn, Naa ) ! ocean initial state (Dynamics and tracers) 432 CALL sbc_init( Nbb, Nnn, Naa ) ! Forcings : surface module 433 CALL tra_qsr_init ! penetrative solar radiation qsr 434 IF( ln_diaobs ) THEN ! Observation & model comparison 435 CALL dia_obs_init( Nnn ) ! Initialize observational data 436 CALL dia_obs( nit000 - 1, Nnn ) ! Observation operator for restart 431 437 ENDIF 432 438 IF( lk_asminc ) CALL asm_inc_init( Nbb, Nnn, Nrhs ) ! Assimilation increments … … 521 527 WRITE(numout,*) '~~~~~~~~' 522 528 WRITE(numout,*) ' Namelist namctl' 523 WRITE(numout,*) ' run control (for debugging) ln_ctl = ', ln_ctl 529 WRITE(numout,*) ' sn_cfctl%l_glochk = ', sn_cfctl%l_glochk 530 WRITE(numout,*) ' sn_cfctl%l_allon = ', sn_cfctl%l_allon 524 531 WRITE(numout,*) ' finer control over o/p sn_cfctl%l_config = ', sn_cfctl%l_config 525 532 WRITE(numout,*) ' sn_cfctl%l_runstat = ', sn_cfctl%l_runstat … … 527 534 WRITE(numout,*) ' sn_cfctl%l_oceout = ', sn_cfctl%l_oceout 528 535 WRITE(numout,*) ' sn_cfctl%l_layout = ', sn_cfctl%l_layout 529 WRITE(numout,*) ' sn_cfctl%l_mppout = ', sn_cfctl%l_mppout 530 WRITE(numout,*) ' sn_cfctl%l_mpptop = ', sn_cfctl%l_mpptop 536 WRITE(numout,*) ' sn_cfctl%l_prtctl = ', sn_cfctl%l_prtctl 537 WRITE(numout,*) ' sn_cfctl%l_prttrc = ', sn_cfctl%l_prttrc 538 WRITE(numout,*) ' sn_cfctl%l_oasout = ', sn_cfctl%l_oasout 531 539 WRITE(numout,*) ' sn_cfctl%procmin = ', sn_cfctl%procmin 532 540 WRITE(numout,*) ' sn_cfctl%procmax = ', sn_cfctl%procmax … … 566 574 ! ! Parameter control 567 575 ! 568 IF( ln_ctl ) THEN! sub-domain area indices for the control prints576 IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN ! sub-domain area indices for the control prints 569 577 IF( lk_mpp .AND. jpnij > 1 ) THEN 570 578 isplt = jpni ; jsplt = jpnj ; ijsplt = jpni*jpnj ! the domain is forced to the real split domain … … 692 700 sn_cfctl%l_oceout = setto 693 701 sn_cfctl%l_layout = setto 694 sn_cfctl%l_mppout = setto 695 sn_cfctl%l_mpptop = setto 702 sn_cfctl%l_prtctl = setto 703 sn_cfctl%l_prttrc = setto 704 sn_cfctl%l_oasout = setto 696 705 END SUBROUTINE nemo_set_cfctl 697 706 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/stpctl.F90
r11949 r12236 73 73 ! 74 74 ll_wrtstp = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) 75 ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR.sn_cfctl%l_runstat )75 ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_runstat ) 76 76 ll_wrtruns = ll_colruns .AND. lwm 77 77 IF( kt == nit000 .AND. lwp ) THEN … … 83 83 ! ! open run.stat file(s) at start whatever 84 84 ! ! the value of sn_cfctl%ptimincr 85 IF( lwm .AND. ( ln_ctl .OR.sn_cfctl%l_runstat ) ) THEN85 IF( lwm .AND. ( sn_cfctl%l_runstat ) ) THEN 86 86 CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 87 87 clname = 'run.stat.nc' … … 148 148 END IF 149 149 ! !== error handling ==! 150 IF( ( ln_ctl .OR. lsomeoce ) .AND. ( & ! have use mpp_max (because ln_ctl=.T.) or contains some ocean points150 IF( ( sn_cfctl%l_glochk .OR. lsomeoce ) .AND. ( & ! domain contains some ocean points, check for sensible ranges 151 151 & zmax(1) > 20._wp .OR. & ! too large sea surface height ( > 20 m ) 152 152 & zmax(2) > 10._wp .OR. & ! too large velocity ( > 10 m/s) … … 155 155 & zmax(4) < 0._wp .OR. & ! too large sea surface salinity (keep this line for sea-ice) 156 156 & ISNAN( zmax(1) + zmax(2) + zmax(3) ) ) ) THEN ! NaN encounter in the tests 157 IF( lk_mpp .AND. ln_ctl ) THEN 157 IF( lk_mpp .AND. sn_cfctl%l_glochk ) THEN 158 ! have use mpp_max (because sn_cfctl%l_glochk=.T. and distributed) 158 159 CALL mpp_maxloc( 'stpctl', ABS(ssh(:,:,Kmm)) , ssmask(:,:) , zzz, ih ) 159 160 CALL mpp_maxloc( 'stpctl', ABS(uu(:,:,:,Kmm)) , umask (:,:,:), zzz, iu ) … … 161 162 CALL mpp_maxloc( 'stpctl', ts(:,:,:,jp_sal,Kmm), tmask (:,:,:), zzz, is2 ) 162 163 ELSE 164 ! find local min and max locations 163 165 ih(:) = MAXLOC( ABS( ssh(:,:,Kmm) ) ) + (/ nimpp - 1, njmpp - 1 /) 164 166 iu(:) = MAXLOC( ABS( uu (:,:,:,Kmm) ) ) + (/ nimpp - 1, njmpp - 1, 0 /) … … 176 178 CALL dia_wri_state( Kmm, 'output.abort' ) ! create an output.abort file 177 179 178 IF( .NOT. ln_ctl) THEN180 IF( .NOT. sn_cfctl%l_glochk ) THEN 179 181 WRITE(ctmp8,*) 'E R R O R message from sub-domain: ', narea 180 182 CALL ctl_stop( 'STOP', ctmp1, ' ', ctmp8, ' ', ctmp2, ctmp3, ctmp4, ctmp5, ctmp6 ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OFF/dtadyn.F90
r11960 r12236 179 179 CALL eos( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 180 180 ! 181 IF( ln_ctl) THEN! print control181 IF(sn_cfctl%l_prtctl) THEN ! print control 182 182 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_tem,Kmm), clinfo1=' tn - : ', mask1=tmask, kdim=jpk ) 183 183 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_sal,Kmm), clinfo1=' sn - : ', mask1=tmask, kdim=jpk ) … … 448 448 CALL eos ( ts(:,:,:,:,Kmm), rhd, rhop, gdept_0(:,:,:) ) ! In any case, we need rhop 449 449 450 IF( ln_ctl) THEN! print control450 IF(sn_cfctl%l_prtctl) THEN ! print control 451 451 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_tem,Kmm), clinfo1=' tn - : ', mask1=tmask, kdim=jpk ) 452 452 CALL prt_ctl(tab3d_1=ts(:,:,:,jp_sal,Kmm), clinfo1=' sn - : ', mask1=tmask, kdim=jpk ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OFF/nemogcm.F90
r11960 r12236 175 175 INTEGER :: ios, ilocal_comm ! local integers 176 176 !! 177 NAMELIST/namctl/ ln_ctl , sn_cfctl, nn_print, nn_ictls, nn_ictle,&177 NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle, & 178 178 & nn_isplt , nn_jsplt, nn_jctls, nn_jctle, & 179 179 & ln_timing, ln_diacfl … … 212 212 ! 213 213 ! !--------------------! 214 ! ! Open listing units ! -> need ln_ctl from namctl to define lwp214 ! ! Open listing units ! -> need sn_cfctl from namctl to define lwp 215 215 ! !--------------------! 216 216 ! … … 220 220 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist' ) 221 221 ! 222 lwp = (narea == 1) .OR. ln_ctl ! control of all listing output print 222 ! finalize the definition of namctl variables 223 IF( sn_cfctl%l_allon ) THEN 224 ! Turn on all options. 225 CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. ) 226 ! Ensure all processors are active 227 sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1 228 ELSEIF( sn_cfctl%l_config ) THEN 229 ! Activate finer control of report outputs 230 ! optionally switch off output from selected areas (note this only 231 ! applies to output which does not involve global communications) 232 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. & 233 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) & 234 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 235 ELSE 236 ! turn off all options. 237 CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. ) 238 ENDIF 239 ! 240 lwp = (narea == 1) .OR. sn_cfctl%l_oceout ! control of all listing output print 223 241 ! 224 242 IF(lwp) THEN ! open listing units … … 252 270 ENDIF 253 271 ! 254 ! finalize the definition of namctl variables255 IF( sn_cfctl%l_config ) THEN256 ! Activate finer control of report outputs257 ! optionally switch off output from selected areas (note this only258 ! applies to output which does not involve global communications)259 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. &260 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) &261 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )262 ELSE263 ! Use ln_ctl to turn on or off all options.264 CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )265 ENDIF266 !267 272 IF(lwm) WRITE( numond, namctl ) 268 273 ! … … 312 317 IF( lk_c1d ) CALL c1d_init ! 1D column configuration 313 318 CALL dom_init( Nbb, Nnn, Naa, "OPA") ! Domain 314 IF( ln_ctl ) CALL prt_ctl_init ! Print control 319 IF( sn_cfctl%l_prtctl ) & 320 & CALL prt_ctl_init ! Print control 315 321 316 322 CALL istate_init( Nnn, Naa ) ! ocean initial state (Dynamics and tracers) … … 351 357 !! ** Purpose : control print setting 352 358 !! 353 !! ** Method : - print namctl information and check some consistencies359 !! ** Method : - print namctl and namcfg information and check some consistencies 354 360 !!---------------------------------------------------------------------- 355 361 ! … … 359 365 WRITE(numout,*) '~~~~~~~~' 360 366 WRITE(numout,*) ' Namelist namctl' 361 WRITE(numout,*) ' run control (for debugging) ln_ctl = ', ln_ctl 367 WRITE(numout,*) ' sn_cfctl%l_glochk = ', sn_cfctl%l_glochk 368 WRITE(numout,*) ' sn_cfctl%l_allon = ', sn_cfctl%l_allon 362 369 WRITE(numout,*) ' finer control over o/p sn_cfctl%l_config = ', sn_cfctl%l_config 363 370 WRITE(numout,*) ' sn_cfctl%l_runstat = ', sn_cfctl%l_runstat … … 365 372 WRITE(numout,*) ' sn_cfctl%l_oceout = ', sn_cfctl%l_oceout 366 373 WRITE(numout,*) ' sn_cfctl%l_layout = ', sn_cfctl%l_layout 367 WRITE(numout,*) ' sn_cfctl%l_mppout = ', sn_cfctl%l_mppout 368 WRITE(numout,*) ' sn_cfctl%l_mpptop = ', sn_cfctl%l_mpptop 374 WRITE(numout,*) ' sn_cfctl%l_prtctl = ', sn_cfctl%l_prtctl 375 WRITE(numout,*) ' sn_cfctl%l_prttrc = ', sn_cfctl%l_prttrc 376 WRITE(numout,*) ' sn_cfctl%l_oasout = ', sn_cfctl%l_oasout 369 377 WRITE(numout,*) ' sn_cfctl%procmin = ', sn_cfctl%procmin 370 378 WRITE(numout,*) ' sn_cfctl%procmax = ', sn_cfctl%procmax … … 404 412 ! ! Parameter control 405 413 ! 406 IF( ln_ctl ) THEN! sub-domain area indices for the control prints414 IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN ! sub-domain area indices for the control prints 407 415 IF( lk_mpp .AND. jpnij > 1 ) THEN 408 416 isplt = jpni ; jsplt = jpnj ; ijsplt = jpni*jpnj ! the domain is forced to the real split domain … … 516 524 sn_cfctl%l_oceout = setto 517 525 sn_cfctl%l_layout = setto 518 sn_cfctl%l_mppout = setto 519 sn_cfctl%l_mpptop = setto 526 sn_cfctl%l_prtctl = setto 527 sn_cfctl%l_prttrc = setto 528 sn_cfctl%l_oasout = setto 520 529 END SUBROUTINE nemo_set_cfctl 521 530 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAO/nemogcm.F90
r11960 r12236 91 91 INTEGER :: ios, ilocal_comm ! local integer 92 92 ! 93 NAMELIST/namctl/ ln_ctl , sn_cfctl, nn_print, nn_ictls, nn_ictle,&93 NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle, & 94 94 & nn_isplt , nn_jsplt, nn_jctls, nn_jctle, & 95 95 & ln_timing, ln_diacfl … … 142 142 ! 143 143 ! !--------------------! 144 ! ! Open listing units ! -> need ln_ctl from namctl to define lwp144 ! ! Open listing units ! -> need sn_cfctl from namctl to define lwp 145 145 ! !--------------------! 146 146 ! … … 150 150 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist' ) 151 151 ! 152 lwp = (narea == 1) .OR. ln_ctl ! control of all listing output print 152 ! finalize the definition of namctl variables 153 IF( sn_cfctl%l_allon ) THEN 154 ! Turn on all options. 155 CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. ) 156 ! Ensure all processors are active 157 sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1 158 ELSEIF( sn_cfctl%l_config ) THEN 159 ! Activate finer control of report outputs 160 ! optionally switch off output from selected areas (note this only 161 ! applies to output which does not involve global communications) 162 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. & 163 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) & 164 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 165 ELSE 166 ! turn off all options. 167 CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. ) 168 ENDIF 169 ! 170 lwp = (narea == 1) .OR. sn_cfctl%l_oceout ! control of all listing output print 153 171 ! 154 172 IF(lwp) THEN ! open listing units … … 182 200 ENDIF 183 201 ! 184 ! finalize the definition of namctl variables185 IF( sn_cfctl%l_config ) THEN186 ! Activate finer control of report outputs187 ! optionally switch off output from selected areas (note this only188 ! applies to output which does not involve global communications)189 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. &190 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) &191 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )192 ELSE193 ! Use ln_ctl to turn on or off all options.194 CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )195 ENDIF196 !197 202 IF(lwm) WRITE( numond, namctl ) 198 203 ! … … 237 242 238 243 239 IF( ln_ctl ) CALL prt_ctl_init ! Print control 240 241 CALL istate_init ! ocean initial state (Dynamics and tracers) 244 IF( sn_cfctl%l_prtctl ) & 245 & CALL prt_ctl_init ! Print control 246 247 CALL istate_init ! ocean initial state (Dynamics and tracers) 242 248 END SUBROUTINE nemo_init 243 249 … … 249 255 !! ** Purpose : control print setting 250 256 !! 251 !! ** Method : - print namctl information and check some consistencies257 !! ** Method : - print namctl and namcfg information and check some consistencies 252 258 !!---------------------------------------------------------------------- 253 259 ! … … 257 263 WRITE(numout,*) '~~~~~~~~' 258 264 WRITE(numout,*) ' Namelist namctl' 259 WRITE(numout,*) ' run control (for debugging) ln_ctl = ', ln_ctl 265 WRITE(numout,*) ' sn_cfctl%l_glochk = ', sn_cfctl%l_glochk 266 WRITE(numout,*) ' sn_cfctl%l_allon = ', sn_cfctl%l_allon 260 267 WRITE(numout,*) ' finer control over o/p sn_cfctl%l_config = ', sn_cfctl%l_config 261 268 WRITE(numout,*) ' sn_cfctl%l_runstat = ', sn_cfctl%l_runstat … … 263 270 WRITE(numout,*) ' sn_cfctl%l_oceout = ', sn_cfctl%l_oceout 264 271 WRITE(numout,*) ' sn_cfctl%l_layout = ', sn_cfctl%l_layout 265 WRITE(numout,*) ' sn_cfctl%l_mppout = ', sn_cfctl%l_mppout 266 WRITE(numout,*) ' sn_cfctl%l_mpptop = ', sn_cfctl%l_mpptop 272 WRITE(numout,*) ' sn_cfctl%l_prtctl = ', sn_cfctl%l_prtctl 273 WRITE(numout,*) ' sn_cfctl%l_prttrc = ', sn_cfctl%l_prttrc 274 WRITE(numout,*) ' sn_cfctl%l_oasout = ', sn_cfctl%l_oasout 267 275 WRITE(numout,*) ' sn_cfctl%procmin = ', sn_cfctl%procmin 268 276 WRITE(numout,*) ' sn_cfctl%procmax = ', sn_cfctl%procmax … … 302 310 ! ! Parameter control 303 311 ! 304 IF( ln_ctl ) THEN! sub-domain area indices for the control prints312 IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN ! sub-domain area indices for the control prints 305 313 IF( lk_mpp .AND. jpnij > 1 ) THEN 306 314 isplt = jpni ; jsplt = jpnj ; ijsplt = jpni*jpnj ! the domain is forced to the real split domain … … 418 426 sn_cfctl%l_oceout = setto 419 427 sn_cfctl%l_layout = setto 420 sn_cfctl%l_mppout = setto 421 sn_cfctl%l_mpptop = setto 428 sn_cfctl%l_prtctl = setto 429 sn_cfctl%l_prttrc = setto 430 sn_cfctl%l_oasout = setto 422 431 END SUBROUTINE nemo_set_cfctl 423 432 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/daymod.F90
r10068 r12236 275 275 IF( nsec_week > 7*nsecd ) nsec_week = ndt05 ! New week 276 276 277 IF( ln_ctl) THEN277 IF(sn_cfctl%l_prtctl) THEN 278 278 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 279 279 CALL prt_ctl_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/nemogcm.F90
r11960 r12236 198 198 INTEGER :: ios, ilocal_comm ! local integers 199 199 !! 200 NAMELIST/namctl/ ln_ctl , sn_cfctl, nn_print, nn_ictls, nn_ictle,&200 NAMELIST/namctl/ sn_cfctl, nn_print, nn_ictls, nn_ictle, & 201 201 & nn_isplt , nn_jsplt, nn_jctls, nn_jctle, & 202 202 & ln_timing, ln_diacfl … … 259 259 ! 260 260 ! !--------------------! 261 ! ! Open listing units ! -> need ln_ctl from namctl to define lwp261 ! ! Open listing units ! -> need sn_cfctl from namctl to define lwp 262 262 ! !--------------------! 263 263 ! … … 267 267 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namctl in configuration namelist' ) 268 268 ! 269 lwp = (narea == 1) .OR. ln_ctl ! control of all listing output print 269 ! finalize the definition of namctl variables 270 IF( sn_cfctl%l_allon ) THEN 271 ! Turn on all options. 272 CALL nemo_set_cfctl( sn_cfctl, .TRUE., .TRUE. ) 273 ! Ensure all processors are active 274 sn_cfctl%procmin = 0 ; sn_cfctl%procmax = 1000000 ; sn_cfctl%procincr = 1 275 ELSEIF( sn_cfctl%l_config ) THEN 276 ! Activate finer control of report outputs 277 ! optionally switch off output from selected areas (note this only 278 ! applies to output which does not involve global communications) 279 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. & 280 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) & 281 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. ) 282 ELSE 283 ! turn off all options. 284 CALL nemo_set_cfctl( sn_cfctl, .FALSE., .TRUE. ) 285 ENDIF 286 ! 287 lwp = (narea == 1) .OR. sn_cfctl%l_oceout ! control of all listing output print 270 288 ! 271 289 IF(lwp) THEN ! open listing units … … 302 320 ! 303 321 ENDIF 304 !305 ! finalize the definition of namctl variables306 IF( sn_cfctl%l_config ) THEN307 ! Activate finer control of report outputs308 ! optionally switch off output from selected areas (note this only309 ! applies to output which does not involve global communications)310 IF( ( narea < sn_cfctl%procmin .OR. narea > sn_cfctl%procmax ) .OR. &311 & ( MOD( narea - sn_cfctl%procmin, sn_cfctl%procincr ) /= 0 ) ) &312 & CALL nemo_set_cfctl( sn_cfctl, .FALSE., .FALSE. )313 ELSE314 ! Use ln_ctl to turn on or off all options.315 CALL nemo_set_cfctl( sn_cfctl, ln_ctl, .TRUE. )316 ENDIF317 322 ! 318 323 IF(lwm) WRITE( numond, namctl ) … … 359 364 CALL eos_init ! Equation of seawater 360 365 CALL dom_init( Nbb, Nnn, Naa, 'SAS') ! Domain 361 IF( ln_ctl ) CALL prt_ctl_init ! Print control 366 IF( sn_cfctl%l_prtctl ) & 367 & CALL prt_ctl_init ! Print control 362 368 363 369 CALL day_init ! model calendar (using both namelist and restart infos) … … 387 393 !! ** Purpose : control print setting 388 394 !! 389 !! ** Method : - print namctl information and check some consistencies395 !! ** Method : - print namctl and namcfg information and check some consistencies 390 396 !!---------------------------------------------------------------------- 391 397 ! … … 395 401 WRITE(numout,*) '~~~~~~~~' 396 402 WRITE(numout,*) ' Namelist namctl' 397 WRITE(numout,*) ' run control (for debugging) ln_ctl = ', ln_ctl 403 WRITE(numout,*) ' sn_cfctl%l_glochk = ', sn_cfctl%l_glochk 404 WRITE(numout,*) ' sn_cfctl%l_allon = ', sn_cfctl%l_allon 398 405 WRITE(numout,*) ' finer control over o/p sn_cfctl%l_config = ', sn_cfctl%l_config 399 406 WRITE(numout,*) ' sn_cfctl%l_runstat = ', sn_cfctl%l_runstat … … 401 408 WRITE(numout,*) ' sn_cfctl%l_oceout = ', sn_cfctl%l_oceout 402 409 WRITE(numout,*) ' sn_cfctl%l_layout = ', sn_cfctl%l_layout 403 WRITE(numout,*) ' sn_cfctl%l_mppout = ', sn_cfctl%l_mppout 404 WRITE(numout,*) ' sn_cfctl%l_mpptop = ', sn_cfctl%l_mpptop 410 WRITE(numout,*) ' sn_cfctl%l_prtctl = ', sn_cfctl%l_prtctl 411 WRITE(numout,*) ' sn_cfctl%l_prttrc = ', sn_cfctl%l_prttrc 412 WRITE(numout,*) ' sn_cfctl%l_oasout = ', sn_cfctl%l_oasout 405 413 WRITE(numout,*) ' sn_cfctl%procmin = ', sn_cfctl%procmin 406 414 WRITE(numout,*) ' sn_cfctl%procmax = ', sn_cfctl%procmax … … 440 448 ! ! Parameter control 441 449 ! 442 IF( ln_ctl ) THEN! sub-domain area indices for the control prints450 IF( sn_cfctl%l_prtctl .OR. sn_cfctl%l_prttrc ) THEN ! sub-domain area indices for the control prints 443 451 IF( lk_mpp .AND. jpnij > 1 ) THEN 444 452 isplt = jpni ; jsplt = jpnj ; ijsplt = jpni*jpnj ! the domain is forced to the real split domain … … 560 568 sn_cfctl%l_oceout = setto 561 569 sn_cfctl%l_layout = setto 562 sn_cfctl%l_mppout = setto 563 sn_cfctl%l_mpptop = setto 570 sn_cfctl%l_prtctl = setto 571 sn_cfctl%l_prttrc = setto 572 sn_cfctl%l_oasout = setto 564 573 END SUBROUTINE nemo_set_cfctl 565 574 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/sbcssm.F90
r11960 r12236 133 133 vv (:,:,1,Kbb) = ssv_m(:,:) 134 134 135 IF( ln_ctl) THEN! print control135 IF(sn_cfctl%l_prtctl) THEN ! print control 136 136 CALL prt_ctl(tab2d_1=sst_m, clinfo1=' sst_m - : ', mask1=tmask ) 137 137 CALL prt_ctl(tab2d_1=sss_m, clinfo1=' sss_m - : ', mask1=tmask ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/SAS/stpctl.F90
r10603 r12236 63 63 ! 64 64 ll_wrtstp = ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) 65 ll_colruns = ll_wrtstp .AND. ( ln_ctl .OR.sn_cfctl%l_runstat )65 ll_colruns = ll_wrtstp .AND. ( sn_cfctl%l_runstat ) 66 66 ll_wrtruns = ll_colruns .AND. lwm 67 67 IF( kt == nit000 .AND. lwp ) THEN … … 73 73 ! ! open run.stat file(s) at start whatever 74 74 ! ! the value of sn_cfctl%ptimincr 75 IF( lwm .AND. ( ln_ctl .OR.sn_cfctl%l_runstat ) ) THEN75 IF( lwm .AND. ( sn_cfctl%l_runstat ) ) THEN 76 76 CALL ctl_opn( numrun, 'run.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 77 77 clname = 'run.stat.nc' -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P2Z/p2zbio.F90
r11960 r12236 368 368 ENDIF 369 369 370 IF( ln_ctl) THEN ! print mean trends (used for debugging)370 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 371 371 WRITE(charout, FMT="('bio')") 372 372 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P2Z/p2zexp.F90
r11949 r12236 147 147 ENDIF 148 148 ! 149 IF( ln_ctl) THEN ! print mean trends (used for debugging)149 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 150 150 WRITE(charout, FMT="('exp')") 151 151 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P2Z/p2zopt.F90
r11960 r12236 134 134 135 135 136 IF( ln_ctl) THEN ! print mean trends (used for debugging)136 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 137 137 WRITE(charout, FMT="('opt')") 138 138 CALL prt_ctl_trc_info( charout ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P2Z/p2zsed.F90
r11960 r12236 108 108 ! 109 109 110 IF( ln_ctl) THEN ! print mean trends (used for debugging)110 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 111 111 WRITE(charout, FMT="('sed')") 112 112 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zagg.F90
r11949 r12236 174 174 ENDIF 175 175 ! 176 IF( ln_ctl) THEN ! print mean trends (used for debugging)176 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 177 177 WRITE(charout, FMT="('agg')") 178 178 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbio.F90
r11949 r12236 107 107 & CALL p4z_ligand( kt, knt, Kbb, Krhs ) 108 108 ! ! 109 IF( ln_ctl) THEN ! print mean trends (used for debugging)109 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 110 110 WRITE(charout, FMT="('bio ')") 111 111 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zfechem.F90
r12193 r12236 221 221 ENDIF 222 222 223 IF( ln_ctl) THEN ! print mean trends (used for debugging)223 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 224 224 WRITE(charout, FMT="('fechem')") 225 225 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90
r12193 r12236 180 180 t_atm_co2_flx = atcco2 ! Total atmospheric pCO2 181 181 182 IF( ln_ctl) THEN ! print mean trends (used for debugging)182 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 183 183 WRITE(charout, FMT="('flx ')") 184 184 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zligand.F90
r11960 r12236 95 95 ENDIF 96 96 ! 97 IF( ln_ctl) THEN ! print mean trends (used for debugging)97 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 98 98 WRITE(charout, FMT="('ligand1')") 99 99 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlys.F90
r11960 r12236 130 130 ENDIF 131 131 ! 132 IF( ln_ctl) THEN ! print mean trends (used for debugging)132 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 133 133 WRITE(charout, FMT="('lys ')") 134 134 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmeso.F90
r11960 r12236 256 256 IF (ln_ligand) DEALLOCATE( zz2ligprod ) 257 257 ! 258 IF( ln_ctl) THEN ! print mean trends (used for debugging)258 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 259 259 WRITE(charout, FMT="('meso')") 260 260 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmicro.F90
r11960 r12236 208 208 IF (ln_ligand) DEALLOCATE( zzligprod ) 209 209 ! 210 IF( ln_ctl) THEN ! print mean trends (used for debugging)210 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 211 211 WRITE(charout, FMT="('micro')") 212 212 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmort.F90
r11960 r12236 120 120 END DO 121 121 ! 122 IF( ln_ctl) THEN ! print mean trends (used for debugging)122 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 123 123 WRITE(charout, FMT="('nano')") 124 124 CALL prt_ctl_trc_info(charout) … … 196 196 END DO 197 197 ! 198 IF( ln_ctl) THEN ! print mean trends (used for debugging)198 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 199 199 WRITE(charout, FMT="('diat')") 200 200 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zpoc.F90
r11960 r12236 249 249 ENDIF 250 250 251 IF( ln_ctl) THEN ! print mean trends (used for debugging)251 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 252 252 WRITE(charout, FMT="('poc1')") 253 253 CALL prt_ctl_trc_info(charout) … … 461 461 ENDIF 462 462 463 IF( ln_ctl) THEN ! print mean trends (used for debugging)463 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 464 464 WRITE(charout, FMT="('poc2')") 465 465 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zprod.F90
r11960 r12236 457 457 ENDIF 458 458 459 IF( ln_ctl) THEN ! print mean trends (used for debugging)459 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 460 460 WRITE(charout, FMT="('prod')") 461 461 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zrem.F90
r11960 r12236 208 208 END DO 209 209 210 IF( ln_ctl) THEN ! print mean trends (used for debugging)210 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 211 211 WRITE(charout, FMT="('rem1')") 212 212 CALL prt_ctl_trc_info(charout) … … 234 234 END DO 235 235 236 IF( ln_ctl) THEN ! print mean trends (used for debugging)236 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 237 237 WRITE(charout, FMT="('rem2')") 238 238 CALL prt_ctl_trc_info(charout) … … 269 269 END DO 270 270 271 IF( ln_ctl) THEN ! print mean trends (used for debugging)271 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 272 272 WRITE(charout, FMT="('rem3')") 273 273 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90
r12193 r12236 349 349 ENDIF 350 350 ! 351 IF( ln_ctl) THEN ! print mean trends (USEd for debugging)351 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (USEd for debugging) 352 352 WRITE(charout, fmt="('sed ')") 353 353 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsink.F90
r11949 r12236 173 173 ENDIF 174 174 ! 175 IF( ln_ctl) THEN ! print mean trends (used for debugging)175 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 176 176 WRITE(charout, FMT="('sink')") 177 177 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmeso.F90
r11960 r12236 377 377 ENDIF 378 378 ! 379 IF( ln_ctl) THEN ! print mean trends (used for debugging)379 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 380 380 WRITE(charout, FMT="('meso')") 381 381 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmicro.F90
r11960 r12236 319 319 ENDIF 320 320 ! 321 IF( ln_ctl) THEN ! print mean trends (used for debugging)321 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 322 322 WRITE(charout, FMT="('micro')") 323 323 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmort.F90
r11960 r12236 121 121 END DO 122 122 ! 123 IF( ln_ctl) THEN ! print mean trends (used for debugging)123 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 124 124 WRITE(charout, FMT="('nano')") 125 125 CALL prt_ctl_trc_info(charout) … … 183 183 END DO 184 184 ! 185 IF( ln_ctl) THEN ! print mean trends (used for debugging)185 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 186 186 WRITE(charout, FMT="('pico')") 187 187 CALL prt_ctl_trc_info(charout) … … 262 262 END DO 263 263 ! 264 IF( ln_ctl) THEN ! print mean trends (used for debugging)264 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 265 265 WRITE(charout, FMT="('diat')") 266 266 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zprod.F90
r11960 r12236 555 555 ENDIF 556 556 557 IF( ln_ctl) THEN ! print mean trends (used for debugging)557 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 558 558 WRITE(charout, FMT="('prod')") 559 559 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/SED/trcdmp_sed.F90
r11949 r12236 107 107 ! 108 108 ! ! print mean trends (used for debugging) 109 IF( ln_ctl) THEN109 IF( sn_cfctl%l_prttrc ) THEN 110 110 WRITE(charout, FMT="('dmp ')") 111 111 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcadv.F90
r11960 r12236 137 137 END SELECT 138 138 ! 139 IF( ln_ctl ) THEN!== print mean trends (used for debugging)139 IF( sn_cfctl%l_prttrc ) THEN !== print mean trends (used for debugging) 140 140 WRITE(charout, FMT="('adv ')") 141 141 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcatf.F90
r11949 r12236 170 170 IF( l_trdtrc ) DEALLOCATE( ztrdt ) 171 171 ! 172 IF( ln_ctl) THEN ! print mean trends (used for debugging)172 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 173 173 WRITE(charout, FMT="('nxt')") 174 174 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcbbl.F90
r11949 r12236 69 69 ! 70 70 CALL tra_bbl_dif( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm ) 71 IF( ln_ctl) THEN71 IF( sn_cfctl%l_prttrc ) THEN 72 72 WRITE(charout, FMT="(' bbl_dif')") ; CALL prt_ctl_trc_info(charout) 73 73 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) … … 80 80 ! 81 81 CALL tra_bbl_adv( ptr(:,:,:,:,Kbb), ptr(:,:,:,:,Krhs), jptra, Kmm ) 82 IF( ln_ctl) THEN82 IF( sn_cfctl%l_prttrc ) THEN 83 83 WRITE(charout, FMT="(' bbl_adv')") ; CALL prt_ctl_trc_info(charout) 84 84 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcdmp.F90
r11960 r12236 158 158 IF( l_trdtrc ) DEALLOCATE( ztrtrd ) 159 159 ! ! print mean trends (used for debugging) 160 IF( ln_ctl) THEN160 IF( sn_cfctl%l_prttrc ) THEN 161 161 WRITE(charout, FMT="('dmp ')") 162 162 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcldf.F90
r11960 r12236 116 116 ENDIF 117 117 ! 118 IF( ln_ctl ) THEN! print mean trends (used for debugging)118 IF( sn_cfctl%l_prttrc ) THEN ! print mean trends (used for debugging) 119 119 WRITE(charout, FMT="('ldf ')") 120 120 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcrad.F90
r11960 r12236 68 68 IF( ln_my_trc ) CALL trc_rad_sms( kt, Kbb, Kmm, ptr, jp_myt0, jp_myt1 ) ! MY_TRC model 69 69 ! 70 IF( ln_ctl) THEN ! print mean trends (used for debugging)70 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 71 71 WRITE(charout, FMT="('rad')") 72 72 CALL prt_ctl_trc_info( charout ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trcsbc.F90
r11949 r12236 193 193 ENDIF 194 194 ! 195 IF( ln_ctl) THEN195 IF( sn_cfctl%l_prttrc ) THEN 196 196 WRITE(charout, FMT="('sbc ')") ; CALL prt_ctl_trc_info(charout) 197 197 CALL prt_ctl_trc( tab4d=ptr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/TRP/trczdf.F90
r11949 r12236 67 67 ENDIF 68 68 ! ! print mean trends (used for debugging) 69 IF( ln_ctl) THEN69 IF( sn_cfctl%l_prttrc ) THEN 70 70 WRITE(charout, FMT="('zdf ')") 71 71 CALL prt_ctl_trc_info(charout) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/prtctl_trc.F90
r10570 r12236 35 35 SUBROUTINE prt_ctl_trc( tab4d, mask, clinfo, ovlap, kdim, clinfo2 ) 36 36 !!---------------------------------------------------------------------- 37 !! *** ROUTINE prt_ctl ***37 !! *** ROUTINE prt_ctl_trc *** 38 38 !! 39 39 !! ** Purpose : - print sum control 3D arrays over the same area … … 41 41 !! debugging a new parametrization in mono or mpp. 42 42 !! 43 !! ** Method : 2 possibilities exist when setting the ln_ctlparameter to43 !! ** Method : 2 possibilities exist when setting the sn_cfctl%prttrc parameter to 44 44 !! .true. in the ocean namelist: 45 45 !! - to debug a MPI run .vs. a mono-processor one; … … 54 54 !! - All arguments of the above calling sequence are optional so their 55 55 !! name must be explicitly typed if used. For instance if the mask 56 !! array tmask(:,:,:) must be passed through the prt_ctl subroutine,57 !! it must look s like: CALL prt_ctl( mask=tmask ).56 !! array tmask(:,:,:) must be passed through the prt_ctl_trc subroutine, 57 !! it must look like: CALL prt_ctl_trc( mask=tmask ). 58 58 !!---------------------------------------------------------------------- 59 59 REAL(wp) , DIMENSION(:,:,:,:), INTENT(in), OPTIONAL :: tab4d ! 4D array -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcini.F90
r12193 r12236 140 140 ENDIF 141 141 IF(lwp) WRITE(numout,*) 142 IF( ln_ctl) THEN ! print mean trends (used for debugging)142 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 143 143 CALL prt_ctl_trc_init 144 144 WRITE(charout, FMT="('ini ')") -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcsms.F90
r11949 r12236 56 56 IF( ln_my_trc ) CALL trc_sms_my_trc ( kt, Kbb, Kmm, Krhs ) ! MY_TRC tracers 57 57 58 IF( ln_ctl) THEN! print mean trends (used for debugging)58 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 59 59 WRITE(charout, FMT="('sms ')") 60 60 CALL prt_ctl_trc_info( charout ) -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/trcstp.F90
r12041 r12236 70 70 ENDIF 71 71 ! 72 ll_trcstat = ( ln_ctl .OR.sn_cfctl%l_trcstat ) .AND. &72 ll_trcstat = ( sn_cfctl%l_trcstat ) .AND. & 73 73 & ( ( MOD( kt, sn_cfctl%ptimincr ) == 0 ) .OR. ( kt == nitend ) ) 74 74 IF( kt == nittrc000 .AND. lk_trdmxl_trc ) CALL trd_mxl_trc_init ! trends: Mixed-layer … … 78 78 cvol(:,:,jk) = e1e2t(:,:) * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 79 79 END DO 80 IF ( l n_ctl .OR. kt == nitrst .OR. ( ln_check_mass .AND. kt == nitend )&80 IF ( ll_trcstat .OR. kt == nitrst .OR. ( ln_check_mass .AND. kt == nitend ) & 81 81 & .OR. iom_use( "pno3tot" ) .OR. iom_use( "ppo4tot" ) .OR. iom_use( "psiltot" ) & 82 82 & .OR. iom_use( "palktot" ) .OR. iom_use( "pfertot" ) ) & … … 87 87 ! 88 88 ! 89 IF( ln_ctl) THEN89 IF(sn_cfctl%l_prttrc) THEN 90 90 WRITE(charout,FMT="('kt =', I4,' d/m/y =',I2,I2,I4)") kt, nday, nmonth, nyear 91 91 CALL prt_ctl_trc_info(charout)
Note: See TracChangeset
for help on using the changeset viewer.