Configuração de formato de saída dinâmica

Tentei criar o formato de saída dinamicamente, no sentido de que o número de variáveis a serem impressas poderia variar dinamicamente. Eu havia feito um experimento com os dois métodos a seguir (veja o contexto abaixo), mas ambos levaram a uma mensagem de erro como esta:

forrtl: error (63): erro de conversão de saída, unidade 1016, arquivo / panfs / roc / Node_ 16.txt

O primeiro método usa uma sequência para especificar o formato de saída, por exemplo,

real a(4) = [1 2 3 4]
int size = 4
write(string,'(a,i3,a)') '(a,',size,'(f9.4))'
write(*, string) a(:)

O segundo método é o que aprendi na Internet, que ocupa apenas uma linha, mas também não funcionou:

write(*,'(a,<size>f9.4)') a(:)

Por favor me ajude com esta configuração de formato. Obrigado.

Edição: Encontrei o culpado do problema. No meu projeto real, algum elemento da matriz "a" é bastante grande, de modo que f9.4 não é adequado para exibir a matriz completa. Para corrigir o problema, substituo f9.4 por algo como e11.3.

questionAnswers(2)

yourAnswerToTheQuestion