2222module ModEM_logger
2323
2424 use utilities
25+ #ifdef MPI
2526 use Declaration_MPI
27+ #endif
2628
2729implicit none
2830
2931 character (len= 512 ), private :: log_fname
3032 integer , private :: log_fid = 0
33+ integer :: task_id_lcl
3134
3235contains
3336
@@ -46,10 +49,18 @@ subroutine ModEM_log_init(mainOnly)
4649 mainOnly_lcl = .true.
4750 end if
4851
49- if ((taskid == 0 .and. mainOnly_lcl) .or. (.not. mainOnly_lcl)) then
50- write (log_fname, log_str_fmt) ' log.' , taskid, ' .modem.out'
52+ #ifdef MPI
53+ ! Use taskid from Decleration_MPI
54+ task_id_lcl = taskid
55+ #else
56+ ! Only one logger
57+ task_id_lcl = 0
58+ #endif
59+
60+ if ((task_id_lcl == 0 .and. mainOnly_lcl) .or. (.not. mainOnly_lcl)) then
61+ write (log_fname, log_str_fmt) ' log.' , task_id_lcl, ' .modem.out'
5162 open (newunit= log_fid, file= log_fname, status= ' replace' )
52- call ModEM_log(" Log Initalized $i - " // trim (log_fname), intArgs= (/ taskid / ), mainOnly= mainOnly)
63+ call ModEM_log(" Log Initalized $i - " // trim (log_fname), intArgs= (/ task_id_lcl / ), mainOnly= mainOnly)
5364 end if
5465
5566end Subroutine ModEM_log_init
@@ -188,7 +199,7 @@ subroutine ModEM_log(msg, intArgs, realArgs, logicArgs, fid, mainOnly, flush_log
188199
189200 call expand_string(msg, messageExpanded, intArgs, logicArgs, realArgs)
190201
191- if ((mainOnly_lcl .and. taskid == 0 ) .or. (.not. mainOnly_lcl)) then
202+ if ((mainOnly_lcl .and. task_id_lcl == 0 ) .or. (.not. mainOnly_lcl)) then
192203 write (fid_lcl,* ) trim (messageExpanded)
193204
194205 if (flush_lcl) then
0 commit comments