Changeset 1130 for trunk/LMDZ.MARS/libf/dyn3d
- Timestamp:
- Dec 20, 2013, 4:04:56 PM (11 years ago)
- Location:
- trunk/LMDZ.MARS/libf/dyn3d
- Files:
-
- 2 added
- 1 deleted
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/dyn3d/calfis.F
r1036 r1130 71 71 #include "comvert.h" 72 72 #include "comgeom2.h" 73 #include "control.h"73 !#include "control.h" 74 74 75 75 c Arguments : … … 167 167 168 168 c 169 IF (firstcal) THEN170 latfi(1)=rlatu(1)171 lonfi(1)=0.172 DO j=2,jjm173 DO i=1,iim174 latfi((j-2)*iim+1+i)= rlatu(j)175 lonfi((j-2)*iim+1+i)= rlonv(i)176 ENDDO177 ENDDO178 latfi(ngridmx)= rlatu(jjp1)179 lonfi(ngridmx)= 0.180 181 ! build airefi(), mesh area on physics grid182 CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi)183 ! Poles are single points on physics grid184 airefi(1)=airefi(1)*iim185 airefi(ngridmx)=airefi(ngridmx)*iim186 187 CALL inifis(ngridmx,llm,nq,day_ini,daysec,dtphys,188 . latfi,lonfi,airefi,rad,g,r,cpp)189 ENDIF169 ! IF (firstcal) THEN 170 ! latfi(1)=rlatu(1) 171 ! lonfi(1)=0. 172 ! DO j=2,jjm 173 ! DO i=1,iim 174 ! latfi((j-2)*iim+1+i)= rlatu(j) 175 ! lonfi((j-2)*iim+1+i)= rlonv(i) 176 ! ENDDO 177 ! ENDDO 178 ! latfi(ngridmx)= rlatu(jjp1) 179 ! lonfi(ngridmx)= 0. 180 ! 181 ! ! build airefi(), mesh area on physics grid 182 ! CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi) 183 ! ! Poles are single points on physics grid 184 ! airefi(1)=airefi(1)*iim 185 ! airefi(ngridmx)=airefi(ngridmx)*iim 186 ! 187 ! CALL inifis(ngridmx,llm,nq,day_ini,daysec,dtphys, 188 ! . latfi,lonfi,airefi,rad,g,r,cpp) 189 ! ENDIF 190 190 191 191 c -
trunk/LMDZ.MARS/libf/dyn3d/defrun_new.F
r999 r1130 36 36 c -------------- 37 37 ! to use 'getin' 38 USE ioipsl_getincom 38 use ioipsl_getincom, only: getin 39 use control_mod, only: ndynstep, day_step, iperiod, iconser, 40 & idissip, iphysiq, anneeref, ecritphy, 41 & ecritstart, timestart, nday_r 39 42 IMPLICIT NONE 40 43 41 44 #include "dimensions.h" 42 45 #include "paramet.h" 43 #include "control.h"46 !#include "control.h" 44 47 #include "logic.h" 45 48 #include "serre.h" … … 83 86 !le modele martien et ne sont donc plus lues dans "run.def" 84 87 85 anneeref=0 86 ! Note: anneref is a common in 'control.h' 88 anneeref=0 87 89 88 90 OPEN(tapedef,file='run.def',status='old',form='formatted' -
trunk/LMDZ.MARS/libf/dyn3d/dynetat0.F
r1036 r1130 3 3 4 4 use netcdf 5 use infotrac, only: tnom 5 use infotrac, only: tname 6 use control_mod, only: timestart 6 7 7 8 IMPLICIT NONE … … 39 40 #include "logic.h" 40 41 !#include "advtrac.h" 41 #include "control.h"42 !#include "control.h" 42 43 43 44 c Arguments: … … 381 382 ! WRITE(str3(2:3),'(i2.2)') iq 382 383 ! ierr = NF_INQ_VARID (nid, str3, nvarid) 383 ! NB: tracers are now read in using their name ('tn om' from infotrac)384 ! write(*,*) " loading tracer:",trim(tn om(iq))385 ierr=nf90_inq_varid(nid,tn om(iq),nvarid)384 ! NB: tracers are now read in using their name ('tname' from infotrac) 385 ! write(*,*) " loading tracer:",trim(tname(iq)) 386 ierr=nf90_inq_varid(nid,tname(iq),nvarid) 386 387 IF (ierr .NE. nf90_noerr) THEN 387 388 ! PRINT*, "dynetat0: Le champ <"//str3//"> est absent" 388 PRINT*, "dynetat0: Le champ <"//trim(tn om(iq))//389 PRINT*, "dynetat0: Le champ <"//trim(tname(iq))// 389 390 & "> est absent" 390 391 PRINT*, " Il est donc initialise a zero" … … 396 397 IF (ierr .NE. nf90_noerr) THEN 397 398 ! PRINT*, "dynetat0: Lecture echouee pour "//str3 398 PRINT*, "dynetat0: Lecture echouee pour "//trim(tnom(iq))399 PRINT*,"dynetat0: Lecture echouee pour "//trim(tname(iq)) 399 400 CALL abort 400 401 ENDIF -
trunk/LMDZ.MARS/libf/dyn3d/dynredem.F
r1106 r1130 1 1 SUBROUTINE dynredem0(fichnom,idayref,anneeref,phis,nq) 2 use infotrac, only: tn om2 use infotrac, only: tname 3 3 IMPLICIT NONE 4 4 c======================================================================= … … 912 912 ! ierr = NF_PUT_ATT_TEXT (nid, nvarid, "title", 12, 913 913 ! . "Traceurs "//str3) 914 txt="Traceur "//trim(tn om(iq))915 #ifdef NC_DOUBLE 916 ierr=NF_DEF_VAR(nid,tn om(iq),NF_DOUBLE,4,dims4,nvarid)917 #else 918 ierr=NF_DEF_VAR(nid,tn om(iq),NF_FLOAT,4,dims4,nvarid)914 txt="Traceur "//trim(tname(iq)) 915 #ifdef NC_DOUBLE 916 ierr=NF_DEF_VAR(nid,tname(iq),NF_DOUBLE,4,dims4,nvarid) 917 #else 918 ierr=NF_DEF_VAR(nid,tname(iq),NF_FLOAT,4,dims4,nvarid) 919 919 #endif 920 920 ierr=NF_PUT_ATT_TEXT(nid,nvarid,"title", … … 964 964 SUBROUTINE dynredem1(fichnom,time, 965 965 . vcov,ucov,teta,q,nq,masse,ps) 966 use infotrac, only: nqtot, tn om966 use infotrac, only: nqtot, tname 967 967 IMPLICIT NONE 968 968 c================================================================= … … 1105 1105 ! WRITE(str3(2:3),'(i2.2)') iq 1106 1106 ! ierr = NF_INQ_VARID(nid, str3, nvarid) 1107 ierr=NF_INQ_VARID(nid,tn om(iq),nvarid)1107 ierr=NF_INQ_VARID(nid,tname(iq),nvarid) 1108 1108 IF (ierr .NE. NF_NOERR) THEN 1109 1109 ! PRINT*, "Variable "//str3//" n est pas definie" 1110 PRINT*, "Variable "//trim(tn om(iq))//" n est pas definie"1110 PRINT*, "Variable "//trim(tname(iq))//" n est pas definie" 1111 1111 CALL abort 1112 1112 ENDIF -
trunk/LMDZ.MARS/libf/dyn3d/gcm.F
r1036 r1130 2 2 3 3 use infotrac, only: iniadvtrac, nqtot, iadv 4 use control_mod, only: day_step, iperiod, iphysiq, ndynstep, 5 & nday_r, idissip, iconser, ecritstart, 6 & ecritphy 7 use comgeomphy, only: initcomgeomphy 4 8 IMPLICIT NONE 5 9 … … 42 46 #include "logic.h" 43 47 #include "temps.h" 44 #include "control.h"48 !#include "control.h" 45 49 #include "ener.h" 46 50 #include "netcdf.inc" … … 135 139 logical callgroupeun 136 140 parameter (callgroupeun = .false.) 141 142 c----------------------------------------------------------------------- 143 c variables pour l'initialisation de la physique : 144 c ------------------------------------------------ 145 INTEGER ngridmx 146 PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm ) 147 REAL zcufi(ngridmx),zcvfi(ngridmx) 148 REAL latfi(ngridmx),lonfi(ngridmx) 149 REAL airefi(ngridmx) 150 SAVE latfi, lonfi, airefi 151 INTEGER i,j 152 137 153 c----------------------------------------------------------------------- 138 154 c Initialisations: … … 145 161 c----------------------------------------------------------------------- 146 162 CALL defrun_new( 99, .TRUE. ) 163 164 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 165 ! FH 2008/05/02 166 ! A nettoyer. On ne veut qu'une ou deux routines d'interface 167 ! dynamique -> physique pour l'initialisation 168 !#ifdef CPP_PHYS 169 CALL init_phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/)) 170 call initcomgeomphy 171 !#endif 172 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 147 173 148 174 ! Initialize tracers … … 196 222 c 197 223 224 c----------------------------------------------------------------------- 225 c Initialisation de la physique : 226 c ------------------------------- 227 228 ! IF (call_iniphys.and.(iflag_phys==1.or.iflag_phys>=100)) THEN 229 latfi(1)=rlatu(1) 230 lonfi(1)=0. 231 zcufi(1) = cu(1) 232 zcvfi(1) = cv(1) 233 DO j=2,jjm 234 DO i=1,iim 235 latfi((j-2)*iim+1+i)= rlatu(j) 236 lonfi((j-2)*iim+1+i)= rlonv(i) 237 zcufi((j-2)*iim+1+i) = cu((j-1)*iip1+i) 238 zcvfi((j-2)*iim+1+i) = cv((j-1)*iip1+i) 239 ENDDO 240 ENDDO 241 latfi(ngridmx)= rlatu(jjp1) 242 lonfi(ngridmx)= 0. 243 zcufi(ngridmx) = cu(ip1jm+1) 244 zcvfi(ngridmx) = cv(ip1jm-iim) 245 246 ! build airefi(), mesh area on physics grid 247 CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi) 248 ! Poles are single points on physics grid 249 airefi(1)=airefi(1)*iim 250 airefi(ngridmx)=airefi(ngridmx)*iim 251 252 ! Initialisation de la physique: pose probleme quand on tourne 253 ! SANS physique, car iniphysiq.F est dans le repertoire phy[]... 254 ! Il faut une cle CPP_PHYS 255 !#ifdef CPP_PHYS 256 ! CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys/nsplit_phys, 257 CALL iniphysiq(ngridmx,llm,daysec,day_ini,dtphys, 258 & latfi,lonfi,airefi,zcufi,zcvfi,rad,g,r,cpp, 259 & 1) 260 ! & iflag_phys) 261 !#endif 262 ! call_iniphys=.false. 263 ! ENDIF ! of IF (call_iniphys.and.(iflag_phys.eq.1)) 264 ! call inifis(ngridmx,llm,nqtot,day_ini,daysec,dtphys, 265 ! . latfi,lonfi,airefi,rad,g,r,cpp) 198 266 199 267 call dump2d(iip1,jjp1,ps,'PRESSION SURFACE') -
trunk/LMDZ.MARS/libf/dyn3d/infotrac.F90
r1036 r1130 5 5 INTEGER, SAVE :: nqtot 6 6 INTEGER,allocatable :: iadv(:) ! tracer advection scheme number 7 CHARACTER(len=20),allocatable :: tn om(:) ! tracer name7 CHARACTER(len=20),allocatable :: tname(:) ! tracer name 8 8 9 9 CONTAINS … … 18 18 IMPLICIT NONE 19 19 20 #include "dimensions.h"20 !#include "dimensions.h" 21 21 !#include "advtrac.h" 22 #include "control.h"22 !#include "control.h" 23 23 24 24 ! routine arguments: … … 47 47 ! allocate arrays: 48 48 allocate(iadv(nq)) 49 allocate(tn om(nq))49 allocate(tname(nq)) 50 50 51 51 ! initialize advection schemes to Van-Leer for all tracers … … 56 56 do iq=1,nq 57 57 ! minimal version, just read in the tracer names, 1 per line 58 read(90,*,iostat=ierr) tn om(iq)58 read(90,*,iostat=ierr) tname(iq) 59 59 if (ierr.ne.0) then 60 60 write(*,*) 'iniadvtrac: error reading tracer names...' -
trunk/LMDZ.MARS/libf/dyn3d/ini_archive.F
r1047 r1130 48 48 #include "description.h" 49 49 #include "serre.h" 50 #include "control.h"50 !#include "control.h" 51 51 !#include"comsoil.h" 52 52 -
trunk/LMDZ.MARS/libf/dyn3d/iniconst.F
r38 r1130 1 1 SUBROUTINE iniconst 2 2 3 use control_mod, only: iphysiq, idissip 3 4 IMPLICIT NONE 4 5 c … … 13 14 #include "comconst.h" 14 15 #include "temps.h" 15 #include "control.h"16 !#include "control.h" 16 17 #include "comvert.h" 17 18 -
trunk/LMDZ.MARS/libf/dyn3d/inidissip.F
r758 r1130 8 8 c ------------- 9 9 10 use control_mod, only: idissip, iperiod 10 11 IMPLICIT NONE 11 12 #include "dimensions.h" … … 14 15 #include "comconst.h" 15 16 #include "comvert.h" 16 #include "control.h"17 !#include "control.h" 17 18 18 19 LOGICAL lstardis -
trunk/LMDZ.MARS/libf/dyn3d/lect_start_archive.F
r1047 r1130 17 17 c 18 18 c======================================================================= 19 use infotrac, only: tn om19 use infotrac, only: tname 20 20 use comsoil_h, only: nsoilmx, layer, mlayer, volcapa, inertiedat 21 21 implicit none … … 32 32 #include "comvert.h" 33 33 #include "comgeom2.h" 34 #include "control.h"34 !#include "control.h" 35 35 #include "logic.h" 36 36 #include "description.h" 37 37 #include "ener.h" 38 38 #include "temps.h" 39 #include "lmdstd.h"39 !#include "lmdstd.h" 40 40 #include "netcdf.inc" 41 41 !#include "tracer.h" … … 760 760 write(txt,'(a5,i2.2)')'qsurf',iq 761 761 ELSE 762 txt=trim(tn om(iq))//"_surf"762 txt=trim(tname(iq))//"_surf" 763 763 if (txt.eq."h2o_vap") then 764 764 ! There is no surface tracer for h2o_vap; … … 948 948 write(txt,'(a1,i2.2)')'q',iq 949 949 ELSE 950 txt=tn om(iq)950 txt=tname(iq) 951 951 ENDIF 952 952 write(*,*)"lect_start_archive: loading tracer ",trim(txt) -
trunk/LMDZ.MARS/libf/dyn3d/write_archive.F
r1047 r1130 38 38 #include "dimphys.h" 39 39 #include "paramet.h" 40 #include "control.h"40 !#include "control.h" 41 41 #include "comvert.h" 42 42 #include "comgeom.h" -
trunk/LMDZ.MARS/libf/dyn3d/writediagdyn.F90
r410 r1130 12 12 ! NB: the rate a which outputs are made can be changed (see parameter isample) 13 13 ! 14 use control_mod, only: iphysiq, day_step 14 15 implicit none 15 16 16 17 #include"dimensions.h" 17 18 #include"paramet.h" 18 #include"control.h"19 !#include"control.h" 19 20 #include"netcdf.inc" 20 21
Note: See TracChangeset
for help on using the changeset viewer.