Changeset 2408 for LMDZ5/branches/testing/libf/phylmd/read_pstoke.F90
- Timestamp:
- Dec 14, 2015, 11:43:09 AM (9 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2293-2295,2297,2299-2302,2305-2313,2315,2317-2380,2382-2396
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/read_pstoke.F90
r1999 r2408 19 19 USE netcdf 20 20 USE dimphy 21 USE control_mod22 21 USE indice_sol_mod 22 USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, nbp_lev 23 23 24 24 IMPLICIT NONE 25 25 26 26 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"37 27 38 28 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) 58 56 INTEGER irec 59 57 INTEGER xid, yid, zid, tid … … 61 59 INTEGER ncrec, ncklono, ncklevo, ncim, ncjm 62 60 63 REAL airefi(klono)61 REAL :: airefi(((nbp_lat/2)-1)*(nbp_lon/2)+2) !airefi(klono) 64 62 CHARACTER *20 namedim 65 63 … … 69 67 70 68 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 101 100 102 101 INTEGER l, i 103 102 INTEGER start(4), count(4), status 104 103 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)) 110 140 111 141 ! ---------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.