Changeset 1669 for LMDZ5/branches/testing/libf/dyn3d/dynetat0.F
- Timestamp:
- Oct 16, 2012, 2:41:50 PM (12 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1629-1633,1635,1637-1659,1666-1668
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/dyn3d/dynetat0.F
r1665 r1669 6 6 7 7 USE infotrac 8 use netcdf, only: nf90_get_var 9 10 use control_mod, only : planet_type 11 8 12 IMPLICIT NONE 9 13 … … 28 32 #include "comconst.h" 29 33 #include "comvert.h" 30 #include "comgeom .h"34 #include "comgeom2.h" 31 35 #include "ener.h" 32 36 #include "netcdf.inc" … … 40 44 41 45 CHARACTER*(*) fichnom 42 REAL vcov(i p1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm)43 REAL q(i p1jmp1,llm,nqtot),masse(ip1jmp1,llm)44 REAL ps(i p1jmp1),phis(ip1jmp1)46 REAL vcov(iip1, jjm,llm),ucov(iip1, jjp1,llm),teta(iip1, jjp1,llm) 47 REAL q(iip1,jjp1,llm,nqtot),masse(iip1, jjp1,llm) 48 REAL ps(iip1, jjp1),phis(iip1, jjp1) 45 49 46 50 REAL time … … 52 56 REAL tab_cntrl(length) ! tableau des parametres du run 53 57 INTEGER ierr, nid, nvarid 58 59 INTEGER idecal 54 60 55 61 c----------------------------------------------------------------------- … … 70 76 CALL abort 71 77 ENDIF 72 #ifdef NC_DOUBLE 73 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl) 74 #else 75 ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl) 76 #endif 78 ierr = nf90_get_var(nid, nvarid, tab_cntrl) 77 79 IF (ierr .NE. NF_NOERR) THEN 78 80 write(lunout,*)"dynetat0: Lecture echoue pour <controle>" 79 81 CALL abort 80 82 ENDIF 83 84 !!! AS: idecal is a hack to be able to read planeto starts... 85 !!! .... while keeping everything OK for LMDZ EARTH 86 if (planet_type.eq."generic") then 87 print*,'NOTE NOTE NOTE : Planeto-like start files' 88 idecal = 4 89 annee_ref = 2000 90 else 91 print*,'NOTE NOTE NOTE : Earth-like start files' 92 idecal = 5 93 annee_ref = tab_cntrl(5) 94 endif 95 81 96 82 97 im = tab_cntrl(1) … … 84 99 lllm = tab_cntrl(3) 85 100 day_ref = tab_cntrl(4) 86 annee_ref = tab_cntrl(5) 87 rad = tab_cntrl(6) 88 omeg = tab_cntrl(7) 89 g = tab_cntrl(8) 90 cpp = tab_cntrl(9) 91 kappa = tab_cntrl(10) 92 daysec = tab_cntrl(11) 93 dtvr = tab_cntrl(12) 94 etot0 = tab_cntrl(13) 95 ptot0 = tab_cntrl(14) 96 ztot0 = tab_cntrl(15) 97 stot0 = tab_cntrl(16) 98 ang0 = tab_cntrl(17) 99 pa = tab_cntrl(18) 100 preff = tab_cntrl(19) 101 c 102 clon = tab_cntrl(20) 103 clat = tab_cntrl(21) 104 grossismx = tab_cntrl(22) 105 grossismy = tab_cntrl(23) 106 c 107 IF ( tab_cntrl(24).EQ.1. ) THEN 101 rad = tab_cntrl(idecal+1) 102 omeg = tab_cntrl(idecal+2) 103 g = tab_cntrl(idecal+3) 104 cpp = tab_cntrl(idecal+4) 105 kappa = tab_cntrl(idecal+5) 106 daysec = tab_cntrl(idecal+6) 107 dtvr = tab_cntrl(idecal+7) 108 etot0 = tab_cntrl(idecal+8) 109 ptot0 = tab_cntrl(idecal+9) 110 ztot0 = tab_cntrl(idecal+10) 111 stot0 = tab_cntrl(idecal+11) 112 ang0 = tab_cntrl(idecal+12) 113 pa = tab_cntrl(idecal+13) 114 preff = tab_cntrl(idecal+14) 115 c 116 clon = tab_cntrl(idecal+15) 117 clat = tab_cntrl(idecal+16) 118 grossismx = tab_cntrl(idecal+17) 119 grossismy = tab_cntrl(idecal+18) 120 c 121 IF ( tab_cntrl(idecal+19).EQ.1. ) THEN 108 122 fxyhypb = . TRUE . 109 123 c dzoomx = tab_cntrl(25) … … 114 128 fxyhypb = . FALSE . 115 129 ysinus = . FALSE . 116 IF( tab_cntrl( 27).EQ.1. ) ysinus = . TRUE.130 IF( tab_cntrl(idecal+22).EQ.1. ) ysinus = . TRUE. 117 131 ENDIF 118 132 … … 142 156 CALL abort 143 157 ENDIF 144 #ifdef NC_DOUBLE 145 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlonu) 146 #else 147 ierr = NF_GET_VAR_REAL(nid, nvarid, rlonu) 148 #endif 158 ierr = nf90_get_var(nid, nvarid, rlonu) 149 159 IF (ierr .NE. NF_NOERR) THEN 150 160 write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>" … … 157 167 CALL abort 158 168 ENDIF 159 #ifdef NC_DOUBLE 160 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlatu) 161 #else 162 ierr = NF_GET_VAR_REAL(nid, nvarid, rlatu) 163 #endif 169 ierr = nf90_get_var(nid, nvarid, rlatu) 164 170 IF (ierr .NE. NF_NOERR) THEN 165 171 write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>" … … 172 178 CALL abort 173 179 ENDIF 174 #ifdef NC_DOUBLE 175 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlonv) 176 #else 177 ierr = NF_GET_VAR_REAL(nid, nvarid, rlonv) 178 #endif 180 ierr = nf90_get_var(nid, nvarid, rlonv) 179 181 IF (ierr .NE. NF_NOERR) THEN 180 182 write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>" … … 187 189 CALL abort 188 190 ENDIF 189 #ifdef NC_DOUBLE 190 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlatv) 191 #else 192 ierr = NF_GET_VAR_REAL(nid, nvarid, rlatv) 193 #endif 191 ierr = nf90_get_var(nid, nvarid, rlatv) 194 192 IF (ierr .NE. NF_NOERR) THEN 195 193 write(lunout,*)"dynetat0: Lecture echouee pour rlatv" … … 202 200 CALL abort 203 201 ENDIF 204 #ifdef NC_DOUBLE 205 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, cu) 206 #else 207 ierr = NF_GET_VAR_REAL(nid, nvarid, cu) 208 #endif 202 ierr = nf90_get_var(nid, nvarid, cu) 209 203 IF (ierr .NE. NF_NOERR) THEN 210 204 write(lunout,*)"dynetat0: Lecture echouee pour <cu>" … … 217 211 CALL abort 218 212 ENDIF 219 #ifdef NC_DOUBLE 220 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, cv) 221 #else 222 ierr = NF_GET_VAR_REAL(nid, nvarid, cv) 223 #endif 213 ierr = nf90_get_var(nid, nvarid, cv) 224 214 IF (ierr .NE. NF_NOERR) THEN 225 215 write(lunout,*)"dynetat0: Lecture echouee pour <cv>" … … 232 222 CALL abort 233 223 ENDIF 234 #ifdef NC_DOUBLE 235 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, aire) 236 #else 237 ierr = NF_GET_VAR_REAL(nid, nvarid, aire) 238 #endif 224 ierr = nf90_get_var(nid, nvarid, aire) 239 225 IF (ierr .NE. NF_NOERR) THEN 240 226 write(lunout,*)"dynetat0: Lecture echouee pour <aire>" … … 247 233 CALL abort 248 234 ENDIF 249 #ifdef NC_DOUBLE 250 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, phis) 251 #else 252 ierr = NF_GET_VAR_REAL(nid, nvarid, phis) 253 #endif 235 ierr = nf90_get_var(nid, nvarid, phis) 254 236 IF (ierr .NE. NF_NOERR) THEN 255 237 write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>" … … 260 242 IF (ierr .NE. NF_NOERR) THEN 261 243 write(lunout,*)"dynetat0: Le champ <temps> est absent" 262 CALL abort 263 ENDIF 264 #ifdef NC_DOUBLE 265 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, time) 266 #else 267 ierr = NF_GET_VAR_REAL(nid, nvarid, time) 268 #endif 244 write(lunout,*)"dynetat0: J essaie <Time>" 245 ierr = NF_INQ_VARID (nid, "Time", nvarid) 246 IF (ierr .NE. NF_NOERR) THEN 247 write(lunout,*)"dynetat0: Le champ <Time> est absent" 248 CALL abort 249 ENDIF 250 ENDIF 251 ierr = nf90_get_var(nid, nvarid, time) 269 252 IF (ierr .NE. NF_NOERR) THEN 270 253 write(lunout,*)"dynetat0: Lecture echouee <temps>" … … 277 260 CALL abort 278 261 ENDIF 279 #ifdef NC_DOUBLE 280 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, ucov) 281 #else 282 ierr = NF_GET_VAR_REAL(nid, nvarid, ucov) 283 #endif 262 ierr = nf90_get_var(nid, nvarid, ucov) 284 263 IF (ierr .NE. NF_NOERR) THEN 285 264 write(lunout,*)"dynetat0: Lecture echouee pour <ucov>" … … 292 271 CALL abort 293 272 ENDIF 294 #ifdef NC_DOUBLE 295 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, vcov) 296 #else 297 ierr = NF_GET_VAR_REAL(nid, nvarid, vcov) 298 #endif 273 ierr = nf90_get_var(nid, nvarid, vcov) 299 274 IF (ierr .NE. NF_NOERR) THEN 300 275 write(lunout,*)"dynetat0: Lecture echouee pour <vcov>" … … 307 282 CALL abort 308 283 ENDIF 309 #ifdef NC_DOUBLE 310 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, teta) 311 #else 312 ierr = NF_GET_VAR_REAL(nid, nvarid, teta) 313 #endif 284 ierr = nf90_get_var(nid, nvarid, teta) 314 285 IF (ierr .NE. NF_NOERR) THEN 315 286 write(lunout,*)"dynetat0: Lecture echouee pour <teta>" … … 325 296 & "> est absent" 326 297 write(lunout,*)" Il est donc initialise a zero" 327 q(:,:, iq)=0.298 q(:,:,:,iq)=0. 328 299 ELSE 329 #ifdef NC_DOUBLE 330 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, q(1,1,iq)) 331 #else 332 ierr = NF_GET_VAR_REAL(nid, nvarid, q(1,1,iq)) 333 #endif 300 ierr = NF90_GET_VAR(nid, nvarid, q(:,:,:,iq)) 334 301 IF (ierr .NE. NF_NOERR) THEN 335 302 write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq) … … 345 312 CALL abort 346 313 ENDIF 347 #ifdef NC_DOUBLE 348 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, masse) 349 #else 350 ierr = NF_GET_VAR_REAL(nid, nvarid, masse) 351 #endif 314 ierr = nf90_get_var(nid, nvarid, masse) 352 315 IF (ierr .NE. NF_NOERR) THEN 353 316 write(lunout,*)"dynetat0: Lecture echouee pour <masse>" … … 360 323 CALL abort 361 324 ENDIF 362 #ifdef NC_DOUBLE 363 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, ps) 364 #else 365 ierr = NF_GET_VAR_REAL(nid, nvarid, ps) 366 #endif 325 ierr = nf90_get_var(nid, nvarid, ps) 367 326 IF (ierr .NE. NF_NOERR) THEN 368 327 write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
Note: See TracChangeset
for help on using the changeset viewer.