Changeset 892
- Timestamp:
- Mar 5, 2013, 4:01:03 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 18 added
- 25 deleted
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DOC/000-USERS
r495 r892 30 30 Helen Parish UCLA 01 - 10 - 2011 Venus GCM 31 31 David Luz CAAUL [Obs. Lisbonne] 01 - 01 - 2012 Venus GCM 32 Sarah C amberlain CAAUL [Obs. Lisbonne] 01 - 01 - 2012 Venus GCM32 Sarah Chamberlain CAAUL [Obs. Lisbonne] 01 - 01 - 2012 Venus GCM 33 33 -
trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F
r849 r892 169 169 REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:) 170 170 REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:) 171 REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:) 171 172 REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:) 172 173 REAL,ALLOCATABLE,SAVE :: zphis_omp(:) … … 205 206 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 206 207 207 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zp hi_omp,zphis_omp,208 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp, 208 209 c$OMP+ presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp, 209 210 c$OMP+ zqfi_omp,zdufi_omp,zdvfi_omp, … … 543 544 allocate(zplev_omp(klon,llm+1)) 544 545 allocate(zplay_omp(klon,llm)) 546 allocate(zpk_omp(klon,llm)) 545 547 allocate(zphi_omp(klon,llm)) 546 548 allocate(zphis_omp(klon)) … … 576 578 do i=1,klon 577 579 zplay_omp(i,l)=zplay(offset+i,l) 580 enddo 581 enddo 582 583 do l=1,llm 584 do i=1,klon 585 zpk_omp(i,l)=zpk(offset+i,l) 578 586 enddo 579 587 enddo … … 733 741 CALL physiq (klon, 734 742 . llm, 743 . nqtot, 735 744 . debut_split, 736 745 . lafin_split, … … 740 749 . zplev_omp, 741 750 . zplay_omp, 751 . zpk_omp, 742 752 . zphi_omp, 743 753 . zphis_omp, … … 747 757 . ztfi_omp, 748 758 . zqfi_omp, 749 c#ifdef INCA750 759 . flxwfi_omp, 751 c#endif752 760 . zdufi_omp, 753 761 . zdvfi_omp, 754 762 . zdtfi_omp, 755 763 . zdqfi_omp, 756 . zdpsrf_omp, 757 cIM diagnostique PVteta, Amip2 758 . pducov, 759 . PVteta) 764 . zdpsrf_omp) 760 765 endif ! planet_type 761 766 zufi_omp(:,:)=zufi_omp(:,:)+zdufi_omp(:,:)*zdt_split -
trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
r808 r892 823 823 zx_alf2(i) = 1.0 - zx_alf1(i) 824 824 zx_coef(i,1) = coef(i,1) 825 . * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))825 . * SQRT(u1lay(i)**2+v1lay(i)**2) 826 826 . * pplay(i,1)/(RD*t(i,1)) 827 827 zx_coef(i,1) = zx_coef(i,1) * dtime*RG -
trunk/LMDZ.VENUS/libf/phyvenus/clmain.classic
r101 r892 822 822 zx_alf2(i) = 1.0 - zx_alf1(i) 823 823 zx_coef(i,1) = coef(i,1) 824 . * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))824 . * SQRT(u1lay(i)**2+v1lay(i)**2) 825 825 . * pplay(i,1)/(RD*t(i,1)) 826 826 zx_coef(i,1) = zx_coef(i,1) * dtime*RG -
trunk/LMDZ.VENUS/libf/phyvenus/clmain.old
r3 r892 803 803 zx_alf2(i) = 1.0 - zx_alf1(i) 804 804 zx_coef(i,1) = coef(i,1) 805 . * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))805 . * SQRT(u1lay(i)**2+v1lay(i)**2) 806 806 . * pplay(i,1)/(RD*t(i,1)) 807 807 zx_coef(i,1) = zx_coef(i,1) * dtime*RG -
trunk/LMDZ.VENUS/libf/phyvenus/clmain.simple
r101 r892 693 693 zx_alf2(i) = 1.0 - zx_alf1(i) 694 694 zx_coef(i,1) = coef(i,1) 695 . * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))695 . * SQRT(u1lay(i)**2+v1lay(i)**2) 696 696 . * pplay(i,1)/(RD*t(i,1)) 697 697 zx_coef(i,1) = zx_coef(i,1) * dtime*RG -
trunk/LMDZ.VENUS/libf/phyvenus/comcstVE.h
r101 r892 1 c-----------------------------------------------------------------------2 cINCLUDE comcstVE.h1 !----------------------------------------------------------------------- 2 ! INCLUDE comcstVE.h 3 3 4 4 integer nnuve,nbztopve,nbpsve,nbmat … … 15 15 16 16 17 c-----------------------------------------------------------------------17 !----------------------------------------------------------------------- -
trunk/LMDZ.VENUS/libf/phyvenus/comcstfi.h
r3 r892 1 c-----------------------------------------------------------------------2 cINCLUDE comcstfi.h1 !----------------------------------------------------------------------- 2 ! INCLUDE comcstfi.h 3 3 4 COMMON/comcstfi/ 5 * pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg 4 COMMON/comcstfi/rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg 6 5 7 REAL pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg6 REAL rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg 8 7 real cpdet 9 8 external cpdet 10 9 11 c-----------------------------------------------------------------------10 !----------------------------------------------------------------------- -
trunk/LMDZ.VENUS/libf/phyvenus/comg1d.h
r3 r892 1 c.......................................................................2 cle COMMON pour GRADS-1D3 c(Utilise pour les sorties format Grads dans la version 1D du modele)4 c 5 con peut se dire : "on ne sauvera pas plus de 1000 variables ... hein ?"6 c 1 !....................................................................... 2 ! le COMMON pour GRADS-1D 3 ! (Utilise pour les sorties format Grads dans la version 1D du modele) 4 ! 5 ! on peut se dire : "on ne sauvera pas plus de 1000 variables ... hein ?" 6 ! 7 7 INTEGER g1d_nvarmx 8 8 PARAMETER(g1d_nvarmx=1000) 9 c 10 c* g1d_nlayer ---> nombre de couches verticales11 c* g1d_nomfich ---> nom du fichier grads12 c* g1d_unitfich ---> code du fichier grads13 c* g1d_nomctl ---> nom du fichier ctl14 c* g1d_unitctl ---> code du fichier ctl15 c* g1d_premier ---> variable logique pour dire si le fichier16 cest deja ouvert17 c* g1d_irec ---> indice de derniere ecriture18 c* g1d_nvar ---> nombre de variables deja definies a la19 cderniere ecriture20 c* g1d_nomvar ---> noms des vecteurs existants21 c* g1d_dimvar ---> taille des vecteurs22 c* g1d_titrevar ---> titres des vecteurs23 c* g1d_tmp1 ---> caractere24 c* g1d_tmp2 ---> caractere25 c 9 10 ! * g1d_nlayer ---> nombre de couches verticales 11 ! * g1d_nomfich ---> nom du fichier grads 12 ! * g1d_unitfich ---> code du fichier grads 13 ! * g1d_nomctl ---> nom du fichier ctl 14 ! * g1d_unitctl ---> code du fichier ctl 15 ! * g1d_premier ---> variable logique pour dire si le fichier 16 ! est deja ouvert 17 ! * g1d_irec ---> indice de derniere ecriture 18 ! * g1d_nvar ---> nombre de variables deja definies a la 19 ! derniere ecriture 20 ! * g1d_nomvar ---> noms des vecteurs existants 21 ! * g1d_dimvar ---> taille des vecteurs 22 ! * g1d_titrevar ---> titres des vecteurs 23 ! * g1d_tmp1 ---> caractere 24 ! * g1d_tmp2 ---> caractere 25 26 26 INTEGER g1d_nlayer 27 27 CHARACTER*100 g1d_nomfich … … 40 40 CHARACTER*100 g1d_tmp1,g1d_tmp2 41 41 c 42 COMMON/COMG1DI/g1d_nlayer 43 & ,g1d_unitfich 44 & ,g1d_unitctl 45 & ,g1d_irec 46 & ,g2d_irec 47 & ,g2d_appel 42 COMMON/COMG1DI/g1d_nlayer & 43 & ,g1d_unitfich & 44 & ,g1d_unitctl & 45 & ,g1d_irec & 46 & ,g2d_irec & 47 & ,g2d_appel & 48 48 & ,g1d_nvar 49 COMMON/COMG1DC/g1d_dimvar(0:g1d_nvarmx) 50 & ,g1d_nomfich 51 & ,g1d_nomctl 52 & ,g1d_nomvar(0:g1d_nvarmx) 53 & ,g1d_titrevar(0:g1d_nvarmx) 54 & ,g1d_tmp1 49 COMMON/COMG1DC/g1d_dimvar(0:g1d_nvarmx) & 50 & ,g1d_nomfich & 51 & ,g1d_nomctl & 52 & ,g1d_nomvar(0:g1d_nvarmx) & 53 & ,g1d_titrevar(0:g1d_nvarmx) & 54 & ,g1d_tmp1 & 55 55 & ,g1d_tmp2 56 COMMON/COMG1DL/g1d_premier 56 COMMON/COMG1DL/g1d_premier & 57 57 & ,g2d_premier 58 c59 58 60 59 integer nbphypers 61 60 common/rythme/nbphypers 62 c.......................................................................61 !....................................................................... 63 62 -
trunk/LMDZ.VENUS/libf/phyvenus/comgeomphy.F90
r101 r892 9 9 10 10 subroutine initcomgeomphy 11 use dimphy11 USE mod_phys_lmdz_para 12 12 implicit none 13 13 14 14 15 allocate(airephy(klon ))16 allocate(cuphy(klon ))17 allocate(cvphy(klon ))18 allocate(rlatd(klon ))19 allocate(rlond(klon ))15 allocate(airephy(klon_omp)) 16 allocate(cuphy(klon_omp)) 17 allocate(cvphy(klon_omp)) 18 allocate(rlatd(klon_omp)) 19 allocate(rlond(klon_omp)) 20 20 21 21 end subroutine initcomgeomphy -
trunk/LMDZ.VENUS/libf/phyvenus/dimphy.F90
r101 r892 8 8 INTEGER,SAVE :: klevp1 9 9 INTEGER,SAVE :: klevm1 10 INTEGER,SAVE :: kflev11 10 12 11 !$OMP THREADPRIVATE(klon,kfdia,kidia,kdlon) 13 REAL,save,allocatable,dimension(:) :: zmasq14 !$OMP THREADPRIVATE(zmasq)15 12 16 13 CONTAINS … … 31 28 klevp1=klev+1 32 29 klevm1=klev-1 33 kflev=klev34 30 !$OMP END MASTER 35 ALLOCATE(zmasq(klon))36 31 37 32 END SUBROUTINE init_dimphy -
trunk/LMDZ.VENUS/libf/phyvenus/ini_histday.h
r888 r892 3 3 ! 4 4 IF (ok_journe) THEN 5 c 5 6 6 zsto = dtime 7 7 zout = dtime * REAL(ecrit_day) 8 8 zsto1= dtime * REAL(ecrit_day) 9 c 9 10 10 idayref = day_ref 11 11 CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian) 12 c 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon) 14 DO i = 1, iim 15 zx_lon(i,1) = rlond(i+jjmp1-jjm) 16 zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm) 17 ENDDO 18 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat) 19 20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 21 c d'ou le -1.* devant zx_lon et zx_lat 22 CALL histbeg("histday.nc", iim,-1.*zx_lon(:,1), jjmp1, 23 . -1.*zx_lat(1,:), 24 . 1,iim,1,jjmp1, itau_phy, zjulian, zsto, 25 . nhori, nid_day) 26 write(*,*)'Journee ', itau_phy, zjulian 27 CALL histvert(nid_day, "presnivs", "Vertical levels", "mb", 12 13 call histbeg_phy("histday.nc",itau_phy, 14 . zjulian,zsto,nhori,nid_day) 15 16 !$OMP MASTER 17 CALL histvert(nid_day, "presnivs", "Vertical levels", "Pa", 28 18 . klev, presnivs, nvert) 29 19 … … 34 24 c 35 25 CALL histdef(nid_day, "phis", "Surface geop. height", "-", 36 . iim,jj mp1,nhori, 1,1,1, -99, 32,26 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 37 27 . "once", zsto,zout) 38 28 c 39 29 CALL histdef(nid_day, "aire", "Grid area", "-", 40 . iim,jj mp1,nhori, 1,1,1, -99, 32,30 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 41 31 . "once", zsto,zout) 42 32 c 43 33 CALL histdef(nid_day, "tsol", "Surface Temperature", "K", 44 . iim,jj mp1,nhori, 1,1,1, -99, 32,34 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 45 35 . "ave(X)", zsto,zout) 46 36 c 47 37 CALL histdef(nid_day, "psol", "Surface Pressure", "Pa", 48 . iim,jj mp1,nhori, 1,1,1, -99, 32,38 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 49 39 . "ave(X)", zsto,zout) 50 40 c 51 41 CALL histdef(nid_day, "ue", "Zonal energy transport", "-", 52 . iim,jj mp1,nhori, 1,1,1, -99, 32,42 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 53 43 . "ave(X)", zsto,zout) 54 44 c 55 45 CALL histdef(nid_day, "ve", "Merid energy transport", "-", 56 . iim,jj mp1,nhori, 1,1,1, -99, 32,46 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 57 47 . "ave(X)", zsto,zout) 58 48 c … … 65 55 c 66 56 CALL histdef(nid_day, "temp", "Air temperature", "K", 67 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,57 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 68 58 . "ave(X)", zsto,zout) 69 59 c 70 60 CALL histdef(nid_day, "pres", "Air pressure", "Pa", 71 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,61 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 72 62 . "ave(X)", zsto,zout) 73 63 c 74 64 CALL histdef(nid_day, "geop", "Geopotential height", "m", 75 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,65 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 76 66 . "ave(X)", zsto,zout) 77 67 c 78 68 CALL histdef(nid_day, "vitu", "Zonal wind", "m/s", 79 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,69 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 80 70 . "ave(X)", zsto,zout) 81 71 c 82 72 CALL histdef(nid_day, "vitv", "Meridional wind", "m/s", 83 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,73 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 84 74 . "ave(X)", zsto,zout) 85 75 c 86 76 CALL histdef(nid_day, "vitw", "Vertical wind", "Pa/s", 87 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,77 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 88 78 . "ave(X)", zsto,zout) 89 79 c … … 98 88 c 99 89 CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2", 100 . iim,jj mp1,nhori, 1,1,1, -99, 32,90 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 101 91 . "ave(X)", zsto1,zout) 102 92 c 103 93 CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2", 104 . iim,jj mp1,nhori, 1,1,1, -99, 32,94 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 105 95 . "ave(X)", zsto1,zout) 106 96 c 107 97 CALL histdef(nid_day, "sols", "Solar rad. at surf.", "W/m2", 108 . iim,jj mp1,nhori, 1,1,1, -99, 32,98 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 109 99 . "ave(X)", zsto1,zout) 110 100 c 111 101 CALL histdef(nid_day, "soll", "IR rad. at surface", "W/m2", 112 . iim,jj mp1,nhori, 1,1,1, -99, 32,102 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 113 103 . "ave(X)", zsto1,zout) 114 104 c … … 116 106 c 117 107 CALL histdef(nid_day, "SWnet", "Net SW flux","W/m2", 118 . iim,jj mp1,nhori, klev,1,klev,nvert,108 . iim,jj_nb,nhori, klev,1,klev,nvert, 119 109 . 32, "ave(X)", zsto1,zout) 120 110 c 121 111 CALL histdef(nid_day, "LWnet", "Net LW flux","W/m2", 122 . iim,jj mp1,nhori, klev,1,klev,nvert,112 . iim,jj_nb,nhori, klev,1,klev,nvert, 123 113 . 32, "ave(X)", zsto1,zout) 124 114 c … … 129 119 c 130 120 CALL histdef(nid_day, "dtdyn", "Dynamics dT", "K/s", 131 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,121 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 132 122 . "ave(X)", zsto,zout) 133 123 c 134 124 c CALL histdef(nid_day, "dtphy", "Physics dT", "K/s", 135 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,125 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 136 126 c . "ave(X)", zsto,zout) 137 127 c 138 128 CALL histdef(nid_day, "dtvdf", "Boundary-layer dT", "K/s", 139 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,129 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 140 130 . "ave(X)", zsto,zout) 141 131 c 142 132 CALL histdef(nid_day, "dtajs", "Dry adjust. dT", "K/s", 143 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,133 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 144 134 . "ave(X)", zsto,zout) 145 135 c 146 136 CALL histdef(nid_day, "dtswr", "SW radiation dT", "K/s", 147 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,137 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 148 138 . "ave(X)", zsto,zout) 149 139 c 150 140 CALL histdef(nid_day, "dtlwr", "LW radiation dT", "K/s", 151 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,141 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 152 142 . "ave(X)", zsto,zout) 153 143 c 154 144 c CALL histdef(nid_day, "dtec", "Cinetic dissip dT", "K/s", 155 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,145 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 156 146 c . "ave(X)", zsto,zout) 157 147 c 158 148 CALL histdef(nid_mth, "dudyn", "Dynamics dU", "m/s2", 159 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,149 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 160 150 . "ave(X)", zsto,zout) 161 151 c 162 152 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 163 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,153 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 164 154 . "ave(X)", zsto,zout) 165 155 c 166 156 CALL histdef(nid_mth, "duajs", "Dry convection dU", "m/s2", 167 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,157 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 168 158 . "ave(X)", zsto,zout) 169 159 c 170 160 CALL histdef(nid_mth, "dugwo", "GW oro dU", "m/s2", 171 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,161 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 172 162 . "ave(X)", zsto,zout) 173 163 c 174 164 CALL histdef(nid_mth, "dugwno", "GW non-oro dU", "m/s2", 175 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,165 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 176 166 . "ave(X)", zsto,zout) 177 167 c 178 168 c CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 179 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,169 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 180 170 c . "ave(X)", zsto,zout) 181 171 c … … 190 180 WRITE(str2,'(i2.2)') iq 191 181 CALL histdef(nid_day, "trac"//str2, "Tracer No."//str2, "-", 192 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,182 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 193 183 . "ave(X)", zsto,zout) 194 184 ELSE … … 201 191 c call histdef(nid_day, "taux", 202 192 c $ "Zonal wind stress", "Pa", 203 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,193 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 204 194 c $ "ave(X)", zsto,zout) 205 195 c 206 196 c call histdef(nid_day, "tauy", 207 197 c $ "Meridional xind stress", "Pa", 208 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,198 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 209 199 c $ "ave(X)", zsto,zout) 210 200 c 211 201 c CALL histdef(nid_day, "cdrm", "Momentum drag coef.", "-", 212 c . iim,jj mp1,nhori, 1,1,1, -99, 32,202 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 213 203 c . "ave(X)", zsto,zout) 214 204 c 215 205 c CALL histdef(nid_day, "cdrh", "Heat drag coef.", "-", 216 c . iim,jj mp1,nhori, 1,1,1, -99, 32,206 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 217 207 c . "ave(X)", zsto,zout) 218 208 c 219 209 ENDIF !lev_histday.GE.5 220 210 c------------------------------------------------------- 221 c 211 222 212 CALL histend(nid_day) 223 c 224 ndex2d = 0 225 ndex3d = 0 226 c 213 !$OMP END MASTER 214 227 215 ENDIF ! fin de test sur ok_journe -
trunk/LMDZ.VENUS/libf/phyvenus/ini_histins.h
r888 r892 3 3 ! 4 4 IF (ok_instan) THEN 5 c 5 6 6 zsto1= dtime 7 7 zsto = dtime * ecrit_ins 8 8 zout = dtime * ecrit_ins 9 c 9 10 10 idayref = day_ref 11 11 CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian) 12 c 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon) 14 DO i = 1, iim 15 zx_lon(i,1) = rlond(i+jjmp1-jjm) 16 zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm) 17 ENDDO 18 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat) 19 20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 21 c d'ou le -1.* devant zx_lon et zx_lat 22 CALL histbeg("histins.nc", iim,-1.*zx_lon(:,1), jjmp1, 23 . -1.*zx_lat(1,:), 24 . 1,iim,1,jjmp1, itau_phy, zjulian, zsto1, 25 . nhori, nid_ins) 26 write(*,*)'Inst ', itau_phy, zjulian 27 CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb", 12 13 call histbeg_phy("histins.nc",itau_phy, 14 . zjulian,zsto,nhori,nid_ins) 15 16 !$OMP MASTER 17 CALL histvert(nid_ins, "presnivs", "Vertical levels", "Pa", 28 18 . klev, presnivs, nvert) 29 19 … … 34 24 c 35 25 CALL histdef(nid_ins, "phis", "Surface geop. height", "-", 36 . iim,jj mp1,nhori, 1,1,1, -99, 32,26 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 37 27 . "once", zsto,zout) 38 28 c 39 29 CALL histdef(nid_ins, "aire", "Grid area", "-", 40 . iim,jj mp1,nhori, 1,1,1, -99, 32,30 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 41 31 . "once", zsto,zout) 42 32 c 43 33 CALL histdef(nid_ins, "tsol", "Surface Temperature", "K", 44 . iim,jj mp1,nhori, 1,1,1, -99, 32,34 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 45 35 . "ins(X)", zsto,zout) 46 36 c 47 37 CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa", 48 . iim,jj mp1,nhori, 1,1,1, -99, 32,38 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 49 39 . "ins(X)", zsto,zout) 50 40 c 51 41 c CALL histdef(nid_ins, "ue", "Zonal energy transport", "-", 52 c . iim,jj mp1,nhori, 1,1,1, -99, 32,42 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 53 43 c . "ins(X)", zsto,zout) 54 44 c 55 45 c CALL histdef(nid_ins, "ve", "Merid energy transport", "-", 56 c . iim,jj mp1,nhori, 1,1,1, -99, 32,46 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 57 47 c . "ins(X)", zsto,zout) 58 48 c 59 49 CALL histdef(nid_ins, "cdragh", "Drag coef on T", "-", 60 . iim,jj mp1,nhori, 1,1,1, -99, 32,50 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 61 51 . "ins(X)", zsto,zout) 62 52 c 63 53 CALL histdef(nid_ins, "cdragm", "Drag coef on U", "-", 64 . iim,jj mp1,nhori, 1,1,1, -99, 32,54 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 65 55 . "ins(X)", zsto,zout) 66 56 c … … 73 63 c 74 64 CALL histdef(nid_ins, "temp", "Air temperature", "K", 75 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,65 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 76 66 . "ins(X)", zsto,zout) 77 67 c 78 68 CALL histdef(nid_ins, "pres", "Air pressure", "Pa", 79 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,69 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 80 70 . "ins(X)", zsto,zout) 81 71 c 82 72 CALL histdef(nid_ins, "geop", "Geopotential height", "m", 83 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,73 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 84 74 . "ins(X)", zsto,zout) 85 75 c 86 76 CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s", 87 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,77 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 88 78 . "ins(X)", zsto,zout) 89 79 c 90 80 CALL histdef(nid_ins, "vitv", "Meridional wind", "m/s", 91 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,81 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 92 82 . "ins(X)", zsto,zout) 93 83 c 94 84 CALL histdef(nid_ins, "vitw", "Vertical wind", "Pa/s", 95 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,85 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 96 86 . "ins(X)", zsto,zout) 97 87 c 98 88 CALL histdef(nid_ins, "dudyn", "Dynamics dU", "m/s2", 99 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,89 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 100 90 . "ins(X)", zsto,zout) 101 91 c 102 92 CALL histdef(nid_ins, "duvdf", "Boundary-layer dU", "m/s2", 103 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,93 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 104 94 . "ins(X)", zsto,zout) 105 95 c 106 96 c CALL histdef(nid_ins, "mang", "Angular momentum", "kg m2/s", 107 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,97 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 108 98 c . "ins(X)", zsto,zout) 109 99 c 110 100 CALL histdef(nid_ins, "Kz", "vertical diffusion coef", "m2/s", 111 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,101 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 112 102 . "ins(X)", zsto,zout) 113 103 c … … 118 108 WRITE(str2,'(i2.2)') iq 119 109 CALL histdef(nid_ins, tname(iq), ttext(iq), "ppm", 120 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,110 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 121 111 . "ins(X)", zsto,zout) 122 112 ELSE … … 128 118 c 129 119 CALL histdef(nid_ins, "tops", "Solar rad. at TOA", "W/m2", 130 . iim,jj mp1,nhori, 1,1,1, -99, 32,120 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 131 121 . "ins(X)", zsto,zout) 132 122 c … … 141 131 c 142 132 CALL histdef(nid_ins, "topl", "IR rad. at TOA", "W/m2", 143 . iim,jj mp1,nhori, 1,1,1, -99, 32,133 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 144 134 . "ins(X)", zsto,zout) 145 135 c 146 136 CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2", 147 . iim,jj mp1,nhori, 1,1,1, -99, 32,137 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 148 138 . "ins(X)", zsto,zout) 149 139 c 150 140 CALL histdef(nid_ins, "soll", "IR rad. at surface", "W/m2", 151 . iim,jj mp1,nhori, 1,1,1, -99, 32,141 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 152 142 . "ins(X)", zsto,zout) 153 143 c … … 155 145 c 156 146 CALL histdef(nid_ins, "SWnet", "Net SW flux","W/m2", 157 . iim,jj mp1,nhori, klev,1,klev,nvert,147 . iim,jj_nb,nhori, klev,1,klev,nvert, 158 148 . 32, "ins(X)", zsto,zout) 159 149 c 160 150 CALL histdef(nid_ins, "LWnet", "Net LW flux","W/m2", 161 . iim,jj mp1,nhori, klev,1,klev,nvert,151 . iim,jj_nb,nhori, klev,1,klev,nvert, 162 152 . 32, "ins(X)", zsto,zout) 163 153 c 164 154 CALL histdef(nid_ins, "fluxvdf", "PBL net flux","W/m2", 165 . iim,jj mp1,nhori, klev,1,klev,nvert,155 . iim,jj_nb,nhori, klev,1,klev,nvert, 166 156 . 32, "ins(X)", zsto,zout) 167 157 c 168 158 CALL histdef(nid_ins, "fluxdyn", "Dyn. net flux","W/m2", 169 . iim,jj mp1,nhori, klev,1,klev,nvert,159 . iim,jj_nb,nhori, klev,1,klev,nvert, 170 160 . 32, "ins(X)", zsto,zout) 171 161 c 172 162 CALL histdef(nid_ins, "fluxajs", "Dry adj. net flux","W/m2", 173 . iim,jj mp1,nhori, klev,1,klev,nvert,163 . iim,jj_nb,nhori, klev,1,klev,nvert, 174 164 . 32, "ins(X)", zsto,zout) 175 165 c 176 166 c CALL histdef(nid_ins, "fluxec", "Cin. net flux","W/m2", 177 c . iim,jj mp1,nhori, klev,1,klev,nvert,167 c . iim,jj_nb,nhori, klev,1,klev,nvert, 178 168 c . 32, "ins(X)", zsto,zout) 179 169 c … … 184 174 c 185 175 CALL histdef(nid_ins, "dtdyn", "Dynamics dT", "K/s", 186 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,176 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 187 177 . "ins(X)", zsto,zout) 188 178 c 189 179 c CALL histdef(nid_ins, "dtphy", "Physics dT", "K/s", 190 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,180 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 191 181 c . "ins(X)", zsto,zout) 192 182 c 193 183 CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s", 194 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,184 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 195 185 . "ins(X)", zsto,zout) 196 186 c 197 187 CALL histdef(nid_ins, "dtajs", "Dry adjust. dT", "K/s", 198 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,188 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 199 189 . "ins(X)", zsto,zout) 200 190 c 201 191 CALL histdef(nid_ins, "dtswr", "SW radiation dT", "K/s", 202 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,192 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 203 193 . "ins(X)", zsto,zout) 204 194 c 205 195 CALL histdef(nid_ins, "dtlwr", "LW radiation dT", "K/s", 206 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,196 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 207 197 . "ins(X)", zsto,zout) 208 198 c 209 199 c CALL histdef(nid_ins, "dtec", "Cinetic dissip dT", "K/s", 210 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,200 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 211 201 c . "ins(X)", zsto,zout) 212 202 c 213 203 CALL histdef(nid_ins, "duajs", "Dry convection dU", "m/s2", 214 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,204 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 215 205 . "ins(X)", zsto,zout) 216 206 c 217 207 CALL histdef(nid_ins, "dugwo", "GW oro dU", "m/s2", 218 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,208 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 219 209 . "ins(X)", zsto,zout) 220 210 c 221 211 CALL histdef(nid_ins, "dugwno", "GW non-oro dU", "m/s2", 222 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,212 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 223 213 . "ins(X)", zsto,zout) 224 214 c 225 215 c CALL histdef(nid_ins, "dvvdf", "Boundary-layer dV", "m/s2", 226 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,216 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 227 217 c . "ins(X)", zsto,zout) 228 218 c … … 234 224 c call histdef(nid_ins, "taux", 235 225 c $ "Zonal wind stress", "Pa", 236 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,226 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 237 227 c $ "ins(X)", zsto,zout) 238 228 c 239 229 c call histdef(nid_ins, "tauy", 240 230 c $ "Meridional xind stress", "Pa", 241 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,231 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 242 232 c $ "ins(X)", zsto,zout) 243 233 c 244 234 c CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-", 245 c . iim,jj mp1,nhori, 1,1,1, -99, 32,235 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 246 236 c . "ins(X)", zsto,zout) 247 237 c 248 238 c CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-", 249 c . iim,jj mp1,nhori, 1,1,1, -99, 32,239 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 250 240 c . "ins(X)", zsto,zout) 251 241 c … … 254 244 c 255 245 CALL histend(nid_ins) 256 c 257 ndex2d = 0 258 ndex3d = 0 259 c 246 !$OMP END MASTER 247 260 248 ENDIF -
trunk/LMDZ.VENUS/libf/phyvenus/ini_histmth.h
r888 r892 3 3 ! 4 4 IF (ok_mensuel) THEN 5 c 5 6 6 zsto = dtime 7 7 zout = dtime * ecrit_mth 8 c 8 9 9 c zsto1: pour des valeurs "instantanees" mensuelles 10 10 zsto1 = dtime * ecrit_mth … … 12 12 zsto2 = dtime * radpas 13 13 PRINT*,' zsto,zsto1,zsto2,zout=',zsto, zsto1, zsto2,zout 14 c 14 15 15 idayref = day_ref 16 16 CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian) 17 c 18 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon) 19 DO i = 1, iim 20 zx_lon(i,1) = rlond(i+jjmp1-jjm) 21 zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm) 22 ENDDO 23 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat) 24 25 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 26 c d'ou le -1.* devant zx_lon et zx_lat 27 CALL histbeg("histmth.nc", iim,-1.*zx_lon(:,1), jjmp1, 28 . -1.*zx_lat(1,:), 29 . 1,iim,1,jjmp1, itau_phy, zjulian, zsto, 30 . nhori, nid_mth) 31 write(*,*)'Mensuel ', itau_phy, zjulian 32 CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb", 17 18 call histbeg_phy("histmth.nc",itau_phy, 19 . zjulian,zsto,nhori,nid_mth) 20 21 !$OMP MASTER 22 CALL histvert(nid_mth, "presnivs", "Vertical levels", "Pa", 33 23 . klev, presnivs, nvert) 34 24 … … 39 29 c 40 30 CALL histdef(nid_mth, "phis", "Surface geop. height", "-", 41 . iim,jj mp1,nhori, 1,1,1, -99, 32,31 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 42 32 . "once", zsto,zout) 43 33 c 44 34 CALL histdef(nid_mth, "aire", "Grid area", "-", 45 . iim,jj mp1,nhori, 1,1,1, -99, 32,35 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 46 36 . "once", zsto,zout) 47 37 c 48 38 CALL histdef(nid_mth, "tsol", "Surface Temperature", "K", 49 . iim,jj mp1,nhori, 1,1,1, -99, 32,39 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 50 40 . "ave(X)", zsto,zout) 51 41 c 52 42 CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa", 53 . iim,jj mp1,nhori, 1,1,1, -99, 32,43 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 54 44 . "ave(X)", zsto,zout) 55 45 c 56 46 c CALL histdef(nid_mth, "ue", "Zonal energy transport", "-", 57 c . iim,jj mp1,nhori, 1,1,1, -99, 32,47 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 58 48 c . "ave(X)", zsto,zout) 59 49 c 60 50 c CALL histdef(nid_mth, "ve", "Merid energy transport", "-", 61 c . iim,jj mp1,nhori, 1,1,1, -99, 32,51 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 62 52 c . "ave(X)", zsto,zout) 63 53 c 64 54 CALL histdef(nid_mth, "cdragh", "Drag coef on T", "-", 65 . iim,jj mp1,nhori, 1,1,1, -99, 32,55 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 66 56 . "ave(X)", zsto,zout) 67 57 c 68 58 CALL histdef(nid_mth, "cdragm", "Drag coef on U", "-", 69 . iim,jj mp1,nhori, 1,1,1, -99, 32,59 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 70 60 . "ave(X)", zsto,zout) 71 61 c … … 78 68 c 79 69 CALL histdef(nid_mth, "temp", "Air temperature", "K", 80 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,70 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 81 71 . "ave(X)", zsto,zout) 82 72 c 83 73 CALL histdef(nid_mth, "pres", "Air pressure", "Pa", 84 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,74 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 85 75 . "ave(X)", zsto,zout) 86 76 c 87 77 CALL histdef(nid_mth, "geop", "Geopotential height", "m", 88 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,78 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 89 79 . "ave(X)", zsto,zout) 90 80 c 91 81 CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s", 92 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,82 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 93 83 . "ave(X)", zsto,zout) 94 84 c 95 85 CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s", 96 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,86 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 97 87 . "ave(X)", zsto,zout) 98 88 c 99 89 CALL histdef(nid_mth, "vitw", "Vertical wind", "Pa/s", 100 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,90 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 101 91 . "ave(X)", zsto,zout) 102 92 c 103 93 CALL histdef(nid_mth, "dudyn", "Dynamics dU", "m/s2", 104 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,94 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 105 95 . "ave(X)", zsto,zout) 106 96 c 107 97 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 108 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,98 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 109 99 . "ave(X)", zsto,zout) 110 100 c 111 101 c CALL histdef(nid_mth, "mang", "Angular momentum", "kg m2/s", 112 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,102 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 113 103 c . "ave(X)", zsto,zout) 114 104 c 115 105 CALL histdef(nid_mth, "Kz", "vertical diffusion coef", "m2/s", 116 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,106 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 117 107 . "ave(X)", zsto,zout) 118 108 c … … 123 113 WRITE(str2,'(i2.2)') iq 124 114 CALL histdef(nid_mth, tname(iq), ttext(iq), "ppm", 125 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,115 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 126 116 . "ave(X)", zsto,zout) 127 117 ELSE … … 133 123 c 134 124 CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2", 135 . iim,jj mp1,nhori, 1,1,1, -99, 32,125 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 136 126 . "ave(X)", zsto2,zout) 137 127 c … … 146 136 c 147 137 CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2", 148 . iim,jj mp1,nhori, 1,1,1, -99, 32,138 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 149 139 . "ave(X)", zsto2,zout) 150 140 c 151 141 CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2", 152 . iim,jj mp1,nhori, 1,1,1, -99, 32,142 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 153 143 . "ave(X)", zsto2,zout) 154 144 c 155 145 CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2", 156 . iim,jj mp1,nhori, 1,1,1, -99, 32,146 . iim,jj_nb,nhori, 1,1,1, nvert, 32, 157 147 . "ave(X)", zsto2,zout) 158 148 c … … 160 150 c 161 151 CALL histdef(nid_mth, "SWnet", "Net SW flux","W/m2", 162 . iim,jj mp1,nhori, klev,1,klev,nvert,152 . iim,jj_nb,nhori, klev,1,klev,nvert, 163 153 . 32, "ave(X)", zsto2,zout) 164 154 c 165 155 CALL histdef(nid_mth, "LWnet", "Net LW flux","W/m2", 166 . iim,jj mp1,nhori, klev,1,klev,nvert,156 . iim,jj_nb,nhori, klev,1,klev,nvert, 167 157 . 32, "ave(X)", zsto2,zout) 168 158 c 169 159 CALL histdef(nid_mth, "fluxvdf", "PBL net flux","W/m2", 170 . iim,jj mp1,nhori, klev,1,klev,nvert,160 . iim,jj_nb,nhori, klev,1,klev,nvert, 171 161 . 32, "ave(X)", zsto,zout) 172 162 c 173 163 CALL histdef(nid_mth, "fluxdyn", "Dyn. net flux","W/m2", 174 . iim,jj mp1,nhori, klev,1,klev,nvert,164 . iim,jj_nb,nhori, klev,1,klev,nvert, 175 165 . 32, "ave(X)", zsto,zout) 176 166 c 177 167 CALL histdef(nid_mth, "fluxajs", "Dry adj. net flux","W/m2", 178 . iim,jj mp1,nhori, klev,1,klev,nvert,168 . iim,jj_nb,nhori, klev,1,klev,nvert, 179 169 . 32, "ave(X)", zsto,zout) 180 170 c 181 171 c CALL histdef(nid_mth, "fluxec", "Cin. net flux","W/m2", 182 c . iim,jj mp1,nhori, klev,1,klev,nvert,172 c . iim,jj_nb,nhori, klev,1,klev,nvert, 183 173 c . 32, "ave(X)", zsto,zout) 184 174 c … … 189 179 c 190 180 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", 191 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,181 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 192 182 . "ave(X)", zsto,zout) 193 183 c 194 184 c CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 195 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,185 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 196 186 c . "ave(X)", zsto,zout) 197 187 c 198 188 CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s", 199 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,189 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 200 190 . "ave(X)", zsto,zout) 201 191 c 202 192 CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s", 203 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,193 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 204 194 . "ave(X)", zsto,zout) 205 195 c 206 196 CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s", 207 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,197 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 208 198 . "ave(X)", zsto,zout) 209 199 c 210 200 CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s", 211 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,201 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 212 202 . "ave(X)", zsto,zout) 213 203 c 214 204 c CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s", 215 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,205 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 216 206 c . "ave(X)", zsto,zout) 217 207 c 218 208 CALL histdef(nid_mth, "duajs", "Dry convection dU", "m/s2", 219 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,209 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 220 210 . "ave(X)", zsto,zout) 221 211 c 222 212 CALL histdef(nid_mth, "dugwo", "GW oro dU", "m/s2", 223 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,213 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 224 214 . "ave(X)", zsto,zout) 225 215 c 226 216 CALL histdef(nid_mth, "dugwno", "GW non-oro dU", "m/s2", 227 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,217 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 228 218 . "ave(X)", zsto,zout) 229 219 c 230 220 c CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 231 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,221 c . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 232 222 c . "ave(X)", zsto,zout) 233 223 c … … 239 229 c call histdef(nid_mth, "taux", 240 230 c $ "Zonal wind stress", "Pa", 241 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,231 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 242 232 c $ "ave(X)", zsto,zout) 243 233 c 244 234 c call histdef(nid_mth, "tauy", 245 235 c $ "Meridional xind stress", "Pa", 246 c $ iim,jj mp1,nhori, 1,1,1, -99, 32,236 c $ iim,jj_nb,nhori, 1,1,1, nvert, 32, 247 237 c $ "ave(X)", zsto,zout) 248 238 c 249 239 c CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-", 250 c . iim,jj mp1,nhori, 1,1,1, -99, 32,240 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 251 241 c . "ave(X)", zsto,zout) 252 242 c 253 243 c CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-", 254 c . iim,jj mp1,nhori, 1,1,1, -99, 32,244 c . iim,jj_nb,nhori, 1,1,1, nvert, 32, 255 245 c . "ave(X)", zsto,zout) 256 246 c 257 247 ENDIF !lev_histmth.GE.5 258 248 c------------------------------------------------------- 259 c 249 260 250 CALL histend(nid_mth) 261 c 262 ndex2d = 0 263 ndex3d = 0 264 c 251 !$OMP END MASTER 252 265 253 ENDIF ! fin de test sur ok_mensuel -
trunk/LMDZ.VENUS/libf/phyvenus/iniphysiq.F
r841 r892 43 43 c ------------- 44 44 45 use dimphy 46 USE comgeomphy 45 USE dimphy, only : klev 46 USE mod_grid_phy_lmdz, only : klon_glo 47 USE mod_phys_lmdz_para, only : klon_omp,klon_omp_begin, 48 & klon_omp_end,klon_mpi_begin 49 USE comgeomphy, only : airephy,cuphy,cvphy,rlond,rlatd 47 50 IMPLICIT NONE 48 #include " dimensions.h"51 #include "iniprint.h" 49 52 50 REAL prad,pg,pr,pcpp,punjours 53 REAL,INTENT(IN) :: prad ! radius of the planet (m) 54 REAL,INTENT(IN) :: pg ! gravitational acceleration (m/s2) 55 REAL,INTENT(IN) :: pr ! ! reduced gas constant R/mu 56 REAL,INTENT(IN) :: pcpp ! specific heat Cp 57 REAL,INTENT(IN) :: punjours ! length (in s) of a standard day 58 INTEGER,INTENT(IN) :: ngrid ! number of horizontal grid points in the physics 59 INTEGER,INTENT(IN) :: nlayer ! number of atmospheric layers 60 REAL,INTENT(IN) :: plat(ngrid) ! latitudes of the physics grid 61 REAL,INTENT(IN) :: plon(ngrid) ! longitudes of the physics grid 62 REAL,INTENT(IN) :: parea(klon_glo) ! area (m2) 63 REAL,INTENT(IN) :: pcu(klon_glo) ! cu coeff. (u_covariant = cu * u) 64 REAL,INTENT(IN) :: pcv(klon_glo) ! cv coeff. (v_covariant = cv * v) 65 INTEGER,INTENT(IN) :: pdayref ! reference day of for the simulation 66 REAL,INTENT(IN) :: ptimestep !physics time step (s) 51 67 INTEGER,INTENT(IN) :: iflag_phys ! type of physics to be called 52 INTEGER ngrid,nlayer 53 REAL plat(ngrid),plon(ngrid),parea(klon),pcu(klon),pcv(klon) 54 INTEGER pdayref 55 56 REAL ptimestep 68 69 INTEGER :: ibegin,iend,offset 70 CHARACTER (LEN=20) :: modname='iniphysiq' 71 CHARACTER (LEN=80) :: abort_message 57 72 58 73 IF (nlayer.NE.klev) THEN 59 PRINT*,'STOP in inifis' 60 PRINT*,'Probleme de dimensions :' 61 PRINT*,'nlayer = ',nlayer 62 PRINT*,'klev = ',klev 63 STOP 74 write(lunout,*) 'STOP in ',trim(modname) 75 write(lunout,*) 'Problem with dimensions :' 76 write(lunout,*) 'nlayer = ',nlayer 77 write(lunout,*) 'klev = ',klev 78 abort_message = '' 79 CALL abort_gcm (modname,abort_message,1) 64 80 ENDIF 65 81 66 IF (ngrid.NE.klon) THEN 67 PRINT*,'STOP in inifis' 68 PRINT*,'Probleme de dimensions :' 69 PRINT*,'ngrid = ',ngrid 70 PRINT*,'klon = ',klon 71 STOP 82 IF (ngrid.NE.klon_glo) THEN 83 write(lunout,*) 'STOP in ',trim(modname) 84 write(lunout,*) 'Problem with dimensions :' 85 write(lunout,*) 'ngrid = ',ngrid 86 write(lunout,*) 'klon = ',klon_glo 87 abort_message = '' 88 CALL abort_gcm (modname,abort_message,1) 72 89 ENDIF 73 90 74 airephy=parea 75 cuphy=pcu 76 cvphy=pcv 77 rlond = plon 78 rlatd = plat 91 c$OMP PARALLEL PRIVATE(ibegin,iend) 92 c$OMP+ SHARED(parea,pcu,pcv,plon,plat) 93 94 offset=klon_mpi_begin-1 95 airephy(1:klon_omp)=parea(offset+klon_omp_begin: 96 & offset+klon_omp_end) 97 cuphy(1:klon_omp)=pcu(offset+klon_omp_begin:offset+klon_omp_end) 98 cvphy(1:klon_omp)=pcv(offset+klon_omp_begin:offset+klon_omp_end) 99 rlond(1:klon_omp)=plon(offset+klon_omp_begin:offset+klon_omp_end) 100 rlatd(1:klon_omp)=plat(offset+klon_omp_begin:offset+klon_omp_end) 79 101 80 102 call suphec 103 104 c$OMP END PARALLEL 105 81 106 c print*,'ATTENTION !!! TRAVAILLER SUR INIPHYSIQ' 82 107 c print*,'CONTROLE DES LATITUDES, LONGITUDES, PARAMETRES ...' 83 108 109 c print*,'agagagagagagagagaga' 110 c print*,'klon_mpi_begin =', klon_mpi_begin 111 c print*,'klon_mpi_end =', klon_mpi_end 112 c print*,'klon_mpi =', klon_mpi 113 c print*,'klon_mpi_para_nb =', klon_mpi_para_nb 114 c print*,'klon_mpi_para_begin =', klon_mpi_para_begin 115 c print*,'klon_mpi_para_end =', klon_mpi_para_end 116 c print*,'mpi_rank =', mpi_rank 117 c print*,'mpi_size =', mpi_size 118 c print*,'mpi_root =', mpi_root 119 c print*,'klon_glo =', klon_glo 120 c print*,'is_mpi_root =',is_mpi_root 121 c print*,'is_omp_root =',is_omp_root 122 123 ! pas d'inifis ici... 124 ! est-ce que cursor est utile ? Voir avec Aymeric 125 ! cursor = klon_mpi_begin 126 ! print*, "CURSOR !!!!", mpi_rank, cursor 84 127 85 128 RETURN -
trunk/LMDZ.VENUS/libf/phyvenus/init_phys_lmdz.F90
r119 r892 3 3 ! 4 4 SUBROUTINE init_phys_lmdz(iim,jjp1,llm,nb_proc,distrib) 5 USE mod_phys_lmdz_para 5 6 USE mod_grid_phy_lmdz 6 USE dimphy 7 USE dimphy, ONLY : init_dimphy 8 USE infotrac, ONLY : type_trac 9 7 10 IMPLICIT NONE 8 11 … … 15 18 16 19 CALL init_grid_phy_lmdz(iim,jjp1,llm) 17 CALL init_dimphy(klon_glo,nbp_lev) 20 CALL init_phys_lmdz_para(iim,jjp1,nb_proc,distrib) 21 !$OMP PARALLEL 22 CALL init_dimphy(klon_omp,nbp_lev) 23 !$OMP END PARALLEL 18 24 19 25 END SUBROUTINE init_phys_lmdz -
trunk/LMDZ.VENUS/libf/phyvenus/interface_surf.F90
r97 r892 256 256 257 257 zx_coef(i) = coef1lay(i) & 258 & * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) &258 & * SQRT(u1lay(i)**2+v1lay(i)**2) & 259 259 & * p1lay(i)/(RD*t1lay(i)) 260 260 -
trunk/LMDZ.VENUS/libf/phyvenus/load_ksi.F
r101 r892 32 32 real ztop(klon) ! Altitude of the top of cloud deck (km) 33 33 c outputs 34 real ksive(0:k flev+1,0:kflev+1,nnuve,nbmat) ! ksi matrixes in Vincent's file34 real ksive(0:klev+1,0:klev+1,nnuve,nbmat) ! ksi matrixes in Vincent's file 35 35 36 36 c local variables … … 44 44 real dlambda ! cm-1 45 45 46 nlve = k flev46 nlve = klev 47 47 48 48 c ------------------------ -
trunk/LMDZ.VENUS/libf/phyvenus/load_psi.F
r101 r892 38 38 real psurf(klon) ! Surface pressure 39 39 real ztop(klon) ! Altitude of the top of cloud deck (km) 40 real ksive(0:k flev+1,0:kflev+1,nnuve,nbmat) ! ksi matrixes in Vincent's file41 real temp(klon,0:k flev+1) ! Temperature in layer (K)40 real ksive(0:klev+1,0:klev+1,nnuve,nbmat) ! ksi matrixes in Vincent's file 41 real temp(klon,0:klev+1) ! Temperature in layer (K) 42 42 c outputs 43 real psimap(0:k flev+1,0:kflev+1,klon)44 real deltapsimap(0:k flev+1,0:kflev+1,klon)43 real psimap(0:klev+1,0:klev+1,klon) 44 real deltapsimap(0:klev+1,0:klev+1,klon) 45 45 46 46 c local variables … … 48 48 integer mat,m,mat0 49 49 character*100 file 50 real bplck(0:k flev+1,nnuve) ! Planck luminances in table layers51 real y(0:k flev,nnuve) ! intermediaire Planck52 real zdblay(0:k flev+1,nnuve) ! gradient en temperature de planck50 real bplck(0:klev+1,nnuve) ! Planck luminances in table layers 51 real y(0:klev,nnuve) ! intermediaire Planck 52 real zdblay(0:klev+1,nnuve) ! gradient en temperature de planck 53 53 real ksi 54 54 real factp,factz 55 55 56 nlve = k flev ! (doit correspondre, pour bplck, y et zdblay)56 nlve = klev ! (doit correspondre, pour bplck, y et zdblay) 57 57 58 58 c ----------------------- -
trunk/LMDZ.VENUS/libf/phyvenus/lw_venus_ve.F
r808 r892 35 35 c inputs 36 36 37 REAL PPB( KFLEV+1) ! inter-couches PRESSURE (bar)38 REAL pt(k flev) ! mid-layer temperature39 real psi(0:k flev+1,0:kflev+1) ! NER in W/m**240 real deltapsi(0:k flev+1,0:kflev+1) ! D NER / DT in W/m**2/K37 REAL PPB(klev+1) ! inter-couches PRESSURE (bar) 38 REAL pt(klev) ! mid-layer temperature 39 real psi(0:klev+1,0:klev+1) ! NER in W/m**2 40 real deltapsi(0:klev+1,0:klev+1) ! D NER / DT in W/m**2/K 41 41 C 42 42 c output 43 43 44 REAL PCOOL( KFLEV) ! LONGWAVE COOLING (K/VENUSDAY) within each layer44 REAL PCOOL(klev) ! LONGWAVE COOLING (K/VENUSDAY) within each layer 45 45 REAL PTOPLW ! LONGWAVE FLUX AT T.O.A. (net, + vers le haut) 46 46 REAL PSOLLW ! LONGWAVE FLUX AT SURFACE (net, + vers le haut) 47 47 REAL PSOLLWDN ! LONGWAVE FLUX AT SURFACE (down, + vers le bas) 48 REAL ZFLNET( KFLEV+1) ! net thermal flux at ppb levels (+ vers le haut)48 REAL ZFLNET(klev+1) ! net thermal flux at ppb levels (+ vers le haut) 49 49 50 50 C … … 55 55 56 56 integer i,j,p 57 real zlnet(k flev+1) ! net thermal flux (W/m**2)58 real dzlnet(0:k flev) ! Radiative budget (W/m**2)59 real pdp(k flev) ! epaisseur de la couche en pression (Pa)57 real zlnet(klev+1) ! net thermal flux (W/m**2) 58 real dzlnet(0:klev) ! Radiative budget (W/m**2) 59 real pdp(klev) ! epaisseur de la couche en pression (Pa) 60 60 61 61 c -------------------------- … … 65 65 c flux aux intercouches: 66 66 c zlnet(i+1) est le flux net traversant le plafond de la couche i (+ vers le haut) 67 do p=0,k flev ! numero de la couche67 do p=0,klev ! numero de la couche 68 68 zlnet(p+1) = 0.0 69 do j=p+1,k flev+169 do j=p+1,klev+1 70 70 do i=0,p 71 71 zlnet(p+1) = zlnet(p+1)+ psi(i,j) … … 78 78 c flux vers le bas au sol, + vers le bas: 79 79 PSOLLWDN = 0.0 80 do i=1,k flev+180 do i=1,klev+1 81 81 PSOLLWDN = PSOLLWDN+max(psi(i,0),0.0) 82 82 enddo 83 83 84 84 c dfluxnet = radiative budget (W m-2) 85 do p=0,k flev ! numero de la couche85 do p=0,klev ! numero de la couche 86 86 dzlnet(p) = 0.0 87 do j=0,k flev+187 do j=0,klev+1 88 88 dzlnet(p) = dzlnet(p)+psi(p,j) 89 89 enddo … … 97 97 c -------- 98 98 99 do j=1,k flev+199 do j=1,klev+1 100 100 ZFLNET(j) = zlnet(j) 101 101 enddo 102 PTOPLW = ZFLNET(k flev+1)102 PTOPLW = ZFLNET(klev+1) 103 103 104 104 c Heating rates … … 110 110 c /cp (J/kg/K) 111 111 112 do j=1,k flev112 do j=1,klev 113 113 pdp(j)=(PPB(j)-PPB(j+1))*1.e5 114 114 enddo … … 116 116 c calcul direct OU calcul par schema implicit 117 117 if (1.eq.1) then 118 do j=1,k flev118 do j=1,klev 119 119 ! ADAPTATION GCM POUR CP(T) 120 120 PCOOL(j) = dzlnet(j) *RG/cpdet(pt(j)) / pdp(j) 121 121 enddo 122 122 else 123 call lwi(k flev,dzlnet,deltapsi,pdp,pt,PCOOL)123 call lwi(klev,dzlnet,deltapsi,pdp,pt,PCOOL) 124 124 endif 125 125 c print*,dzlnet … … 127 127 c print*,PCOOL 128 128 129 do j=1,k flev129 do j=1,klev 130 130 PCOOL(j) = PCOOL(j)*dureejour ! K/Venusday 131 131 enddo -
trunk/LMDZ.VENUS/libf/phyvenus/lwi.F
r101 r892 10 10 11 11 #include "dimensions.h" 12 #include "comg1d.h" !pour grads 1D13 12 #include "YOMCST.h" 14 13 #include "timerad.h" -
trunk/LMDZ.VENUS/libf/phyvenus/physiq.F
r887 r892 60 60 use dimphy 61 61 USE comgeomphy 62 USE mod_phys_lmdz_para, only : is_parallel,jj_nb 63 USE phys_state_var_mod ! Variables sauvegardees de la physique 64 USE iophy 62 65 IMPLICIT none 63 66 c====================================================================== … … 117 120 REAL qx(klon,klev,nqmax) 118 121 119 REAL,save,allocatable :: t_ancien(:,:)120 REAL,save,allocatable :: u_ancien(:,:)121 LOGICAL ancien_ok122 SAVE ancien_ok123 124 122 REAL d_u_dyn(klon,klev) 125 123 REAL d_t_dyn(klon,klev) … … 133 131 REAL d_ps(klon) 134 132 135 REAL,save,allocatable :: swnet(:,:)136 REAL,save,allocatable :: lwnet(:,:)137 c138 133 logical ok_hf 139 134 real ecrit_hf … … 149 144 c Variables propres a la physique 150 145 c 151 REAL,save,allocatable :: radsol(:) ! bilan radiatif au sol calcule par code radiatif152 146 REAL,save,allocatable :: rlev(:,:) ! altitude a chaque niveau (interface inferieure de la couche) 153 147 INTEGER,save :: itap ! compteur pour la physique 154 REAL,save,allocatable :: ftsol(:) ! temperature du sol155 REAL,save,allocatable :: ftsoil(:,:) ! temperature dans le sol156 REAL,save,allocatable :: falbe(:) ! albedo157 148 REAL delp(klon,klev) ! epaisseur d'une couche 158 149 159 CMODDEB FLOTT160 c161 c Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):162 c163 REAL,save,allocatable :: zmea(:) ! orographie moyenne164 REAL,save,allocatable :: zstd(:) ! deviation standard de l'OESM165 REAL,save,allocatable :: zsig(:) ! pente de l'OESM166 REAL,save,allocatable :: zgam(:) ! anisotropie de l'OESM167 REAL,save,allocatable :: zthe(:) ! orientation de l'OESM168 REAL,save,allocatable :: zpic(:) ! Maximum de l'OESM169 REAL,save,allocatable :: zval(:) ! Minimum de l'OESM170 REAL,save,allocatable :: rugoro(:) ! longueur de rugosite de l'OESM171 172 150 INTEGER igwd,idx(klon),itest(klon) 173 151 c … … 198 176 199 177 REAL zustrph(klon),zvstrph(klon) 200 REAL,save,allocatable :: zuthe(:),zvthe(:)201 178 202 179 c Variables locales: … … 213 190 214 191 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee 215 REAL,save,allocatable :: dlw(:) ! derivee infra rouge216 REAL,save,allocatable :: fder(:) ! Derive de flux (sensible et latente)217 192 REAL ve(klon) ! integr. verticale du transport meri. de l'energie 218 193 REAL vq(klon) ! integr. verticale du transport meri. de l'eau … … 234 209 EXTERNAL suphec ! initialiser certaines constantes 235 210 EXTERNAL transp ! transport total de l'eau et de l'energie 236 INTEGER lnblnk1237 EXTERNAL lnblnk1 !enleve les blancs a la fin d'une variable de type238 !caracter239 211 EXTERNAL abort_gcm 240 212 EXTERNAL printflag … … 257 229 REAL flux_ec(klon,klev) ! flux de chaleur Ec 258 230 c 259 c Le rayonnement n'est pas calcule tous les pas, il faut donc260 c sauvegarder les sorties du rayonnement261 REAL,save,allocatable :: heat(:,:) ! chauffage solaire262 REAL,save,allocatable :: cool(:,:) ! refroidissement infrarouge263 REAL,save,allocatable :: dtrad(:,:) ! K s-1264 REAL,save,allocatable :: topsw(:), toplw(:)265 REAL,save,allocatable :: solsw(:), sollw(:)266 REAL,save,allocatable :: sollwdown(:) ! downward LW flux at surface267 231 REAL tmpout(klon,klev) ! K s-1 268 232 … … 321 285 c 322 286 c pour ioipsl 323 INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)324 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique325 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D326 REAL zx_tmp_2d(iim,jjmp1),zx_tmp_3d(iim,jjmp1,klev)327 REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1)328 329 287 INTEGER nid_day, nid_mth, nid_ins 330 288 SAVE nid_day, nid_mth, nid_ins 331 c332 289 INTEGER nhori, nvert, idayref 333 290 REAL zsto, zout, zsto1, zsto2, zero … … 383 340 bilansmc = 0 384 341 ballons = 0 342 ! NE FONCTIONNENT PAS ENCORE EN PARALLELE !!! 343 if (is_parallel) then 344 bilansmc = 0 345 ballons = 0 346 endif 385 347 386 348 IF (if_ebil.ge.1) THEN … … 398 360 c======================== 399 361 IF (debut) THEN 400 allocate(t_ancien(klon,klev),u_ancien(klon,klev)) 401 allocate(swnet(klon,klevp1),lwnet(klon,klevp1)) 402 allocate(radsol(klon),ftsol(klon),falbe(klon)) 403 allocate(rlev(klon,klevp1),ftsoil(klon,nsoilmx)) 404 allocate(zmea(klon),zstd(klon),zsig(klon),zgam(klon)) 405 allocate(zthe(klon),zpic(klon),zval(klon),rugoro(klon)) 406 allocate(zuthe(klon),zvthe(klon),dlw(klon),fder(klon)) 407 allocate(heat(klon,klev),cool(klon,klev)) 408 allocate(dtrad(klon,klev),topsw(klon),toplw(klon)) 409 allocate(solsw(klon),sollw(klon),sollwdown(klon)) 362 allocate(rlev(klon,klevp1)) 410 363 allocate(source(klon,nqmax)) 411 364 … … 420 373 . if_ebil) 421 374 375 call phys_state_var_init 422 376 c 423 377 c Initialiser les compteurs: … … 428 382 c Lecture startphy.nc : 429 383 c 430 c REMETTRE TOUS LES PARAMETRES POUR OROGW... 431 CALL phyetat0 ("startphy.nc", 432 . rlatd,rlond,ftsol,ftsoil, 433 . falbe, solsw, sollw, 434 . dlw,radsol, 435 . zmea,zstd,zsig,zgam,zthe,zpic,zval, 436 . t_ancien, ancien_ok) 384 CALL phyetat0 ("startphy.nc") 437 385 438 386 c dtime est defini dans tabcontrol.h et lu dans startphy … … 1308 1256 IF (lafin) THEN 1309 1257 itau_phy = itau_phy + itap 1310 c REMETTRE TOUS LES PARAMETRES POUR OROGW... 1311 CALL phyredem ("restartphy.nc", 1312 . rlatd, rlond, ftsol, ftsoil, 1313 . falbe, 1314 . solsw, sollw,dlw, 1315 . radsol, 1316 . zmea,zstd,zsig,zgam,zthe,zpic,zval, 1317 . t_ancien) 1258 CALL phyredem ("restartphy.nc") 1318 1259 1319 1260 c--------------FLOTT -
trunk/LMDZ.VENUS/libf/phyvenus/phytrac.F
r101 r892 86 86 cAA 87 87 88 CHARACTER*2 itn89 C maf ioipsl90 CHARACTER*2 str291 INTEGER nhori, nvert92 REAL zsto, zout, zjulian93 INTEGER nid_tra94 SAVE nid_tra95 INTEGER nid_tra2,nid_tra396 SAVE nid_tra2,nid_tra397 INTEGER ndex(1)98 INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)99 REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)100 REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)101 c102 integer itau_w ! pas de temps ecriture = nstep + itau_phy103 c104 105 C106 C Variables liees a l'ecriture de la bande histoire : phytrac.nc107 c108 c INTEGER ecrit_tra109 c SAVE ecrit_tra110 logical ok_sync111 parameter (ok_sync = .true.)112 C113 88 C les traceurs 114 89 C -
trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F
r101 r892 55 55 real solsw(klon), sollw(klon) 56 56 real sollwdown(klon) 57 REAL swnet(klon,k flev+1),lwnet(klon,kflev+1)57 REAL swnet(klon,klev+1),lwnet(klon,klev+1) 58 58 c 59 59 INTEGER k, kk, i, j, nb_gr 60 60 c 61 REAL PPB(k flev+1)61 REAL PPB(klev+1) 62 62 c 63 63 REAL zfract, zrmu0 64 64 c 65 REAL zheat(k flev), zcool(kflev)66 REAL ZFSNET( KFLEV+1),ZFLNET(KFLEV+1)65 REAL zheat(klev), zcool(klev) 66 REAL ZFSNET(klev+1),ZFLNET(klev+1) 67 67 REAL ztopsw, ztoplw 68 68 REAL zsolsw, zsollw … … 71 71 cIM END 72 72 real,save,allocatable :: ksive(:,:,:,:) ! ksi matrixes in Vincent's file 73 real psimap(0:k flev+1,0:kflev+1,klon)74 real deltapsimap(0:k flev+1,0:kflev+1,klon)75 real psi(0:k flev+1,0:kflev+1)76 real deltapsi(0:k flev+1,0:kflev+1)73 real psimap(0:klev+1,0:klev+1,klon) 74 real deltapsimap(0:klev+1,0:klev+1,klon) 75 real psi(0:klev+1,0:klev+1) 76 real deltapsi(0:klev+1,0:klev+1) 77 77 real latdeg 78 real pt0(klon,0:k flev+1)78 real pt0(klon,0:klev+1) 79 79 real,save,allocatable :: ztop(:) ! in km 80 80 … … 92 92 93 93 c ---------- ksive -------------- 94 allocate(ksive(0:k flev+1,0:kflev+1,nnuve,nbmat))94 allocate(ksive(0:klev+1,0:klev+1,nnuve,nbmat)) 95 95 call load_ksi(ksive) 96 96 c ---------- ztop -------------- … … 122 122 pt0(i,k) = t(i,k) 123 123 ENDDO 124 pt0(i,k flev+1) = 0.124 pt0(i,klev+1) = 0. 125 125 ENDDO !i 126 126 … … 154 154 zrmu0 = rmu0(j) 155 155 156 DO k = 1, k flev+1156 DO k = 1, klev+1 157 157 PPB(k) = paprs(j,k)/1.e5 158 158 ENDDO 159 159 160 DO k = 0,k flev+1161 DO i = 0,k flev+1160 DO k = 0,klev+1 161 DO i = 0,klev+1 162 162 psi(i,k) = psimap(i,k,j) 163 163 deltapsi(i,k) = deltapsimap(i,k,j) … … 190 190 sollwdown(j) = zsollwdown ! + vers bas 191 191 192 DO k = 1, k flev+1192 DO k = 1, klev+1 193 193 lwnet (j,k) = ZFLNET(k) 194 194 swnet (j,k) = ZFSNET(k) 195 195 ENDDO 196 196 197 DO k = 1, k flev197 DO k = 1, klev 198 198 heat (j,k) = zheat(k) 199 199 cool (j,k) = zcool(k) … … 209 209 c print*,'mu0=',rmu0(j) 210 210 c print*,' net flux vis HEAT(K/day)' 211 c do k=1,k flev211 c do k=1,klev 212 212 c print*,k,ZFSNET(k),heat(j,k)*8.56548e-3 213 213 c enddo 214 214 c print*,' net flux IR COOL(K/day)' 215 c do k=1,k flev215 c do k=1,klev 216 216 c print*,k,ZFLNET(k),cool(j,k)*8.56548e-3 217 217 c enddo -
trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.NewtonCool
r101 r892 53 53 real solsw(klon), sollw(klon) 54 54 real sollwdown(klon) 55 REAL swnet(klon,k flev+1),lwnet(klon,kflev+1)55 REAL swnet(klon,klev+1),lwnet(klon,klev+1) 56 56 c 57 57 INTEGER i,j,k … … 138 138 sollwdown(j) = 0. ! + vers bas 139 139 140 DO k = 1, k flev+1140 DO k = 1, klev+1 141 141 lwnet (j,k) = 0. 142 142 swnet (j,k) = 0. 143 143 ENDDO 144 144 145 DO k = 1, k flev145 DO k = 1, klev 146 146 heat (j,k) = dTsdt(k)*dureejour ! K/Venusday 147 147 cool (j,k) = 0. -
trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_dc.F
r101 r892 34 34 REAL PRMU0 ! COSINE OF ZENITHAL ANGLE 35 35 REAL PFRAC ! fraction de la journee 36 REAL PPB( KFLEV+1) ! inter-couches PRESSURE (bar)37 REAL pt(k flev) ! mid-layer temperature36 REAL PPB(klev+1) ! inter-couches PRESSURE (bar) 37 REAL pt(klev) ! mid-layer temperature 38 38 C 39 39 c output 40 40 41 REAL PHEAT( KFLEV) ! SHORTWAVE HEATING (K/VENUSDAY) within each layer41 REAL PHEAT(klev) ! SHORTWAVE HEATING (K/VENUSDAY) within each layer 42 42 REAL PTOPSW ! SHORTWAVE FLUX AT T.O.A. (net) 43 43 REAL PSOLSW ! SHORTWAVE FLUX AT SURFACE (net) 44 REAL ZFSNET( KFLEV+1) ! net solar flux at ppb levels44 REAL ZFSNET(klev+1) ! net solar flux at ppb levels 45 45 46 46 C … … 114 114 c read(12,*) nullchar 115 115 c 116 c do j=1,k flev+1116 c do j=1,klev+1 117 117 c read(12,*) zlup,zldn,zsolVE(j) 118 118 c enddo … … 182 182 c --------------- 183 183 184 do j=1,k flev+1184 do j=1,klev+1 185 185 nl0 = 2 186 186 do i=1,nldc … … 212 212 c Fichiers de Vincent 213 213 c ----------------------------- 214 c do j=1,k flev+1214 c do j=1,klev+1 215 215 c ZFSNET(j)=zsolVE(j) 216 216 c enddo … … 218 218 c -------- FIN TEST ---------- 219 219 220 PTOPSW = ZFSNET(k flev+1)220 PTOPSW = ZFSNET(klev+1) 221 221 PSOLSW = ZFSNET(1) 222 222 … … 229 229 c /cp (J/kg/K) 230 230 231 do j=1,k flev231 do j=1,klev 232 232 ! ADAPTATION GCM POUR CP(T) 233 233 PHEAT(j) = (ZFSNET(j+1)-ZFSNET(j)) -
trunk/LMDZ.VENUS/libf/phyvenus/ustarhb.F
r101 r892 41 41 zxu = u(i,1)*zx_alf1+u(i,2)*zx_alf2 42 42 zxv = v(i,1)*zx_alf1+v(i,2)*zx_alf2 43 zxmod = 1.0+SQRT(zxu**2+zxv**2)43 zxmod = SQRT(zxu**2+zxv**2) 44 44 taux = zxu *zxmod*cd_m(i) 45 45 tauy = zxv *zxmod*cd_m(i) -
trunk/LMDZ.VENUS/libf/phyvenus/write_histday.h
r808 r892 3 3 ! 4 4 IF (ok_journe) THEN 5 c6 ndex2d = 07 ndex3d = 08 zx_tmp_2d = 0.9 zx_tmp_3d = 0.10 zx_tmp_fi2d=0.11 zx_tmp_fi3d=0.12 5 13 c14 6 zsto = dtime 15 7 zout = dtime * REAL(ecrit_day) 16 8 itau_w = itau_phy + itap 17 9 18 c19 10 c------------------------------------------------------- 20 11 IF(lev_histday.GE.1) THEN 21 c 12 22 13 ccccccccccccc 2D fields, basics 23 c 24 i = NINT(zout/zsto) 25 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 26 CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 27 C 28 i = NINT(zout/zsto) 29 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 30 CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 31 c 32 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d) 33 CALL histwrite(nid_day,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 34 c 35 DO i = 1, klon 36 zx_tmp_fi2d(i) = paprs(i,1) 37 ENDDO 38 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 39 CALL histwrite(nid_day,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 40 c 41 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 42 CALL histwrite(nid_day,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 43 c 44 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 45 CALL histwrite(nid_day,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 46 c 14 15 call histwrite_phy(nid_day,.false.,"phis",itau_w,pphis) 16 call histwrite_phy(nid_day,.false.,"aire",itau_w,airephy) 17 call histwrite_phy(nid_day,.false.,"tsol",itau_w,ftsol) 18 call histwrite_phy(nid_day,.false.,"psol",itau_w,paprs(:,1)) 19 c call histwrite_phy(nid_day,.false.,"ue",itau_w,ue) 20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 21 c call histwrite_phy(nid_day,.false.,"ve",itau_w,-1.*ve) 22 c call histwrite_phy(nid_day,.false.,"cdragh",itau_w,cdragh) 23 c call histwrite_phy(nid_day,.false.,"cdragm",itau_w,cdragm) 24 47 25 ENDIF !lev_histday.GE.1 48 c 26 49 27 c------------------------------------------------------- 50 28 IF(lev_histday.GE.2) THEN 51 c 29 52 30 ccccccccccccc 3D fields, basics 53 c 54 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 55 CALL histwrite(nid_day,"temp",itau_w,zx_tmp_3d, 56 . iim*jjmp1*klev,ndex3d) 57 c 58 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 59 CALL histwrite(nid_day,"pres",itau_w,zx_tmp_3d, 60 . iim*jjmp1*klev,ndex3d) 61 c 62 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 63 CALL histwrite(nid_day,"geop",itau_w,zx_tmp_3d, 64 . iim*jjmp1*klev,ndex3d) 65 c 66 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 67 CALL histwrite(nid_day,"vitu",itau_w,zx_tmp_3d, 68 . iim*jjmp1*klev,ndex3d) 69 c 70 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 71 CALL histwrite(nid_day,"vitv",itau_w,zx_tmp_3d, 72 . iim*jjmp1*klev,ndex3d) 73 c 74 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 75 CALL histwrite(nid_day,"vitw",itau_w,zx_tmp_3d, 76 . iim*jjmp1*klev,ndex3d) 77 c 31 32 call histwrite_phy(nid_day,.false.,"temp",itau_w,t_seri) 33 call histwrite_phy(nid_day,.false.,"pres",itau_w,pplay) 34 call histwrite_phy(nid_day,.false.,"geop",itau_w,zphi) 35 call histwrite_phy(nid_day,.false.,"vitu",itau_w,u_seri) 36 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 37 call histwrite_phy(nid_day,.false.,"vitv",itau_w,-1.*v_seri) 38 call histwrite_phy(nid_day,.false.,"vitw",itau_w,omega) 39 c en (m/s)/s 40 call histwrite_phy(nid_day,.false.,"dudyn",itau_w,d_u_dyn) 41 c en (m/s)/s 42 call histwrite_phy(nid_day,.false.,"duvdf",itau_w,d_u_vdf) 43 c call histwrite_phy(nid_day,.false.,"mang",itau_w,mang) 44 c call histwrite_phy(nid_day,.false.,"Kz",itau_w,ycoefh) 45 46 c plusieurs traceurs 47 IF (iflag_trac.eq.1) THEN 48 DO iq=1,nqmax 49 call histwrite_phy(nid_day,.false.,tname(iq),itau_w,qx(:,:,iq)) 50 ENDDO 51 ENDIF 52 53 call histwrite_phy(nid_day,.false.,"tops",itau_w,topsw) 54 78 55 ENDIF !lev_histday.GE.2 79 56 c … … 82 59 c 83 60 cccccccccccccccccc Radiative transfer 84 c 61 85 62 c 2D 86 c 87 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 88 CALL histwrite(nid_day,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 89 c 90 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 91 CALL histwrite(nid_day,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 92 c 93 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 94 CALL histwrite(nid_day,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 95 c 96 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 97 CALL histwrite(nid_day,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 98 c 63 64 call histwrite_phy(nid_day,.false.,"topl",itau_w,toplw) 65 call histwrite_phy(nid_day,.false.,"sols",itau_w,solsw) 66 call histwrite_phy(nid_day,.false.,"soll",itau_w,sollw) 67 99 68 c 3D 100 c 101 zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev) 102 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 103 CALL histwrite(nid_day,"SWnet",itau_w,zx_tmp_3d, 104 . iim*jjmp1*klev,ndex3d) 105 c 106 zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev) 107 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 108 CALL histwrite(nid_day,"LWnet",itau_w,zx_tmp_3d, 109 . iim*jjmp1*klev,ndex3d) 110 c 69 70 call histwrite_phy(nid_day,.false.,"SWnet",itau_w,swnet) 71 call histwrite_phy(nid_day,.false.,"LWnet",itau_w,lwnet) 72 c call histwrite_phy(nid_day,.false.,"fluxvdf",itau_w,fluxt) 73 c call histwrite_phy(nid_day,.false.,"fluxdyn",itau_w,flux_dyn) 74 c call histwrite_phy(nid_day,.false.,"fluxajs",itau_w,flux_ajs) 75 c call histwrite_phy(nid_day,.false.,"fluxec",itau_w,flux_ec) 76 111 77 ENDIF !lev_histday.GE.3 112 78 c 113 79 c------------------------------------------------------- 114 80 IF(lev_histday.GE.4) THEN 115 c 81 116 82 c en K/s 117 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 118 CALL histwrite(nid_day,"dtdyn",itau_w,zx_tmp_3d, 119 . iim*jjmp1*klev,ndex3d) 120 c 83 call histwrite_phy(nid_day,.false.,"dtdyn",itau_w,d_t_dyn) 121 84 c en K/s 122 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 123 c CALL histwrite(nid_day,"dtphy",itau_w,zx_tmp_3d, 124 c . iim*jjmp1*klev,ndex3d) 125 c 85 c call histwrite_phy(nid_day,.false.,"dtphy",itau_w,d_t) 126 86 c en K/s 127 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d) 128 CALL histwrite(nid_day,"dtvdf",itau_w,zx_tmp_3d, 129 . iim*jjmp1*klev,ndex3d) 130 c 87 call histwrite_phy(nid_day,.false.,"dtvdf",itau_w,d_t_vdf) 131 88 c en K/s 132 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d) 133 CALL histwrite(nid_day,"dtajs",itau_w,zx_tmp_3d, 134 . iim*jjmp1*klev,ndex3d) 135 c 89 call histwrite_phy(nid_day,.false.,"dtajs",itau_w,d_t_ajs) 136 90 c K/day ==> K/s 137 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 138 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 139 CALL histwrite(nid_day,"dtswr",itau_w,zx_tmp_3d, 140 . iim*jjmp1*klev,ndex3d) 141 c 91 call histwrite_phy(nid_day,.false.,"dtswr",itau_w,heat/RDAY) 142 92 c K/day ==> K/s 143 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 144 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 145 CALL histwrite(nid_day,"dtlwr",itau_w,zx_tmp_3d, 146 . iim*jjmp1*klev,ndex3d) 93 call histwrite_phy(nid_day,.false.,"dtlwr",itau_w,-1.*cool/RDAY) 147 94 c en K/s 148 c zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 149 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 150 c CALL histwrite(nid_day,"dtec",itau_w,zx_tmp_3d, 151 c . iim*jjmp1*klev,ndex3d) 152 c 95 c call histwrite_phy(nid_day,.false.,"dtec",itau_w,d_t_ec) 153 96 c en (m/s)/s 154 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d) 155 CALL histwrite(nid_day,"dudyn",itau_w,zx_tmp_3d, 156 . iim*jjmp1*klev,ndex3d) 157 c 97 call histwrite_phy(nid_day,.false.,"duajs",itau_w,d_u_ajs) 158 98 c en (m/s)/s 159 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 160 CALL histwrite(nid_day,"duvdf",itau_w,zx_tmp_3d, 161 . iim*jjmp1*klev,ndex3d) 162 c 99 call histwrite_phy(nid_day,.false.,"dugwo",itau_w,d_u_oro) 163 100 c en (m/s)/s 164 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d) 165 CALL histwrite(nid_day,"duajs",itau_w,zx_tmp_3d, 166 . iim*jjmp1*klev,ndex3d) 167 c 101 call histwrite_phy(nid_day,.false.,"dugwno",itau_w,d_u_hin) 168 102 c en (m/s)/s 169 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d)170 CALL histwrite(nid_day,"dugwo",itau_w,zx_tmp_3d,171 . iim*jjmp1*klev,ndex3d)172 c173 c en (m/s)/s174 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d)175 CALL histwrite(nid_day,"dugwno",itau_w,zx_tmp_3d,176 . iim*jjmp1*klev,ndex3d)177 c178 c en (m/s)/s179 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)180 103 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 181 c zx_tmp_3d=-1.*zx_tmp_3d 182 c CALL histwrite(nid_day,"dvvdf",itau_w,zx_tmp_3d, 183 c . iim*jjmp1*klev,ndex3d) 184 c 104 c call histwrite_phy(nid_day,.false.,"dvvdf",itau_w,-1.*d_v_vdf) 105 185 106 ENDIF !lev_histday.GE.4 186 107 c 187 108 c------------------------------------------------------- 188 109 IF(lev_histday.GE.5) THEN 189 c 190 IF (nqmax.GE.3) THEN 191 DO iq=1,nqmax-2 192 IF (iq.LE.99) THEN 193 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d) 194 WRITE(str2,'(i2.2)') iq 195 CALL histwrite(nid_day,"trac"//str2,itau_w,zx_tmp_3d, 196 . iim*jjmp1*klev,ndex3d) 197 ELSE 198 PRINT*, "Trop de traceurs" 199 CALL abort 200 ENDIF 201 ENDDO 202 ENDIF 203 c 204 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d) 205 c CALL histwrite(nid_day,"taux_",itau_w, 206 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 207 c 208 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d) 209 c CALL histwrite(nid_day,"tauy_",itau_w, 210 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 211 c 212 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 213 c CALL histwrite(nid_day,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 214 c 215 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 216 c CALL histwrite(nid_day,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 217 c 110 111 c call histwrite_phy(nid_day,.false.,"taux_",itau_w,fluxu) 112 c call histwrite_phy(nid_day,.false.,"tauy_",itau_w,fluxv) 113 c call histwrite_phy(nid_day,.false.,"cdrm",itau_w,cdragm) 114 c call histwrite_phy(nid_day,.false.,"cdrh",itau_w,cdragh) 115 218 116 ENDIF !lev_histday.GE.5 219 117 c------------------------------------------------------- -
trunk/LMDZ.VENUS/libf/phyvenus/write_histins.h
r888 r892 3 3 ! 4 4 IF (ok_instan) THEN 5 c 6 ndex2d = 0 7 ndex3d = 0 8 zx_tmp_2d = 0. 9 zx_tmp_3d = 0. 10 zx_tmp_fi2d=0. 11 zx_tmp_fi3d=0. 12 c 5 13 6 zsto = dtime * ecrit_ins 14 7 zout = dtime * ecrit_ins 15 8 itau_w = itau_phy + itap 16 9 17 c18 10 c------------------------------------------------------- 19 11 IF(lev_histday.GE.1) THEN 20 c 12 21 13 ccccccccccccc 2D fields, basics 22 c 23 i = NINT(zout/zsto) 24 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 25 CALL histwrite(nid_ins,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 26 C 27 i = NINT(zout/zsto) 28 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 29 CALL histwrite(nid_ins,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 30 c 31 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d) 32 CALL histwrite(nid_ins,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 33 c 34 DO i = 1, klon 35 zx_tmp_fi2d(i) = paprs(i,1) 36 ENDDO 37 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 38 CALL histwrite(nid_ins,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 39 c 40 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 41 c CALL histwrite(nid_ins,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 42 c 43 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 14 15 call histwrite_phy(nid_ins,.false.,"phis",itau_w,pphis) 16 call histwrite_phy(nid_ins,.false.,"aire",itau_w,airephy) 17 call histwrite_phy(nid_ins,.false.,"tsol",itau_w,ftsol) 18 call histwrite_phy(nid_ins,.false.,"psol",itau_w,paprs(:,1)) 19 c call histwrite_phy(nid_ins,.false.,"ue",itau_w,ue) 44 20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 45 c zx_tmp_2d=-1.*zx_tmp_2d 46 c CALL histwrite(nid_ins,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 47 c 48 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 49 CALL histwrite(nid_ins,"cdragh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 50 c 51 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 52 CALL histwrite(nid_ins,"cdragm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 53 c 21 c call histwrite_phy(nid_ins,.false.,"ve",itau_w,-1.*ve) 22 c call histwrite_phy(nid_ins,.false.,"cdragh",itau_w,cdragh) 23 c call histwrite_phy(nid_ins,.false.,"cdragm",itau_w,cdragm) 24 54 25 ENDIF !lev_histday.GE.1 55 c 26 56 27 c------------------------------------------------------- 57 28 IF(lev_histday.GE.2) THEN 58 c 29 59 30 ccccccccccccc 3D fields, basics 60 c 61 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 62 CALL histwrite(nid_ins,"temp",itau_w,zx_tmp_3d, 63 . iim*jjmp1*klev,ndex3d) 64 c 65 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 66 CALL histwrite(nid_ins,"pres",itau_w,zx_tmp_3d, 67 . iim*jjmp1*klev,ndex3d) 68 c 69 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 70 CALL histwrite(nid_ins,"geop",itau_w,zx_tmp_3d, 71 . iim*jjmp1*klev,ndex3d) 72 c 73 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 74 CALL histwrite(nid_ins,"vitu",itau_w,zx_tmp_3d, 75 . iim*jjmp1*klev,ndex3d) 76 c 77 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 31 32 call histwrite_phy(nid_ins,.false.,"temp",itau_w,t_seri) 33 call histwrite_phy(nid_ins,.false.,"pres",itau_w,pplay) 34 call histwrite_phy(nid_ins,.false.,"geop",itau_w,zphi) 35 call histwrite_phy(nid_ins,.false.,"vitu",itau_w,u_seri) 78 36 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 79 zx_tmp_3d=-1.*zx_tmp_3d 80 CALL histwrite(nid_ins,"vitv",itau_w,zx_tmp_3d, 81 . iim*jjmp1*klev,ndex3d) 82 c 83 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 84 CALL histwrite(nid_ins,"vitw",itau_w,zx_tmp_3d, 85 . iim*jjmp1*klev,ndex3d) 86 c 37 call histwrite_phy(nid_ins,.false.,"vitv",itau_w,-1.*v_seri) 38 call histwrite_phy(nid_ins,.false.,"vitw",itau_w,omega) 87 39 c en (m/s)/s 88 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d) 89 CALL histwrite(nid_ins,"dudyn",itau_w,zx_tmp_3d, 90 . iim*jjmp1*klev,ndex3d) 91 c 40 call histwrite_phy(nid_ins,.false.,"dudyn",itau_w,d_u_dyn) 92 41 c en (m/s)/s 93 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 94 CALL histwrite(nid_ins,"duvdf",itau_w,zx_tmp_3d, 95 . iim*jjmp1*klev,ndex3d) 96 c 97 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, mang, zx_tmp_3d) 98 c CALL histwrite(nid_ins,"mang",itau_w,zx_tmp_3d, 99 c . iim*jjmp1*klev,ndex3d) 100 c 101 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ycoefh, zx_tmp_3d) 102 CALL histwrite(nid_ins,"Kz",itau_w,zx_tmp_3d, 103 . iim*jjmp1*klev,ndex3d) 104 c 42 call histwrite_phy(nid_ins,.false.,"duvdf",itau_w,d_u_vdf) 43 c call histwrite_phy(nid_ins,.false.,"mang",itau_w,mang) 44 c call histwrite_phy(nid_ins,.false.,"Kz",itau_w,ycoefh) 45 105 46 c plusieurs traceurs 106 47 IF (iflag_trac.eq.1) THEN 107 48 DO iq=1,nqmax 108 IF (iq.LE.99) THEN 109 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 110 WRITE(str2,'(i2.2)') iq 111 CALL histwrite(nid_ins,tname(iq),itau_w,zx_tmp_3d, 112 . iim*jjmp1*klev,ndex3d) 113 ELSE 114 PRINT*, "Trop de traceurs" 115 CALL abort 116 ENDIF 49 call histwrite_phy(nid_ins,.false.,tname(iq),itau_w,qx(:,:,iq)) 117 50 ENDDO 118 51 ENDIF 119 c 120 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 121 CALL histwrite(nid_ins,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 122 c 52 53 call histwrite_phy(nid_ins,.false.,"tops",itau_w,topsw) 54 123 55 ENDIF !lev_histday.GE.2 124 c 56 125 57 c------------------------------------------------------- 126 58 IF(lev_histday.GE.3) THEN 127 c 59 128 60 cccccccccccccccccc Radiative transfer 129 c 61 130 62 c 2D 131 c 132 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 133 CALL histwrite(nid_ins,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 134 c 135 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 136 CALL histwrite(nid_ins,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 137 c 138 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 139 CALL histwrite(nid_ins,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 140 c 63 64 call histwrite_phy(nid_ins,.false.,"topl",itau_w,toplw) 65 call histwrite_phy(nid_ins,.false.,"sols",itau_w,solsw) 66 call histwrite_phy(nid_ins,.false.,"soll",itau_w,sollw) 67 141 68 c 3D 142 c 143 zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev) 144 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 145 CALL histwrite(nid_ins,"SWnet",itau_w,zx_tmp_3d, 146 . iim*jjmp1*klev,ndex3d) 147 c 148 zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev) 149 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 150 CALL histwrite(nid_ins,"LWnet",itau_w,zx_tmp_3d, 151 . iim*jjmp1*klev,ndex3d) 152 c 153 zx_tmp_fi3d(1:klon,1:klev)=fluxt(1:klon,1:klev) 154 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 155 CALL histwrite(nid_ins,"fluxvdf",itau_w,zx_tmp_3d, 156 . iim*jjmp1*klev,ndex3d) 157 c 158 zx_tmp_fi3d(1:klon,1:klev)=flux_dyn(1:klon,1:klev) 159 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 160 CALL histwrite(nid_ins,"fluxdyn",itau_w,zx_tmp_3d, 161 . iim*jjmp1*klev,ndex3d) 162 c 163 zx_tmp_fi3d(1:klon,1:klev)=flux_ajs(1:klon,1:klev) 164 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 165 CALL histwrite(nid_ins,"fluxajs",itau_w,zx_tmp_3d, 166 . iim*jjmp1*klev,ndex3d) 167 c 168 c zx_tmp_fi3d(1:klon,1:klev)=flux_ec(1:klon,1:klev) 169 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 170 c CALL histwrite(nid_ins,"fluxec",itau_w,zx_tmp_3d, 171 c . iim*jjmp1*klev,ndex3d) 172 c 69 70 call histwrite_phy(nid_ins,.false.,"SWnet",itau_w,swnet) 71 call histwrite_phy(nid_ins,.false.,"LWnet",itau_w,lwnet) 72 c call histwrite_phy(nid_ins,.false.,"fluxvdf",itau_w,fluxt) 73 c call histwrite_phy(nid_ins,.false.,"fluxdyn",itau_w,flux_dyn) 74 c call histwrite_phy(nid_ins,.false.,"fluxajs",itau_w,flux_ajs) 75 c call histwrite_phy(nid_ins,.false.,"fluxec",itau_w,flux_ec) 76 173 77 ENDIF !lev_histday.GE.3 174 c 78 175 79 c------------------------------------------------------- 176 80 IF(lev_histday.GE.4) THEN 177 c 81 178 82 c en K/s 179 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 180 CALL histwrite(nid_ins,"dtdyn",itau_w,zx_tmp_3d, 181 . iim*jjmp1*klev,ndex3d) 182 c 83 call histwrite_phy(nid_ins,.false.,"dtdyn",itau_w,d_t_dyn) 183 84 c en K/s 184 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 185 c CALL histwrite(nid_ins,"dtphy",itau_w,zx_tmp_3d, 186 c . iim*jjmp1*klev,ndex3d) 187 c 85 c call histwrite_phy(nid_ins,.false.,"dtphy",itau_w,d_t) 188 86 c en K/s 189 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d) 190 CALL histwrite(nid_ins,"dtvdf",itau_w,zx_tmp_3d, 191 . iim*jjmp1*klev,ndex3d) 192 c 87 call histwrite_phy(nid_ins,.false.,"dtvdf",itau_w,d_t_vdf) 193 88 c en K/s 194 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d) 195 CALL histwrite(nid_ins,"dtajs",itau_w,zx_tmp_3d, 196 . iim*jjmp1*klev,ndex3d) 197 c 89 call histwrite_phy(nid_ins,.false.,"dtajs",itau_w,d_t_ajs) 198 90 c K/day ==> K/s 199 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 200 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 201 CALL histwrite(nid_ins,"dtswr",itau_w,zx_tmp_3d, 202 . iim*jjmp1*klev,ndex3d) 203 c 91 call histwrite_phy(nid_ins,.false.,"dtswr",itau_w,heat/RDAY) 204 92 c K/day ==> K/s 205 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 206 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 207 CALL histwrite(nid_ins,"dtlwr",itau_w,zx_tmp_3d, 208 . iim*jjmp1*klev,ndex3d) 93 call histwrite_phy(nid_ins,.false.,"dtlwr",itau_w,-1.*cool/RDAY) 209 94 c en K/s 210 c zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 211 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 212 c CALL histwrite(nid_ins,"dtec",itau_w,zx_tmp_3d, 213 c . iim*jjmp1*klev,ndex3d) 214 c 95 c call histwrite_phy(nid_ins,.false.,"dtec",itau_w,d_t_ec) 215 96 c en (m/s)/s 216 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d) 217 CALL histwrite(nid_ins,"duajs",itau_w,zx_tmp_3d, 218 . iim*jjmp1*klev,ndex3d) 219 c 97 call histwrite_phy(nid_ins,.false.,"duajs",itau_w,d_u_ajs) 220 98 c en (m/s)/s 221 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d) 222 CALL histwrite(nid_ins,"dugwo",itau_w,zx_tmp_3d, 223 . iim*jjmp1*klev,ndex3d) 224 c 99 call histwrite_phy(nid_ins,.false.,"dugwo",itau_w,d_u_oro) 225 100 c en (m/s)/s 226 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d) 227 CALL histwrite(nid_ins,"dugwno",itau_w,zx_tmp_3d, 228 . iim*jjmp1*klev,ndex3d) 229 c 101 call histwrite_phy(nid_ins,.false.,"dugwno",itau_w,d_u_hin) 230 102 c en (m/s)/s 231 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)232 103 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 233 c zx_tmp_3d=-1.*zx_tmp_3d 234 c CALL histwrite(nid_ins,"dvvdf",itau_w,zx_tmp_3d, 235 c . iim*jjmp1*klev,ndex3d) 236 c 104 c call histwrite_phy(nid_ins,.false.,"dvvdf",itau_w,-1.*d_v_vdf) 105 237 106 ENDIF !lev_histday.GE.4 238 c 107 239 108 c------------------------------------------------------- 240 109 IF(lev_histday.GE.5) THEN 241 c 242 c 243 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d) 244 c CALL histwrite(nid_ins,"taux_",itau_w, 245 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 246 c 247 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d) 248 c CALL histwrite(nid_ins,"tauy_",itau_w, 249 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 250 c 251 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 252 c CALL histwrite(nid_ins,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 253 c 254 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 255 c CALL histwrite(nid_ins,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 256 c 110 111 c call histwrite_phy(nid_ins,.false.,"taux_",itau_w,fluxu) 112 c call histwrite_phy(nid_ins,.false.,"tauy_",itau_w,fluxv) 113 c call histwrite_phy(nid_ins,.false.,"cdrm",itau_w,cdragm) 114 c call histwrite_phy(nid_ins,.false.,"cdrh",itau_w,cdragh) 115 257 116 ENDIF !lev_histday.GE.5 258 117 c------------------------------------------------------- 259 c 118 260 119 if (ok_sync) then 261 120 call histsync(nid_ins) 262 121 endif 122 263 123 ENDIF -
trunk/LMDZ.VENUS/libf/phyvenus/write_histmth.h
r101 r892 3 3 ! 4 4 IF (ok_mensuel) THEN 5 c6 ndex2d = 07 ndex3d = 08 zx_tmp_2d = 0.9 zx_tmp_3d = 0.10 zx_tmp_fi2d=0.11 zx_tmp_fi3d=0.12 5 13 6 zsto = dtime … … 15 8 itau_w = itau_phy + itap 16 9 17 c18 10 c------------------------------------------------------- 19 11 IF(lev_histmth.GE.1) THEN 20 c 12 21 13 ccccccccccccc 2D fields, basics 22 c 23 i = NINT(zout/zsto) 24 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 25 CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 26 C 27 i = NINT(zout/zsto) 28 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 29 CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 30 c 31 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d) 32 CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 33 c 34 DO i = 1, klon 35 zx_tmp_fi2d(i) = paprs(i,1) 36 ENDDO 37 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 38 CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 39 c 40 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 41 c CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 42 c 43 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 14 15 call histwrite_phy(nid_mth,.false.,"phis",itau_w,pphis) 16 call histwrite_phy(nid_mth,.false.,"aire",itau_w,airephy) 17 call histwrite_phy(nid_mth,.false.,"tsol",itau_w,ftsol) 18 call histwrite_phy(nid_mth,.false.,"psol",itau_w,paprs(:,1)) 19 c call histwrite_phy(nid_mth,.false.,"ue",itau_w,ue) 44 20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 45 c zx_tmp_2d=-1.*zx_tmp_2d 46 c CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 47 c 48 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 49 CALL histwrite(nid_mth,"cdragh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 50 c 51 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 52 CALL histwrite(nid_mth,"cdragm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 53 c 21 c call histwrite_phy(nid_mth,.false.,"ve",itau_w,-1.*ve) 22 c call histwrite_phy(nid_mth,.false.,"cdragh",itau_w,cdragh) 23 c call histwrite_phy(nid_mth,.false.,"cdragm",itau_w,cdragm) 24 54 25 ENDIF !lev_histmth.GE.1 55 c 26 56 27 c------------------------------------------------------- 57 28 IF(lev_histmth.GE.2) THEN 58 c 29 59 30 ccccccccccccc 3D fields, basics 60 c 61 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 62 CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d, 63 . iim*jjmp1*klev,ndex3d) 64 c 65 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 66 CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d, 67 . iim*jjmp1*klev,ndex3d) 68 c 69 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 70 CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d, 71 . iim*jjmp1*klev,ndex3d) 72 c 73 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 74 CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d, 75 . iim*jjmp1*klev,ndex3d) 76 c 77 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 31 32 call histwrite_phy(nid_mth,.false.,"temp",itau_w,t_seri) 33 call histwrite_phy(nid_mth,.false.,"pres",itau_w,pplay) 34 call histwrite_phy(nid_mth,.false.,"geop",itau_w,zphi) 35 call histwrite_phy(nid_mth,.false.,"vitu",itau_w,u_seri) 78 36 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 79 zx_tmp_3d=-1.*zx_tmp_3d 80 CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d, 81 . iim*jjmp1*klev,ndex3d) 82 c 83 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 84 CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d, 85 . iim*jjmp1*klev,ndex3d) 86 c 37 call histwrite_phy(nid_mth,.false.,"vitv",itau_w,-1.*v_seri) 38 call histwrite_phy(nid_mth,.false.,"vitw",itau_w,omega) 87 39 c en (m/s)/s 88 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d) 89 CALL histwrite(nid_mth,"dudyn",itau_w,zx_tmp_3d, 90 . iim*jjmp1*klev,ndex3d) 91 c 40 call histwrite_phy(nid_mth,.false.,"dudyn",itau_w,d_u_dyn) 92 41 c en (m/s)/s 93 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 94 CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d, 95 . iim*jjmp1*klev,ndex3d) 96 c 97 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, mang, zx_tmp_3d) 98 c CALL histwrite(nid_mth,"mang",itau_w,zx_tmp_3d, 99 c . iim*jjmp1*klev,ndex3d) 100 c 101 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ycoefh, zx_tmp_3d) 102 CALL histwrite(nid_mth,"Kz",itau_w,zx_tmp_3d, 103 . iim*jjmp1*klev,ndex3d) 104 c 42 call histwrite_phy(nid_mth,.false.,"duvdf",itau_w,d_u_vdf) 43 c call histwrite_phy(nid_mth,.false.,"mang",itau_w,mang) 44 c call histwrite_phy(nid_mth,.false.,"Kz",itau_w,ycoefh) 45 105 46 c plusieurs traceurs 106 47 IF (iflag_trac.eq.1) THEN 107 48 DO iq=1,nqmax 108 IF (iq.LE.99) THEN 109 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 110 WRITE(str2,'(i2.2)') iq 111 CALL histwrite(nid_mth,tname(iq),itau_w,zx_tmp_3d, 112 . iim*jjmp1*klev,ndex3d) 113 ELSE 114 PRINT*, "Trop de traceurs" 115 CALL abort 116 ENDIF 49 call histwrite_phy(nid_mth,.false.,tname(iq),itau_w,qx(:,:,iq)) 117 50 ENDDO 118 51 ENDIF 119 c 120 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 121 CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 122 c 52 53 call histwrite_phy(nid_mth,.false.,"tops",itau_w,topsw) 54 123 55 ENDIF !lev_histmth.GE.2 124 c 56 125 57 c------------------------------------------------------- 126 58 IF(lev_histmth.GE.3) THEN 127 c 59 128 60 cccccccccccccccccc Radiative transfer 129 c 61 130 62 c 2D 131 c 132 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 133 CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 134 c 135 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 136 CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 137 c 138 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 139 CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 140 c 63 64 call histwrite_phy(nid_mth,.false.,"topl",itau_w,toplw) 65 call histwrite_phy(nid_mth,.false.,"sols",itau_w,solsw) 66 call histwrite_phy(nid_mth,.false.,"soll",itau_w,sollw) 67 141 68 c 3D 142 c 143 zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev) 144 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 145 CALL histwrite(nid_mth,"SWnet",itau_w,zx_tmp_3d, 146 . iim*jjmp1*klev,ndex3d) 147 c 148 zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev) 149 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 150 CALL histwrite(nid_mth,"LWnet",itau_w,zx_tmp_3d, 151 . iim*jjmp1*klev,ndex3d) 152 c 153 zx_tmp_fi3d(1:klon,1:klev)=fluxt(1:klon,1:klev) 154 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 155 CALL histwrite(nid_mth,"fluxvdf",itau_w,zx_tmp_3d, 156 . iim*jjmp1*klev,ndex3d) 157 c 158 zx_tmp_fi3d(1:klon,1:klev)=flux_dyn(1:klon,1:klev) 159 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 160 CALL histwrite(nid_mth,"fluxdyn",itau_w,zx_tmp_3d, 161 . iim*jjmp1*klev,ndex3d) 162 c 163 zx_tmp_fi3d(1:klon,1:klev)=flux_ajs(1:klon,1:klev) 164 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 165 CALL histwrite(nid_mth,"fluxajs",itau_w,zx_tmp_3d, 166 . iim*jjmp1*klev,ndex3d) 167 c 168 c zx_tmp_fi3d(1:klon,1:klev)=flux_ec(1:klon,1:klev) 169 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 170 c CALL histwrite(nid_mth,"fluxec",itau_w,zx_tmp_3d, 171 c . iim*jjmp1*klev,ndex3d) 172 c 69 70 call histwrite_phy(nid_mth,.false.,"SWnet",itau_w,swnet) 71 call histwrite_phy(nid_mth,.false.,"LWnet",itau_w,lwnet) 72 c call histwrite_phy(nid_mth,.false.,"fluxvdf",itau_w,fluxt) 73 c call histwrite_phy(nid_mth,.false.,"fluxdyn",itau_w,flux_dyn) 74 c call histwrite_phy(nid_mth,.false.,"fluxajs",itau_w,flux_ajs) 75 c call histwrite_phy(nid_mth,.false.,"fluxec",itau_w,flux_ec) 76 173 77 ENDIF !lev_histmth.GE.3 174 c 78 175 79 c------------------------------------------------------- 176 80 IF(lev_histmth.GE.4) THEN 177 c 81 178 82 c en K/s 179 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 180 CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d, 181 . iim*jjmp1*klev,ndex3d) 182 c 83 call histwrite_phy(nid_mth,.false.,"dtdyn",itau_w,d_t_dyn) 183 84 c en K/s 184 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 185 c CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d, 186 c . iim*jjmp1*klev,ndex3d) 187 c 85 c call histwrite_phy(nid_mth,.false.,"dtphy",itau_w,d_t) 188 86 c en K/s 189 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d) 190 CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d, 191 . iim*jjmp1*klev,ndex3d) 192 c 87 call histwrite_phy(nid_mth,.false.,"dtvdf",itau_w,d_t_vdf) 193 88 c en K/s 194 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d) 195 CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d, 196 . iim*jjmp1*klev,ndex3d) 197 c 89 call histwrite_phy(nid_mth,.false.,"dtajs",itau_w,d_t_ajs) 198 90 c K/day ==> K/s 199 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 200 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 201 CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d, 202 . iim*jjmp1*klev,ndex3d) 203 c 91 call histwrite_phy(nid_mth,.false.,"dtswr",itau_w,heat/RDAY) 204 92 c K/day ==> K/s 205 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 206 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 207 CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d, 208 . iim*jjmp1*klev,ndex3d) 93 call histwrite_phy(nid_mth,.false.,"dtlwr",itau_w,-1.*cool/RDAY) 209 94 c en K/s 210 c zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 211 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 212 c CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d, 213 c . iim*jjmp1*klev,ndex3d) 214 c 95 c call histwrite_phy(nid_mth,.false.,"dtec",itau_w,d_t_ec) 215 96 c en (m/s)/s 216 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d) 217 CALL histwrite(nid_mth,"duajs",itau_w,zx_tmp_3d, 218 . iim*jjmp1*klev,ndex3d) 219 c 97 call histwrite_phy(nid_mth,.false.,"duajs",itau_w,d_u_ajs) 220 98 c en (m/s)/s 221 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d) 222 CALL histwrite(nid_mth,"dugwo",itau_w,zx_tmp_3d, 223 . iim*jjmp1*klev,ndex3d) 224 c 99 call histwrite_phy(nid_mth,.false.,"dugwo",itau_w,d_u_oro) 225 100 c en (m/s)/s 226 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d) 227 CALL histwrite(nid_mth,"dugwno",itau_w,zx_tmp_3d, 228 . iim*jjmp1*klev,ndex3d) 229 c 101 call histwrite_phy(nid_mth,.false.,"dugwno",itau_w,d_u_hin) 230 102 c en (m/s)/s 231 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)232 103 c VENUS: regardee a l'envers!!!!!!!!!!!!!!! 233 c zx_tmp_3d=-1.*zx_tmp_3d 234 c CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d, 235 c . iim*jjmp1*klev,ndex3d) 236 c 104 c call histwrite_phy(nid_mth,.false.,"dvvdf",itau_w,-1.*d_v_vdf) 105 237 106 ENDIF !lev_histmth.GE.4 238 107 c 239 108 c------------------------------------------------------- 240 109 IF(lev_histmth.GE.5) THEN 241 c 242 c 243 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d) 244 c CALL histwrite(nid_mth,"taux_",itau_w, 245 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 246 c 247 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d) 248 c CALL histwrite(nid_mth,"tauy_",itau_w, 249 c $ zx_tmp_2d,iim*jjmp1,ndex2d) 250 c 251 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 252 c CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 253 c 254 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 255 c CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 256 c 110 111 c call histwrite_phy(nid_mth,.false.,"taux_",itau_w,fluxu) 112 c call histwrite_phy(nid_mth,.false.,"tauy_",itau_w,fluxv) 113 c call histwrite_phy(nid_mth,.false.,"cdrm",itau_w,cdragm) 114 c call histwrite_phy(nid_mth,.false.,"cdrh",itau_w,cdragh) 115 257 116 ENDIF !lev_histmth.GE.5 258 117 c------------------------------------------------------- … … 261 120 call histsync(nid_mth) 262 121 endif 122 263 123 ENDIF -
trunk/LMDZ.VENUS/libf/phyvenus/zenang.F
r101 r892 34 34 integer i 35 35 real gmtime1, gmtime2 36 real pi_local, deux_pi_local,incl36 real incl 37 37 real omega1, omega2, omega 38 38 c omega1, omega2 : temps 1 et 2 exprime en radian avec 0 a midi. … … 46 46 c================================================================ 47 47 c 48 pi_local = 4.0 * ATAN(1.0) 49 deux_pi_local = 2.0 * pi_local 50 incl=R_incl * pi_local / 180. 48 incl=R_incl * RPI / 180. 51 49 c 52 lon_sun = longi * pi_local/ 180.050 lon_sun = longi * RPI / 180.0 53 51 lat_sun = ASIN (SIN(lon_sun)*SIN(incl) ) 54 52 c … … 58 56 DO i = 1, klon 59 57 c 60 latr = lat(i) * pi_local/ 180.58 latr = lat(i) * RPI / 180. 61 59 c 62 60 c--pose probleme quand lat=+/-90 degres … … 64 62 c omega = -TAN(latr)*TAN(lat_sun) 65 63 c omega = ACOS(omega) 66 c IF (latr.GE.( pi_local/2.+lat_sun)67 c . .OR. latr.LE.(- pi_local/2.+lat_sun)) THEN64 c IF (latr.GE.(RPI/2.+lat_sun) 65 c . .OR. latr.LE.(-RPI/2.+lat_sun)) THEN 68 66 c omega = 0.0 ! nuit polaire 69 67 c ENDIF 70 c IF (latr.GE.( pi_local/2.-lat_sun)71 c . .OR. latr.LE.(- pi_local/2.-lat_sun)) THEN72 c omega = pi_local! journee polaire68 c IF (latr.GE.(RPI/2.-lat_sun) 69 c . .OR. latr.LE.(-RPI/2.-lat_sun)) THEN 70 c omega = RPI ! journee polaire 73 71 c ENDIF 74 72 c … … 76 74 c 77 75 omega=0.0 !--nuit polaire 78 IF (latr.GE.( pi_local/2.-lat_sun)79 . .OR. latr.LE.(- pi_local/2.-lat_sun)) THEN80 omega = pi_local! journee polaire76 IF (latr.GE.(RPI/2.-lat_sun) 77 . .OR. latr.LE.(-RPI/2.-lat_sun)) THEN 78 omega = RPI ! journee polaire 81 79 ENDIF 82 IF (latr.LT.( pi_local/2.+lat_sun).AND.83 . latr.GT.(- pi_local/2.+lat_sun).AND.84 . latr.LT.( pi_local/2.-lat_sun).AND.85 . latr.GT.(- pi_local/2.-lat_sun)) THEN80 IF (latr.LT.(RPI/2.+lat_sun).AND. 81 . latr.GT.(-RPI/2.+lat_sun).AND. 82 . latr.LT.(RPI/2.-lat_sun).AND. 83 . latr.GT.(-RPI/2.-lat_sun)) THEN 86 84 omega = -TAN(latr)*TAN(lat_sun) 87 85 omega = ACOS(omega) … … 89 87 c 90 88 omega1 = gmtime1 + long(i)*RDAY/360.0 91 omega1 = omega1 / RDAY*deux_pi_local92 omega1 = MOD (omega1+ deux_pi_local, deux_pi_local)93 omega1 = omega1 - pi_local89 omega1 = omega1*2*RPI / RDAY 90 omega1 = MOD (omega1+2*RPI, 2*RPI) 91 omega1 = omega1 - RPI 94 92 c 95 93 omega2 = gmtime2 + long(i)*RDAY/360.0 96 omega2 = omega2 / RDAY*deux_pi_local97 omega2 = MOD (omega2+ deux_pi_local, deux_pi_local)98 omega2 = omega2 - pi_local94 omega2 = omega2*2*RPI / RDAY 95 omega2 = MOD (omega2+2*RPI, 2*RPI) 96 omega2 = omega2 - RPI 99 97 c 100 98 IF (omega1.LE.omega2) THEN !--on est dans la meme journee locale … … 144 142 ENDIF 145 143 c-----------------------moyenne 146 frac(i)=(zfrac1+zfrac2)/(omega2+ deux_pi_local-omega1)144 frac(i)=(zfrac1+zfrac2)/(omega2+2*RPI-omega1) 147 145 pmu0(i)=(zfrac1*z1_mu+zfrac2*z2_mu)/MAX(zfrac1+zfrac2,1.E-10) 148 146 c
Note: See TracChangeset
for help on using the changeset viewer.