Fortran namespace conflicts
===

I'm working on coupling a couple of simulation codes together.  Currently, there are 3 codes but there may be more in the future.  You can think of information exchange in the following diagram:

     sim1  <====>  sim_main <=====> sim2

The information exchange is done via a limited interface on each side.  

I recently diagnosed a problem where a common block in sim1 had the same name as a subroutine in sim2 which was causing a segmentation fault.  The easy solution is to change the name of the common block in sim1, however that's not ideal because if the developers of sim1 come out with sim1-2.0, then I'll have to dig in and change the name of that common block again.  Since the interface is relatively limited, I'm wondering if a better solution would be to write a simple module:

    module sim2_mod
    contains
    include "sim2.f90"
    end

As this should put all the routines in sim2 into the sim2_mod namespace which could be `use`d on a limited basis.  Is this a good idea?  a bad idea?  Are there situations where this wouldn't work?  Do common blocks used in sim2 still have global scope?