diff --git a/matlab/write_fort90.m b/matlab/write_fort90.m index f6d04f34c78bc4c005aae96ddff3ce0cc6ffdf2f..9986b02039076202b3af3d9aec450dbba9263543 100644 --- a/matlab/write_fort90.m +++ b/matlab/write_fort90.m @@ -8,6 +8,7 @@ fprintf(fid,[' nrun = ', num2str(BASIC.nrun),'\n']); fprintf(fid,[' dt = ', num2str(BASIC.dt),'\n']); fprintf(fid,[' tmax = ', num2str(BASIC.tmax),'\n']); fprintf(fid,[' RESTART = ', num2str(BASIC.RESTART),'\n']); +fprintf(fid,[' maxruntime = ', num2str(BASIC.maxruntime),'\n']); fprintf(fid,'/\n'); fprintf(fid,'&GRID\n'); @@ -20,7 +21,6 @@ fprintf(fid,[' Lr = ', num2str(GRID.Lr),'\n']); fprintf(fid,[' Nz = ', num2str(GRID.Nz),'\n']); fprintf(fid,[' Lz = ', num2str(GRID.Lz),'\n']); fprintf(fid,[' kpar = ', num2str(GRID.kpar),'\n']); -fprintf(fid,[' CANCEL_ODD_P = ', num2str(GRID.CANCEL_ODD_P),'\n']); fprintf(fid,'/\n'); fprintf(fid,'&OUTPUT_PAR\n'); @@ -56,8 +56,6 @@ fprintf(fid,[' eta_n = ', num2str(MODEL.eta_n),'\n']); fprintf(fid,[' eta_T = ', num2str(MODEL.eta_T),'\n']); fprintf(fid,[' eta_B = ', num2str(MODEL.eta_B),'\n']); fprintf(fid,[' lambdaD = ', num2str(MODEL.lambdaD),'\n']); -fprintf(fid,[' kr0KH = ', num2str(MODEL.kr0KH),'\n']); -fprintf(fid,[' A0KH = ', num2str(MODEL.A0KH),'\n']); fprintf(fid,'/\n'); fprintf(fid,'&INITIAL_CON\n'); diff --git a/src/basic_mod.F90 b/src/basic_mod.F90 index 494679bd7e7c4865350df86def20dad8629976fb..6cf333936d5edc4796c4a04a6bd360c9ac4fc840 100644 --- a/src/basic_mod.F90 +++ b/src/basic_mod.F90 @@ -35,6 +35,7 @@ MODULE basic real(dp) :: t0_rhs, t0_adv_field, t0_poisson, t0_Sapj, t0_diag, t0_checkfield, t0_step real(dp) :: t1_rhs, t1_adv_field, t1_poisson, t1_Sapj, t1_diag, t1_checkfield, t1_step real(dp) :: tc_rhs, tc_adv_field, tc_poisson, tc_Sapj, tc_diag, tc_checkfield, tc_step + real(dp):: maxruntime = 1e9 ! Maximum simulation CPU time INTERFACE allocate_array MODULE PROCEDURE allocate_array_dp1,allocate_array_dp2,allocate_array_dp3,allocate_array_dp4 @@ -52,7 +53,7 @@ CONTAINS use prec_const IMPLICIT NONE - NAMELIST /BASIC/ nrun, dt, tmax, RESTART + NAMELIST /BASIC/ nrun, dt, tmax, RESTART, maxruntime READ(lu_in,basic) diff --git a/src/control.F90 b/src/control.F90 index 4522733f7dbf59b5614c9bf2b9bc1e163253fae6..394fe61e437dd44682dd61d9d78a42db9932bb37 100644 --- a/src/control.F90 +++ b/src/control.F90 @@ -48,7 +48,7 @@ SUBROUTINE control !________________________________________________________________________________ ! 2. Main loop DO -CALL cpu_time(t0_step) ! Measuring time + CALL cpu_time(t0_step) ! Measuring time step = step + 1 cstep = cstep + 1 @@ -64,8 +64,8 @@ CALL cpu_time(t0_step) ! Measuring time CALL diagnose(step) CALL cpu_time(t1_diag); tc_diag = tc_diag + (t1_diag - t0_diag) - CALL cpu_time(t1_step); tc_step = tc_step + (t1_step - t0_step) + END DO IF (my_id .EQ. 1) WRITE(*,'(a/)') '...time integration done' !________________________________________________________________________________ diff --git a/src/tesend.F90 b/src/tesend.F90 index 5d77e4444f0bd479cb4606f351d1480f8644aa6e..91d438caa9dac549a9f26c81f0ce3b6e8d19b735 100644 --- a/src/tesend.F90 +++ b/src/tesend.F90 @@ -32,4 +32,15 @@ SUBROUTINE tesend END IF ! ! + + !________________________________________________________________________________ + ! 4. Test on rune time + CALL cpu_time(finish) + nlend = (finish-start) .GT. maxruntime + IF ( nlend ) THEN + IF (my_id .EQ. 0) WRITE(*,'(/a)') 'Max run time reached' + RETURN + END IF + ! + ! END SUBROUTINE tesend