Changeset 3836 for trunk/LMDZ.MARS/libf


Ignore:
Timestamp:
Jul 7, 2025, 2:46:43 PM (8 days ago)
Author:
jbclement
Message:

COMMON:
Rework related to the command-line parsing:

  • Replace ad-hoc argument parsing with a unified 'parse_args' subroutine, allowing easier extension to other programs and options across models;;
  • Use of '--version' (with ab optional output file) to print compilation/version details;
  • Addition of 'job_timelimit_mod' module to handle SLURM/PBS job time-limit via '--jobid' (currently only used in the PEM), allowing easier extension to other programs;
  • Replace manual SSO handling with 'parse_args' for the Mars start2archive;
  • Clean-up related legacy code in the programs supporting the version option.

JBC

Location:
trunk/LMDZ.MARS/libf
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/newstart.F

    r3604 r3836  
    6161     &             ini_paleoclimate_h, end_paleoclimate_h
    6262      use subslope_mola_mod, ONLY: subslope_mola
    63       use version_info_mod, only: print_version_info
     63      use parse_args_mod, only: parse_args
    6464     
    6565      implicit none
     
    213213
    214214
    215       if (command_argument_count() > 0) then ! Get the number of command-line arguments
    216           call get_command_argument(1,txt) ! Read the argument given to the program
    217           select case (trim(adjustl(txt)))
    218               case('version')
    219                   call print_version_info()
    220                   stop
    221               case default
    222                   error stop 'The argument given to the program is '
    223      &//'unknown!'
    224           end select
    225       endif
     215      ! Parse command-line options
     216      call parse_args()
    226217
    227218c sortie visu pour les champs dynamiques
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/start2archive.F

    r3576 r3836  
    4141      USE surfdat_h, ONLY: phisfi, albedodat, z0, z0_default,
    4242     &    zmea, zstd, zsig, zgam, zthe, hmons, summit, base
    43       use version_info_mod, only: print_version_info
     43      use parse_args_mod, only: parse_args, add_sso_fields
    4444
    4545      implicit none
     
    117117      REAL baseS(ip1jmp1)
    118118
    119       logical :: add_sso_fields=.false. ! default, don't include SSO fields
    120 
    121119
    122120c Variables intermediaires : vent naturel, mais pas coord scalaire
     
    149147      INTEGER nid,nid1
    150148
    151 C get command line arguments
    152 C here we assume and check that if there is an argument #1 then
    153 C it should be --add-sso to signal adding SSO fileds to start_archive.nc
    154       CALL get_command_argument(1,txt,j,ierr)
    155       ! will return ierr==0 if there is an argument #1 to command line
    156       IF (ierr==0) THEN
    157         ! Check that argument is indeed "--add-sso" or signal the error
    158         IF (trim(txt)=="--add-sso") THEN
    159           add_sso_fields=.true.
    160           write(*,*) "SSO fields will be included in start_archive"
    161         ELSE IF (trim(txt) == 'version') then
    162             call print_version_info()
    163             stop
    164         ELSE
    165           write(*,*) "start2archive error: unexpected command line "//
    166      &    "argument: ",trim(txt)
    167           write(*,*) " (only --add-sso currently accepted)"
    168           write(*,*) "Might as well stop here."
    169           stop
    170         ENDIF
    171       ENDIF ! of IF (ierr==0)
     149      ! Parse command-line options
     150      ! Option "--add-sso" adds SSO fields to "start_archive.nc"
     151      call parse_args()
    172152
    173153c-----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F90

    r3831 r3836  
    1818use init_testphys1d_mod, only: init_testphys1d
    1919use writerestart1D_mod,  only: writerestart1D
    20 ! Mostly for XIOS outputs:
     20use parse_args_mod,      only: parse_args
     21use callkeys_mod,        only: water
     22! Mostly for XIOS outputs
    2123use mod_const_mpi,       only: init_const_mpi
    2224use parallel_lmdz,       only: init_parallel
    23 use version_info_mod,    only: print_version_info
    24 use callkeys_mod, only: water
    2525
    2626implicit none
     
    6868real, dimension(:,:,:), allocatable :: q             ! tracer mixing ratio (e.g. kg/kg)
    6969real, dimension(1)                  :: wstar = 0.    ! Thermals vertical velocity
    70 character(100)                      :: arg           ! To read command-line arguments
    7170
    7271! Physical and dynamical tendencies (e.g. m.s-2, K/s, Pa/s)
     
    9493! INITIALISATION
    9594!=======================================================================
    96 if (command_argument_count() > 0) then ! Get the number of command-line arguments
    97     call get_command_argument(1,arg) ! Read the argument given to the program
    98     select case (trim(adjustl(arg)))
    99         case('version')
    100             call print_version_info()
    101             stop
    102         case default
    103             error stop 'The argument given to the program is unknown!'
    104     end select
    105 endif
     95! Parse command-line options
     96call parse_args()
    10697
    10798#ifdef CPP_XIOS
Note: See TracChangeset for help on using the changeset viewer.