Ignore:
Timestamp:
Dec 14, 2015, 11:43:09 AM (9 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2298:2396 into testing branch

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/read_pstoke.F90

    r1999 r2408  
    1919  USE netcdf
    2020  USE dimphy
    21   USE control_mod
    2221  USE indice_sol_mod
     22  USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev
    2323
    2424  IMPLICIT NONE
    2525
    2626  include "netcdf.inc"
    27   include "dimensions.h"
    28   include "paramet.h"
    29   include "comconst.h"
    30   include "comgeom.h"
    31   include "temps.h"
    32   include "ener.h"
    33   include "logic.h"
    34   include "description.h"
    35   include "serre.h"
    36   ! ccc#include "dimphy.h"
    3727
    3828  INTEGER klono, klevo, imo, jmo
    39   PARAMETER (imo=iim/2, jmo=(jjm+1)/2)
    40   PARAMETER (klono=(jmo-1)*imo+2, klevo=llm)
    41   REAL phisfi(klono)
    42   REAL phisfi2(imo, jmo+1), airefi2(imo, jmo+1)
    43 
    44   REAL mfu(klono, klevo), mfd(klono, klevo)
    45   REAL en_u(klono, klevo), de_u(klono, klevo)
    46   REAL en_d(klono, klevo), de_d(klono, klevo)
    47   REAL coefh(klono, klevo)
    48   REAL fm_therm(klono, klevo), en_therm(klono, klevo)
    49 
    50   REAL mfu2(imo, jmo+1, klevo), mfd2(imo, jmo+1, klevo)
    51   REAL en_u2(imo, jmo+1, klevo), de_u2(imo, jmo+1, klevo)
    52   REAL en_d2(imo, jmo+1, klevo), de_d2(imo, jmo+1, klevo)
    53   REAL coefh2(imo, jmo+1, klevo)
    54   REAL fm_therm2(imo, jmo+1, klevo)
    55   REAL en_therm2(imo, jmo+1, klevo)
    56 
    57   REAL pl(klevo)
     29!  PARAMETER (imo=iim/2, jmo=(jjm+1)/2)
     30!  PARAMETER (klono=(jmo-1)*imo+2, klevo=llm)
     31  REAL :: phisfi(((nbp_lat/2)-1)*(nbp_lon/2)+2) !phisfi(klono)
     32  REAL,ALLOCATABLE :: phisfi2(:,:) !phisfi2(imo,jmo+1)
     33  REAL,ALLOCATABLE :: airefi2(:,:) !airefi2(imo, jmo+1)
     34
     35  REAL :: mfu(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) ! mfu(klono, klevo)
     36  REAL :: mfd(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) ! mfd(klono, klevo)
     37  REAL :: en_u(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !en_u(klono, klevo)
     38  REAL :: de_u(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !de_u(klono, klevo)
     39  REAL :: en_d(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !en_d(klono, klevo)
     40  REAL :: de_d(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !de_d(klono, klevo)
     41  REAL :: coefh(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !coefh(klono, klevo)
     42  REAL :: fm_therm(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !fm_therm(klono, klevo)
     43  REAL :: en_therm(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !en_therm(klono, klevo)
     44
     45  REAL,ALLOCATABLE :: mfu2(:,:,:) !mfu2(imo, jmo+1, klevo)
     46  REAL,ALLOCATABLE :: mfd2(:,:,:) !mfd2(imo, jmo+1, klevo)
     47  REAL,ALLOCATABLE :: en_u2(:,:,:) !en_u2(imo, jmo+1, klevo)
     48  REAL,ALLOCATABLE :: de_u2(:,:,:) !de_u2(imo, jmo+1, klevo)
     49  REAL,ALLOCATABLE :: en_d2(:,:,:) !en_d2(imo, jmo+1, klevo)
     50  REAL,ALLOCATABLE :: de_d2(:,:,:) !de_d2(imo, jmo+1, klevo)
     51  REAL,ALLOCATABLE :: coefh2(:,:,:) !coefh2(imo, jmo+1, klevo)
     52  REAL,ALLOCATABLE :: fm_therm2(:,:,:) !fm_therm2(imo, jmo+1, klevo)
     53  REAL,ALLOCATABLE :: en_therm2(:,:,:) !en_therm2(imo, jmo+1, klevo)
     54
     55  REAL,ALLOCATABLE :: pl(:) !pl(klevo)
    5856  INTEGER irec
    5957  INTEGER xid, yid, zid, tid
     
    6159  INTEGER ncrec, ncklono, ncklevo, ncim, ncjm
    6260
    63   REAL airefi(klono)
     61  REAL :: airefi(((nbp_lat/2)-1)*(nbp_lon/2)+2) !airefi(klono)
    6462  CHARACTER *20 namedim
    6563
     
    6967
    7068
    71   REAL frac_impa(klono, klevo), frac_nucl(klono, klevo)
    72   REAL frac_impa2(imo, jmo+1, klevo), frac_nucl2(imo, jmo+1, klevo)
    73   REAL pyu1(klono), pyv1(klono)
    74   REAL pyu12(imo, jmo+1), pyv12(imo, jmo+1)
    75   REAL ftsol(klono, nbsrf)
    76   REAL psrf(klono, nbsrf)
    77   REAL ftsol1(klono), ftsol2(klono), ftsol3(klono), ftsol4(klono)
    78   REAL psrf1(klono), psrf2(klono), psrf3(klono), psrf4(klono)
    79   REAL ftsol12(imo, jmo+1), ftsol22(imo, jmo+1), ftsol32(imo, jmo+1), &
    80     ftsol42(imo, jmo+1)
    81   REAL psrf12(imo, jmo+1), psrf22(imo, jmo+1), psrf32(imo, jmo+1), &
    82     psrf42(imo, jmo+1)
    83   REAL t(klono, klevo)
    84   REAL t2(imo, jmo+1, klevo)
    85   INTEGER ncidp
    86   SAVE ncidp
    87   INTEGER varidt
    88   INTEGER varidmfu, varidmfd, varidps, varidenu, variddeu
    89   INTEGER varidend, varidded, varidch, varidfi, varidfn
    90   INTEGER varidfmth, varidenth
    91   INTEGER varidyu1, varidyv1, varidpl, varidai, varididvt
    92   INTEGER varidfts1, varidfts2, varidfts3, varidfts4
    93   INTEGER varidpsr1, varidpsr2, varidpsr3, varidpsr4
    94   SAVE varidmfu, varidmfd, varidps, varidenu, variddeu
    95   SAVE varidend, varidded, varidch, varidfi, varidfn
    96   SAVE varidfmth, varidenth
    97   SAVE varidyu1, varidyv1, varidpl, varidai, varididvt
    98   SAVE varidfts1, varidfts2, varidfts3, varidfts4
    99   SAVE varidpsr1, varidpsr2, varidpsr3, varidpsr4
    100   SAVE varidt
     69  REAL :: frac_impa(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !frac_impa(klono, klevo)
     70  REAL :: frac_nucl(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !frac_nucl(klono, klevo)
     71  REAL,ALLOCATABLE :: frac_impa2(:,:,:) !frac_impa2(imo, jmo+1, klevo)
     72  REAL,ALLOCATABLE :: frac_nucl2(:,:,:) !frac_nucl2(imo, jmo+1, klevo)
     73  REAL :: pyu1(((nbp_lat/2)-1)*(nbp_lon/2)+2) !pyu1(klono)
     74  REAL :: pyv1(((nbp_lat/2)-1)*(nbp_lon/2)+2) !pyv1(klono)
     75  REAL,ALLOCATABLE :: pyu12(:,:), pyv12(:,:) !pyu12(imo, jmo+1), pyv12(imo, jmo+1)
     76  REAL :: ftsol(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !ftsol(klono, nbsrf)
     77  REAL :: psrf(((nbp_lat/2)-1)*(nbp_lon/2)+2,nbp_lev) !psrf(klono, nbsrf)
     78  REAL,ALLOCATABLE :: ftsol1(:),ftsol2(:) !ftsol1(klono), ftsol2(klono)
     79  REAL,ALLOCATABLE :: ftsol3(:),ftsol4(:) !ftsol3(klono), ftsol4(klono)
     80  REAL,ALLOCATABLE :: psrf1(:), psrf2(:) !psrf1(klono), psrf2(klono)
     81  REAL,ALLOCATABLE :: psrf3(:), psrf4(:) !psrf3(klono), psrf4(klono)
     82  REAL,ALLOCATABLE :: ftsol12(:,:) !ftsol12(imo, jmo+1)
     83  REAL,ALLOCATABLE :: ftsol22(:,:) !ftsol22(imo, jmo+1)
     84  REAL,ALLOCATABLE :: ftsol32(:,:) !ftsol32(imo, jmo+1)
     85  REAL,ALLOCATABLE :: ftsol42(:,:) !ftsol42(imo, jmo+1)
     86  REAL,ALLOCATABLE :: psrf12(:,:) !psrf12(imo, jmo+1)
     87  REAL,ALLOCATABLE :: psrf22(:,:) !psrf22(imo, jmo+1)
     88  REAL,ALLOCATABLE :: psrf32(:,:) !psrf32(imo, jmo+1)
     89  REAL,ALLOCATABLE :: psrf42(:,:) !psrf42(imo, jmo+1)
     90  REAL :: t(((nbp_lon/2)-1)*(nbp_lat/2)+2,nbp_lev) !t(klono, klevo)
     91  REAL,ALLOCATABLE :: t2(:,:,:) !t2(imo, jmo+1, klevo)
     92  INTEGER,SAVE :: ncidp
     93  INTEGER,SAVE :: varidt
     94  INTEGER,SAVE :: varidmfu, varidmfd, varidps, varidenu, variddeu
     95  INTEGER,SAVE :: varidend, varidded, varidch, varidfi, varidfn
     96  INTEGER,SAVE :: varidfmth, varidenth
     97  INTEGER,SAVE :: varidyu1, varidyv1, varidpl, varidai, varididvt
     98  INTEGER,SAVE :: varidfts1, varidfts2, varidfts3, varidfts4
     99  INTEGER,SAVE :: varidpsr1, varidpsr2, varidpsr3, varidpsr4
    101100
    102101  INTEGER l, i
    103102  INTEGER start(4), count(4), status
    104103  REAL rcode
    105   LOGICAL first
    106   SAVE first
    107   DATA first/.TRUE./
    108 
    109 
     104  LOGICAL,SAVE :: first=.TRUE.
     105
     106  ! Allocate arrays
     107  imo=nbp_lon/2
     108  jmo=nbp_lat/2
     109  klono=(jmo-1)*imo+2
     110  klevo=nbp_lev
     111 
     112  ALLOCATE(phisfi2(imo,jmo+1))
     113  ALLOCATE(airefi2(imo, jmo+1))
     114  ALLOCATE(mfu2(imo, jmo+1, klevo))
     115  ALLOCATE(mfd2(imo, jmo+1, klevo))
     116  ALLOCATE(en_u2(imo, jmo+1, klevo))
     117  ALLOCATE(de_u2(imo, jmo+1, klevo))
     118  ALLOCATE(en_d2(imo, jmo+1, klevo))
     119  ALLOCATE(de_d2(imo, jmo+1, klevo))
     120  ALLOCATE(coefh2(imo, jmo+1, klevo))
     121  ALLOCATE(fm_therm2(imo, jmo+1, klevo))
     122  ALLOCATE(en_therm2(imo, jmo+1, klevo))
     123  ALLOCATE(pl(klevo))
     124  ALLOCATE(frac_impa2(imo, jmo+1, klevo))
     125  ALLOCATE(frac_nucl2(imo, jmo+1, klevo))
     126  ALLOCATE(pyu12(imo, jmo+1), pyv12(imo, jmo+1))
     127  ALLOCATE(ftsol1(klono), ftsol2(klono))
     128  ALLOCATE(ftsol3(klono), ftsol4(klono))
     129  ALLOCATE(psrf1(klono), psrf2(klono))
     130  ALLOCATE(psrf3(klono), psrf4(klono))
     131  ALLOCATE(ftsol12(imo, jmo+1))
     132  ALLOCATE(ftsol22(imo, jmo+1))
     133  ALLOCATE(ftsol32(imo, jmo+1))
     134  ALLOCATE(ftsol42(imo, jmo+1))
     135  ALLOCATE(psrf12(imo, jmo+1))
     136  ALLOCATE(psrf22(imo, jmo+1))
     137  ALLOCATE(psrf32(imo, jmo+1))
     138  ALLOCATE(psrf42(imo, jmo+1))
     139  ALLOCATE(t2(imo, jmo+1, klevo))
    110140
    111141  ! ---------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.