Fortran 90 média móvel


Muito antes de haver calculadoras científicas, cientistas e engenheiros perceberam que precisavam de maneiras fáceis de obter resultados de funções comuns como seno, cosseno, Logaritmo natural e muito mais Essas necessidades foram consideradas com cada padrão Fortran, resultando em uma longa lista de construído em funções funções intrínsecas para tornar sua vida mais fácil Eu não vou cobrir todas as funções no padrão atual Fortran 90, mas vai dar A sintaxe para o uso de funções intrínsecas pode ser muito familiar para você, porque eles também aparecem em planilhas Se eu entrar a magnitude de uma velocidade na caixa A1, eo ângulo entre a velocidade ea X-axis em radianos na caixa A2, então eu posso calcular a componente x da velocidade na caixa A3 com a fórmula A1 COS A2.In Fortran este resultado pode ser obtido com uma declaração de atribuição como. ve Lx vel cos angrad Antes de avançar, precisamos de uma definição simples No exemplo acima, angrad é um argumento da função cos. Some Basic Intrinsic Functions. abs x - Valor absoluto de x. iabs I - Valor absoluto de um inteiro I pre-90 Fortran abs didn t como inteiro arguments. sin x - Retorna o seno de xx não é um integer. cos x - Retorna o cosseno de xx não é um integer. tan x - Retorna a tangente de xx não é um integer. exp x - Calcula e 2 7183 para a potência x x não é um integer. log x - calcula o logaritmo natural de xx não é um inteiro e 0. log10 x - calcula base 10 logaritmo de xx não é um inteiro e 0.asin x - Retorna O seno inverso arcseno de xx é real. acos x - Retorna o coseno inverso arccosina de xx é real. atan x - Retorna a tangente inversa arctangente de xx é real. sqrt x - Retorna a raiz quadrada de xx não é um inteiro e 0.nint x - Retorna o inteiro mais próximo ao número real x. min x1, x2 - Retorna o mínimo de x1, x2 argumentos devem ser sa Me type. max x1, x2 - Retorna o máximo de x1, os argumentos x2 devem ser do mesmo tipo. As funções max e min são incomuns porque levam qualquer número de argumentos. As formas genéricas min e max não eram uma parte manditória do Fortran 77 padrão, mas estão em Fortran 90 Em muitos códigos Fortran 77 você verá functions. amax1 x1, x2 - Retorna o máximo de x1, x2 como um número real argumentos são real. amax0 i1, i2 - Retorna o máximo de i1, i2 Como um número real argumentos são integer. max0 i1, i2 - Retorna o máximo de i1, i2 como um inteiro argumentos são integer. max1 x1, x2 - Retorna o máximo de x1, x2 como um inteiro argumentos são real. Similar formulários apareceu para Min Além disso log e log10 eram formulários opcionais no Fortran 77 Os programas mais antigos usam freqüentemente alog e alog10 para iniciar o nome da função com uma letra característica de um real em vez de um valor inteiro Em geral, o Fortran 77 era mais dependente de você escolher especificamente uma função apropriada para Os tipos de argumento eo tipo de valor a ser retornado. Sobre as funções intrínsecas do Fortran 90, vale a pena notar duas que você viu nas faixas de exemplo f e uma função relacionada, que são úteis em programas em execução em uma série de máquinas. tiny x - Retorna o menor número positivo que Pode ser representado no computador atual para o argumento real x. huge x - Retorna o maior número positivo que pode ser representado no computador atual para o argumento real x. precision x - Retorna a precisão decimal aproximada disponível no computador atual para o real Argumento x. Some comentários sobre Speed. You necessidade de perceber que trigonometric, log e exp funções intrínsecas são relativamente caras em termos de tempo de computador necessário Se você precisar do valor de sin 0 1 freqüentemente, use a função uma vez em uma atribuição como. Sin0p1 sen 0 1 então use a nova variável sin0p1 onde quer que sen 0 1 seja needed. The alto custo de exp e log também é refletida no uso do operador Geralmente uma expressão como xy resulta no compilador inse No entanto, a maioria dos compiladores são inteligentes o suficiente para perceber que se y é um número inteiro, eles podem usar uma ou mais multiplicações x 2 xx, x 3 xxx, etc. Esses compiladores contêm a lógica para conhecer o break - Mesmo ponto, em termos de tamanho de y, entre essa multiplicação ea combinação de exp e log É sempre mais rápido para programar x 2 que x 2 0, por isso tenha cuidado na sua escolha de tipos para exponents. Speed ​​também é um fator em A existência da função intrínseca sqrt Este é um algoritmo especial para calcular a raiz quadrada de um número, que é sempre mais rápido do que aumentar o número para o poder 0 5 Quando a opção existe use sqrt x em vez de x 0 5 Na minha experiência sqrt Sqrt x é mais rápido do que x 0 25. Enquanto estamos no assunto de velocidade, devemos rever a velocidade relativa de outras operações Adicionar e subtrair são sempre os mais rápidos Multiply vem segundo Divide é mais lento do que multiplicar, mas significativamente mais rápido do que sqrt Se você Vão dividir por uma variável X freqüentemente mais de 2 ou 3 vezes, é uma boa idéia para definir outra variável dizer rx com a equação rx 1 x, em seguida, multiplique por rx onde você teria dividido por xA programa de exemplo usando Funções intrínsecas. Para exemplos de funções intrínsecas e como um começo útil para sua tarefa de casa mais recente. Perguntas de Revisão. Testa seu conhecimento deste material com algumas perguntas de revisão. Up um nível Home. Postado em 10 de maio de 2017.fortran 90 média móvel. Antes de você Você deve informar o seu médico se você está sofrendo de doença hepática, doenças cardíacas, diabetes, problemas intestinais, glaucoma estreito ou uma próstata aumentada Você também deve informá-lo se você tem uma história de pressão arterial baixa ou alta, Baixa contagem de glóbulos brancos, hightriglycerides ou colesterol, ataque cardíaco, acidente vascular cerebral ou insuficiência cardíaca, câncer de mama, convulsões ou epilepsia Como Zyprexa Zydis faz você tonto, você não deve conduzir um veículo ou fazer qualquer atividade que requer completa A droga pode levar a sintomas de abstinência, problemas de alimentação, problemas respiratórios, tremores, músculos rígidos ou frouxos, e fussiness em um feto, e, portanto, não é recomendado para mulheres grávidas. New Trading Systems and Methods por Perry J Kaufman Ebook Fortran 90 moving average. NOTA Esta página é um resumo Não pode cobrir todas as informações possíveis Se você tiver dúvidas sobre este medicamento, fale com o seu médico, farmacêutico ou médico Fortran 90 média móvel. Fabrico fabricado por um Fabricante Genérico BRITÂNICO aprovado pela MHRA. Fortran 90 média móvel - Leia mais. Descrição Fortran 90 média móvel. Se você faltar uma dose, tome-a assim que você puder Se for quase hora para sua dose seguinte, tome somente essa dose Não tome doses dobro ou extra. Retirada de 10 mg de dores no corpo zyprexa e icterícia nome genérico para zyprexa zydis fumo esmagado barato olanzapina zyprexa zydis retirada olanzapina iv dose. Adultos são administrados Zyprexa Zydis 5mg-10mg uma vez por dia, enquanto os adolescentes são dar N Zyprexa Zydis 5mg-5mg uma vez por dia Para tratar o transtorno bipolar, os adultos são administrados Zyprexa Zydis 5mg-15mg uma vez ao dia, não excedendo 20mg As dosagens podem ser ajustadas dependendo da idade do paciente, condição médica e resposta a Tratamento Ao tomar o comprimido, colocá-lo em sua língua para que ele possa se dissolver dentro de alguns segundos Depois disso, você pode easilyswallow-lo com ou sem water. Product of United Kingdom Enviado de United Kingdomfortran 90 moving average. fortran 90 em movimento Acesso a partir do seu Área tem sido temporariamente limitada por razões de segurança. Generics são menos caros, porque os fabricantes de genéricos não têm de investir grandes somas de dinheiro para inventar uma droga Quando o nome da marca patentexpires, as empresas de genéricos podem fabricar uma cópia do medicamento de marca e vender Se em descontos substanciais. Watch fortran 90 média móvel. Sobredosagem Se você acha que tomou muito deste medicamento entre em contato com um centro de controle de veneno ou sala de emergência de uma só vez. Para você Não compartilhe este medicamento com outros Fortran 90 média móvel ganhar dinheiro. Fabricado por um MHRA aprovado UK Generic Manufacturerfortran 90 média móvel. Por favor, note que o país, fabricante e / ou país de envio pode variar dependendo da disponibilidade Todas as marcas comerciais e marcas registradas São propriedade de seus respectivos proprietários. Do não tomar este medicamento com qualquer um dos seguintes medicamentos - segundo antibióticos como grepafloxacina e sparfloxacina - fez fenotiazinas como chlorpromazine, mesoridazina, e thioridazine - cisapride - clozapina - droperidol - halofantrina - levomethadyl-pimozide Este medicamento também pode interagir Com os seguintes medicamentos - carbamazepina - carboxal - fluvoxamina - levodopa e outros medicamentos para a doença de Parkinson - medicações para a diabetes - medicinas para pressão arterial elevada - medicinas para depressão mental, ansiedade, outros transtornos do humor ou problemas para dormir-omeprazole - rifampina - ritonavir Tabaco dos cigarros. As únicas diferenças Ween genéricos e seus homólogos de marca é que os genéricos são menos caros e podem olhar forma ligeiramente diferente ou cor, como as leis de marca impedem um genérico de olhar exatamente como o medicamento de marca fortran 90 média móvel ganhar dinheiro. Tudo conteúdo médico é fornecido Por uma empresa terceirizada que é independente deste site, Como tal, este site não pode garantir a sua confiabilidade, precisão e ou eficácia médica da informação fornecer Em todas as circunstâncias, você deve procurar o aconselhamento de um profissional de saúde pertencente todrug, tratamento e Ou conselho da circunstância médica Note que não todos os produtos são enviados por nossa farmácia canadense contratada Este website contrata com os dispensários em torno do mundo que enviam produtos a nossos clientes Algumas das jurisdições incluem mas não são limitadas a Reino Unido, Europa, Turquia, India, Singapore, Canadá, Vanuatu, Mauritius e EUA Os itens dentro do seu pedido podem ser expedidos de qualquer uma dessas jurisdições, dependendo do Disponibilidade e custo dos produtos no momento em que você faz o seu pedido Os produtos são originários destes países, bem como outros Todas as marcas comerciais e marcas registradas são propriedade de seus respectivos proprietários. Funções intrínsecas em Fortran 90.Há um grande número de intrínsecos Funções e cinco sub-rotinas intrínsecas no Fortran 90 I tratam as rotinas numéricas e matemáticas muito em breve, uma vez que não são alteradas do Fortran 77 e, portanto, devem ser bem conhecidas. Esta seção é baseada na seção 13 da norma ISO 1991, que contém um Tratamento mais formal Seguimos o arranjo das diferentes funções e sub-rotinas no padrão, mas explicamos diretamente na lista. Para um tratamento mais detalhado, referimo-nos a Metcalf e Reid 1990, 1993. Quando um parâmetro abaixo é opcional, é dado em minúsculas Caracteres Quando uma lista de argumentos contém vários argumentos, a função pode ser chamada por argumentos relacionados à posição ou por uma palavra-chave Palavra-chave deve ser usada i F algum argumento anterior não é incluído Palavras-chave são normalmente os nomes que são dados abaixo. Nós nem sempre damos todas as limitações naturais para as variáveis, por exemplo, que a classificação não é permitida para ser negativo. A função PRESENTE A retorna se o argumento A está na lista de chamadas, no outro caso A utilização é ilustrada no programa de exemplo no capítulo 8 do texto principal. Os seguintes estão disponíveis em Fortran 77 ABS, AIMAG, AINT, ANINT, CMPLX, CONJG, DBLE, DIM, Além disso, TECTO, PISO e MODULO foram adicionados ao Fortran 90 Apenas o último é difícil de explicar, o que é mais fácil de fazer com os exemplos da ISO 1991 As seguintes funções do Fortran 77 podem usar um parâmetro de tipo como no AINT A, nomeadamente AINT, ANINT, CMPLX, INT, NINT e REAL. Um fato histórico é que as funções numéricas no Fortran 66 tiveram de ter nomes diferentes específicos em diferentes Precisões, e esses nomes explícitos ainda são os únicos Que podem ser usados ​​quando um nome de função é passado como um argumento. Uma tabela completa de todas as funções numéricas segue Aqueles nomes que são indicados com uma estrela não são permitidos para ser usados ​​como argumentos Algumas funções, como INT e IFIX têm dois específicos Nomes, podem ser usados ​​Por outro lado, algumas funções não têm qualquer nome específico Abaixo eu uso C para valores de ponto flutuante complexo, D para valores de ponto flutuante em precisão dupla, I para inteiros e R para valores de ponto flutuante em único Precisão A truncagem é em direção a zero, INT -3 7 torna-se -3, mas o arredondamento é correto, NINT -3 7 torna-se -4 As novas funções FLOOR e CEILING truncam para menos e mais infinito, respectivamente. A função CMPLX pode ter um ou dois argumentos, Se dois argumentos estiverem presentes, estes devem ser do mesmo tipo, mas não COMPLEX. A função MOD X, Y calcula X - INT XY Y. A função de transferência de sinal SIGN X, Y toma o sinal do segundo argumento e o coloca no primeiro Argumento, ABS X se Y 0 e - ABS X se Y 0. Diferença positiva DIM é uma função que eu nunca usei, mas DIM X, Y dá XY se isso é positivo e zero no outro caso. Produto interno DPROD por outro lado é uma função muito útil que dá O produto de dois números em uma única precisão como um número de dupla precisão É rápido e preciso. As duas funções MAX e MIN são únicas, pois podem ter um número arbitrário de argumentos, mas pelo menos dois argumentos têm que ser do Mesmo que em Fortran 77 Todas as funções trigonométricas funcionam em radianos Os seguintes estão disponíveis ACOS, ASIN, ATAN, ATAN2, COS, COSH, EXP, LOG, LOG10, SIN, SINH, SQRT, TAN e TANH. Um fato histórico é que as funções matemáticas no Fortran 66 precisavam ter nomes diferentes específicos em diferentes precisões e esses nomes explícitos ainda são os únicos que podem ser usados ​​quando um nome de função é passado como um argumento. Uma tabela completa de todas as funções matemáticas segue Be Baixo Eu uso C para valores de ponto flutuante complexos, D para valores de ponto flutuante em precisão dupla, I para inteiros e R para valores de ponto flutuante em precisão simples O objetivo da maioria dessas funções é óbvio Note que eles são todos apenas definidos para flutuante Números de ponto e não para números inteiros Você pode, portanto, não calcular a raiz quadrada de 4 como SQRT 4, mas em vez disso você pode usar NINT SQRT REAL 4 Observe também que todas as funções complexas retornam o valor principal. A raiz quadrada dá um resultado real para um Argumento real em precisão simples ou dupla e um resultado complexo para um argumento complexo Então SQRT -1 0 fornece uma mensagem de erro normalmente já em tempo de compilação, enquanto você pode obter a raiz quadrada complexa usando as seguintes instruções O argumento para os logaritmos usuais tem Para ser positivo, enquanto o argumento para CLOG deve ser diferente de zero. O módulo para o argumento para ASIN e ACOS tem que ser no máximo 1 O resultado será dentro de - pi 2, pi 2 e 0, pi, respectivamente. Íon ATAN retornará um valor em - pi 2, pi 2.A função ATAN2 Y, X arctana y, x retornará um valor em - pi, pi Se Y for positivo o resultado será positivo Se Y for zero o resultado será Zero se X for positivo e pi se X for negativo Se Y for negativo o resultado será negativo Se X for zero o resultado será mais ou menos pi 2 Ambos X e Y não são permitidos ser zero simultaneamente O objetivo da função É para evitar a divisão por zero. A limitação natural para as funções matemáticas é a precisão limitada e intervalo, o que significa que, por exemplo EXP pode causar underflow ou estouro em valores bastante comuns do argumento As funções trigonométricas obterá uma precisão muito baixa para grandes argumentos Essas limitações são dependentes da implementação e devem ser fornecidas no manual do fornecedor. As funções abaixo executam operações de e para strings de caracteres. Observe que o ACHAR funciona com o conjunto de caracteres ASCII padrão enquanto CHAR funciona com a representação no computador que você E using As rotinas acima comparam duas seqüências de caracteres usando classificação de acordo com ASCII Se uma seqüência de caracteres é menor do que o outro, espaços em branco são adicionados no final da seqüência curta Se uma seqüência de caracteres contém um caractere fora do conjunto de caracteres ASCII,.LEN STRING retorna o comprimento de uma seqüência de caracteres Não é necessário atribuir um valor à variável STRING. A primeira retorna o tipo de argumento real, que pode ser do tipo INTEGER, REAL, COMPLEX, LOGICAL ou CHARACTER O argumento X não precisa ser atribuído qualquer valor O segundo retorna um tipo inteiro com o número de dígitos solicitados eo terceiro retorna o tipo para números de ponto flutuante com precisão numérica pelo menos P dígitos e um expoente decimal intervalo entre - R e R Os parâmetros P e R devem ser inteiros escalares Deve ser dado pelo menos um de P e R. O resultado de SELECTEDINTKIND é um inteiro a partir de zero e para cima, se o tipo desejado não estiver disponível você obterá -1 Se vários Os tipos implementados satisfazem a condição, aquele com o menor intervalo decimal é usado Se ainda houver vários tipos ou tipos que satisfaçam a condição, será usado aquele com o menor número de tipo. O resultado de SELECTEDREALKIND é também um inteiro de zero e Para cima se o tipo desejado não estiver disponível, então -1 é retornado se a precisão não estiver disponível, -2 se o intervalo do expoente não estiver disponível e -3 se nenhum dos requisitos estiver disponível Se vários tipos implementados satisfazem a condição, Um com a menor precisão decimal é retornado, e se houver vários deles, aquele com o menor número de tipo é retornado. Exemplos são dados no capítulo 2 do texto principal Exemplos de tipos em algumas implementações diferentes NAG e Cray são dados No Apêndice 6.LOGICAL L, tipo converte entre diferentes tipos de variáveis ​​lógicas Variáveis ​​lógicas podem ser implementadas de várias maneiras, por exemplo com uma representação física ocupando um bit não recomendado, um por Te, uma palavra ou talvez até uma palavra dupla Esta diferença é importante se COMMON e EQUIVALENCE com variáveis ​​lógicas tiverem sido mal utilizados em um programa na forma tradicional de programação do Fortran 66. Funções de indagação numérica. Estas funções funcionam com um certo modelo de inteiro E as aritmética de ponto flutuante, ver ISO 1991, seção 13 7 1 As funções retornam propriedades de números do mesmo tipo que a variável X que pode ser real e em alguns casos inteira Funções que retornam propriedades do argumento real X estão disponíveis na seção 12 abaixo, as funções de manipulação de ponto flutuante. BITSIZE I retorna o número de bits de acordo com o modelo de representação de bits na norma ISO 1991, seção 13 5 7 Normalmente, obtemos o número de bits em uma palavra inteira. Na norma ISO 1991, é utilizada a seção 13 5 7. O tamanho do SOURCE, MOLD, especifica que a representação física do primeiro argumento SOURCE deve ser tratada como se tivesse tipo e p Arameters como o segundo argumento MOLD, mas sem convertê-lo O objetivo é dar a possibilidade de mover uma quantidade de um determinado tipo através de uma rotina que não tem exatamente esse tipo de dados.12 Funções de manipulação de ponto flutuante. Essas funções funcionam em um certo Modelo de aritmética de inteiros e de ponto flutuante, veja a norma ISO 1991, seção 13 7 1 As funções retornam números relacionados à variável real X do tipo REAL Funções que retornam propriedades para os números do mesmo tipo que a variável X estão abaixo Seção 8 Funções de consulta numérica. DOTPRODUCT VECTORA, VECTORB faz um produto escalar de dois vetores, que devem ter o mesmo comprimento o mesmo número de elementos. Por favor, note que se VECTORA é do tipo COMPLEX o resultado é SUM CONJG VECTORA VECTORB. MATMUL MATRIXA, MATRIXB Faz o produto de matriz de duas matrizes, que devem ser consistentes, isto é, têm as dimensões como M, K e K, N Usado no capítulo 11 do texto principal.14 Array functions. ALL MASK, dim retorna um logi Cal valor que indica se todas as relações em MASK estão ao longo apenas a dimensão desejada se o segundo argumento é given. ANY MASK, dim retorna um valor lógico que indica se qualquer relação em MASK é ao longo só a dimensão desejada se o segundo argumento é dado. COUNT MASK, dim retorna um valor numérico que é o número de relações em MASK que estão junto apenas a dimensão desejada se o segundo argumento é given. MAXVAL ARRAY, dim, máscara retorna o maior valor na matriz ARRAY daqueles que obedecem a relação No terceiro argumento MASK se esse for dado, ao longo de apenas a dimensão desejada se o segundo argumento DIM é dado. MINVAL ARRAY, dim, máscara retorna o menor valor na matriz ARRAY daqueles que obedecem a relação no terceiro argumento MASK if Que um é dado, ao longo de apenas a dimensão desejada se o segundo argumento DIM é dado. PRODUCT ARRAY, dim, máscara retorna o produto de todos os elementos na matriz ARRAY daqueles que obedecem a relação no terceiro arg Se a segunda opção é DIM, a máscara SMD retorna a soma de todos os elementos da matriz ARRAY daqueles que obedecem à relação no terceiro argumento MASK if Que um é dado, ao longo apenas a dimensão desejada se o segundo argumento DIM é dado Um exemplo é dado no Apêndice 3, seção 10.ALLOCATED ARRAY é uma função lógica que indica se a matriz está all. LBOUND ARRAY, dim é uma função que Retorna o limite de dimensão inferior para o ARRAY Se DIM a dimensão não é fornecida como um argumento, você obtém um vetor inteiro, se DIM for incluído, você obtém o valor inteiro com exatamente esse limite de dimensão inferior, para o qual você pediu. SHAPE SOURCE is Uma função que retorna a forma de uma matriz SOURCE como um vetor inteiro. SIZE ARRAY, dim é uma função que retorna o número de elementos em uma matriz ARRAY se DIM não for dado eo número de elementos na dimensão relevante se DIM for Incluído. UBOUND ARRAY, dim é uma função semelhante a LBOUND que retorna os limites dimensionais superiores. MORGE TSOURCE, FSOURCE, MASK é uma função que une duas matrizes Ele dá os elementos em TSOURCE se a condição em MASK é e FSOURCE se a condição em MASK for The Dois campos TSOURCE e FSOURCE tem que ser do mesmo tipo e da mesma forma O resultado é também deste tipo e esta forma também MASK deve ter a mesma forma. Eu aqui dar um exemplo bastante completo do uso de MERGE que também usa RESHAPE A partir da próxima seção, a fim de construir matrizes de teste adequado. Note que as duas subrotinas WRITEARRAY e WRITELARRAY são rotinas de teste para escrever matrizes que no primeiro caso são de tipo REAL, no segundo caso de um tipo LOGICAL A seguinte saída é obtida PACK ARRAY, MASK, vector packs uma matriz para um vetor com o controle de MASK A forma da matriz lógica MASK tem que concordar com a de ARRAY ou MASK deve ser um escalar Se VECTOR é incluído, tem que ser uma matriz de Classificação 1 i Ea vetor com pelo menos tantos elementos como aqueles que são verdadeiros em MASK e têm o mesmo tipo como ARRAY Se MASK é um escalar com o valor, em seguida, VECTOR deve ter o mesmo número de elementos como ARRAY. O resultado é um vetor com como Muitos elementos como aqueles em ARRAY que obedecem as condições se VECTOR não está incluído, ou seja, todos os elementos se MASK é um escalar com valor No outro caso, o número de elementos do resultado será tanto como em VECTOR Os valores serão os aprovados , Ou seja, os valores que preenchem a condição e estarão na ordem Fortran ordinária Se VECTOR estiver incluído e o número de seus elementos exceder o número de valores aprovados, os valores faltos necessários para o resultado são retirados dos locais correspondentes em VECTOR. O exemplo a seguir é baseado na modificação de um para MERGE, mas eu dou agora apenas os resultados SPREAD SOURCE, DIM, NCOPIES retorna uma matriz do mesmo tipo como o argumento SOURCE com a classificação aumentada por um Os parâmetros DIM e NCOPIES são inteiros Se NCOPIES é negativo o valor zero é usado em vez disso Se SOURCE é um escalar, então SPREAD se torna um vetor com elementos NCOPIES que todos têm o mesmo valor que SOURCE O parâmetro DIM indica qual índice deve ser estendido Tem que Estar dentro do intervalo 1 e 1 rank de SOURCE se SOURCE é um escalar então DIM tem que ser um O parâmetro NCOPIES é o número de elementos nas novas dimensões A discussão adicional é dada na solução para o exercício 11 1.UNPACK VECTOR, MASK, ARRAY scatters um vetor para uma matriz sob controle de MASK A forma da matriz lógica MASK tem que concordar com a de ARRAY A matriz VECTOR tem que ter a classificação 1 ou seja, é um vetor com pelo menos tantos elementos como aqueles que são True em MASK e também tem que ter o mesmo tipo de ARRAY Se ARRAY é dado como um escalar, então ele é considerado como uma matriz com a mesma forma que MASK e os mesmos elementos escalares em todo lugar. O resultado será uma matriz com o mesmo Forma como MASK e Mesmo tipo como VECTOR Os valores serão aqueles de VECTOR que são aceitos, ou seja, aqueles que preenchem a condição em MASK, tomada na ordem Fortran ordinária, enquanto nas posições restantes em ARRAY os valores antigos são mantidos. RESHAPE SOURCE, SHAPE, pad, order Constrói uma matriz com uma forma especificada SHAPE a partir dos elementos em uma matriz determinada SOURCE Se PAD não está incluído, em seguida, o tamanho de SOURCE tem que ser, pelo menos, FORMA DE PRODUTO Se PAD é incluído, tem que ter o mesmo tipo de SOURCE Se ORDER é Incluída, tem que ser uma matriz INTEGER com a mesma forma que SHAPE e os valores devem ser uma permutação de 1,2,3 N, onde N é o número de elementos em SHAPE tem que ser menor ou igual a 7 . O resultado tem, naturalmente, uma forma SHAPE e os elementos são aqueles em SOURCE possivelmente complementado com PAD As diferentes dimensões foram permutadas na atribuição dos elementos se ORDER foi incluído, mas sem influenciar a forma do resultado. Alguns exemplos simples São dadas em E a próxima seção e também no Apêndice 3, seção 9 Um exemplo mais complicado, ilustrando também os argumentos opcionais, segue A saída do programa acima é a seguinte. As funções shift retornam a forma de uma matriz inalterada, mas movem a Elementos Eles são bastante difíceis de explicar, então eu recomendo estudar também o padrão ISO 1991.CSHIFT ARRAY, SHIFT, dim executa deslocamento circular por SHIFT posições para a esquerda se SHIFT é positivo e para a direita se é negativo Se ARRAY é um vetor O deslocamento está sendo feito de uma maneira natural, se é um arranjo de um Rank mais elevado então o deslocamento está em todas as seções ao longo da dimensão DIM Se DIM estiver faltando é considerado ser 1, em outros casos tem que ser um scalar Número inteiro entre 1 e n em que n é igual ao grau de ARRAY O argumento SHIFT é um inteiro escalar ou um array de números inteiros de n-1 e a mesma forma que o ARRAY, exceto ao longo da dimensão DIM que é removida por causa da classificação inferior. Seções podem t Aqui ser deslocado em várias direções e com vários números de posições. EOSHIFT ARRAY, SHIFT, limite, dim executa deslocar para a esquerda se SHIFT é positivo e para a direita se é negativo Em vez de os elementos deslocados para fora novos elementos são retirados de BOUNDARY Se ARRAY for um vetor o deslocamento está sendo feito em uma maneira natural, se é um arranjo de um Rank mais alto, o deslocamento em todas as seções é ao longo da dimensão DIM Se DIM estiver faltando, é considerado 1, em outros casos Ele tem que ter um valor inteiro escalar entre 1 e n onde n é igual ao rank de ARRAY O argumento SHIFT é um inteiro escalar se ARRAY tem o rank 1, no outro caso pode ser um inteiro escalar ou um array inteiro de rank n - 1 e com a mesma forma que a matriz ARRAY exceto ao longo da dimensão DIM que é removido por causa da menor rank. O correspondente aplica-se a BOUNDARY que tem que ter o mesmo tipo que o ARRAY Se o parâmetro LIMITED está faltando você tem a escolha de Valores zero ou em branco sendo usado , Dependendo do tipo de dados As seções diferentes podem assim ser deslocadas em várias direções e com vários números de posições Um exemplo simples das duas funções acima para o caso de vetor segue, tanto o programa como a saída Um exemplo simples das duas funções acima em O caso da matriz segue Tenho aqui utilizado RESHAPE, a fim de criar uma matriz adequada para começar a trabalhar com O programa não é reproduzido aqui, apenas as principais declarações TRANSPOSE MATRIX transpor uma matriz, que é uma matriz de rank 2 Ele substitui as linhas e colunas Na matrix. MAXLOC ARRAY, mascara retorna a posição do maior elemento na matriz ARRAY se MASK é incluído apenas para aqueles que preenchem as condições em MASK O resultado é um vetor inteiro É usado na solução do exercício 11 1.MINLOC ARRAY, mascara retorna a posição do menor elemento na matriz ARRAY se MASK é incluído apenas para aqueles que preenchem as condições em MASK O resultado é um vetor inteiro. ASSOCIATED POINTER, tar Get é a função lógica que indica se o ponteiro POINTER está associado a algum alvo e se um TARGET específico é incluído ele indica se ele está associado exatamente com esse alvo Se tanto POINTER quanto TARGET forem ponteiros, o resultado será somente se ambos estiverem associados a O mesmo destino Eu remeto o leitor para o capítulo 12 do texto principal, Pointers. A sub-rotina que retorna a data, o tempo eo fuso horário Pelo menos um argumento tem de ser given. DATE deve ser uma variável de cadeia de caracteres escalar com pelo menos 8 caracteres e é atribuído o valor CCYYMMDD para século, ano, mês e dia Todos são dados numericamente, com espaços em branco se o sistema não incluir a data. TIME também deve ser uma variável de cadeia de caracteres escalar com pelo menos 10 caracteres e é Atribuído um valor para o tempo em horas, minutos, segundos e milissegundos Todos são dados numericamente com espaços em branco se o sistema não incluir um clock. ZONE deve ser uma variável de cadeia de caracteres escalar com pelo menos 5 caracteres e ele É atribuído o valor hhmm para o sinal, o tempo em horas e minutos para a diferença de hora local com UTC que foi anteriormente chamado Greenwich Mean Time Todos são dados numericamente, com espaços em branco se o sistema não inclui um relógio Na Suécia, portanto, obter 0100 no inverno E 0200 no verão, em Novosibirsk obtemos 0700. A variável VALUES é em vez disso um vetor inteiro com pelo menos 8 elementos, que dá a maneira mais fácil de usar os resultados de DATEANDTIME nos cálculos em um programa. Se o sistema não incluir a data Ou o tempo que você recebe o valor - HUGE 0 que é o menor número inteiro no modelo, como saída O vetor irá incluir os seguintes elementos ano, mês, dia, diferença de tempo em minutos horas, minutos, segundos e milissegundos Subroutine que retorna o system time At least one argument has to be given COUNT is a scalar integer which is increased by one for each cycle up to COUNTMAX where it starts once again If there is no system clock then - HUGE 0 is returned. COUNTRATE is a scalar integer that gives the number of cycles per second If there is no system clock the value zero is returned. COUNTMAX is a scalar integer which gives the maximum value that COUNT can reach If there is no system clock, zero is returned instead. A subroutine which copies the sequence of bits in position FROMPOS and has the length LEN to target TO starting in position TOPOS The remaining bits are not changed All quantities have to be integers and all except TO have to have INTENT IN while TO is supposed to have INTENT INOUT and be of the same kind type as FROM The same variable can be both FROM and TO Some natural restrictions apply to the values of LEN, FROMPOS and TOPOS and you also have to consider the value of BITSIZE. A sequence of pseudo random numbers can be generated from a starting value which is stored as an integer vector The subroutines offer a portable interface towards an implementation dependent random number sequence This subroutine returns in the floating - point number variable HARVEST one or several if HARVEST is an array random numbers between zero and 1 This subroutine resets, or gives information about, the random number generator No arguments have to be provided The output variable SIZE must be a scalar integer and gives the number of integers N the processor uses for the starting value The input variable PUT is an integer vector which puts the starting numbers provided by the user into the random number generator The output variable GET also an integer vector reads the present starting value Example A simple example on the use of these functions is now available.

Comments