#1378: provide equivalent of fprintf(stderr, "%s\n", msg) in Fortran --------------------------+------------------------------------------------- Reporter: rhaas | Owner: Type: enhancement | Status: new Priority: minor | Milestone: Component: Cactus | Version: development version Resolution: | Keywords: --------------------------+-------------------------------------------------
Comment (by rhaas):
I do not know how to use "\n" in Fotran. Is this possible? Also in Fotran I would have to allocate a buffer to hold all text at once. So possibly several hundred characters which is not ideal. In C: yes, the most convenient method is to have long format string and \n in it. Currently the Fortan code typically looks like this:
{{{ character*256 :: warnline if (dens(i,j,k).ne.dens(i,j,k)) then !$OMP CRITICAL call CCTK_WARN(1,"dens NAN at entry of Con2Prim") write(warnline,"(A10,i5)") "reflevel: ",GRHydro_reflevel call CCTK_WARN(1,warnline) write(warnline,"(3i5,1P10E15.6)") i,j,k,x(i,j,k),y(i,j,k),z(i,j,k) call CCTK_WARN(1,warnline) write(warnline,"(1P10E15.6)") rho(i,j,k),dens(i,j,k),eps(i,j,k) call CCTK_WARN(1,warnline) write(warnline,'(a32,2i3)') 'hydro_excision_mask, atmosphere_mask: ', hydro_excision_mask(i,j,k), atmosphere_mask(i,j,k) call CCTK_WARN(1,warnline) call CCTK_WARN(0,"Aborting!!!") !$OMP END CRITICAL endif }}}
constructs like this are very common in GRHydro.