diff --git a/Documentation/FORD/V5/Doc_original/80x15.png b/Documentation/FORD/V5/Doc_original/80x15.png deleted file mode 100644 index b2a3adb682feb6bb0be372ec3c941804e1b247b2..0000000000000000000000000000000000000000 Binary files a/Documentation/FORD/V5/Doc_original/80x15.png and /dev/null differ diff --git a/Documentation/FORD/V5/fmw.md b/Documentation/FORD/V5/fmw.md deleted file mode 100644 index d78bdeb75c3f709efc4ff902ed560124169d7fad..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/fmw.md +++ /dev/null @@ -1,21 +0,0 @@ -project: Flex_extract: Calculation of etadot -src_dir: ./Src_from_repositoryApril15 -output_dir: ./Doc_original -summary: Calculation of vertical velocity for FLEXPART -author: Leopold Haimberger -author_description: Univ. of Vienna, Dept. of Meteorology & Geophysics -email: -linkedin: -docmark: -predocmark: -media_dir: ./Doc_original -docmark_alt: # -predocmark_alt: < -coloured_edges: -display: true -source: true -graph: true -search: true -warn: false -license: by -version: 7.1 diff --git a/Documentation/FORD/V5/readme.txt b/Documentation/FORD/V5/readme.txt deleted file mode 100644 index 50c30adc91cb79e663942cf7c92a81d3ab1b1b84..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -The content of this directory is the automatic documentation for the Etadot calculation in Fortran created by FORD v5.0.6. We will get rid of the whole directory as soon as either FORD v6 properly recognises tabs, or source files have been sanitised wrt to tabs. - -fmw.md is the input for for FORD. Usage: - -ford fmw.md diff --git a/Documentation/FORD/V5/sanitise.sh b/Documentation/FORD/V5/sanitise.sh deleted file mode 100755 index 562ec6541d29766bcfc229aa9ff39ec40e737036..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/sanitise.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Sanitise the output of FORD so that it uses a local copy of the CC-BY img -# rather than downloading it, and comment out the mathjax.js library being -# fetched (from mathjax.com) for data protection reasons. - -# Copyright Petra Seibert, 2019 -# SPDX-License-Identifier: MIT-0 - -doc=`grep output_dir fmw.md|cut -d\ -f2` -old='https://i.creativecommons.org/l/by/4.0/80x15.png' -new='80x15.png' -for f in `find $doc -type f -exec grep -l ${old} {} \; ` ; do - - depth=`echo $f | tr -cd '/' | wc -c` - depth=$(( depth - 2)) - sub=$new - while (( --depth >= 0 )); do - sub='../'$sub - done - sed -i "s=${old}=${sub}=g" $f - echo 'remove cc link in ' $f - -done -searchstring='https://cdn.mathjax.org' -old='<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>' -new='<!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> -->' -for f in `find $doc -type f -exec grep -l ${searchstring} {} \; ` ; do - - sed -i "s+${old}+${new}+g" $f - echo 'comment out mathjax link in ' $f - -done - diff --git a/Documentation/FORD/V5/test.tgz b/Documentation/FORD/V5/test.tgz deleted file mode 100644 index 00a99d074ff64383c1a13e18d772c84a2ef56074..0000000000000000000000000000000000000000 Binary files a/Documentation/FORD/V5/test.tgz and /dev/null differ diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js deleted file mode 100644 index 2012a7c43415b9fe55f69de885085e5217227314..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js +++ /dev/null @@ -1 +0,0 @@ -var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version\nAll code transferred to free form.\nSome code cosmetics, should not have any effects Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~preconvert_new.f90~~EfferentGraph sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert_new.f90 Source Code PROGRAM PRECONVERT !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program PRECONVERT ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! sMGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/preconvert_new.f90.html","title":"preconvert_new.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN !\tWSAVE = Working Array fuer Fouriertransformation ! Z \t = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE !\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !!\tDer Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . !\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... !\tAnsonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGERMLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~preconvert PRECONVERT program~preconvert->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~preconvert PRECONVERT program~preconvert->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~preconvert PRECONVERT program~preconvert->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~preconvert PRECONVERT program~preconvert->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK Calls proc~~phgrad~~CallsGraph proc~phgrad PHGRAD integermlat integermlat proc~phgrad->integermlat Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~preconvert PRECONVERT program~preconvert->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT program~preconvert->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph GRTOPH module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr program~preconvert PRECONVERT program~preconvert->module~phtogr program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~preconvert PRECONVERT program~preconvert->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~phtogr PHTOGR program~preconvert->module~phtogr module~rwgrib2 RWGRIB2 program~preconvert->module~rwgrib2 module~ftrafo FTRAFO program~preconvert->module~ftrafo module~grtoph GRTOPH program~preconvert->module~grtoph GRIB_API GRIB_API program~preconvert->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program PRECONVERT Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n Transformieren des Windes auf das Gaussgitter Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT proc~readspectral READSPECTRAL program~preconvert->proc~readspectral proc~phgcut PHGCUT program~preconvert->proc~phgcut proc~grph213 GRPH213 program~preconvert->proc~grph213 grib_close_file grib_close_file program~preconvert->grib_close_file proc~statis STATIS program~preconvert->proc~statis proc~phgr213 PHGR213 program~preconvert->proc~phgr213 proc~gauleg GAULEG program~preconvert->proc~gauleg grib_open_file grib_open_file program~preconvert->grib_open_file set99 set99 program~preconvert->set99 proc~posnam POSNAM program~preconvert->proc~posnam proc~readlatlon READLATLON program~preconvert->proc~readlatlon proc~phgrad PHGRAD program~preconvert->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file integermlat integermlat proc~phgrad->integermlat proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js deleted file mode 100644 index 2012a7c43415b9fe55f69de885085e5217227314..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js +++ /dev/null @@ -1 +0,0 @@ -var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version\nAll code transferred to free form.\nSome code cosmetics, should not have any effects Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~preconvert_new.f90~~EfferentGraph sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert_new.f90 Source Code PROGRAM PRECONVERT !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program PRECONVERT ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! sMGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/preconvert_new.f90.html","title":"preconvert_new.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN !\tWSAVE = Working Array fuer Fouriertransformation ! Z \t = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE !\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !!\tDer Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . !\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... !\tAnsonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGERMLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~preconvert PRECONVERT program~preconvert->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~preconvert PRECONVERT program~preconvert->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~preconvert PRECONVERT program~preconvert->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~preconvert PRECONVERT program~preconvert->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK Calls proc~~phgrad~~CallsGraph proc~phgrad PHGRAD integermlat integermlat proc~phgrad->integermlat Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~preconvert PRECONVERT program~preconvert->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT program~preconvert->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph GRTOPH module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr program~preconvert PRECONVERT program~preconvert->module~phtogr program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~preconvert PRECONVERT program~preconvert->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~phtogr PHTOGR program~preconvert->module~phtogr module~rwgrib2 RWGRIB2 program~preconvert->module~rwgrib2 module~ftrafo FTRAFO program~preconvert->module~ftrafo module~grtoph GRTOPH program~preconvert->module~grtoph GRIB_API GRIB_API program~preconvert->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program PRECONVERT Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n Transformieren des Windes auf das Gaussgitter Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT proc~readspectral READSPECTRAL program~preconvert->proc~readspectral proc~phgcut PHGCUT program~preconvert->proc~phgcut proc~grph213 GRPH213 program~preconvert->proc~grph213 grib_close_file grib_close_file program~preconvert->grib_close_file proc~statis STATIS program~preconvert->proc~statis proc~phgr213 PHGR213 program~preconvert->proc~phgr213 proc~gauleg GAULEG program~preconvert->proc~gauleg grib_open_file grib_open_file program~preconvert->grib_open_file set99 set99 program~preconvert->set99 proc~posnam POSNAM program~preconvert->proc~posnam proc~readlatlon READLATLON program~preconvert->proc~readlatlon proc~phgrad PHGRAD program~preconvert->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file integermlat integermlat proc~phgrad->integermlat proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/css/bootstrap.css b/Documentation/html/Documentation/Api/Fortran/css/bootstrap.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/bootstrap.css rename to Documentation/html/Documentation/Api/Fortran/css/bootstrap.css diff --git a/Documentation/FORD/V6/Doc/css/bootstrap.min.css b/Documentation/html/Documentation/Api/Fortran/css/bootstrap.min.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/bootstrap.min.css rename to Documentation/html/Documentation/Api/Fortran/css/bootstrap.min.css diff --git a/Documentation/FORD/V6/Doc/css/font-awesome.css b/Documentation/html/Documentation/Api/Fortran/css/font-awesome.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/font-awesome.css rename to Documentation/html/Documentation/Api/Fortran/css/font-awesome.css diff --git a/Documentation/FORD/V6/Doc/css/font-awesome.min.css b/Documentation/html/Documentation/Api/Fortran/css/font-awesome.min.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/font-awesome.min.css rename to Documentation/html/Documentation/Api/Fortran/css/font-awesome.min.css diff --git a/Documentation/FORD/V6/Doc/css/local.css b/Documentation/html/Documentation/Api/Fortran/css/local.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/local.css rename to Documentation/html/Documentation/Api/Fortran/css/local.css diff --git a/Documentation/FORD/V6/Doc/css/pygments.css b/Documentation/html/Documentation/Api/Fortran/css/pygments.css similarity index 100% rename from Documentation/FORD/V6/Doc/css/pygments.css rename to Documentation/html/Documentation/Api/Fortran/css/pygments.css diff --git a/Documentation/FORD/V6/Doc/favicon.png b/Documentation/html/Documentation/Api/Fortran/favicon.png similarity index 100% rename from Documentation/FORD/V6/Doc/favicon.png rename to Documentation/html/Documentation/Api/Fortran/favicon.png diff --git a/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.eot b/Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.eot similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.eot rename to Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.eot diff --git a/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.svg b/Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.svg similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.svg rename to Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.svg diff --git a/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.ttf b/Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.ttf similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.ttf rename to Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.ttf diff --git a/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.woff b/Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.woff similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.woff rename to Documentation/html/Documentation/Api/Fortran/fonts/fontawesome-webfont.woff diff --git a/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.eot b/Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.eot rename to Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.eot diff --git a/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.svg b/Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.svg rename to Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.svg diff --git a/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.ttf b/Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.ttf rename to Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.ttf diff --git a/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.woff b/Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.woff rename to Documentation/html/Documentation/Api/Fortran/fonts/glyphicons-halflings-regular.woff diff --git a/Documentation/FORD/V6/Doc/index.html b/Documentation/html/Documentation/Api/Fortran/index.html similarity index 95% rename from Documentation/FORD/V6/Doc/index.html rename to Documentation/html/Documentation/Api/Fortran/index.html index 7e79e2d16a4ff6cd0d8e851dbf8e56bc79e80709..90381cf241f53c14a240274c57b91686fb3b3a2a 100644 --- a/Documentation/FORD/V6/Doc/index.html +++ b/Documentation/html/Documentation/Api/Fortran/index.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="./program/preconvert.html">Program</a></li> + <li><a href="./program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="./program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="./program/calc_etadot.html">Program</a></li> </ul> @@ -130,9 +130,10 @@ <div class="col-md-8"> <h1>Flex_extract: Calculation of etadot</h1> - <p></p><div class="alert alert-info" role="alert"><h4>Note</h4><p>for this version + <p></p><div class="alert alert-info" role="alert"><h4>Note</h4><p>for this version: All code transferred to free form. -Some code cosmetics, should not have any effects</p></div> +Some code cosmetics, should not have any effects +Rename some source files</p></div> </div> <div class="col-md-4"> @@ -159,6 +160,10 @@ Some code cosmetics, should not have any effects</p></div> <ul> + <li><a href='./sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></li> + + + <li><a href='./sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> @@ -175,11 +180,7 @@ Some code cosmetics, should not have any effects</p></div> - <li><a href='./sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> - - - - <li><a href='./sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + <li><a href='./sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></li> </ul> @@ -301,7 +302,7 @@ Some code cosmetics, should not have any effects</p></div> <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/js/bootstrap.js b/Documentation/html/Documentation/Api/Fortran/js/bootstrap.js similarity index 100% rename from Documentation/FORD/V6/Doc/js/bootstrap.js rename to Documentation/html/Documentation/Api/Fortran/js/bootstrap.js diff --git a/Documentation/FORD/V6/Doc/js/bootstrap.min.js b/Documentation/html/Documentation/Api/Fortran/js/bootstrap.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/js/bootstrap.min.js rename to Documentation/html/Documentation/Api/Fortran/js/bootstrap.min.js diff --git a/Documentation/FORD/V6/Doc/js/ie10-viewport-bug-workaround.js b/Documentation/html/Documentation/Api/Fortran/js/ie10-viewport-bug-workaround.js similarity index 100% rename from Documentation/FORD/V6/Doc/js/ie10-viewport-bug-workaround.js rename to Documentation/html/Documentation/Api/Fortran/js/ie10-viewport-bug-workaround.js diff --git a/Documentation/FORD/V6/Doc/js/jquery-2.1.3.min.js b/Documentation/html/Documentation/Api/Fortran/js/jquery-2.1.3.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/js/jquery-2.1.3.min.js rename to Documentation/html/Documentation/Api/Fortran/js/jquery-2.1.3.min.js diff --git a/Documentation/FORD/V6/Doc/js/svg-pan-zoom.min.js b/Documentation/html/Documentation/Api/Fortran/js/svg-pan-zoom.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/js/svg-pan-zoom.min.js rename to Documentation/html/Documentation/Api/Fortran/js/svg-pan-zoom.min.js diff --git a/Documentation/FORD/V6/Doc/lists/files.html b/Documentation/html/Documentation/Api/Fortran/lists/files.html similarity index 71% rename from Documentation/FORD/V6/Doc/lists/files.html rename to Documentation/html/Documentation/Api/Fortran/lists/files.html index 692e31855c40a9aa646d74287fb739aab77a4c4b..4370eef314145b77c4443099e0e18f83e419fb82 100644 --- a/Documentation/FORD/V6/Doc/lists/files.html +++ b/Documentation/html/Documentation/Api/Fortran/lists/files.html @@ -46,7 +46,7 @@ All Files – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -71,7 +71,7 @@ All Files – Flex_extract: Calculation of etadot - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -89,7 +89,7 @@ All Files – Flex_extract: Calculation of etadot -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -115,6 +115,8 @@ All Files – Flex_extract: Calculation of etadot <thead><tr><th>File</th><th>Description</th></tr></thead> <tbody> + <tr><td><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></td><td></td></tr> + <tr><td><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></td><td></td></tr> <tr><td><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></td><td></td></tr> @@ -123,9 +125,7 @@ All Files – Flex_extract: Calculation of etadot <tr><td><a href='../sourcefile/posnam.f90.html'>posnam.f90</a></td><td></td></tr> - <tr><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td></td></tr> - - <tr><td><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></td><td></td></tr> + <tr><td><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></td><td></td></tr> </tbody></table> <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> @@ -134,88 +134,88 @@ All Files – Flex_extract: Calculation of etadot <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: file~~graph~~FileGraph Pages: 1 --> -<svg id="filegraphFileGraph" width="330pt" height="130pt" - viewBox="0.00 0.00 330.00 129.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="file~~graph~~FileGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 125.743)"> +<svg id="filegraphFileGraph" width="305pt" height="154pt" + viewBox="0.00 0.00 305.00 154.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="file~~graph~~FileGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 150)"> <title>file~~graph~~FileGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-125.743 326,-125.743 326,4 -4,4"/> -<!-- sourcefile~rwgrib2.f90 --> -<g id="file~~graph~~FileGraph_node1" class="node"><title>sourcefile~rwgrib2.f90</title> -<g id="a_file~~graph~~FileGraph_node1"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="216,-121.743 143,-121.743 143,-97.7426 216,-97.7426 216,-121.743"/> -<text text-anchor="middle" x="179.5" y="-107.343" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> +<polygon fill="white" stroke="none" points="-4,4 -4,-150 301,-150 301,4 -4,4"/> +<!-- sourcefile~grphreal.f90 --> +<g id="file~~graph~~FileGraph_node1" class="node"><title>sourcefile~grphreal.f90</title> +<g id="a_file~~graph~~FileGraph_node1"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="191,-104 121,-104 121,-80 191,-80 191,-104"/> +<text text-anchor="middle" x="156" y="-89.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90 --> -<g id="file~~graph~~FileGraph_node5" class="node"><title>sourcefile~preconvert_new.f90</title> -<g id="a_file~~graph~~FileGraph_node5"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="107,-58.7426 -7.10543e-15,-58.7426 -7.10543e-15,-34.7426 107,-34.7426 107,-58.7426"/> -<text text-anchor="middle" x="53.5" y="-44.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +<!-- sourcefile~calc_etadot.f90 --> +<g id="file~~graph~~FileGraph_node2" class="node"><title>sourcefile~calc_etadot.f90</title> +<g id="a_file~~graph~~FileGraph_node2"><a xlink:href=".././sourcefile/calc_etadot.f90.html" xlink:title="calc_etadot.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-84 0,-84 0,-60 85,-60 85,-84"/> +<text text-anchor="middle" x="42.5" y="-69.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot.f90</text> </a> </g> </g> -<!-- sourcefile~rwgrib2.f90->sourcefile~preconvert_new.f90 --> -<g id="file~~graph~~FileGraph_edge3" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~preconvert_new.f90</title> -<path fill="none" stroke="#000000" d="M154.592,-97.5955C135.464,-87.8777 108.44,-74.1478 87.2928,-63.4034"/> -<polygon fill="#000000" stroke="#000000" points="88.8358,-60.2616 78.335,-58.8523 85.665,-66.5023 88.8358,-60.2616"/> +<!-- sourcefile~grphreal.f90->sourcefile~calc_etadot.f90 --> +<g id="file~~graph~~FileGraph_edge4" class="edge"><title>sourcefile~grphreal.f90->sourcefile~calc_etadot.f90</title> +<path fill="none" stroke="#000000" d="M120.94,-85.8907C112.839,-84.4375 104.014,-82.8544 95.3164,-81.2944"/> +<polygon fill="#000000" stroke="#000000" points="95.6776,-77.8034 85.2167,-79.4828 94.4416,-84.6935 95.6776,-77.8034"/> </g> -<!-- sourcefile~posnam.f90 --> -<g id="file~~graph~~FileGraph_node2" class="node"><title>sourcefile~posnam.f90</title> -<g id="a_file~~graph~~FileGraph_node2"><a xlink:href=".././sourcefile/posnam.f90.html" xlink:title="posnam.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="321.5,-79.7426 252.5,-79.7426 252.5,-55.7426 321.5,-55.7426 321.5,-79.7426"/> -<text text-anchor="middle" x="287" y="-65.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">posnam.f90</text> +<!-- sourcefile~rwgrib2.f90 --> +<g id="file~~graph~~FileGraph_node3" class="node"><title>sourcefile~rwgrib2.f90</title> +<g id="a_file~~graph~~FileGraph_node3"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwgrib2.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="189,-146 123,-146 123,-122 189,-122 189,-146"/> +<text text-anchor="middle" x="156" y="-131.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwgrib2.f90</text> </a> </g> </g> -<!-- sourcefile~ftrafo.f90 --> -<g id="file~~graph~~FileGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> -<g id="a_file~~graph~~FileGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="207,-79.7426 152,-79.7426 152,-55.7426 207,-55.7426 207,-79.7426"/> -<text text-anchor="middle" x="179.5" y="-65.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> -</a> +<!-- sourcefile~rwgrib2.f90->sourcefile~calc_etadot.f90 --> +<g id="file~~graph~~FileGraph_edge2" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~calc_etadot.f90</title> +<path fill="none" stroke="#000000" d="M133.237,-121.899C116.353,-112.51 92.7443,-99.3825 73.9799,-88.9485"/> +<polygon fill="#000000" stroke="#000000" points="75.6488,-85.8718 65.2081,-84.0709 72.2469,-91.9896 75.6488,-85.8718"/> </g> +<!-- sourcefile~posnam.f90 --> +<g id="file~~graph~~FileGraph_node4" class="node"><title>sourcefile~posnam.f90</title> +<g id="a_file~~graph~~FileGraph_node4"><a xlink:href=".././sourcefile/posnam.f90.html" xlink:title="posnam.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="296.5,-106 227.5,-106 227.5,-82 296.5,-82 296.5,-106"/> +<text text-anchor="middle" x="262" y="-91.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">posnam.f90</text> +</a> </g> -<!-- sourcefile~ftrafo.f90->sourcefile~preconvert_new.f90 --> -<g id="file~~graph~~FileGraph_edge4" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~preconvert_new.f90</title> -<path fill="none" stroke="#000000" d="M151.899,-63.2375C141.669,-61.5051 129.506,-59.4452 117.302,-57.3783"/> -<polygon fill="#000000" stroke="#000000" points="117.526,-53.8665 107.082,-55.6475 116.357,-60.7682 117.526,-53.8665"/> </g> -<!-- sourcefile~grphreal.f90 --> -<g id="file~~graph~~FileGraph_node4" class="node"><title>sourcefile~grphreal.f90</title> -<g id="a_file~~graph~~FileGraph_node4"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="214.5,-37.7426 144.5,-37.7426 144.5,-13.7426 214.5,-13.7426 214.5,-37.7426"/> -<text text-anchor="middle" x="179.5" y="-23.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> +<!-- sourcefile~phgrreal.f90 --> +<g id="file~~graph~~FileGraph_node5" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_file~~graph~~FileGraph_node5"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="297,-64 227,-64 227,-40 297,-40 297,-64"/> +<text text-anchor="middle" x="262" y="-49.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> </a> </g> </g> -<!-- sourcefile~grphreal.f90->sourcefile~preconvert_new.f90 --> -<g id="file~~graph~~FileGraph_edge5" class="edge"><title>sourcefile~grphreal.f90->sourcefile~preconvert_new.f90</title> -<path fill="none" stroke="#000000" d="M144.288,-31.5365C135.865,-32.963 126.579,-34.5356 117.27,-36.1121"/> -<polygon fill="#000000" stroke="#000000" points="116.475,-32.6969 107.2,-37.8176 117.644,-39.5987 116.475,-32.6969"/> +<!-- sourcefile~phgrreal.f90->sourcefile~grphreal.f90 --> +<g id="file~~graph~~FileGraph_edge1" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" d="M229.797,-64.0013C219.81,-67.8422 208.599,-72.1543 198.022,-76.2222"/> +<polygon fill="#000000" stroke="#000000" points="196.618,-73.0123 188.541,-79.8689 199.131,-79.5458 196.618,-73.0123"/> </g> -<!-- sourcefile~phgrreal.f90 --> -<g id="file~~graph~~FileGraph_node6" class="node"><title>sourcefile~phgrreal.f90</title> -<g id="a_file~~graph~~FileGraph_node6"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="322,-37.7426 252,-37.7426 252,-13.7426 322,-13.7426 322,-37.7426"/> -<text text-anchor="middle" x="287" y="-23.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> +<!-- sourcefile~phgrreal.f90->sourcefile~calc_etadot.f90 --> +<g id="file~~graph~~FileGraph_edge5" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~calc_etadot.f90</title> +<path fill="none" stroke="#000000" d="M226.536,-55.1691C191.2,-58.4184 135.82,-63.5108 95.2244,-67.2437"/> +<polygon fill="#000000" stroke="#000000" points="94.8806,-63.7605 85.2431,-68.1616 95.5216,-70.7311 94.8806,-63.7605"/> +</g> +<!-- sourcefile~ftrafo.f90 --> +<g id="file~~graph~~FileGraph_node6" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_file~~graph~~FileGraph_node6"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="183.5,-24 128.5,-24 128.5,-0 183.5,-0 183.5,-24"/> +<text text-anchor="middle" x="156" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> </a> </g> </g> <!-- sourcefile~phgrreal.f90->sourcefile~ftrafo.f90 --> -<g id="file~~graph~~FileGraph_edge1" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~ftrafo.f90</title> -<path fill="none" stroke="#000000" d="M255.768,-37.7781C243.541,-42.6458 229.326,-48.3046 216.564,-53.3851"/> -<polygon fill="#000000" stroke="#000000" points="215.142,-50.1843 207.146,-57.1349 217.731,-56.6879 215.142,-50.1843"/> -</g> -<!-- sourcefile~phgrreal.f90->sourcefile~grphreal.f90 --> -<g id="file~~graph~~FileGraph_edge2" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~grphreal.f90</title> -<path fill="none" stroke="#000000" d="M251.747,-25.7426C243.092,-25.7426 233.675,-25.7426 224.609,-25.7426"/> -<polygon fill="#000000" stroke="#000000" points="224.581,-22.2427 214.581,-25.7426 224.581,-29.2427 224.581,-22.2427"/> +<g id="file~~graph~~FileGraph_edge6" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" d="M229.797,-39.9987C218.298,-35.576 205.174,-30.5286 193.266,-25.9486"/> +<polygon fill="#000000" stroke="#000000" points="194.202,-22.5584 183.612,-22.2353 191.689,-29.0918 194.202,-22.5584"/> </g> -<!-- sourcefile~phgrreal.f90->sourcefile~preconvert_new.f90 --> -<g id="file~~graph~~FileGraph_edge6" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~preconvert_new.f90</title> -<path fill="none" stroke="#000000" d="M252.979,-13.6821C241.444,-10.0488 228.302,-6.54816 216,-4.74256 183.899,-0.0312039 174.651,2.38688 143,-4.74256 121.582,-9.56703 99.2599,-20.206 82.3924,-29.5685"/> -<polygon fill="#000000" stroke="#000000" points="80.5594,-26.5849 73.6231,-34.5935 84.0397,-32.6584 80.5594,-26.5849"/> +<!-- sourcefile~ftrafo.f90->sourcefile~calc_etadot.f90 --> +<g id="file~~graph~~FileGraph_edge3" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~calc_etadot.f90</title> +<path fill="none" stroke="#000000" d="M132.436,-24.1419C115.887,-33.0471 93.2048,-45.253 74.8889,-55.1091"/> +<polygon fill="#000000" stroke="#000000" points="73.1776,-52.0554 66.0301,-59.8762 76.4947,-58.2196 73.1776,-52.0554"/> </g> </g> </svg> @@ -260,7 +260,7 @@ All Files – Flex_extract: Calculation of etadot <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/lists/modules.html b/Documentation/html/Documentation/Api/Fortran/lists/modules.html similarity index 83% rename from Documentation/FORD/V6/Doc/lists/modules.html rename to Documentation/html/Documentation/Api/Fortran/lists/modules.html index a0eeff8397e09da9bbe5d06aca1619a7077d5f30..fc2de68eade645128203e368c35cb187014e6745 100644 --- a/Documentation/FORD/V6/Doc/lists/modules.html +++ b/Documentation/html/Documentation/Api/Fortran/lists/modules.html @@ -46,7 +46,7 @@ All Modules – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -71,7 +71,7 @@ All Modules – Flex_extract: Calculation of etadot - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -89,7 +89,7 @@ All Modules – Flex_extract: Calculation of etadot -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -129,7 +129,7 @@ All Modules – Flex_extract: Calculation of etadot <!--active--> - <tr class=""><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></td><td></td></tr> + <tr class=""><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></td><td></td></tr> <!----> @@ -145,27 +145,14 @@ All Modules – Flex_extract: Calculation of etadot <g id="module~~graph~~ModuleGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 360)"> <title>module~~graph~~ModuleGraph</title> <polygon fill="white" stroke="none" points="-4,4 -4,-360 301,-360 301,4 -4,4"/> -<!-- module~grtoph --> -<g id="module~~graph~~ModuleGraph_node1" class="node"><title>module~grtoph</title> -<g id="a_module~~graph~~ModuleGraph_node1"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> -<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-356 100.5,-356 100.5,-332 158.5,-332 158.5,-356"/> -<text text-anchor="middle" x="129.5" y="-341.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> -</a> -</g> -</g> -<!-- module~phtogr --> -<g id="module~~graph~~ModuleGraph_node4" class="node"><title>module~phtogr</title> -<g id="a_module~~graph~~ModuleGraph_node4"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> -<polygon fill="#337ab7" stroke="#337ab7" points="58,-129 0,-129 0,-105 58,-105 58,-129"/> -<text text-anchor="middle" x="29" y="-114.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +<!-- module~rwgrib2 --> +<g id="module~~graph~~ModuleGraph_node1" class="node"><title>module~rwgrib2</title> +<g id="a_module~~graph~~ModuleGraph_node1"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> +<polygon fill="#337ab7" stroke="#337ab7" points="160,-356 99,-356 99,-332 160,-332 160,-356"/> +<text text-anchor="middle" x="129.5" y="-341.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> </a> </g> </g> -<!-- module~grtoph->module~phtogr --> -<g id="module~~graph~~ModuleGraph_edge1" class="edge"><title>module~grtoph->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M103.348,-331.753C99.8583,-329.233 96.5882,-326.317 94,-323 49.9872,-266.595 36.0226,-179.656 31.7695,-139.166"/> -<polygon fill="#000000" stroke="#000000" points="35.238,-138.667 30.8106,-129.041 28.2692,-139.327 35.238,-138.667"/> -</g> <!-- module~ftrafo --> <g id="module~~graph~~ModuleGraph_node2" class="node"><title>module~ftrafo</title> <g id="a_module~~graph~~ModuleGraph_node2"><a xlink:href=".././module/ftrafo.html" xlink:title="FTRAFO"> @@ -174,40 +161,53 @@ All Modules – Flex_extract: Calculation of etadot </a> </g> </g> -<!-- module~rwgrib2 --> -<g id="module~~graph~~ModuleGraph_node3" class="node"><title>module~rwgrib2</title> -<g id="a_module~~graph~~ModuleGraph_node3"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> -<polygon fill="#337ab7" stroke="#337ab7" points="160,-272 99,-272 99,-248 160,-248 160,-272"/> -<text text-anchor="middle" x="129.5" y="-257.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> +<!-- module~grtoph --> +<g id="module~~graph~~ModuleGraph_node3" class="node"><title>module~grtoph</title> +<g id="a_module~~graph~~ModuleGraph_node3"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-272 100.5,-272 100.5,-248 158.5,-248 158.5,-272"/> +<text text-anchor="middle" x="129.5" y="-257.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> </a> </g> </g> -<!-- program~preconvert --> -<g id="module~~graph~~ModuleGraph_node5" class="node"><title>program~preconvert</title> -<g id="a_module~~graph~~ModuleGraph_node5"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="291.5,-274 206.5,-274 206.5,-250 291.5,-250 291.5,-274"/> -<text text-anchor="middle" x="249" y="-259.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- module~phtogr --> +<g id="module~~graph~~ModuleGraph_node4" class="node"><title>module~phtogr</title> +<g id="a_module~~graph~~ModuleGraph_node4"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-129 0,-129 0,-105 58,-105 58,-129"/> +<text text-anchor="middle" x="29" y="-114.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> </a> </g> </g> -<!-- program~preconvert->module~grtoph --> -<g id="module~~graph~~ModuleGraph_edge4" class="edge"><title>program~preconvert->module~grtoph</title> +<!-- module~grtoph->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge1" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M109.362,-247.823C103.988,-243.836 98.414,-239.107 94,-234 68.5839,-204.595 48.9806,-163.444 38.4957,-138.596"/> +<polygon fill="#000000" stroke="#000000" points="41.726,-137.248 34.6898,-129.327 35.2506,-139.907 41.726,-137.248"/> +</g> +<!-- program~calc_etadot --> +<g id="module~~graph~~ModuleGraph_node5" class="node"><title>program~calc_etadot</title> +<g id="a_module~~graph~~ModuleGraph_node5"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="282.5,-274 215.5,-274 215.5,-250 282.5,-250 282.5,-274"/> +<text text-anchor="middle" x="249" y="-259.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> +</a> +</g> +</g> +<!-- program~calc_etadot->module~rwgrib2 --> +<g id="module~~graph~~ModuleGraph_edge3" class="edge"><title>program~calc_etadot->module~rwgrib2</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M232.381,-274.111C215.912,-286.731 189.068,-306.875 165,-323 163.34,-324.112 161.622,-325.237 159.879,-326.358"/> <polygon fill="#000000" stroke="#000000" points="157.73,-323.575 151.117,-331.853 161.449,-329.505 157.73,-323.575"/> </g> -<!-- program~preconvert->module~ftrafo --> -<g id="module~~graph~~ModuleGraph_edge5" class="edge"><title>program~preconvert->module~ftrafo</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M212.746,-274.001C198.246,-278.937 181.46,-284.652 166.849,-289.626"/> -<polygon fill="#000000" stroke="#000000" points="165.474,-286.397 157.135,-292.933 167.729,-293.023 165.474,-286.397"/> +<!-- program~calc_etadot->module~ftrafo --> +<g id="module~~graph~~ModuleGraph_edge5" class="edge"><title>program~calc_etadot->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.27,-273.142C200.23,-278.262 182.339,-284.353 166.878,-289.616"/> +<polygon fill="#000000" stroke="#000000" points="165.462,-286.401 157.124,-292.937 167.718,-293.027 165.462,-286.401"/> </g> -<!-- program~preconvert->module~rwgrib2 --> -<g id="module~~graph~~ModuleGraph_edge3" class="edge"><title>program~preconvert->module~rwgrib2</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.243,-261.289C194.627,-261.092 182.042,-260.877 170.528,-260.681"/> -<polygon fill="#000000" stroke="#000000" points="170.372,-257.178 160.314,-260.507 170.253,-264.177 170.372,-257.178"/> +<!-- program~calc_etadot->module~grtoph --> +<g id="module~~graph~~ModuleGraph_edge4" class="edge"><title>program~calc_etadot->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.27,-261.443C200.814,-261.197 183.726,-260.906 168.692,-260.65"/> +<polygon fill="#000000" stroke="#000000" points="168.728,-257.15 158.67,-260.479 168.609,-264.149 168.728,-257.15"/> </g> -<!-- program~preconvert->module~phtogr --> -<g id="module~~graph~~ModuleGraph_edge6" class="edge"><title>program~preconvert->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.343,-252.126C173.47,-242.854 127.693,-226.53 94,-201 71.3738,-183.855 52.7047,-156.72 41.4834,-137.952"/> +<!-- program~calc_etadot->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge6" class="edge"><title>program~calc_etadot->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.363,-254.585C182.299,-245.88 130.902,-228.962 94,-201 71.3738,-183.855 52.7047,-156.72 41.4834,-137.952"/> <polygon fill="#000000" stroke="#000000" points="44.4849,-136.151 36.4504,-129.244 38.4244,-139.654 44.4849,-136.151"/> </g> <!-- GRIB_API --> @@ -215,86 +215,86 @@ All Modules – Flex_extract: Calculation of etadot <polygon fill="#337ab7" stroke="#337ab7" points="160,-192 99,-192 99,-168 160,-168 160,-192"/> <text text-anchor="middle" x="129.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> </g> -<!-- program~preconvert->GRIB_API --> -<g id="module~~graph~~ModuleGraph_edge2" class="edge"><title>program~preconvert->GRIB_API</title> +<!-- program~calc_etadot->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge2" class="edge"><title>program~calc_etadot->GRIB_API</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M216.829,-249.937C211.371,-247.309 205.882,-244.31 201,-241 182.529,-228.478 181.944,-220.522 165,-206 161.948,-203.384 158.662,-200.724 155.373,-198.153"/> <polygon fill="#000000" stroke="#000000" points="157.401,-195.298 147.326,-192.021 153.158,-200.866 157.401,-195.298"/> </g> -<!-- proc~readspectral --> -<g id="module~~graph~~ModuleGraph_node6" class="node"><title>proc~readspectral</title> -<g id="a_module~~graph~~ModuleGraph_node6"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> -<polygon fill="#d9534f" stroke="#d9534f" points="297,-232 201,-232 201,-208 297,-208 297,-232"/> -<text text-anchor="middle" x="249" y="-217.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +<!-- proc~readlatlon --> +<g id="module~~graph~~ModuleGraph_node6" class="node"><title>proc~readlatlon</title> +<g id="a_module~~graph~~ModuleGraph_node6"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="290,-232 208,-232 208,-208 290,-208 290,-232"/> +<text text-anchor="middle" x="249" y="-217.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> </a> </g> </g> -<!-- proc~readspectral->GRIB_API --> -<g id="module~~graph~~ModuleGraph_edge7" class="edge"><title>proc~readspectral->GRIB_API</title> +<!-- proc~readlatlon->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge7" class="edge"><title>proc~readlatlon->GRIB_API</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M212.746,-207.999C199.256,-203.406 183.787,-198.14 169.931,-193.423"/> <polygon fill="#000000" stroke="#000000" points="170.773,-190.013 160.179,-190.103 168.517,-196.639 170.773,-190.013"/> </g> -<!-- proc~readlatlon --> -<g id="module~~graph~~ModuleGraph_node7" class="node"><title>proc~readlatlon</title> -<g id="a_module~~graph~~ModuleGraph_node7"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> -<polygon fill="#d9534f" stroke="#d9534f" points="290,-190 208,-190 208,-166 290,-166 290,-190"/> -<text text-anchor="middle" x="249" y="-175.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> +<!-- proc~phgracut --> +<g id="module~~graph~~ModuleGraph_node7" class="node"><title>proc~phgracut</title> +<g id="a_module~~graph~~ModuleGraph_node7"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="165,-150 94,-150 94,-126 165,-126 165,-150"/> +<text text-anchor="middle" x="129.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> </a> </g> </g> -<!-- proc~readlatlon->GRIB_API --> -<g id="module~~graph~~ModuleGraph_edge8" class="edge"><title>proc~readlatlon->GRIB_API</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M207.892,-178.683C195.757,-178.889 182.438,-179.116 170.322,-179.322"/> -<polygon fill="#000000" stroke="#000000" points="169.983,-175.827 160.044,-179.497 170.102,-182.826 169.983,-175.827"/> +<!-- proc~phgracut->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge8" class="edge"><title>proc~phgracut->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.7726,-130.596C85.5033,-128.833 76.6341,-126.942 68.2181,-125.148"/> +<polygon fill="#000000" stroke="#000000" points="68.7578,-121.684 58.2478,-123.022 67.2982,-128.531 68.7578,-121.684"/> </g> -<!-- proc~vdtouv --> -<g id="module~~graph~~ModuleGraph_node8" class="node"><title>proc~vdtouv</title> -<g id="a_module~~graph~~ModuleGraph_node8"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> -<polygon fill="#d9534f" stroke="#d9534f" points="157.5,-150 101.5,-150 101.5,-126 157.5,-126 157.5,-150"/> -<text text-anchor="middle" x="129.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> +<!-- proc~vduvsub --> +<g id="module~~graph~~ModuleGraph_node8" class="node"><title>proc~vduvsub</title> +<g id="a_module~~graph~~ModuleGraph_node8"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="160.5,-108 98.5,-108 98.5,-84 160.5,-84 160.5,-108"/> +<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> </a> </g> </g> -<!-- proc~vdtouv->module~phtogr --> -<g id="module~~graph~~ModuleGraph_edge9" class="edge"><title>proc~vdtouv->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M101.324,-132.206C91.0346,-130.012 79.1248,-127.473 68.0197,-125.106"/> -<polygon fill="#000000" stroke="#000000" points="68.627,-121.657 58.117,-122.994 67.1674,-128.503 68.627,-121.657"/> +<!-- proc~vduvsub->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge9" class="edge"><title>proc~vduvsub->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M98.4115,-102.415C88.8219,-104.459 78.0839,-106.749 68.0089,-108.897"/> +<polygon fill="#000000" stroke="#000000" points="67.2724,-105.475 58.222,-110.983 68.732,-112.321 67.2724,-105.475"/> +</g> +<!-- proc~readspectral --> +<g id="module~~graph~~ModuleGraph_node9" class="node"><title>proc~readspectral</title> +<g id="a_module~~graph~~ModuleGraph_node9"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="297,-190 201,-190 201,-166 297,-166 297,-190"/> +<text text-anchor="middle" x="249" y="-175.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +</a> +</g> +</g> +<!-- proc~readspectral->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge10" class="edge"><title>proc~readspectral->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.885,-178.802C190.758,-178.974 180.149,-179.155 170.331,-179.322"/> +<polygon fill="#000000" stroke="#000000" points="169.985,-175.827 160.046,-179.497 170.104,-182.826 169.985,-175.827"/> </g> <!-- proc~writelatlon --> -<g id="module~~graph~~ModuleGraph_node9" class="node"><title>proc~writelatlon</title> -<g id="a_module~~graph~~ModuleGraph_node9"><a xlink:href=".././proc/writelatlon.html" xlink:title="WRITELATLON"> +<g id="module~~graph~~ModuleGraph_node10" class="node"><title>proc~writelatlon</title> +<g id="a_module~~graph~~ModuleGraph_node10"><a xlink:href=".././proc/writelatlon.html" xlink:title="WRITELATLON"> <polygon fill="#d9534f" stroke="#d9534f" points="293,-148 205,-148 205,-124 293,-124 293,-148"/> <text text-anchor="middle" x="249" y="-133.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">WRITELATLON</text> </a> </g> </g> <!-- proc~writelatlon->GRIB_API --> -<g id="module~~graph~~ModuleGraph_edge10" class="edge"><title>proc~writelatlon->GRIB_API</title> +<g id="module~~graph~~ModuleGraph_edge11" class="edge"><title>proc~writelatlon->GRIB_API</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.893,-148.023C201.623,-153.367 184.694,-159.706 169.687,-165.326"/> <polygon fill="#000000" stroke="#000000" points="168.288,-162.112 160.15,-168.897 170.743,-168.668 168.288,-162.112"/> </g> -<!-- proc~phgracut --> -<g id="module~~graph~~ModuleGraph_node10" class="node"><title>proc~phgracut</title> -<g id="a_module~~graph~~ModuleGraph_node10"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="165,-108 94,-108 94,-84 165,-84 165,-108"/> -<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> -</a> -</g> -</g> -<!-- proc~phgracut->module~phtogr --> -<g id="module~~graph~~ModuleGraph_edge11" class="edge"><title>proc~phgracut->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.7726,-103.404C85.5033,-105.167 76.6341,-107.058 68.2181,-108.852"/> -<polygon fill="#000000" stroke="#000000" points="67.2982,-105.469 58.2478,-110.978 68.7578,-112.316 67.2982,-105.469"/> -</g> -<!-- proc~vduvsub --> -<g id="module~~graph~~ModuleGraph_node11" class="node"><title>proc~vduvsub</title> -<g id="a_module~~graph~~ModuleGraph_node11"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> -<polygon fill="#d9534f" stroke="#d9534f" points="160.5,-66 98.5,-66 98.5,-42 160.5,-42 160.5,-66"/> -<text text-anchor="middle" x="129.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> +<!-- proc~vdtouv --> +<g id="module~~graph~~ModuleGraph_node11" class="node"><title>proc~vdtouv</title> +<g id="a_module~~graph~~ModuleGraph_node11"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<polygon fill="#d9534f" stroke="#d9534f" points="157.5,-66 101.5,-66 101.5,-42 157.5,-42 157.5,-66"/> +<text text-anchor="middle" x="129.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> </a> </g> </g> -<!-- proc~vduvsub->module~phtogr --> -<g id="module~~graph~~ModuleGraph_edge12" class="edge"><title>proc~vduvsub->module~phtogr</title> +<!-- proc~vdtouv->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge12" class="edge"><title>proc~vdtouv->module~phtogr</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.362,-66.1004C103.632,-68.9861 98.6229,-72.0773 94,-75 81.6793,-82.7894 68.1682,-91.6137 56.7482,-99.1563"/> <polygon fill="#000000" stroke="#000000" points="54.5035,-96.445 48.1007,-104.886 58.37,-102.28 54.5035,-96.445"/> </g> @@ -374,7 +374,7 @@ All Modules – Flex_extract: Calculation of etadot <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/lists/procedures.html b/Documentation/html/Documentation/Api/Fortran/lists/procedures.html similarity index 58% rename from Documentation/FORD/V6/Doc/lists/procedures.html rename to Documentation/html/Documentation/Api/Fortran/lists/procedures.html index fcd9fe1f31c5c292cf5aeae338fdc12c3d6648af..bc4ca6cb6bbcfaaa8db594d05588571368edcb79 100644 --- a/Documentation/FORD/V6/Doc/lists/procedures.html +++ b/Documentation/html/Documentation/Api/Fortran/lists/procedures.html @@ -46,7 +46,7 @@ All Procedures – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -71,7 +71,7 @@ All Procedures – Flex_extract: Calculation of etadot - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -89,7 +89,7 @@ All Procedures – Flex_extract: Calculation of etadot -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -125,7 +125,7 @@ All Procedures – Flex_extract: Calculation of etadot <tr><td><a href='../proc/gauleg.html'>GAULEG</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>BERECHNET DIE GAUSS+SCHEN BREITEN</p></td></tr> - <tr><td><a href='../proc/grph213.html'>GRPH213</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td><p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + <tr><td><a href='../proc/grph213.html'>GRPH213</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td><p>WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH</p></td></tr> @@ -133,7 +133,7 @@ All Procedures – Flex_extract: Calculation of etadot FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH</p></td></tr> - <tr><td><a href='../proc/ia.html'>IA</a></td><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td>Function</td><td><p>Calculate something that is roughly log10( maxval(field1)/g ) [PS] </p></td></tr> + <tr><td><a href='../proc/ia.html'>IA</a></td><td><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></td><td>Function</td><td><p>Calculate something that is roughly log10( maxval(field1)/g ) [PS] </p></td></tr> <tr><td><a href='../proc/legtr.html'>LEGTR</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</p></td></tr> @@ -144,7 +144,7 @@ All Procedures – Flex_extract: Calculation of etadot <tr><td><a href='../proc/phgcut.html'>PHGCUT</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt - Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p></td></tr> + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p><a href="../proc/phgcut.html" class="pull-right"><emph>Read more…</emph></a></td></tr> <tr><td><a href='../proc/phgpns.html'>PHGPNS</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td></td></tr> @@ -170,9 +170,9 @@ All Procedures – Flex_extract: Calculation of etadot <tr><td><a href='../proc/posnam.html'>POSNAM</a></td><td><a href='../sourcefile/posnam.f90.html'>posnam.f90</a></td><td>Subroutine</td><td><p>position in namelist file.</p></td></tr> - <tr><td><a href='../proc/readlatlon.html'>READLATLON</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>Read a field from GRIB file on lat-lon grid</p></td></tr> + <tr><td><a href='../proc/readlatlon.html'>READLATLON</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>Read a field from GRIB file on lat-lon grid</p><a href="../proc/readlatlon.html" class="pull-right"><emph>Read more…</emph></a></td></tr> - <tr><td><a href='../proc/readspectral.html'>READSPECTRAL</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>read a GRIB file in spherical harmonics</p></td></tr> + <tr><td><a href='../proc/readspectral.html'>READSPECTRAL</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>read a GRIB file in spherical harmonics</p><a href="../proc/readspectral.html" class="pull-right"><emph>Read more…</emph></a></td></tr> <tr><td><a href='../proc/rfouftr.html'>RFOUFTR</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td></td></tr> @@ -180,7 +180,7 @@ All Procedures – Flex_extract: Calculation of etadot <tr><td><a href='../proc/spfilter.html'>SPFILTER</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</p></td></tr> - <tr><td><a href='../proc/statis.html'>STATIS</a></td><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td>Subroutine</td><td><p>calculate mean, rms, stdev</p></td></tr> + <tr><td><a href='../proc/statis.html'>STATIS</a></td><td><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></td><td>Subroutine</td><td><p>calculate mean, rms, stdev</p></td></tr> <tr><td><a href='../proc/vdtouv.html'>VDTOUV</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>Berechnung der scale winds aus Vorticity und Divergenz uebergibt man in XMN die Divergenz, so wird der divergente Anteil des @@ -199,464 +199,454 @@ All Procedures – Flex_extract: Calculation of etadot <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: call~~graph~~CallGraph Pages: 1 --> -<svg id="callgraphCallGraph" width="551pt" height="921pt" - viewBox="0.00 0.00 551.00 921.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="call~~graph~~CallGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 917)"> +<svg id="callgraphCallGraph" width="551pt" height="725pt" + viewBox="0.00 0.00 551.00 725.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="call~~graph~~CallGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 721)"> <title>call~~graph~~CallGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-917 547,-917 547,4 -4,4"/> -<!-- proc~phgcut --> -<g id="call~~graph~~CallGraph_node1" class="node"><title>proc~phgcut</title> -<g id="a_call~~graph~~CallGraph_node1"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-514 143.5,-514 143.5,-490 200.5,-490 200.5,-514"/> -<text text-anchor="middle" x="172" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> -</a> -</g> -</g> -<!-- proc~phgpns --> -<g id="call~~graph~~CallGraph_node2" class="node"><title>proc~phgpns</title> -<g id="a_call~~graph~~CallGraph_node2"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> -<polygon fill="#d9534f" stroke="#d9534f" points="332.5,-556 276.5,-556 276.5,-532 332.5,-532 332.5,-556"/> -<text text-anchor="middle" x="304.5" y="-541.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> -</a> -</g> -</g> -<!-- proc~phgcut->proc~phgpns --> -<g id="call~~graph~~CallGraph_edge2" class="edge"><title>proc~phgcut->proc~phgpns</title> -<path fill="none" stroke="#000000" d="M200.676,-510.907C219.923,-517.102 245.788,-525.426 266.761,-532.176"/> -<polygon fill="#000000" stroke="#000000" points="265.72,-535.518 276.312,-535.25 267.865,-528.854 265.72,-535.518"/> -</g> +<polygon fill="white" stroke="none" points="-4,4 -4,-721 547,-721 547,4 -4,4"/> <!-- proc~phsymcut --> -<g id="call~~graph~~CallGraph_node13" class="node"><title>proc~phsymcut</title> -<g id="a_call~~graph~~CallGraph_node13"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="340,-514 269,-514 269,-490 340,-490 340,-514"/> -<text text-anchor="middle" x="304.5" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +<g id="call~~graph~~CallGraph_node1" class="node"><title>proc~phsymcut</title> +<g id="a_call~~graph~~CallGraph_node1"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="340,-482 269,-482 269,-458 340,-458 340,-482"/> +<text text-anchor="middle" x="304.5" y="-467.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> </a> </g> </g> -<!-- proc~phgcut->proc~phsymcut --> -<g id="call~~graph~~CallGraph_edge1" class="edge"><title>proc~phgcut->proc~phsymcut</title> -<path fill="none" stroke="#000000" d="M200.676,-502C217.546,-502 239.498,-502 258.786,-502"/> -<polygon fill="#000000" stroke="#000000" points="258.882,-505.5 268.882,-502 258.882,-498.5 258.882,-505.5"/> -</g> <!-- proc~rfourtr --> -<g id="call~~graph~~CallGraph_node24" class="node"><title>proc~rfourtr</title> -<g id="a_call~~graph~~CallGraph_node24"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> -<polygon fill="#d9534f" stroke="#d9534f" points="453,-514 389,-514 389,-490 453,-490 453,-514"/> -<text text-anchor="middle" x="421" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +<g id="call~~graph~~CallGraph_node13" class="node"><title>proc~rfourtr</title> +<g id="a_call~~graph~~CallGraph_node13"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="453,-524 389,-524 389,-500 453,-500 453,-524"/> +<text text-anchor="middle" x="421" y="-509.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> </a> </g> </g> -<!-- proc~phgpns->proc~rfourtr --> -<g id="call~~graph~~CallGraph_edge3" class="edge"><title>proc~phgpns->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M332.635,-534.047C346.414,-528.992 363.447,-522.744 378.803,-517.112"/> -<polygon fill="#000000" stroke="#000000" points="380.418,-520.247 388.601,-513.517 378.008,-513.675 380.418,-520.247"/> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge1" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M338.311,-482.036C351.073,-486.717 365.83,-492.13 379.262,-497.057"/> +<polygon fill="#000000" stroke="#000000" points="378.166,-500.383 388.76,-500.541 380.577,-493.811 378.166,-500.383"/> </g> -<!-- proc~readspectral --> -<g id="call~~graph~~CallGraph_node3" class="node"><title>proc~readspectral</title> -<g id="a_call~~graph~~CallGraph_node3"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> -<polygon fill="#d9534f" stroke="#d9534f" points="220,-440 124,-440 124,-416 220,-416 220,-440"/> -<text text-anchor="middle" x="172" y="-425.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +<!-- proc~contgl --> +<g id="call~~graph~~CallGraph_node2" class="node"><title>proc~contgl</title> +<g id="a_call~~graph~~CallGraph_node2"><a xlink:href=".././proc/contgl.html" xlink:title="CONTGL"> +<polygon fill="#d9534f" stroke="#d9534f" points="72.5,-297 15.5,-297 15.5,-273 72.5,-273 72.5,-297"/> +<text text-anchor="middle" x="44" y="-282.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">CONTGL</text> </a> </g> </g> -<!-- grib_count_in_file --> -<g id="call~~graph~~CallGraph_node35" class="node"><title>grib_count_in_file</title> -<polygon fill="#777777" stroke="#777777" points="353,-430 256,-430 256,-406 353,-406 353,-430"/> -<text text-anchor="middle" x="304.5" y="-415.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +<!-- proc~rfouftr --> +<g id="call~~graph~~CallGraph_node3" class="node"><title>proc~rfouftr</title> +<g id="a_call~~graph~~CallGraph_node3"><a xlink:href=".././proc/rfouftr.html" xlink:title="RFOUFTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="453,-482 389,-482 389,-458 453,-458 453,-482"/> +<text text-anchor="middle" x="421" y="-467.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOUFTR</text> +</a> </g> -<!-- proc~readspectral->grib_count_in_file --> -<g id="call~~graph~~CallGraph_edge4" class="edge"><title>proc~readspectral->grib_count_in_file</title> -<path fill="none" stroke="#000000" d="M220.113,-424.39C228.314,-423.761 236.93,-423.101 245.385,-422.453"/> -<polygon fill="#000000" stroke="#000000" points="245.875,-425.926 255.578,-421.672 245.34,-418.947 245.875,-425.926"/> </g> -<!-- grib_close_file --> -<g id="call~~graph~~CallGraph_node41" class="node"><title>grib_close_file</title> -<polygon fill="#777777" stroke="#777777" points="345,-388 264,-388 264,-364 345,-364 345,-388"/> -<text text-anchor="middle" x="304.5" y="-373.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +<!-- fft99 --> +<g id="call~~graph~~CallGraph_node31" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="543,-524 489,-524 489,-500 543,-500 543,-524"/> +<text text-anchor="middle" x="516" y="-509.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> </g> -<!-- proc~readspectral->grib_close_file --> -<g id="call~~graph~~CallGraph_edge5" class="edge"><title>proc~readspectral->grib_close_file</title> -<path fill="none" stroke="#000000" d="M203.267,-415.939C221.174,-408.804 244.071,-399.68 263.459,-391.955"/> -<polygon fill="#000000" stroke="#000000" points="264.951,-395.128 272.945,-388.175 262.359,-388.626 264.951,-395.128"/> +<!-- proc~rfouftr->fft99 --> +<g id="call~~graph~~CallGraph_edge3" class="edge"><title>proc~rfouftr->fft99</title> +<path fill="none" stroke="#000000" d="M448.899,-482.148C458.412,-486.444 469.265,-491.345 479.388,-495.917"/> +<polygon fill="#000000" stroke="#000000" points="478.248,-499.243 488.802,-500.169 481.129,-492.863 478.248,-499.243"/> </g> -<!-- proc~omega --> -<g id="call~~graph~~CallGraph_node4" class="node"><title>proc~omega</title> -<g id="a_call~~graph~~CallGraph_node4"><a xlink:href=".././proc/omega.html" xlink:title="OMEGA"> -<polygon fill="#d9534f" stroke="#d9534f" points="71,-339 17,-339 17,-315 71,-315 71,-339"/> -<text text-anchor="middle" x="44" y="-324.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">OMEGA</text> -</a> +<!-- wsave --> +<g id="call~~graph~~CallGraph_node39" class="node"><title>wsave</title> +<polygon fill="#777777" stroke="#777777" points="543,-482 489,-482 489,-458 543,-458 543,-482"/> +<text text-anchor="middle" x="516" y="-467.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">wsave</text> </g> +<!-- proc~rfouftr->wsave --> +<g id="call~~graph~~CallGraph_edge2" class="edge"><title>proc~rfouftr->wsave</title> +<path fill="none" stroke="#000000" d="M453.226,-470C461.48,-470 470.455,-470 478.941,-470"/> +<polygon fill="#000000" stroke="#000000" points="478.969,-473.5 488.969,-470 478.969,-466.5 478.969,-473.5"/> </g> -<!-- proc~plgnfa --> -<g id="call~~graph~~CallGraph_node5" class="node"><title>proc~plgnfa</title> -<g id="a_call~~graph~~CallGraph_node5"><a xlink:href=".././proc/plgnfa.html" xlink:title="PLGNFA"> -<polygon fill="#d9534f" stroke="#d9534f" points="71.5,-465 16.5,-465 16.5,-441 71.5,-441 71.5,-465"/> -<text text-anchor="middle" x="44" y="-450.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PLGNFA</text> +<!-- proc~phgr213 --> +<g id="call~~graph~~CallGraph_node4" class="node"><title>proc~phgr213</title> +<g id="a_call~~graph~~CallGraph_node4"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-440 141.5,-440 141.5,-416 202.5,-416 202.5,-440"/> +<text text-anchor="middle" x="172" y="-425.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> </a> </g> </g> -<!-- proc~spfilter --> -<g id="call~~graph~~CallGraph_node6" class="node"><title>proc~spfilter</title> -<g id="a_call~~graph~~CallGraph_node6"><a xlink:href=".././proc/spfilter.html" xlink:title="SPFILTER"> -<polygon fill="#d9534f" stroke="#d9534f" points="75.5,-561 12.5,-561 12.5,-537 75.5,-537 75.5,-561"/> -<text text-anchor="middle" x="44" y="-546.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">SPFILTER</text> +<!-- proc~phsym --> +<g id="call~~graph~~CallGraph_node21" class="node"><title>proc~phsym</title> +<g id="a_call~~graph~~CallGraph_node21"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> +<polygon fill="#d9534f" stroke="#d9534f" points="331.5,-440 277.5,-440 277.5,-416 331.5,-416 331.5,-440"/> +<text text-anchor="middle" x="304.5" y="-425.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> </a> </g> </g> -<!-- float --> -<g id="call~~graph~~CallGraph_node29" class="node"><title>float</title> -<polygon fill="#777777" stroke="#777777" points="199,-598 145,-598 145,-574 199,-574 199,-598"/> -<text text-anchor="middle" x="172" y="-583.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">float</text> -</g> -<!-- proc~spfilter->float --> -<g id="call~~graph~~CallGraph_edge6" class="edge"><title>proc~spfilter->float</title> -<path fill="none" stroke="#000000" d="M75.5011,-557.957C93.4047,-563.214 116.13,-569.887 134.921,-575.405"/> -<polygon fill="#000000" stroke="#000000" points="134.039,-578.794 144.62,-578.253 136.011,-572.078 134.039,-578.794"/> -</g> -<!-- alog --> -<g id="call~~graph~~CallGraph_node38" class="node"><title>alog</title> -<polygon fill="#777777" stroke="#777777" points="199,-556 145,-556 145,-532 199,-532 199,-556"/> -<text text-anchor="middle" x="172" y="-541.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">alog</text> -</g> -<!-- proc~spfilter->alog --> -<g id="call~~graph~~CallGraph_edge7" class="edge"><title>proc~spfilter->alog</title> -<path fill="none" stroke="#000000" d="M75.5011,-547.79C93.2397,-547.086 115.712,-546.194 134.4,-545.452"/> -<polygon fill="#000000" stroke="#000000" points="134.767,-548.941 144.62,-545.047 134.489,-541.946 134.767,-548.941"/> +<!-- proc~phgr213->proc~phsym --> +<g id="call~~graph~~CallGraph_edge4" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M202.612,-428C221.696,-428 246.646,-428 266.959,-428"/> +<polygon fill="#000000" stroke="#000000" points="267.104,-431.5 277.104,-428 267.104,-424.5 267.104,-431.5"/> </g> <!-- proc~readlatlon --> -<g id="call~~graph~~CallGraph_node7" class="node"><title>proc~readlatlon</title> -<g id="a_call~~graph~~CallGraph_node7"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<g id="call~~graph~~CallGraph_node5" class="node"><title>proc~readlatlon</title> +<g id="a_call~~graph~~CallGraph_node5"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> <polygon fill="#d9534f" stroke="#d9534f" points="213,-398 131,-398 131,-374 213,-374 213,-398"/> <text text-anchor="middle" x="172" y="-383.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> </a> </g> </g> -<!-- proc~readlatlon->grib_count_in_file --> -<g id="call~~graph~~CallGraph_edge8" class="edge"><title>proc~readlatlon->grib_count_in_file</title> -<path fill="none" stroke="#000000" d="M213.219,-395.862C223.54,-398.393 234.846,-401.165 245.858,-403.866"/> -<polygon fill="#000000" stroke="#000000" points="245.307,-407.334 255.853,-406.316 246.974,-400.535 245.307,-407.334"/> +<!-- grib_count_in_file --> +<g id="call~~graph~~CallGraph_node34" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="353,-398 256,-398 256,-374 353,-374 353,-398"/> +<text text-anchor="middle" x="304.5" y="-383.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> </g> -<!-- proc~readlatlon->grib_close_file --> -<g id="call~~graph~~CallGraph_edge9" class="edge"><title>proc~readlatlon->grib_close_file</title> -<path fill="none" stroke="#000000" d="M213.219,-382.918C225.99,-381.939 240.269,-380.845 253.635,-379.821"/> -<polygon fill="#000000" stroke="#000000" points="253.935,-383.308 263.638,-379.055 253.4,-376.329 253.935,-383.308"/> +<!-- proc~readlatlon->grib_count_in_file --> +<g id="call~~graph~~CallGraph_edge5" class="edge"><title>proc~readlatlon->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M213.219,-386C223.435,-386 234.615,-386 245.521,-386"/> +<polygon fill="#000000" stroke="#000000" points="245.853,-389.5 255.853,-386 245.853,-382.5 245.853,-389.5"/> </g> -<!-- proc~grph213 --> -<g id="call~~graph~~CallGraph_node8" class="node"><title>proc~grph213</title> -<g id="a_call~~graph~~CallGraph_node8"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> -<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-318 141.5,-318 141.5,-294 202.5,-294 202.5,-318"/> -<text text-anchor="middle" x="172" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> -</a> +<!-- grib_close_file --> +<g id="call~~graph~~CallGraph_node40" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="345,-356 264,-356 264,-332 345,-332 345,-356"/> +<text text-anchor="middle" x="304.5" y="-341.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> </g> +<!-- proc~readlatlon->grib_close_file --> +<g id="call~~graph~~CallGraph_edge6" class="edge"><title>proc~readlatlon->grib_close_file</title> +<path fill="none" stroke="#000000" d="M210.396,-373.964C224.73,-369.351 241.271,-364.028 256.399,-359.159"/> +<polygon fill="#000000" stroke="#000000" points="257.652,-362.433 266.098,-356.037 255.507,-355.769 257.652,-362.433"/> </g> -<!-- proc~grphsub --> -<g id="call~~graph~~CallGraph_node19" class="node"><title>proc~grphsub</title> -<g id="a_call~~graph~~CallGraph_node19"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> -<polygon fill="#d9534f" stroke="#d9534f" points="336.5,-327 272.5,-327 272.5,-303 336.5,-303 336.5,-327"/> -<text text-anchor="middle" x="304.5" y="-312.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> +<!-- proc~phgracut --> +<g id="call~~graph~~CallGraph_node6" class="node"><title>proc~phgracut</title> +<g id="a_call~~graph~~CallGraph_node6"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="340,-524 269,-524 269,-500 340,-500 340,-524"/> +<text text-anchor="middle" x="304.5" y="-509.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> </a> </g> </g> -<!-- proc~grph213->proc~grphsub --> -<g id="call~~graph~~CallGraph_edge11" class="edge"><title>proc~grph213->proc~grphsub</title> -<path fill="none" stroke="#000000" d="M202.612,-308.042C220.206,-309.256 242.786,-310.813 262.122,-312.146"/> -<polygon fill="#000000" stroke="#000000" points="261.968,-315.644 272.185,-312.84 262.449,-308.661 261.968,-315.644"/> +<!-- proc~phgracut->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge7" class="edge"><title>proc~phgracut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M340.165,-512C352.3,-512 366.048,-512 378.674,-512"/> +<polygon fill="#000000" stroke="#000000" points="378.956,-515.5 388.956,-512 378.956,-508.5 378.956,-515.5"/> </g> -<!-- ind --> -<g id="call~~graph~~CallGraph_node31" class="node"><title>ind</title> -<polygon fill="#777777" stroke="#777777" points="331.5,-285 277.5,-285 277.5,-261 331.5,-261 331.5,-285"/> -<text text-anchor="middle" x="304.5" y="-270.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +<!-- proc~dplgnd --> +<g id="call~~graph~~CallGraph_node7" class="node"><title>proc~dplgnd</title> +<g id="a_call~~graph~~CallGraph_node7"><a xlink:href=".././proc/dplgnd.html" xlink:title="DPLGND"> +<polygon fill="#d9534f" stroke="#d9534f" points="72,-339 16,-339 16,-315 72,-315 72,-339"/> +<text text-anchor="middle" x="44" y="-324.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">DPLGND</text> +</a> </g> -<!-- proc~grph213->ind --> -<g id="call~~graph~~CallGraph_edge10" class="edge"><title>proc~grph213->ind</title> -<path fill="none" stroke="#000000" d="M202.612,-298.512C221.783,-293.664 246.875,-287.319 267.239,-282.17"/> -<polygon fill="#000000" stroke="#000000" points="268.267,-285.52 277.104,-279.675 266.551,-278.733 268.267,-285.52"/> </g> -<!-- proc~posnam --> -<g id="call~~graph~~CallGraph_node9" class="node"><title>proc~posnam</title> -<g id="a_call~~graph~~CallGraph_node9"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> -<polygon fill="#d9534f" stroke="#d9534f" points="201,-276 143,-276 143,-252 201,-252 201,-276"/> -<text text-anchor="middle" x="172" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> +<!-- proc~ia --> +<g id="call~~graph~~CallGraph_node8" class="node"><title>proc~ia</title> +<g id="a_call~~graph~~CallGraph_node8"><a xlink:href=".././proc/ia.html" xlink:title="IA"> +<polygon fill="#d94e8f" stroke="#d94e8f" points="71,-381 17,-381 17,-357 71,-357 71,-381"/> +<text text-anchor="middle" x="44" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">IA</text> </a> </g> </g> -<!-- proc~gauleg --> -<g id="call~~graph~~CallGraph_node10" class="node"><title>proc~gauleg</title> -<g id="a_call~~graph~~CallGraph_node10"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> -<polygon fill="#d9534f" stroke="#d9534f" points="200,-234 144,-234 144,-210 200,-210 200,-234"/> -<text text-anchor="middle" x="172" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> +<!-- proc~vduvsub --> +<g id="call~~graph~~CallGraph_node9" class="node"><title>proc~vduvsub</title> +<g id="a_call~~graph~~CallGraph_node9"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="75,-423 13,-423 13,-399 75,-399 75,-423"/> +<text text-anchor="middle" x="44" y="-408.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> </a> </g> </g> -<!-- dcos --> -<g id="call~~graph~~CallGraph_node34" class="node"><title>dcos</title> -<polygon fill="#777777" stroke="#777777" points="331.5,-234 277.5,-234 277.5,-210 331.5,-210 331.5,-234"/> -<text text-anchor="middle" x="304.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> +<!-- proc~plgnfa --> +<g id="call~~graph~~CallGraph_node10" class="node"><title>proc~plgnfa</title> +<g id="a_call~~graph~~CallGraph_node10"><a xlink:href=".././proc/plgnfa.html" xlink:title="PLGNFA"> +<polygon fill="#d9534f" stroke="#d9534f" points="71.5,-465 16.5,-465 16.5,-441 71.5,-441 71.5,-465"/> +<text text-anchor="middle" x="44" y="-450.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PLGNFA</text> +</a> </g> -<!-- proc~gauleg->dcos --> -<g id="call~~graph~~CallGraph_edge12" class="edge"><title>proc~gauleg->dcos</title> -<path fill="none" stroke="#000000" d="M200.04,-222C219.455,-222 245.84,-222 267.104,-222"/> -<polygon fill="#000000" stroke="#000000" points="267.385,-225.5 277.385,-222 267.385,-218.5 267.385,-225.5"/> </g> -<!-- proc~vdtouv --> -<g id="call~~graph~~CallGraph_node11" class="node"><title>proc~vdtouv</title> -<g id="a_call~~graph~~CallGraph_node11"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> -<polygon fill="#d9534f" stroke="#d9534f" points="72,-613 16,-613 16,-589 72,-589 72,-613"/> -<text text-anchor="middle" x="44" y="-598.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> +<!-- proc~legtr --> +<g id="call~~graph~~CallGraph_node11" class="node"><title>proc~legtr</title> +<g id="a_call~~graph~~CallGraph_node11"><a xlink:href=".././proc/legtr.html" xlink:title="LEGTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="71,-507 17,-507 17,-483 71,-483 71,-507"/> +<text text-anchor="middle" x="44" y="-492.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LEGTR</text> </a> </g> </g> -<!-- proc~phsym --> -<g id="call~~graph~~CallGraph_node12" class="node"><title>proc~phsym</title> -<g id="a_call~~graph~~CallGraph_node12"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> -<polygon fill="#d9534f" stroke="#d9534f" points="331.5,-192 277.5,-192 277.5,-168 331.5,-168 331.5,-192"/> -<text text-anchor="middle" x="304.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> +<!-- proc~phgpns --> +<g id="call~~graph~~CallGraph_node12" class="node"><title>proc~phgpns</title> +<g id="a_call~~graph~~CallGraph_node12"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="332.5,-566 276.5,-566 276.5,-542 332.5,-542 332.5,-566"/> +<text text-anchor="middle" x="304.5" y="-551.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> </a> </g> </g> -<!-- proc~phsymcut->proc~rfourtr --> -<g id="call~~graph~~CallGraph_edge13" class="edge"><title>proc~phsymcut->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M340.165,-502C352.3,-502 366.048,-502 378.674,-502"/> -<polygon fill="#000000" stroke="#000000" points="378.956,-505.5 388.956,-502 378.956,-498.5 378.956,-505.5"/> -</g> -<!-- proc~rfouftr --> -<g id="call~~graph~~CallGraph_node14" class="node"><title>proc~rfouftr</title> -<g id="a_call~~graph~~CallGraph_node14"><a xlink:href=".././proc/rfouftr.html" xlink:title="RFOUFTR"> -<polygon fill="#d9534f" stroke="#d9534f" points="453,-472 389,-472 389,-448 453,-448 453,-472"/> -<text text-anchor="middle" x="421" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOUFTR</text> -</a> +<!-- proc~phgpns->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge8" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M332.635,-544.047C346.414,-538.992 363.447,-532.744 378.803,-527.112"/> +<polygon fill="#000000" stroke="#000000" points="380.418,-530.247 388.601,-523.517 378.008,-523.675 380.418,-530.247"/> </g> +<!-- proc~rfourtr->fft99 --> +<g id="call~~graph~~CallGraph_edge9" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M453.226,-512C461.48,-512 470.455,-512 478.941,-512"/> +<polygon fill="#000000" stroke="#000000" points="478.969,-515.5 488.969,-512 478.969,-508.5 478.969,-515.5"/> </g> -<!-- fft99 --> -<g id="call~~graph~~CallGraph_node32" class="node"><title>fft99</title> -<polygon fill="#777777" stroke="#777777" points="543,-514 489,-514 489,-490 543,-490 543,-514"/> -<text text-anchor="middle" x="516" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +<!-- proc~readspectral --> +<g id="call~~graph~~CallGraph_node14" class="node"><title>proc~readspectral</title> +<g id="a_call~~graph~~CallGraph_node14"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="220,-356 124,-356 124,-332 220,-332 220,-356"/> +<text text-anchor="middle" x="172" y="-341.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +</a> </g> -<!-- proc~rfouftr->fft99 --> -<g id="call~~graph~~CallGraph_edge15" class="edge"><title>proc~rfouftr->fft99</title> -<path fill="none" stroke="#000000" d="M448.899,-472.148C458.412,-476.444 469.265,-481.345 479.388,-485.917"/> -<polygon fill="#000000" stroke="#000000" points="478.248,-489.243 488.802,-490.169 481.129,-482.863 478.248,-489.243"/> </g> -<!-- wsave --> -<g id="call~~graph~~CallGraph_node40" class="node"><title>wsave</title> -<polygon fill="#777777" stroke="#777777" points="543,-472 489,-472 489,-448 543,-448 543,-472"/> -<text text-anchor="middle" x="516" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">wsave</text> +<!-- proc~readspectral->grib_count_in_file --> +<g id="call~~graph~~CallGraph_edge10" class="edge"><title>proc~readspectral->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M210.396,-356.036C224.73,-360.649 241.271,-365.972 256.399,-370.841"/> +<polygon fill="#000000" stroke="#000000" points="255.507,-374.231 266.098,-373.963 257.652,-367.567 255.507,-374.231"/> </g> -<!-- proc~rfouftr->wsave --> -<g id="call~~graph~~CallGraph_edge14" class="edge"><title>proc~rfouftr->wsave</title> -<path fill="none" stroke="#000000" d="M453.226,-460C461.48,-460 470.455,-460 478.941,-460"/> -<polygon fill="#000000" stroke="#000000" points="478.969,-463.5 488.969,-460 478.969,-456.5 478.969,-463.5"/> +<!-- proc~readspectral->grib_close_file --> +<g id="call~~graph~~CallGraph_edge11" class="edge"><title>proc~readspectral->grib_close_file</title> +<path fill="none" stroke="#000000" d="M220.113,-344C230.957,-344 242.527,-344 253.49,-344"/> +<polygon fill="#000000" stroke="#000000" points="253.77,-347.5 263.77,-344 253.77,-340.5 253.77,-347.5"/> </g> <!-- proc~writelatlon --> <g id="call~~graph~~CallGraph_node15" class="node"><title>proc~writelatlon</title> <g id="a_call~~graph~~CallGraph_node15"><a xlink:href=".././proc/writelatlon.html" xlink:title="WRITELATLON"> -<polygon fill="#d9534f" stroke="#d9534f" points="88,-661 7.10543e-15,-661 7.10543e-15,-637 88,-637 88,-661"/> -<text text-anchor="middle" x="44" y="-646.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">WRITELATLON</text> +<polygon fill="#d9534f" stroke="#d9534f" points="88,-549 7.10543e-15,-549 7.10543e-15,-525 88,-525 88,-549"/> +<text text-anchor="middle" x="44" y="-534.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">WRITELATLON</text> </a> </g> </g> <!-- grib_set --> -<g id="call~~graph~~CallGraph_node33" class="node"><title>grib_set</title> -<polygon fill="#777777" stroke="#777777" points="199,-682 145,-682 145,-658 199,-658 199,-682"/> -<text text-anchor="middle" x="172" y="-667.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> +<g id="call~~graph~~CallGraph_node32" class="node"><title>grib_set</title> +<polygon fill="#777777" stroke="#777777" points="199,-579 145,-579 145,-555 199,-555 199,-579"/> +<text text-anchor="middle" x="172" y="-564.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> </g> <!-- proc~writelatlon->grib_set --> -<g id="call~~graph~~CallGraph_edge17" class="edge"><title>proc~writelatlon->grib_set</title> -<path fill="none" stroke="#000000" d="M88.0096,-656.168C103.155,-658.692 120.019,-661.503 134.569,-663.928"/> -<polygon fill="#000000" stroke="#000000" points="134.257,-667.424 144.697,-665.616 135.408,-660.52 134.257,-667.424"/> +<g id="call~~graph~~CallGraph_edge13" class="edge"><title>proc~writelatlon->grib_set</title> +<path fill="none" stroke="#000000" d="M88.0096,-547.24C103.155,-550.846 120.019,-554.862 134.569,-558.326"/> +<polygon fill="#000000" stroke="#000000" points="134.158,-561.826 144.697,-560.737 135.779,-555.016 134.158,-561.826"/> </g> <!-- grib_write --> -<g id="call~~graph~~CallGraph_node36" class="node"><title>grib_write</title> -<polygon fill="#777777" stroke="#777777" points="201.5,-640 142.5,-640 142.5,-616 201.5,-616 201.5,-640"/> -<text text-anchor="middle" x="172" y="-625.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_write</text> +<g id="call~~graph~~CallGraph_node35" class="node"><title>grib_write</title> +<polygon fill="#777777" stroke="#777777" points="201.5,-537 142.5,-537 142.5,-513 201.5,-513 201.5,-537"/> +<text text-anchor="middle" x="172" y="-522.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_write</text> </g> <!-- proc~writelatlon->grib_write --> -<g id="call~~graph~~CallGraph_edge16" class="edge"><title>proc~writelatlon->grib_write</title> -<path fill="none" stroke="#000000" d="M88.0096,-641.832C102.326,-639.446 118.179,-636.804 132.16,-634.473"/> -<polygon fill="#000000" stroke="#000000" points="133.142,-637.858 142.431,-632.762 131.991,-630.953 133.142,-637.858"/> +<g id="call~~graph~~CallGraph_edge12" class="edge"><title>proc~writelatlon->grib_write</title> +<path fill="none" stroke="#000000" d="M88.0096,-532.904C102.326,-531.54 118.179,-530.031 132.16,-528.699"/> +<polygon fill="#000000" stroke="#000000" points="132.808,-532.153 142.431,-527.721 132.144,-525.185 132.808,-532.153"/> </g> -<!-- proc~phgr213 --> -<g id="call~~graph~~CallGraph_node16" class="node"><title>proc~phgr213</title> -<g id="a_call~~graph~~CallGraph_node16"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> -<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-192 141.5,-192 141.5,-168 202.5,-168 202.5,-192"/> -<text text-anchor="middle" x="172" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +<!-- proc~omega --> +<g id="call~~graph~~CallGraph_node16" class="node"><title>proc~omega</title> +<g id="a_call~~graph~~CallGraph_node16"><a xlink:href=".././proc/omega.html" xlink:title="OMEGA"> +<polygon fill="#d9534f" stroke="#d9534f" points="71,-591 17,-591 17,-567 71,-567 71,-591"/> +<text text-anchor="middle" x="44" y="-576.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">OMEGA</text> </a> </g> </g> -<!-- proc~phgr213->proc~phsym --> -<g id="call~~graph~~CallGraph_edge18" class="edge"><title>proc~phgr213->proc~phsym</title> -<path fill="none" stroke="#000000" d="M202.612,-180C221.696,-180 246.646,-180 266.959,-180"/> -<polygon fill="#000000" stroke="#000000" points="267.104,-183.5 277.104,-180 267.104,-176.5 267.104,-183.5"/> -</g> -<!-- proc~phgracut --> -<g id="call~~graph~~CallGraph_node17" class="node"><title>proc~phgracut</title> -<g id="a_call~~graph~~CallGraph_node17"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="340,-472 269,-472 269,-448 340,-448 340,-472"/> -<text text-anchor="middle" x="304.5" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +<!-- proc~statis --> +<g id="call~~graph~~CallGraph_node17" class="node"><title>proc~statis</title> +<g id="a_call~~graph~~CallGraph_node17"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> +<polygon fill="#d9534f" stroke="#d9534f" points="199,-276 145,-276 145,-252 199,-252 199,-276"/> +<text text-anchor="middle" x="172" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> </a> </g> </g> -<!-- proc~phgracut->proc~rfourtr --> -<g id="call~~graph~~CallGraph_edge19" class="edge"><title>proc~phgracut->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M338.311,-472.036C351.073,-476.717 365.83,-482.13 379.262,-487.057"/> -<polygon fill="#000000" stroke="#000000" points="378.166,-490.383 388.76,-490.541 380.577,-483.811 378.166,-490.383"/> -</g> -<!-- proc~vduvsub --> -<g id="call~~graph~~CallGraph_node18" class="node"><title>proc~vduvsub</title> -<g id="a_call~~graph~~CallGraph_node18"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> -<polygon fill="#d9534f" stroke="#d9534f" points="75,-703 13,-703 13,-679 75,-679 75,-703"/> -<text text-anchor="middle" x="44" y="-688.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> +<!-- proc~vdtouv --> +<g id="call~~graph~~CallGraph_node18" class="node"><title>proc~vdtouv</title> +<g id="a_call~~graph~~CallGraph_node18"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<polygon fill="#d9534f" stroke="#d9534f" points="72,-633 16,-633 16,-609 72,-609 72,-633"/> +<text text-anchor="middle" x="44" y="-618.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> </a> </g> </g> -<!-- proc~lgtr213 --> -<g id="call~~graph~~CallGraph_node20" class="node"><title>proc~lgtr213</title> -<g id="a_call~~graph~~CallGraph_node20"><a xlink:href=".././proc/lgtr213.html" xlink:title="LGTR213"> -<polygon fill="#d9534f" stroke="#d9534f" points="73.5,-745 14.5,-745 14.5,-721 73.5,-721 73.5,-745"/> -<text text-anchor="middle" x="44" y="-730.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LGTR213</text> +<!-- proc~spfilter --> +<g id="call~~graph~~CallGraph_node19" class="node"><title>proc~spfilter</title> +<g id="a_call~~graph~~CallGraph_node19"><a xlink:href=".././proc/spfilter.html" xlink:title="SPFILTER"> +<polygon fill="#d9534f" stroke="#d9534f" points="75.5,-675 12.5,-675 12.5,-651 75.5,-651 75.5,-675"/> +<text text-anchor="middle" x="44" y="-660.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">SPFILTER</text> </a> </g> </g> -<!-- proc~dplgnd --> -<g id="call~~graph~~CallGraph_node21" class="node"><title>proc~dplgnd</title> -<g id="a_call~~graph~~CallGraph_node21"><a xlink:href=".././proc/dplgnd.html" xlink:title="DPLGND"> -<polygon fill="#d9534f" stroke="#d9534f" points="72,-787 16,-787 16,-763 72,-763 72,-787"/> -<text text-anchor="middle" x="44" y="-772.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">DPLGND</text> +<!-- float --> +<g id="call~~graph~~CallGraph_node29" class="node"><title>float</title> +<polygon fill="#777777" stroke="#777777" points="199,-696 145,-696 145,-672 199,-672 199,-696"/> +<text text-anchor="middle" x="172" y="-681.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">float</text> +</g> +<!-- proc~spfilter->float --> +<g id="call~~graph~~CallGraph_edge14" class="edge"><title>proc~spfilter->float</title> +<path fill="none" stroke="#000000" d="M75.5011,-668.084C93.3222,-671.054 115.921,-674.82 134.661,-677.943"/> +<polygon fill="#000000" stroke="#000000" points="134.18,-681.412 144.62,-679.603 135.331,-674.507 134.18,-681.412"/> +</g> +<!-- alog --> +<g id="call~~graph~~CallGraph_node37" class="node"><title>alog</title> +<polygon fill="#777777" stroke="#777777" points="199,-654 145,-654 145,-630 199,-630 199,-654"/> +<text text-anchor="middle" x="172" y="-639.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">alog</text> +</g> +<!-- proc~spfilter->alog --> +<g id="call~~graph~~CallGraph_edge15" class="edge"><title>proc~spfilter->alog</title> +<path fill="none" stroke="#000000" d="M75.5011,-657.916C93.3222,-654.946 115.921,-651.18 134.661,-648.057"/> +<polygon fill="#000000" stroke="#000000" points="135.331,-651.493 144.62,-646.397 134.18,-644.588 135.331,-651.493"/> +</g> +<!-- proc~posnam --> +<g id="call~~graph~~CallGraph_node20" class="node"><title>proc~posnam</title> +<g id="a_call~~graph~~CallGraph_node20"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> +<polygon fill="#d9534f" stroke="#d9534f" points="201,-234 143,-234 143,-210 201,-210 201,-234"/> +<text text-anchor="middle" x="172" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> </a> </g> </g> -<!-- proc~contgl --> -<g id="call~~graph~~CallGraph_node22" class="node"><title>proc~contgl</title> -<g id="a_call~~graph~~CallGraph_node22"><a xlink:href=".././proc/contgl.html" xlink:title="CONTGL"> -<polygon fill="#d9534f" stroke="#d9534f" points="72.5,-829 15.5,-829 15.5,-805 72.5,-805 72.5,-829"/> -<text text-anchor="middle" x="44" y="-814.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">CONTGL</text> +<!-- proc~grphsub --> +<g id="call~~graph~~CallGraph_node22" class="node"><title>proc~grphsub</title> +<g id="a_call~~graph~~CallGraph_node22"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="336.5,-108 272.5,-108 272.5,-84 336.5,-84 336.5,-108"/> +<text text-anchor="middle" x="304.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> </a> </g> </g> -<!-- proc~legtr --> -<g id="call~~graph~~CallGraph_node23" class="node"><title>proc~legtr</title> -<g id="a_call~~graph~~CallGraph_node23"><a xlink:href=".././proc/legtr.html" xlink:title="LEGTR"> -<polygon fill="#d9534f" stroke="#d9534f" points="71,-871 17,-871 17,-847 71,-847 71,-871"/> -<text text-anchor="middle" x="44" y="-856.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LEGTR</text> +<!-- proc~gauleg --> +<g id="call~~graph~~CallGraph_node23" class="node"><title>proc~gauleg</title> +<g id="a_call~~graph~~CallGraph_node23"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> +<polygon fill="#d9534f" stroke="#d9534f" points="200,-192 144,-192 144,-168 200,-168 200,-192"/> +<text text-anchor="middle" x="172" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> </a> </g> </g> -<!-- proc~rfourtr->fft99 --> -<g id="call~~graph~~CallGraph_edge20" class="edge"><title>proc~rfourtr->fft99</title> -<path fill="none" stroke="#000000" d="M453.226,-502C461.48,-502 470.455,-502 478.941,-502"/> -<polygon fill="#000000" stroke="#000000" points="478.969,-505.5 488.969,-502 478.969,-498.5 478.969,-505.5"/> +<!-- dcos --> +<g id="call~~graph~~CallGraph_node33" class="node"><title>dcos</title> +<polygon fill="#777777" stroke="#777777" points="331.5,-192 277.5,-192 277.5,-168 331.5,-168 331.5,-192"/> +<text text-anchor="middle" x="304.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> </g> -<!-- proc~ia --> -<g id="call~~graph~~CallGraph_node25" class="node"><title>proc~ia</title> -<g id="a_call~~graph~~CallGraph_node25"><a xlink:href=".././proc/ia.html" xlink:title="IA"> -<polygon fill="#d94e8f" stroke="#d94e8f" points="71,-913 17,-913 17,-889 71,-889 71,-913"/> -<text text-anchor="middle" x="44" y="-898.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">IA</text> +<!-- proc~gauleg->dcos --> +<g id="call~~graph~~CallGraph_edge16" class="edge"><title>proc~gauleg->dcos</title> +<path fill="none" stroke="#000000" d="M200.04,-180C219.455,-180 245.84,-180 267.104,-180"/> +<polygon fill="#000000" stroke="#000000" points="267.385,-183.5 277.385,-180 267.385,-176.5 267.385,-183.5"/> +</g> +<!-- proc~grph213 --> +<g id="call~~graph~~CallGraph_node24" class="node"><title>proc~grph213</title> +<g id="a_call~~graph~~CallGraph_node24"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> +<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-150 141.5,-150 141.5,-126 202.5,-126 202.5,-150"/> +<text text-anchor="middle" x="172" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> </a> </g> </g> +<!-- proc~grph213->proc~grphsub --> +<g id="call~~graph~~CallGraph_edge18" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M202.612,-128.47C220.368,-122.755 243.203,-115.406 262.656,-109.145"/> +<polygon fill="#000000" stroke="#000000" points="263.738,-112.474 272.185,-106.078 261.593,-105.81 263.738,-112.474"/> +</g> +<!-- ind --> +<g id="call~~graph~~CallGraph_node30" class="node"><title>ind</title> +<polygon fill="#777777" stroke="#777777" points="331.5,-150 277.5,-150 277.5,-126 331.5,-126 331.5,-150"/> +<text text-anchor="middle" x="304.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +</g> +<!-- proc~grph213->ind --> +<g id="call~~graph~~CallGraph_edge17" class="edge"><title>proc~grph213->ind</title> +<path fill="none" stroke="#000000" d="M202.612,-138C221.696,-138 246.646,-138 266.959,-138"/> +<polygon fill="#000000" stroke="#000000" points="267.104,-141.5 277.104,-138 267.104,-134.5 267.104,-141.5"/> +</g> <!-- proc~phgrad --> -<g id="call~~graph~~CallGraph_node26" class="node"><title>proc~phgrad</title> -<g id="a_call~~graph~~CallGraph_node26"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> -<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-150 143.5,-150 143.5,-126 200.5,-126 200.5,-150"/> -<text text-anchor="middle" x="172" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +<g id="call~~graph~~CallGraph_node25" class="node"><title>proc~phgrad</title> +<g id="a_call~~graph~~CallGraph_node25"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-108 143.5,-108 143.5,-84 200.5,-84 200.5,-108"/> +<text text-anchor="middle" x="172" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> </a> </g> </g> -<!-- integermlat --> -<g id="call~~graph~~CallGraph_node30" class="node"><title>integermlat</title> -<polygon fill="#777777" stroke="#777777" points="337.5,-150 271.5,-150 271.5,-126 337.5,-126 337.5,-150"/> -<text text-anchor="middle" x="304.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> +<!-- proc~phgcut --> +<g id="call~~graph~~CallGraph_node26" class="node"><title>proc~phgcut</title> +<g id="a_call~~graph~~CallGraph_node26"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-482 143.5,-482 143.5,-458 200.5,-458 200.5,-482"/> +<text text-anchor="middle" x="172" y="-467.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> </g> -<!-- proc~phgrad->integermlat --> -<g id="call~~graph~~CallGraph_edge21" class="edge"><title>proc~phgrad->integermlat</title> -<path fill="none" stroke="#000000" d="M200.676,-138C218.26,-138 241.368,-138 261.223,-138"/> -<polygon fill="#000000" stroke="#000000" points="261.263,-141.5 271.263,-138 261.262,-134.5 261.263,-141.5"/> </g> -<!-- proc~statis --> -<g id="call~~graph~~CallGraph_node27" class="node"><title>proc~statis</title> -<g id="a_call~~graph~~CallGraph_node27"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> -<polygon fill="#d9534f" stroke="#d9534f" points="199,-108 145,-108 145,-84 199,-84 199,-108"/> -<text text-anchor="middle" x="172" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> +<!-- proc~phgcut->proc~phsymcut --> +<g id="call~~graph~~CallGraph_edge19" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M200.676,-470C217.546,-470 239.498,-470 258.786,-470"/> +<polygon fill="#000000" stroke="#000000" points="258.882,-473.5 268.882,-470 258.882,-466.5 258.882,-473.5"/> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="call~~graph~~CallGraph_edge20" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M190.125,-482.065C199.103,-488.472 210.235,-496.543 220,-504 236.329,-516.47 238.454,-522.31 256,-533 259.453,-535.104 263.154,-537.115 266.91,-539.001"/> +<polygon fill="#000000" stroke="#000000" points="265.712,-542.307 276.249,-543.415 268.703,-535.978 265.712,-542.307"/> +</g> +<!-- proc~lgtr213 --> +<g id="call~~graph~~CallGraph_node27" class="node"><title>proc~lgtr213</title> +<g id="a_call~~graph~~CallGraph_node27"><a xlink:href=".././proc/lgtr213.html" xlink:title="LGTR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="73.5,-717 14.5,-717 14.5,-693 73.5,-693 73.5,-717"/> +<text text-anchor="middle" x="44" y="-702.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LGTR213</text> </a> </g> </g> -<!-- program~preconvert --> -<g id="call~~graph~~CallGraph_node28" class="node"><title>program~preconvert</title> -<g id="a_call~~graph~~CallGraph_node28"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="86.5,-255 1.5,-255 1.5,-231 86.5,-231 86.5,-255"/> -<text text-anchor="middle" x="44" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="call~~graph~~CallGraph_node28" class="node"><title>program~calc_etadot</title> +<g id="a_call~~graph~~CallGraph_node28"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="77.5,-255 10.5,-255 10.5,-231 77.5,-231 77.5,-255"/> +<text text-anchor="middle" x="44" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="call~~graph~~CallGraph_edge23" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M55.3058,-255.24C65.048,-267.393 79.4156,-286.919 88,-306 114.89,-365.768 93.3847,-391.052 124,-449 130.553,-461.403 140.597,-473.275 149.72,-482.627"/> -<polygon fill="#000000" stroke="#000000" points="147.483,-485.336 157.07,-489.847 152.388,-480.342 147.483,-485.336"/> +<!-- program~calc_etadot->proc~phgr213 --> +<g id="call~~graph~~CallGraph_edge25" class="edge"><title>program~calc_etadot->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M77.788,-255.083C81.6263,-257.567 85.1736,-260.516 88,-264 129.29,-314.897 81.8485,-356.815 124,-407 126.443,-409.908 129.37,-412.43 132.553,-414.613"/> +<polygon fill="#000000" stroke="#000000" points="130.995,-417.753 141.421,-419.634 134.444,-411.661 130.995,-417.753"/> </g> -<!-- program~preconvert->proc~readspectral --> -<g id="call~~graph~~CallGraph_edge22" class="edge"><title>program~preconvert->proc~readspectral</title> -<path fill="none" stroke="#000000" d="M54.9086,-255.43C64.3563,-267.725 78.5121,-287.352 88,-306 109.61,-348.474 91.6387,-372.018 124,-407 124.888,-407.959 125.827,-408.878 126.81,-409.757"/> -<polygon fill="#000000" stroke="#000000" points="124.897,-412.693 135.042,-415.746 129.015,-407.033 124.897,-412.693"/> +<!-- program~calc_etadot->proc~readlatlon --> +<g id="call~~graph~~CallGraph_edge31" class="edge"><title>program~calc_etadot->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M77.0499,-255.074C81.0976,-257.575 84.8993,-260.531 88,-264 119.76,-299.529 91.6387,-330.018 124,-365 124.888,-365.959 125.827,-366.878 126.81,-367.757"/> +<polygon fill="#000000" stroke="#000000" points="124.897,-370.693 135.042,-373.746 129.015,-365.033 124.897,-370.693"/> </g> -<!-- program~preconvert->proc~readlatlon --> -<g id="call~~graph~~CallGraph_edge32" class="edge"><title>program~preconvert->proc~readlatlon</title> -<path fill="none" stroke="#000000" d="M53.2825,-255.051C61.9703,-267.711 76.0031,-288.216 88,-306 104.131,-329.912 102.778,-340.465 124,-360 127.332,-363.067 131.091,-365.906 134.995,-368.493"/> -<polygon fill="#000000" stroke="#000000" points="133.298,-371.557 143.665,-373.745 136.925,-365.57 133.298,-371.557"/> +<!-- program~calc_etadot->proc~readspectral --> +<g id="call~~graph~~CallGraph_edge21" class="edge"><title>program~calc_etadot->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M74.975,-255.06C79.6011,-257.629 84.1226,-260.609 88,-264 109.713,-282.988 102.778,-298.465 124,-318 127.332,-321.067 131.091,-323.906 134.995,-326.493"/> +<polygon fill="#000000" stroke="#000000" points="133.298,-329.557 143.665,-331.745 136.925,-323.57 133.298,-329.557"/> </g> -<!-- program~preconvert->proc~grph213 --> -<g id="call~~graph~~CallGraph_edge24" class="edge"><title>program~preconvert->proc~grph213</title> -<path fill="none" stroke="#000000" d="M66.9259,-255.176C82.6657,-263.788 104.461,-275.455 124,-285 127.147,-286.537 130.432,-288.096 133.738,-289.634"/> -<polygon fill="#000000" stroke="#000000" points="132.469,-292.902 143.019,-293.875 135.379,-286.535 132.469,-292.902"/> +<!-- program~calc_etadot->proc~statis --> +<g id="call~~graph~~CallGraph_edge24" class="edge"><title>program~calc_etadot->proc~statis</title> +<path fill="none" stroke="#000000" d="M77.7761,-248.463C95.2088,-251.368 116.688,-254.948 134.633,-257.939"/> +<polygon fill="#000000" stroke="#000000" points="134.294,-261.431 144.734,-259.622 135.445,-254.526 134.294,-261.431"/> </g> -<!-- program~preconvert->proc~posnam --> -<g id="call~~graph~~CallGraph_edge31" class="edge"><title>program~preconvert->proc~posnam</title> -<path fill="none" stroke="#000000" d="M86.6063,-249.934C101.488,-252.415 118.177,-255.196 132.761,-257.627"/> -<polygon fill="#000000" stroke="#000000" points="132.513,-261.134 142.952,-259.325 133.664,-254.229 132.513,-261.134"/> +<!-- program~calc_etadot->proc~posnam --> +<g id="call~~graph~~CallGraph_edge30" class="edge"><title>program~calc_etadot->proc~posnam</title> +<path fill="none" stroke="#000000" d="M77.7761,-237.537C94.5993,-234.733 115.191,-231.302 132.738,-228.377"/> +<polygon fill="#000000" stroke="#000000" points="133.378,-231.819 142.667,-226.722 132.227,-224.914 133.378,-231.819"/> </g> -<!-- program~preconvert->proc~gauleg --> -<g id="call~~graph~~CallGraph_edge27" class="edge"><title>program~preconvert->proc~gauleg</title> -<path fill="none" stroke="#000000" d="M86.6063,-236.066C101.719,-233.547 118.695,-230.717 133.438,-228.26"/> -<polygon fill="#000000" stroke="#000000" points="134.431,-231.643 143.719,-226.547 133.28,-224.738 134.431,-231.643"/> +<!-- program~calc_etadot->proc~gauleg --> +<g id="call~~graph~~CallGraph_edge26" class="edge"><title>program~calc_etadot->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M66.9259,-230.824C82.6657,-222.212 104.461,-210.545 124,-201 127.328,-199.374 130.809,-197.725 134.308,-196.102"/> +<polygon fill="#000000" stroke="#000000" points="135.87,-199.236 143.515,-191.901 132.965,-192.868 135.87,-199.236"/> </g> -<!-- program~preconvert->proc~phgr213 --> -<g id="call~~graph~~CallGraph_edge26" class="edge"><title>program~preconvert->proc~phgr213</title> -<path fill="none" stroke="#000000" d="M66.9259,-230.824C82.6657,-222.212 104.461,-210.545 124,-201 127.147,-199.463 130.432,-197.904 133.738,-196.366"/> -<polygon fill="#000000" stroke="#000000" points="135.379,-199.465 143.019,-192.125 132.469,-193.098 135.379,-199.465"/> +<!-- program~calc_etadot->proc~grph213 --> +<g id="call~~graph~~CallGraph_edge23" class="edge"><title>program~calc_etadot->proc~grph213</title> +<path fill="none" stroke="#000000" d="M53.989,-230.707C67.5067,-212.928 94.6326,-179.883 124,-159 126.54,-157.194 129.26,-155.49 132.065,-153.894"/> +<polygon fill="#000000" stroke="#000000" points="133.917,-156.876 141.189,-149.172 130.7,-150.66 133.917,-156.876"/> </g> -<!-- program~preconvert->proc~phgrad --> -<g id="call~~graph~~CallGraph_edge30" class="edge"><title>program~preconvert->proc~phgrad</title> -<path fill="none" stroke="#000000" d="M53.989,-230.707C67.5067,-212.928 94.6326,-179.883 124,-159 127.095,-156.799 130.459,-154.75 133.915,-152.863"/> -<polygon fill="#000000" stroke="#000000" points="135.774,-155.847 143.163,-148.254 132.652,-149.582 135.774,-155.847"/> +<!-- program~calc_etadot->proc~phgrad --> +<g id="call~~graph~~CallGraph_edge29" class="edge"><title>program~calc_etadot->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M49.6902,-230.951C59.7874,-206.42 85.8043,-150.196 124,-117 127.025,-114.371 130.432,-112.019 133.995,-109.927"/> +<polygon fill="#000000" stroke="#000000" points="135.764,-112.952 143.043,-105.254 132.552,-106.733 135.764,-112.952"/> </g> -<!-- program~preconvert->proc~statis --> -<g id="call~~graph~~CallGraph_edge25" class="edge"><title>program~preconvert->proc~statis</title> -<path fill="none" stroke="#000000" d="M49.6902,-230.951C59.7874,-206.42 85.8043,-150.196 124,-117 127.432,-114.017 131.356,-111.391 135.441,-109.097"/> -<polygon fill="#000000" stroke="#000000" points="137.11,-112.176 144.512,-104.596 133.999,-105.905 137.11,-112.176"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="call~~graph~~CallGraph_edge22" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M77.5424,-254.666C81.5179,-257.227 85.1683,-260.309 88,-264 138.982,-330.463 71.8918,-383.416 124,-449 126.828,-452.56 130.389,-455.534 134.279,-458.015"/> +<polygon fill="#000000" stroke="#000000" points="132.685,-461.132 143.164,-462.694 135.947,-454.938 132.685,-461.132"/> </g> <!-- set99 --> -<g id="call~~graph~~CallGraph_node37" class="node"><title>set99</title> +<g id="call~~graph~~CallGraph_node36" class="node"><title>set99</title> <polygon fill="#777777" stroke="#777777" points="199,-66 145,-66 145,-42 199,-42 199,-66"/> <text text-anchor="middle" x="172" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> </g> -<!-- program~preconvert->set99 --> -<g id="call~~graph~~CallGraph_edge29" class="edge"><title>program~preconvert->set99</title> +<!-- program~calc_etadot->set99 --> +<g id="call~~graph~~CallGraph_edge28" class="edge"><title>program~calc_etadot->set99</title> <path fill="none" stroke="#000000" d="M47.6442,-230.72C54.7648,-200.385 77.0598,-121.04 124,-75 127.32,-71.7438 131.232,-68.9438 135.358,-66.549"/> <polygon fill="#000000" stroke="#000000" points="137.208,-69.5371 144.586,-61.9338 134.077,-63.2764 137.208,-69.5371"/> </g> <!-- grib_open_file --> -<g id="call~~graph~~CallGraph_node39" class="node"><title>grib_open_file</title> +<g id="call~~graph~~CallGraph_node38" class="node"><title>grib_open_file</title> <polygon fill="#777777" stroke="#777777" points="212,-24 132,-24 132,-0 212,-0 212,-24"/> <text text-anchor="middle" x="172" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> </g> -<!-- program~preconvert->grib_open_file --> -<g id="call~~graph~~CallGraph_edge28" class="edge"><title>program~preconvert->grib_open_file</title> +<!-- program~calc_etadot->grib_open_file --> +<g id="call~~graph~~CallGraph_edge27" class="edge"><title>program~calc_etadot->grib_open_file</title> <path fill="none" stroke="#000000" d="M46.3044,-230.865C50.6899,-195.717 67.9305,-92.5616 124,-33 125.034,-31.9019 126.135,-30.8573 127.292,-29.8639"/> <polygon fill="#000000" stroke="#000000" points="129.414,-32.65 135.57,-24.0274 125.381,-26.9289 129.414,-32.65"/> </g> -<!-- program~preconvert->grib_close_file --> -<g id="call~~graph~~CallGraph_edge33" class="edge"><title>program~preconvert->grib_close_file</title> -<path fill="none" stroke="#000000" d="M53.1591,-255.293C66.0176,-273.691 92.7728,-308.227 124,-327 163.984,-351.037 215.983,-363.548 253.714,-369.888"/> -<polygon fill="#000000" stroke="#000000" points="253.531,-373.403 263.956,-371.517 254.63,-366.489 253.531,-373.403"/> +<!-- program~calc_etadot->grib_close_file --> +<g id="call~~graph~~CallGraph_edge32" class="edge"><title>program~calc_etadot->grib_close_file</title> +<path fill="none" stroke="#000000" d="M70.6232,-255.129C76.3808,-257.961 82.4324,-261.022 88,-264 104.333,-272.737 107.108,-277.399 124,-285 166.52,-304.132 217.158,-320.207 253.793,-330.722"/> +<polygon fill="#000000" stroke="#000000" points="253.16,-334.18 263.736,-333.538 255.068,-327.445 253.16,-334.18"/> </g> </g> </svg> @@ -722,7 +712,7 @@ All Procedures – Flex_extract: Calculation of etadot <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/media/css/bootstrap.css b/Documentation/html/Documentation/Api/Fortran/media/css/bootstrap.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/bootstrap.css rename to Documentation/html/Documentation/Api/Fortran/media/css/bootstrap.css diff --git a/Documentation/FORD/V6/Doc/media/css/bootstrap.min.css b/Documentation/html/Documentation/Api/Fortran/media/css/bootstrap.min.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/bootstrap.min.css rename to Documentation/html/Documentation/Api/Fortran/media/css/bootstrap.min.css diff --git a/Documentation/FORD/V6/Doc/media/css/font-awesome.css b/Documentation/html/Documentation/Api/Fortran/media/css/font-awesome.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/font-awesome.css rename to Documentation/html/Documentation/Api/Fortran/media/css/font-awesome.css diff --git a/Documentation/FORD/V6/Doc/media/css/font-awesome.min.css b/Documentation/html/Documentation/Api/Fortran/media/css/font-awesome.min.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/font-awesome.min.css rename to Documentation/html/Documentation/Api/Fortran/media/css/font-awesome.min.css diff --git a/Documentation/FORD/V6/Doc/media/css/local.css b/Documentation/html/Documentation/Api/Fortran/media/css/local.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/local.css rename to Documentation/html/Documentation/Api/Fortran/media/css/local.css diff --git a/Documentation/FORD/V6/Doc/media/css/pygments.css b/Documentation/html/Documentation/Api/Fortran/media/css/pygments.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/css/pygments.css rename to Documentation/html/Documentation/Api/Fortran/media/css/pygments.css diff --git a/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.eot b/Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.eot similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.eot rename to Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.eot diff --git a/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.svg b/Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.svg similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.svg rename to Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.svg diff --git a/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.ttf b/Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.ttf similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.ttf rename to Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.ttf diff --git a/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.woff b/Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.woff similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.woff rename to Documentation/html/Documentation/Api/Fortran/media/fonts/fontawesome-webfont.woff diff --git a/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.eot b/Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.eot rename to Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.eot diff --git a/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.svg b/Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.svg rename to Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.svg diff --git a/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.ttf b/Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.ttf rename to Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.ttf diff --git a/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.woff b/Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.woff rename to Documentation/html/Documentation/Api/Fortran/media/fonts/glyphicons-halflings-regular.woff diff --git a/Documentation/FORD/V6/Doc/media/js/bootstrap.js b/Documentation/html/Documentation/Api/Fortran/media/js/bootstrap.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/js/bootstrap.js rename to Documentation/html/Documentation/Api/Fortran/media/js/bootstrap.js diff --git a/Documentation/FORD/V6/Doc/media/js/bootstrap.min.js b/Documentation/html/Documentation/Api/Fortran/media/js/bootstrap.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/js/bootstrap.min.js rename to Documentation/html/Documentation/Api/Fortran/media/js/bootstrap.min.js diff --git a/Documentation/FORD/V6/Doc/media/js/ie10-viewport-bug-workaround.js b/Documentation/html/Documentation/Api/Fortran/media/js/ie10-viewport-bug-workaround.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/js/ie10-viewport-bug-workaround.js rename to Documentation/html/Documentation/Api/Fortran/media/js/ie10-viewport-bug-workaround.js diff --git a/Documentation/FORD/V6/Doc/media/js/jquery-2.1.3.min.js b/Documentation/html/Documentation/Api/Fortran/media/js/jquery-2.1.3.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/js/jquery-2.1.3.min.js rename to Documentation/html/Documentation/Api/Fortran/media/js/jquery-2.1.3.min.js diff --git a/Documentation/FORD/V6/Doc/media/js/svg-pan-zoom.min.js b/Documentation/html/Documentation/Api/Fortran/media/js/svg-pan-zoom.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/js/svg-pan-zoom.min.js rename to Documentation/html/Documentation/Api/Fortran/media/js/svg-pan-zoom.min.js diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/img/loader.gif b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/img/loader.gif similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/img/loader.gif rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/img/loader.gif diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/img/search.png b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/img/search.png similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/img/search.png rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/img/search.png diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.css b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.css similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.css rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.css diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.js b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.js rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.js diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.min.js b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.min.js rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch.min.js diff --git a/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch_content.js b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch_content.js new file mode 100644 index 0000000000000000000000000000000000000000..db1f3534ffa2746682897995953b4028afe1c0e9 --- /dev/null +++ b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch_content.js @@ -0,0 +1 @@ +var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version:\nAll code transferred to free form.\nSome code cosmetics, should not have any effects\nRename some source files Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"This file depends on sourcefile~~calc_etadot.f90~~EfferentGraph sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~rwgrib2.f90 rwgrib2.f90 sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs calc_etadot Functions IA Subroutines STATIS Source Code calc_etadot.f90 Source Code PROGRAM calc_etadot !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program calc_etadot ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) ! get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' !! read LNSP in SH CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS ratio of PS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PSG: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' !! read u,v in SH CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' !! read DIV in SH CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , DG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS DG-PS: ' , RMS , MW , SIG !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) ! note that HILF is ps on input and dpsdt*ps on output CALL STATIS ( MAXL , MAXB , 1 , ETAG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETAG-PS: ' , RMS , MW , SIG CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , ETAG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETAG-PS: ' , RMS , MW , SIG DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , ETA , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETA-PS: ' , RMS , MW , SIG CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL STATIS ( MAXL , MAXB , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS HILF-PS: ' , RMS , MW , SIG IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PSG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PSG-PS: ' , RMS , MW , SIG CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! MGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F12.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED calc_etadot: CONGRATULATIONS' 3000 STOP 'ROUTINE calc_etadot: ERROR' 9999 stop 'ROUTINE calc_etadot: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL , INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. ! 10.86 sinstead of 11.04 sec DO 10 K = 1 , NK DO 10 J = 1 , NJ DO 10 I = 1 , NI P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/calc_etadot.f90.html","title":"calc_etadot.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwgrib2.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwgrib2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop !! write(*,*) 'readlatlon: ',i-1,' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO if ( allocated ( values )) deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop !! write(*,*) 'readspectral: ',i-1,' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwgrib2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE ! Anzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN ! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF ) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . ! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE !! WRITE(*,*) 'Symmetrisch: ',SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP ! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... ! Ansonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real, intent(in) :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~calc_etadot calc_etadot program~calc_etadot->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~calc_etadot calc_etadot program~calc_etadot->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid write( , ) 'readlatlon: ',i-1,' records read' Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~calc_etadot calc_etadot program~calc_etadot->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics write( , ) 'readspectral: ',i-1,' records read' Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~calc_etadot calc_etadot program~calc_etadot->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~calc_etadot calc_etadot program~calc_etadot->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~calc_etadot calc_etadot program~calc_etadot->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~calc_etadot calc_etadot program~calc_etadot->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~calc_etadot calc_etadot program~calc_etadot->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph WRITE(*,*) 'Symmetrisch: ',SYM Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~calc_etadot calc_etadot program~calc_etadot->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~calc_etadot calc_etadot program~calc_etadot->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~calc_etadot calc_etadot program~calc_etadot->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Read more… Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Read more… Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~calc_etadot calc_etadot program~calc_etadot->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr program~calc_etadot calc_etadot program~calc_etadot->module~phtogr module~grtoph GRTOPH program~calc_etadot->module~grtoph proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~calc_etadot calc_etadot program~calc_etadot->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~calc_etadot~~UsesGraph program~calc_etadot calc_etadot module~phtogr PHTOGR program~calc_etadot->module~phtogr module~rwgrib2 RWGRIB2 program~calc_etadot->module~rwgrib2 module~ftrafo FTRAFO program~calc_etadot->module~ftrafo module~grtoph GRTOPH program~calc_etadot->module~grtoph GRIB_API GRIB_API program~calc_etadot->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program calc_etadot Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n read LNSP in SH\n read u,v in SH\n Transformieren des Windes auf das Gaussgitter read DIV in SH\n Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~calc_etadot~~CallsGraph program~calc_etadot calc_etadot proc~readspectral READSPECTRAL program~calc_etadot->proc~readspectral proc~phgcut PHGCUT program~calc_etadot->proc~phgcut proc~grph213 GRPH213 program~calc_etadot->proc~grph213 grib_close_file grib_close_file program~calc_etadot->grib_close_file proc~statis STATIS program~calc_etadot->proc~statis proc~phgr213 PHGR213 program~calc_etadot->proc~phgr213 proc~gauleg GAULEG program~calc_etadot->proc~gauleg grib_open_file grib_open_file program~calc_etadot->grib_open_file set99 set99 program~calc_etadot->set99 proc~posnam POSNAM program~calc_etadot->proc~posnam proc~readlatlon READLATLON program~calc_etadot->proc~readlatlon proc~phgrad PHGRAD program~calc_etadot->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/calc_etadot.html","title":"calc_etadot – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_set.js b/Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch_set.js similarity index 100% rename from Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_set.js rename to Documentation/html/Documentation/Api/Fortran/media/tipuesearch/tipuesearch_set.js diff --git a/Documentation/FORD/V6/Doc/module/ftrafo.html b/Documentation/html/Documentation/Api/Fortran/module/ftrafo.html similarity index 96% rename from Documentation/FORD/V6/Doc/module/ftrafo.html rename to Documentation/html/Documentation/Api/Fortran/module/ftrafo.html index de4ac468c97c8add45458d3a298df9b0dc39f385..dd89411682c28b93b4ee5897b21d65e4e6cec290 100644 --- a/Documentation/FORD/V6/Doc/module/ftrafo.html +++ b/Documentation/html/Documentation/Api/Fortran/module/ftrafo.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="37.4% of total for modules and submodules.">359 statements</a> + title="37.5% of total for modules and submodules.">359 statements</a> </li> @@ -231,28 +231,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: module~~ftrafo~~UsedByGraph Pages: 1 --> -<svg id="moduleftrafoUsedByGraph" width="184pt" height="32pt" - viewBox="0.00 0.00 184.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="moduleftrafoUsedByGraph" width="166pt" height="32pt" + viewBox="0.00 0.00 166.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="module~~ftrafo~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>module~~ftrafo~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 180,-28 180,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 162,-28 162,4 -4,4"/> <!-- module~ftrafo --> <g id="module~~ftrafo~~UsedByGraph_node1" class="node"><title>module~ftrafo</title> <polygon fill="none" stroke="black" points="55,-24 0,-24 0,-0 55,-0 55,-24"/> <text text-anchor="middle" x="27.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">FTRAFO</text> </g> -<!-- program~preconvert --> -<g id="module~~ftrafo~~UsedByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_module~~ftrafo~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 91,-24 91,-0 176,-0 176,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="module~~ftrafo~~UsedByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_module~~ftrafo~~UsedByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="158,-24 91,-24 91,-0 158,-0 158,-24"/> +<text text-anchor="middle" x="124.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->module~ftrafo --> -<g id="module~~ftrafo~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~ftrafo</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.7985,-12C82.3748,-12 73.5755,-12 65.3334,-12"/> -<polygon fill="#000000" stroke="#000000" points="65.2615,-8.5001 55.2615,-12 65.2614,-15.5001 65.2615,-8.5001"/> +<!-- program~calc_etadot->module~ftrafo --> +<g id="module~~ftrafo~~UsedByGraph_edge1" class="edge"><title>program~calc_etadot->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.8064,-12C82.6549,-12 73.8571,-12 65.5136,-12"/> +<polygon fill="#000000" stroke="#000000" points="65.271,-8.5001 55.271,-12 65.271,-15.5001 65.271,-8.5001"/> </g> </g> </svg> @@ -935,7 +935,7 @@ public subroutine <a href='../proc/phgrad.html'>PHGRAD</a>(XMN, XLAM, XPHI, GWSA <td></td> <td></td><td>::</td> - <td><strong>IFAX</strong></td><td></td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> </tr> @@ -980,7 +980,7 @@ public subroutine <a href='../proc/phgrad.html'>PHGRAD</a>(XMN, XLAM, XPHI, GWSA <td></td> <td></td><td>::</td> - <td><strong>MLAT</strong></td><td></td> + <td><strong>MLAT</strong>(NJ)</td><td></td> </tr> @@ -1821,7 +1821,7 @@ public subroutine <a href='../proc/omega.html'>OMEGA</a>(PS, DPSDL, DPSDM, DIV, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/module/grtoph.html b/Documentation/html/Documentation/Api/Fortran/module/grtoph.html similarity index 95% rename from Documentation/FORD/V6/Doc/module/grtoph.html rename to Documentation/html/Documentation/Api/Fortran/module/grtoph.html index bf99804a101933432bde7db573b1b0d374c82b20..422bed2c7abd63536dc81c01ff8a1adc99f92edb 100644 --- a/Documentation/FORD/V6/Doc/module/grtoph.html +++ b/Documentation/html/Documentation/Api/Fortran/module/grtoph.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="10.8% of total for modules and submodules.">104 statements</a> + title="10.9% of total for modules and submodules.">104 statements</a> </li> @@ -332,28 +332,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: module~~grtoph~~UsedByGraph Pages: 1 --> -<svg id="modulegrtophUsedByGraph" width="187pt" height="32pt" - viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="modulegrtophUsedByGraph" width="169pt" height="32pt" + viewBox="0.00 0.00 169.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="module~~grtoph~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>module~~grtoph~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 165,-28 165,4 -4,4"/> <!-- module~grtoph --> <g id="module~~grtoph~~UsedByGraph_node1" class="node"><title>module~grtoph</title> <polygon fill="none" stroke="black" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> <text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRTOPH</text> </g> -<!-- program~preconvert --> -<g id="module~~grtoph~~UsedByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_module~~grtoph~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="179,-24 94,-24 94,-0 179,-0 179,-24"/> -<text text-anchor="middle" x="136.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="module~~grtoph~~UsedByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_module~~grtoph~~UsedByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="161,-24 94,-24 94,-0 161,-0 161,-24"/> +<text text-anchor="middle" x="127.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->module~grtoph --> -<g id="module~~grtoph~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.8036,-12C85.3802,-12 76.5631,-12 68.2645,-12"/> -<polygon fill="#000000" stroke="#000000" points="68.0989,-8.5001 58.0989,-12 68.0988,-15.5001 68.0989,-8.5001"/> +<!-- program~calc_etadot->module~grtoph --> +<g id="module~~grtoph~~UsedByGraph_edge1" class="edge"><title>program~calc_etadot->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.8295,-12C85.5884,-12 76.6681,-12 68.1825,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.1226,-8.5001 58.1225,-12 68.1225,-15.5001 68.1226,-8.5001"/> </g> </g> </svg> @@ -500,7 +500,7 @@ public subroutine <a href='../proc/grph213.html'>GRPH213</a>(CXMN, FELD, WSAVE, -<p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER +<p>WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH</p> @@ -583,7 +583,7 @@ public subroutine <a href='../proc/grph213.html'>GRPH213</a>(CXMN, FELD, WSAVE, <tr> - <td><span class="anchor" ></span>real(kind=8)</td> + <td><span class="anchor" ></span>real</td> <td></td> <td></td> @@ -598,7 +598,7 @@ public subroutine <a href='../proc/grph213.html'>GRPH213</a>(CXMN, FELD, WSAVE, <tr> - <td><span class="anchor" ></span>real(kind=8)</td> + <td><span class="anchor" ></span>real</td> <td></td> <td></td> @@ -1224,7 +1224,7 @@ public subroutine <a href='../proc/rfouftr.html'>RFOUFTR</a>(CXM, TRIGS, IFAX, M <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/module/phtogr.html b/Documentation/html/Documentation/Api/Fortran/module/phtogr.html similarity index 91% rename from Documentation/FORD/V6/Doc/module/phtogr.html rename to Documentation/html/Documentation/Api/Fortran/module/phtogr.html index a2733ba3689d6fa485b415f510c355023ac3c1ee..4c9319307c781e70eecfb38b29a53e695b46793d 100644 --- a/Documentation/FORD/V6/Doc/module/phtogr.html +++ b/Documentation/html/Documentation/Api/Fortran/module/phtogr.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="34.8% of total for modules and submodules.">334 statements</a> + title="34.8% of total for modules and submodules.">333 statements</a> </li> @@ -253,15 +253,15 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: module~~phtogr~~UsedByGraph Pages: 1 --> -<svg id="modulephtogrUsedByGraph" width="294pt" height="238pt" - viewBox="0.00 0.00 294.00 238.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="modulephtogrUsedByGraph" width="276pt" height="238pt" + viewBox="0.00 0.00 276.00 238.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="module~~phtogr~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 234)"> <title>module~~phtogr~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-234 290,-234 290,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-234 272,-234 272,4 -4,4"/> <!-- module~phtogr --> <g id="module~~phtogr~~UsedByGraph_node1" class="node"><title>module~phtogr</title> -<polygon fill="none" stroke="black" points="58,-128 0,-128 0,-104 58,-104 58,-128"/> -<text text-anchor="middle" x="29" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHTOGR</text> +<polygon fill="none" stroke="black" points="58,-129 0,-129 0,-105 58,-105 58,-129"/> +<text text-anchor="middle" x="29" y="-114.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHTOGR</text> </g> <!-- proc~vduvsub --> <g id="module~~phtogr~~UsedByGraph_node2" class="node"><title>proc~vduvsub</title> @@ -273,51 +273,69 @@ </g> <!-- proc~vduvsub->module~phtogr --> <g id="module~~phtogr~~UsedByGraph_edge1" class="edge"><title>proc~vduvsub->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.787,-205.77C101.679,-203.123 97.5707,-200.16 94,-197 73.656,-178.996 54.9661,-153.915 43.1037,-136.45"/> -<polygon fill="#000000" stroke="#000000" points="45.9984,-134.482 37.5502,-128.088 40.1674,-138.355 45.9984,-134.482"/> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M110.706,-205.747C105.149,-201.621 99.1339,-196.832 94,-192 75.8052,-174.876 57.5519,-152.896 45.2222,-137.165"/> +<polygon fill="#000000" stroke="#000000" points="47.9041,-134.912 39.0199,-129.139 42.3653,-139.192 47.9041,-134.912"/> </g> -<!-- proc~phgrad --> -<g id="module~~phtogr~~UsedByGraph_node3" class="node"><title>proc~phgrad</title> -<g id="a_module~~phtogr~~UsedByGraph_node3"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> -<polygon fill="#d9534f" stroke="#d9534f" points="158,-188 101,-188 101,-164 158,-164 158,-188"/> -<text text-anchor="middle" x="129.5" y="-173.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +<!-- program~calc_etadot --> +<g id="module~~phtogr~~UsedByGraph_node3" class="node"><title>program~calc_etadot</title> +<g id="a_module~~phtogr~~UsedByGraph_node3"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="268,-170 201,-170 201,-146 268,-146 268,-170"/> +<text text-anchor="middle" x="234.5" y="-155.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- proc~phgrad->module~phtogr --> -<g id="module~~phtogr~~UsedByGraph_edge2" class="edge"><title>proc~phgrad->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.567,-163.858C94.2815,-155.156 74.8217,-143.303 58.8434,-133.57"/> -<polygon fill="#000000" stroke="#000000" points="60.2644,-130.337 49.9033,-128.124 56.6228,-136.315 60.2644,-130.337"/> +<!-- program~calc_etadot->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge2" class="edge"><title>program~calc_etadot->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.885,-163.544C172.118,-167.196 129.388,-169.575 94,-159 78.4251,-154.346 63.1234,-144.551 51.3891,-135.591"/> +<polygon fill="#000000" stroke="#000000" points="53.518,-132.812 43.5224,-129.299 49.1458,-138.279 53.518,-132.812"/> </g> <!-- module~grtoph --> -<g id="module~~phtogr~~UsedByGraph_node4" class="node"><title>module~grtoph</title> -<g id="a_module~~phtogr~~UsedByGraph_node4"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> -<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-108 100.5,-108 100.5,-84 158.5,-84 158.5,-108"/> -<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> +<g id="module~~phtogr~~UsedByGraph_node5" class="node"><title>module~grtoph</title> +<g id="a_module~~phtogr~~UsedByGraph_node5"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-150 100.5,-150 100.5,-126 158.5,-126 158.5,-150"/> +<text text-anchor="middle" x="129.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> +</a> +</g> +</g> +<!-- program~calc_etadot->module~grtoph --> +<g id="module~~phtogr~~UsedByGraph_edge7" class="edge"><title>program~calc_etadot->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.91,-151.672C190.638,-149.677 179.199,-147.456 168.58,-145.394"/> +<polygon fill="#000000" stroke="#000000" points="169.197,-141.949 158.713,-143.478 167.863,-148.82 169.197,-141.949"/> +</g> +<!-- proc~phgrad --> +<g id="module~~phtogr~~UsedByGraph_node4" class="node"><title>proc~phgrad</title> +<g id="a_module~~phtogr~~UsedByGraph_node4"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="158,-108 101,-108 101,-84 158,-84 158,-108"/> +<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> </a> </g> </g> +<!-- proc~phgrad->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge3" class="edge"><title>proc~phgrad->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M100.8,-101.906C90.7098,-104.057 79.1161,-106.529 68.2709,-108.841"/> +<polygon fill="#000000" stroke="#000000" points="67.226,-105.485 58.1757,-110.993 68.6857,-112.331 67.226,-105.485"/> +</g> <!-- module~grtoph->module~phtogr --> -<g id="module~~phtogr~~UsedByGraph_edge4" class="edge"><title>module~grtoph->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M100.274,-101.731C90.2791,-103.761 78.8623,-106.079 68.1785,-108.248"/> -<polygon fill="#000000" stroke="#000000" points="67.3338,-104.848 58.2303,-110.268 68.7268,-111.708 67.3338,-104.848"/> +<g id="module~~phtogr~~UsedByGraph_edge5" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M100.274,-131.982C90.2791,-129.851 78.8623,-127.417 68.1785,-125.14"/> +<polygon fill="#000000" stroke="#000000" points="68.7403,-121.681 58.2303,-123.019 67.2807,-128.527 68.7403,-121.681"/> </g> <!-- proc~vdtouv --> -<g id="module~~phtogr~~UsedByGraph_node5" class="node"><title>proc~vdtouv</title> -<g id="a_module~~phtogr~~UsedByGraph_node5"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<g id="module~~phtogr~~UsedByGraph_node6" class="node"><title>proc~vdtouv</title> +<g id="a_module~~phtogr~~UsedByGraph_node6"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> <polygon fill="#d9534f" stroke="#d9534f" points="157.5,-66 101.5,-66 101.5,-42 157.5,-42 157.5,-66"/> <text text-anchor="middle" x="129.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> </a> </g> </g> <!-- proc~vdtouv->module~phtogr --> -<g id="module~~phtogr~~UsedByGraph_edge3" class="edge"><title>proc~vdtouv->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.385,-66.1374C103.654,-69.0215 98.6389,-72.1028 94,-75 81.9011,-82.5563 68.6082,-91.0418 57.2871,-98.3244"/> -<polygon fill="#000000" stroke="#000000" points="55.1993,-95.5061 48.691,-103.866 58.9922,-101.389 55.1993,-95.5061"/> +<g id="module~~phtogr~~UsedByGraph_edge4" class="edge"><title>proc~vdtouv->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.362,-66.1004C103.632,-68.9861 98.6229,-72.0773 94,-75 81.6793,-82.7894 68.1682,-91.6137 56.7482,-99.1563"/> +<polygon fill="#000000" stroke="#000000" points="54.5035,-96.445 48.1007,-104.886 58.37,-102.28 54.5035,-96.445"/> </g> <!-- proc~phgracut --> -<g id="module~~phtogr~~UsedByGraph_node6" class="node"><title>proc~phgracut</title> -<g id="a_module~~phtogr~~UsedByGraph_node6"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<g id="module~~phtogr~~UsedByGraph_node7" class="node"><title>proc~phgracut</title> +<g id="a_module~~phtogr~~UsedByGraph_node7"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> <polygon fill="#d9534f" stroke="#d9534f" points="165,-24 94,-24 94,-0 165,-0 165,-24"/> <text text-anchor="middle" x="129.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> </a> @@ -325,26 +343,8 @@ </g> <!-- proc~phgracut->module~phtogr --> <g id="module~~phtogr~~UsedByGraph_edge6" class="edge"><title>proc~phgracut->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.756,-24.1955C101.651,-26.8462 97.5519,-29.819 94,-33 73.3384,-51.5039 54.5916,-77.3987 42.8045,-95.3227"/> -<polygon fill="#000000" stroke="#000000" points="39.7624,-93.5826 37.3018,-103.888 45.6517,-97.3663 39.7624,-93.5826"/> -</g> -<!-- program~preconvert --> -<g id="module~~phtogr~~UsedByGraph_node7" class="node"><title>program~preconvert</title> -<g id="a_module~~phtogr~~UsedByGraph_node7"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="286,-128 201,-128 201,-104 286,-104 286,-128"/> -<text text-anchor="middle" x="243.5" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> -</a> -</g> -</g> -<!-- program~preconvert->module~phtogr --> -<g id="module~~phtogr~~UsedByGraph_edge5" class="edge"><title>program~preconvert->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.671,-116.638C189.115,-116.788 176.572,-116.925 165,-117 133.445,-117.204 125.555,-117.247 94,-117 85.626,-116.935 76.6362,-116.821 68.1188,-116.693"/> -<polygon fill="#000000" stroke="#000000" points="68.0914,-113.193 58.0369,-116.533 67.9799,-120.192 68.0914,-113.193"/> -</g> -<!-- program~preconvert->module~grtoph --> -<g id="module~~phtogr~~UsedByGraph_edge7" class="edge"><title>program~preconvert->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.795,-108.553C190.253,-106.67 178.987,-104.658 168.632,-102.809"/> -<polygon fill="#000000" stroke="#000000" points="169.1,-99.3376 158.64,-101.025 167.869,-106.229 169.1,-99.3376"/> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.741,-24.1789C101.638,-26.8312 97.5427,-29.8087 94,-33 73.2359,-51.7042 54.5087,-77.9153 42.7542,-96.0624"/> +<polygon fill="#000000" stroke="#000000" points="39.6566,-94.4123 37.2692,-104.735 45.5726,-98.1541 39.6566,-94.4123"/> </g> </g> </svg> @@ -964,7 +964,7 @@ public subroutine <a href='../proc/phgcut.html'>PHGCUT</a>(CXMN, FELD, WSAVE, IF <p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt - Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p> + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p><a href="../proc/phgcut.html" class="pull-right"><emph>Read more…</emph></a> <h4>Arguments</h4> @@ -2260,7 +2260,7 @@ public subroutine <a href='../proc/spfilter.html'>SPFILTER</a>(FELDMN, MM, MMAX) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/module/rwgrib2.html b/Documentation/html/Documentation/Api/Fortran/module/rwgrib2.html similarity index 92% rename from Documentation/FORD/V6/Doc/module/rwgrib2.html rename to Documentation/html/Documentation/Api/Fortran/module/rwgrib2.html index b2abe98729e973434765bb5cae3b0899305871aa..05f1b73712d50bc97d50ad29fd9b1722c11d2958 100644 --- a/Documentation/FORD/V6/Doc/module/rwgrib2.html +++ b/Documentation/html/Documentation/Api/Fortran/module/rwgrib2.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,19 +126,19 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="17.1% of total for modules and submodules.">164 statements</a> + title="16.9% of total for modules and submodules.">162 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/rwgrib2.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + <li><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></li> <li class="active">RWGRIB2</li> @@ -225,28 +225,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: module~~rwgrib2~~UsedByGraph Pages: 1 --> -<svg id="modulerwgrib2UsedByGraph" width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="modulerwgrib2UsedByGraph" width="172pt" height="32pt" + viewBox="0.00 0.00 172.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="module~~rwgrib2~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>module~~rwgrib2~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 168,-28 168,4 -4,4"/> <!-- module~rwgrib2 --> <g id="module~~rwgrib2~~UsedByGraph_node1" class="node"><title>module~rwgrib2</title> <polygon fill="none" stroke="black" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> <text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">RWGRIB2</text> </g> -<!-- program~preconvert --> -<g id="module~~rwgrib2~~UsedByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_module~~rwgrib2~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="182,-24 97,-24 97,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="139.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="module~~rwgrib2~~UsedByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_module~~rwgrib2~~UsedByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="164,-24 97,-24 97,-0 164,-0 164,-24"/> +<text text-anchor="middle" x="130.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->module~rwgrib2 --> -<g id="module~~rwgrib2~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~rwgrib2</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.8246,-12C88.4903,-12 79.753,-12 71.4777,-12"/> -<polygon fill="#000000" stroke="#000000" points="71.3077,-8.5001 61.3077,-12 71.3077,-15.5001 71.3077,-8.5001"/> +<!-- program~calc_etadot->module~rwgrib2 --> +<g id="module~~rwgrib2~~UsedByGraph_edge1" class="edge"><title>program~calc_etadot->module~rwgrib2</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.8674,-12C88.6337,-12 79.7034,-12 71.1657,-12"/> +<polygon fill="#000000" stroke="#000000" points="71.0195,-8.5001 61.0195,-12 71.0195,-15.5001 71.0195,-8.5001"/> </g> </g> </svg> @@ -391,7 +391,7 @@ public subroutine <a href='../proc/readlatlon.html'>READLATLON</a>(filename, fel -<p>Read a field from GRIB file on lat-lon grid</p> +<p>Read a field from GRIB file on lat-lon grid</p><a href="../proc/readlatlon.html" class="pull-right"><emph>Read more…</emph></a> <h4>Arguments</h4> @@ -719,7 +719,7 @@ public subroutine <a href='../proc/readspectral.html'>READSPECTRAL</a>(filename, -<p>read a GRIB file in spherical harmonics</p> +<p>read a GRIB file in spherical harmonics</p><a href="../proc/readspectral.html" class="pull-right"><emph>Read more…</emph></a> <h4>Arguments</h4> @@ -880,7 +880,7 @@ public subroutine <a href='../proc/readspectral.html'>READSPECTRAL</a>(filename, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/contgl.html b/Documentation/html/Documentation/Api/Fortran/proc/contgl.html similarity index 97% rename from Documentation/FORD/V6/Doc/proc/contgl.html rename to Documentation/html/Documentation/Api/Fortran/proc/contgl.html index e346536efbd8726f95a35b29e66c651a7e5c0bca..dfa27ee929863117bb90f71845be3d31d0931d5f 100644 --- a/Documentation/FORD/V6/Doc/proc/contgl.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/contgl.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -500,7 +500,7 @@ public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, N <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/dplgnd.html b/Documentation/html/Documentation/Api/Fortran/proc/dplgnd.html similarity index 96% rename from Documentation/FORD/V6/Doc/proc/dplgnd.html rename to Documentation/html/Documentation/Api/Fortran/proc/dplgnd.html index 216506d778236886669f01947351b88d19f2e486..180c6c6445c36c5eb935cd6bccf325308a292113 100644 --- a/Documentation/FORD/V6/Doc/proc/dplgnd.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/dplgnd.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 2.6% of total for procedures.">27 statements</a> + title=" 2.7% of total for procedures.">27 statements</a> </li> @@ -335,7 +335,7 @@ public subroutine DPLGND(MNAUF, Z, DZ) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/gauleg.html b/Documentation/html/Documentation/Api/Fortran/proc/gauleg.html similarity index 93% rename from Documentation/FORD/V6/Doc/proc/gauleg.html rename to Documentation/html/Documentation/Api/Fortran/proc/gauleg.html index 301c9addb5a9a09f7e49215538adca31258c96e5..583c077466fa3c3f9ed0550b2b1414a751304140 100644 --- a/Documentation/FORD/V6/Doc/proc/gauleg.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/gauleg.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 2.7% of total for procedures.">28 statements</a> + title=" 2.8% of total for procedures.">28 statements</a> </li> @@ -403,28 +403,28 @@ public subroutine GAULEG(X1, X2, X, W, N) <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~gauleg~~CalledByGraph Pages: 1 --> -<svg id="procgaulegCalledByGraph" width="185pt" height="32pt" - viewBox="0.00 0.00 185.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procgaulegCalledByGraph" width="167pt" height="32pt" + viewBox="0.00 0.00 167.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~gauleg~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~gauleg~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 181,-28 181,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 163,-28 163,4 -4,4"/> <!-- proc~gauleg --> <g id="proc~~gauleg~~CalledByGraph_node1" class="node"><title>proc~gauleg</title> -<polygon fill="none" stroke="black" points="177,-24 121,-24 121,-0 177,-0 177,-24"/> -<text text-anchor="middle" x="149" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GAULEG</text> +<polygon fill="none" stroke="black" points="159,-24 103,-24 103,-0 159,-0 159,-24"/> +<text text-anchor="middle" x="131" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GAULEG</text> </g> -<!-- program~preconvert --> -<g id="proc~~gauleg~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~gauleg~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~gauleg~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~gauleg~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~gauleg --> -<g id="proc~~gauleg~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~gauleg</title> -<path fill="none" stroke="#000000" d="M85.1014,-12C93.5857,-12 102.461,-12 110.781,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.951,-15.5001 120.951,-12 110.951,-8.5001 110.951,-15.5001"/> +<!-- program~calc_etadot->proc~gauleg --> +<g id="proc~~gauleg~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M67.0986,-12C75.3962,-12 84.3749,-12 92.8796,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9408,-15.5001 102.941,-12 92.9408,-8.5001 92.9408,-15.5001"/> </g> </g> </svg> @@ -546,7 +546,7 @@ public subroutine GAULEG(X1, X2, X, W, N) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/grph213.html b/Documentation/html/Documentation/Api/Fortran/proc/grph213.html similarity index 93% rename from Documentation/FORD/V6/Doc/proc/grph213.html rename to Documentation/html/Documentation/Api/Fortran/proc/grph213.html index 4bd2b49cc7cdc9cb1ee060be011dae740a3d4384..4bb032528eb18e7ef9b167dad782cf368b6496b8 100644 --- a/Documentation/FORD/V6/Doc/proc/grph213.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/grph213.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -203,7 +203,7 @@ public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB - <p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + <p>WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH</p> @@ -286,7 +286,7 @@ public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB <tr> - <td><span class="anchor" id="variable-z"></span>real(kind=8)</td> + <td><span class="anchor" id="variable-z"></span>real</td> <td></td> <td></td> @@ -301,7 +301,7 @@ public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB <tr> - <td><span class="anchor" id="variable-w"></span>real(kind=8)</td> + <td><span class="anchor" id="variable-w"></span>real</td> <td></td> <td></td> @@ -508,28 +508,28 @@ public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~grph213~~CalledByGraph Pages: 1 --> -<svg id="procgrph213CalledByGraph" width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procgrph213CalledByGraph" width="172pt" height="32pt" + viewBox="0.00 0.00 172.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~grph213~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~grph213~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 168,-28 168,4 -4,4"/> <!-- proc~grph213 --> <g id="proc~~grph213~~CalledByGraph_node1" class="node"><title>proc~grph213</title> -<polygon fill="none" stroke="black" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPH213</text> +<polygon fill="none" stroke="black" points="164,-24 103,-24 103,-0 164,-0 164,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPH213</text> </g> -<!-- program~preconvert --> -<g id="proc~~grph213~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~grph213~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~grph213~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~grph213~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~grph213 --> -<g id="proc~~grph213~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~grph213</title> -<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +<!-- program~calc_etadot->proc~grph213 --> +<g id="proc~~grph213~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~grph213</title> +<path fill="none" stroke="#000000" d="M67.1326,-12C75.3663,-12 84.2966,-12 92.8343,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9805,-15.5001 102.98,-12 92.9805,-8.5001 92.9805,-15.5001"/> </g> </g> </svg> @@ -651,7 +651,7 @@ public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/grphsub.html b/Documentation/html/Documentation/Api/Fortran/proc/grphsub.html similarity index 90% rename from Documentation/FORD/V6/Doc/proc/grphsub.html rename to Documentation/html/Documentation/Api/Fortran/proc/grphsub.html index 1eb63a18f8840a4caabdbdf660aa650d1226516a..213ab93b5c26b095d67489afd24a6c9ea1d9546b 100644 --- a/Documentation/FORD/V6/Doc/proc/grphsub.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/grphsub.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 2.7% of total for procedures.">28 statements</a> + title=" 2.8% of total for procedures.">28 statements</a> </li> @@ -436,41 +436,41 @@ public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MA <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~grphsub~~CalledByGraph Pages: 1 --> -<svg id="procgrphsubCalledByGraph" width="290pt" height="32pt" - viewBox="0.00 0.00 290.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procgrphsubCalledByGraph" width="272pt" height="32pt" + viewBox="0.00 0.00 272.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~grphsub~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~grphsub~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 286,-28 286,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 268,-28 268,4 -4,4"/> <!-- proc~grphsub --> <g id="proc~~grphsub~~CalledByGraph_node1" class="node"><title>proc~grphsub</title> -<polygon fill="none" stroke="black" points="282,-24 218,-24 218,-0 282,-0 282,-24"/> -<text text-anchor="middle" x="250" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPHSUB</text> +<polygon fill="none" stroke="black" points="264,-24 200,-24 200,-0 264,-0 264,-24"/> +<text text-anchor="middle" x="232" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPHSUB</text> </g> <!-- proc~grph213 --> <g id="proc~~grphsub~~CalledByGraph_node2" class="node"><title>proc~grph213</title> <g id="a_proc~~grphsub~~CalledByGraph_node2"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> -<polygon fill="#d9534f" stroke="#d9534f" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> +<polygon fill="#d9534f" stroke="#d9534f" points="164,-24 103,-24 103,-0 164,-0 164,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> </a> </g> </g> <!-- proc~grph213->proc~grphsub --> <g id="proc~~grphsub~~CalledByGraph_edge1" class="edge"><title>proc~grph213->proc~grphsub</title> -<path fill="none" stroke="#000000" d="M182.241,-12C190.272,-12 199.11,-12 207.654,-12"/> -<polygon fill="#000000" stroke="#000000" points="207.855,-15.5001 217.855,-12 207.854,-8.5001 207.855,-15.5001"/> +<path fill="none" stroke="#000000" d="M164.241,-12C172.272,-12 181.11,-12 189.654,-12"/> +<polygon fill="#000000" stroke="#000000" points="189.855,-15.5001 199.855,-12 189.854,-8.5001 189.855,-15.5001"/> </g> -<!-- program~preconvert --> -<g id="proc~~grphsub~~CalledByGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_proc~~grphsub~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~grphsub~~CalledByGraph_node3" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~grphsub~~CalledByGraph_node3"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~grph213 --> -<g id="proc~~grphsub~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~grph213</title> -<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +<!-- program~calc_etadot->proc~grph213 --> +<g id="proc~~grphsub~~CalledByGraph_edge2" class="edge"><title>program~calc_etadot->proc~grph213</title> +<path fill="none" stroke="#000000" d="M67.1326,-12C75.3663,-12 84.2966,-12 92.8343,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9805,-15.5001 102.98,-12 92.9805,-8.5001 92.9805,-15.5001"/> </g> </g> </svg> @@ -592,7 +592,7 @@ public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MA <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/ia.html b/Documentation/html/Documentation/Api/Fortran/proc/ia.html similarity index 94% rename from Documentation/FORD/V6/Doc/proc/ia.html rename to Documentation/html/Documentation/Api/Fortran/proc/ia.html index 67e4ec6fbb187d38006e98657455fd9906eecba3..8f821e52f8e25319a680d4c907a2ab764db292be 100644 --- a/Documentation/FORD/V6/Doc/proc/ia.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/ia.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -131,14 +131,14 @@ - <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/calc_etadot.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + <li><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></li> <li class="active">IA</li> @@ -282,8 +282,8 @@ function IA(FIELD1, NI, NJ, NK, G) <tr> - <td><span class="anchor" id="variable-g"></span>real</td> - <td></td> + <td><span class="anchor" id="variable-g"></span>real,</td> + <td>intent(in)</td> <td></td> <td></td><td>::</td> @@ -370,7 +370,7 @@ function IA(FIELD1, NI, NJ, NK, G) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/legtr.html b/Documentation/html/Documentation/Api/Fortran/proc/legtr.html similarity index 97% rename from Documentation/FORD/V6/Doc/proc/legtr.html rename to Documentation/html/Documentation/Api/Fortran/proc/legtr.html index 4d60610fb5fd7cebead9741632d051dd2340c5e3..a7d1189f5325c4275e897c433545893cdd4037c4 100644 --- a/Documentation/FORD/V6/Doc/proc/legtr.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/legtr.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -363,7 +363,7 @@ public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/lgtr213.html b/Documentation/html/Documentation/Api/Fortran/proc/lgtr213.html similarity index 97% rename from Documentation/FORD/V6/Doc/proc/lgtr213.html rename to Documentation/html/Documentation/Api/Fortran/proc/lgtr213.html index 0936a39889c0d84f1d6a455b03a3a8dffac2c945..94042aacb907beae07063939bee8f878a440b4d3 100644 --- a/Documentation/FORD/V6/Doc/proc/lgtr213.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/lgtr213.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -394,7 +394,7 @@ public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/omega.html b/Documentation/html/Documentation/Api/Fortran/proc/omega.html similarity index 97% rename from Documentation/FORD/V6/Doc/proc/omega.html rename to Documentation/html/Documentation/Api/Fortran/proc/omega.html index 682d1cf078c97147ec90b83aac13d038292e2e74..ac71f85f0a88850818723bf80809d21816a51e2b 100644 --- a/Documentation/FORD/V6/Doc/proc/omega.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/omega.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -498,7 +498,7 @@ public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phgcut.html b/Documentation/html/Documentation/Api/Fortran/proc/phgcut.html similarity index 93% rename from Documentation/FORD/V6/Doc/proc/phgcut.html rename to Documentation/html/Documentation/Api/Fortran/proc/phgcut.html index 15738d502e13587808fd32c3fbb9fe4df613f747..8d8510ef87f3b3889bdabe56319f5262e4b99c0e 100644 --- a/Documentation/FORD/V6/Doc/proc/phgcut.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phgcut.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 3.2% of total for procedures.">33 statements</a> + title=" 3.1% of total for procedures.">32 statements</a> </li> @@ -206,7 +206,9 @@ public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MA <p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt - Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p> + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p> +<div class="codehilite"><pre><span></span> WRITE(*,*) 'Symmetrisch: ',SYM +</pre></div> <h3>Arguments</h3> @@ -555,28 +557,28 @@ public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MA <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phgcut~~CalledByGraph Pages: 1 --> -<svg id="procphgcutCalledByGraph" width="186pt" height="32pt" - viewBox="0.00 0.00 186.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphgcutCalledByGraph" width="168pt" height="32pt" + viewBox="0.00 0.00 168.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phgcut~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phgcut~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 182,-28 182,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 164,-28 164,4 -4,4"/> <!-- proc~phgcut --> <g id="proc~~phgcut~~CalledByGraph_node1" class="node"><title>proc~phgcut</title> -<polygon fill="none" stroke="black" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> -<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGCUT</text> -</g> -<!-- program~preconvert --> -<g id="proc~~phgcut~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~phgcut~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<polygon fill="none" stroke="black" points="160,-24 103,-24 103,-0 160,-0 160,-24"/> +<text text-anchor="middle" x="131.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGCUT</text> +</g> +<!-- program~calc_etadot --> +<g id="proc~~phgcut~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phgcut~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="proc~~phgcut~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="proc~~phgcut~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M67.0012,-12C75.2769,-12 84.2412,-12 92.7541,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.8375,-15.5001 102.837,-12 92.8374,-8.5001 92.8375,-15.5001"/> </g> </g> </svg> @@ -698,7 +700,7 @@ public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MA <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phgpns.html b/Documentation/html/Documentation/Api/Fortran/proc/phgpns.html similarity index 92% rename from Documentation/FORD/V6/Doc/proc/phgpns.html rename to Documentation/html/Documentation/Api/Fortran/proc/phgpns.html index a3c1854851c11d206887e84a45e261b7d3dbe95e..dca19e90f2196944231f70887e441e349fc70df3 100644 --- a/Documentation/FORD/V6/Doc/proc/phgpns.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phgpns.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -519,41 +519,41 @@ public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phgpns~~CalledByGraph Pages: 1 --> -<svg id="procphgpnsCalledByGraph" width="278pt" height="32pt" - viewBox="0.00 0.00 278.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphgpnsCalledByGraph" width="260pt" height="32pt" + viewBox="0.00 0.00 260.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phgpns~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phgpns~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 274,-28 274,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 256,-28 256,4 -4,4"/> <!-- proc~phgpns --> <g id="proc~~phgpns~~CalledByGraph_node1" class="node"><title>proc~phgpns</title> -<polygon fill="none" stroke="black" points="270,-24 214,-24 214,-0 270,-0 270,-24"/> -<text text-anchor="middle" x="242" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGPNS</text> +<polygon fill="none" stroke="black" points="252,-24 196,-24 196,-0 252,-0 252,-24"/> +<text text-anchor="middle" x="224" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGPNS</text> </g> <!-- proc~phgcut --> <g id="proc~~phgpns~~CalledByGraph_node2" class="node"><title>proc~phgcut</title> <g id="a_proc~~phgpns~~CalledByGraph_node2"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> -<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +<polygon fill="#d9534f" stroke="#d9534f" points="160,-24 103,-24 103,-0 160,-0 160,-24"/> +<text text-anchor="middle" x="131.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> </a> </g> </g> <!-- proc~phgcut->proc~phgpns --> <g id="proc~~phgpns~~CalledByGraph_edge1" class="edge"><title>proc~phgcut->proc~phgpns</title> -<path fill="none" stroke="#000000" d="M178.145,-12C186.201,-12 195.139,-12 203.688,-12"/> -<polygon fill="#000000" stroke="#000000" points="203.836,-15.5001 213.836,-12 203.835,-8.5001 203.836,-15.5001"/> +<path fill="none" stroke="#000000" d="M160.145,-12C168.201,-12 177.139,-12 185.688,-12"/> +<polygon fill="#000000" stroke="#000000" points="185.836,-15.5001 195.836,-12 185.835,-8.5001 185.836,-15.5001"/> </g> -<!-- program~preconvert --> -<g id="proc~~phgpns~~CalledByGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_proc~~phgpns~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~phgpns~~CalledByGraph_node3" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phgpns~~CalledByGraph_node3"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="proc~~phgpns~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="proc~~phgpns~~CalledByGraph_edge2" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M67.0012,-12C75.2769,-12 84.2412,-12 92.7541,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.8375,-15.5001 102.837,-12 92.8374,-8.5001 92.8375,-15.5001"/> </g> </g> </svg> @@ -675,7 +675,7 @@ public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phgr213.html b/Documentation/html/Documentation/Api/Fortran/proc/phgr213.html similarity index 94% rename from Documentation/FORD/V6/Doc/proc/phgr213.html rename to Documentation/html/Documentation/Api/Fortran/proc/phgr213.html index 73504257d0d0ec2583608b741df86492a53f25c5..8215ec84788b62bdc4c195b60b26853ec1627fbc 100644 --- a/Documentation/FORD/V6/Doc/proc/phgr213.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phgr213.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -483,28 +483,28 @@ public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, M <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phgr213~~CalledByGraph Pages: 1 --> -<svg id="procphgr213CalledByGraph" width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphgr213CalledByGraph" width="172pt" height="32pt" + viewBox="0.00 0.00 172.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phgr213~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phgr213~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 168,-28 168,4 -4,4"/> <!-- proc~phgr213 --> <g id="proc~~phgr213~~CalledByGraph_node1" class="node"><title>proc~phgr213</title> -<polygon fill="none" stroke="black" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGR213</text> +<polygon fill="none" stroke="black" points="164,-24 103,-24 103,-0 164,-0 164,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGR213</text> </g> -<!-- program~preconvert --> -<g id="proc~~phgr213~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~phgr213~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~phgr213~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phgr213~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgr213 --> -<g id="proc~~phgr213~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgr213</title> -<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +<!-- program~calc_etadot->proc~phgr213 --> +<g id="proc~~phgr213~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M67.1326,-12C75.3663,-12 84.2966,-12 92.8343,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9805,-15.5001 102.98,-12 92.9805,-8.5001 92.9805,-15.5001"/> </g> </g> </svg> @@ -626,7 +626,7 @@ public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, M <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phgracut.html b/Documentation/html/Documentation/Api/Fortran/proc/phgracut.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/phgracut.html rename to Documentation/html/Documentation/Api/Fortran/proc/phgracut.html index bd77924c6bab8b79c99603eaab4cb22e7642ea09..ea82cbb2b8307532b0b7dc060301e9b1adbd78b7 100644 --- a/Documentation/FORD/V6/Doc/proc/phgracut.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phgracut.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -694,7 +694,7 @@ public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phgrad.html b/Documentation/html/Documentation/Api/Fortran/proc/phgrad.html similarity index 75% rename from Documentation/FORD/V6/Doc/proc/phgrad.html rename to Documentation/html/Documentation/Api/Fortran/proc/phgrad.html index ad3d55bffbd74346f4625af4eac69acdf5324e1e..1be8b0fccc170c45c97eff6d0dde20fc7eab598a 100644 --- a/Documentation/FORD/V6/Doc/proc/phgrad.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phgrad.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -396,7 +396,7 @@ public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, N <td></td> <td></td><td>::</td> - <td><strong>IFAX</strong></td><td></td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> </tr> @@ -441,7 +441,7 @@ public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, N <td></td> <td></td><td>::</td> - <td><strong>MLAT</strong></td><td></td> + <td><strong>MLAT</strong>(NJ)</td><td></td> </tr> @@ -514,95 +514,6 @@ public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, N <br> - <div class="panel panel-default"> - <div class="panel-heading"> - <h3 class="panel-title">Calls</h3> - </div> - <div class="panel-body"> - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: proc~~phgrad~~CallsGraph Pages: 1 --> -<svg id="procphgradCallsGraph" width="167pt" height="32pt" - viewBox="0.00 0.00 167.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="proc~~phgrad~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>proc~~phgrad~~CallsGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 163,-28 163,4 -4,4"/> -<!-- proc~phgrad --> -<g id="proc~~phgrad~~CallsGraph_node1" class="node"><title>proc~phgrad</title> -<polygon fill="none" stroke="black" points="57,-24 0,-24 0,-0 57,-0 57,-24"/> -<text text-anchor="middle" x="28.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> -</g> -<!-- integermlat --> -<g id="proc~~phgrad~~CallsGraph_node2" class="node"><title>integermlat</title> -<polygon fill="#777777" stroke="#777777" points="159,-24 93,-24 93,-0 159,-0 159,-24"/> -<text text-anchor="middle" x="126" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> -</g> -<!-- proc~phgrad->integermlat --> -<g id="proc~~phgrad~~CallsGraph_edge1" class="edge"><title>proc~phgrad->integermlat</title> -<path fill="none" stroke="#000000" d="M57.1226,-12C65.1206,-12 74.0407,-12 82.7169,-12"/> -<polygon fill="#000000" stroke="#000000" points="82.7201,-15.5001 92.7201,-12 82.72,-8.5001 82.7201,-15.5001"/> -</g> -</g> -</svg> -</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="560pt" height="32pt" - viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> -<!-- Subroutine --> -<g id="node1" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> -<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node2" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> -<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Interface --> -<g id="node3" class="node"><title>Interface</title> -<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> -<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> -</g> -<!-- Unknown Procedure Type --> -<g id="node4" class="node"><title>Unknown Procedure Type</title> -<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> -<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> -<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> -<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a procedure to one which it calls. Dashed - arrows point from an interface to procedures which implement that interface. - This could include the module procedures in a generic interface or the - implementation in a submodule of an interface in a parent module. - </p> - </div></div></div></div> - </div> - </div> - <div class="panel panel-default"> <div class="panel-heading"> @@ -615,28 +526,28 @@ public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, N <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phgrad~~CalledByGraph Pages: 1 --> -<svg id="procphgradCalledByGraph" width="186pt" height="32pt" - viewBox="0.00 0.00 186.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphgradCalledByGraph" width="168pt" height="32pt" + viewBox="0.00 0.00 168.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phgrad~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phgrad~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 182,-28 182,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 164,-28 164,4 -4,4"/> <!-- proc~phgrad --> <g id="proc~~phgrad~~CalledByGraph_node1" class="node"><title>proc~phgrad</title> -<polygon fill="none" stroke="black" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> -<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> -</g> -<!-- program~preconvert --> -<g id="proc~~phgrad~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~phgrad~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<polygon fill="none" stroke="black" points="160,-24 103,-24 103,-0 160,-0 160,-24"/> +<text text-anchor="middle" x="131.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> +</g> +<!-- program~calc_etadot --> +<g id="proc~~phgrad~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phgrad~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgrad --> -<g id="proc~~phgrad~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgrad</title> -<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +<!-- program~calc_etadot->proc~phgrad --> +<g id="proc~~phgrad~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M67.0012,-12C75.2769,-12 84.2412,-12 92.7541,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.8375,-15.5001 102.837,-12 92.8374,-8.5001 92.8375,-15.5001"/> </g> </g> </svg> @@ -758,7 +669,7 @@ public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, N <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phsym.html b/Documentation/html/Documentation/Api/Fortran/proc/phsym.html similarity index 90% rename from Documentation/FORD/V6/Doc/proc/phsym.html rename to Documentation/html/Documentation/Api/Fortran/proc/phsym.html index 3a42c3643789b7fbc85eceb22d66163bc959ed81..29bc9a6adfc1aff08c3f5e5fbffedb8f18faf680 100644 --- a/Documentation/FORD/V6/Doc/proc/phsym.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phsym.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -417,41 +417,41 @@ public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, M <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phsym~~CalledByGraph Pages: 1 --> -<svg id="procphsymCalledByGraph" width="280pt" height="32pt" - viewBox="0.00 0.00 280.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphsymCalledByGraph" width="262pt" height="32pt" + viewBox="0.00 0.00 262.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phsym~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phsym~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 276,-28 276,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 258,-28 258,4 -4,4"/> <!-- proc~phsym --> <g id="proc~~phsym~~CalledByGraph_node1" class="node"><title>proc~phsym</title> -<polygon fill="none" stroke="black" points="272,-24 218,-24 218,-0 272,-0 272,-24"/> -<text text-anchor="middle" x="245" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYM</text> +<polygon fill="none" stroke="black" points="254,-24 200,-24 200,-0 254,-0 254,-24"/> +<text text-anchor="middle" x="227" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYM</text> </g> <!-- proc~phgr213 --> <g id="proc~~phsym~~CalledByGraph_node2" class="node"><title>proc~phgr213</title> <g id="a_proc~~phsym~~CalledByGraph_node2"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> -<polygon fill="#d9534f" stroke="#d9534f" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +<polygon fill="#d9534f" stroke="#d9534f" points="164,-24 103,-24 103,-0 164,-0 164,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> </a> </g> </g> <!-- proc~phgr213->proc~phsym --> <g id="proc~~phsym~~CalledByGraph_edge1" class="edge"><title>proc~phgr213->proc~phsym</title> -<path fill="none" stroke="#000000" d="M182.207,-12C190.369,-12 199.311,-12 207.794,-12"/> -<polygon fill="#000000" stroke="#000000" points="207.831,-15.5001 217.831,-12 207.831,-8.5001 207.831,-15.5001"/> +<path fill="none" stroke="#000000" d="M164.207,-12C172.369,-12 181.311,-12 189.794,-12"/> +<polygon fill="#000000" stroke="#000000" points="189.831,-15.5001 199.831,-12 189.831,-8.5001 189.831,-15.5001"/> </g> -<!-- program~preconvert --> -<g id="proc~~phsym~~CalledByGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_proc~~phsym~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~phsym~~CalledByGraph_node3" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phsym~~CalledByGraph_node3"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgr213 --> -<g id="proc~~phsym~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgr213</title> -<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +<!-- program~calc_etadot->proc~phgr213 --> +<g id="proc~~phsym~~CalledByGraph_edge2" class="edge"><title>program~calc_etadot->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M67.1326,-12C75.3663,-12 84.2966,-12 92.8343,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9805,-15.5001 102.98,-12 92.9805,-8.5001 92.9805,-15.5001"/> </g> </g> </svg> @@ -573,7 +573,7 @@ public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, M <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/phsymcut.html b/Documentation/html/Documentation/Api/Fortran/proc/phsymcut.html similarity index 92% rename from Documentation/FORD/V6/Doc/proc/phsymcut.html rename to Documentation/html/Documentation/Api/Fortran/proc/phsymcut.html index 51efe30653c673adb81cf8664fb86e8070599070..15bfc071559c30bebcdd27c78e8cb1b35f3f78ba 100644 --- a/Documentation/FORD/V6/Doc/proc/phsymcut.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/phsymcut.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -519,41 +519,41 @@ public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAX <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~phsymcut~~CalledByGraph Pages: 1 --> -<svg id="procphsymcutCalledByGraph" width="293pt" height="32pt" - viewBox="0.00 0.00 293.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procphsymcutCalledByGraph" width="275pt" height="32pt" + viewBox="0.00 0.00 275.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~phsymcut~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~phsymcut~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 289,-28 289,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 271,-28 271,4 -4,4"/> <!-- proc~phsymcut --> <g id="proc~~phsymcut~~CalledByGraph_node1" class="node"><title>proc~phsymcut</title> -<polygon fill="none" stroke="black" points="285,-24 214,-24 214,-0 285,-0 285,-24"/> -<text text-anchor="middle" x="249.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYMCUT</text> +<polygon fill="none" stroke="black" points="267,-24 196,-24 196,-0 267,-0 267,-24"/> +<text text-anchor="middle" x="231.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYMCUT</text> </g> <!-- proc~phgcut --> <g id="proc~~phsymcut~~CalledByGraph_node2" class="node"><title>proc~phgcut</title> <g id="a_proc~~phsymcut~~CalledByGraph_node2"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> -<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +<polygon fill="#d9534f" stroke="#d9534f" points="160,-24 103,-24 103,-0 160,-0 160,-24"/> +<text text-anchor="middle" x="131.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> </a> </g> </g> <!-- proc~phgcut->proc~phsymcut --> <g id="proc~~phsymcut~~CalledByGraph_edge1" class="edge"><title>proc~phgcut->proc~phsymcut</title> -<path fill="none" stroke="#000000" d="M178.059,-12C186.035,-12 194.954,-12 203.694,-12"/> -<polygon fill="#000000" stroke="#000000" points="203.805,-15.5001 213.804,-12 203.804,-8.5001 203.805,-15.5001"/> +<path fill="none" stroke="#000000" d="M160.059,-12C168.035,-12 176.954,-12 185.694,-12"/> +<polygon fill="#000000" stroke="#000000" points="185.805,-15.5001 195.804,-12 185.804,-8.5001 185.805,-15.5001"/> </g> -<!-- program~preconvert --> -<g id="proc~~phsymcut~~CalledByGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_proc~~phsymcut~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~phsymcut~~CalledByGraph_node3" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~phsymcut~~CalledByGraph_node3"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="proc~~phsymcut~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="proc~~phsymcut~~CalledByGraph_edge2" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M67.0012,-12C75.2769,-12 84.2412,-12 92.7541,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.8375,-15.5001 102.837,-12 92.8374,-8.5001 92.8375,-15.5001"/> </g> </g> </svg> @@ -675,7 +675,7 @@ public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAX <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/plgnfa.html b/Documentation/html/Documentation/Api/Fortran/proc/plgnfa.html similarity index 97% rename from Documentation/FORD/V6/Doc/proc/plgnfa.html rename to Documentation/html/Documentation/Api/Fortran/proc/plgnfa.html index e8825a13627802dd80069bcb429decad2bfea147..d6b0aca8846b89463ceee45501ec49e147705254 100644 --- a/Documentation/FORD/V6/Doc/proc/plgnfa.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/plgnfa.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -335,7 +335,7 @@ public subroutine PLGNFA(LL, X, Z) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/posnam.html b/Documentation/html/Documentation/Api/Fortran/proc/posnam.html similarity index 91% rename from Documentation/FORD/V6/Doc/proc/posnam.html rename to Documentation/html/Documentation/Api/Fortran/proc/posnam.html index 97fc3f407020b86a87fd0ece289e3890a4623ebb..e0ba9be1a93159d3eab93d9fef6b05dee2861cfc 100644 --- a/Documentation/FORD/V6/Doc/proc/posnam.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/posnam.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -267,28 +267,28 @@ subroutine POSNAM(KULNAM, CDNAML) <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~posnam~~CalledByGraph Pages: 1 --> -<svg id="procposnamCalledByGraph" width="187pt" height="32pt" - viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procposnamCalledByGraph" width="169pt" height="32pt" + viewBox="0.00 0.00 169.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~posnam~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~posnam~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 165,-28 165,4 -4,4"/> <!-- proc~posnam --> <g id="proc~~posnam~~CalledByGraph_node1" class="node"><title>proc~posnam</title> -<polygon fill="none" stroke="black" points="179,-24 121,-24 121,-0 179,-0 179,-24"/> -<text text-anchor="middle" x="150" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">POSNAM</text> +<polygon fill="none" stroke="black" points="161,-24 103,-24 103,-0 161,-0 161,-24"/> +<text text-anchor="middle" x="132" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">POSNAM</text> </g> -<!-- program~preconvert --> -<g id="proc~~posnam~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~posnam~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~posnam~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~posnam~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~posnam --> -<g id="proc~~posnam~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~posnam</title> -<path fill="none" stroke="#000000" d="M85.1964,-12C93.6198,-12 102.437,-12 110.736,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.901,-15.5001 120.901,-12 110.901,-8.5001 110.901,-15.5001"/> +<!-- program~calc_etadot->proc~posnam --> +<g id="proc~~posnam~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~posnam</title> +<path fill="none" stroke="#000000" d="M67.1705,-12C75.4116,-12 84.3319,-12 92.8175,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.8775,-15.5001 102.877,-12 92.8774,-8.5001 92.8775,-15.5001"/> </g> </g> </svg> @@ -410,7 +410,7 @@ subroutine POSNAM(KULNAM, CDNAML) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/readlatlon.html b/Documentation/html/Documentation/Api/Fortran/proc/readlatlon.html similarity index 94% rename from Documentation/FORD/V6/Doc/proc/readlatlon.html rename to Documentation/html/Documentation/Api/Fortran/proc/readlatlon.html index fa6b4dc223942585e6874666ffbf0177893f8a69..6f9c7e1b19afb917c56cdc639b74375e0ad6a475 100644 --- a/Documentation/FORD/V6/Doc/proc/readlatlon.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/readlatlon.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,19 +126,19 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 5.5% of total for procedures.">56 statements</a> + title=" 5.4% of total for procedures.">55 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/rwgrib2.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + <li><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></li> <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> @@ -306,6 +306,7 @@ public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) <p>Read a field from GRIB file on lat-lon grid</p> +<p>write(<em>,</em>) 'readlatlon: ',i-1,' records read'</p> <h3>Arguments</h3> @@ -530,28 +531,28 @@ public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~readlatlon~~CalledByGraph Pages: 1 --> -<svg id="procreadlatlonCalledByGraph" width="211pt" height="32pt" - viewBox="0.00 0.00 211.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procreadlatlonCalledByGraph" width="193pt" height="32pt" + viewBox="0.00 0.00 193.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~readlatlon~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~readlatlon~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 207,-28 207,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 189,-28 189,4 -4,4"/> <!-- proc~readlatlon --> <g id="proc~~readlatlon~~CalledByGraph_node1" class="node"><title>proc~readlatlon</title> -<polygon fill="none" stroke="black" points="203,-24 121,-24 121,-0 203,-0 203,-24"/> -<text text-anchor="middle" x="162" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READLATLON</text> -</g> -<!-- program~preconvert --> -<g id="proc~~readlatlon~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~readlatlon~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<polygon fill="none" stroke="black" points="185,-24 103,-24 103,-0 185,-0 185,-24"/> +<text text-anchor="middle" x="144" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READLATLON</text> +</g> +<!-- program~calc_etadot --> +<g id="proc~~readlatlon~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~readlatlon~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~readlatlon --> -<g id="proc~~readlatlon~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~readlatlon</title> -<path fill="none" stroke="#000000" d="M85.2569,-12C93.5105,-12 102.254,-12 110.754,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.953,-15.5001 120.953,-12 110.953,-8.5001 110.953,-15.5001"/> +<!-- program~calc_etadot->proc~readlatlon --> +<g id="proc~~readlatlon~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M67.0536,-12C75.1292,-12 83.9729,-12 92.6807,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.7865,-15.5001 102.787,-12 92.7865,-8.5001 92.7865,-15.5001"/> </g> </g> </svg> @@ -673,7 +674,7 @@ public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/readspectral.html b/Documentation/html/Documentation/Api/Fortran/proc/readspectral.html similarity index 94% rename from Documentation/FORD/V6/Doc/proc/readspectral.html rename to Documentation/html/Documentation/Api/Fortran/proc/readspectral.html index 9f4d24077345025ab6fa200aeb207e2a6a17c081..df974107b5d705a68b8fa4f088ab3abbd4653fbb 100644 --- a/Documentation/FORD/V6/Doc/proc/readspectral.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/readspectral.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,19 +126,19 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title=" 5.5% of total for procedures.">56 statements</a> + title=" 5.4% of total for procedures.">55 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/rwgrib2.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + <li><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></li> <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> @@ -306,6 +306,7 @@ public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B <p>read a GRIB file in spherical harmonics</p> +<p>write(<em>,</em>) 'readspectral: ',i-1,' records read'</p> <h3>Arguments</h3> @@ -560,28 +561,28 @@ public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~readspectral~~CalledByGraph Pages: 1 --> -<svg id="procreadspectralCalledByGraph" width="225pt" height="32pt" - viewBox="0.00 0.00 225.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procreadspectralCalledByGraph" width="207pt" height="32pt" + viewBox="0.00 0.00 207.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~readspectral~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~readspectral~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 221,-28 221,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 203,-28 203,4 -4,4"/> <!-- proc~readspectral --> <g id="proc~~readspectral~~CalledByGraph_node1" class="node"><title>proc~readspectral</title> -<polygon fill="none" stroke="black" points="217,-24 121,-24 121,-0 217,-0 217,-24"/> -<text text-anchor="middle" x="169" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READSPECTRAL</text> -</g> -<!-- program~preconvert --> -<g id="proc~~readspectral~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~readspectral~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<polygon fill="none" stroke="black" points="199,-24 103,-24 103,-0 199,-0 199,-24"/> +<text text-anchor="middle" x="151" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READSPECTRAL</text> +</g> +<!-- program~calc_etadot --> +<g id="proc~~readspectral~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~readspectral~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~readspectral --> -<g id="proc~~readspectral~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~readspectral</title> -<path fill="none" stroke="#000000" d="M85.303,-12C93.5284,-12 102.29,-12 110.917,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.944,-15.5001 120.944,-12 110.944,-8.5001 110.944,-15.5001"/> +<!-- program~calc_etadot->proc~readspectral --> +<g id="proc~~readspectral~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M67.2887,-12C75.246,-12 83.9863,-12 92.7125,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.902,-15.5001 102.902,-12 92.902,-8.5001 92.902,-15.5001"/> </g> </g> </svg> @@ -703,7 +704,7 @@ public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/rfouftr.html b/Documentation/html/Documentation/Api/Fortran/proc/rfouftr.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/rfouftr.html rename to Documentation/html/Documentation/Api/Fortran/proc/rfouftr.html index ddec0d01ad109512c7ac05fbc0f69f19817887b1..93382c7b11ed5c0ecb59bb0cf19eb7cce6304b5a 100644 --- a/Documentation/FORD/V6/Doc/proc/rfouftr.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/rfouftr.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -477,7 +477,7 @@ public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/rfourtr.html b/Documentation/html/Documentation/Api/Fortran/proc/rfourtr.html similarity index 87% rename from Documentation/FORD/V6/Doc/proc/rfourtr.html rename to Documentation/html/Documentation/Api/Fortran/proc/rfourtr.html index 477baaf7f1889f071dea6501301ceb7b7925a467..c2fccc9bac05c8207c7f62a5819a30a393460bf4 100644 --- a/Documentation/FORD/V6/Doc/proc/rfourtr.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/rfourtr.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -419,85 +419,85 @@ public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~rfourtr~~CalledByGraph Pages: 1 --> -<svg id="procrfourtrCalledByGraph" width="393pt" height="116pt" - viewBox="0.00 0.00 393.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procrfourtrCalledByGraph" width="375pt" height="116pt" + viewBox="0.00 0.00 375.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~rfourtr~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 112)"> <title>proc~~rfourtr~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-112 389,-112 389,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-112 371,-112 371,4 -4,4"/> <!-- proc~rfourtr --> <g id="proc~~rfourtr~~CalledByGraph_node1" class="node"><title>proc~rfourtr</title> -<polygon fill="none" stroke="black" points="385,-66 321,-66 321,-42 385,-42 385,-66"/> -<text text-anchor="middle" x="353" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">RFOURTR</text> +<polygon fill="none" stroke="black" points="367,-66 303,-66 303,-42 367,-42 367,-66"/> +<text text-anchor="middle" x="335" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">RFOURTR</text> </g> <!-- proc~phsymcut --> <g id="proc~~rfourtr~~CalledByGraph_node2" class="node"><title>proc~phsymcut</title> <g id="a_proc~~rfourtr~~CalledByGraph_node2"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="285,-108 214,-108 214,-84 285,-84 285,-108"/> -<text text-anchor="middle" x="249.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +<polygon fill="#d9534f" stroke="#d9534f" points="267,-108 196,-108 196,-84 267,-84 267,-108"/> +<text text-anchor="middle" x="231.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> </a> </g> </g> <!-- proc~phsymcut->proc~rfourtr --> <g id="proc~~rfourtr~~CalledByGraph_edge1" class="edge"><title>proc~phsymcut->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M279.586,-83.9645C290.097,-79.6149 302.135,-74.6337 313.339,-69.9978"/> -<polygon fill="#000000" stroke="#000000" points="315.008,-73.0949 322.91,-66.0373 312.331,-66.6268 315.008,-73.0949"/> +<path fill="none" stroke="#000000" d="M261.586,-83.9645C272.097,-79.6149 284.135,-74.6337 295.339,-69.9978"/> +<polygon fill="#000000" stroke="#000000" points="297.008,-73.0949 304.91,-66.0373 294.331,-66.6268 297.008,-73.0949"/> </g> <!-- proc~phgpns --> <g id="proc~~rfourtr~~CalledByGraph_node3" class="node"><title>proc~phgpns</title> <g id="a_proc~~rfourtr~~CalledByGraph_node3"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> -<polygon fill="#d9534f" stroke="#d9534f" points="277.5,-66 221.5,-66 221.5,-42 277.5,-42 277.5,-66"/> -<text text-anchor="middle" x="249.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +<polygon fill="#d9534f" stroke="#d9534f" points="259.5,-66 203.5,-66 203.5,-42 259.5,-42 259.5,-66"/> +<text text-anchor="middle" x="231.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> </a> </g> </g> <!-- proc~phgpns->proc~rfourtr --> <g id="proc~~rfourtr~~CalledByGraph_edge2" class="edge"><title>proc~phgpns->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M277.7,-54C287.757,-54 299.4,-54 310.441,-54"/> -<polygon fill="#000000" stroke="#000000" points="310.773,-57.5001 320.773,-54 310.773,-50.5001 310.773,-57.5001"/> +<path fill="none" stroke="#000000" d="M259.7,-54C269.757,-54 281.4,-54 292.441,-54"/> +<polygon fill="#000000" stroke="#000000" points="292.773,-57.5001 302.773,-54 292.773,-50.5001 292.773,-57.5001"/> </g> <!-- proc~phgracut --> <g id="proc~~rfourtr~~CalledByGraph_node4" class="node"><title>proc~phgracut</title> <g id="a_proc~~rfourtr~~CalledByGraph_node4"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="285,-24 214,-24 214,-0 285,-0 285,-24"/> -<text text-anchor="middle" x="249.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +<polygon fill="#d9534f" stroke="#d9534f" points="267,-24 196,-24 196,-0 267,-0 267,-24"/> +<text text-anchor="middle" x="231.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> </a> </g> </g> <!-- proc~phgracut->proc~rfourtr --> <g id="proc~~rfourtr~~CalledByGraph_edge3" class="edge"><title>proc~phgracut->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M279.586,-24.0355C290.097,-28.3851 302.135,-33.3663 313.339,-38.0022"/> -<polygon fill="#000000" stroke="#000000" points="312.331,-41.3732 322.91,-41.9627 315.008,-34.9051 312.331,-41.3732"/> +<path fill="none" stroke="#000000" d="M261.586,-24.0355C272.097,-28.3851 284.135,-33.3663 295.339,-38.0022"/> +<polygon fill="#000000" stroke="#000000" points="294.331,-41.3732 304.91,-41.9627 297.008,-34.9051 294.331,-41.3732"/> </g> <!-- proc~phgcut --> <g id="proc~~rfourtr~~CalledByGraph_node5" class="node"><title>proc~phgcut</title> <g id="a_proc~~rfourtr~~CalledByGraph_node5"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="178,-87 121,-87 121,-63 178,-63 178,-87"/> -<text text-anchor="middle" x="149.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +<polygon fill="#d9534f" stroke="#d9534f" points="160,-87 103,-87 103,-63 160,-63 160,-87"/> +<text text-anchor="middle" x="131.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> </a> </g> </g> <!-- proc~phgcut->proc~phsymcut --> <g id="proc~~rfourtr~~CalledByGraph_edge4" class="edge"><title>proc~phgcut->proc~phsymcut</title> -<path fill="none" stroke="#000000" d="M178.059,-80.9056C186.121,-82.6331 195.148,-84.5674 203.979,-86.4598"/> -<polygon fill="#000000" stroke="#000000" points="203.293,-89.8922 213.804,-88.5652 204.76,-83.0476 203.293,-89.8922"/> +<path fill="none" stroke="#000000" d="M160.059,-80.9056C168.121,-82.6331 177.148,-84.5674 185.979,-86.4598"/> +<polygon fill="#000000" stroke="#000000" points="185.293,-89.8922 195.804,-88.5652 186.76,-83.0476 185.293,-89.8922"/> </g> <!-- proc~phgcut->proc~phgpns --> <g id="proc~~rfourtr~~CalledByGraph_edge5" class="edge"><title>proc~phgcut->proc~phgpns</title> -<path fill="none" stroke="#000000" d="M178.059,-69.0944C188.462,-66.8653 200.471,-64.292 211.593,-61.9087"/> -<polygon fill="#000000" stroke="#000000" points="212.441,-65.3064 221.486,-59.7887 210.975,-58.4618 212.441,-65.3064"/> -</g> -<!-- program~preconvert --> -<g id="proc~~rfourtr~~CalledByGraph_node6" class="node"><title>program~preconvert</title> -<g id="a_proc~~rfourtr~~CalledByGraph_node6"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-87 0,-87 0,-63 85,-63 85,-87"/> -<text text-anchor="middle" x="42.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<path fill="none" stroke="#000000" d="M160.059,-69.0944C170.462,-66.8653 182.471,-64.292 193.593,-61.9087"/> +<polygon fill="#000000" stroke="#000000" points="194.441,-65.3064 203.486,-59.7887 192.975,-58.4618 194.441,-65.3064"/> +</g> +<!-- program~calc_etadot --> +<g id="proc~~rfourtr~~CalledByGraph_node6" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node6"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-87 0,-87 0,-63 67,-63 67,-87"/> +<text text-anchor="middle" x="33.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="proc~~rfourtr~~CalledByGraph_edge6" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M85.3005,-75C93.6645,-75 102.407,-75 110.629,-75"/> -<polygon fill="#000000" stroke="#000000" points="110.698,-78.5001 120.698,-75 110.698,-71.5001 110.698,-78.5001"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="proc~~rfourtr~~CalledByGraph_edge6" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M67.0012,-75C75.2769,-75 84.2412,-75 92.7541,-75"/> +<polygon fill="#000000" stroke="#000000" points="92.8375,-78.5001 102.837,-75 92.8374,-71.5001 92.8375,-78.5001"/> </g> </g> </svg> @@ -619,7 +619,7 @@ public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/spfilter.html b/Documentation/html/Documentation/Api/Fortran/proc/spfilter.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/spfilter.html rename to Documentation/html/Documentation/Api/Fortran/proc/spfilter.html index f760244f1e94f56dc0bde915461bc18326476a95..6b5268fe531537490f956313c8c08ff0238a657d 100644 --- a/Documentation/FORD/V6/Doc/proc/spfilter.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/spfilter.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -434,7 +434,7 @@ public subroutine SPFILTER(FELDMN, MM, MMAX) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/statis.html b/Documentation/html/Documentation/Api/Fortran/proc/statis.html similarity index 90% rename from Documentation/FORD/V6/Doc/proc/statis.html rename to Documentation/html/Documentation/Api/Fortran/proc/statis.html index cf9bd60307b336686e5d8714451f3e83e2f1898e..de3c73795e6346a989d39e3c2b597d2467f2bc5d 100644 --- a/Documentation/FORD/V6/Doc/proc/statis.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/statis.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -131,14 +131,14 @@ - <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/calc_etadot.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + <li><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></li> <li class="active">STATIS</li> @@ -342,28 +342,28 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: proc~~statis~~CalledByGraph Pages: 1 --> -<svg id="procstatisCalledByGraph" width="183pt" height="32pt" - viewBox="0.00 0.00 183.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="procstatisCalledByGraph" width="165pt" height="32pt" + viewBox="0.00 0.00 165.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="proc~~statis~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>proc~~statis~~CalledByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 179,-28 179,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 161,-28 161,4 -4,4"/> <!-- proc~statis --> <g id="proc~~statis~~CalledByGraph_node1" class="node"><title>proc~statis</title> -<polygon fill="none" stroke="black" points="175,-24 121,-24 121,-0 175,-0 175,-24"/> -<text text-anchor="middle" x="148" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">STATIS</text> +<polygon fill="none" stroke="black" points="157,-24 103,-24 103,-0 157,-0 157,-24"/> +<text text-anchor="middle" x="130" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">STATIS</text> </g> -<!-- program~preconvert --> -<g id="proc~~statis~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~statis~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> -<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- program~calc_etadot --> +<g id="proc~~statis~~CalledByGraph_node2" class="node"><title>program~calc_etadot</title> +<g id="a_proc~~statis~~CalledByGraph_node2"><a xlink:href=".././program/calc_etadot.html" xlink:title="calc_etadot"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot</text> </a> </g> </g> -<!-- program~preconvert->proc~statis --> -<g id="proc~~statis~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~statis</title> -<path fill="none" stroke="#000000" d="M85.001,-12C93.5424,-12 102.472,-12 110.807,-12"/> -<polygon fill="#000000" stroke="#000000" points="110.974,-15.5001 120.974,-12 110.974,-8.5001 110.974,-15.5001"/> +<!-- program~calc_etadot->proc~statis --> +<g id="proc~~statis~~CalledByGraph_edge1" class="edge"><title>program~calc_etadot->proc~statis</title> +<path fill="none" stroke="#000000" d="M67.0215,-12C75.372,-12 84.4044,-12 92.9228,-12"/> +<polygon fill="#000000" stroke="#000000" points="92.9782,-15.5001 102.978,-12 92.9781,-8.5001 92.9782,-15.5001"/> </g> </g> </svg> @@ -485,7 +485,7 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/vdtouv.html b/Documentation/html/Documentation/Api/Fortran/proc/vdtouv.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/vdtouv.html rename to Documentation/html/Documentation/Api/Fortran/proc/vdtouv.html index d79248c18903169d9802347e95f51988a5955525..b559705d702f00c256e1524d658ab863ce5a4c62 100644 --- a/Documentation/FORD/V6/Doc/proc/vdtouv.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/vdtouv.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -562,7 +562,7 @@ public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/vduvsub.html b/Documentation/html/Documentation/Api/Fortran/proc/vduvsub.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/vduvsub.html rename to Documentation/html/Documentation/Api/Fortran/proc/vduvsub.html index f22128bc2bd7ffbf06f83b86450dd3bbdebe8f71..fb079b6afb641e6a5b293ef9293fc1842f28cb96 100644 --- a/Documentation/FORD/V6/Doc/proc/vduvsub.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/vduvsub.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -586,7 +586,7 @@ public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAU <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/proc/writelatlon.html b/Documentation/html/Documentation/Api/Fortran/proc/writelatlon.html similarity index 98% rename from Documentation/FORD/V6/Doc/proc/writelatlon.html rename to Documentation/html/Documentation/Api/Fortran/proc/writelatlon.html index 1841f448184862f23958f4e74b05a486adf98194..eef3192e6d102618352cf4e0039db2ee309a3c1d 100644 --- a/Documentation/FORD/V6/Doc/proc/writelatlon.html +++ b/Documentation/html/Documentation/Api/Fortran/proc/writelatlon.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -131,14 +131,14 @@ - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/rwgrib2.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + <li><a href='../sourcefile/rwgrib2.f90.html'>rwgrib2.f90</a></li> <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> @@ -641,7 +641,7 @@ public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLE <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/program/preconvert.html b/Documentation/html/Documentation/Api/Fortran/program/calc_etadot.html similarity index 52% rename from Documentation/FORD/V6/Doc/program/preconvert.html rename to Documentation/html/Documentation/Api/Fortran/program/calc_etadot.html index fcd8eededc0ce918ba87bb1243f528d0224e8c80..632b4b3833431277b510045cef58b940a93fb9fc 100644 --- a/Documentation/FORD/V6/Doc/program/preconvert.html +++ b/Documentation/html/Documentation/Api/Fortran/program/calc_etadot.html @@ -10,7 +10,7 @@ <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> - <title>PRECONVERT – Flex_extract: Calculation of etadot</title> + <title>calc_etadot – Flex_extract: Calculation of etadot</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/pygments.css" rel="stylesheet"> @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -108,7 +108,7 @@ <div class="row"> - <h1>PRECONVERT + <h1>calc_etadot <small>Program</small> </h1> @@ -126,22 +126,22 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="100.0% of total for programs.">370 statements</a> + title="100.0% of total for programs.">381 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/calc_etadot.f90"> Source File</a></li> </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + <li><a href='../sourcefile/calc_etadot.f90.html'>calc_etadot.f90</a></li> - <li class="active">PRECONVERT</li> + <li class="active">calc_etadot</li> </ol> </div> </div> @@ -169,225 +169,225 @@ <div id="vars-0" class="panel-collapse collapse"> <div class="list-group"> - <a class="list-group-item" href="../program/preconvert.html#variable-lnps">LNPS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnps">LNPS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-z%7E12">Z</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-z%7E12">Z</a> - <a class="list-group-item" href="../program/preconvert.html#variable-t">T</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-t">T</a> - <a class="list-group-item" href="../program/preconvert.html#variable-uv">UV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-uv">UV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-uv2">UV2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-uv2">UV2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-qa">QA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-qa">QA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-om">OM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-om">OM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-omr">OMR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-omr">OMR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-div%7E3">DIV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-div%7E3">DIV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-eta%7E2">ETA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-eta%7E2">ETA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-etar">ETAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-etar">ETAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdl%7E3">DPSDL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdl%7E3">DPSDL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdm%7E3">DPSDM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdm%7E3">DPSDM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ps%7E3">PS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ps%7E3">PS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdt">DPSDT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdt">DPSDT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-surf">SURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-surf">SURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-flux">FLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-flux">FLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-orolsm">OROLSM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-orolsm">OROLSM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-wsave%7E8">WSAVE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-wsave%7E8">WSAVE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-h%7E3">H</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-h%7E3">H</a> - <a class="list-group-item" href="../program/preconvert.html#variable-sinl">SINL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-sinl">SINL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cosl">COSL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cosl">COSL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-wsave2">WSAVE2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-wsave2">WSAVE2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-breite%7E3">BREITE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-breite%7E3">BREITE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gbreite">GBREITE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gbreite">GBREITE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ak">AK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ak">AK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-bk">BK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-bk">BK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pv">pv</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pv">pv</a> - <a class="list-group-item" href="../program/preconvert.html#variable-x1%7E2">X1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-x1%7E2">X1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-x2%7E2">X2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-x2%7E2">X2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rms%7E2">RMS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rms%7E2">RMS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mw%7E2">MW</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mw%7E2">MW</a> - <a class="list-group-item" href="../program/preconvert.html#variable-sig%7E2">SIG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-sig%7E2">SIG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lam">LAM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lam">LAM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cua">CUA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cua">CUA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cva">CVA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cva">CVA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p%7E5">P</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p%7E5">P</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pp">PP</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pp">PP</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p2">P2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p2">P2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-xmn%7E5">XMN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-xmn%7E5">XMN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-hilfuv">HILFUV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-hilfuv">HILFUV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn">LNPMN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn">LNPMN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn2">LNPMN2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn2">LNPMN2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn3">LNPMN3</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn3">LNPMN3</a> - <a class="list-group-item" href="../program/preconvert.html#variable-weight">WEIGHT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-weight">WEIGHT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ugvg">UGVG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ugvg">UGVG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dg">DG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dg">DG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-etag">ETAG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-etag">ETAG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gwsave%7E5">GWSAVE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gwsave%7E5">GWSAVE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-psg">PSG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-psg">PSG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-hilf">HILF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-hilf">HILF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlat%7E11">MLAT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlat%7E11">MLAT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpsurf">MPSURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpsurf">MPSURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpflux">MPFLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpflux">MPFLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mporo">MPORO</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mporo">MPORO</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpar%7E2">MPAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpar%7E2">MPAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gifax">GIFAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gifax">GIFAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pi">PI</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pi">PI</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cosb">COSB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cosb">COSB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dak">DAK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dak">DAK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dbk">DBK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dbk">DBK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p00">P00</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p00">P00</a> - <a class="list-group-item" href="../program/preconvert.html#variable-urlar8">URLAR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-urlar8">URLAR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-jmin1">JMIN1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-jmin1">JMIN1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lllar8">LLLAR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lllar8">LLLAR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxbmin1">MAXBMIN1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxbmin1">MAXBMIN1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pir8">PIR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pir8">PIR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dcosb">DCOSB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dcosb">DCOSB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-i">I</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-i">I</a> - <a class="list-group-item" href="../program/preconvert.html#variable-j%7E4">J</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-j%7E4">J</a> - <a class="list-group-item" href="../program/preconvert.html#variable-k%7E2">K</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-k%7E2">K</a> - <a class="list-group-item" href="../program/preconvert.html#variable-l%7E2">L</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-l%7E2">L</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ierr">IERR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ierr">IERR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-m">M</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-m">M</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ltest">LTEST</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ltest">LTEST</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mk">MK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mk">MK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ngi%7E2">NGI</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ngi%7E2">NGI</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ngj%7E2">NGJ</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ngj%7E2">NGJ</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mflux">MFLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mflux">MFLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-msurf">MSURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-msurf">MSURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-moro">MORO</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-moro">MORO</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lunit">LUNIT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lunit">LUNIT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lunit2">LUNIT2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lunit2">LUNIT2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxl%7E11">MAXL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxl%7E11">MAXL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxb%7E10">MAXB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxb%7E10">MAXB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlevel%7E9">MLEVEL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlevel%7E9">MLEVEL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levout">LEVOUT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levout">LEVOUT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levmin">LEVMIN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levmin">LEVMIN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levmax">LEVMAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levmax">LEVMAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-momega">MOMEGA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-momega">MOMEGA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-momegadiff">MOMEGADIFF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-momegadiff">MOMEGADIFF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mgauss">MGAUSS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mgauss">MGAUSS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-msmooth">MSMOOTH</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-msmooth">MSMOOTH</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mnauf%7E17">MNAUF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mnauf%7E17">MNAUF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-meta">META</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-meta">META</a> - <a class="list-group-item" href="../program/preconvert.html#variable-metadiff">METADIFF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-metadiff">METADIFF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mdpdeta">MDPDETA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mdpdeta">MDPDETA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-metapar">METAPAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-metapar">METAPAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rlo0">RLO0</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rlo0">RLO0</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rlo1">RLO1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rlo1">RLO1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rla0">RLA0</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rla0">RLA0</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rla1">RLA1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rla1">RLA1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlevelist%7E2">MLEVELIST</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlevelist%7E2">MLEVELIST</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mauf%7E6">MAUF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mauf%7E6">MAUF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-manf%7E5">MANF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-manf%7E5">MANF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ifax%7E14">IFAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ifax%7E14">IFAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-igrib">IGRIB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-igrib">IGRIB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-iret">iret</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-iret">iret</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ogrib%7E2">ogrib</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ogrib%7E2">ogrib</a> - <a class="list-group-item" href="../program/preconvert.html#variable-filename">FILENAME</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-filename">FILENAME</a> </div> </div> @@ -450,81 +450,81 @@ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> -<!-- Title: program~~preconvert~~UsesGraph Pages: 1 --> -<svg id="programpreconvertUsesGraph" width="284pt" height="174pt" - viewBox="0.00 0.00 284.00 173.51" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="program~~preconvert~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 169.513)"> -<title>program~~preconvert~~UsesGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-169.513 280,-169.513 280,4 -4,4"/> -<!-- program~preconvert --> -<g id="program~~preconvert~~UsesGraph_node1" class="node"><title>program~preconvert</title> -<polygon fill="none" stroke="black" points="276,-108 191,-108 191,-84 276,-84 276,-108"/> -<text text-anchor="middle" x="233.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> +<!-- Title: program~~calc_etadot~~UsesGraph Pages: 1 --> +<svg id="programcalc_etadotUsesGraph" width="266pt" height="174pt" + viewBox="0.00 0.00 266.00 173.78" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="program~~calc_etadot~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 169.779)"> +<title>program~~calc_etadot~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-169.779 262,-169.779 262,4 -4,4"/> +<!-- program~calc_etadot --> +<g id="program~~calc_etadot~~UsesGraph_node1" class="node"><title>program~calc_etadot</title> +<polygon fill="none" stroke="black" points="258,-108 191,-108 191,-84 258,-84 258,-108"/> +<text text-anchor="middle" x="224.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50">calc_etadot</text> </g> <!-- module~phtogr --> -<g id="program~~preconvert~~UsesGraph_node2" class="node"><title>module~phtogr</title> -<g id="a_program~~preconvert~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<g id="program~~calc_etadot~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_program~~calc_etadot~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> <polygon fill="#337ab7" stroke="#337ab7" points="58,-128 0,-128 0,-104 58,-104 58,-128"/> <text text-anchor="middle" x="29" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> </a> </g> </g> -<!-- program~preconvert->module~phtogr --> -<g id="program~~preconvert~~UsesGraph_edge5" class="edge"><title>program~preconvert->module~phtogr</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M222.49,-108.142C209.017,-123.427 183.431,-148.902 155,-159 129.452,-168.074 119.934,-166.903 94,-159 78.1322,-154.164 62.6299,-143.934 50.8575,-134.666"/> +<!-- program~calc_etadot->module~phtogr --> +<g id="program~~calc_etadot~~UsesGraph_edge5" class="edge"><title>program~calc_etadot->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M214.98,-108.107C203.425,-123.353 181.193,-148.787 155,-159 129.741,-168.849 119.934,-166.903 94,-159 78.1322,-154.164 62.6299,-143.934 50.8575,-134.666"/> <polygon fill="#000000" stroke="#000000" points="52.9338,-131.841 42.9927,-128.177 48.4792,-137.241 52.9338,-131.841"/> </g> <!-- module~rwgrib2 --> -<g id="program~~preconvert~~UsesGraph_node3" class="node"><title>module~rwgrib2</title> -<g id="a_program~~preconvert~~UsesGraph_node3"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> +<g id="program~~calc_etadot~~UsesGraph_node3" class="node"><title>module~rwgrib2</title> +<g id="a_program~~calc_etadot~~UsesGraph_node3"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> <polygon fill="#337ab7" stroke="#337ab7" points="155,-150 94,-150 94,-126 155,-126 155,-150"/> <text text-anchor="middle" x="124.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> </a> </g> </g> -<!-- program~preconvert->module~rwgrib2 --> -<g id="program~~preconvert~~UsesGraph_edge2" class="edge"><title>program~preconvert->module~rwgrib2</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M201.838,-108.036C190.241,-112.588 176.881,-117.832 164.612,-122.648"/> -<polygon fill="#000000" stroke="#000000" points="163.09,-119.485 155.06,-126.397 165.648,-126.001 163.09,-119.485"/> +<!-- program~calc_etadot->module~rwgrib2 --> +<g id="program~~calc_etadot~~UsesGraph_edge2" class="edge"><title>program~calc_etadot->module~rwgrib2</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M195.417,-108.036C185.268,-112.385 173.645,-117.366 162.828,-122.002"/> +<polygon fill="#000000" stroke="#000000" points="161.4,-118.806 153.587,-125.963 164.157,-125.24 161.4,-118.806"/> </g> <!-- module~ftrafo --> -<g id="program~~preconvert~~UsesGraph_node4" class="node"><title>module~ftrafo</title> -<g id="a_program~~preconvert~~UsesGraph_node4"><a xlink:href=".././module/ftrafo.html" xlink:title="FTRAFO"> +<g id="program~~calc_etadot~~UsesGraph_node4" class="node"><title>module~ftrafo</title> +<g id="a_program~~calc_etadot~~UsesGraph_node4"><a xlink:href=".././module/ftrafo.html" xlink:title="FTRAFO"> <polygon fill="#337ab7" stroke="#337ab7" points="152,-108 97,-108 97,-84 152,-84 152,-108"/> <text text-anchor="middle" x="124.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">FTRAFO</text> </a> </g> </g> -<!-- program~preconvert->module~ftrafo --> -<g id="program~~preconvert~~UsesGraph_edge4" class="edge"><title>program~preconvert->module~ftrafo</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M190.825,-96C181.36,-96 171.375,-96 162.138,-96"/> -<polygon fill="#000000" stroke="#000000" points="162.093,-92.5001 152.093,-96 162.093,-99.5001 162.093,-92.5001"/> +<!-- program~calc_etadot->module~ftrafo --> +<g id="program~~calc_etadot~~UsesGraph_edge4" class="edge"><title>program~calc_etadot->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M190.867,-96C181.725,-96 171.723,-96 162.353,-96"/> +<polygon fill="#000000" stroke="#000000" points="162.123,-92.5001 152.123,-96 162.123,-99.5001 162.123,-92.5001"/> </g> <!-- module~grtoph --> -<g id="program~~preconvert~~UsesGraph_node5" class="node"><title>module~grtoph</title> -<g id="a_program~~preconvert~~UsesGraph_node5"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<g id="program~~calc_etadot~~UsesGraph_node5" class="node"><title>module~grtoph</title> +<g id="a_program~~calc_etadot~~UsesGraph_node5"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> <polygon fill="#337ab7" stroke="#337ab7" points="153.5,-66 95.5,-66 95.5,-42 153.5,-42 153.5,-66"/> <text text-anchor="middle" x="124.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> </a> </g> </g> -<!-- program~preconvert->module~grtoph --> -<g id="program~~preconvert~~UsesGraph_edge3" class="edge"><title>program~preconvert->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M201.838,-83.9645C189.732,-79.2127 175.706,-73.707 163.004,-68.7213"/> -<polygon fill="#000000" stroke="#000000" points="164.191,-65.427 153.603,-65.0311 161.633,-71.943 164.191,-65.427"/> +<!-- program~calc_etadot->module~grtoph --> +<g id="program~~calc_etadot~~UsesGraph_edge3" class="edge"><title>program~calc_etadot->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M195.417,-83.9645C185.268,-79.6149 173.645,-74.6337 162.828,-69.9978"/> +<polygon fill="#000000" stroke="#000000" points="164.157,-66.7595 153.587,-66.0373 161.4,-73.1935 164.157,-66.7595"/> </g> <!-- GRIB_API --> -<g id="program~~preconvert~~UsesGraph_node6" class="node"><title>GRIB_API</title> +<g id="program~~calc_etadot~~UsesGraph_node6" class="node"><title>GRIB_API</title> <polygon fill="#337ab7" stroke="#337ab7" points="155,-24 94,-24 94,-0 155,-0 155,-24"/> <text text-anchor="middle" x="124.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> </g> -<!-- program~preconvert->GRIB_API --> -<g id="program~~preconvert~~UsesGraph_edge1" class="edge"><title>program~preconvert->GRIB_API</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M218.152,-83.8754C202.76,-70.9784 177.49,-50.1183 155,-33 153.781,-32.0719 152.526,-31.1301 151.254,-30.1858"/> -<polygon fill="#000000" stroke="#000000" points="152.94,-27.0838 142.794,-24.0319 148.822,-32.7447 152.94,-27.0838"/> +<!-- program~calc_etadot->GRIB_API --> +<g id="program~~calc_etadot~~UsesGraph_edge1" class="edge"><title>program~calc_etadot->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.294,-83.9032C197.908,-70.8474 175.585,-49.6848 155,-33 153.84,-32.0599 152.641,-31.1134 151.421,-30.1699"/> +<polygon fill="#000000" stroke="#000000" points="153.352,-27.2436 143.239,-24.0844 149.174,-32.8606 153.352,-27.2436"/> </g> <!-- module~grtoph->module~phtogr --> -<g id="program~~preconvert~~UsesGraph_edge6" class="edge"><title>module~grtoph->module~phtogr</title> +<g id="program~~calc_etadot~~UsesGraph_edge6" class="edge"><title>module~grtoph->module~phtogr</title> <path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.027,-66.2492C91.2359,-75.3944 72.1852,-88.0269 56.732,-98.274"/> <polygon fill="#000000" stroke="#000000" points="54.516,-95.5438 48.1161,-103.987 58.3845,-101.378 54.516,-95.5438"/> </g> @@ -594,7 +594,7 @@ <p>author: L. Haimberger date: 03/2010 version: V4.0 </p> -<h2>Program PRECONVERT</h2> +<h2>Program calc_etadot</h2> <p><strong>Prepares input data for POP model meteorological preprocessor</strong></p> <hr> <p>Calculation of etapoint on a regular <script type="math/tex">\lambda-\phi</script> grid and writing @@ -658,7 +658,10 @@ <p>Initialisieren Legendretransformation auf das LaT/LON Gitter </p> <p>Initialisation of fields for FFT and Legendre transformation to Gaussian grid and back to phase space + read LNSP in SH + read u,v in SH Transformieren des Windes auf das Gaussgitter<br> + read DIV in SH Transformieren der horizontalen Divergenz auf das Gaussgitter<br> Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter<br> Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter<br> @@ -689,298 +692,288 @@ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> -<!-- Title: program~~preconvert~~CallsGraph Pages: 1 --> -<svg id="programpreconvertCallsGraph" width="548pt" height="494pt" - viewBox="0.00 0.00 548.00 494.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="program~~preconvert~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 490)"> -<title>program~~preconvert~~CallsGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-490 544,-490 544,4 -4,4"/> -<!-- program~preconvert --> -<g id="program~~preconvert~~CallsGraph_node1" class="node"><title>program~preconvert</title> -<polygon fill="none" stroke="black" points="85,-255 0,-255 0,-231 85,-231 85,-255"/> -<text text-anchor="middle" x="42.5" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> +<!-- Title: program~~calc_etadot~~CallsGraph Pages: 1 --> +<svg id="programcalc_etadotCallsGraph" width="530pt" height="494pt" + viewBox="0.00 0.00 530.00 494.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="program~~calc_etadot~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 490)"> +<title>program~~calc_etadot~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-490 526,-490 526,4 -4,4"/> +<!-- program~calc_etadot --> +<g id="program~~calc_etadot~~CallsGraph_node1" class="node"><title>program~calc_etadot</title> +<polygon fill="none" stroke="black" points="67,-255 0,-255 0,-231 67,-231 67,-255"/> +<text text-anchor="middle" x="33.5" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50">calc_etadot</text> </g> <!-- proc~readspectral --> -<g id="program~~preconvert~~CallsGraph_node2" class="node"><title>proc~readspectral</title> -<g id="a_program~~preconvert~~CallsGraph_node2"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> -<polygon fill="#d9534f" stroke="#d9534f" points="217,-445 121,-445 121,-421 217,-421 217,-445"/> -<text text-anchor="middle" x="169" y="-430.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +<g id="program~~calc_etadot~~CallsGraph_node2" class="node"><title>proc~readspectral</title> +<g id="a_program~~calc_etadot~~CallsGraph_node2"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="199,-444 103,-444 103,-420 199,-420 199,-444"/> +<text text-anchor="middle" x="151" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> </a> </g> </g> -<!-- program~preconvert->proc~readspectral --> -<g id="program~~preconvert~~CallsGraph_edge1" class="edge"><title>program~preconvert->proc~readspectral</title> -<path fill="none" stroke="#000000" d="M46.0024,-255.351C52.779,-285.86 74.2118,-365.667 121,-412 122.072,-413.061 123.206,-414.074 124.391,-415.039"/> -<polygon fill="#000000" stroke="#000000" points="122.559,-418.026 132.797,-420.752 126.493,-412.236 122.559,-418.026"/> +<!-- program~calc_etadot->proc~readspectral --> +<g id="program~~calc_etadot~~CallsGraph_edge1" class="edge"><title>program~calc_etadot->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M36.3004,-255.263C41.351,-285.558 58.3209,-364.82 103,-411 104.049,-412.084 105.163,-413.116 106.331,-414.099"/> +<polygon fill="#000000" stroke="#000000" points="104.45,-417.054 114.66,-419.888 108.446,-411.306 104.45,-417.054"/> </g> <!-- proc~phgcut --> -<g id="program~~preconvert~~CallsGraph_node3" class="node"><title>proc~phgcut</title> -<g id="a_program~~preconvert~~CallsGraph_node3"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="197.5,-360 140.5,-360 140.5,-336 197.5,-336 197.5,-360"/> -<text text-anchor="middle" x="169" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +<g id="program~~calc_etadot~~CallsGraph_node3" class="node"><title>proc~phgcut</title> +<g id="a_program~~calc_etadot~~CallsGraph_node3"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="179.5,-360 122.5,-360 122.5,-336 179.5,-336 179.5,-360"/> +<text text-anchor="middle" x="151" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> </a> </g> </g> -<!-- program~preconvert->proc~phgcut --> -<g id="program~~preconvert~~CallsGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> -<path fill="none" stroke="#000000" d="M52.0473,-255.01C65.1671,-272.732 91.8311,-306.048 121,-327 124.085,-329.216 127.441,-331.275 130.893,-333.168"/> -<polygon fill="#000000" stroke="#000000" points="129.625,-336.447 140.135,-337.785 132.753,-330.185 129.625,-336.447"/> +<!-- program~calc_etadot->proc~phgcut --> +<g id="program~~calc_etadot~~CallsGraph_edge2" class="edge"><title>program~calc_etadot->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M41.7298,-255.073C52.9116,-272.877 75.9566,-306.294 103,-327 106.182,-329.436 109.692,-331.664 113.316,-333.68"/> +<polygon fill="#000000" stroke="#000000" points="111.934,-336.903 122.442,-338.258 115.073,-330.646 111.934,-336.903"/> </g> <!-- proc~grph213 --> -<g id="program~~preconvert~~CallsGraph_node4" class="node"><title>proc~grph213</title> -<g id="a_program~~preconvert~~CallsGraph_node4"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> -<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-318 138.5,-318 138.5,-294 199.5,-294 199.5,-318"/> -<text text-anchor="middle" x="169" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> +<g id="program~~calc_etadot~~CallsGraph_node4" class="node"><title>proc~grph213</title> +<g id="a_program~~calc_etadot~~CallsGraph_node4"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> +<polygon fill="#d9534f" stroke="#d9534f" points="181.5,-318 120.5,-318 120.5,-294 181.5,-294 181.5,-318"/> +<text text-anchor="middle" x="151" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> </a> </g> </g> -<!-- program~preconvert->proc~grph213 --> -<g id="program~~preconvert~~CallsGraph_edge3" class="edge"><title>program~preconvert->proc~grph213</title> -<path fill="none" stroke="#000000" d="M64.6524,-255.031C80.1045,-263.68 101.65,-275.451 121,-285 124.141,-286.55 127.421,-288.117 130.725,-289.661"/> -<polygon fill="#000000" stroke="#000000" points="129.452,-292.927 140.001,-293.912 132.369,-286.564 129.452,-292.927"/> +<!-- program~calc_etadot->proc~grph213 --> +<g id="program~~calc_etadot~~CallsGraph_edge3" class="edge"><title>program~calc_etadot->proc~grph213</title> +<path fill="none" stroke="#000000" d="M52.7285,-255.073C66.3174,-263.851 85.4768,-275.763 103,-285 105.925,-286.542 108.987,-288.077 112.084,-289.575"/> +<polygon fill="#000000" stroke="#000000" points="110.841,-292.857 121.382,-293.926 113.808,-286.517 110.841,-292.857"/> </g> <!-- grib_close_file --> -<g id="program~~preconvert~~CallsGraph_node5" class="node"><title>grib_close_file</title> -<polygon fill="#777777" stroke="#777777" points="342,-486 261,-486 261,-462 342,-462 342,-486"/> -<text text-anchor="middle" x="301.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +<g id="program~~calc_etadot~~CallsGraph_node5" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="324,-486 243,-486 243,-462 324,-462 324,-486"/> +<text text-anchor="middle" x="283.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> </g> -<!-- program~preconvert->grib_close_file --> -<g id="program~~preconvert~~CallsGraph_edge12" class="edge"><title>program~preconvert->grib_close_file</title> -<path fill="none" stroke="#000000" d="M43.8111,-255.033C45.4697,-291.752 55.8902,-402.957 121,-454 157.358,-482.503 211.321,-484.822 250.583,-481.655"/> -<polygon fill="#000000" stroke="#000000" points="251.109,-485.121 260.733,-480.69 250.446,-478.153 251.109,-485.121"/> +<!-- program~calc_etadot->grib_close_file --> +<g id="program~~calc_etadot~~CallsGraph_edge12" class="edge"><title>program~calc_etadot->grib_close_file</title> +<path fill="none" stroke="#000000" d="M34.3006,-255.173C34.4252,-291.801 40.2385,-401.624 103,-453 138.882,-482.373 193.16,-484.83 232.634,-481.659"/> +<polygon fill="#000000" stroke="#000000" points="233.214,-485.12 242.838,-480.69 232.551,-478.152 233.214,-485.12"/> </g> <!-- proc~statis --> -<g id="program~~preconvert~~CallsGraph_node6" class="node"><title>proc~statis</title> -<g id="a_program~~preconvert~~CallsGraph_node6"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> -<polygon fill="#d9534f" stroke="#d9534f" points="196,-276 142,-276 142,-252 196,-252 196,-276"/> -<text text-anchor="middle" x="169" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> +<g id="program~~calc_etadot~~CallsGraph_node6" class="node"><title>proc~statis</title> +<g id="a_program~~calc_etadot~~CallsGraph_node6"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> +<polygon fill="#d9534f" stroke="#d9534f" points="178,-276 124,-276 124,-252 178,-252 178,-276"/> +<text text-anchor="middle" x="151" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> </a> </g> </g> -<!-- program~preconvert->proc~statis --> -<g id="program~~preconvert~~CallsGraph_edge4" class="edge"><title>program~preconvert->proc~statis</title> -<path fill="none" stroke="#000000" d="M85.303,-250.051C100.31,-252.582 117.1,-255.415 131.611,-257.862"/> -<polygon fill="#000000" stroke="#000000" points="131.273,-261.354 141.716,-259.566 132.437,-254.452 131.273,-261.354"/> +<!-- program~calc_etadot->proc~statis --> +<g id="program~~calc_etadot~~CallsGraph_edge4" class="edge"><title>program~calc_etadot->proc~statis</title> +<path fill="none" stroke="#000000" d="M67.2887,-248.962C81.8111,-251.602 98.9413,-254.717 113.834,-257.424"/> +<polygon fill="#000000" stroke="#000000" points="113.263,-260.878 123.728,-259.223 114.515,-253.991 113.263,-260.878"/> </g> <!-- proc~phgr213 --> -<g id="program~~preconvert~~CallsGraph_node7" class="node"><title>proc~phgr213</title> -<g id="a_program~~preconvert~~CallsGraph_node7"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> -<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-234 138.5,-234 138.5,-210 199.5,-210 199.5,-234"/> -<text text-anchor="middle" x="169" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +<g id="program~~calc_etadot~~CallsGraph_node7" class="node"><title>proc~phgr213</title> +<g id="a_program~~calc_etadot~~CallsGraph_node7"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="181.5,-234 120.5,-234 120.5,-210 181.5,-210 181.5,-234"/> +<text text-anchor="middle" x="151" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> </a> </g> </g> -<!-- program~preconvert->proc~phgr213 --> -<g id="program~~preconvert~~CallsGraph_edge5" class="edge"><title>program~preconvert->proc~phgr213</title> -<path fill="none" stroke="#000000" d="M85.303,-235.949C99.151,-233.613 114.518,-231.021 128.21,-228.712"/> -<polygon fill="#000000" stroke="#000000" points="129.023,-232.124 138.302,-227.009 127.859,-225.221 129.023,-232.124"/> +<!-- program~calc_etadot->proc~phgr213 --> +<g id="program~~calc_etadot~~CallsGraph_edge5" class="edge"><title>program~calc_etadot->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M67.2887,-237.038C80.7055,-234.599 96.3481,-231.755 110.396,-229.201"/> +<polygon fill="#000000" stroke="#000000" points="111.076,-232.635 120.289,-227.402 109.824,-225.747 111.076,-232.635"/> </g> <!-- proc~gauleg --> -<g id="program~~preconvert~~CallsGraph_node8" class="node"><title>proc~gauleg</title> -<g id="a_program~~preconvert~~CallsGraph_node8"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> -<polygon fill="#d9534f" stroke="#d9534f" points="197,-192 141,-192 141,-168 197,-168 197,-192"/> -<text text-anchor="middle" x="169" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> +<g id="program~~calc_etadot~~CallsGraph_node8" class="node"><title>proc~gauleg</title> +<g id="a_program~~calc_etadot~~CallsGraph_node8"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> +<polygon fill="#d9534f" stroke="#d9534f" points="179,-192 123,-192 123,-168 179,-168 179,-192"/> +<text text-anchor="middle" x="151" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> </a> </g> </g> -<!-- program~preconvert->proc~gauleg --> -<g id="program~~preconvert~~CallsGraph_edge6" class="edge"><title>program~preconvert->proc~gauleg</title> -<path fill="none" stroke="#000000" d="M64.6524,-230.969C80.1045,-222.32 101.65,-210.549 121,-201 124.506,-199.27 128.187,-197.518 131.88,-195.801"/> -<polygon fill="#000000" stroke="#000000" points="133.348,-198.979 140.992,-191.643 130.442,-192.61 133.348,-198.979"/> +<!-- program~calc_etadot->proc~gauleg --> +<g id="program~~calc_etadot~~CallsGraph_edge6" class="edge"><title>program~calc_etadot->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M52.7285,-230.927C66.3174,-222.149 85.4768,-210.237 103,-201 106.459,-199.177 110.108,-197.363 113.782,-195.61"/> +<polygon fill="#000000" stroke="#000000" points="115.265,-198.78 122.869,-191.402 112.324,-192.428 115.265,-198.78"/> </g> <!-- grib_open_file --> -<g id="program~~preconvert~~CallsGraph_node9" class="node"><title>grib_open_file</title> -<polygon fill="#777777" stroke="#777777" points="209,-150 129,-150 129,-126 209,-126 209,-150"/> -<text text-anchor="middle" x="169" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> +<g id="program~~calc_etadot~~CallsGraph_node9" class="node"><title>grib_open_file</title> +<polygon fill="#777777" stroke="#777777" points="191,-150 111,-150 111,-126 191,-126 191,-150"/> +<text text-anchor="middle" x="151" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> </g> -<!-- program~preconvert->grib_open_file --> -<g id="program~~preconvert~~CallsGraph_edge7" class="edge"><title>program~preconvert->grib_open_file</title> -<path fill="none" stroke="#000000" d="M52.0473,-230.99C65.1671,-213.268 91.8311,-179.952 121,-159 122.887,-157.644 124.876,-156.347 126.926,-155.111"/> -<polygon fill="#000000" stroke="#000000" points="129.063,-157.934 136.183,-150.088 125.724,-151.781 129.063,-157.934"/> +<!-- program~calc_etadot->grib_open_file --> +<g id="program~~calc_etadot~~CallsGraph_edge7" class="edge"><title>program~calc_etadot->grib_open_file</title> +<path fill="none" stroke="#000000" d="M41.7298,-230.927C52.9116,-213.123 75.9566,-179.706 103,-159 104.787,-157.632 106.678,-156.329 108.634,-155.093"/> +<polygon fill="#000000" stroke="#000000" points="110.515,-158.051 117.515,-150.098 107.083,-151.95 110.515,-158.051"/> </g> <!-- set99 --> -<g id="program~~preconvert~~CallsGraph_node10" class="node"><title>set99</title> -<polygon fill="#777777" stroke="#777777" points="196,-108 142,-108 142,-84 196,-84 196,-108"/> -<text text-anchor="middle" x="169" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> +<g id="program~~calc_etadot~~CallsGraph_node10" class="node"><title>set99</title> +<polygon fill="#777777" stroke="#777777" points="178,-108 124,-108 124,-84 178,-84 178,-108"/> +<text text-anchor="middle" x="151" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> </g> -<!-- program~preconvert->set99 --> -<g id="program~~preconvert~~CallsGraph_edge8" class="edge"><title>program~preconvert->set99</title> -<path fill="none" stroke="#000000" d="M48.0385,-230.949C57.8286,-206.413 83.1497,-150.183 121,-117 124.497,-113.935 128.513,-111.248 132.695,-108.912"/> -<polygon fill="#000000" stroke="#000000" points="134.543,-111.904 141.972,-104.35 131.454,-105.622 134.543,-111.904"/> +<!-- program~calc_etadot->set99 --> +<g id="program~~calc_etadot~~CallsGraph_edge8" class="edge"><title>program~calc_etadot->set99</title> +<path fill="none" stroke="#000000" d="M38.1212,-230.942C46.0545,-206.393 67.177,-150.14 103,-117 106.413,-113.842 110.381,-111.1 114.536,-108.736"/> +<polygon fill="#000000" stroke="#000000" points="116.386,-111.726 123.79,-104.148 113.276,-105.454 116.386,-111.726"/> </g> <!-- proc~posnam --> -<g id="program~~preconvert~~CallsGraph_node11" class="node"><title>proc~posnam</title> -<g id="a_program~~preconvert~~CallsGraph_node11"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> -<polygon fill="#d9534f" stroke="#d9534f" points="198,-66 140,-66 140,-42 198,-42 198,-66"/> -<text text-anchor="middle" x="169" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> +<g id="program~~calc_etadot~~CallsGraph_node11" class="node"><title>proc~posnam</title> +<g id="a_program~~calc_etadot~~CallsGraph_node11"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> +<polygon fill="#d9534f" stroke="#d9534f" points="180,-66 122,-66 122,-42 180,-42 180,-66"/> +<text text-anchor="middle" x="151" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> </a> </g> </g> -<!-- program~preconvert->proc~posnam --> -<g id="program~~preconvert~~CallsGraph_edge10" class="edge"><title>program~preconvert->proc~posnam</title> -<path fill="none" stroke="#000000" d="M46.0243,-230.722C52.8508,-200.391 74.3885,-121.054 121,-75 123.851,-72.1832 127.145,-69.7088 130.64,-67.5434"/> -<polygon fill="#000000" stroke="#000000" points="132.416,-70.5631 139.602,-62.7779 129.13,-64.3825 132.416,-70.5631"/> +<!-- program~calc_etadot->proc~posnam --> +<g id="program~~calc_etadot~~CallsGraph_edge10" class="edge"><title>program~calc_etadot->proc~posnam</title> +<path fill="none" stroke="#000000" d="M36.3004,-230.737C41.351,-200.442 58.3209,-121.18 103,-75 105.936,-71.9651 109.39,-69.3351 113.069,-67.064"/> +<polygon fill="#000000" stroke="#000000" points="114.715,-70.1532 121.929,-62.3941 111.451,-63.9607 114.715,-70.1532"/> </g> <!-- proc~readlatlon --> -<g id="program~~preconvert~~CallsGraph_node12" class="node"><title>proc~readlatlon</title> -<g id="a_program~~preconvert~~CallsGraph_node12"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> -<polygon fill="#d9534f" stroke="#d9534f" points="210,-403 128,-403 128,-379 210,-379 210,-403"/> -<text text-anchor="middle" x="169" y="-388.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> +<g id="program~~calc_etadot~~CallsGraph_node12" class="node"><title>proc~readlatlon</title> +<g id="a_program~~calc_etadot~~CallsGraph_node12"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="192,-402 110,-402 110,-378 192,-378 192,-402"/> +<text text-anchor="middle" x="151" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> </a> </g> </g> -<!-- program~preconvert->proc~readlatlon --> -<g id="program~~preconvert~~CallsGraph_edge11" class="edge"><title>program~preconvert->proc~readlatlon</title> -<path fill="none" stroke="#000000" d="M48.2393,-255.373C58.2264,-280.003 83.6347,-335.657 121,-369 122.882,-370.68 124.915,-372.255 127.043,-373.729"/> -<polygon fill="#000000" stroke="#000000" points="125.237,-376.727 135.604,-378.916 128.865,-370.74 125.237,-376.727"/> +<!-- program~calc_etadot->proc~readlatlon --> +<g id="program~~calc_etadot~~CallsGraph_edge11" class="edge"><title>program~calc_etadot->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M38.1212,-255.058C46.0545,-279.607 67.177,-335.86 103,-369 104.263,-370.168 105.602,-371.28 106.998,-372.336"/> +<polygon fill="#000000" stroke="#000000" points="105.186,-375.332 115.49,-377.798 108.973,-369.445 105.186,-375.332"/> </g> <!-- proc~phgrad --> -<g id="program~~preconvert~~CallsGraph_node13" class="node"><title>proc~phgrad</title> -<g id="a_program~~preconvert~~CallsGraph_node13"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> -<polygon fill="#d9534f" stroke="#d9534f" points="197.5,-24 140.5,-24 140.5,-0 197.5,-0 197.5,-24"/> -<text text-anchor="middle" x="169" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +<g id="program~~calc_etadot~~CallsGraph_node13" class="node"><title>proc~phgrad</title> +<g id="a_program~~calc_etadot~~CallsGraph_node13"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="179.5,-24 122.5,-24 122.5,-0 179.5,-0 179.5,-24"/> +<text text-anchor="middle" x="151" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> </a> </g> </g> -<!-- program~preconvert->proc~phgrad --> -<g id="program~~preconvert~~CallsGraph_edge9" class="edge"><title>program~preconvert->proc~phgrad</title> -<path fill="none" stroke="#000000" d="M44.7073,-230.868C48.8134,-195.73 65.248,-92.5977 121,-33 123.954,-29.8428 127.469,-27.1289 131.229,-24.8035"/> -<polygon fill="#000000" stroke="#000000" points="133.059,-27.796 140.295,-20.057 129.812,-21.5945 133.059,-27.796"/> +<!-- program~calc_etadot->proc~phgrad --> +<g id="program~~calc_etadot~~CallsGraph_edge9" class="edge"><title>program~calc_etadot->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M35.1211,-230.893C37.5417,-195.821 49.1182,-92.852 103,-33 105.893,-29.7869 109.37,-27.0382 113.109,-24.6932"/> +<polygon fill="#000000" stroke="#000000" points="114.938,-27.6854 122.152,-19.9256 111.674,-21.4932 114.938,-27.6854"/> </g> <!-- proc~readspectral->grib_close_file --> -<g id="program~~preconvert~~CallsGraph_edge14" class="edge"><title>proc~readspectral->grib_close_file</title> -<path fill="none" stroke="#000000" d="M208.448,-445.08C222.132,-449.379 237.719,-454.276 252.127,-458.802"/> -<polygon fill="#000000" stroke="#000000" points="251.286,-462.207 261.875,-461.865 253.384,-455.529 251.286,-462.207"/> +<g id="program~~calc_etadot~~CallsGraph_edge14" class="edge"><title>proc~readspectral->grib_close_file</title> +<path fill="none" stroke="#000000" d="M189.396,-444.036C203.73,-448.649 220.271,-453.972 235.399,-458.841"/> +<polygon fill="#000000" stroke="#000000" points="234.507,-462.231 245.098,-461.963 236.652,-455.567 234.507,-462.231"/> </g> <!-- grib_count_in_file --> -<g id="program~~preconvert~~CallsGraph_node19" class="node"><title>grib_count_in_file</title> -<polygon fill="#777777" stroke="#777777" points="350,-444 253,-444 253,-420 350,-420 350,-444"/> -<text text-anchor="middle" x="301.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +<g id="program~~calc_etadot~~CallsGraph_node18" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="332,-444 235,-444 235,-420 332,-420 332,-444"/> +<text text-anchor="middle" x="283.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> </g> <!-- proc~readspectral->grib_count_in_file --> -<g id="program~~preconvert~~CallsGraph_edge13" class="edge"><title>proc~readspectral->grib_count_in_file</title> -<path fill="none" stroke="#000000" d="M217.113,-432.639C225.314,-432.576 233.93,-432.51 242.385,-432.445"/> -<polygon fill="#000000" stroke="#000000" points="242.605,-435.944 252.578,-432.367 242.552,-428.944 242.605,-435.944"/> +<g id="program~~calc_etadot~~CallsGraph_edge13" class="edge"><title>proc~readspectral->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M199.113,-432C207.314,-432 215.93,-432 224.385,-432"/> +<polygon fill="#000000" stroke="#000000" points="224.578,-435.5 234.578,-432 224.578,-428.5 224.578,-435.5"/> </g> <!-- proc~phsymcut --> -<g id="program~~preconvert~~CallsGraph_node14" class="node"><title>proc~phsymcut</title> -<g id="a_program~~preconvert~~CallsGraph_node14"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> -<polygon fill="#d9534f" stroke="#d9534f" points="337,-402 266,-402 266,-378 337,-378 337,-402"/> -<text text-anchor="middle" x="301.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +<g id="program~~calc_etadot~~CallsGraph_node14" class="node"><title>proc~phsymcut</title> +<g id="a_program~~calc_etadot~~CallsGraph_node14"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="319,-402 248,-402 248,-378 319,-378 319,-402"/> +<text text-anchor="middle" x="283.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> </a> </g> </g> <!-- proc~phgcut->proc~phsymcut --> -<g id="program~~preconvert~~CallsGraph_edge15" class="edge"><title>proc~phgcut->proc~phsymcut</title> -<path fill="none" stroke="#000000" d="M197.676,-356.907C214.701,-362.387 236.904,-369.532 256.318,-375.781"/> -<polygon fill="#000000" stroke="#000000" points="255.29,-379.126 265.882,-378.858 257.435,-372.463 255.29,-379.126"/> +<g id="program~~calc_etadot~~CallsGraph_edge15" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M179.676,-356.907C196.701,-362.387 218.904,-369.532 238.318,-375.781"/> +<polygon fill="#000000" stroke="#000000" points="237.29,-379.126 247.882,-378.858 239.435,-372.463 237.29,-379.126"/> </g> <!-- proc~phgpns --> -<g id="program~~preconvert~~CallsGraph_node18" class="node"><title>proc~phgpns</title> -<g id="a_program~~preconvert~~CallsGraph_node18"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> -<polygon fill="#d9534f" stroke="#d9534f" points="329.5,-360 273.5,-360 273.5,-336 329.5,-336 329.5,-360"/> -<text text-anchor="middle" x="301.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +<g id="program~~calc_etadot~~CallsGraph_node17" class="node"><title>proc~phgpns</title> +<g id="a_program~~calc_etadot~~CallsGraph_node17"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="311.5,-360 255.5,-360 255.5,-336 311.5,-336 311.5,-360"/> +<text text-anchor="middle" x="283.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> </a> </g> </g> <!-- proc~phgcut->proc~phgpns --> -<g id="program~~preconvert~~CallsGraph_edge16" class="edge"><title>proc~phgcut->proc~phgpns</title> -<path fill="none" stroke="#000000" d="M197.676,-348C216.749,-348 242.32,-348 263.19,-348"/> -<polygon fill="#000000" stroke="#000000" points="263.312,-351.5 273.312,-348 263.312,-344.5 263.312,-351.5"/> +<g id="program~~calc_etadot~~CallsGraph_edge16" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M179.676,-348C198.749,-348 224.32,-348 245.19,-348"/> +<polygon fill="#000000" stroke="#000000" points="245.312,-351.5 255.312,-348 245.312,-344.5 245.312,-351.5"/> </g> <!-- proc~grphsub --> -<g id="program~~preconvert~~CallsGraph_node16" class="node"><title>proc~grphsub</title> -<g id="a_program~~preconvert~~CallsGraph_node16"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> -<polygon fill="#d9534f" stroke="#d9534f" points="333.5,-276 269.5,-276 269.5,-252 333.5,-252 333.5,-276"/> -<text text-anchor="middle" x="301.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> +<g id="program~~calc_etadot~~CallsGraph_node16" class="node"><title>proc~grphsub</title> +<g id="a_program~~calc_etadot~~CallsGraph_node16"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="315.5,-318 251.5,-318 251.5,-294 315.5,-294 315.5,-318"/> +<text text-anchor="middle" x="283.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> </a> </g> </g> <!-- proc~grph213->proc~grphsub --> -<g id="program~~preconvert~~CallsGraph_edge18" class="edge"><title>proc~grph213->proc~grphsub</title> -<path fill="none" stroke="#000000" d="M199.612,-296.47C217.368,-290.755 240.203,-283.406 259.656,-277.145"/> -<polygon fill="#000000" stroke="#000000" points="260.738,-280.474 269.185,-274.078 258.593,-273.81 260.738,-280.474"/> +<g id="program~~calc_etadot~~CallsGraph_edge18" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M181.612,-306C199.206,-306 221.786,-306 241.122,-306"/> +<polygon fill="#000000" stroke="#000000" points="241.185,-309.5 251.185,-306 241.185,-302.5 241.185,-309.5"/> </g> <!-- ind --> -<g id="program~~preconvert~~CallsGraph_node21" class="node"><title>ind</title> -<polygon fill="#777777" stroke="#777777" points="328.5,-318 274.5,-318 274.5,-294 328.5,-294 328.5,-318"/> -<text text-anchor="middle" x="301.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +<g id="program~~calc_etadot~~CallsGraph_node20" class="node"><title>ind</title> +<polygon fill="#777777" stroke="#777777" points="310.5,-276 256.5,-276 256.5,-252 310.5,-252 310.5,-276"/> +<text text-anchor="middle" x="283.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> </g> <!-- proc~grph213->ind --> -<g id="program~~preconvert~~CallsGraph_edge17" class="edge"><title>proc~grph213->ind</title> -<path fill="none" stroke="#000000" d="M199.612,-306C218.696,-306 243.646,-306 263.959,-306"/> -<polygon fill="#000000" stroke="#000000" points="264.104,-309.5 274.104,-306 264.104,-302.5 264.104,-309.5"/> +<g id="program~~calc_etadot~~CallsGraph_edge17" class="edge"><title>proc~grph213->ind</title> +<path fill="none" stroke="#000000" d="M181.612,-296.47C200.871,-290.271 226.104,-282.15 246.517,-275.581"/> +<polygon fill="#000000" stroke="#000000" points="247.657,-278.891 256.104,-272.495 245.512,-272.227 247.657,-278.891"/> </g> <!-- proc~phsym --> -<g id="program~~preconvert~~CallsGraph_node15" class="node"><title>proc~phsym</title> -<g id="a_program~~preconvert~~CallsGraph_node15"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> -<polygon fill="#d9534f" stroke="#d9534f" points="328.5,-234 274.5,-234 274.5,-210 328.5,-210 328.5,-234"/> -<text text-anchor="middle" x="301.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> +<g id="program~~calc_etadot~~CallsGraph_node15" class="node"><title>proc~phsym</title> +<g id="a_program~~calc_etadot~~CallsGraph_node15"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> +<polygon fill="#d9534f" stroke="#d9534f" points="310.5,-234 256.5,-234 256.5,-210 310.5,-210 310.5,-234"/> +<text text-anchor="middle" x="283.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> </a> </g> </g> <!-- proc~phgr213->proc~phsym --> -<g id="program~~preconvert~~CallsGraph_edge19" class="edge"><title>proc~phgr213->proc~phsym</title> -<path fill="none" stroke="#000000" d="M199.612,-222C218.696,-222 243.646,-222 263.959,-222"/> -<polygon fill="#000000" stroke="#000000" points="264.104,-225.5 274.104,-222 264.104,-218.5 264.104,-225.5"/> +<g id="program~~calc_etadot~~CallsGraph_edge19" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M181.612,-222C200.696,-222 225.646,-222 245.959,-222"/> +<polygon fill="#000000" stroke="#000000" points="246.104,-225.5 256.104,-222 246.104,-218.5 246.104,-225.5"/> </g> <!-- dcos --> -<g id="program~~preconvert~~CallsGraph_node20" class="node"><title>dcos</title> -<polygon fill="#777777" stroke="#777777" points="328.5,-192 274.5,-192 274.5,-168 328.5,-168 328.5,-192"/> -<text text-anchor="middle" x="301.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> +<g id="program~~calc_etadot~~CallsGraph_node19" class="node"><title>dcos</title> +<polygon fill="#777777" stroke="#777777" points="310.5,-192 256.5,-192 256.5,-168 310.5,-168 310.5,-192"/> +<text text-anchor="middle" x="283.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> </g> <!-- proc~gauleg->dcos --> -<g id="program~~preconvert~~CallsGraph_edge20" class="edge"><title>proc~gauleg->dcos</title> -<path fill="none" stroke="#000000" d="M197.04,-180C216.455,-180 242.84,-180 264.104,-180"/> -<polygon fill="#000000" stroke="#000000" points="264.385,-183.5 274.385,-180 264.385,-176.5 264.385,-183.5"/> +<g id="program~~calc_etadot~~CallsGraph_edge20" class="edge"><title>proc~gauleg->dcos</title> +<path fill="none" stroke="#000000" d="M179.04,-180C198.455,-180 224.84,-180 246.104,-180"/> +<polygon fill="#000000" stroke="#000000" points="246.385,-183.5 256.385,-180 246.385,-176.5 246.385,-183.5"/> </g> <!-- proc~readlatlon->grib_close_file --> -<g id="program~~preconvert~~CallsGraph_edge22" class="edge"><title>proc~readlatlon->grib_close_file</title> -<path fill="none" stroke="#000000" d="M202.381,-403.237C207.483,-405.785 212.54,-408.712 217,-412 236.52,-426.389 233.452,-438.65 253,-453 254.831,-454.344 256.761,-455.627 258.753,-456.847"/> -<polygon fill="#000000" stroke="#000000" points="257.322,-460.054 267.772,-461.798 260.69,-453.918 257.322,-460.054"/> +<g id="program~~calc_etadot~~CallsGraph_edge22" class="edge"><title>proc~readlatlon->grib_close_file</title> +<path fill="none" stroke="#000000" d="M184.415,-402.191C189.513,-404.745 194.559,-407.686 199,-411 218.702,-425.706 215.269,-438.333 235,-453 236.823,-454.355 238.746,-455.646 240.734,-456.874"/> +<polygon fill="#000000" stroke="#000000" points="239.292,-460.076 249.738,-461.844 242.675,-453.947 239.292,-460.076"/> </g> <!-- proc~readlatlon->grib_count_in_file --> -<g id="program~~preconvert~~CallsGraph_edge21" class="edge"><title>proc~readlatlon->grib_count_in_file</title> -<path fill="none" stroke="#000000" d="M208.448,-403.08C222.132,-407.379 237.719,-412.276 252.127,-416.802"/> -<polygon fill="#000000" stroke="#000000" points="251.286,-420.207 261.875,-419.865 253.384,-413.529 251.286,-420.207"/> -</g> -<!-- integermlat --> -<g id="program~~preconvert~~CallsGraph_node17" class="node"><title>integermlat</title> -<polygon fill="#777777" stroke="#777777" points="334.5,-24 268.5,-24 268.5,-0 334.5,-0 334.5,-24"/> -<text text-anchor="middle" x="301.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> -</g> -<!-- proc~phgrad->integermlat --> -<g id="program~~preconvert~~CallsGraph_edge23" class="edge"><title>proc~phgrad->integermlat</title> -<path fill="none" stroke="#000000" d="M197.676,-12C215.26,-12 238.368,-12 258.223,-12"/> -<polygon fill="#000000" stroke="#000000" points="258.263,-15.5001 268.263,-12 258.262,-8.5001 258.263,-15.5001"/> +<g id="program~~calc_etadot~~CallsGraph_edge21" class="edge"><title>proc~readlatlon->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M189.396,-402.036C203.73,-406.649 220.271,-411.972 235.399,-416.841"/> +<polygon fill="#000000" stroke="#000000" points="234.507,-420.231 245.098,-419.963 236.652,-413.567 234.507,-420.231"/> </g> <!-- proc~rfourtr --> -<g id="program~~preconvert~~CallsGraph_node22" class="node"><title>proc~rfourtr</title> -<g id="a_program~~preconvert~~CallsGraph_node22"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> -<polygon fill="#d9534f" stroke="#d9534f" points="450,-381 386,-381 386,-357 450,-357 450,-381"/> -<text text-anchor="middle" x="418" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +<g id="program~~calc_etadot~~CallsGraph_node21" class="node"><title>proc~rfourtr</title> +<g id="a_program~~calc_etadot~~CallsGraph_node21"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="432,-381 368,-381 368,-357 432,-357 432,-381"/> +<text text-anchor="middle" x="400" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> </a> </g> </g> <!-- proc~phsymcut->proc~rfourtr --> -<g id="program~~preconvert~~CallsGraph_edge24" class="edge"><title>proc~phsymcut->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M337.165,-383.642C349.422,-381.394 363.324,-378.845 376.053,-376.51"/> -<polygon fill="#000000" stroke="#000000" points="376.751,-379.94 385.956,-374.694 375.488,-373.055 376.751,-379.94"/> +<g id="program~~calc_etadot~~CallsGraph_edge23" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M319.165,-383.642C331.422,-381.394 345.324,-378.845 358.053,-376.51"/> +<polygon fill="#000000" stroke="#000000" points="358.751,-379.94 367.956,-374.694 357.488,-373.055 358.751,-379.94"/> </g> <!-- proc~phgpns->proc~rfourtr --> -<g id="program~~preconvert~~CallsGraph_edge25" class="edge"><title>proc~phgpns->proc~rfourtr</title> -<path fill="none" stroke="#000000" d="M329.635,-352.977C343.283,-355.48 360.123,-358.568 375.364,-361.364"/> -<polygon fill="#000000" stroke="#000000" points="375.134,-364.88 385.601,-363.241 376.397,-357.995 375.134,-364.88"/> +<g id="program~~calc_etadot~~CallsGraph_edge24" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M311.635,-352.977C325.283,-355.48 342.123,-358.568 357.364,-361.364"/> +<polygon fill="#000000" stroke="#000000" points="357.134,-364.88 367.601,-363.241 358.397,-357.995 357.134,-364.88"/> </g> <!-- fft99 --> -<g id="program~~preconvert~~CallsGraph_node23" class="node"><title>fft99</title> -<polygon fill="#777777" stroke="#777777" points="540,-381 486,-381 486,-357 540,-357 540,-381"/> -<text text-anchor="middle" x="513" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +<g id="program~~calc_etadot~~CallsGraph_node22" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="522,-381 468,-381 468,-357 522,-357 522,-381"/> +<text text-anchor="middle" x="495" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> </g> <!-- proc~rfourtr->fft99 --> -<g id="program~~preconvert~~CallsGraph_edge26" class="edge"><title>proc~rfourtr->fft99</title> -<path fill="none" stroke="#000000" d="M450.226,-369C458.48,-369 467.455,-369 475.941,-369"/> -<polygon fill="#000000" stroke="#000000" points="475.969,-372.5 485.969,-369 475.969,-365.5 475.969,-372.5"/> +<g id="program~~calc_etadot~~CallsGraph_edge25" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M432.226,-369C440.48,-369 449.455,-369 457.941,-369"/> +<polygon fill="#000000" stroke="#000000" points="457.969,-372.5 467.969,-369 457.969,-365.5 457.969,-372.5"/> </g> </g> </svg> @@ -1054,225 +1047,225 @@ <div id="vars-1" class="panel-collapse collapse"> <div class="list-group"> - <a class="list-group-item" href="../program/preconvert.html#variable-lnps">LNPS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnps">LNPS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-z%7E12">Z</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-z%7E12">Z</a> - <a class="list-group-item" href="../program/preconvert.html#variable-t">T</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-t">T</a> - <a class="list-group-item" href="../program/preconvert.html#variable-uv">UV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-uv">UV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-uv2">UV2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-uv2">UV2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-qa">QA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-qa">QA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-om">OM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-om">OM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-omr">OMR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-omr">OMR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-div%7E3">DIV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-div%7E3">DIV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-eta%7E2">ETA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-eta%7E2">ETA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-etar">ETAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-etar">ETAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdl%7E3">DPSDL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdl%7E3">DPSDL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdm%7E3">DPSDM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdm%7E3">DPSDM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ps%7E3">PS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ps%7E3">PS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dpsdt">DPSDT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dpsdt">DPSDT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-surf">SURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-surf">SURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-flux">FLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-flux">FLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-orolsm">OROLSM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-orolsm">OROLSM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-wsave%7E8">WSAVE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-wsave%7E8">WSAVE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-h%7E3">H</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-h%7E3">H</a> - <a class="list-group-item" href="../program/preconvert.html#variable-sinl">SINL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-sinl">SINL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cosl">COSL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cosl">COSL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-wsave2">WSAVE2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-wsave2">WSAVE2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-breite%7E3">BREITE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-breite%7E3">BREITE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gbreite">GBREITE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gbreite">GBREITE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ak">AK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ak">AK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-bk">BK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-bk">BK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pv">pv</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pv">pv</a> - <a class="list-group-item" href="../program/preconvert.html#variable-x1%7E2">X1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-x1%7E2">X1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-x2%7E2">X2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-x2%7E2">X2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rms%7E2">RMS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rms%7E2">RMS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mw%7E2">MW</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mw%7E2">MW</a> - <a class="list-group-item" href="../program/preconvert.html#variable-sig%7E2">SIG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-sig%7E2">SIG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lam">LAM</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lam">LAM</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cua">CUA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cua">CUA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cva">CVA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cva">CVA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p%7E5">P</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p%7E5">P</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pp">PP</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pp">PP</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p2">P2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p2">P2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-xmn%7E5">XMN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-xmn%7E5">XMN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-hilfuv">HILFUV</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-hilfuv">HILFUV</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn">LNPMN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn">LNPMN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn2">LNPMN2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn2">LNPMN2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn3">LNPMN3</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lnpmn3">LNPMN3</a> - <a class="list-group-item" href="../program/preconvert.html#variable-weight">WEIGHT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-weight">WEIGHT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ugvg">UGVG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ugvg">UGVG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dg">DG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dg">DG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-etag">ETAG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-etag">ETAG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gwsave%7E5">GWSAVE</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gwsave%7E5">GWSAVE</a> - <a class="list-group-item" href="../program/preconvert.html#variable-psg">PSG</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-psg">PSG</a> - <a class="list-group-item" href="../program/preconvert.html#variable-hilf">HILF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-hilf">HILF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlat%7E11">MLAT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlat%7E11">MLAT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpsurf">MPSURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpsurf">MPSURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpflux">MPFLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpflux">MPFLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mporo">MPORO</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mporo">MPORO</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mpar%7E2">MPAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mpar%7E2">MPAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-gifax">GIFAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-gifax">GIFAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pi">PI</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pi">PI</a> - <a class="list-group-item" href="../program/preconvert.html#variable-cosb">COSB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-cosb">COSB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dak">DAK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dak">DAK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dbk">DBK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dbk">DBK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-p00">P00</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-p00">P00</a> - <a class="list-group-item" href="../program/preconvert.html#variable-urlar8">URLAR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-urlar8">URLAR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-jmin1">JMIN1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-jmin1">JMIN1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lllar8">LLLAR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lllar8">LLLAR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxbmin1">MAXBMIN1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxbmin1">MAXBMIN1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-pir8">PIR8</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-pir8">PIR8</a> - <a class="list-group-item" href="../program/preconvert.html#variable-dcosb">DCOSB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-dcosb">DCOSB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-i">I</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-i">I</a> - <a class="list-group-item" href="../program/preconvert.html#variable-j%7E4">J</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-j%7E4">J</a> - <a class="list-group-item" href="../program/preconvert.html#variable-k%7E2">K</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-k%7E2">K</a> - <a class="list-group-item" href="../program/preconvert.html#variable-l%7E2">L</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-l%7E2">L</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ierr">IERR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ierr">IERR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-m">M</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-m">M</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ltest">LTEST</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ltest">LTEST</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mk">MK</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mk">MK</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ngi%7E2">NGI</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ngi%7E2">NGI</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ngj%7E2">NGJ</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ngj%7E2">NGJ</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mflux">MFLUX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mflux">MFLUX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-msurf">MSURF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-msurf">MSURF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-moro">MORO</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-moro">MORO</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lunit">LUNIT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lunit">LUNIT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-lunit2">LUNIT2</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-lunit2">LUNIT2</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxl%7E11">MAXL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxl%7E11">MAXL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-maxb%7E10">MAXB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-maxb%7E10">MAXB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlevel%7E9">MLEVEL</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlevel%7E9">MLEVEL</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levout">LEVOUT</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levout">LEVOUT</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levmin">LEVMIN</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levmin">LEVMIN</a> - <a class="list-group-item" href="../program/preconvert.html#variable-levmax">LEVMAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-levmax">LEVMAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-momega">MOMEGA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-momega">MOMEGA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-momegadiff">MOMEGADIFF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-momegadiff">MOMEGADIFF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mgauss">MGAUSS</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mgauss">MGAUSS</a> - <a class="list-group-item" href="../program/preconvert.html#variable-msmooth">MSMOOTH</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-msmooth">MSMOOTH</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mnauf%7E17">MNAUF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mnauf%7E17">MNAUF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-meta">META</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-meta">META</a> - <a class="list-group-item" href="../program/preconvert.html#variable-metadiff">METADIFF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-metadiff">METADIFF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mdpdeta">MDPDETA</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mdpdeta">MDPDETA</a> - <a class="list-group-item" href="../program/preconvert.html#variable-metapar">METAPAR</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-metapar">METAPAR</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rlo0">RLO0</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rlo0">RLO0</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rlo1">RLO1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rlo1">RLO1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rla0">RLA0</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rla0">RLA0</a> - <a class="list-group-item" href="../program/preconvert.html#variable-rla1">RLA1</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-rla1">RLA1</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mlevelist%7E2">MLEVELIST</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mlevelist%7E2">MLEVELIST</a> - <a class="list-group-item" href="../program/preconvert.html#variable-mauf%7E6">MAUF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-mauf%7E6">MAUF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-manf%7E5">MANF</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-manf%7E5">MANF</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ifax%7E14">IFAX</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ifax%7E14">IFAX</a> - <a class="list-group-item" href="../program/preconvert.html#variable-igrib">IGRIB</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-igrib">IGRIB</a> - <a class="list-group-item" href="../program/preconvert.html#variable-iret">iret</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-iret">iret</a> - <a class="list-group-item" href="../program/preconvert.html#variable-ogrib%7E2">ogrib</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-ogrib%7E2">ogrib</a> - <a class="list-group-item" href="../program/preconvert.html#variable-filename">FILENAME</a> + <a class="list-group-item" href="../program/calc_etadot.html#variable-filename">FILENAME</a> </div> </div> @@ -2888,7 +2881,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/search.html b/Documentation/html/Documentation/Api/Fortran/search.html similarity index 95% rename from Documentation/FORD/V6/Doc/search.html rename to Documentation/html/Documentation/Api/Fortran/search.html index 3cfcdaa81fa045b1a991c5d957de3c9edc191350..b7d31718b9773c3d89f96e2016d5c4df306dbf20 100644 --- a/Documentation/FORD/V6/Doc/search.html +++ b/Documentation/html/Documentation/Api/Fortran/search.html @@ -46,7 +46,7 @@ Search Results – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -71,7 +71,7 @@ Search Results – Flex_extract: Calculation of etadot - <li><a href="./program/preconvert.html">Program</a></li> + <li><a href="./program/calc_etadot.html">Program</a></li> </ul> </li> @@ -89,7 +89,7 @@ Search Results – Flex_extract: Calculation of etadot -<li class="visible-xs hidden-sm visible-lg"><a href="./program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="./program/calc_etadot.html">Program</a></li> </ul> @@ -138,7 +138,7 @@ $(document).ready(function() { <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/calc_etadot.f90.html similarity index 76% rename from Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/calc_etadot.f90.html index 1e512758454a3fe789bcba70fdd7fe8f2ec2fe63..3f601b389d4019095d08ceb1cd2c5f9f608de91b 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/calc_etadot.f90.html @@ -10,7 +10,7 @@ <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> - <title>preconvert_new.f90 – Flex_extract: Calculation of etadot</title> + <title>calc_etadot.f90 – Flex_extract: Calculation of etadot</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/pygments.css" rel="stylesheet"> @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -108,7 +108,7 @@ <div class="row"> - <h1>preconvert_new.f90 + <h1>calc_etadot.f90 <small>Source File</small> </h1> @@ -126,12 +126,12 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="30.4% of total for source files.">427 statements</a> + title="31.0% of total for source files.">438 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/calc_etadot.f90"> Source File</a></li> </ul> @@ -139,7 +139,7 @@ - <li class="active">preconvert_new.f90</li> + <li class="active">calc_etadot.f90</li> </ol> </div> </div> @@ -169,7 +169,7 @@ <div id="progs-0" class="panel-collapse collapse"> <div class="list-group"> - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> + <a class="list-group-item" href="../program/calc_etadot.html">calc_etadot</a> </div> </div> @@ -218,7 +218,7 @@ <div class="panel panel-primary"> <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> <div class="list-group"> - <a class="list-group-item" href="../sourcefile/preconvert_new.f90.html#src">preconvert_new.f90</a> + <a class="list-group-item" href="../sourcefile/calc_etadot.f90.html#src">calc_etadot.f90</a> </div> </div> @@ -241,78 +241,78 @@ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> -<!-- Title: sourcefile~~preconvert_new.f90~~EfferentGraph Pages: 1 --> -<svg id="sourcefilepreconvert_newf90EfferentGraph" width="330pt" height="154pt" - viewBox="0.00 0.00 330.00 154.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 150)"> -<title>sourcefile~~preconvert_new.f90~~EfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-150 326,-150 326,4 -4,4"/> -<!-- sourcefile~preconvert_new.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node1" class="node"><title>sourcefile~preconvert_new.f90</title> -<polygon fill="none" stroke="black" points="322,-84 215,-84 215,-60 322,-60 322,-84"/> -<text text-anchor="middle" x="268.5" y="-69.6" font-family="Helvetica,sans-Serif" font-size="10.50">preconvert_new.f90</text> +<!-- Title: sourcefile~~calc_etadot.f90~~EfferentGraph Pages: 1 --> +<svg id="sourcefilecalc_etadotf90EfferentGraph" width="305pt" height="154pt" + viewBox="0.00 0.00 305.00 154.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 150)"> +<title>sourcefile~~calc_etadot.f90~~EfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-150 301,-150 301,4 -4,4"/> +<!-- sourcefile~calc_etadot.f90 --> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_node1" class="node"><title>sourcefile~calc_etadot.f90</title> +<polygon fill="none" stroke="black" points="297,-84 212,-84 212,-60 297,-60 297,-84"/> +<text text-anchor="middle" x="254.5" y="-69.6" font-family="Helvetica,sans-Serif" font-size="10.50">calc_etadot.f90</text> </g> <!-- sourcefile~rwgrib2.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node2" class="node"><title>sourcefile~rwgrib2.f90</title> -<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node2"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="179,-146 106,-146 106,-122 179,-122 179,-146"/> -<text text-anchor="middle" x="142.5" y="-131.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_node2" class="node"><title>sourcefile~rwgrib2.f90</title> +<g id="a_sourcefile~~calc_etadot.f90~~EfferentGraph_node2"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwgrib2.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="174,-146 108,-146 108,-122 174,-122 174,-146"/> +<text text-anchor="middle" x="141" y="-131.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwgrib2.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M243.297,-84.1014C224.35,-93.575 197.787,-106.856 176.829,-117.335"/> -<polygon fill="#000000" stroke="#000000" points="175.021,-114.326 167.642,-121.929 178.151,-120.587 175.021,-114.326"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M231.737,-84.1014C214.853,-93.4897 191.244,-106.618 172.48,-117.052"/> +<polygon fill="#000000" stroke="#000000" points="170.747,-114.01 163.708,-121.929 174.149,-120.128 170.747,-114.01"/> </g> <!-- sourcefile~ftrafo.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> -<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="170,-104 115,-104 115,-80 170,-80 170,-104"/> -<text text-anchor="middle" x="142.5" y="-89.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_sourcefile~~calc_etadot.f90~~EfferentGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="168.5,-104 113.5,-104 113.5,-80 168.5,-80 168.5,-104"/> +<text text-anchor="middle" x="141" y="-89.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M214.913,-80.4818C203.208,-82.3697 191.044,-84.3316 180.144,-86.0896"/> -<polygon fill="#000000" stroke="#000000" points="179.452,-82.656 170.137,-87.7037 180.567,-89.5667 179.452,-82.656"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.982,-79.4473C201.002,-81.4167 189.233,-83.5276 178.539,-85.4459"/> +<polygon fill="#000000" stroke="#000000" points="177.901,-82.0044 168.676,-87.2151 179.137,-88.8945 177.901,-82.0044"/> </g> <!-- sourcefile~phgrreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node4" class="node"><title>sourcefile~phgrreal.f90</title> -<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node4"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_node4" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_sourcefile~~calc_etadot.f90~~EfferentGraph_node4"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> <polygon fill="#f0ad4e" stroke="#f0ad4e" points="70,-64 0,-64 0,-40 70,-40 70,-64"/> <text text-anchor="middle" x="35" y="-49.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M214.969,-67.4617C174.364,-63.9537 118.785,-59.1521 80.3878,-55.8348"/> -<polygon fill="#000000" stroke="#000000" points="80.3042,-52.3146 70.0401,-54.9408 79.7017,-59.2886 80.3042,-52.3146"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.821,-68.1675C174.163,-64.7046 118.901,-59.6231 80.4182,-56.0844"/> +<polygon fill="#000000" stroke="#000000" points="80.3161,-52.5604 70.0376,-55.1299 79.6751,-59.531 80.3161,-52.5604"/> </g> <!-- sourcefile~grphreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node5" class="node"><title>sourcefile~grphreal.f90</title> -<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node5"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="177.5,-24 107.5,-24 107.5,-0 177.5,-0 177.5,-24"/> -<text text-anchor="middle" x="142.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_node5" class="node"><title>sourcefile~grphreal.f90</title> +<g id="a_sourcefile~~calc_etadot.f90~~EfferentGraph_node5"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 106,-24 106,-0 176,-0 176,-24"/> +<text text-anchor="middle" x="141" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M242.407,-59.8581C223.751,-50.8309 198.085,-38.4119 177.574,-28.4872"/> -<polygon fill="#000000" stroke="#000000" points="179.082,-25.3289 168.556,-24.1238 176.033,-31.6301 179.082,-25.3289"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M230.936,-59.8581C214.387,-50.9529 191.705,-38.747 173.389,-28.8909"/> +<polygon fill="#000000" stroke="#000000" points="174.995,-25.7804 164.53,-24.1238 171.678,-31.9446 174.995,-25.7804"/> </g> <!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge5" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M114.878,-81.9063C103.495,-77.5907 89.9416,-72.4518 77.3078,-67.6617"/> -<polygon fill="#000000" stroke="#000000" points="78.4684,-64.3587 67.8771,-64.0861 75.9867,-70.904 78.4684,-64.3587"/> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge5" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M113.487,-81.8028C102.375,-77.529 89.2008,-72.4618 76.8961,-67.7293"/> +<polygon fill="#000000" stroke="#000000" points="77.8605,-64.3503 67.2706,-64.0272 75.3476,-70.8837 77.8605,-64.3503"/> </g> <!-- sourcefile~grphreal.f90->sourcefile~phgrreal.f90 --> -<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge6" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M109.847,-24.0013C99.7162,-27.8422 88.343,-32.1543 77.6139,-36.2222"/> -<polygon fill="#000000" stroke="#000000" points="76.1054,-33.051 67.9958,-39.8689 78.5871,-39.5963 76.1054,-33.051"/> +<g id="sourcefile~~calc_etadot.f90~~EfferentGraph_edge6" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.797,-24.0013C98.8103,-27.8422 87.5988,-32.1543 77.0222,-36.2222"/> +<polygon fill="#000000" stroke="#000000" points="75.6179,-33.0123 67.5409,-39.8689 78.1308,-39.5458 75.6179,-33.0123"/> </g> </g> </svg> @@ -369,7 +369,7 @@ <div id="progs-1" class="panel-collapse collapse"> <div class="list-group"> - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> + <a class="list-group-item" href="../program/calc_etadot.html">calc_etadot</a> </div> </div> @@ -418,7 +418,7 @@ <div class="panel panel-primary"> <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> <div class="list-group"> - <a class="list-group-item" href="../sourcefile/preconvert_new.f90.html#src">preconvert_new.f90</a> + <a class="list-group-item" href="../sourcefile/calc_etadot.f90.html#src">calc_etadot.f90</a> </div> </div> @@ -429,7 +429,7 @@ <section> <h2><span class="anchor" id="src"></span>Source Code</h2> - <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">PROGRAM </span><span class="n">PRECONVERT</span> + <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">PROGRAM </span><span class="n">calc_etadot</span> <a name="ln-2"></a> <a name="ln-3"></a><span class="c">!! Prepare input data for FLEXPART, esp. vertical velocity as </span> <a name="ln-4"></a><span class="c">!! etadot or etadot * dp/deta</span> @@ -439,7 +439,7 @@ <a name="ln-8"></a><span class="c">! date: 03/2010</span> <a name="ln-9"></a><span class="c">! version: V4.0 </span> <a name="ln-10"></a><span class="c">! </span> -<a name="ln-11"></a><span class="c">!## Program PRECONVERT </span> +<a name="ln-11"></a><span class="c">!## Program calc_etadot </span> <a name="ln-12"></a><span class="c">! </span> <a name="ln-13"></a><span class="c">! **Prepares input data for POP model meteorological preprocessor**</span> <a name="ln-14"></a><span class="c">! </span> @@ -614,8 +614,8 @@ <a name="ln-183"></a> <a name="ln-184"></a> <span class="k">CALL </span><span class="n">GRIB_GET</span><span class="p">(</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">'numberOfPointsAlongAMeridian'</span><span class="p">,</span> <span class="n">NGJ</span><span class="p">)</span> <a name="ln-185"></a> -<a name="ln-186"></a> <span class="n">get</span> <span class="n">as</span> <span class="n">a</span> <span class="kt">integer</span> -<a name="ln-187"></a><span class="kt"> </span><span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">'pl'</span><span class="p">,</span> <span class="n">MLAT</span><span class="p">)</span> +<a name="ln-186"></a><span class="c">! get as a integer</span> +<a name="ln-187"></a> <span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">'pl'</span><span class="p">,</span> <span class="n">MLAT</span><span class="p">)</span> <a name="ln-188"></a> <a name="ln-189"></a> <span class="n">NGI</span><span class="o">=</span><span class="nb">SUM</span><span class="p">(</span><span class="n">MLAT</span><span class="p">)</span> <a name="ln-190"></a> @@ -671,562 +671,578 @@ <a name="ln-240"></a><span class="c">!$OMP END PARALLEL DO</span> <a name="ln-241"></a> <a name="ln-242"></a><span class="c">! MPAR(1)=152</span> -<a name="ln-243"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> -<a name="ln-244"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> -<a name="ln-245"></a><span class="c">! goto 111</span> +<a name="ln-243"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> +<a name="ln-244"></a><span class="c">!! read LNSP in SH</span> +<a name="ln-245"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> <a name="ln-246"></a> <span class="k">CALL </span><span class="n">SET99</span><span class="p">(</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">mauf</span><span class="p">)</span> -<a name="ln-247"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-248"></a> <span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-249"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-250"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-251"></a> -<a name="ln-252"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-253"></a> <span class="k">CALL </span><span class="n">SET99</span><span class="p">(</span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">GIFAX</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span> -<a name="ln-254"></a> <span class="k">END DO</span> -<a name="ln-255"></a><span class="k"> CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-256"></a> <span class="n">PSG</span><span class="o">=</span><span class="n">HILF</span> -<a name="ln-257"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-258"></a> <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-259"></a> <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-260"></a> +<a name="ln-247"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-248"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-249"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-250"></a> +<a name="ln-251"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-252"></a> <span class="k">CALL </span><span class="n">SET99</span><span class="p">(</span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">GIFAX</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span> +<a name="ln-253"></a> <span class="k">END DO</span> +<a name="ln-254"></a><span class="k"> CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-255"></a> <span class="n">PSG</span><span class="o">=</span><span class="n">HILF</span> +<a name="ln-256"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-257"></a> <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-258"></a> +<a name="ln-259"></a> +<a name="ln-260"></a> <span class="n">HILF</span><span class="o">=</span><span class="nb">exp</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span><span class="o">-</span><span class="nb">exp</span><span class="p">(</span><span class="n">HILF</span><span class="p">)</span> <a name="ln-261"></a> -<a name="ln-262"></a> <span class="n">HILF</span><span class="o">=</span><span class="nb">exp</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span><span class="o">-</span><span class="nb">exp</span><span class="p">(</span><span class="n">HILF</span><span class="p">)</span> -<a name="ln-263"></a> -<a name="ln-264"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-265"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-266"></a> -<a name="ln-267"></a> <span class="n">PSG</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span> -<a name="ln-268"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">PSG</span> -<a name="ln-269"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-270"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-271"></a> -<a name="ln-272"></a><span class="mi">111</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> -<a name="ln-273"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> -<a name="ln-274"></a> -<a name="ln-275"></a><span class="c">!! Transformieren des Windes auf das Gaussgitter </span> -<a name="ln-276"></a> <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-277"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-278"></a><span class="c">! North Pole</span> -<a name="ln-279"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span> -<a name="ln-280"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span> -<a name="ln-281"></a><span class="c">! South Pole</span> -<a name="ln-282"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span> -<a name="ln-283"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span> -<a name="ln-284"></a> <span class="k">END DO</span> -<a name="ln-285"></a> -<a name="ln-286"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span> -<a name="ln-287"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> -<a name="ln-288"></a> <span class="k">END DO</span> -<a name="ln-289"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-262"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-263"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS ratio of PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-264"></a> +<a name="ln-265"></a> <span class="n">PSG</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span> +<a name="ln-266"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">PSG</span> +<a name="ln-267"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-268"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS PSG: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-269"></a> +<a name="ln-270"></a><span class="mi">111</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> +<a name="ln-271"></a><span class="c">!! read u,v in SH</span> +<a name="ln-272"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> +<a name="ln-273"></a> +<a name="ln-274"></a><span class="c">!! Transformieren des Windes auf das Gaussgitter </span> +<a name="ln-275"></a> <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-276"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-277"></a><span class="c">! North Pole</span> +<a name="ln-278"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span> +<a name="ln-279"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span> +<a name="ln-280"></a><span class="c">! South Pole</span> +<a name="ln-281"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span> +<a name="ln-282"></a> <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span> +<a name="ln-283"></a> <span class="k">END DO</span> +<a name="ln-284"></a> +<a name="ln-285"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span> +<a name="ln-286"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> +<a name="ln-287"></a> <span class="k">END DO</span> +<a name="ln-288"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-289"></a> <a name="ln-290"></a> -<a name="ln-291"></a> -<a name="ln-292"></a><span class="mi">112</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> +<a name="ln-291"></a><span class="mi">112</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> +<a name="ln-292"></a><span class="c">!! read DIV in SH</span> <a name="ln-293"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">155</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> <a name="ln-294"></a><span class="c">!! Transformieren der horizontalen Divergenz auf das Gaussgitter </span> <a name="ln-295"></a> <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-296"></a> -<a name="ln-297"></a><span class="c">!! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter </span> -<a name="ln-298"></a> <span class="k">CALL </span><span class="n">PHGRAD</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-299"></a> -<a name="ln-300"></a><span class="c">!! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter </span> -<a name="ln-301"></a> <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> -<a name="ln-302"></a> <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-303"></a> -<a name="ln-304"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-305"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-306"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> -<a name="ln-307"></a> <span class="k">END DO</span> -<a name="ln-308"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-309"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-310"></a> -<a name="ln-311"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> -<a name="ln-312"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-313"></a><span class="c">! GOTO 114</span> -<a name="ln-314"></a> -<a name="ln-315"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-316"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS DPSDT: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-317"></a> -<a name="ln-318"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-319"></a><span class="c">!! Berechnung von Omega auf dem Gaussgitter </span> -<a name="ln-320"></a> -<a name="ln-321"></a> <span class="k">CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> -<a name="ln-322"></a> <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span> <span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-323"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-324"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-325"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> -<a name="ln-326"></a> <span class="k">END DO</span> -<a name="ln-327"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-328"></a> -<a name="ln-329"></a> <span class="k">END IF</span> <span class="c">! MOMEGA</span> -<a name="ln-330"></a> -<a name="ln-331"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-332"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-333"></a> -<a name="ln-334"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-335"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-336"></a> -<a name="ln-337"></a><span class="mi">114</span> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">)</span> -<a name="ln-338"></a> -<a name="ln-339"></a><span class="c">! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL))</span> -<a name="ln-340"></a><span class="c">! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,</span> -<a name="ln-341"></a><span class="c">! *MNAUF,NGI,NGJ,2*MLEVEL)</span> -<a name="ln-342"></a><span class="c">! DO K=1,2*MLEVEL</span> -<a name="ln-343"></a><span class="c">! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH)</span> -<a name="ln-344"></a><span class="c">! END DO</span> -<a name="ln-345"></a><span class="c">! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,</span> -<a name="ln-346"></a><span class="c">! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL)</span> -<a name="ln-347"></a> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">PP</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">GBREITE</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">XMN</span><span class="p">)</span> -<a name="ln-348"></a><span class="c">! CALL ETAGAUSS(Z,WSAVE</span> -<a name="ln-349"></a><span class="c">! *,BREITE,UV,ETA,OM,PS,</span> -<a name="ln-350"></a><span class="c">! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH)</span> -<a name="ln-351"></a> -<a name="ln-352"></a> <span class="k">ELSE</span> -<a name="ln-353"></a> -<a name="ln-354"></a><span class="c">!-----------------------------------------------------------------</span> -<a name="ln-355"></a><span class="c">! READING OF PREPARED METEOROLOGICAL FIELDS </span> -<a name="ln-356"></a><span class="c">! </span> -<a name="ln-357"></a><span class="c">! THE FOLLOWING FIELDS ARE EXPECTED: </span> -<a name="ln-358"></a><span class="c">! </span> -<a name="ln-359"></a><span class="c">! UNIT 11: T,U,V (REGULAR GRID) </span> -<a name="ln-360"></a><span class="c">! UNIT 17: Q (REGULAR GRID) </span> -<a name="ln-361"></a><span class="c">! UNIT 13: D (REGULAR GRID) </span> -<a name="ln-362"></a><span class="c">! UNIT 12: LNSP (SPHERICAL HARMONICS) </span> -<a name="ln-363"></a><span class="c">! UNIT 14: SURFACE DATA (REGULAR GRID) </span> -<a name="ln-364"></a><span class="c">! UNIT 16: FLUX DATA (REGULAR GRID) </span> -<a name="ln-365"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-366"></a> -<a name="ln-367"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">))</span> -<a name="ln-368"></a> <span class="n">MLAT</span><span class="o">=</span><span class="n">MAXL</span> -<a name="ln-369"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-370"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span> -<a name="ln-371"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">UV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">DIV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span> -<a name="ln-372"></a> -<a name="ln-373"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-374"></a><span class="c">!! READING OF SURFACE PRESSURE </span> -<a name="ln-375"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-376"></a> -<a name="ln-377"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> -<a name="ln-378"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPS</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> -<a name="ln-379"></a> -<a name="ln-380"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-381"></a><span class="c">!! READING OF U,V </span> -<a name="ln-382"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-383"></a> -<a name="ln-384"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> -<a name="ln-385"></a> -<a name="ln-386"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> -<a name="ln-387"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span> +<a name="ln-296"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-297"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3p,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS DG-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-298"></a> +<a name="ln-299"></a><span class="c">!! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter </span> +<a name="ln-300"></a> <span class="k">CALL </span><span class="n">PHGRAD</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-301"></a> +<a name="ln-302"></a><span class="c">!! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter </span> +<a name="ln-303"></a> <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> +<a name="ln-304"></a> <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-305"></a><span class="c">! note that HILF is ps on input and dpsdt*ps on output</span> +<a name="ln-306"></a> +<a name="ln-307"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-308"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3p,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS ETAG-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-309"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-310"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-311"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3p,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS ETAG-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-312"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-313"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> +<a name="ln-314"></a> <span class="k">END DO</span> +<a name="ln-315"></a> +<a name="ln-316"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-317"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-318"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3p,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS ETA-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-319"></a> +<a name="ln-320"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-321"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-322"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3p,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS HILF-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-323"></a> +<a name="ln-324"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> +<a name="ln-325"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-326"></a> +<a name="ln-327"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-328"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS DPSDT: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-329"></a> +<a name="ln-330"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-331"></a><span class="c">!! Berechnung von Omega auf dem Gaussgitter </span> +<a name="ln-332"></a> +<a name="ln-333"></a> <span class="k">CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> +<a name="ln-334"></a> <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span> <span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-335"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-336"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-337"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span> +<a name="ln-338"></a> <span class="k">END DO</span> +<a name="ln-339"></a><span class="k"> CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-340"></a> +<a name="ln-341"></a> <span class="k">END IF</span> <span class="c">! MOMEGA</span> +<a name="ln-342"></a> +<a name="ln-343"></a> <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-344"></a> +<a name="ln-345"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-346"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS PSG-PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-347"></a> +<a name="ln-348"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-349"></a> +<a name="ln-350"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-351"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS PS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-352"></a> +<a name="ln-353"></a><span class="mi">114</span> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">)</span> +<a name="ln-354"></a> +<a name="ln-355"></a><span class="c">! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL))</span> +<a name="ln-356"></a><span class="c">! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,</span> +<a name="ln-357"></a><span class="c">! *MNAUF,NGI,NGJ,2*MLEVEL)</span> +<a name="ln-358"></a><span class="c">! DO K=1,2*MLEVEL</span> +<a name="ln-359"></a><span class="c">! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH)</span> +<a name="ln-360"></a><span class="c">! END DO</span> +<a name="ln-361"></a><span class="c">! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,</span> +<a name="ln-362"></a><span class="c">! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL)</span> +<a name="ln-363"></a> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">PP</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">GBREITE</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">XMN</span><span class="p">)</span> +<a name="ln-364"></a><span class="c">! CALL ETAGAUSS(Z,WSAVE</span> +<a name="ln-365"></a><span class="c">! *,BREITE,UV,ETA,OM,PS,</span> +<a name="ln-366"></a><span class="c">! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH)</span> +<a name="ln-367"></a> +<a name="ln-368"></a> <span class="k">ELSE</span> +<a name="ln-369"></a> +<a name="ln-370"></a><span class="c">!-----------------------------------------------------------------</span> +<a name="ln-371"></a><span class="c">! READING OF PREPARED METEOROLOGICAL FIELDS </span> +<a name="ln-372"></a><span class="c">! </span> +<a name="ln-373"></a><span class="c">! THE FOLLOWING FIELDS ARE EXPECTED: </span> +<a name="ln-374"></a><span class="c">! </span> +<a name="ln-375"></a><span class="c">! UNIT 11: T,U,V (REGULAR GRID) </span> +<a name="ln-376"></a><span class="c">! UNIT 17: Q (REGULAR GRID) </span> +<a name="ln-377"></a><span class="c">! UNIT 13: D (REGULAR GRID) </span> +<a name="ln-378"></a><span class="c">! UNIT 12: LNSP (SPHERICAL HARMONICS) </span> +<a name="ln-379"></a><span class="c">! UNIT 14: SURFACE DATA (REGULAR GRID) </span> +<a name="ln-380"></a><span class="c">! UNIT 16: FLUX DATA (REGULAR GRID) </span> +<a name="ln-381"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-382"></a> +<a name="ln-383"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">))</span> +<a name="ln-384"></a> <span class="n">MLAT</span><span class="o">=</span><span class="n">MAXL</span> +<a name="ln-385"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-386"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span> +<a name="ln-387"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">UV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">DIV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span> <a name="ln-388"></a> -<a name="ln-389"></a> <span class="n">PI</span><span class="o">=</span><span class="nb">ACOS</span><span class="p">(</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span> -<a name="ln-390"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> -<a name="ln-391"></a> <span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="nb">SIN</span><span class="p">((</span><span class="n">RLA1</span><span class="o">-</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">RLA1</span><span class="o">-</span><span class="n">RLA0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">PI</span><span class="o">/</span><span class="mi">18</span><span class="mf">0.D0</span><span class="p">)</span> -<a name="ln-392"></a> <span class="k">END DO</span> -<a name="ln-393"></a> -<a name="ln-394"></a><span class="c">! Avoid possible Pole problem</span> -<a name="ln-395"></a><span class="c">! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> -<a name="ln-396"></a><span class="c">! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> -<a name="ln-397"></a> -<a name="ln-398"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span> -<a name="ln-399"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> -<a name="ln-400"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> -<a name="ln-401"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> -<a name="ln-402"></a> <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-403"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="mf">1.D6</span> -<a name="ln-404"></a> <span class="k">ELSE</span> -<a name="ln-405"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">COSB</span> -<a name="ln-406"></a> <span class="k">END IF</span> -<a name="ln-407"></a><span class="k"> END DO</span> -<a name="ln-408"></a><span class="k"> END DO</span> +<a name="ln-389"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-390"></a><span class="c">!! READING OF SURFACE PRESSURE </span> +<a name="ln-391"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-392"></a> +<a name="ln-393"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> +<a name="ln-394"></a> <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPS</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> +<a name="ln-395"></a> +<a name="ln-396"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-397"></a><span class="c">!! READING OF U,V </span> +<a name="ln-398"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-399"></a> +<a name="ln-400"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> +<a name="ln-401"></a> +<a name="ln-402"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> +<a name="ln-403"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span> +<a name="ln-404"></a> +<a name="ln-405"></a> <span class="n">PI</span><span class="o">=</span><span class="nb">ACOS</span><span class="p">(</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span> +<a name="ln-406"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> +<a name="ln-407"></a> <span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="nb">SIN</span><span class="p">((</span><span class="n">RLA1</span><span class="o">-</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">RLA1</span><span class="o">-</span><span class="n">RLA0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">PI</span><span class="o">/</span><span class="mi">18</span><span class="mf">0.D0</span><span class="p">)</span> +<a name="ln-408"></a> <span class="k">END DO</span> <a name="ln-409"></a> -<a name="ln-410"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-411"></a><span class="c">!! READING OF LNSP on grid </span> -<a name="ln-412"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-410"></a><span class="c">! Avoid possible Pole problem</span> +<a name="ln-411"></a><span class="c">! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> +<a name="ln-412"></a><span class="c">! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> <a name="ln-413"></a> -<a name="ln-414"></a><span class="c">! For debugging only</span> -<a name="ln-415"></a><span class="c">! FILENAME='LNSPG_G.20060330.600'</span> -<a name="ln-416"></a><span class="c">! INQUIRE(FILE=FILENAME,EXIST=EX)</span> -<a name="ln-417"></a><span class="c">! CALL READLATLON(FILENAME,QA,</span> -<a name="ln-418"></a><span class="c">! *MAXL,MAXB,1,1,(/152/))</span> -<a name="ln-419"></a> -<a name="ln-420"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-421"></a><span class="c">!! READING OF DIVERGENCE </span> -<a name="ln-422"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-423"></a> -<a name="ln-424"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-425"></a><span class="k"> </span><span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> -<a name="ln-426"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">155</span><span class="o">/</span><span class="p">))</span> -<a name="ln-427"></a> <span class="k">END IF</span> -<a name="ln-428"></a> +<a name="ln-414"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span> +<a name="ln-415"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> +<a name="ln-416"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> +<a name="ln-417"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> +<a name="ln-418"></a> <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-419"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="mf">1.D6</span> +<a name="ln-420"></a> <span class="k">ELSE</span> +<a name="ln-421"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">COSB</span> +<a name="ln-422"></a> <span class="k">END IF</span> +<a name="ln-423"></a><span class="k"> END DO</span> +<a name="ln-424"></a><span class="k"> END DO</span> +<a name="ln-425"></a> +<a name="ln-426"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-427"></a><span class="c">!! READING OF LNSP on grid </span> +<a name="ln-428"></a><span class="c">!------------------------------------------------------------------</span> <a name="ln-429"></a> -<a name="ln-430"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-431"></a><span class="c">!</span> -<a name="ln-432"></a><span class="c">! Calculation of etapoint --> total time derivative of </span> -<a name="ln-433"></a><span class="c">! ECMWF vertical coordinate eta multiplied by the derivative</span> -<a name="ln-434"></a><span class="c">! of pressure with respect to eta:</span> -<a name="ln-435"></a><span class="c">! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\]</span> +<a name="ln-430"></a><span class="c">! For debugging only</span> +<a name="ln-431"></a><span class="c">! FILENAME='LNSPG_G.20060330.600'</span> +<a name="ln-432"></a><span class="c">! INQUIRE(FILE=FILENAME,EXIST=EX)</span> +<a name="ln-433"></a><span class="c">! CALL READLATLON(FILENAME,QA,</span> +<a name="ln-434"></a><span class="c">! *MAXL,MAXB,1,1,(/152/))</span> +<a name="ln-435"></a> <a name="ln-436"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-437"></a> -<a name="ln-438"></a><span class="c">!* Initialisieren Legendretransformation auf das LaT/LON Gitter</span> -<a name="ln-439"></a><span class="c">!! Without Gaussian grid calculation Legendre Polynomials are calculated</span> -<a name="ln-440"></a><span class="c">!! only for one latitude to save space</span> -<a name="ln-441"></a> -<a name="ln-442"></a> -<a name="ln-443"></a> -<a name="ln-444"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> -<a name="ln-445"></a> <span class="k">CALL </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-446"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-447"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">)</span> <span class="k">THEN</span> -<a name="ln-448"></a><span class="k"> CALL </span><span class="n">PHGRACUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-449"></a> <span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-450"></a> <span class="k">END IF</span> -<a name="ln-451"></a><span class="k"> END DO</span> -<a name="ln-452"></a> -<a name="ln-453"></a><span class="k"> </span><span class="n">PS</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">)</span> -<a name="ln-454"></a> -<a name="ln-455"></a><span class="c">! For debugging only</span> -<a name="ln-456"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-457"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-437"></a><span class="c">!! READING OF DIVERGENCE </span> +<a name="ln-438"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-439"></a> +<a name="ln-440"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-441"></a><span class="k"> </span><span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> +<a name="ln-442"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">155</span><span class="o">/</span><span class="p">))</span> +<a name="ln-443"></a> <span class="k">END IF</span> +<a name="ln-444"></a> +<a name="ln-445"></a> +<a name="ln-446"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-447"></a><span class="c">!</span> +<a name="ln-448"></a><span class="c">! Calculation of etapoint --> total time derivative of </span> +<a name="ln-449"></a><span class="c">! ECMWF vertical coordinate eta multiplied by the derivative</span> +<a name="ln-450"></a><span class="c">! of pressure with respect to eta:</span> +<a name="ln-451"></a><span class="c">! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\]</span> +<a name="ln-452"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-453"></a> +<a name="ln-454"></a><span class="c">!* Initialisieren Legendretransformation auf das LaT/LON Gitter</span> +<a name="ln-455"></a><span class="c">!! Without Gaussian grid calculation Legendre Polynomials are calculated</span> +<a name="ln-456"></a><span class="c">!! only for one latitude to save space</span> +<a name="ln-457"></a> <a name="ln-458"></a> -<a name="ln-459"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-460"></a><span class="k"> CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> -<a name="ln-461"></a> <span class="n">BREITE</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-462"></a> <span class="k">END IF</span> -<a name="ln-463"></a> -<a name="ln-464"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-465"></a><span class="k"> </span><span class="n">DPSDT</span><span class="o">=</span><span class="n">PS</span> -<a name="ln-466"></a> <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> -<a name="ln-467"></a> <span class="n">BREITE</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-468"></a> <span class="k">END IF</span> -<a name="ln-469"></a> -<a name="ln-470"></a><span class="k"> END IF</span> <span class="c">! sMGAUSS</span> -<a name="ln-471"></a> -<a name="ln-472"></a><span class="c">!! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL </span> -<a name="ln-473"></a> -<a name="ln-474"></a> <span class="k">OPEN</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="k">FILE</span><span class="o">=</span><span class="s1">'VERTICAL.EC'</span><span class="p">)</span> -<a name="ln-475"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-476"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'VERTICAL DISCRETIZATION OF POP MODEL'</span> -<a name="ln-477"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-478"></a> <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(i3,a)'</span><span class="p">)</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' number of layers'</span> -<a name="ln-479"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-480"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* A(NLEV+1)'</span> -<a name="ln-481"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-482"></a> <span class="k">DO </span><span class="mi">205</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-483"></a><span class="mi">205</span> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(F18.12)'</span><span class="p">)</span> <span class="n">AK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-484"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-485"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* B(NLEV+1)'</span> -<a name="ln-486"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> -<a name="ln-487"></a> <span class="k">DO </span><span class="mi">210</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-488"></a><span class="mi">210</span> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(F18.12)'</span><span class="p">)</span> <span class="n">BK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-489"></a> <span class="k">CLOSE</span><span class="p">(</span><span class="mi">21</span><span class="p">)</span> -<a name="ln-490"></a> -<a name="ln-491"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-492"></a><span class="c">! READING OF OMEGA </span> -<a name="ln-493"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-494"></a> -<a name="ln-495"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> -<a name="ln-496"></a> -<a name="ln-497"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">OMR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> -<a name="ln-498"></a> -<a name="ln-499"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.19'</span> -<a name="ln-500"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> -<a name="ln-501"></a> -<a name="ln-502"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-503"></a> -<a name="ln-504"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-505"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-506"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' ETA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-507"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-508"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' OMEGA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-509"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OM</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-510"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'OMEGA DIFF: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-511"></a> <span class="k">END DO</span> +<a name="ln-459"></a> +<a name="ln-460"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> +<a name="ln-461"></a> <span class="k">CALL </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-462"></a> <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-463"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">)</span> <span class="k">THEN</span> +<a name="ln-464"></a><span class="k"> CALL </span><span class="n">PHGRACUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span> <span class="p">&</span> +<a name="ln-465"></a> <span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-466"></a> <span class="k">END IF</span> +<a name="ln-467"></a><span class="k"> END DO</span> +<a name="ln-468"></a> +<a name="ln-469"></a><span class="k"> </span><span class="n">PS</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">)</span> +<a name="ln-470"></a> +<a name="ln-471"></a><span class="c">! For debugging only</span> +<a name="ln-472"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-473"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A,T20,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-474"></a> +<a name="ln-475"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-476"></a><span class="k"> CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> +<a name="ln-477"></a> <span class="n">BREITE</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-478"></a> <span class="k">END IF</span> +<a name="ln-479"></a> +<a name="ln-480"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-481"></a><span class="k"> </span><span class="n">DPSDT</span><span class="o">=</span><span class="n">PS</span> +<a name="ln-482"></a> <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&</span> +<a name="ln-483"></a> <span class="n">BREITE</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-484"></a> <span class="k">END IF</span> +<a name="ln-485"></a> +<a name="ln-486"></a><span class="k"> END IF</span> <span class="c">! MGAUSS</span> +<a name="ln-487"></a> +<a name="ln-488"></a><span class="c">!! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL </span> +<a name="ln-489"></a> +<a name="ln-490"></a> <span class="k">OPEN</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="k">FILE</span><span class="o">=</span><span class="s1">'VERTICAL.EC'</span><span class="p">)</span> +<a name="ln-491"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-492"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'VERTICAL DISCRETIZATION OF POP MODEL'</span> +<a name="ln-493"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-494"></a> <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(i3,a)'</span><span class="p">)</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' number of layers'</span> +<a name="ln-495"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-496"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* A(NLEV+1)'</span> +<a name="ln-497"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-498"></a> <span class="k">DO </span><span class="mi">205</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-499"></a><span class="mi">205</span> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(F18.12)'</span><span class="p">)</span> <span class="n">AK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-500"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-501"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* B(NLEV+1)'</span> +<a name="ln-502"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-503"></a> <span class="k">DO </span><span class="mi">210</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-504"></a><span class="mi">210</span> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(F18.12)'</span><span class="p">)</span> <span class="n">BK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-505"></a> <span class="k">CLOSE</span><span class="p">(</span><span class="mi">21</span><span class="p">)</span> +<a name="ln-506"></a> +<a name="ln-507"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-508"></a><span class="c">! READING OF OMEGA </span> +<a name="ln-509"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-510"></a> +<a name="ln-511"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> <a name="ln-512"></a> -<a name="ln-513"></a><span class="k"> END IF</span> -<a name="ln-514"></a><span class="k"> END IF</span> -<a name="ln-515"></a> -<a name="ln-516"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-517"></a><span class="c">! READING OF ETA </span> -<a name="ln-518"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-513"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">OMR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> +<a name="ln-514"></a> +<a name="ln-515"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.19'</span> +<a name="ln-516"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> +<a name="ln-517"></a> +<a name="ln-518"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> <a name="ln-519"></a> -<a name="ln-520"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> -<a name="ln-521"></a> -<a name="ln-522"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">ETAR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> -<a name="ln-523"></a> -<a name="ln-524"></a> <span class="n">P00</span><span class="o">=</span><span class="mi">10132</span><span class="mf">5.</span> -<a name="ln-525"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.21'</span> -<a name="ln-526"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span> -<a name="ln-527"></a> -<a name="ln-528"></a> <span class="k">IF</span><span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-529"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-530"></a> <span class="n">DAK</span><span class="o">=</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span> -<a name="ln-531"></a> <span class="n">DBK</span><span class="o">=</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span> -<a name="ln-532"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> -<a name="ln-533"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span> -<a name="ln-534"></a> <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span><span class="o">/</span> <span class="p">&</span> -<a name="ln-535"></a> <span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">P00</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span> -<a name="ln-536"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">K</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-537"></a> <span class="k">END DO</span> -<a name="ln-538"></a><span class="k"> END DO</span> -<a name="ln-539"></a><span class="k"> END DO</span> -<a name="ln-540"></a><span class="k"> END IF</span> -<a name="ln-541"></a> -<a name="ln-542"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">METADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> +<a name="ln-520"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-521"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-522"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">' ETA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-523"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-524"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">' OMEGA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-525"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OM</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-526"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">'OMEGA DIFF: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-527"></a> <span class="k">END DO</span> +<a name="ln-528"></a> +<a name="ln-529"></a><span class="k"> END IF</span> +<a name="ln-530"></a><span class="k"> END IF</span> +<a name="ln-531"></a> +<a name="ln-532"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-533"></a><span class="c">! READING OF ETA </span> +<a name="ln-534"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-535"></a> +<a name="ln-536"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> +<a name="ln-537"></a> +<a name="ln-538"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">ETAR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> +<a name="ln-539"></a> +<a name="ln-540"></a> <span class="n">P00</span><span class="o">=</span><span class="mi">10132</span><span class="mf">5.</span> +<a name="ln-541"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.21'</span> +<a name="ln-542"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span> <a name="ln-543"></a> -<a name="ln-544"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-545"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-546"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' ETA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-547"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-548"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' ETAR: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-549"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-550"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'ETA DIFF: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> -<a name="ln-551"></a> <span class="k">END DO</span> -<a name="ln-552"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-553"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(I3,2F11.4)'</span><span class="p">)</span> <span class="n">K</span><span class="p">,</span><span class="n">ETA</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">),</span><span class="n">ETAR</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-554"></a> <span class="k">END DO</span> -<a name="ln-555"></a><span class="k"> ELSE</span> -<a name="ln-556"></a><span class="k"> </span><span class="n">ETA</span><span class="o">=</span><span class="n">ETAR</span> -<a name="ln-557"></a> <span class="k">END IF</span> -<a name="ln-558"></a><span class="k"> END IF</span> +<a name="ln-544"></a> <span class="k">IF</span><span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-545"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-546"></a> <span class="n">DAK</span><span class="o">=</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span> +<a name="ln-547"></a> <span class="n">DBK</span><span class="o">=</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span> +<a name="ln-548"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span> +<a name="ln-549"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span> +<a name="ln-550"></a> <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span><span class="o">/</span> <span class="p">&</span> +<a name="ln-551"></a> <span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">P00</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span> +<a name="ln-552"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">K</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-553"></a> <span class="k">END DO</span> +<a name="ln-554"></a><span class="k"> END DO</span> +<a name="ln-555"></a><span class="k"> END DO</span> +<a name="ln-556"></a><span class="k"> END IF</span> +<a name="ln-557"></a> +<a name="ln-558"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">METADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span> <a name="ln-559"></a> -<a name="ln-560"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">T</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> -<a name="ln-561"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">QA</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> -<a name="ln-562"></a> -<a name="ln-563"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-564"></a><span class="c">!! READING OF T </span> -<a name="ln-565"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-566"></a> -<a name="ln-567"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> -<a name="ln-568"></a> -<a name="ln-569"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.11'</span> -<a name="ln-570"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span> -<a name="ln-571"></a> -<a name="ln-572"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-573"></a><span class="c">!! READING OF SPECIFIC HUMIDITY </span> -<a name="ln-574"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-560"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-561"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-562"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">' ETA: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-563"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-564"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">' ETAR: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-565"></a> <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-566"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F12.4)'</span><span class="p">)</span> <span class="s1">'ETA DIFF: '</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span> +<a name="ln-567"></a> <span class="k">END DO</span> +<a name="ln-568"></a><span class="k"> DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-569"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(I3,2F12.4)'</span><span class="p">)</span> <span class="n">K</span><span class="p">,</span><span class="n">ETA</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">),</span><span class="n">ETAR</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-570"></a> <span class="k">END DO</span> +<a name="ln-571"></a><span class="k"> ELSE</span> +<a name="ln-572"></a><span class="k"> </span><span class="n">ETA</span><span class="o">=</span><span class="n">ETAR</span> +<a name="ln-573"></a> <span class="k">END IF</span> +<a name="ln-574"></a><span class="k"> END IF</span> <a name="ln-575"></a> -<a name="ln-576"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.17'</span> -<a name="ln-577"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span> +<a name="ln-576"></a><span class="k"> ALLOCATE</span> <span class="p">(</span><span class="n">T</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> +<a name="ln-577"></a> <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">QA</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span> <a name="ln-578"></a> <a name="ln-579"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-580"></a><span class="c">! TEST READING OF UV from MARS (debug only) </span> +<a name="ln-580"></a><span class="c">!! READING OF T </span> <a name="ln-581"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-582"></a><span class="c">! FILENAME='fort.22'</span> -<a name="ln-583"></a><span class="c">! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/))</span> +<a name="ln-582"></a> +<a name="ln-583"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> <a name="ln-584"></a> -<a name="ln-585"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-586"></a><span class="c">!! WRITE MODEL LEVEL DATA TO fort.15 </span> -<a name="ln-587"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-588"></a> -<a name="ln-589"></a><span class="c">!! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)</span> -<a name="ln-590"></a><span class="c">!! Now we are transforming back to the usual winds.</span> +<a name="ln-585"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.11'</span> +<a name="ln-586"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span> +<a name="ln-587"></a> +<a name="ln-588"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-589"></a><span class="c">!! READING OF SPECIFIC HUMIDITY </span> +<a name="ln-590"></a><span class="c">!------------------------------------------------------------------</span> <a name="ln-591"></a> -<a name="ln-592"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-593"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span> -<a name="ln-594"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> -<a name="ln-595"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> -<a name="ln-596"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> -<a name="ln-597"></a> <span class="k">END DO</span> -<a name="ln-598"></a> -<a name="ln-599"></a><span class="c">! special treatment for poles, if necessary.</span> -<a name="ln-600"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span> -<a name="ln-601"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> -<a name="ln-602"></a> <span class="k">IF</span> <span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-603"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> -<a name="ln-604"></a> <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-605"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span> -<a name="ln-606"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span> -<a name="ln-607"></a> <span class="k">ELSE</span> -<a name="ln-608"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> -<a name="ln-609"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> -<a name="ln-610"></a> <span class="k">END IF</span> -<a name="ln-611"></a><span class="k"> ELSE</span> -<a name="ln-612"></a><span class="k"> </span><span class="n">HILFUV</span><span class="p">(</span><span class="mi">5</span><span class="p">:</span><span class="n">MAXL</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-613"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-614"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="n">MAXB</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-615"></a><span class="c">! Suedpol</span> -<a name="ln-616"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-617"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-618"></a> <span class="k">ELSE</span> -<a name="ln-619"></a><span class="c">! Nordpol</span> -<a name="ln-620"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-621"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-622"></a> <span class="k">END IF</span> -<a name="ln-623"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-624"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> -<a name="ln-625"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-626"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-627"></a> <span class="k">ELSE</span> -<a name="ln-628"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-629"></a> <span class="k">END IF</span> -<a name="ln-630"></a><span class="k"> END DO</span> -<a name="ln-631"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">2</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-632"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> -<a name="ln-633"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-634"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-635"></a> <span class="k">ELSE</span> -<a name="ln-636"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-637"></a> <span class="k">END IF</span> -<a name="ln-638"></a><span class="k"> END DO</span> -<a name="ln-639"></a><span class="k"> end if</span> -<a name="ln-640"></a><span class="k"> END DO</span> -<a name="ln-641"></a><span class="k"> END DO</span> -<a name="ln-642"></a> -<a name="ln-643"></a><span class="c">! open output file</span> -<a name="ln-644"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="s1">'fort.15'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<a name="ln-645"></a> -<a name="ln-646"></a><span class="c">! we use temperature on lat/lon on model levels as template for model level data</span> -<a name="ln-647"></a> <span class="n">LUNIT2</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-648"></a> <span class="k">CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.11'</span><span class="p">,</span><span class="s1">'R'</span><span class="p">)</span> -<a name="ln-649"></a> <span class="k">CALL </span><span class="n">GRIB_NEW_FROM_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">IRET</span><span class="p">)</span> -<a name="ln-650"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> -<a name="ln-651"></a> -<a name="ln-652"></a> -<a name="ln-653"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-654"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="o">/</span><span class="p">))</span> -<a name="ln-655"></a> -<a name="ln-656"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-657"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span> +<a name="ln-592"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.17'</span> +<a name="ln-593"></a> <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span> +<a name="ln-594"></a> +<a name="ln-595"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-596"></a><span class="c">! TEST READING OF UV from MARS (debug only) </span> +<a name="ln-597"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-598"></a><span class="c">! FILENAME='fort.22'</span> +<a name="ln-599"></a><span class="c">! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/))</span> +<a name="ln-600"></a> +<a name="ln-601"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-602"></a><span class="c">!! WRITE MODEL LEVEL DATA TO fort.15 </span> +<a name="ln-603"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-604"></a> +<a name="ln-605"></a><span class="c">!! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)</span> +<a name="ln-606"></a><span class="c">!! Now we are transforming back to the usual winds.</span> +<a name="ln-607"></a> +<a name="ln-608"></a> <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-609"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-610"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> +<a name="ln-611"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-612"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-613"></a> <span class="k">END DO</span> +<a name="ln-614"></a> +<a name="ln-615"></a><span class="c">! special treatment for poles, if necessary.</span> +<a name="ln-616"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-617"></a> <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span> +<a name="ln-618"></a> <span class="k">IF</span> <span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-619"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> +<a name="ln-620"></a> <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-621"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span> +<a name="ln-622"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span> +<a name="ln-623"></a> <span class="k">ELSE</span> +<a name="ln-624"></a><span class="k"> </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-625"></a> <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-626"></a> <span class="k">END IF</span> +<a name="ln-627"></a><span class="k"> ELSE</span> +<a name="ln-628"></a><span class="k"> </span><span class="n">HILFUV</span><span class="p">(</span><span class="mi">5</span><span class="p">:</span><span class="n">MAXL</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-629"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-630"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="n">MAXB</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-631"></a><span class="c">! Suedpol</span> +<a name="ln-632"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-633"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-634"></a> <span class="k">ELSE</span> +<a name="ln-635"></a><span class="c">! Nordpol</span> +<a name="ln-636"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-637"></a> <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-638"></a> <span class="k">END IF</span> +<a name="ln-639"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-640"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-641"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-642"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-643"></a> <span class="k">ELSE</span> +<a name="ln-644"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-645"></a> <span class="k">END IF</span> +<a name="ln-646"></a><span class="k"> END DO</span> +<a name="ln-647"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">2</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-648"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-649"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-650"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-651"></a> <span class="k">ELSE</span> +<a name="ln-652"></a><span class="k"> </span><span class="n">UV</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-653"></a> <span class="k">END IF</span> +<a name="ln-654"></a><span class="k"> END DO</span> +<a name="ln-655"></a><span class="k"> end if</span> +<a name="ln-656"></a><span class="k"> END DO</span> +<a name="ln-657"></a><span class="k"> END DO</span> <a name="ln-658"></a> -<a name="ln-659"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">META</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-660"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-661"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span> -<a name="ln-662"></a> <span class="k">ELSE</span> -<a name="ln-663"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-664"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="n">METAPAR</span><span class="o">/</span><span class="p">))</span> -<a name="ln-665"></a> <span class="k">END IF</span> -<a name="ln-666"></a> -<a name="ln-667"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span> +<a name="ln-659"></a><span class="c">! open output file</span> +<a name="ln-660"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="s1">'fort.15'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-661"></a> +<a name="ln-662"></a><span class="c">! we use temperature on lat/lon on model levels as template for model level data</span> +<a name="ln-663"></a> <span class="n">LUNIT2</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-664"></a> <span class="k">CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.11'</span><span class="p">,</span><span class="s1">'R'</span><span class="p">)</span> +<a name="ln-665"></a> <span class="k">CALL </span><span class="n">GRIB_NEW_FROM_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">IRET</span><span class="p">)</span> +<a name="ln-666"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> +<a name="ln-667"></a> <a name="ln-668"></a> -<a name="ln-669"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">134</span><span class="o">/</span><span class="p">))</span> -<a name="ln-670"></a> -<a name="ln-671"></a> <span class="k">CALL </span><span class="n">GRIB_SET</span><span class="p">(</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">"levelType"</span><span class="p">,</span><span class="s2">"ml"</span><span class="p">)</span> -<a name="ln-672"></a> <span class="k">CALL </span><span class="n">GRIB_SET</span><span class="p">(</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">"typeOfLevel"</span><span class="p">,</span><span class="s2">"hybrid"</span><span class="p">)</span> -<a name="ln-673"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span> +<a name="ln-669"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-670"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="o">/</span><span class="p">))</span> +<a name="ln-671"></a> +<a name="ln-672"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-673"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span> <a name="ln-674"></a> -<a name="ln-675"></a> -<a name="ln-676"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-677"></a><span class="k"> CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.25'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<a name="ln-678"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-679"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> -<a name="ln-680"></a> -<a name="ln-681"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-682"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span> -<a name="ln-683"></a> <span class="n">OM</span><span class="o">=</span><span class="n">OM</span><span class="o">-</span><span class="n">OMR</span> -<a name="ln-684"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-685"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span> -<a name="ln-686"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> -<a name="ln-687"></a> <span class="k">END IF</span> -<a name="ln-688"></a><span class="k"> END IF</span> -<a name="ln-689"></a> -<a name="ln-690"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-691"></a><span class="k"> CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.26'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<a name="ln-692"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-693"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> -<a name="ln-694"></a><span class="c">! IF (MOMEGADIFF .EQ. 1) THEN</span> -<a name="ln-695"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span> -<a name="ln-696"></a> <span class="n">OM</span><span class="o">=</span><span class="n">ETA</span><span class="o">-</span><span class="n">ETAR</span> -<a name="ln-697"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> -<a name="ln-698"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span> -<a name="ln-699"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> -<a name="ln-700"></a><span class="c">! END IF</span> -<a name="ln-701"></a> <span class="k">END IF</span> -<a name="ln-702"></a> -<a name="ln-703"></a><span class="k"> CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">)</span> -<a name="ln-704"></a> -<a name="ln-705"></a><span class="mi">2000</span> <span class="k">STOP</span> <span class="s1">'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS'</span> -<a name="ln-706"></a><span class="mi">3000</span> <span class="k">STOP</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> -<a name="ln-707"></a><span class="mi">9999</span> <span class="k">stop</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> -<a name="ln-708"></a> -<a name="ln-709"></a><span class="k">END</span> -<a name="ln-710"></a> -<a name="ln-711"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-712"></a><span class="kt">INTEGER </span><span class="k">FUNCTION </span><span class="n">IA</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">,</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">G</span><span class="p">)</span> -<a name="ln-713"></a> -<a name="ln-714"></a> -<a name="ln-715"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-716"></a><span class="c">!! Calculate something that is roughly log10( maxval(field1)/g ) [PS] </span> -<a name="ln-717"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-675"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">META</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-676"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-677"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span> +<a name="ln-678"></a> <span class="k">ELSE</span> +<a name="ln-679"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-680"></a> <span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="n">METAPAR</span><span class="o">/</span><span class="p">))</span> +<a name="ln-681"></a> <span class="k">END IF</span> +<a name="ln-682"></a> +<a name="ln-683"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span> +<a name="ln-684"></a> +<a name="ln-685"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">134</span><span class="o">/</span><span class="p">))</span> +<a name="ln-686"></a> +<a name="ln-687"></a> <span class="k">CALL </span><span class="n">GRIB_SET</span><span class="p">(</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">"levelType"</span><span class="p">,</span><span class="s2">"ml"</span><span class="p">)</span> +<a name="ln-688"></a> <span class="k">CALL </span><span class="n">GRIB_SET</span><span class="p">(</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">"typeOfLevel"</span><span class="p">,</span><span class="s2">"hybrid"</span><span class="p">)</span> +<a name="ln-689"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span> +<a name="ln-690"></a> +<a name="ln-691"></a> +<a name="ln-692"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-693"></a><span class="k"> CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.25'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-694"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-695"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> +<a name="ln-696"></a> +<a name="ln-697"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-698"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span> +<a name="ln-699"></a> <span class="n">OM</span><span class="o">=</span><span class="n">OM</span><span class="o">-</span><span class="n">OMR</span> +<a name="ln-700"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-701"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span> +<a name="ln-702"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> +<a name="ln-703"></a> <span class="k">END IF</span> +<a name="ln-704"></a><span class="k"> END IF</span> +<a name="ln-705"></a> +<a name="ln-706"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-707"></a><span class="k"> CALL </span><span class="n">GRIB_OPEN_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">'fort.26'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-708"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-709"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span> +<a name="ln-710"></a><span class="c">! IF (MOMEGADIFF .EQ. 1) THEN</span> +<a name="ln-711"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">'1'</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span> +<a name="ln-712"></a> <span class="n">OM</span><span class="o">=</span><span class="n">ETA</span><span class="o">-</span><span class="n">ETAR</span> +<a name="ln-713"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-714"></a> <span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">OGRIB</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span> +<a name="ln-715"></a> <span class="k">CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span> +<a name="ln-716"></a><span class="c">! END IF</span> +<a name="ln-717"></a> <span class="k">END IF</span> <a name="ln-718"></a> -<a name="ln-719"></a> -<a name="ln-720"></a> <span class="k">IMPLICIT NONE</span> -<a name="ln-721"></a> -<a name="ln-722"></a><span class="k"> </span><span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span> -<a name="ln-723"></a> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span> -<a name="ln-724"></a> <span class="kt">REAL</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">FIELD1</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> -<a name="ln-725"></a> <span class="kt">REAL </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">G</span> -<a name="ln-726"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">RMIN</span><span class="p">,</span><span class="n">RMAX</span><span class="p">,</span><span class="n">XMAX</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">A1</span><span class="p">,</span><span class="n">A2</span> -<a name="ln-727"></a> -<a name="ln-728"></a> <span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-729"></a> <span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-719"></a><span class="k"> CALL </span><span class="n">GRIB_CLOSE_FILE</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">)</span> +<a name="ln-720"></a> +<a name="ln-721"></a><span class="mi">2000</span> <span class="k">STOP</span> <span class="s1">'SUCCESSFULLY FINISHED calc_etadot: CONGRATULATIONS'</span> +<a name="ln-722"></a><span class="mi">3000</span> <span class="k">STOP</span> <span class="s1">'ROUTINE calc_etadot: ERROR'</span> +<a name="ln-723"></a><span class="mi">9999</span> <span class="k">stop</span> <span class="s1">'ROUTINE calc_etadot: ERROR'</span> +<a name="ln-724"></a> +<a name="ln-725"></a><span class="k">END</span> +<a name="ln-726"></a> +<a name="ln-727"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-728"></a><span class="kt">INTEGER </span><span class="k">FUNCTION </span><span class="n">IA</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">,</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">G</span><span class="p">)</span> +<a name="ln-729"></a> <a name="ln-730"></a> -<a name="ln-731"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> -<a name="ln-732"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> -<a name="ln-733"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span> -<a name="ln-734"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">RMAX</span><span class="p">)</span> <span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-735"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">RMIN</span><span class="p">)</span> <span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-736"></a><span class="mi">100</span> <span class="k">CONTINUE</span> +<a name="ln-731"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-732"></a><span class="c">!! Calculate something that is roughly log10( maxval(field1)/g ) [PS] </span> +<a name="ln-733"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-734"></a> +<a name="ln-735"></a> +<a name="ln-736"></a> <span class="k">IMPLICIT NONE</span> <a name="ln-737"></a> -<a name="ln-738"></a><span class="k"> IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">RMAX</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">RMAX</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-739"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> -<a name="ln-740"></a> <span class="k">ELSE</span> -<a name="ln-741"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="n">RMAX</span> -<a name="ln-742"></a> <span class="k">END IF</span> +<a name="ln-738"></a><span class="k"> </span><span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span> +<a name="ln-739"></a> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-740"></a> <span class="kt">REAL</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">FIELD1</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-741"></a> <span class="kt">REAL</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">G</span> +<a name="ln-742"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">RMIN</span><span class="p">,</span><span class="n">RMAX</span><span class="p">,</span><span class="n">XMAX</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">A1</span><span class="p">,</span><span class="n">A2</span> <a name="ln-743"></a> -<a name="ln-744"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">XMAX</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-745"></a><span class="k"> </span><span class="n">IA</span> <span class="o">=</span> <span class="mi">0</span> -<a name="ln-746"></a> <span class="k">RETURN</span> -<a name="ln-747"></a><span class="k"> END IF</span> -<a name="ln-748"></a> -<a name="ln-749"></a><span class="k"> </span><span class="n">A1</span><span class="o">=</span><span class="n">LOG10</span><span class="p">(</span> <span class="p">(</span><span class="n">G</span><span class="o">/</span><span class="mi">1</span><span class="mf">0.d0</span><span class="p">)</span><span class="o">/</span><span class="n">XMAX</span> <span class="p">)</span> -<a name="ln-750"></a> <span class="n">A2</span><span class="o">=</span><span class="n">LOG10</span><span class="p">(</span> <span class="n">G</span><span class="o">/</span><span class="n">XMAX</span> <span class="p">)</span> -<a name="ln-751"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">A1</span> <span class="p">.</span><span class="n">gt</span><span class="p">.</span> <span class="n">A2</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-752"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A2</span> -<a name="ln-753"></a> <span class="k">ELSE</span> -<a name="ln-754"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A1</span> -<a name="ln-755"></a> <span class="k">END IF</span> -<a name="ln-756"></a> -<a name="ln-757"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">A</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="p">)</span> -<a name="ln-758"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">A</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="mf">1.0</span><span class="p">)</span> +<a name="ln-744"></a> <span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-745"></a> <span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-746"></a> +<a name="ln-747"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-748"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> +<a name="ln-749"></a> <span class="k">DO </span><span class="mi">100</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span> +<a name="ln-750"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">RMAX</span><span class="p">)</span> <span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-751"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">RMIN</span><span class="p">)</span> <span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-752"></a><span class="mi">100</span> <span class="k">CONTINUE</span> +<a name="ln-753"></a> +<a name="ln-754"></a><span class="k"> IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">RMAX</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">RMAX</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-755"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span> +<a name="ln-756"></a> <span class="k">ELSE</span> +<a name="ln-757"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="n">RMAX</span> +<a name="ln-758"></a> <span class="k">END IF</span> <a name="ln-759"></a> -<a name="ln-760"></a> <span class="k">RETURN</span> -<a name="ln-761"></a> -<a name="ln-762"></a><span class="k">END</span> -<a name="ln-763"></a> -<a name="ln-764"></a><span class="k">SUBROUTINE </span><span class="n">STATIS</span> <span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">PHI</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> -<a name="ln-765"></a> -<a name="ln-766"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-767"></a><span class="c">!! calculate mean, rms, stdev</span> -<a name="ln-768"></a><span class="c">!------------------------------------------------------------------</span> -<a name="ln-769"></a> -<a name="ln-770"></a> <span class="k">IMPLICIT </span><span class="kt">REAL</span> <span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="n">H</span><span class="p">,</span><span class="n">O</span><span class="o">-</span><span class="n">Z</span><span class="p">)</span> -<a name="ln-771"></a> -<a name="ln-772"></a> <span class="kt">REAL </span><span class="n">PHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">SIG</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">P</span> -<a name="ln-773"></a> -<a name="ln-774"></a> <span class="n">N</span><span class="o">=</span><span class="n">NI</span><span class="o">*</span><span class="n">NJ</span><span class="o">*</span><span class="n">NK</span> +<a name="ln-760"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">XMAX</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-761"></a><span class="k"> </span><span class="n">IA</span> <span class="o">=</span> <span class="mi">0</span> +<a name="ln-762"></a> <span class="k">RETURN</span> +<a name="ln-763"></a><span class="k"> END IF</span> +<a name="ln-764"></a> +<a name="ln-765"></a><span class="k"> </span><span class="n">A1</span><span class="o">=</span><span class="n">LOG10</span><span class="p">(</span> <span class="p">(</span><span class="n">G</span><span class="o">/</span><span class="mi">1</span><span class="mf">0.d0</span><span class="p">)</span><span class="o">/</span><span class="n">XMAX</span> <span class="p">)</span> +<a name="ln-766"></a> <span class="n">A2</span><span class="o">=</span><span class="n">LOG10</span><span class="p">(</span> <span class="n">G</span><span class="o">/</span><span class="n">XMAX</span> <span class="p">)</span> +<a name="ln-767"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">A1</span> <span class="p">.</span><span class="n">gt</span><span class="p">.</span> <span class="n">A2</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-768"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A2</span> +<a name="ln-769"></a> <span class="k">ELSE</span> +<a name="ln-770"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A1</span> +<a name="ln-771"></a> <span class="k">END IF</span> +<a name="ln-772"></a> +<a name="ln-773"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">A</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="p">)</span> +<a name="ln-774"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">A</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="mf">1.0</span><span class="p">)</span> <a name="ln-775"></a> -<a name="ln-776"></a> <span class="n">RMS</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-777"></a> <span class="n">MW</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-778"></a> -<a name="ln-779"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span> -<a name="ln-780"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> -<a name="ln-781"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> -<a name="ln-782"></a> <span class="n">P</span><span class="o">=</span><span class="n">PHI</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> -<a name="ln-783"></a> <span class="n">RMS</span><span class="o">=</span><span class="n">RMS</span><span class="o">+</span><span class="n">P</span><span class="o">*</span><span class="n">P</span> -<a name="ln-784"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">+</span><span class="n">P</span> -<a name="ln-785"></a><span class="mi">10</span> <span class="k">CONTINUE</span> -<a name="ln-786"></a> -<a name="ln-787"></a><span class="k"> </span><span class="n">RMS</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">/</span><span class="n">N</span><span class="p">)</span> -<a name="ln-788"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">/</span><span class="n">N</span> +<a name="ln-776"></a> <span class="k">RETURN</span> +<a name="ln-777"></a> +<a name="ln-778"></a><span class="k">END</span> +<a name="ln-779"></a> +<a name="ln-780"></a><span class="k">SUBROUTINE </span><span class="n">STATIS</span> <span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">PHI</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span> +<a name="ln-781"></a> +<a name="ln-782"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-783"></a><span class="c">!! calculate mean, rms, stdev</span> +<a name="ln-784"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-785"></a> +<a name="ln-786"></a> <span class="k">IMPLICIT </span><span class="kt">REAL</span> <span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="n">H</span><span class="p">,</span><span class="n">O</span><span class="o">-</span><span class="n">Z</span><span class="p">)</span> +<a name="ln-787"></a> +<a name="ln-788"></a> <span class="kt">REAL </span><span class="n">PHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">SIG</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">P</span> <a name="ln-789"></a> -<a name="ln-790"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mf">0.</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-791"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="mf">0.0</span> -<a name="ln-792"></a> <span class="k">ELSE</span> -<a name="ln-793"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span><span class="p">)</span> -<a name="ln-794"></a> <span class="k">END IF</span> -<a name="ln-795"></a> -<a name="ln-796"></a><span class="k"> RETURN</span> -<a name="ln-797"></a> -<a name="ln-798"></a><span class="k">END</span> +<a name="ln-790"></a> <span class="n">N</span><span class="o">=</span><span class="n">NI</span><span class="o">*</span><span class="n">NJ</span><span class="o">*</span><span class="n">NK</span> +<a name="ln-791"></a> +<a name="ln-792"></a> <span class="n">RMS</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-793"></a> <span class="n">MW</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-794"></a><span class="c">! 10.86 sinstead of 11.04 sec</span> +<a name="ln-795"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-796"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> +<a name="ln-797"></a> <span class="k">DO </span><span class="mi">10</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span> +<a name="ln-798"></a> <span class="n">P</span><span class="o">=</span><span class="n">PHI</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-799"></a> <span class="n">RMS</span><span class="o">=</span><span class="n">RMS</span><span class="o">+</span><span class="n">P</span><span class="o">*</span><span class="n">P</span> +<a name="ln-800"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">+</span><span class="n">P</span> +<a name="ln-801"></a><span class="mi">10</span> <span class="k">CONTINUE</span> +<a name="ln-802"></a> +<a name="ln-803"></a><span class="k"> </span><span class="n">RMS</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">/</span><span class="n">N</span><span class="p">)</span> +<a name="ln-804"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">/</span><span class="n">N</span> +<a name="ln-805"></a> +<a name="ln-806"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mf">0.</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-807"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-808"></a> <span class="k">ELSE</span> +<a name="ln-809"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span><span class="p">)</span> +<a name="ln-810"></a> <span class="k">END IF</span> +<a name="ln-811"></a> +<a name="ln-812"></a><span class="k"> RETURN</span> +<a name="ln-813"></a> +<a name="ln-814"></a><span class="k">END</span> </pre></div> </section> @@ -1240,7 +1256,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/ftrafo.f90.html similarity index 98% rename from Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/ftrafo.f90.html index 5c64a5d3a69910e1b8e0a008756883eb17076f83..56779aa64d2282a0b032bceba792f1db63708193 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/ftrafo.f90.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="25.6% of total for source files.">359 statements</a> + title="25.4% of total for source files.">359 statements</a> </li> @@ -290,28 +290,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: sourcefile~~ftrafo.f90~~AfferentGraph Pages: 1 --> -<svg id="sourcefileftrafof90AfferentGraph" width="206pt" height="32pt" - viewBox="0.00 0.00 206.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="sourcefileftrafof90AfferentGraph" width="184pt" height="32pt" + viewBox="0.00 0.00 184.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="sourcefile~~ftrafo.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>sourcefile~~ftrafo.f90~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 202,-28 202,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 180,-28 180,4 -4,4"/> <!-- sourcefile~ftrafo.f90 --> <g id="sourcefile~~ftrafo.f90~~AfferentGraph_node1" class="node"><title>sourcefile~ftrafo.f90</title> <polygon fill="none" stroke="black" points="55,-24 0,-24 0,-0 55,-0 55,-24"/> <text text-anchor="middle" x="27.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">ftrafo.f90</text> </g> -<!-- sourcefile~preconvert_new.f90 --> -<g id="sourcefile~~ftrafo.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> -<g id="a_sourcefile~~ftrafo.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="198,-24 91,-24 91,-0 198,-0 198,-24"/> -<text text-anchor="middle" x="144.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +<!-- sourcefile~calc_etadot.f90 --> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph_node2" class="node"><title>sourcefile~calc_etadot.f90</title> +<g id="a_sourcefile~~ftrafo.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/calc_etadot.f90.html" xlink:title="calc_etadot.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 91,-24 91,-0 176,-0 176,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> -<g id="sourcefile~~ftrafo.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.7121,-12C82.1726,-12 73.4935,-12 65.435,-12"/> -<polygon fill="#000000" stroke="#000000" points="65.2629,-8.5001 55.2629,-12 65.2629,-15.5001 65.2629,-8.5001"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.7985,-12C82.3748,-12 73.5755,-12 65.3334,-12"/> +<polygon fill="#000000" stroke="#000000" points="65.2615,-8.5001 55.2615,-12 65.2614,-15.5001 65.2615,-8.5001"/> </g> </g> </svg> @@ -575,7 +575,7 @@ <a name="ln-170"></a> <span class="k">IMPLICIT NONE</span> <a name="ln-171"></a> <a name="ln-172"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">M</span><span class="p">,</span><span class="n">N</span><span class="p">,</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">GGIND</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">LLH</span><span class="p">,</span><span class="n">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LLHS</span> -<a name="ln-173"></a> <span class="n">INTEGERMLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NJ</span><span class="p">)</span> +<a name="ln-173"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NJ</span><span class="p">)</span> <a name="ln-174"></a> <span class="kt">REAL </span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> <a name="ln-175"></a> <span class="kt">REAL </span><span class="n">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> <a name="ln-176"></a> <span class="kt">REAL </span><span class="n">XMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> @@ -920,7 +920,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/grphreal.f90.html similarity index 95% rename from Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/grphreal.f90.html index ab271f3682e1d8a9c5a1095d28467883f68c28fd..9acdffade7e911d0e3968c714ce33d0cc4ca0a63 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/grphreal.f90.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -290,28 +290,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: sourcefile~~grphreal.f90~~AfferentGraph Pages: 1 --> -<svg id="sourcefilegrphrealf90AfferentGraph" width="221pt" height="32pt" - viewBox="0.00 0.00 221.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="sourcefilegrphrealf90AfferentGraph" width="199pt" height="32pt" + viewBox="0.00 0.00 199.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="sourcefile~~grphreal.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>sourcefile~~grphreal.f90~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 217,-28 217,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 195,-28 195,4 -4,4"/> <!-- sourcefile~grphreal.f90 --> <g id="sourcefile~~grphreal.f90~~AfferentGraph_node1" class="node"><title>sourcefile~grphreal.f90</title> <polygon fill="none" stroke="black" points="70,-24 0,-24 0,-0 70,-0 70,-24"/> <text text-anchor="middle" x="35" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">grphreal.f90</text> </g> -<!-- sourcefile~preconvert_new.f90 --> -<g id="sourcefile~~grphreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> -<g id="a_sourcefile~~grphreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="213,-24 106,-24 106,-0 213,-0 213,-24"/> -<text text-anchor="middle" x="159.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +<!-- sourcefile~calc_etadot.f90 --> +<g id="sourcefile~~grphreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~calc_etadot.f90</title> +<g id="a_sourcefile~~grphreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/calc_etadot.f90.html" xlink:title="calc_etadot.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="191,-24 106,-24 106,-0 191,-0 191,-24"/> +<text text-anchor="middle" x="148.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> -<g id="sourcefile~~grphreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.838,-12C97.3573,-12 88.6524,-12 80.3912,-12"/> -<polygon fill="#000000" stroke="#000000" points="80.2147,-8.5001 70.2147,-12 80.2146,-15.5001 80.2147,-8.5001"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~grphreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.982,-12C97.618,-12 88.7965,-12 80.3409,-12"/> +<polygon fill="#000000" stroke="#000000" points="80.2637,-8.5001 70.2637,-12 80.2636,-15.5001 80.2637,-8.5001"/> </g> </g> </svg> @@ -411,7 +411,7 @@ <a name="ln-6"></a> <a name="ln-7"></a><span class="k"> SUBROUTINE </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">W</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> <a name="ln-8"></a> -<a name="ln-9"></a><span class="c">!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> +<a name="ln-9"></a><span class="c">!! WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> <a name="ln-10"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> <a name="ln-11"></a><span class="c">!! RAUM AUF KUGELKOORDINATEN DURCH</span> <a name="ln-12"></a> @@ -434,14 +434,14 @@ <a name="ln-29"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">ISIZE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> <a name="ln-30"></a> <a name="ln-31"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-32"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">Z</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-32"></a> <span class="kt">REAL </span><span class="n">Z</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> <a name="ln-33"></a> <a name="ln-34"></a><span class="c">! LOGICAL*1 USED(((216*217)/2+1)*160)</span> <a name="ln-35"></a> <a name="ln-36"></a> <span class="k">DIMENSION </span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> <a name="ln-37"></a> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> <a name="ln-38"></a> <span class="k">DIMENSION </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-39"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-39"></a> <span class="kt">REAL </span><span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> <a name="ln-40"></a> <span class="k">DIMENSION </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> <a name="ln-41"></a> <a name="ln-42"></a> <span class="n">IND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> @@ -601,7 +601,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/phgrreal.f90.html similarity index 97% rename from Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/phgrreal.f90.html index 1dd36d263e02f34a13648dcf6809d0b85e92efbc..b679c3c6493c3d676d2b312884244e940a6de6a3 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/phgrreal.f90.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -126,7 +126,7 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="23.8% of total for source files.">334 statements</a> + title="23.6% of total for source files.">333 statements</a> </li> @@ -219,46 +219,41 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: sourcefile~~phgrreal.f90~~AfferentGraph Pages: 1 --> -<svg id="sourcefilephgrrealf90AfferentGraph" width="327pt" height="86pt" - viewBox="0.00 0.00 327.00 86.16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 82.1629)"> +<svg id="sourcefilephgrrealf90AfferentGraph" width="305pt" height="86pt" + viewBox="0.00 0.00 305.00 86.28" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 82.2849)"> <title>sourcefile~~phgrreal.f90~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-82.1629 323,-82.1629 323,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-82.2849 301,-82.2849 301,4 -4,4"/> <!-- sourcefile~phgrreal.f90 --> <g id="sourcefile~~phgrreal.f90~~AfferentGraph_node1" class="node"><title>sourcefile~phgrreal.f90</title> <polygon fill="none" stroke="black" points="70,-66 0,-66 0,-42 70,-42 70,-66"/> <text text-anchor="middle" x="35" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">phgrreal.f90</text> </g> -<!-- sourcefile~ftrafo.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~ftrafo.f90</title> -<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="168.5,-66 113.5,-66 113.5,-42 168.5,-42 168.5,-66"/> -<text text-anchor="middle" x="141" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> +<!-- sourcefile~calc_etadot.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~calc_etadot.f90</title> +<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/calc_etadot.f90.html" xlink:title="calc_etadot.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="297,-66 212,-66 212,-42 297,-42 297,-66"/> +<text text-anchor="middle" x="254.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot.f90</text> </a> </g> </g> -<!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M113.487,-54C103.443,-54 91.7125,-54 80.4631,-54"/> -<polygon fill="#000000" stroke="#000000" points="80.3294,-50.5001 70.3293,-54 80.3293,-57.5001 80.3294,-50.5001"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M216.852,-66.0643C204.073,-69.6979 189.542,-73.1978 176,-75 145.161,-79.1042 136.781,-79.5177 106,-75 97.0616,-73.6881 87.6802,-71.4814 78.7937,-68.9792"/> +<polygon fill="#000000" stroke="#000000" points="79.6042,-65.5686 69.0208,-66.0604 77.601,-72.2758 79.6042,-65.5686"/> </g> -<!-- sourcefile~preconvert_new.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node3" class="node"><title>sourcefile~preconvert_new.f90</title> -<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node3"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="319,-66 212,-66 212,-42 319,-42 319,-66"/> -<text text-anchor="middle" x="265.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +<!-- sourcefile~ftrafo.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="168.5,-66 113.5,-66 113.5,-42 168.5,-42 168.5,-66"/> +<text text-anchor="middle" x="141" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge2" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M222.543,-66.0684C207.942,-69.7023 191.371,-73.2014 176,-75 145.1,-78.6159 136.781,-79.5177 106,-75 97.0616,-73.6881 87.6802,-71.4814 78.7937,-68.9792"/> -<polygon fill="#000000" stroke="#000000" points="79.6042,-65.5686 69.0208,-66.0604 77.601,-72.2758 79.6042,-65.5686"/> -</g> -<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge4" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.838,-54C200.768,-54 189.317,-54 178.969,-54"/> -<polygon fill="#000000" stroke="#000000" points="178.647,-50.5001 168.647,-54 178.647,-57.5001 178.647,-50.5001"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge4" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.982,-54C201.115,-54 189.476,-54 178.87,-54"/> +<polygon fill="#000000" stroke="#000000" points="178.676,-50.5001 168.676,-54 178.676,-57.5001 178.676,-50.5001"/> </g> <!-- sourcefile~grphreal.f90 --> <g id="sourcefile~~phgrreal.f90~~AfferentGraph_node4" class="node"><title>sourcefile~grphreal.f90</title> @@ -268,10 +263,15 @@ </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> -<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge5" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M229.396,-41.9645C215.84,-37.3165 200.179,-31.9471 185.892,-27.0487"/> -<polygon fill="#000000" stroke="#000000" points="186.858,-23.6798 176.263,-23.7473 184.587,-30.3015 186.858,-23.6798"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge5" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M221.549,-41.9645C209.652,-37.4831 195.975,-32.3312 183.354,-27.5773"/> +<polygon fill="#000000" stroke="#000000" points="184.548,-24.287 173.956,-24.0373 182.08,-30.8377 184.548,-24.287"/> +</g> +<!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge2" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M113.487,-54C103.443,-54 91.7125,-54 80.4631,-54"/> +<polygon fill="#000000" stroke="#000000" points="80.3294,-50.5001 70.3293,-54 80.3293,-57.5001 80.3294,-50.5001"/> </g> <!-- sourcefile~grphreal.f90->sourcefile~phgrreal.f90 --> <g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge3" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> @@ -383,8 +383,8 @@ <a name="ln-13"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> <a name="ln-14"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> <a name="ln-15"></a><span class="c">! FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> -<a name="ln-16"></a><span class="c">! WSAVE = Working Array fuer Fouriertransformation</span> -<a name="ln-17"></a><span class="c">! Z = LEGENDREFUNKTIONSWERTE</span> +<a name="ln-16"></a><span class="c">! WSAVE = Working Array fuer Fouriertransformation</span> +<a name="ln-17"></a><span class="c">! Z = LEGENDREFUNKTIONSWERTE</span> <a name="ln-18"></a><span class="c">!</span> <a name="ln-19"></a><span class="c">! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> <a name="ln-20"></a><span class="c">! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> @@ -393,7 +393,7 @@ <a name="ln-23"></a> <a name="ln-24"></a> <span class="k">IMPLICIT NONE</span> <a name="ln-25"></a> -<a name="ln-26"></a><span class="c">! Anzahl der Gitterpunkte auf jedem Breitenkreis</span> +<a name="ln-26"></a><span class="c">! Anzahl der Gitterpunkte auf jedem Breitenkreis</span> <a name="ln-27"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> <a name="ln-28"></a> <span class="kt">INTEGER </span><span class="n">K</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MNAUF</span> <a name="ln-29"></a> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> @@ -453,7 +453,7 @@ <a name="ln-83"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> <a name="ln-84"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> <a name="ln-85"></a> <span class="k">IF</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">))</span> <span class="k">THEN</span> -<a name="ln-86"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> +<a name="ln-86"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> <a name="ln-87"></a> <span class="k">DO </span><span class="mi">18</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> <a name="ln-88"></a> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> <a name="ln-89"></a> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> @@ -493,7 +493,7 @@ <a name="ln-123"></a><span class="c">!! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER</span> <a name="ln-124"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> <a name="ln-125"></a><span class="c">!! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt</span> -<a name="ln-126"></a><span class="c">!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</span> +<a name="ln-126"></a><span class="c">!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</span> <a name="ln-127"></a> <a name="ln-128"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> <a name="ln-129"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> @@ -526,7 +526,7 @@ <a name="ln-156"></a> <a name="ln-157"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MAUF</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MNAUF</span><span class="p">)</span> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'TOO COARSE LONGITUDE RESOLUTION'</span> <a name="ln-158"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MAXL</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> -<a name="ln-159"></a> <span class="n">MANF</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">MAUF</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MAXL</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">MAUF</span><span class="p">))</span> <span class="k">THEN</span> +<a name="ln-159"></a> <span class="n">MANF</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">MAUF</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MAXL</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">MAUF</span><span class="p">)</span> <span class="k">THEN</span> <a name="ln-160"></a><span class="k"> WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'WRONG LONGITUDE RANGE'</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span> <a name="ln-161"></a> <span class="k">STOP</span> <a name="ln-162"></a><span class="k"> END IF</span> @@ -537,9 +537,9 @@ <a name="ln-167"></a><span class="k"> </span><span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">TRUE</span><span class="p">.</span> <a name="ln-168"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">J</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span> <a name="ln-169"></a> <span class="k">IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">J</span><span class="p">))</span><span class="o">-</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">)))</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mf">1E-11</span><span class="p">)</span> <span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> -<a name="ln-170"></a><span class="c">! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J))</span> +<a name="ln-170"></a><span class="c">! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J))</span> <a name="ln-171"></a><span class="mi">11</span> <span class="k">CONTINUE</span> -<a name="ln-172"></a><span class="k"> WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'Symmetrisch: '</span><span class="p">,</span><span class="n">SYM</span> +<a name="ln-172"></a><span class="c">!! WRITE(*,*) 'Symmetrisch: ',SYM</span> <a name="ln-173"></a> <span class="k">ELSE</span> <a name="ln-174"></a><span class="k"> </span><span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> <a name="ln-175"></a> <span class="k">END IF</span> @@ -594,7 +594,7 @@ <a name="ln-224"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> <a name="ln-225"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> <a name="ln-226"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> -<a name="ln-227"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> +<a name="ln-227"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> <a name="ln-228"></a> <span class="k">DO </span><span class="mi">18</span> <span class="n">K</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> <a name="ln-229"></a> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> <a name="ln-230"></a> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> @@ -767,7 +767,7 @@ <a name="ln-397"></a><span class="c">!! UND SCHREIBT SIE IN DAS FELD Z</span> <a name="ln-398"></a><span class="c">! Die Polynome sind wie im ECMWF indiziert, d.h.</span> <a name="ln-399"></a><span class="c">! P00,P10,P11,P20,P21,P22,...</span> -<a name="ln-400"></a><span class="c">! Ansonsten ist die Routine analog zu PLGNDN</span> +<a name="ln-400"></a><span class="c">! Ansonsten ist die Routine analog zu PLGNDN</span> <a name="ln-401"></a><span class="c">! X IST DER COSINUS DES ZENITWINKELS ODER</span> <a name="ln-402"></a><span class="c">! DER SINUS DER GEOGRAFISCHEN BREITE</span> <a name="ln-403"></a> @@ -897,7 +897,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/posnam.f90.html similarity index 98% rename from Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/posnam.f90.html index e505dc98bf71d564c56fe6377ba3f587063b6687..b34a50af03abd7bf08b4026dc2818c7fa5f39c49 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/posnam.f90.html @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -299,7 +299,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html b/Documentation/html/Documentation/Api/Fortran/sourcefile/rwgrib2.f90.html similarity index 94% rename from Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html rename to Documentation/html/Documentation/Api/Fortran/sourcefile/rwgrib2.f90.html index 77222059c577b93383db9d3c825b0691ec749408..45fca03ecc1df6517722bda0d74ec0e8632aafd9 100644 --- a/Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html +++ b/Documentation/html/Documentation/Api/Fortran/sourcefile/rwgrib2.f90.html @@ -10,7 +10,7 @@ <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> - <title>rwGRIB2.f90 – Flex_extract: Calculation of etadot</title> + <title>rwgrib2.f90 – Flex_extract: Calculation of etadot</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/pygments.css" rel="stylesheet"> @@ -44,7 +44,7 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> @@ -69,7 +69,7 @@ - <li><a href="../program/preconvert.html">Program</a></li> + <li><a href="../program/calc_etadot.html">Program</a></li> </ul> </li> @@ -87,7 +87,7 @@ -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> +<li class="visible-xs hidden-sm visible-lg"><a href="../program/calc_etadot.html">Program</a></li> </ul> @@ -108,7 +108,7 @@ <div class="row"> - <h1>rwGRIB2.f90 + <h1>rwgrib2.f90 <small>Source File</small> </h1> @@ -126,12 +126,12 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" data-placement="bottom" data-html="true" - title="11.7% of total for source files.">164 statements</a> + title="11.5% of total for source files.">162 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + <li><i class="fa fa-code"></i><a href="../src/rwgrib2.f90"> Source File</a></li> </ul> @@ -139,7 +139,7 @@ - <li class="active">rwGRIB2.f90</li> + <li class="active">rwgrib2.f90</li> </ol> </div> </div> @@ -194,7 +194,7 @@ <div class="panel panel-primary"> <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> <div class="list-group"> - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> + <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwgrib2.f90</a> </div> </div> @@ -219,28 +219,28 @@ <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: sourcefile~~rwgrib2.f90~~AfferentGraph Pages: 1 --> -<svg id="sourcefilerwgrib2f90AfferentGraph" width="224pt" height="32pt" - viewBox="0.00 0.00 224.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<svg id="sourcefilerwgrib2f90AfferentGraph" width="195pt" height="32pt" + viewBox="0.00 0.00 195.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="sourcefile~~rwgrib2.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> <title>sourcefile~~rwgrib2.f90~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 220,-28 220,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 191,-28 191,4 -4,4"/> <!-- sourcefile~rwgrib2.f90 --> <g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node1" class="node"><title>sourcefile~rwgrib2.f90</title> -<polygon fill="none" stroke="black" points="73,-24 0,-24 0,-0 73,-0 73,-24"/> -<text text-anchor="middle" x="36.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">rwGRIB2.f90</text> +<polygon fill="none" stroke="black" points="66,-24 0,-24 0,-0 66,-0 66,-24"/> +<text text-anchor="middle" x="33" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">rwgrib2.f90</text> </g> -<!-- sourcefile~preconvert_new.f90 --> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> -<g id="a_sourcefile~~rwgrib2.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="216,-24 109,-24 109,-0 216,-0 216,-24"/> -<text text-anchor="middle" x="162.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +<!-- sourcefile~calc_etadot.f90 --> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node2" class="node"><title>sourcefile~calc_etadot.f90</title> +<g id="a_sourcefile~~rwgrib2.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/calc_etadot.f90.html" xlink:title="calc_etadot.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="187,-24 102,-24 102,-0 187,-0 187,-24"/> +<text text-anchor="middle" x="144.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">calc_etadot.f90</text> </a> </g> </g> -<!-- sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 --> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.913,-12C100.466,-12 91.7802,-12 83.5029,-12"/> -<polygon fill="#000000" stroke="#000000" points="83.2854,-8.5001 73.2853,-12 83.2853,-15.5001 83.2854,-8.5001"/> +<!-- sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M101.79,-12C93.3686,-12 84.5098,-12 76.0755,-12"/> +<polygon fill="#000000" stroke="#000000" points="76.0562,-8.5001 66.0561,-12 76.0561,-15.5001 76.0562,-8.5001"/> </g> </g> </svg> @@ -321,7 +321,7 @@ <div class="panel panel-primary"> <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> <div class="list-group"> - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> + <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwgrib2.f90</a> </div> </div> @@ -418,13 +418,13 @@ <a name="ln-84"></a> <a name="ln-85"></a><span class="c">! print*,i</span> <a name="ln-86"></a> <span class="k">END DO </span><span class="n">iloop</span> -<a name="ln-87"></a> <span class="k">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'readlatlon: '</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s1">' records read'</span> +<a name="ln-87"></a><span class="c">!! write(*,*) 'readlatlon: ',i-1,' records read'</span> <a name="ln-88"></a> <a name="ln-89"></a> <span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span> <a name="ln-90"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <a name="ln-91"></a> <span class="k">END DO</span> <a name="ln-92"></a><span class="k"> </span> -<a name="ln-93"></a><span class="k"> deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> +<a name="ln-93"></a><span class="k"> if</span> <span class="p">(</span><span class="nb">allocated</span><span class="p">(</span><span class="n">values</span><span class="p">))</span> <span class="k">deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> <a name="ln-94"></a> <span class="k">deallocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">)</span> <a name="ln-95"></a> <a name="ln-96"></a> <span class="k">END SUBROUTINE </span><span class="n">READLATLON</span> @@ -464,14 +464,14 @@ <a name="ln-130"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> <a name="ln-131"></a> <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">LLEN</span> <a name="ln-132"></a> <span class="k">if</span> <span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="p">)</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="s1">'/'</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-133"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-134"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> -<a name="ln-135"></a> <span class="k">end if</span> -<a name="ln-136"></a><span class="k"> end do</span> -<a name="ln-137"></a><span class="k"> </span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">LLEN</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-138"></a> <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">l</span> -<a name="ln-139"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> -<a name="ln-140"></a> <span class="k">end do</span> +<a name="ln-133"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-134"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> +<a name="ln-135"></a> <span class="k">end if</span> +<a name="ln-136"></a><span class="k"> end do</span> +<a name="ln-137"></a><span class="k"> </span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">LLEN</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-138"></a> <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">l</span> +<a name="ln-139"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> +<a name="ln-140"></a> <span class="k">end do</span> <a name="ln-141"></a><span class="k"> end if </span> <a name="ln-142"></a> <a name="ln-143"></a><span class="k"> DO </span><span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">l</span> @@ -486,11 +486,11 @@ <a name="ln-152"></a><span class="c">! call grib_set(igrib,"shortName","etadot")</span> <a name="ln-153"></a><span class="c">! call grib_set(igrib,"units","s**-1")</span> <a name="ln-154"></a><span class="c">! end if</span> -<a name="ln-155"></a> <span class="k">if</span> <span class="p">(</span><span class="n">l</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mlevel</span><span class="p">)</span> <span class="k">then</span> +<a name="ln-155"></a> <span class="k">if</span> <span class="p">(</span><span class="n">l</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mlevel</span><span class="p">)</span> <span class="k">then</span> <a name="ln-156"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="p">)</span><span class="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">k</span><span class="p">)),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> -<a name="ln-157"></a> <span class="k">else</span> -<a name="ln-158"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="p">)</span><span class="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">k</span><span class="p">),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> -<a name="ln-159"></a> <span class="k">end if</span> +<a name="ln-157"></a> <span class="k">else</span> +<a name="ln-158"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="p">)</span><span class="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">k</span><span class="p">),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> +<a name="ln-159"></a> <span class="k">end if</span> <a name="ln-160"></a><span class="k"> call </span><span class="n">grib_set</span><span class="p">(</span><span class="n">igrib</span><span class="p">,</span><span class="s2">"values"</span><span class="p">,</span><span class="n">zsec4</span><span class="p">)</span> <a name="ln-161"></a> <a name="ln-162"></a> <span class="k">call </span><span class="n">grib_write</span><span class="p">(</span><span class="n">igrib</span><span class="p">,</span><span class="n">iunit</span><span class="p">)</span> @@ -582,7 +582,7 @@ <a name="ln-248"></a> <a name="ln-249"></a> <span class="k">END DO </span><span class="n">iloop</span> <a name="ln-250"></a> -<a name="ln-251"></a> <span class="k">write</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'readspectral: '</span><span class="p">,</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="s1">' records read'</span> +<a name="ln-251"></a><span class="c">!! write(*,*) 'readspectral: ',i-1,' records read'</span> <a name="ln-252"></a> <a name="ln-253"></a> <span class="k">DO </span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">n</span> <a name="ln-254"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> @@ -610,7 +610,7 @@ <div class="container"> <div class="row"> <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> - </p></div> + <br /><small>dfa7dbd</small></p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by diff --git a/Documentation/FORD/V6/Doc/src/preconvert_new.f90 b/Documentation/html/Documentation/Api/Fortran/src/calc_etadot.f90 similarity index 92% rename from Documentation/FORD/V6/Doc/src/preconvert_new.f90 rename to Documentation/html/Documentation/Api/Fortran/src/calc_etadot.f90 index 3a64e1a7b9dda5c64e035cefaa00178e2327af0c..542997d20f47c0e4b7dec9968d30dacf70fd72f7 100644 --- a/Documentation/FORD/V6/Doc/src/preconvert_new.f90 +++ b/Documentation/html/Documentation/Api/Fortran/src/calc_etadot.f90 @@ -1,4 +1,4 @@ -PROGRAM PRECONVERT +PROGRAM calc_etadot !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta @@ -8,7 +8,7 @@ PROGRAM PRECONVERT ! date: 03/2010 ! version: V4.0 ! -!## Program PRECONVERT +!## Program calc_etadot ! ! **Prepares input data for POP model meteorological preprocessor** ! @@ -183,7 +183,7 @@ PROGRAM PRECONVERT CALL GRIB_GET(IGRIB(1),'numberOfPointsAlongAMeridian', NGJ) - get as a integer +! get as a integer call grib_get(igrib(1),'pl', MLAT) NGI=SUM(MLAT) @@ -240,36 +240,35 @@ PROGRAM PRECONVERT !$OMP END PARALLEL DO ! MPAR(1)=152 - FILENAME='fort.12' + FILENAME='fort.12' +!! read LNSP in SH CALL READSPECTRAL(FILENAME,LNPMN,MNAUF,1,MLEVEL,(/152/),AK,BK) -! goto 111 CALL SET99(WSAVE,IFAX,mauf) - CALL PHGCUT(LNPMN,PS,WSAVE,IFAX,Z, & - MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) + CALL PHGCUT(LNPMN,PS,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) CALL STATIS(MAXL,MAXB,1,EXP(PS),RMS,MW,SIG) - WRITE(*,'(A12,3F12.4)') 'STATISTICS: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS PS: ',RMS,MW,SIG DO J=1,NGJ/2 CALL SET99(GWSAVE(1,J),GIFAX(1,J),MLAT(J)) END DO CALL PHGR213(LNPMN,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) PSG=HILF - CALL GRPH213(LNPMN2,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, & - MNAUF,NGI,NGJ,1) + CALL GRPH213(LNPMN2,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,1) CALL PHGR213(LNPMN2,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) HILF=exp(PSG)-exp(HILF) CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS ratio of PS: ',RMS,MW,SIG PSG=EXP(PSG) HILF=PSG CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS PSG: ',RMS,MW,SIG 111 FILENAME='fort.10' +!! read u,v in SH CALL READSPECTRAL(FILENAME,XMN,MNAUF,2*MLEVEL,MLEVEL,(/131,132/),AK,BK) !! Transformieren des Windes auf das Gaussgitter @@ -290,9 +289,12 @@ PROGRAM PRECONVERT 112 FILENAME='fort.13' +!! read DIV in SH CALL READSPECTRAL(FILENAME,XMN,MNAUF,MLEVEL,MLEVEL,(/155/),AK,BK) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213(XMN,DG,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,MLEVEL) + CALL STATIS(MAXL,MAXB,1,DG,RMS,MW,SIG) + WRITE(*,'(A,T20,3p,3F12.4)') 'STATISTICS DG-PS: ',RMS,MW,SIG !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD(LNPMN,DPSDL,DPSDM,GWSAVE,GIFAX,P,H,MLAT,MNAUF,NGI,NGJ,1) @@ -300,20 +302,30 @@ PROGRAM PRECONVERT !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL(HILF,DPSDL,DPSDM,DG,UGVG(:,1),UGVG(:,MLEVEL+1), & GBREITE,ETAG,MLAT,AK,BK,NGI,NGJ,MLEVEL) - +! note that HILF is ps on input and dpsdt*ps on output + + CALL STATIS(MAXL,MAXB,1,ETAG,RMS,MW,SIG) + WRITE(*,'(A,T20,3p,3F12.4)') 'STATISTICS ETAG-PS: ',RMS,MW,SIG CALL GRPH213(XMN,ETAG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,MLEVEL) + CALL STATIS(MAXL,MAXB,1,ETAG,RMS,MW,SIG) + WRITE(*,'(A,T20,3p,3F12.4)') 'STATISTICS ETAG-PS: ',RMS,MW,SIG DO K=1,MLEVEL IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) END DO + CALL PHGCUT(XMN,ETA,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) + CALL STATIS(MAXL,MAXB,1,ETA,RMS,MW,SIG) + WRITE(*,'(A,T20,3p,3F12.4)') 'STATISTICS ETA-PS: ',RMS,MW,SIG + CALL GRPH213(XMN,HILF,GWSAVE,GIFAX,PP,WEIGHT,MLAT, MNAUF,NGI,NGJ,1) + CALL STATIS(MAXL,MAXB,1,HILF,RMS,MW,SIG) + WRITE(*,'(A,T20,3p,3F12.4)') 'STATISTICS HILF-PS: ',RMS,MW,SIG IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,1),MNAUF,MSMOOTH) CALL PHGCUT(XMN,DPSDT,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) -! GOTO 114 CALL STATIS(MAXL,MAXB,1,DPSDT,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS DPSDT: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS DPSDT: ',RMS,MW,SIG IF (MOMEGADIFF .ne. 0) THEN !! Berechnung von Omega auf dem Gaussgitter @@ -329,10 +341,14 @@ PROGRAM PRECONVERT END IF ! MOMEGA CALL GRPH213(XMN,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,1) + + CALL STATIS(MAXL,MAXB,1,PSG,RMS,MW,SIG) + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS PSG-PS: ',RMS,MW,SIG + CALL PHGCUT(XMN,PS,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) CALL STATIS(MAXL,MAXB,1,PS,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS PS: ',RMS,MW,SIG 114 DEALLOCATE(HILF,PSG,DPSDL,DPSDM,ETAG,DG,LNPMN) @@ -454,7 +470,7 @@ PROGRAM PRECONVERT ! For debugging only CALL STATIS(MAXL,MAXB,1,PS(:,:,1),RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + WRITE(*,'(A,T20,3F12.4)') 'STATISTICS: ',RMS,MW,SIG IF (MOMEGADIFF .ne. 0) THEN CALL OMEGA(PS,DPSDL,DPSDM,DIV,UV(:,:,1),UV(:,:,MLEVEL+1), & @@ -467,7 +483,7 @@ PROGRAM PRECONVERT BREITE,ETA,MLAT,AK,BK,MAXL*MAXB,MAXB,MLEVEL) END IF - END IF ! sMGAUSS + END IF ! MGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL @@ -503,11 +519,11 @@ PROGRAM PRECONVERT DO K=1,MLEVEL CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') ' ETA: ',K,RMS,MW,SIG CALL STATIS(MAXL,MAXB,1,OMR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' OMEGA: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') ' OMEGA: ',K,RMS,MW,SIG CALL STATIS(MAXL,MAXB,1,OM(:,:,K)-OMR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') 'OMEGA DIFF: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') 'OMEGA DIFF: ',K,RMS,MW,SIG END DO END IF @@ -543,14 +559,14 @@ PROGRAM PRECONVERT DO K=1,MLEVEL CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') ' ETA: ',K,RMS,MW,SIG CALL STATIS(MAXL,MAXB,1,ETAR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETAR: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') ' ETAR: ',K,RMS,MW,SIG CALL STATIS(MAXL,MAXB,1,ETA(:,:,K)-ETAR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') 'ETA DIFF: ',K,RMS,MW,SIG + WRITE(*,'(A12,I3,3F12.4)') 'ETA DIFF: ',K,RMS,MW,SIG END DO DO K=1,MLEVEL - WRITE(*,'(I3,2F11.4)') K,ETA(1,MAXB/2,K),ETAR(1,MAXB/2,K) + WRITE(*,'(I3,2F12.4)') K,ETA(1,MAXB/2,K),ETAR(1,MAXB/2,K) END DO ELSE ETA=ETAR @@ -702,9 +718,9 @@ PROGRAM PRECONVERT CALL GRIB_CLOSE_FILE(LUNIT) -2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' -3000 STOP 'ROUTINE CONVERT_PRE: ERROR' -9999 stop 'ROUTINE CONVERT_PRE: ERROR' +2000 STOP 'SUCCESSFULLY FINISHED calc_etadot: CONGRATULATIONS' +3000 STOP 'ROUTINE calc_etadot: ERROR' +9999 stop 'ROUTINE calc_etadot: ERROR' END @@ -722,7 +738,7 @@ INTEGER FUNCTION IA (FIELD1,NI,NJ,NK,G) INTEGER :: I,J,K INTEGER, INTENT(IN) :: NI,NJ,NK REAL, INTENT(IN) :: FIELD1(NI,NJ,NK) - REAL INTENT(IN) :: G + REAL, INTENT(IN) :: G REAL :: RMIN,RMAX,XMAX,A,A1,A2 RMAX=FIELD1(1,1,1) @@ -775,10 +791,10 @@ SUBROUTINE STATIS (NI,NJ,NK,PHI,RMS,MW,SIG) RMS=0. MW=0. - - DO 10 I=1,NI - DO 10 J=1,NJ +! 10.86 sinstead of 11.04 sec DO 10 K=1,NK + DO 10 J=1,NJ + DO 10 I=1,NI P=PHI(I,J,K) RMS=RMS+P*P MW=MW+P diff --git a/Documentation/FORD/V6/Doc/src/ftrafo.f90 b/Documentation/html/Documentation/Api/Fortran/src/ftrafo.f90 similarity index 99% rename from Documentation/FORD/V6/Doc/src/ftrafo.f90 rename to Documentation/html/Documentation/Api/Fortran/src/ftrafo.f90 index db640df1f4c5904dc699cfa1eb5f12e396b9a63e..7995967ac40b0002d0858dd22494cb9b9fadd4ae 100644 --- a/Documentation/FORD/V6/Doc/src/ftrafo.f90 +++ b/Documentation/html/Documentation/Api/Fortran/src/ftrafo.f90 @@ -170,7 +170,7 @@ CONTAINS IMPLICIT NONE INTEGER J,K,M,N,NI,NJ,NK,MNAUF,GGIND,LL,LLP,LLH,LLS,LLPS,LLHS - INTEGERMLAT(NJ),IFAX(10,NJ) + INTEGER MLAT(NJ),IFAX(10,NJ) REAL UFOUC(0:MAXAUF),MUFOUC(0:MAXAUF) REAL VFOUC(0:MAXAUF),MVFOUC(0:MAXAUF) REAL XMN(0:(MNAUF+1)*(MNAUF+2)-1,NK) diff --git a/Documentation/FORD/V6/Doc/src/grphreal.f90 b/Documentation/html/Documentation/Api/Fortran/src/grphreal.f90 similarity index 97% rename from Documentation/FORD/V6/Doc/src/grphreal.f90 rename to Documentation/html/Documentation/Api/Fortran/src/grphreal.f90 index fa3b3e71004bf0bd33724153ab8e7ee1759255dd..b9e61f20736dfffe4c8db64bb65b74581c59f9f7 100644 --- a/Documentation/FORD/V6/Doc/src/grphreal.f90 +++ b/Documentation/html/Documentation/Api/Fortran/src/grphreal.f90 @@ -6,7 +6,7 @@ CONTAINS SUBROUTINE GRPH213(CXMN,FELD,WSAVE,IFAX,Z,W,MLAT,MNAUF,MAXL,MAXB,MLEVEL) -!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER +!! WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH @@ -29,14 +29,14 @@ CONTAINS INTEGER MLAT(MAXB),ISIZE,IFAX(10,MAXB) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL*8 Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) + REAL Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) REAL FELD(MAXL,MLEVEL) DIMENSION WSAVE(8*MAXB+15,MAXB/2) - REAL*8 W(MAXB) + REAL W(MAXB) DIMENSION IND(MAXB) IND(1)=0 diff --git a/Documentation/FORD/V6/Doc/src/phgrreal.f90 b/Documentation/html/Documentation/Api/Fortran/src/phgrreal.f90 similarity index 95% rename from Documentation/FORD/V6/Doc/src/phgrreal.f90 rename to Documentation/html/Documentation/Api/Fortran/src/phgrreal.f90 index 737278d060a2321fa7be54224d75f106a98de674..64a7d308d9177a3b4282e08915c12e60e814b20c 100644 --- a/Documentation/FORD/V6/Doc/src/phgrreal.f90 +++ b/Documentation/html/Documentation/Api/Fortran/src/phgrreal.f90 @@ -13,8 +13,8 @@ CONTAINS ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN -! WSAVE = Working Array fuer Fouriertransformation -! Z = LEGENDREFUNKTIONSWERTE +! WSAVE = Working Array fuer Fouriertransformation +! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN @@ -23,7 +23,7 @@ CONTAINS IMPLICIT NONE -! Anzahl der Gitterpunkte auf jedem Breitenkreis +! Anzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT(MAXB/2) INTEGER K,MAXL,MAXB,MLEVEL,MNAUF INTEGER IND(MAXB) @@ -83,7 +83,7 @@ CONTAINS LLS=LL LLPS=LLP IF (2*I+1 .LT. MLAT(K)) THEN -! Innerste Schleife aufgespalten um if-Abfrage zu sparen +! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J=I,MNAUF,2 SCR=SCR+Z(LLP,K)*CXMN(2*LL,L) SCI=SCI+Z(LLP,K)*CXMN(2*LL+1,L) @@ -123,7 +123,7 @@ CONTAINS !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt -!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph +!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF @@ -156,7 +156,7 @@ CONTAINS IF (MAUF .LE. MNAUF) WRITE(*,*) 'TOO COARSE LONGITUDE RESOLUTION' IF (MANF .LT. 1 .OR. MAXL .LT. 1 .OR. & - MANF .GT. MAUF .OR. MAXL .GT. MAUF)) THEN + MANF .GT. MAUF .OR. MAXL .GT. MAUF) THEN WRITE(*,*) 'WRONG LONGITUDE RANGE',MANF,MAXL STOP END IF @@ -167,9 +167,9 @@ CONTAINS SYM=.TRUE. DO 11 J=5,5 IF (ABS(ABS(Z(100,J))-ABS(Z(100,MAXB+1-J))) .GT. 1E-11) SYM=.FALSE. -! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) +! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE - WRITE(*,*) 'Symmetrisch: ',SYM +!! WRITE(*,*) 'Symmetrisch: ',SYM ELSE SYM=.FALSE. END IF @@ -224,7 +224,7 @@ CONTAINS ACI=0.D0 LLS=LL LLPS=LLP -! Innerste Schleife aufgespalten um if-Abfrage zu sparen +! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K=I,MNAUF,2 SCR=SCR+Z(LLP,J)*CXMN(2*LL,L) SCI=SCI+Z(LLP,J)*CXMN(2*LL+1,L) @@ -397,7 +397,7 @@ CONTAINS !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... -! Ansonsten ist die Routine analog zu PLGNDN +! Ansonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE diff --git a/Documentation/FORD/V6/Doc/src/posnam.f90 b/Documentation/html/Documentation/Api/Fortran/src/posnam.f90 similarity index 100% rename from Documentation/FORD/V6/Doc/src/posnam.f90 rename to Documentation/html/Documentation/Api/Fortran/src/posnam.f90 diff --git a/Documentation/FORD/V6/Doc/src/rwGRIB2.f90 b/Documentation/html/Documentation/Api/Fortran/src/rwgrib2.f90 similarity index 93% rename from Documentation/FORD/V6/Doc/src/rwGRIB2.f90 rename to Documentation/html/Documentation/Api/Fortran/src/rwgrib2.f90 index 6a3b7afb6a745b0e00fb66832d266aa2be934c74..b90d94b575c1fd94a2a095639baaee40c2951ffe 100644 --- a/Documentation/FORD/V6/Doc/src/rwGRIB2.f90 +++ b/Documentation/html/Documentation/Api/Fortran/src/rwgrib2.f90 @@ -84,13 +84,13 @@ ! print*,i END DO iloop - write(*,*) 'readlatlon: ',i-1,' records read' +!! write(*,*) 'readlatlon: ',i-1,' records read' DO i=1,n call grib_release(igrib(i)) END DO - deallocate(values) + if (allocated(values)) deallocate(values) deallocate(igrib) END SUBROUTINE READLATLON @@ -130,14 +130,14 @@ MLINDEX(1)=0 do i=1,LLEN if (MLEVELIST(i:i) .eq. '/') THEN - l=l+1 - MLINDEX(l)=i - end if - end do - MLINDEX(l+1)=LLEN+1 - do i=1,l - read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) - end do + l=l+1 + MLINDEX(l)=i + end if + end do + MLINDEX(l+1)=LLEN+1 + do i=1,l + read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) + end do end if DO k=1,l @@ -152,11 +152,11 @@ ! call grib_set(igrib,"shortName","etadot") ! call grib_set(igrib,"units","s**-1") ! end if - if (l .ne. mlevel) then + if (l .ne. mlevel) then zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,ILEVEL(k)),(/maxl*maxb/)) - else - zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) - end if + else + zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) + end if call grib_set(igrib,"values",zsec4) call grib_write(igrib,iunit) @@ -248,7 +248,7 @@ END DO iloop - write(*,*) 'readspectral: ',i-1,' records read' +!! write(*,*) 'readspectral: ',i-1,' records read' DO i=1,n call grib_release(igrib(i)) diff --git a/Documentation/FORD/V6/Doc/tipuesearch/img/loader.gif b/Documentation/html/Documentation/Api/Fortran/tipuesearch/img/loader.gif similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/img/loader.gif rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/img/loader.gif diff --git a/Documentation/FORD/V6/Doc/tipuesearch/img/search.png b/Documentation/html/Documentation/Api/Fortran/tipuesearch/img/search.png similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/img/search.png rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/img/search.png diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.css b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.css similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.css rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.css diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.js b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.js similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.js rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.js diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.min.js b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.min.js similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.min.js rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch.min.js diff --git a/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch_content.js b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch_content.js new file mode 100644 index 0000000000000000000000000000000000000000..db1f3534ffa2746682897995953b4028afe1c0e9 --- /dev/null +++ b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch_content.js @@ -0,0 +1 @@ +var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version:\nAll code transferred to free form.\nSome code cosmetics, should not have any effects\nRename some source files Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"This file depends on sourcefile~~calc_etadot.f90~~EfferentGraph sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~rwgrib2.f90 rwgrib2.f90 sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs calc_etadot Functions IA Subroutines STATIS Source Code calc_etadot.f90 Source Code PROGRAM calc_etadot !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program calc_etadot ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) ! get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' !! read LNSP in SH CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS ratio of PS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PSG: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' !! read u,v in SH CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' !! read DIV in SH CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , DG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS DG-PS: ' , RMS , MW , SIG !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) ! note that HILF is ps on input and dpsdt*ps on output CALL STATIS ( MAXL , MAXB , 1 , ETAG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETAG-PS: ' , RMS , MW , SIG CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , ETAG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETAG-PS: ' , RMS , MW , SIG DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL STATIS ( MAXL , MAXB , 1 , ETA , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS ETA-PS: ' , RMS , MW , SIG CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL STATIS ( MAXL , MAXB , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A,T20,3p,3F12.4)' ) 'STATISTICS HILF-PS: ' , RMS , MW , SIG IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PSG , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PSG-PS: ' , RMS , MW , SIG CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS PS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A,T20,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! MGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F12.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F12.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED calc_etadot: CONGRATULATIONS' 3000 STOP 'ROUTINE calc_etadot: ERROR' 9999 stop 'ROUTINE calc_etadot: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL , INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. ! 10.86 sinstead of 11.04 sec DO 10 K = 1 , NK DO 10 J = 1 , NJ DO 10 I = 1 , NI P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/calc_etadot.f90.html","title":"calc_etadot.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwgrib2.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwgrib2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop !! write(*,*) 'readlatlon: ',i-1,' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO if ( allocated ( values )) deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop !! write(*,*) 'readspectral: ',i-1,' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwgrib2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~calc_etadot.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE ! Anzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN ! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF ) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . ! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE !! WRITE(*,*) 'Symmetrisch: ',SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP ! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... ! Ansonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~calc_etadot.f90 calc_etadot.f90 sourcefile~calc_etadot.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real, intent(in) :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~calc_etadot calc_etadot program~calc_etadot->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~calc_etadot calc_etadot program~calc_etadot->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid write( , ) 'readlatlon: ',i-1,' records read' Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~calc_etadot calc_etadot program~calc_etadot->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics write( , ) 'readspectral: ',i-1,' records read' Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~calc_etadot calc_etadot program~calc_etadot->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~calc_etadot calc_etadot program~calc_etadot->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~calc_etadot calc_etadot program~calc_etadot->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~calc_etadot calc_etadot program~calc_etadot->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~calc_etadot calc_etadot program~calc_etadot->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph WRITE(*,*) 'Symmetrisch: ',SYM Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~calc_etadot calc_etadot program~calc_etadot->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~calc_etadot calc_etadot program~calc_etadot->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~calc_etadot calc_etadot program~calc_etadot->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~calc_etadot calc_etadot program~calc_etadot->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Read more… Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Read more… Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~calc_etadot calc_etadot program~calc_etadot->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) WRONG>>> DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr program~calc_etadot calc_etadot program~calc_etadot->module~phtogr module~grtoph GRTOPH program~calc_etadot->module~grtoph proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~calc_etadot calc_etadot program~calc_etadot->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~calc_etadot~~UsesGraph program~calc_etadot calc_etadot module~phtogr PHTOGR program~calc_etadot->module~phtogr module~rwgrib2 RWGRIB2 program~calc_etadot->module~rwgrib2 module~ftrafo FTRAFO program~calc_etadot->module~ftrafo module~grtoph GRTOPH program~calc_etadot->module~grtoph GRIB_API GRIB_API program~calc_etadot->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program calc_etadot Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n read LNSP in SH\n read u,v in SH\n Transformieren des Windes auf das Gaussgitter read DIV in SH\n Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~calc_etadot~~CallsGraph program~calc_etadot calc_etadot proc~readspectral READSPECTRAL program~calc_etadot->proc~readspectral proc~phgcut PHGCUT program~calc_etadot->proc~phgcut proc~grph213 GRPH213 program~calc_etadot->proc~grph213 grib_close_file grib_close_file program~calc_etadot->grib_close_file proc~statis STATIS program~calc_etadot->proc~statis proc~phgr213 PHGR213 program~calc_etadot->proc~phgr213 proc~gauleg GAULEG program~calc_etadot->proc~gauleg grib_open_file grib_open_file program~calc_etadot->grib_open_file set99 set99 program~calc_etadot->set99 proc~posnam POSNAM program~calc_etadot->proc~posnam proc~readlatlon READLATLON program~calc_etadot->proc~readlatlon proc~phgrad PHGRAD program~calc_etadot->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/calc_etadot.html","title":"calc_etadot – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_set.js b/Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch_set.js similarity index 100% rename from Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_set.js rename to Documentation/html/Documentation/Api/Fortran/tipuesearch/tipuesearch_set.js diff --git a/Documentation/FORD/V6/flexpart_logo_90x90.png b/For_developers/FORD/flexpart_logo_90x90.png similarity index 100% rename from Documentation/FORD/V6/flexpart_logo_90x90.png rename to For_developers/FORD/flexpart_logo_90x90.png diff --git a/Documentation/FORD/V6/fmw.md b/For_developers/FORD/fmw.md similarity index 77% rename from Documentation/FORD/V6/fmw.md rename to For_developers/FORD/fmw.md index ff1895ec72a2c3c79db03c1849e43c44ad640e3b..b94ac6e59ad8d1f942735450d21fa2be4aa894f5 100644 --- a/Documentation/FORD/V6/fmw.md +++ b/For_developers/FORD/fmw.md @@ -2,15 +2,15 @@ project: Flex_extract: Calculation of etadot project_website: https://flexpart.eu/ project_download: https://www.flexpart.eu/downloads favicon: ./fp_favicon.png -src_dir: ../../../source/fortran/New -output_dir: ./Doc +src_dir: ../../Source/Fortran/ +output_dir: ../../Documentation/html/Documentation/Api/Fortran summary: Calculation of vertical velocity for FLEXPART author: Leopold Haimberger<sup>1</sup> author_description: <sup>1</sup>Univ. of Vienna, Dept. of Meteorology & Geophysics author_pic: ./fplogo.jpg docmark: ! predocmark: > -media_dir: ./Doc +media_dir: ../../Documentation/html/Documentation/Api/Fortran docmark_alt: * predocmark_alt: < creation_date: @@ -24,7 +24,8 @@ source: public graph: true warn: false license: by -version: 7.1.work -@Note for this version +version: 7.1 +@Note for this version: All code transferred to free form. Some code cosmetics, should not have any effects +Rename some source files diff --git a/Documentation/FORD/V6/fp_favicon.png b/For_developers/FORD/fp_favicon.png similarity index 100% rename from Documentation/FORD/V6/fp_favicon.png rename to For_developers/FORD/fp_favicon.png diff --git a/Documentation/FORD/V6/fplogo.jpg b/For_developers/FORD/fplogo.jpg similarity index 100% rename from Documentation/FORD/V6/fplogo.jpg rename to For_developers/FORD/fplogo.jpg diff --git a/For_developers/FORD/readme.txt b/For_developers/FORD/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..761adfab06ad7335632ceae07dce946332e79aaa --- /dev/null +++ b/For_developers/FORD/readme.txt @@ -0,0 +1,8 @@ +HOW TO UPDATE THE AUTOMATED DOCUMENTATION OF THE FORTRAN CODE + +1. Install the FORtran Documenter from https://github.com/cmacmackin/ford + Maybe read the documentation http://fortranwiki.org/fortran/show/FORD +2. Adapt the files in this directory if needed. fmw.md controls the the operation of FORD +3. Run Ford: ford fmw.md + +Note 1: Use --exclude_dir ../../Source/Fortran/<yourdir> if you have any subdir in the Fortran source directory containing Fortran source files (can be repeated) diff --git a/Source/Fortran/phgrreal.f90 b/Source/Fortran/phgrreal.f90 index 2cf9ca38483dae75df047a885be7aa53b4dbd976..64a7d308d9177a3b4282e08915c12e60e814b20c 100644 --- a/Source/Fortran/phgrreal.f90 +++ b/Source/Fortran/phgrreal.f90 @@ -13,8 +13,8 @@ CONTAINS ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN -! WSAVE = Working Array fuer Fouriertransformation -! Z = LEGENDREFUNKTIONSWERTE +! WSAVE = Working Array fuer Fouriertransformation +! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN @@ -23,7 +23,7 @@ CONTAINS IMPLICIT NONE -! Anzahl der Gitterpunkte auf jedem Breitenkreis +! Anzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT(MAXB/2) INTEGER K,MAXL,MAXB,MLEVEL,MNAUF INTEGER IND(MAXB) @@ -83,7 +83,7 @@ CONTAINS LLS=LL LLPS=LLP IF (2*I+1 .LT. MLAT(K)) THEN -! Innerste Schleife aufgespalten um if-Abfrage zu sparen +! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J=I,MNAUF,2 SCR=SCR+Z(LLP,K)*CXMN(2*LL,L) SCI=SCI+Z(LLP,K)*CXMN(2*LL+1,L) @@ -123,7 +123,7 @@ CONTAINS !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt -!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph +!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF @@ -167,7 +167,7 @@ CONTAINS SYM=.TRUE. DO 11 J=5,5 IF (ABS(ABS(Z(100,J))-ABS(Z(100,MAXB+1-J))) .GT. 1E-11) SYM=.FALSE. -! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) +! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE !! WRITE(*,*) 'Symmetrisch: ',SYM ELSE @@ -224,7 +224,7 @@ CONTAINS ACI=0.D0 LLS=LL LLPS=LLP -! Innerste Schleife aufgespalten um if-Abfrage zu sparen +! Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K=I,MNAUF,2 SCR=SCR+Z(LLP,J)*CXMN(2*LL,L) SCI=SCI+Z(LLP,J)*CXMN(2*LL+1,L) @@ -397,7 +397,7 @@ CONTAINS !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... -! Ansonsten ist die Routine analog zu PLGNDN +! Ansonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE diff --git a/Source/Fortran/rwgrib2.f90 b/Source/Fortran/rwgrib2.f90 index 240547ee7222f83796283c21886e056a856af6e1..b90d94b575c1fd94a2a095639baaee40c2951ffe 100644 --- a/Source/Fortran/rwgrib2.f90 +++ b/Source/Fortran/rwgrib2.f90 @@ -130,14 +130,14 @@ MLINDEX(1)=0 do i=1,LLEN if (MLEVELIST(i:i) .eq. '/') THEN - l=l+1 - MLINDEX(l)=i - end if - end do - MLINDEX(l+1)=LLEN+1 - do i=1,l - read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) - end do + l=l+1 + MLINDEX(l)=i + end if + end do + MLINDEX(l+1)=LLEN+1 + do i=1,l + read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) + end do end if DO k=1,l @@ -152,11 +152,11 @@ ! call grib_set(igrib,"shortName","etadot") ! call grib_set(igrib,"units","s**-1") ! end if - if (l .ne. mlevel) then + if (l .ne. mlevel) then zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,ILEVEL(k)),(/maxl*maxb/)) - else - zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) - end if + else + zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) + end if call grib_set(igrib,"values",zsec4) call grib_write(igrib,iunit)