Ignore:
Timestamp:
Mar 5, 2014, 2:19:12 PM (11 years ago)
Author:
lguez
Message:

Converted to free source form files in libf/phylmd which were still in
fixed source form. The conversion was done using the polish mode of
the NAG Fortran Compiler.

In addition to converting to free source form, the processing of the
files also:

-- indented the code (including comments);

-- set Fortran keywords to uppercase, and set all other identifiers
to lower case;

-- added qualifiers to end statements (for example "end subroutine
conflx", instead of "end");

-- changed the terminating statements of all DO loops so that each
loop ends with an ENDDO statement (instead of a labeled continue).

-- replaced #include by include.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/undefSTD.F90

    r1988 r1992  
    1 !
     1
    22! $Id$
    3 !
    4       SUBROUTINE undefSTD(itap, read_climoz)
    5       USE netcdf
    6       USE dimphy
    7       USE phys_state_var_mod ! Variables sauvegardees de la physique
    8       IMPLICIT none
    9       include "clesphys.h"
    10 c
    11 c====================================================================
    12 c
    13 c I. Musat : 09.2004
    14 c
    15 c Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef))
    16 c          ou la variable tlevSTD est bien definie (.NE.missing_val),
    17 c et
    18 c        * de la somme de tlevSTD => tsumSTD
    19 c
    20 c nout=1 !var. journaliere "day" moyenne sur tous les pas de temps
    21 c        ! de la physique
    22 c nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps
    23 c        ! de la physique
    24 c nout=3 !var. mensuelle "NMC" moyennee toutes les ecrit_hf
    25 c
    26 c
    27 c NB: mettre "inst(X)" dans le write_hist*NMC.h !
    28 c====================================================================
    29 c
    30 cym#include "dimensions.h"
    31 cym      integer jjmp1
    32 cym      parameter (jjmp1=jjm+1-1/jjm)
    33 cym#include "dimphy.h"
    34 c variables Input
    35 c
    36 c     INTEGER nlevSTD, klevSTD, itap
    37 c     PARAMETER(klevSTD=17)
    38       INTEGER itap
    39 c     REAL dtime
    40 c
    41 c variables locales
    42 c     INTEGER i, k, nout, n
    43 c     PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
    44       INTEGER i, k, n
    45 c     REAL freq_calNMC(nout)
    46       INTEGER read_climoz
    47 c
    48 c variables Output
    49 c     REAL tlevSTD(klon,klevSTD), tsumSTD(klon,klevSTD,nout)
    50 c     LOGICAL oknondef(klon,klevSTD,nout)
    51 c     REAL tnondef(klon,klevSTD,nout)
    52 c
    53       REAL missing_val
    54 c
    55       missing_val=nf90_fill_real
    56 c
    57       DO n=1, nout
    58 c
    59 c
    60 c calcul variables tous les freq_calNMC(n)/dtime pas de temps
    61 c de la physique
    62 c
    63        IF(MOD(itap,NINT(freq_calNMC(n)/dtime)).EQ.0) THEN
    64         DO k=1, nlevSTD
    65          DO i=1, klon
    66           IF(tlevSTD(i,k).EQ.missing_val) THEN
    67 c          IF(oknondef(i,k,n)) THEN         
    68             tnondef(i,k,n)=tnondef(i,k,n)+1.
    69 c          ENDIF !oknondef(i,k)
    70 c
    71           ELSE IF(tlevSTD(i,k).NE.missing_val) THEN
    72            tsumSTD(i,k,n)=tsumSTD(i,k,n)+tlevSTD(i,k)
    73            usumSTD(i,k,n)=usumSTD(i,k,n)+ulevSTD(i,k)
    74            vsumSTD(i,k,n)=vsumSTD(i,k,n)+vlevSTD(i,k)
    75            wsumSTD(i,k,n)=wsumSTD(i,k,n)+wlevSTD(i,k)
    76            phisumSTD(i,k,n)=phisumSTD(i,k,n)+philevSTD(i,k)
    77            qsumSTD(i,k,n)=qsumSTD(i,k,n)+qlevSTD(i,k)
    78            rhsumSTD(i,k,n)=rhsumSTD(i,k,n)+rhlevSTD(i,k)
    79            uvsumSTD(i,k,n)=uvsumSTD(i,k,n)+uvSTD(i,k)
    80            vqsumSTD(i,k,n)=vqsumSTD(i,k,n)+vqSTD(i,k)
    81            vTsumSTD(i,k,n)=vTsumSTD(i,k,n)+vTSTD(i,k)
    82            wqsumSTD(i,k,n)=wqsumSTD(i,k,n)+wqSTD(i,k)
    83            vphisumSTD(i,k,n)=vphisumSTD(i,k,n)+vphiSTD(i,k)
    84            wTsumSTD(i,k,n)=wTsumSTD(i,k,n)+wTSTD(i,k)
    85            u2sumSTD(i,k,n)=u2sumSTD(i,k,n)+u2STD(i,k)
    86            v2sumSTD(i,k,n)=v2sumSTD(i,k,n)+v2STD(i,k)
    87            T2sumSTD(i,k,n)=T2sumSTD(i,k,n)+T2STD(i,k)
    88            O3sumSTD(i,k,n)=O3sumSTD(i,k,n)+O3STD(i,k)
    89            IF (read_climoz==2)
    90      &          O3daysumSTD(i,k,n)=O3daysumSTD(i,k,n)+O3daySTD(i,k)
    913
    92           ENDIF
    93          ENDDO !i
    94         ENDDO !k
    95 c
    96        ENDIF !MOD(itap,NINT(freq_calNMC(n)/dtime)).EQ.0
    97 c
    98       ENDDO !n
    99 c
    100       RETURN
    101       END 
     4SUBROUTINE undefstd(itap, read_climoz)
     5  USE netcdf
     6  USE dimphy
     7  USE phys_state_var_mod ! Variables sauvegardees de la physique
     8  IMPLICIT NONE
     9  include "clesphys.h"
     10
     11  ! ====================================================================
     12
     13  ! I. Musat : 09.2004
     14
     15  ! Calcul * du nombre de pas de temps (FLOAT(ecrit_XXX)-tnondef))
     16  ! ou la variable tlevSTD est bien definie (.NE.missing_val),
     17  ! et
     18  ! * de la somme de tlevSTD => tsumSTD
     19
     20  ! nout=1 !var. journaliere "day" moyenne sur tous les pas de temps
     21  ! ! de la physique
     22  ! nout=2 !var. mensuelle "mth" moyennee sur tous les pas de temps
     23  ! ! de la physique
     24  ! nout=3 !var. mensuelle "NMC" moyennee toutes les ecrit_hf
     25
     26
     27  ! NB: mettre "inst(X)" dans le write_hist*NMC.h !
     28  ! ====================================================================
     29
     30  ! ym#include "dimensions.h"
     31  ! ym      integer jjmp1
     32  ! ym      parameter (jjmp1=jjm+1-1/jjm)
     33  ! ym#include "dimphy.h"
     34  ! variables Input
     35
     36  ! INTEGER nlevSTD, klevSTD, itap
     37  ! PARAMETER(klevSTD=17)
     38  INTEGER itap
     39  ! REAL dtime
     40
     41  ! variables locales
     42  ! INTEGER i, k, nout, n
     43  ! PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
     44  INTEGER i, k, n
     45  ! REAL freq_calNMC(nout)
     46  INTEGER read_climoz
     47
     48  ! variables Output
     49  ! REAL tlevSTD(klon,klevSTD), tsumSTD(klon,klevSTD,nout)
     50  ! LOGICAL oknondef(klon,klevSTD,nout)
     51  ! REAL tnondef(klon,klevSTD,nout)
     52
     53  REAL missing_val
     54
     55  missing_val = nf90_fill_real
     56
     57  DO n = 1, nout
     58
     59
     60    ! calcul variables tous les freq_calNMC(n)/dtime pas de temps
     61    ! de la physique
     62
     63    IF (mod(itap,nint(freq_calnmc(n)/dtime))==0) THEN
     64      DO k = 1, nlevstd
     65        DO i = 1, klon
     66          IF (tlevstd(i,k)==missing_val) THEN
     67            ! IF(oknondef(i,k,n)) THEN
     68            tnondef(i, k, n) = tnondef(i, k, n) + 1.
     69            ! ENDIF !oknondef(i,k)
     70
     71          ELSE IF (tlevstd(i,k)/=missing_val) THEN
     72            tsumstd(i, k, n) = tsumstd(i, k, n) + tlevstd(i, k)
     73            usumstd(i, k, n) = usumstd(i, k, n) + ulevstd(i, k)
     74            vsumstd(i, k, n) = vsumstd(i, k, n) + vlevstd(i, k)
     75            wsumstd(i, k, n) = wsumstd(i, k, n) + wlevstd(i, k)
     76            phisumstd(i, k, n) = phisumstd(i, k, n) + philevstd(i, k)
     77            qsumstd(i, k, n) = qsumstd(i, k, n) + qlevstd(i, k)
     78            rhsumstd(i, k, n) = rhsumstd(i, k, n) + rhlevstd(i, k)
     79            uvsumstd(i, k, n) = uvsumstd(i, k, n) + uvstd(i, k)
     80            vqsumstd(i, k, n) = vqsumstd(i, k, n) + vqstd(i, k)
     81            vtsumstd(i, k, n) = vtsumstd(i, k, n) + vtstd(i, k)
     82            wqsumstd(i, k, n) = wqsumstd(i, k, n) + wqstd(i, k)
     83            vphisumstd(i, k, n) = vphisumstd(i, k, n) + vphistd(i, k)
     84            wtsumstd(i, k, n) = wtsumstd(i, k, n) + wtstd(i, k)
     85            u2sumstd(i, k, n) = u2sumstd(i, k, n) + u2std(i, k)
     86            v2sumstd(i, k, n) = v2sumstd(i, k, n) + v2std(i, k)
     87            t2sumstd(i, k, n) = t2sumstd(i, k, n) + t2std(i, k)
     88            o3sumstd(i, k, n) = o3sumstd(i, k, n) + o3std(i, k)
     89            IF (read_climoz==2) o3daysumstd(i, k, n) = o3daysumstd(i, k, n) + &
     90              o3daystd(i, k)
     91
     92          END IF
     93        END DO !i
     94      END DO !k
     95
     96    END IF !MOD(itap,NINT(freq_calNMC(n)/dtime)).EQ.0
     97
     98  END DO !n
     99
     100  RETURN
     101END SUBROUTINE undefstd
Note: See TracChangeset for help on using the changeset viewer.