Em sua viagem de ida, você provavelmente não passará pelo controle de passaportes em Viena, já que tanto os vôos de entrada quanto os de saída estão fora de Schengen.
Em Zagreb você estará entrando na Croácia, então você precisará passar pelos controles deles. O seu voo de Zagreb para Dubrovnik será então um voo doméstico.
Na sua viagem de retorno, você estará deixando a Croácia em Dubrovnik. Eu não tenho certeza se a Croácia sai dos cheques.
Você entrará no espaço Schengen em Viena para pegar um voo interno de Schengen. Então você terá que passar por cheques de entrada de Schengen e vai deixá-lo em Munique, então você terá que passar por verificações de saída de Schengen.
E finalmente, quando você voltar para os EUA, encontrará o controle de fronteiras dos EUA.
Além dos controles de imigração geridos pelo governo, é provável que pelo menos algumas das companhias aéreas verifiquem seu passaporte antes de permitir que você embarque no voo.
Como cidadão dos EUA, em circunstâncias normais, você não precisará de visto para nada disso.