Changeset 5267 for LMDZ6/trunk/libf/dyn3d
- Timestamp:
- Oct 23, 2024, 5:34:46 PM (4 months ago)
- Location:
- LMDZ6/trunk/libf/dyn3d
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/abort_gcm.F90
r5246 r5267 6 6 SUBROUTINE abort_gcm(modname, message, ierr) 7 7 8 #ifdef CPP_IOIPSL9 8 USE IOIPSL 10 #else11 ! if not using IOIPSL, we still need to use (a local version of) getin_dump12 USE ioipsl_getincom13 #endif14 9 !! ug Pour les sorties XIOS 15 10 USE wxios … … 36 31 ENDIF 37 32 38 #ifdef CPP_IOIPSL39 33 call histclo 40 34 call restclo 41 #endif42 35 call getin_dump 43 36 ! call histclo(2) -
LMDZ6/trunk/libf/dyn3d/bilan_dyn.F90
r5246 r5267 10 10 ! vQ..A=Cp T + L * ... 11 11 12 #ifdef CPP_IOIPSL13 12 USE IOIPSL 14 #endif15 13 USE comconst_mod, ONLY: pi, cpp 16 14 USE comvert_mod, ONLY: presnivs … … 26 24 !==================================================================== 27 25 ! 28 ! Sous-programme consacre àdes diagnostics dynamiques de base26 ! Sous-programme consacre � des diagnostics dynamiques de base 29 27 ! 30 28 ! … … 89 87 real :: ww 90 88 91 ! variables dynamiques interm édiaires89 ! variables dynamiques interm�diaires 92 90 REAL :: vcont(iip1,jjm,llm),ucont(iip1,jjp1,llm) 93 91 REAL :: ang(iip1,jjp1,llm),unat(iip1,jjp1,llm) … … 97 95 REAL :: bern(iip1,jjp1,llm) 98 96 99 ! champ contenant les scalaires advect és.97 ! champ contenant les scalaires advect�s. 100 98 real :: Q(iip1,jjp1,llm,nQ) 101 99 102 ! champs cumul és100 ! champs cumul�s 103 101 real :: ps_cum(iip1,jjp1) 104 102 real :: masse_cum(iip1,jjp1,llm) … … 308 306 ! ---------------------------- 309 307 310 ! énergie cinétique308 ! �nergie cin�tique 311 309 ucont(:,:,:)=0 312 310 CALL covcont(llm,ucov,vcov,ucont,vcont) 313 311 CALL enercin(vcov,ucov,vcont,ucont,ecin) 314 312 315 ! moment cin étique313 ! moment cin�tique 316 314 do l=1,llm 317 315 ang(:,:,l)=ucov(:,:,l)+constang(:,:) … … 373 371 enddo 374 372 375 ! flux m éridien373 ! flux m�ridien 376 374 ! ------------- 377 375 do iQ=1,nQ … … 440 438 441 439 !===================================================================== 442 ! Transport m éridien440 ! Transport m�ridien 443 441 !===================================================================== 444 442 -
LMDZ6/trunk/libf/dyn3d/check_isotopes.F90
r5214 r5267 4 4 ntiso, iH2O, nzone, tracers, isoName, itZonIso 5 5 USE iso_params_mod, ONLY: tnat_H216O, tnat_H217O, tnat_H218O, tnat_HDO, tnat_HTO 6 #ifdef CPP_IOIPSL7 6 USE ioipsl, ONLY: getin 8 #else9 USE ioipsl_getincom, ONLY: getin10 #endif11 7 IMPLICIT NONE 12 8 include "dimensions.h" -
LMDZ6/trunk/libf/dyn3d/conf_gcm.F90
r4996 r5267 5 5 6 6 USE control_mod 7 #ifdef CPP_IOIPSL8 7 use IOIPSL 9 #else10 ! if not using IOIPSL, we still need to use (a local version of) getin11 use ioipsl_getincom12 #endif13 8 USE infotrac, ONLY : type_trac 14 9 use assert_m, only: assert -
LMDZ6/trunk/libf/dyn3d/dynetat0.F90
r5252 r5267 19 19 USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn, start_time 20 20 USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0 21 #ifdef CPP_IOIPSL22 21 USE IOIPSL, ONLY: getin 23 #else24 USE ioipsl_getincom, ONLY: getin25 #endif26 22 USE iso_params_mod ! tnat_* and alpha_ideal_* 27 23 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_REPROBUS -
LMDZ6/trunk/libf/dyn3d/dynredem.F90
r5084 r5267 4 4 ! Write the NetCDF restart file (initialization). 5 5 !------------------------------------------------------------------------------- 6 #ifdef CPP_IOIPSL7 6 USE IOIPSL 8 #endif9 7 USE strings_mod, ONLY: maxlen 10 8 USE infotrac, ONLY: nqtot, tracers … … 46 44 !=============================================================================== 47 45 modname='dynredem0'; fil=fichnom 48 #ifdef CPP_IOIPSL49 46 CALL ymds2ju(annee_ref, 1, iday_end, 0.0, zjulian) 50 47 CALL ju2ymds(zjulian, yyears0, mmois0, jjour0, hours) 51 #else 52 ! set yyears0, mmois0, jjour0 to 0,1,1 (hours is not used) 53 yyears0=0 54 mmois0=1 55 jjour0=1 56 #endif 48 57 49 58 50 tab_cntrl(:) = 0. -
LMDZ6/trunk/libf/dyn3d/fluxstokenc.F90
r5246 r5267 4 4 SUBROUTINE fluxstokenc(pbaru,pbarv,masse,teta,phi,phis, & 5 5 time_step,itau ) 6 #ifdef CPP_IOIPSL7 6 ! This routine is designed to work with ioipsl 8 7 … … 162 161 ENDIF ! if iadvtr.EQ.istdyn 163 162 164 #else 165 write(lunout,*) & 166 'fluxstokenc: Needs IOIPSL to function' 167 #endif 168 ! of #ifdef CPP_IOIPSL 163 164 169 165 RETURN 170 166 END SUBROUTINE fluxstokenc -
LMDZ6/trunk/libf/dyn3d/friction.F90
r5246 r5267 6 6 7 7 USE control_mod 8 #ifdef CPP_IOIPSL9 8 USE IOIPSL 10 #else 11 ! if not using IOIPSL, we still need to use (a local version of) getin 12 USE ioipsl_getincom 13 #endif 9 14 10 USE comconst_mod, ONLY: pi 15 11 IMPLICIT NONE -
LMDZ6/trunk/libf/dyn3d/gcm.F90
r5250 r5267 6 6 PROGRAM gcm 7 7 8 #ifdef CPP_IOIPSL9 8 USE IOIPSL 10 #else 11 ! if not using IOIPSL, we still need to use (a local version of) getin 12 USE ioipsl_getincom 13 #endif 9 14 10 15 11 … … 173 169 ! calend = 'earth_365d' 174 170 175 #ifdef CPP_IOIPSL176 171 if (calend == 'earth_360d') then 177 172 call ioconf_calendar('360_day') … … 187 182 call abort_gcm(modname,abort_message,1) 188 183 endif 189 #endif 184 190 185 !----------------------------------------------------------------------- 191 186 ! … … 325 320 ! endif 326 321 327 #ifdef CPP_IOIPSL328 322 mois = 1 329 323 heure = 0. … … 340 334 write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure' 341 335 write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure 342 #else 343 ! Ehouarn: we still need to define JD_ref and JH_ref 344 ! and since we don't know how many days there are in a year 345 ! we set JD_ref to 0 (this should be improved ...) 346 jD_ref=0 347 jH_ref=0 348 #endif 336 349 337 350 338 … … 391 379 300 FORMAT('1'/,15x,'run du jour',i7,2x,'au jour',i7//) 392 380 393 #ifdef CPP_IOIPSL394 381 call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure) 395 382 write (lunout,301)jour, mois, an … … 398 385 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) 399 386 302 FORMAT('1'/,15x,' au ', i2,'/',i2,'/',i4) 400 #endif 387 401 388 402 389 !----------------------------------------------------------------------- … … 423 410 ecripar = .TRUE. 424 411 425 #ifdef CPP_IOIPSL426 412 time_step = zdtvr 427 413 if (ok_dyn_ins) then 428 414 ! initialize output file for instantaneous outputs 429 415 ! t_ops = iecri * daysec ! do operations every t_ops 430 t_ops =((1.0*iecri)/day_step) * daysec 416 t_ops =((1.0*iecri)/day_step) * daysec 431 417 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 432 418 CALL inithist(day_ref,annee_ref,time_step, & … … 434 420 endif 435 421 436 IF (ok_dyn_ave) THEN 422 IF (ok_dyn_ave) THEN 437 423 ! initialize output file for averaged outputs 438 424 t_ops = iperiod * time_step ! do operations every t_ops … … 442 428 END IF 443 429 dtav = iperiod*dtvr/daysec 444 #endif 445 ! #endif of #ifdef CPP_IOIPSL 430 446 431 447 432 ! Choix des frequences de stokage pour le offline -
LMDZ6/trunk/libf/dyn3d/getparam.F90
r2094 r5267 3 3 ! 4 4 MODULE getparam 5 #ifdef CPP_IOIPSL6 5 USE IOIPSL 7 #else 8 ! if not using IOIPSL, we still need to use (a local version of) getin 9 USE ioipsl_getincom 10 #endif 6 11 7 12 8 INTERFACE getpar -
LMDZ6/trunk/libf/dyn3d/iniacademic.F90
r5214 r5267 9 9 use exner_hyb_m, only: exner_hyb 10 10 use exner_milieu_m, only: exner_milieu 11 #ifdef CPP_IOIPSL12 11 USE IOIPSL, ONLY: getin 13 #else 14 ! if not using IOIPSL, we still need to use (a local version of) getin 15 USE ioipsl_getincom, ONLY: getin 16 #endif 12 17 13 USE Write_Field 18 14 USE comconst_mod, ONLY: cpp, kappa, g, daysec, dtvr, pi, im, jm -
LMDZ6/trunk/libf/dyn3d/leapfrog.F90
r5250 r5267 8 8 9 9 !IM : pour sortir les param. du modele dans un fis. netcdf 110106 10 #ifdef CPP_IOIPSL11 10 use IOIPSL 12 #endif13 11 USE infotrac, ONLY: nqtot, isoCheck 14 12 USE guide_mod, ONLY : guide_main … … 241 239 call check_isotopes_seq(q,ip1jmp1,'leapfrog 321') 242 240 243 #ifdef CPP_IOIPSL244 241 if (ok_guide) then 245 242 call guide_main(itau,ucov,vcov,teta,q,masse,ps) 246 243 endif 247 #endif 244 248 245 249 246 … … 355 352 !maf stokage du flux de masse pour traceurs OFF-LINE 356 353 357 #ifdef CPP_IOIPSL358 354 CALL fluxstokenc(pbaru,pbarv,masse,teta,phi,phis, & 359 355 dtvr, itau) 360 #endif 356 361 357 362 358 … … 451 447 ENDIF ! of IF (ip_ebil_dyn.ge.1 ) 452 448 !-jld 453 #ifdef CPP_IOIPSL 449 454 450 !IM decommenter les 6 lignes suivantes pour sortir quelques parametres dynamiques de LMDZ 455 451 !IM uncomment next 6 lines to get some parameters for LMDZ dynamics … … 460 456 ! 461 457 !#include "write_paramLMDZ_dyn.h" 462 ! 463 #endif 464 ! #endif of #ifdef CPP_IOIPSL 458 465 459 IF (CPPKEY_PHYS) THEN 466 460 CALL calfis( lafin , jD_cur, jH_cur, & … … 675 669 676 670 IF (ok_dynzon) THEN 677 #ifdef CPP_IOIPSL678 671 CALL bilan_dyn(2,dtvr*iperiod,dtvr*day_step*periodav, & 679 672 ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q) 680 #endif 673 681 674 END IF 682 675 IF (ok_dyn_ave) THEN 683 #ifdef CPP_IOIPSL684 676 CALL writedynav(itau,vcov, & 685 677 ucov,teta,pk,phi,q,masse,ps,phis) 686 #endif 678 687 679 ENDIF 688 680 … … 704 696 vnat(:,l)=vcov(:,l)/cv(:) 705 697 enddo 706 #ifdef CPP_IOIPSL707 698 if (ok_dyn_ins) then 708 699 ! write(lunout,*) "leapfrog: call writehist, itau=",itau … … 714 705 ! call WriteField('masse',reshape(masse,(/iip1,jmp1,llm/))) 715 706 endif ! of if (ok_dyn_ins) 716 #endif 707 717 708 ! For some Grads outputs of fields 718 709 if (output_grads_dyn) then … … 812 803 813 804 IF (ok_dynzon) THEN 814 #ifdef CPP_IOIPSL815 805 CALL bilan_dyn(2,dtvr*iperiod,dtvr*day_step*periodav, & 816 806 ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q) 817 #endif 807 818 808 ENDIF 819 809 IF (ok_dyn_ave) THEN 820 #ifdef CPP_IOIPSL821 810 CALL writedynav(itau,vcov, & 822 811 ucov,teta,pk,phi,q,masse,ps,phis) 823 #endif 812 824 813 ENDIF 825 814 … … 834 823 vnat(:,l)=vcov(:,l)/cv(:) 835 824 enddo 836 #ifdef CPP_IOIPSL837 825 if (ok_dyn_ins) then 838 826 ! write(lunout,*) "leapfrog: call writehist (b)", … … 840 828 CALL writehist(itau,vcov,ucov,teta,phi,q,masse,ps,phis) 841 829 endif ! of if (ok_dyn_ins) 842 #endif 830 843 831 ! For some Grads outputs 844 832 if (output_grads_dyn) then
Note: See TracChangeset
for help on using the changeset viewer.