Changeset 3521
- Timestamp:
- Nov 15, 2024, 6:57:21 PM (3 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/start2archive.F
r3380 r3521 9 9 c 10 10 c Objet: Passage des fichiers netcdf d'etat initial "start" et 11 c ----- "startfi" a un fichier netcdf unique "start_archive" 11 c ----- "startfi" a un fichier netcdf unique "start_archive" 12 12 c 13 13 c "start_archive" est une banque d'etats initiaux: 14 14 c On peut stocker plusieurs etats initiaux dans un meme fichier "start_archive" 15 15 c (Veiller dans ce cas avoir un day_ini different pour chacun des start) 16 c 16 c 17 17 c 18 18 c … … 21 21 use infotrac, only: infotrac_init, nqtot, tname 22 22 USE comsoil_h 23 23 24 24 ! use slab_ice_h, only: noceanmx 25 25 c USE ocean_slab_mod, ONLY: nslay … … 42 42 43 43 include "dimensions.h" 44 integer, parameter :: ngridmx = (2+(jjm-1)*iim - 1/jjm) 44 integer, parameter :: ngridmx = (2+(jjm-1)*iim - 1/jjm) 45 45 include "paramet.h" 46 46 include "comdissip.h" … … 55 55 c ----------------------------- 56 56 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 57 REAL teta(ip1jmp1,llm) ! temperature potentielle 57 REAL teta(ip1jmp1,llm) ! temperature potentielle 58 58 REAL,ALLOCATABLE :: q(:,:,:) ! champs advectes 59 59 REAL pks(ip1jmp1) ! exner (f pour filtre) … … 64 64 REAL ps(ip1jmp1) ! pression au sol 65 65 REAL p3d(iip1, jjp1, llm+1) ! pression aux interfaces 66 66 67 67 c Variable Physiques (grille physique) 68 68 c ------------------------------------ … … 104 104 105 105 CHARACTER*2 str2 106 CHARACTER*80 fichier 106 CHARACTER*80 fichier 107 107 data fichier /'startfi'/ 108 108 … … 115 115 c Netcdf 116 116 c------- 117 integer varid,dimid,timelen 117 integer varid,dimid,timelen 118 118 INTEGER nid,nid1 119 119 120 120 c----------------------------------------------------------------------- 121 c Initialisations 121 c Initialisations 122 122 c----------------------------------------------------------------------- 123 123 … … 152 152 CALL ABORT 153 153 ENDIF 154 154 155 155 ierr = NF_INQ_VARID (nid1, "controle", varid) 156 156 IF (ierr .NE. NF_NOERR) THEN … … 188 188 ENDIF 189 189 ierr = NF_CLOSE(nid1) 190 190 191 191 ! allocate arrays of nsoilmx size 192 192 allocate(tsoil(ngridmx,nsoilmx)) … … 195 195 196 196 c----------------------------------------------------------------------- 197 c Initialisations 197 c Initialisations 198 198 c----------------------------------------------------------------------- 199 199 … … 216 216 ! Allocate saved arrays (as in firstcall of physiq) 217 217 call phys_state_var_init(nqtot) 218 218 219 219 ! Initialize tracer names, indexes and properties 220 220 CALL initracer(ngridmx,nqtot) … … 222 222 CALL phyetat0(.true.,ngridmx,llm,fichnom,0,Lmodif,nsoilmx,nqtot, 223 223 . day_ini_fi,timefi, 224 . tsurf,tsoil,emis,q2,qsurf )224 . tsurf,tsoil,emis,q2,qsurf,inertiedat) 225 225 ! change FF 05/2011 226 226 c . cloudfrac,totalcloudfrac,hice, … … 238 238 CALL ABORT 239 239 ENDIF 240 240 241 241 ierr = NF_INQ_VARID (nid1, "controle", varid) 242 242 IF (ierr .NE. NF_NOERR) THEN … … 260 260 c Controle de la synchro 261 261 c----------------------------------------------------------------------- 262 !mars a voir if ((day_ini_fi.ne.day_ini).or.(abs(timefi-timedyn).gt.1.e-10)) 263 if ((day_ini_fi.ne.day_ini)) 262 !mars a voir if ((day_ini_fi.ne.day_ini).or.(abs(timefi-timedyn).gt.1.e-10)) 263 if ((day_ini_fi.ne.day_ini)) 264 264 & stop ' Probleme de Synchro entre start et startfi !!!' 265 265 … … 284 284 285 285 c----------------------------------------------------------------------- 286 c Vent (depend de la resolution horizontale) 286 c Vent (depend de la resolution horizontale) 287 287 c----------------------------------------------------------------------- 288 288 c … … 292 292 c----------------------------------------------------------------------- 293 293 294 call covnat(llm,ucov, vcov, un, vn) 295 call wind_scal(un,vn,us,vs) 294 call covnat(llm,ucov, vcov, un, vn) 295 call wind_scal(un,vn,us,vs) 296 296 297 297 c----------------------------------------------------------------------- … … 310 310 311 311 c----------------------------------------------------------------------- 312 c Variable physique 312 c Variable physique 313 313 c----------------------------------------------------------------------- 314 314 c … … 353 353 DO i=1,iim 354 354 ptotal=ptotal+aire(i+(iim+1)*(j-1))*ps(i+(iim+1)*(j-1))/g 355 ! n2icetotal = n2icetotal + 355 ! n2icetotal = n2icetotal + 356 356 ! & n2iceS(i+(iim+1)*(j-1))*aire(i+(iim+1)*(j-1)) 357 357 ENDDO … … 372 372 373 373 c----------------------------------------------------------------------- 374 c Ouverture de "start_archive" 374 c Ouverture de "start_archive" 375 375 c----------------------------------------------------------------------- 376 376 377 377 ierr = NF_OPEN ('start_archive.nc', NF_WRITE,nid) 378 378 379 379 c----------------------------------------------------------------------- 380 380 c si "start_archive" n'existe pas: … … 383 383 c----------------------------------------------------------------------- 384 384 c ini_archive: 385 c On met dans l'entete le tab_cntrl dynamique (1 a 16) 385 c On met dans l'entete le tab_cntrl dynamique (1 a 16) 386 386 c On y ajoute les valeurs du tab_cntrl_fi (a partir de 51) 387 387 c En plus les deux valeurs ptotal et n2icetotal (99 et 100) … … 426 426 c On passe donc une des couches de q2 a part 427 427 c comme une variable 2D (la couche au sol: "q2surf") 428 c Les lmm autres couches sont nommees "q2atm" (3D) 428 c Les lmm autres couches sont nommees "q2atm" (3D) 429 429 c----------------------------------------------------------------------- 430 430 … … 463 463 c----------------------------------------------------------------------- 464 464 c "tsoil" Temperature au sol definie dans 10 couches dans le sol 465 c Les 10 couches sont lues comme 10 champs 465 c Les 10 couches sont lues comme 10 champs 466 466 c nommees Tg[1,10] 467 467 … … 523 523 c & ,'tsea_ice','',2,tsea_iceS) 524 524 c endif !ok_slab_ocean 525 525 526 526 ENDIF ! of IF(ierr.EQ.0) 527 527 … … 540 540 541 541 c----------------------------------------------------------------------- 542 c Fin 542 c Fin 543 543 c----------------------------------------------------------------------- 544 544 ierr=NF_CLOSE(nid) … … 546 546 write(*,*) "start2archive: All is well that ends well." 547 547 548 end 548 end
Note: See TracChangeset
for help on using the changeset viewer.