Changeset 12080 for utils/tools/SIREN/src/logger.f90
- Timestamp:
- 2019-12-06T10:30:14+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/tools/SIREN/src/logger.f90
r9598 r12080 2 2 ! NEMO system team, System and Interface for oceanic RElocable Nesting 3 3 !---------------------------------------------------------------------- 4 !5 ! MODULE: logger6 4 ! 7 5 ! DESCRIPTION: … … 128 126 !> CALL logger_clean() 129 127 !> @endcode 130 ! 128 !> 131 129 !> @author 132 130 !> J.Paul 133 ! REVISION HISTORY:131 !> 134 132 !> @date November, 2013 - Initial Version 135 133 !> @date February, 2015 … … 139 137 !> - add logger_clean subroutine 140 138 !> 141 !> @note Software governed by the CeCILL licence ( ./LICENSE)139 !> @note Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 142 140 !---------------------------------------------------------------------- 143 141 MODULE logger 142 144 143 USE kind ! F90 kind parameter 145 144 USE fct ! basic useful function … … 196 195 197 196 CONTAINS 197 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 SUBROUTINE logger_open(cd_file, cd_verbosity, id_maxerror, id_logid) 198 199 !------------------------------------------------------------------- 199 200 !> @brief This subroutine create a log file with default verbosity … … 206 207 !> @author J.Paul 207 208 !> @date November, 2013 - Initial Version 208 ! 209 !> 209 210 !> @param[in] cd_file log file name 210 211 !> @param[in] cd_verbosity log file verbosity … … 212 213 !> @param[in] id_logid log file id (use to flush) 213 214 !------------------------------------------------------------------- 214 SUBROUTINE logger_open(cd_file, cd_verbosity, id_maxerror, id_logid) 215 IMPLICIT NONE 215 216 IMPLICIT NONE 217 216 218 ! Argument 217 219 CHARACTER(len=*), INTENT(IN) :: cd_file ! log file name … … 278 280 279 281 END SUBROUTINE logger_open 282 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 SUBROUTINE logger_close() 280 284 !------------------------------------------------------------------- 281 285 !> @brief This subroutine close a log file. … … 284 288 !> @date November, 2013 - Initial Version 285 289 !------------------------------------------------------------------- 286 SUBROUTINE logger_close() 287 IMPLICIT NONE 290 291 IMPLICIT NONE 292 288 293 ! local variable 289 294 INTEGER(i4) :: il_status 290 295 !---------------------------------------------------------------- 296 291 297 IF( tm_logger%l_use )THEN 292 298 IF( tm_logger%i_id /= 0 )THEN … … 303 309 304 310 END SUBROUTINE logger_close 311 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 SUBROUTINE logger_clean() 305 313 !------------------------------------------------------------------- 306 314 !> @brief This subroutine clean a log structure. … … 309 317 !> @date January, 2016 - Initial Version 310 318 !------------------------------------------------------------------- 311 SUBROUTINE logger_clean() 312 IMPLICIT NONE 319 320 IMPLICIT NONE 321 313 322 ! local variable 314 323 TYPE(TLOGGER) :: tl_logger 315 324 !---------------------------------------------------------------- 325 316 326 tm_logger = tl_logger 317 327 318 328 END SUBROUTINE logger_clean 329 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 319 330 !------------------------------------------------------------------- 320 331 !> @brief This subroutine flushing output into log file. … … 324 335 !------------------------------------------------------------------- 325 336 SUBROUTINE logger_flush() 326 IMPLICIT NONE 327 !---------------------------------------------------------------- 337 338 IMPLICIT NONE 339 340 !---------------------------------------------------------------- 341 328 342 IF( tm_logger%l_use )THEN 329 343 IF( tm_logger%i_id /= 0 )THEN … … 339 353 340 354 END SUBROUTINE logger_flush 355 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 RECURSIVE SUBROUTINE logger_header() 341 357 !------------------------------------------------------------------- 342 358 !> @brief This subroutine write header on log file. … … 345 361 !> @date November, 2013 - Initial Version 346 362 !------------------------------------------------------------------- 347 RECURSIVE SUBROUTINE logger_header() 348 IMPLICIT NONE 363 364 IMPLICIT NONE 365 349 366 ! local variable 350 367 INTEGER(i4) :: il_status 351 368 !---------------------------------------------------------------- 369 352 370 IF( tm_logger%l_use )THEN 353 371 IF( tm_logger%i_id /= 0 )THEN … … 368 386 369 387 END SUBROUTINE logger_header 388 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 389 SUBROUTINE logger_footer() 370 390 !------------------------------------------------------------------- 371 391 !> @brief This subroutine write footer on log file. … … 374 394 !> @date November, 2013 - Initial Version 375 395 !------------------------------------------------------------------- 376 SUBROUTINE logger_footer() 377 IMPLICIT NONE 396 397 IMPLICIT NONE 398 378 399 ! local variable 379 400 INTEGER(i4) :: il_status 380 401 !---------------------------------------------------------------- 402 381 403 IF( tm_logger%l_use )THEN 382 404 IF( tm_logger%i_id /= 0 )THEN … … 398 420 ENDIF 399 421 ENDIF 422 400 423 END SUBROUTINE logger_footer 424 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 425 SUBROUTINE logger_trace(cd_msg, ld_flush) 401 426 !------------------------------------------------------------------- 402 427 !> @brief This subroutine write trace message on log file. … … 406 431 !> @author J.Paul 407 432 !> @date November, 2013 - Initial Version 408 ! 433 !> 409 434 !> @param[in] cd_msg message to write 410 435 !> @param[in] ld_flush flushing ouput 411 436 !------------------------------------------------------------------- 412 SUBROUTINE logger_trace(cd_msg, ld_flush) 413 IMPLICIT NONE 437 438 IMPLICIT NONE 439 414 440 ! Argument 415 441 CHARACTER(LEN=*), INTENT(IN) :: cd_msg 416 442 LOGICAL, INTENT(IN), OPTIONAL :: ld_flush 417 443 !---------------------------------------------------------------- 444 418 445 IF( tm_logger%l_use )THEN 419 446 IF( tm_logger%i_id /= 0 )THEN … … 434 461 ENDIF 435 462 ENDIF 463 436 464 END SUBROUTINE logger_trace 465 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 SUBROUTINE logger_debug(cd_msg, ld_flush) 437 467 !------------------------------------------------------------------- 438 468 !> @brief This subroutine write debug message on log file. … … 442 472 !> @author J.Paul 443 473 !> @date November, 2013 - Initial Version 444 ! 474 !> 445 475 !> @param[in] cd_msg message to write 446 476 !> @param[in] ld_flush flushing ouput 447 477 !------------------------------------------------------------------- 448 SUBROUTINE logger_debug(cd_msg, ld_flush) 449 IMPLICIT NONE 478 479 IMPLICIT NONE 480 450 481 ! Argument 451 482 CHARACTER(LEN=*), INTENT(IN) :: cd_msg 452 483 LOGICAL, INTENT(IN), OPTIONAL :: ld_flush 453 484 !---------------------------------------------------------------- 485 454 486 IF( tm_logger%l_use )THEN 455 487 IF( tm_logger%i_id /= 0 )THEN … … 470 502 ENDIF 471 503 ENDIF 504 472 505 END SUBROUTINE logger_debug 506 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 SUBROUTINE logger_info(cd_msg, ld_flush) 473 508 !------------------------------------------------------------------- 474 509 !> @brief This subroutine write info message on log file. … … 478 513 !> @author J.Paul 479 514 !> @date November, 2013 - Initial Version 480 ! 515 !> 481 516 !> @param[in] cd_msg message to write 482 517 !> @param[in] ld_flush flushing ouput 483 518 !------------------------------------------------------------------- 484 SUBROUTINE logger_info(cd_msg, ld_flush) 485 IMPLICIT NONE 519 520 IMPLICIT NONE 521 486 522 ! Argument 487 523 CHARACTER(LEN=*), INTENT(IN) :: cd_msg 488 524 LOGICAL, INTENT(IN), OPTIONAL :: ld_flush 489 525 !---------------------------------------------------------------- 526 490 527 IF( tm_logger%l_use )THEN 491 528 IF( tm_logger%i_id /= 0 )THEN … … 507 544 ENDIF 508 545 END SUBROUTINE logger_info 546 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 547 SUBROUTINE logger_warn(cd_msg, ld_flush) 509 548 !------------------------------------------------------------------- 510 549 !> @brief This subroutine write warning message on log file. … … 514 553 !> @author J.Paul 515 554 !> @date November, 2013 - Initial Version 516 ! 555 !> 517 556 !> @param[in] cd_msg message to write 518 557 !> @param[in] ld_flush flushing ouput 519 558 !------------------------------------------------------------------- 520 SUBROUTINE logger_warn(cd_msg, ld_flush) 521 IMPLICIT NONE 559 560 IMPLICIT NONE 561 522 562 ! Argument 523 563 CHARACTER(LEN=*), INTENT(IN) :: cd_msg 524 564 LOGICAL, INTENT(IN), OPTIONAL :: ld_flush 525 565 !---------------------------------------------------------------- 566 526 567 IF( tm_logger%l_use )THEN 527 568 IF( tm_logger%i_id /= 0 )THEN … … 542 583 ENDIF 543 584 ENDIF 585 544 586 END SUBROUTINE logger_warn 587 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 588 SUBROUTINE logger_error(cd_msg, ld_flush) 545 589 !------------------------------------------------------------------- 546 590 !> @brief This subroutine write error message on log file. … … 550 594 !> @author J.Paul 551 595 !> @date November, 2013 - Initial Version 552 ! 596 !> 553 597 !> @param[in] cd_msg message to write 554 598 !> @param[in] ld_flush flushing ouput 555 599 !------------------------------------------------------------------- 556 SUBROUTINE logger_error(cd_msg, ld_flush) 557 IMPLICIT NONE 600 601 IMPLICIT NONE 602 558 603 ! Argument 559 604 CHARACTER(LEN=*), INTENT(IN) :: cd_msg … … 563 608 CHARACTER(LEN=lc) :: cl_nerror 564 609 !---------------------------------------------------------------- 610 565 611 IF( tm_logger%l_use )THEN 566 612 IF( tm_logger%i_id /= 0 )THEN … … 590 636 ENDIF 591 637 ENDIF 638 592 639 END SUBROUTINE logger_error 640 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 641 RECURSIVE SUBROUTINE logger_fatal(cd_msg) 593 642 !------------------------------------------------------------------- 594 643 !> @brief This subroutine write fatal error message on log file, … … 599 648 !> @date September, 2015 600 649 !> - stop program for FATAL ERROR if verbosity is none 601 ! 650 !> 602 651 !> @param[in] cd_msg message to write 603 652 !------------------------------------------------------------------- 604 RECURSIVE SUBROUTINE logger_fatal(cd_msg) 605 IMPLICIT NONE 653 654 IMPLICIT NONE 655 606 656 ! Argument 607 657 CHARACTER(LEN=*), INTENT(IN) :: cd_msg 608 658 !---------------------------------------------------------------- 659 609 660 IF( tm_logger%l_use )THEN 610 661 IF( tm_logger%i_id /= 0 )THEN … … 618 669 CALL logger_close() 619 670 620 WRITE(*,*) 'FATAL ERROR '671 WRITE(*,*) 'FATAL ERROR, see ',TRIM(tm_logger%c_name) 621 672 STOP 622 673 ENDIF … … 630 681 STOP 631 682 ENDIF 683 632 684 END SUBROUTINE logger_fatal 685 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 686 SUBROUTINE logger__write(cd_verb, cd_msg) 633 687 !------------------------------------------------------------------- 634 688 !> @brief This subroutine cut message to get maximum of 80 character … … 637 691 !> @author J.Paul 638 692 !> @date November, 2013 - Initial Version 639 ! 693 !> 640 694 !> @param[in] cd_verb verbosity of the message to write 641 695 !> @param[in] cd_msg message to write 642 696 !------------------------------------------------------------------- 643 SUBROUTINE logger__write(cd_verb, cd_msg) 644 IMPLICIT NONE 697 698 IMPLICIT NONE 699 645 700 ! Argument 646 701 CHARACTER(LEN=*), INTENT(IN) :: cd_verb … … 654 709 CHARACTER(LEN=lc) :: cl_msg 655 710 CHARACTER(LEN=lc) :: cl_tmp 656 657 !---------------------------------------------------------------- 711 !---------------------------------------------------------------- 712 658 713 cl_verb=TRIM(ADJUSTL(cd_verb)) 659 714 cl_msg=TRIM(ADJUSTL(cd_msg)) … … 686 741 687 742 END SUBROUTINE logger__write 743 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 FUNCTION logger__check_verb(cd_verb) & 745 & RESULT (lf_show) 688 746 !------------------------------------------------------------------- 689 747 !> @brief This function check validity of verbosity. … … 691 749 !> @author J.Paul 692 750 !> @date February, 2015 - Initial Version 693 ! 751 !> 694 752 !> @param[in] cd_verb verbosity of the message to write 695 753 !> @return verbosity is valid or not 696 754 !------------------------------------------------------------------- 697 FUNCTION logger__check_verb(cd_verb) 698 IMPLICIT NONE 699 ! Argument 700 CHARACTER(LEN=*), INTENT(IN) :: cd_verb 755 756 IMPLICIT NONE 757 758 ! Argument 759 CHARACTER(LEN=*), INTENT(IN) :: cd_verb 701 760 702 761 !function 703 LOGICAL :: logger__check_verb762 LOGICAL :: lf_show 704 763 705 764 ! local variable 706 765 ! loop indices 707 766 INTEGER(i4) :: ji 708 709 !---------------------------------------------------------------- 710 l ogger__check_verb=.FALSE.767 !---------------------------------------------------------------- 768 769 lf_show=.FALSE. 711 770 712 771 DO ji=1,im_nverbosity 713 772 IF( TRIM(cd_verb) == TRIM(cm_verbosity(ji)) )THEN 714 l ogger__check_verb=.TRUE.773 lf_show=.TRUE. 715 774 EXIT 716 775 ENDIF 717 776 ENDDO 718 777 719 IF( .NOT. l ogger__check_verb)THEN778 IF( .NOT. lf_show )THEN 720 779 CALL logger_open('logger.log') 721 780 CALL logger_header() … … 724 783 CALL logger_footer() 725 784 ENDIF 785 726 786 END FUNCTION logger__check_verb 787 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 788 END MODULE logger 728 789
Note: See TracChangeset
for help on using the changeset viewer.