Changeset 1222 for LMDZ4/branches/LMDZ4-dev/libf/dyn3d
- Timestamp:
- Aug 7, 2009, 1:48:33 PM (16 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/dyn3d
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/abort_gcm.F
r1200 r1222 8 8 #ifdef CPP_IOIPSL 9 9 USE IOIPSL 10 #else 11 ! if not using IOIPSL, we still need to use (a local version of) getin_dump 12 USE ioipsl_getincom 10 13 #endif 11 14 #include "iniprint.h" -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F
r1114 r1222 76 76 ENDDO 77 77 ENDDO 78 79 CALL qminimum( q, 2, finmasse ) 78 79 if (planet_type.eq."earth") then 80 ! Earth-specific treatment of first 2 tracers (water) 81 CALL qminimum( q, 2, finmasse ) 82 endif 80 83 81 84 CALL SCOPY ( ip1jmp1*llm, masse, 1, finmasse, 1 ) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F
r1201 r1222 177 177 c -------------------- 178 178 c 179 180 IF (ngridmx.NE.2+(jjm-1)*iim) THEN 179 c 180 IF ( firstcal ) THEN 181 debut = .TRUE. 182 IF (ngridmx.NE.2+(jjm-1)*iim) THEN 181 183 PRINT*,'STOP dans calfis' 182 184 PRINT*,'La dimension ngridmx doit etre egale a 2 + (jjm-1)*iim' … … 184 186 PRINT*,ngridmx,jjm,iim 185 187 STOP 186 ENDIF 187 188 c----------------------------------------------------------------------- 189 c latitude, longitude et aires des mailles pour la physique: 190 c ---------------------------------------------------------- 191 192 c 193 IF ( firstcal ) THEN 194 debut = .TRUE. 188 ENDIF 195 189 ELSE 196 197 ENDIF 190 debut = .FALSE. 191 ENDIF ! of IF (firstcal) 198 192 199 193 c … … 290 284 291 285 c convergence dynamique pour les traceurs "EAU" 292 293 DO iq=1,2 286 ! Earth-specific treatment of first 2 tracers (water) 287 if (planet_type=="earth") then 288 DO iq=1,2 294 289 DO l=1,llm 295 290 pcvgq(1,l,iq)= pdq(1,1,l,iq) / pmasse(1,1,l) … … 303 298 pcvgq(ig0,l,iq)= pdq(1,jjp1,l,iq) / pmasse(1,jjp1,l) 304 299 ENDDO 305 ENDDO 300 ENDDO 301 endif ! of if (planet_type=="earth") 306 302 307 303 … … 428 424 ENDDO 429 425 c 426 if (planet_type=="earth") then 427 #ifdef CPP_EARTH 430 428 cIM calcul PV a teta=350, 380, 405K 431 429 CALL PVtheta(ngridmx,llm,pucov,pvcov,pteta, 432 430 $ ztfi,zplay,zplev, 433 431 $ ntetaSTD,rtetaSTD,PVteta) 432 #endif 433 endif 434 434 c 435 435 c On change de grille, dynamique vers physiq, pour le flux de masse verticale … … 441 441 442 442 443 if (planet_type=="earth") then 444 #ifdef CPP_EARTH 443 445 CALL physiq (ngridmx, 444 446 . llm, … … 467 469 . pducov, 468 470 . PVteta) 471 #endif 472 endif !of if (planet_type=="earth") 469 473 470 474 500 CONTINUE … … 502 506 c 62. humidite specifique 503 507 c --------------------- 504 505 DO iq=1,nqtot506 DO l=1,llm507 DO i=1,iip1508 pdqfi(i,1,l,iq) = zdqfi(1,l,iq)509 pdqfi(i,jjp1,l,iq) = zdqfi(ngridmx,l,iq)510 ENDDO511 DO j=2,jjm512 ig0=1+(j-2)*iim513 DO i=1,iim514 pdqfi(i,j,l,iq) = zdqfi(ig0+i,l,iq)515 ENDDO516 pdqfi(iip1,j,l,iq) = pdqfi(1,j,l,iq)517 ENDDO518 ENDDO519 ENDDO508 ! Ehouarn: removed this useless bit: was overwritten at step 63 anyways 509 ! DO iq=1,nqtot 510 ! DO l=1,llm 511 ! DO i=1,iip1 512 ! pdqfi(i,1,l,iq) = zdqfi(1,l,iq) 513 ! pdqfi(i,jjp1,l,iq) = zdqfi(ngridmx,l,iq) 514 ! ENDDO 515 ! DO j=2,jjm 516 ! ig0=1+(j-2)*iim 517 ! DO i=1,iim 518 ! pdqfi(i,j,l,iq) = zdqfi(ig0+i,l,iq) 519 ! ENDDO 520 ! pdqfi(iip1,j,l,iq) = pdqfi(1,j,l,iq) 521 ! ENDDO 522 ! ENDDO 523 ! ENDDO 520 524 521 525 c 63. traceurs 522 526 c ------------ 523 527 C initialisation des tendances 524 pdqfi =0.528 pdqfi(:,:,:,:)=0. 525 529 C 526 530 DO iq=1,nqtot -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F
r1220 r1222 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 PROGRAM create_etat0_limit 5 #ifdef CPP_EARTH 6 ! This prog. is designed to work for Earth 5 7 USE dimphy 6 8 USE comgeomphy … … 67 69 1 FORMAT(//) 68 70 71 #endif 72 ! of #ifdef CPP_EARTH 69 73 STOP 70 74 END -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F
r1114 r1222 1 ! 2 ! $Id$ 3 ! 1 4 SUBROUTINE fluxstokenc(pbaru,pbarv,masse,teta,phi,phis, 2 5 . time_step,itau ) 6 #ifdef CPP_EARTH 7 ! This routine is designed to work for Earth and with ioipsl 3 8 4 9 USE IOIPSL … … 18 23 #include "tracstoke.h" 19 24 #include "temps.h" 25 #include "iniprint.h" 20 26 21 27 REAL time_step,t_wrt, t_ops … … 159 165 ENDIF ! if iadvtr.EQ.istdyn 160 166 167 #else 168 write(lunout,*) 169 & 'fluxstokenc: Needs Earth physics (and ioipsl) to function' 170 #endif 171 ! of #ifdef CPP_EARTH 161 172 RETURN 162 173 END -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F
r1220 r1222 307 307 . ' restart ne correspondent pas a celles lues dans ' 308 308 write(lunout,*)' gcm.def' 309 write(lunout,*)' annee_ref=',annee_ref," anneeref=",anneeref 310 write(lunout,*)' day_ref=',day_ref," dayref=",dayref 309 311 if (raz_date .ne. 1) then 310 312 write(lunout,*) … … 324 326 endif 325 327 328 #ifdef CPP_IOIPSL 326 329 mois = 1 327 330 heure = 0. … … 330 333 jD_ref = int(jD_ref) 331 334 332 #ifdef CPP_IOIPSL333 335 call ioconf_startdate(annee_ref,1,day_ref, 0.) 334 #endif335 336 336 337 write(lunout,*)'DEBUG' … … 340 341 write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure' 341 342 write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure 343 #else 344 ! Ehouarn: we still need to define JD_ref and JH_ref 345 ! and since we don't know how many days there are in a year 346 ! we set JD_ref to 0 (this should be improved ...) 347 jD_ref=0 348 jH_ref=0 349 #endif 342 350 343 351 c nombre d'etats dans les fichiers demarrage et histoire … … 413 421 WRITE(lunout,300)day_ini,day_end 414 422 300 FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//) 423 424 #ifdef CPP_IOIPSL 415 425 call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure) 416 426 write (lunout,301)jour, mois, an … … 419 429 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) 420 430 302 FORMAT('1'/,15x,' au ', i2,'/',i2,'/',i4) 431 #endif 421 432 422 433 if (planet_type.eq."earth") then 423 #ifdef CPP_EARTH 424 CALL dynredem0("restart.nc", day_end, phis) 425 #endif 434 CALL dynredem0("restart.nc", day_end, phis) 426 435 endif 427 436 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F
r1140 r1222 83 83 c 84 84 time_0=0. 85 day_ref=0 86 annee_ref=0 85 87 86 88 im = iim -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F
r1114 r1222 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 SUBROUTINE integrd … … 32 32 #include "temps.h" 33 33 #include "serre.h" 34 #include "control.h" 34 35 35 36 c Arguments: … … 183 184 c$$$ ENDIF 184 185 185 DO l = 1, llm 186 DO ij = 1, ip1jmp1 187 deltap(ij,l) = p(ij,l) - p(ij,l+1) 186 if (planet_type.eq."earth") then 187 ! Earth-specific treatment of first 2 tracers (water) 188 DO l = 1, llm 189 DO ij = 1, ip1jmp1 190 deltap(ij,l) = p(ij,l) - p(ij,l+1) 191 ENDDO 188 192 ENDDO 189 ENDDO 190 191 CALL qminimum( q, nq, deltap ) 193 194 CALL qminimum( q, nq, deltap ) 195 endif ! of if (planet_type.eq."earth") 196 192 197 c 193 198 c ..... Calcul de la valeur moyenne, unique aux poles pour q ..... -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F
r1220 r1222 597 597 598 598 if (planet_type.eq."earth") then 599 #ifdef CPP_EARTH600 599 ! Write an Earth-format restart file 601 600 CALL dynredem1("restart.nc",0.0, 602 601 & vcov,ucov,teta,q,masse,ps) 603 #endif604 602 endif ! of if (planet_type.eq."earth") 605 603 … … 704 702 IF(itau.EQ.itaufin) THEN 705 703 if (planet_type.eq."earth") then 706 #ifdef CPP_EARTH707 704 CALL dynredem1("restart.nc",0.0, 708 705 & vcov,ucov,teta,q,masse,ps) 709 #endif710 706 endif ! of if (planet_type.eq."earth") 711 707 ENDIF ! of IF(itau.EQ.itaufin) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/limit_netcdf.F
r997 r1222 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 4 C 5 5 C 6 6 SUBROUTINE limit_netcdf(interbar, extrap, oldice, masque) 7 #ifdef CPP_EARTH 8 ! This routine is designed to work for Earth 7 9 USE dimphy 8 10 use phys_state_var_mod , ONLY : pctsrf … … 33 35 cy#include "dimphy.h" 34 36 #include "indicesol.h" 37 #include "iniprint.h" 35 38 c 36 39 c----------------------------------------------------------------------- … … 1323 1326 ierr = NF_CLOSE(nid) 1324 1327 c 1328 #else 1329 WRITE(lunout,*) 1330 & 'limit_netcdf: Earth-specific routine, needs Earth physics' 1331 #endif 1332 ! of #ifdef CPP_EARTH 1325 1333 STOP 1326 1334 END -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/startvar.F
r677 r1222 1 1 ! 2 ! $ Header$2 ! $Id$ 3 3 ! 4 C5 C6 4 MODULE startvar 5 #ifdef CPP_EARTH 6 ! This module is designed to work for Earth (and with ioipsl) 7 7 ! 8 8 ! … … 1189 1189 END SUBROUTINE start_inter_3d 1190 1190 ! 1191 #endif 1192 ! of #ifdef CPP_EARTH 1191 1193 END MODULE startvar
Note: See TracChangeset
for help on using the changeset viewer.