Changeset 1114 for LMDZ4/branches/LMDZ4-dev/libf/dyn3d
- Timestamp:
- Mar 3, 2009, 5:40:26 PM (16 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/dyn3d
- Files:
-
- 1 added
- 2 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/addfi.F
r524 r1114 2 2 ! $Header$ 3 3 ! 4 SUBROUTINE addfi( nq,pdt, leapf, forward,4 SUBROUTINE addfi(pdt, leapf, forward, 5 5 S pucov, pvcov, pteta, pq , pps , 6 6 S pdufi, pdvfi, pdhfi,pdqfi, pdpfi ) 7 8 USE infotrac, ONLY : nqtot 7 9 IMPLICIT NONE 8 10 c … … 52 54 c ----------- 53 55 c 54 INTEGER nq55 56 56 REAL pdt 57 57 c 58 58 REAL pvcov(ip1jm,llm),pucov(ip1jmp1,llm) 59 REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nq ),pps(ip1jmp1)59 REAL pteta(ip1jmp1,llm),pq(ip1jmp1,llm,nqtot),pps(ip1jmp1) 60 60 c 61 61 REAL pdvfi(ip1jm,llm),pdufi(ip1jmp1,llm) 62 REAL pdqfi(ip1jmp1,llm,nq ),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1)62 REAL pdqfi(ip1jmp1,llm,nqtot),pdhfi(ip1jmp1,llm),pdpfi(ip1jmp1) 63 63 c 64 64 LOGICAL leapf,forward … … 125 125 ENDDO 126 126 127 DO iq = 3, nq 127 DO iq = 3, nqtot 128 128 DO k = 1,llm 129 129 DO j = 1,ip1jmp1 … … 148 148 149 149 150 DO iq = 1, nq 150 DO iq = 1, nqtot 151 151 DO k = 1, llm 152 152 DO ij = 1, iim -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/advtrac.F
r960 r1114 15 15 c M.A Filiberti (04/2002) 16 16 c 17 USE infotrac 18 17 19 IMPLICIT NONE 18 20 c … … 28 30 #include "ener.h" 29 31 #include "description.h" 30 #include "advtrac.h"31 32 32 33 c------------------------------------------------------------------- … … 39 40 INTEGER iapptrac 40 41 REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm) 41 REAL q(ip1jmp1,llm,nq mx),masse(ip1jmp1,llm)42 REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm) 42 43 REAL p( ip1jmp1,llmp1 ),teta(ip1jmp1,llm) 43 44 REAL pk(ip1jmp1,llm) … … 52 53 REAL pbarug(ip1jmp1,llm),pbarvg(ip1jm,llm),wg(ip1jmp1,llm) 53 54 REAL (kind=kind(1.d0)) :: t_initial, t_final, tps_cpu 54 real cpuadv(nqmx)55 common/cpuadv/cpuadv56 57 55 INTEGER iadvtr 58 56 INTEGER ij,l,iq,iiq … … 69 67 REAL psppm(iim,jjp1) ! pression au sol 70 68 REAL unatppm(iim,jjp1,llm),vnatppm(iim,jjp1,llm) 71 REAL qppm(iim*jjp1,llm,nq mx)69 REAL qppm(iim*jjp1,llm,nqtot) 72 70 REAL fluxwppm(iim,jjp1,llm) 73 71 REAL apppm(llmp1), bpppm(llmp1) … … 153 151 c Appel des sous programmes d'advection 154 152 c----------------------------------------------------------- 155 do iq=1,nq mx153 do iq=1,nqtot 156 154 c call clock(t_initial) 157 155 if(iadv(iq) == 0) cycle -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/caladvtrac.F
r960 r1114 8 8 * flxw, pk) 9 9 c 10 USE infotrac 10 11 IMPLICIT NONE 11 12 c … … 24 25 #include "comconst.h" 25 26 #include "control.h" 26 #include "advtrac.h"27 27 28 28 c Arguments: 29 29 c ---------- 30 30 REAL pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm),masse(ip1jmp1,llm) 31 REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nq mx),dq( ip1jmp1,llm,2 )31 REAL p( ip1jmp1,llmp1),q( ip1jmp1,llm,nqtot),dq( ip1jmp1,llm,2 ) 32 32 REAL teta( ip1jmp1,llm),pk( ip1jmp1,llm) 33 33 REAL :: flxw(ip1jmp1,llm) -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/calfis.F
r960 r1114 4 4 C 5 5 C 6 SUBROUTINE calfis(nq, 7 $ lafin, 6 SUBROUTINE calfis(lafin, 8 7 $ rdayvrai, 9 8 $ heure, … … 32 31 c Auteur : P. Le Van, F. Hourdin 33 32 c ......... 33 USE infotrac 34 34 35 35 IMPLICIT NONE … … 90 90 #include "paramet.h" 91 91 #include "temps.h" 92 #include "advtrac.h" 93 94 INTEGER ngridmx,nq 92 93 INTEGER ngridmx 95 94 PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm ) 96 95 … … 109 108 REAL pteta(iip1,jjp1,llm) 110 109 REAL pmasse(iip1,jjp1,llm) 111 REAL pq(iip1,jjp1,llm,nq mx)110 REAL pq(iip1,jjp1,llm,nqtot) 112 111 REAL pphis(iip1,jjp1) 113 112 REAL pphi(iip1,jjp1,llm) … … 116 115 REAL pducov(iip1,jjp1,llm) 117 116 REAL pdteta(iip1,jjp1,llm) 118 REAL pdq(iip1,jjp1,llm,nq mx)117 REAL pdq(iip1,jjp1,llm,nqtot) 119 118 c 120 119 REAL pps(iip1,jjp1) … … 125 124 REAL pdufi(iip1,jjp1,llm) 126 125 REAL pdhfi(iip1,jjp1,llm) 127 REAL pdqfi(iip1,jjp1,llm,nq mx)126 REAL pdqfi(iip1,jjp1,llm,nqtot) 128 127 REAL pdpsfi(iip1,jjp1) 129 128 … … 142 141 c 143 142 REAL zufi(ngridmx,llm), zvfi(ngridmx,llm) 144 REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nq mx)143 REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot) 145 144 c 146 145 REAL pcvgu(ngridmx,llm), pcvgv(ngridmx,llm) … … 148 147 c 149 148 REAL zdufi(ngridmx,llm),zdvfi(ngridmx,llm) 150 REAL zdtfi(ngridmx,llm),zdqfi(ngridmx,llm,nq mx)149 REAL zdtfi(ngridmx,llm),zdqfi(ngridmx,llm,nqtot) 151 150 REAL zdpsrf(ngridmx) 152 151 c … … 275 274 c --------------- 276 275 c 277 DO iq=1,nq 276 DO iq=1,nqtot 278 277 iiq=niadv(iq) 279 278 DO l=1,llm … … 444 443 CALL physiq (ngridmx, 445 444 . llm, 446 . nq,447 445 . debut, 448 446 . lafin, … … 505 503 c --------------------- 506 504 507 DO iq=1,nq mx505 DO iq=1,nqtot 508 506 DO l=1,llm 509 507 DO i=1,iip1 … … 526 524 pdqfi=0. 527 525 C 528 DO iq=1,nq 526 DO iq=1,nqtot 529 527 iiq=niadv(iq) 530 528 DO l=1,llm -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/create_etat0_limit.F
r1016 r1114 5 5 USE dimphy 6 6 USE comgeomphy 7 7 USE infotrac 8 8 c 9 9 c … … 28 28 #include "paramet.h" 29 29 #include "indicesol.h" 30 #include "advtrac.h"31 30 #include "control.h" 32 31 REAL :: masque(iip1,jjp1) 33 32 ! REAL :: pctsrf(iim*(jjm-1)+2, nbsrf) 34 33 35 c initialisation traceurs36 hadv_flg(:) = 0.37 vadv_flg(:) = 0.38 conv_flg(:) = 0.39 pbl_flg(:) = 0.40 tracnam(:) = ' '41 nprath = 142 nbtrac = 043 mmt_adj(:,:,:,:) = 144 45 34 IF (config_inca /= 'none') THEN 46 35 #ifdef INCA 47 36 call init_const_lmdz( 48 $ nbtr ac,anneeref,dayref,37 $ nbtr,anneeref,dayref, 49 38 $ iphysiq, day_step,nday) 50 39 #endif 51 print *, 'nbtr ac =' , nbtrac40 print *, 'nbtr =' , nbtr 52 41 END IF 53 42 54 CALL Init_Phys_lmdz(iim,jjp1,llm, nqmx-2,1,(jjm-1)*iim+2)43 CALL Init_Phys_lmdz(iim,jjp1,llm,1,(jjm-1)*iim+2) 55 44 call InitComgeomphy 56 45 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/dynetat0.F
r541 r1114 2 2 ! $Header$ 3 3 ! 4 SUBROUTINE dynetat0(fichnom, nq,vcov,ucov,4 SUBROUTINE dynetat0(fichnom,vcov,ucov, 5 5 . teta,q,masse,ps,phis,time) 6 7 USE infotrac 6 8 IMPLICIT NONE 7 9 … … 32 34 #include "serre.h" 33 35 #include "logic.h" 34 #include "advtrac.h"35 36 36 37 c Arguments: … … 38 39 39 40 CHARACTER*(*) fichnom 40 INTEGER nq41 41 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm) 42 REAL q(ip1jmp1,llm,nq ),masse(ip1jmp1,llm)42 REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm) 43 43 REAL ps(ip1jmp1),phis(ip1jmp1) 44 44 … … 315 315 316 316 317 IF(nq .GE.1) THEN318 DO iq=1,nq 317 IF(nqtot.GE.1) THEN 318 DO iq=1,nqtot 319 319 ierr = NF_INQ_VARID (nid, tname(iq), nvarid) 320 320 IF (ierr .NE. NF_NOERR) THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/dynredem.F
r960 r1114 3 3 ! 4 4 c 5 SUBROUTINE dynredem0(fichnom,iday_end,phis ,nq)5 SUBROUTINE dynredem0(fichnom,iday_end,phis) 6 6 USE IOIPSL 7 USE infotrac 7 8 IMPLICIT NONE 8 9 c======================================================================= … … 22 23 #include "description.h" 23 24 #include "serre.h" 24 #include "advtrac.h"25 25 26 26 c Arguments: … … 29 29 REAL phis(ip1jmp1) 30 30 CHARACTER*(*) fichnom 31 INTEGER nq32 31 33 32 c Local: … … 458 457 dims4(3) = idim_s 459 458 dims4(4) = idim_tim 460 IF(nq .GE.1) THEN461 DO iq=1,nq 459 IF(nqtot.GE.1) THEN 460 DO iq=1,nqtot 462 461 cIM 220306 BEG 463 462 #ifdef NC_DOUBLE … … 508 507 END 509 508 SUBROUTINE dynredem1(fichnom,time, 510 . vcov,ucov,teta,q,nq,masse,ps) 509 . vcov,ucov,teta,q,masse,ps) 510 USE infotrac 511 511 IMPLICIT NONE 512 512 c================================================================= … … 519 519 #include "comvert.h" 520 520 #include "comgeom.h" 521 #include "advtrac.h"522 521 #include "temps.h" 523 522 #include "control.h" 524 523 525 INTEGER nq,l524 INTEGER l 526 525 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) 527 526 REAL teta(ip1jmp1,llm) 528 527 REAL ps(ip1jmp1),masse(ip1jmp1,llm) 529 REAL q(ip1jmp1,llm,nq )528 REAL q(ip1jmp1,llm,nqtot) 530 529 CHARACTER*(*) fichnom 531 530 … … 633 632 END IF 634 633 635 IF(nq .GE.1) THEN636 do iq=1,nq 634 IF(nqtot.GE.1) THEN 635 do iq=1,nqtot 637 636 638 637 IF (config_inca == 'none') THEN -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/etat0_netcdf.F
r1108 r1114 9 9 USE ioipsl 10 10 USE dimphy 11 USE infotrac 11 12 USE fonte_neige_mod 12 13 USE pbl_surface_mod … … 33 34 LOGICAL interbar 34 35 REAL :: latfi(klon), lonfi(klon) 35 REAL :: orog(iip1,jjp1), rugo(iip1,jjp1), masque(iip1,jjp1) ,36 .psol(iip1, jjp1), phis(iip1, jjp1)36 REAL :: orog(iip1,jjp1), rugo(iip1,jjp1), masque(iip1,jjp1) 37 REAL :: psol(iip1, jjp1), phis(iip1, jjp1) 37 38 REAL :: p3d(iip1, jjp1, llm+1) 38 39 REAL :: uvent(iip1, jjp1, llm) 39 40 REAL :: vvent(iip1, jjm, llm) 40 41 REAL :: t3d(iip1, jjp1, llm), tpot(iip1, jjp1, llm) 41 REAL :: q3d(iip1, jjp1, llm,nqmx), qsat(iip1, jjp1, llm) 42 REAL, ALLOCATABLE, DIMENSION(:,:,:,:) :: q3d 43 REAL :: qsat(iip1, jjp1, llm) 42 44 REAL :: tsol(klon), qsol(klon), sn(klon) 43 45 REAL :: tsolsrf(klon,nbsrf), qsolsrf(klon,nbsrf),snsrf(klon,nbsrf) … … 64 66 ! 65 67 INTEGER :: i,j, ig, l, ji,ii1,ii2 66 INTEGER :: nq67 68 REAL :: xpi 68 69 ! … … 165 166 print*,'dtvr',dtvr 166 167 168 169 167 170 CALL inicons0() 168 171 CALL inigeom() 169 ! 172 173 ! Initialisation pour traceurs 174 CALL infotrac_init 175 ALLOCATE(q3d(iip1,jjp1,llm,nqtot)) 176 177 170 178 CALL inifilr() 171 179 CALL phys_state_var_init() … … 624 632 phis(iip1,:) = phis(1,:) 625 633 626 C init pour traceurs627 call iniadvtrac(nq)628 634 C Ecriture 629 635 CALL inidissip( lstardis, nitergdiv, nitergrot, niterh , … … 649 655 * phi,w, pbaru,pbarv,time+iday-dayref ) 650 656 print*,'sortie caldyn0' 651 CALL dynredem0("start.nc",dayref,phis ,nqmx)657 CALL dynredem0("start.nc",dayref,phis) 652 658 print*,'sortie dynredem0' 653 CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d, nqmx,masse ,659 CALL dynredem1("start.nc",0.0,vvent,uvent,tpot,q3d,masse , 654 660 . psol) 655 661 print*,'sortie dynredem1' … … 742 748 visu_file='Etat0_visu.nc' 743 749 CALL initdynav(visu_file,dayref,anneeref,time_step, 744 . t_ops, t_wrt, nqmx,visuid)745 CALL writedynav(visuid, nqmx,itau,vvent ,750 . t_ops, t_wrt, visuid) 751 CALL writedynav(visuid, itau,vvent , 746 752 . uvent,tpot,pk,phi,q3d,masse,psol,phis) 747 753 else … … 750 756 print*,'entree histclo' 751 757 CALL histclo 758 759 DEALLOCATE(q3d) 760 752 761 RETURN 753 762 ! -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/fluxstokenc.F
r697 r1114 56 56 CALL initfluxsto( 'fluxstoke', 57 57 . time_step,istdyn* time_step,istdyn* time_step, 58 . nqmx,fluxid,fluxvid,fluxdid)58 . fluxid,fluxvid,fluxdid) 59 59 60 60 ndex(1) = 0 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/gcm.F
r1108 r1114 11 11 12 12 USE filtreg_mod 13 USE infotrac 13 14 14 15 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 70 71 #include "iniprint.h" 71 72 #include "tracstoke.h" 72 #include "advtrac.h"73 73 74 74 INTEGER longcles … … 85 85 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 86 86 REAL teta(ip1jmp1,llm) ! temperature potentielle 87 REAL q(ip1jmp1,llm,nqmx)! champs advectes87 REAL, ALLOCATABLE, DIMENSION(:,:,:):: q! champs advectes 88 88 REAL ps(ip1jmp1) ! pression au sol 89 89 REAL p (ip1jmp1,llmp1 ) ! pression aux interfac.des couches … … 139 139 c variables pour l'initialisation de la physique : 140 140 c ------------------------------------------------ 141 INTEGER ngridmx ,nq141 INTEGER ngridmx 142 142 PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm ) 143 143 REAL zcufi(ngridmx),zcvfi(ngridmx) … … 156 156 dynhist_file = 'dyn_hist.nc' 157 157 dynhistave_file = 'dyn_hist_ave.nc' 158 159 c initialisation Anne160 hadv_flg(:) = 0.161 vadv_flg(:) = 0.162 conv_flg(:) = 0.163 pbl_flg(:) = 0.164 tracnam(:) = ' '165 nprath = 1166 nbtrac = 0167 mmt_adj(:,:,:,:) = 1168 158 169 159 … … 217 207 ! dynamique -> physique pour l'initialisation 218 208 #ifdef CPP_PHYS 219 CALL Init_Phys_lmdz(iim,jjp1,llm, nqmx-2,1,(jjm-1)*iim+2)209 CALL Init_Phys_lmdz(iim,jjp1,llm,1,(jjm-1)*iim+2) 220 210 call InitComgeomphy 221 211 #endif … … 224 214 IF (config_inca /= 'none') THEN 225 215 #ifdef INCA 226 call init_const_lmdz(nbtr ac,anneeref,dayref,iphysiq,day_step,nday)216 call init_const_lmdz(nbtr,anneeref,dayref,iphysiq,day_step,nday) 227 217 call init_inca_para(iim,jjm+1,klon,1,klon_mpi_para_nb,0) 228 218 #endif … … 239 229 c Initialisation des traceurs 240 230 c --------------------------- 241 c Choix du schema pour l'advection 242 c dans fichier trac.def ou via INCA 243 244 call iniadvtrac(nq) 245 c 231 c Choix du nombre de traceurs et du schema pour l'advection 232 c dans fichier traceur.def, par default ou via INCA 233 call infotrac_init 234 235 c Allocation de la tableau q : champs advectes 236 allocate(q(ip1jmp1,llm,nqtot)) 237 246 238 c----------------------------------------------------------------------- 247 239 c Lecture de l'etat initial : … … 251 243 if (read_start) then 252 244 #ifdef CPP_IOIPSL 253 CALL dynetat0("start.nc", nqmx,vcov,ucov,245 CALL dynetat0("start.nc",vcov,ucov, 254 246 . teta,q,masse,ps,phis, time_0) 255 247 c write(73,*) 'ucov',ucov … … 274 266 . 'AVANT iniacademic AVANT AVANT AVANT AVANT' 275 267 if (.not.read_start) then 276 CALL iniacademic( nqmx,vcov,ucov,teta,q,masse,ps,phis,time_0)268 CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 277 269 endif 278 270 … … 396 388 397 389 #ifdef CPP_IOIPSL 398 CALL dynredem0("restart.nc", day_end, phis , nqmx)390 CALL dynredem0("restart.nc", day_end, phis) 399 391 400 392 ecripar = .TRUE. … … 405 397 t_wrt = iecri * daysec 406 398 CALL inithist(dynhist_file,day_ref,annee_ref,time_step, 407 . t_ops, t_wrt, nqmx,histid, histvid)399 . t_ops, t_wrt, histid, histvid) 408 400 409 401 t_ops = iperiod * time_step 410 402 t_wrt = periodav * daysec 411 403 CALL initdynav(dynhistave_file,day_ref,annee_ref,time_step, 412 . t_ops, t_wrt, nqmx,histaveid)404 . t_ops, t_wrt, histaveid) 413 405 414 406 dtav = iperiod*dtvr/daysec … … 437 429 438 430 439 CALL leapfrog(ucov,vcov,teta,ps,masse,phis, nq,q,clesphy0,431 CALL leapfrog(ucov,vcov,teta,ps,masse,phis,q,clesphy0, 440 432 . time_0) 441 433 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/iniacademic.F
r1108 r1114 4 4 c 5 5 c 6 SUBROUTINE iniacademic( nq,vcov,ucov,teta,q,masse,ps,phis,time_0)6 SUBROUTINE iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 7 7 8 8 USE filtreg_mod 9 USE infotrac, ONLY : nqtot 9 10 10 11 c%W% %G% … … 48 49 c ---------- 49 50 50 integer nq51 51 real time_0 52 52 … … 54 54 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 55 55 REAL teta(ip1jmp1,llm) ! temperature potentielle 56 REAL q(ip1jmp1,llm,nq ) ! champs advectes56 REAL q(ip1jmp1,llm,nqtot) ! champs advectes 57 57 REAL ps(ip1jmp1) ! pression au sol 58 58 REAL masse(ip1jmp1,llm) ! masse d'air … … 160 160 q(:,:,1 )=1.e-10 161 161 q(:,:,2 )=1.e-15 162 q(:,:,3:nq )=0.162 q(:,:,3:nqtot)=0. 163 163 164 164 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/integrd.F
r524 r1114 32 32 #include "temps.h" 33 33 #include "serre.h" 34 #include "advtrac.h"35 34 36 35 c Arguments: -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/leapfrog.F
r1060 r1114 2 2 c 3 3 c 4 SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis, nq,q,clesphy0,4 SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis,q,clesphy0, 5 5 & time_0) 6 6 … … 8 8 cIM : pour sortir les param. du modele dans un fis. netcdf 110106 9 9 USE IOIPSL 10 USE infotrac 10 11 11 12 IMPLICIT NONE … … 56 57 #include "com_io_dyn.h" 57 58 #include "iniprint.h" 58 #include "advtrac.h"59 c#include "tracstoke.h"60 61 59 #include "academic.h" 62 60 63 61 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 64 62 ! #include "clesphys.h" 65 66 integer nq67 63 68 64 INTEGER longcles … … 76 72 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 77 73 REAL teta(ip1jmp1,llm) ! temperature potentielle 78 REAL q(ip1jmp1,llm,nq mx) ! champs advectes74 REAL q(ip1jmp1,llm,nqtot) ! champs advectes 79 75 REAL ps(ip1jmp1) ! pression au sol 80 76 REAL p (ip1jmp1,llmp1 ) ! pression aux interfac.des couches … … 97 93 c tendances dynamiques 98 94 REAL dv(ip1jm,llm),du(ip1jmp1,llm) 99 REAL dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nq mx),dp(ip1jmp1)95 REAL dteta(ip1jmp1,llm),dq(ip1jmp1,llm,nqtot),dp(ip1jmp1) 100 96 101 97 c tendances de la dissipation … … 105 101 c tendances physiques 106 102 REAL dvfi(ip1jm,llm),dufi(ip1jmp1,llm) 107 REAL dtetafi(ip1jmp1,llm),dqfi(ip1jmp1,llm,nq mx),dpfi(ip1jmp1)103 REAL dtetafi(ip1jmp1,llm),dqfi(ip1jmp1,llm,nqtot),dpfi(ip1jmp1) 108 104 109 105 c variables pour le fichier histoire … … 190 186 itaufin = nday*day_step 191 187 itaufinp1 = itaufin +1 192 188 modname="leapfrog" 189 193 190 194 191 itau = 0 … … 372 369 c 373 370 374 CALL calfis( nq,lafin ,rdayvrai,time ,371 CALL calfis( lafin ,rdayvrai,time , 375 372 $ ucov,vcov,teta,q,masse,ps,p,pk,phis,phi , 376 373 $ du,dv,dteta,dq, … … 384 381 c ajout des tendances physiques: 385 382 c ------------------------------ 386 CALL addfi( nqmx,dtphys, leapf, forward ,383 CALL addfi( dtphys, leapf, forward , 387 384 $ ucov, vcov, teta , q ,ps , 388 385 $ dufi, dvfi, dtetafi , dqfi ,dpfi ) … … 533 530 ENDIF 534 531 #ifdef CPP_IOIPSL 535 CALL writedynav(histaveid, nqmx,itau,vcov ,532 CALL writedynav(histaveid, itau,vcov , 536 533 , ucov,teta,pk,phi,q,masse,ps,phis) 537 534 call bilan_dyn (2,dtvr*iperiod,dtvr*day_step*periodav, … … 556 553 enddo 557 554 #ifdef CPP_IOIPSL 558 c CALL writehist(histid,histvid, nqmx,itau,vcov,555 c CALL writehist(histid,histvid,itau,vcov, 559 556 c s ucov,teta,phi,q,masse,ps,phis) 560 557 #else … … 570 567 #ifdef CPP_IOIPSL 571 568 CALL dynredem1("restart.nc",0.0, 572 , vcov,ucov,teta,q, nqmx,masse,ps)569 , vcov,ucov,teta,q,masse,ps) 573 570 #endif 574 571 … … 639 636 ENDIF 640 637 #ifdef CPP_IOIPSL 641 CALL writedynav(histaveid, nqmx,itau,vcov ,638 CALL writedynav(histaveid, itau,vcov , 642 639 , ucov,teta,pk,phi,q,masse,ps,phis) 643 640 call bilan_dyn (2,dtvr*iperiod,dtvr*day_step*periodav, … … 657 654 enddo 658 655 #ifdef CPP_IOIPSL 659 c CALL writehist( histid, histvid, nqmx,itau,vcov ,656 c CALL writehist( histid, histvid, itau,vcov , 660 657 c , ucov,teta,phi,q,masse,ps,phis) 661 658 #else … … 669 666 IF(itau.EQ.itaufin) 670 667 . CALL dynredem1("restart.nc",0.0, 671 . vcov,ucov,teta,q, nqmx,masse,ps)668 . vcov,ucov,teta,q,masse,ps) 672 669 #endif 673 670 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/test_period.F
r524 r1114 9 9 c teta, q , p et phis .......... 10 10 c 11 USE infotrac 11 12 c IMPLICIT NONE 12 13 c … … 17 18 c 18 19 REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) , 19 , q(ip1jmp1,llm,nq mx), p(ip1jmp1,llmp1), phis(ip1jmp1)20 , q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1) 20 21 c 21 22 c ..... Variables locales ..... … … 68 69 69 70 c 70 DO nq =1, nq mx71 DO nq =1, nqtot 71 72 DO l =1, llm 72 73 DO ij = 1, ip1jmp1, iip1 -
LMDZ4/branches/LMDZ4-dev/libf/dyn3d/write_grads_dyn.h
r524 r1114 24 24 string10='teta' 25 25 CALL wrgrads(1,llm,teta,string10,string10) 26 do iq=1,nq mx26 do iq=1,nqtot 27 27 string10='q' 28 28 write(string10(2:2),'(i1)') iq
Note: See TracChangeset
for help on using the changeset viewer.