source: trunk/LMDZ.COMMON/libf/evolution/info_PEM_mod.F90 @ 3410

Last change on this file since 3410 was 3387, checked in by jbclement, 13 months ago

PEM:

  • Correction of the way the PEM stops before it reaches the SLURM time limit.
  • Small correction for 1D related to r3386.
  • Improvement of launching script.

JBC

File size: 2.4 KB
RevLine 
[3096]1MODULE info_PEM_mod
[3076]2
3implicit none
4
[3349]5integer :: iPCM, iPEM, nPCM, nPCM_ini ! Data about the chained simulation of PCM/PEM runs
6
[3076]7!=======================================================================
8contains
9!=======================================================================
10
[3149]11SUBROUTINE info_PEM(year_iter,stopPEM,i_myear,n_myear)
[2886]12
[2980]13!=======================================================================
14!
[3096]15! Purpose: Update the first line of "info_PEM.txt" to count the number of simulated Martian years
16!          Write in "info_PEM.txt" the reason why the PEM stopped and the number of simulated years
[2980]17!
[3039]18! Author: RV, JBC
[2980]19!=======================================================================
20
[3173]21use time_evol_mod, only: convert_years, year_bp_ini
[2886]22
[3076]23implicit none
[2886]24
[3076]25!----- Arguments
[3149]26integer, intent(in) :: year_iter, stopPEM ! # of year and reason to stop
[3076]27integer, intent(in) :: i_myear, n_myear          ! Current simulated Martian year and maximum number of Martian years to be simulated
[2886]28
[3076]29!----- Local variables
[3096]30logical       :: ok
31integer       :: cstat
[3349]32character(10) :: ich1, ich2, ich3, ich4, ich5, ich6, fch
[2886]33
[3076]34!----- Code
[3387]35inquire(file = 'info_PEM.txt',exist = ok)
[3039]36if (ok) then
[3096]37    write(ich1,'(i0)') i_myear
38    write(ich2,'(i0)') n_myear
[3097]39    write(fch,'(f0.4)') convert_years ! 4 digits to the right of the decimal point to respect the precision of Martian year in "launch_pem.sh"
[3349]40    write(ich3,'(i0)') iPCM
41    write(ich4,'(i0)') iPEM + 1
42    write(ich5,'(i0)') nPCM
43    write(ich6,'(i0)') nPCM_ini
44    call execute_command_line('sed -i "1s/.*/'//trim(ich1)//' '//trim(ich2)//' '//trim(fch)//' '//trim(ich3)//' '//trim(ich4)//' '//trim(ich5)//' '//trim(ich6)//'/" info_PEM.txt',cmdstat = cstat)
[3096]45    if (cstat > 0) then
[3297]46        error stop 'info_PEM: command execution failed!'
[3096]47    else if (cstat < 0) then
48        error stop 'info_PEM: command execution not supported!'
49    endif
50    open(1,file = 'info_PEM.txt',status = "old",position = "append",action = "write")
[3173]51    ! Martian date, Number of Martians years done by the PEM run, Number of Martians years done by the chainded simulation, Code of the stopping criterion
52    ! The conversion ratio from Planetary years to Earth years is given in the header of the file
53    write(1,*) year_bp_ini + i_myear, year_iter, i_myear, stopPEM
[3096]54    close(1)
[3039]55else
[3096]56    error stop 'The file ''info_PEM.txt'' does not exist and cannot be updated!'
[3039]57endif
58
[3096]59END SUBROUTINE info_PEM
[3039]60
[3096]61END MODULE info_PEM_mod
Note: See TracBrowser for help on using the repository browser.