Changeset 131
- Timestamp:
- 02/08/13 12:09:35 (11 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/advect_tracer.f90
r110 r131 37 37 USE advect_mod 38 38 USE disvert_mod 39 USE mpipara 39 40 IMPLICIT NONE 40 41 TYPE(t_field),POINTER :: f_ps(:) … … 135 136 136 137 IF ( iadvtr == iapp_tracvl ) THEN 137 PRINT *, 'Advection scheme'138 IF (is_mpi_root) PRINT *, 'Advection scheme' 138 139 bigt = dt*iapp_tracvl 139 140 DO ind=1,ndomain -
codes/icosagcm/trunk/src/caldyn_gcm.f90
r129 r131 17 17 USE icosa 18 18 USE exner_mod 19 USE mpipara 19 20 IMPLICIT NONE 20 21 CHARACTER(len=255) :: def … … 28 29 caldyn_conserv=2 29 30 CASE DEFAULT 30 PRINT*,'Bad selector for variable caldyn_conserv : <', TRIM(def),'> options are <energy>, <enstrophy>'31 IF (is_mpi_root) PRINT *,'Bad selector for variable caldyn_conserv : <', TRIM(def),'> options are <energy>, <enstrophy>' 31 32 STOP 32 33 END SELECT 33 PRINT *, 'caldyn_conserv=',def34 IF (is_mpi_root) PRINT *, 'caldyn_conserv=',def 34 35 35 36 def='direct' … … 41 42 caldyn_exner=2 42 43 CASE DEFAULT 43 PRINT*,'Bad selector for variable caldyn_exner : <', TRIM(def),'> options are <lmdz>, <direct>'44 IF (is_mpi_root) PRINT*,'Bad selector for variable caldyn_exner : <', TRIM(def),'> options are <lmdz>, <direct>' 44 45 STOP 45 46 END SELECT … … 53 54 caldyn_hydrostat=2 54 55 CASE DEFAULT 55 PRINT*,'Bad selector for variable caldyn_hydrostat : <', TRIM(def),'> options are <lmdz>, <direct>'56 IF (is_mpi_root) PRINT*,'Bad selector for variable caldyn_hydrostat : <', TRIM(def),'> options are <lmdz>, <direct>' 56 57 STOP 57 58 END SELECT … … 85 86 USE kinetic_mod 86 87 USE theta2theta_rhodz_mod 88 USE mpipara 87 89 IMPLICIT NONE 88 90 LOGICAL,INTENT(IN) :: write_out … … 169 171 170 172 IF (write_out) THEN 171 PRINT *,'CALL write_output_fields'173 IF (is_mpi_root) PRINT *,'CALL write_output_fields' 172 174 CALL write_output_fields(f_ps, f_phis, f_dps, f_u, f_theta_rhodz, f_q, & 173 175 f_buf_i, f_buf_v, f_buf_u3d, f_buf_ulon, f_buf_ulat, f_buf_s, f_buf_p) … … 645 647 SUBROUTINE check_mass_conservation(f_ps,f_dps) 646 648 USE icosa 649 USE mpipara 647 650 IMPLICIT NONE 648 651 TYPE(t_field),POINTER :: f_ps(:) … … 677 680 678 681 ENDDO 679 PRINT*, "mass_tot ", mass_tot," dmass_tot ",dmass_tot682 IF (is_mpi_root) PRINT*, "mass_tot ", mass_tot," dmass_tot ",dmass_tot 680 683 681 684 END SUBROUTINE check_mass_conservation -
codes/icosagcm/trunk/src/dissip_gcm.f90
r129 r131 84 84 CASE('none') 85 85 rayleigh_friction_type=0 86 PRINT *, 'No Rayleigh friction'86 IF (is_mpi_root) PRINT *, 'No Rayleigh friction' 87 87 CASE('dcmip2_schaer_noshear') 88 88 rayleigh_friction_type=1 89 89 rayleigh_shear=0 90 PRINT *, 'Rayleigh friction : Schaer-like mountain without shear DCMIP2.1'90 IF (is_mpi_root) PRINT *, 'Rayleigh friction : Schaer-like mountain without shear DCMIP2.1' 91 91 CASE('dcmip2_schaer_shear') 92 92 rayleigh_shear=1 93 93 rayleigh_friction_type=2 94 PRINT *, 'Rayleigh friction : Schaer-like mountain with shear DCMIP2.2'94 IF (is_mpi_root) PRINT *, 'Rayleigh friction : Schaer-like mountain with shear DCMIP2.2' 95 95 CASE DEFAULT 96 PRINT *, 'Bad selector : rayleigh_friction_type =', TRIM(rayleigh_friction_key), ' in dissip_gcm.f90/init_dissip'96 IF (is_mpi_root) PRINT *, 'Bad selector : rayleigh_friction_type =', TRIM(rayleigh_friction_key), ' in dissip_gcm.f90/init_dissip' 97 97 STOP 98 98 END SELECT … … 103 103 rayleigh_tau = rayleigh_tau / scale_factor 104 104 IF(rayleigh_tau<=0) THEN 105 PRINT *, 'Forbidden : negative value for rayleigh_friction_tau =',rayleigh_tau105 IF (is_mpi_root) PRINT *, 'Forbidden : negative value for rayleigh_friction_tau =',rayleigh_tau 106 106 STOP 107 107 END IF … … 246 246 u=du/dumax 247 247 ENDDO 248 PRINT *,"gradiv : it :",it ,": dumax",dumax248 IF (is_mpi_root) PRINT *,"gradiv : it :",it ,": dumax",dumax 249 249 250 250 ENDDO 251 PRINT *,"gradiv : dumax",dumax252 PRINT *, 'mean T-cell edge size (km)', 1.45*radius/iim_glo/1000., &253 'effective T-cell half-edge size (km)', dumax**(-.5/nitergdiv)/1000254 PRINT *, 'Max. time step assuming c=340 m/s and Courant number=2.8 :', &255 2.8/340.*dumax**(-.5/nitergdiv)251 IF (is_mpi_root) PRINT *,"gradiv : dumax",dumax 252 IF (is_mpi_root) PRINT *, 'mean T-cell edge size (km)', 1.45*radius/iim_glo/1000., & 253 'effective T-cell half-edge size (km)', dumax**(-.5/nitergdiv)/1000 254 IF (is_mpi_root) PRINT *, 'Max. time step assuming c=340 m/s and Courant number=2.8 :', & 255 2.8/340.*dumax**(-.5/nitergdiv) 256 256 257 257 cgraddiv=dumax**(-1./nitergdiv) 258 PRINT *,"cgraddiv : ",cgraddiv258 IF (is_mpi_root) PRINT *,"cgraddiv : ",cgraddiv 259 259 260 260 DO ind=1,ndomain … … 324 324 ENDDO 325 325 326 PRINT *,"gradrot : it :",it ,": dumax",dumax326 IF (is_mpi_root) PRINT *,"gradrot : it :",it ,": dumax",dumax 327 327 328 328 ENDDO 329 PRINT *,"gradrot : dumax",dumax329 IF (is_mpi_root) PRINT *,"gradrot : dumax",dumax 330 330 331 331 cgradrot=dumax**(-1./nitergrot) 332 PRINT *,"cgradrot : ",cgradrot332 IF (is_mpi_root) PRINT *,"cgradrot : ",cgradrot 333 333 334 334 … … 384 384 dthetamax=dthetamax1 385 385 ENDIF 386 PRINT *,"divgrad : it :",it ,": dthetamax",dthetamax386 IF (is_mpi_root) PRINT *,"divgrad : it :",it ,": dthetamax",dthetamax 387 387 388 388 DO ind=1,ndomain … … 396 396 397 397 ! CALL writefield("divgrad",f_dtheta) 398 PRINT *,"divgrad : divgrad",dthetamax398 IF (is_mpi_root) PRINT *,"divgrad : divgrad",dthetamax 399 399 400 400 cdivgrad=dthetamax**(-1./niterdivgrad) 401 PRINT *,"cdivgrad : ",cdivgrad401 IF (is_mpi_root) PRINT *,"cdivgrad : ",cdivgrad 402 402 403 403 -
codes/icosagcm/trunk/src/disvert.f90
r116 r131 14 14 USE disvert_dcmip200_mod, ONLY: ap_dcmip200=>ap, bp_dcmip200=>bp, presnivs_dcmip200=>presnivs, init_disvert_dcmip200=>init_disvert 15 15 USE icosa 16 USE mpipara 16 17 IMPLICIT NONE 17 18 CHARACTER(LEN=255) :: disvert_type = 'std' … … 56 57 57 58 CASE default 58 PRINT*,'Bad selector for variable disvert : <', TRIM(disvert_type),"> options are <std>, <ncar>, <ncarl30>"59 IF (is_mpi_root) PRINT*,'Bad selector for variable disvert : <', TRIM(disvert_type),"> options are <std>, <ncar>, <ncarl30>" 59 60 STOP 60 61 … … 107 108 status = NF90_ENDDEF(ncid) 108 109 109 PRINT*,ap110 PRINT*,bp111 110 status=NF90_PUT_VAR(ncid,ilevid, ap(:)+bp(:)*Preff) 112 111 -
codes/icosagcm/trunk/src/disvert_dcmip200.f90
r116 r131 11 11 SUBROUTINE init_disvert 12 12 USE icosa 13 USE mpipara 13 14 IMPLICIT NONE 14 15 … … 23 24 SUBROUTINE disvert(ap,bp,presnivs) 24 25 USE icosa 26 USE mpipara 25 27 IMPLICIT NONE 26 28 REAL(rstd),INTENT(OUT) :: ap(:) … … 56 58 ENDDO 57 59 58 PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3'59 PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx60 PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T060 IF (is_mpi_root) PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3' 61 IF (is_mpi_root) PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx 62 IF (is_mpi_root) PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T0 61 63 62 64 END SUBROUTINE disvert -
codes/icosagcm/trunk/src/disvert_dcmip3.f90
r115 r131 23 23 SUBROUTINE disvert(ap,bp,presnivs) 24 24 USE icosa 25 USE mpipara 25 26 IMPLICIT NONE 26 27 REAL(rstd),INTENT(OUT) :: ap(:) … … 40 41 41 42 eta_top = (GG/Teq*exp(-N**2*llm*ncar_dz/g)+1-GG/Teq)**(1./kappa) 42 PRINT *,'eta_top ->', eta_top43 IF (is_mpi_root) PRINT *,'eta_top ->', eta_top 43 44 do l = 1,llm+1 44 45 eta = (GG/Teq*exp(-N**2*(l-1)*ncar_dz/g)+1-GG/Teq)**(1./kappa) 45 PRINT *,'eta ->', eta46 IF (is_mpi_root) PRINT *,'eta ->', eta 46 47 bp(l) = ((eta - eta_top)/(1 - eta_top))**cindx 47 48 ap(l) = preff * ( eta - bp(l) ) 48 49 ENDDO 49 PRINT *,'eta ->', eta50 IF (is_mpi_root) PRINT *,'eta ->', eta 50 51 bp(1)=1. 51 52 ap(1)=0. … … 56 57 ENDDO 57 58 58 PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3'59 PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx60 PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T059 IF (is_mpi_root) PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3' 60 IF (is_mpi_root) PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx 61 IF (is_mpi_root) PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T0 61 62 62 63 END SUBROUTINE disvert -
codes/icosagcm/trunk/src/disvert_ncar.f90
r25 r131 23 23 SUBROUTINE disvert(ap,bp,presnivs) 24 24 USE icosa 25 USE mpipara 25 26 IMPLICIT NONE 26 27 REAL(rstd),INTENT(OUT) :: ap(:) … … 57 58 ENDDO 58 59 59 PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3'60 PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx60 IF (is_mpi_root) PRINT *, 'Vertical placement of model levels according to DCMIP Appendix E.3' 61 IF (is_mpi_root) PRINT *, 'Parameters : ncar_dz=', ncar_dz, ' ncar_p0=',ncar_p0, ' ncar_disvert_c=',cindx 61 62 PRINT *, 'Isothermal amtosphere with ncar_T0=',ncar_T0 62 63 -
codes/icosagcm/trunk/src/disvert_ncarl30.f90
r66 r131 9 9 SUBROUTINE init_disvert 10 10 USE icosa 11 USE mpipara 11 12 IMPLICIT NONE 12 13 … … 23 24 SUBROUTINE disvert(ap,bp,presnivs) 24 25 USE icosa 26 USE mpipara 25 27 IMPLICIT NONE 26 28 REAL(rstd),INTENT(OUT) :: ap(:) … … 97 99 presnivs(l) = 0.5 *( ap(l)+bp(l)*preff + ap(l+1)+bp(l+1)*preff ) 98 100 99 PRINT*, 'PRESNIVS(',l,')=',presnivs(l),' Z ~ ',log(preff/presnivs(l))*8., &100 ' DZ ~ ',8.*log((ap(l)+bp(l)*preff)/ max(ap(l+1)+bp(l+1)*preff,1.e-10))101 IF (is_mpi_root) PRINT*, 'PRESNIVS(',l,')=',presnivs(l),' Z ~ ',log(preff/presnivs(l))*8., & 102 ' DZ ~ ',8.*log((ap(l)+bp(l)*preff)/ max(ap(l+1)+bp(l+1)*preff,1.e-10)) 101 103 ENDDO 102 104 -
codes/icosagcm/trunk/src/disvert_std.f90
r19 r131 22 22 SUBROUTINE disvert(ap,bp,presnivs) 23 23 USE icosa 24 USE mpipara 24 25 IMPLICIT NONE 25 26 REAL(rstd),INTENT(OUT) :: ap(:) … … 56 57 ap(llm+1) = pa * ( sig(llm+1) - bp(llm+1) ) 57 58 58 PRINT*,'ap',ap59 PRINT*,'bp',bp59 IF (is_mpi_root) PRINT*,'ap',ap 60 IF (is_mpi_root) PRINT*,'bp',bp 60 61 61 PRINT*, 'Niveaux de pressions approximatifs aux centres des'62 PRINT*, 'couches calcules pour une pression de surface =', preff63 PRINT*, 'et altitudes equivalentes pour une hauteur d echelle de'64 PRINT*, '8km'62 IF (is_mpi_root) PRINT*, 'Niveaux de pressions approximatifs aux centres des' 63 IF (is_mpi_root) PRINT*, 'couches calcules pour une pression de surface =', preff 64 IF (is_mpi_root) PRINT*, 'et altitudes equivalentes pour une hauteur d echelle de' 65 IF (is_mpi_root) PRINT*, '8km' 65 66 66 67 DO l = 1, llm 67 68 presnivs(l) = 0.5 *( ap(l)+bp(l)*preff + ap(l+1)+bp(l+1)*preff ) 68 69 69 PRINT*, 'PRESNIVS(',l,')=',presnivs(l),' Z ~ ',log(preff/presnivs(l))*8., &70 ' DZ ~ ',8.*log((ap(l)+bp(l)*preff)/ max(ap(l+1)+bp(l+1)*preff,1.e-10))70 IF (is_mpi_root) PRINT*, 'PRESNIVS(',l,')=',presnivs(l),' Z ~ ',log(preff/presnivs(l))*8., & 71 ' DZ ~ ',8.*log((ap(l)+bp(l)*preff)/ max(ap(l+1)+bp(l+1)*preff,1.e-10)) 71 72 ENDDO 72 73 -
codes/icosagcm/trunk/src/earth_const.f90
r58 r131 30 30 radius=radius/scale_factor 31 31 omega=omega*scale_factor 32 PRINT *,"radius = ",radius33 32 34 33 END SUBROUTINE init_earth_const -
codes/icosagcm/trunk/src/icosa_gcm.f90
r97 r131 75 75 76 76 77 PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius)77 IF (is_mpi_root) PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius) 78 78 79 79 80 80 CALL WriteField("Ai",geom%Ai) 81 81 ! CALL WriteField("sum_ne",sum_ne) 82 CALL write_apbp82 IF (is_mpi_root) CALL write_apbp 83 83 CALL init_time 84 84 CALL timeloop -
codes/icosagcm/trunk/src/metric.f90
r21 r131 124 124 CALL dist_cart(vertex_glo(3,1,1)%xyz,vertex_glo(4,1,1)%xyz,d3) 125 125 CALL div_arc(vertex_glo(1,1,1)%xyz,vertex_glo(3,1,1)%xyz,0.5,p1) 126 ! CALL div_arc(vertex_glo(2,1,1)%xyz,vertex_glo(1,3,1)%xyz,1./3,p1) 127 ! CALL div_arc(vertex_glo(1,2,1)%xyz,vertex_glo(3,1,1)%xyz,1./3,p2) 128 ! CALL div_arc(vertex_glo(2,2,1)%xyz,vertex_glo(1,1,1)%xyz,1./3,p3) 129 ! PRINT *, "dist",d1 130 ! PRINT *, "dist",d2 131 ! PRINT *, "dist",d3 132 ! PRINT *,"dist",vertex_glo(2,1,1)%xyz 133 ! PRINT *,"dist",p1/sqrt(sum(p1**2)) 126 134 127 CALL circumcenter(vertex_glo(1,1,1)%xyz,vertex_glo(2,1,1)%xyz,vertex_glo(1,2,1)%xyz,p1) 135 128 ! CALL Centroide(vertex_glo(1,2,1)%xyz,vertex_glo(2,1,1)%xyz,vertex_glo(1,1,1)%xyz,p1) … … 138 131 CALL dist_cart(vertex_glo(2,1,1)%xyz,p1,d2) 139 132 CALL dist_cart(vertex_glo(1,2,1)%xyz,p1,d3) 140 ! PRINT *, "dist",d1141 ! PRINT *, "dist",d2142 ! PRINT *, "dist",d3143 133 144 134 END SUBROUTINE compute_face … … 337 327 338 328 ind=vertex_glo(i,j,nf)%ind 339 IF (ind==0) THEN340 PRINT *,"ind=0",i,j,nf341 ENDIF342 329 delta=MOD(vertex_glo(i,j,nf)%delta+neighbour+6,6) 343 330 ind2=cell_glo(ind)%neighbour(delta) … … 758 745 cell_glo(ind)%neighbour(3)=cell_glo(ind)%neighbour(2) 759 746 760 761 ind=vertex_glo(1,jjm_glo,1)%ind762 DO i=0,5763 ind2=cell_glo(ind)%neighbour(i)764 IF (ind2>0) PRINT *,"neighbour",i,cell_glo(ind2)%assign_face,cell_glo(ind2)%assign_i,cell_glo(ind2)%assign_j765 ENDDO766 767 747 768 748 !! assignation des delta -
codes/icosagcm/trunk/src/time.f90
r98 r131 22 22 USE earth_const 23 23 USE ioipsl 24 USE mpipara 24 25 IMPLICIT NONE 25 26 REAL(rstd) :: run_length … … 34 35 CALL getin('run_length',run_length) 35 36 itaumax=run_length/dt 36 PRINT *,'itaumax=',itaumax37 IF (is_mpi_root) PRINT *,'itaumax=',itaumax 37 38 dt=dt/scale_factor 38 39 … … 41 42 write_period=write_period/scale_factor 42 43 itau_out=FLOOR(.5+write_period/dt) 43 PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out44 IF (is_mpi_root) PRINT *, 'Output frequency (scaled) set to ',write_period, ' : itau_out = ',itau_out 44 45 45 46 CALL create_time_counter_header … … 51 52 USE prec 52 53 USE ioipsl 54 USE mpipara 53 55 IMPLICIT NONE 54 56 INTEGER :: status … … 57 59 CHARACTER(LEN=255) :: time_frequency 58 60 59 status = NF90_CREATE('time_counter.nc', NF90_CLOBBER, ncid) 60 status = NF90_DEF_DIM(ncid,'time_counter',NF90_UNLIMITED,timeid) 61 status = NF90_DEF_VAR(ncid,'time_counter',NF90_DOUBLE,(/ timeid /),time_counter_id) 62 status = NF90_PUT_ATT(ncid,time_counter_id,"long_name","time") 63 status = NF90_PUT_ATT(ncid,time_counter_id,"units","seconds since 2000-01-01 00:00:00") 64 status = NF90_PUT_ATT(ncid,time_counter_id,"calendar","noleap") 65 status = NF90_DEF_VAR(ncid,'mdt',NF90_DOUBLE,varid=dtid) 61 IF (is_mpi_root) THEN 62 status = NF90_CREATE('time_counter.nc', NF90_CLOBBER, ncid) 63 status = NF90_DEF_DIM(ncid,'time_counter',NF90_UNLIMITED,timeid) 64 status = NF90_DEF_VAR(ncid,'time_counter',NF90_DOUBLE,(/ timeid /),time_counter_id) 65 status = NF90_PUT_ATT(ncid,time_counter_id,"long_name","time") 66 status = NF90_PUT_ATT(ncid,time_counter_id,"units","seconds since 2000-01-01 00:00:00") 67 status = NF90_PUT_ATT(ncid,time_counter_id,"calendar","noleap") 68 status = NF90_DEF_VAR(ncid,'mdt',NF90_DOUBLE,varid=dtid) 66 69 67 WRITE(time_frequency,*) write_period68 PRINT*,TRIM(time_frequency)69 status = NF90_PUT_ATT(ncid,NF90_GLOBAL,"time_frequency",TRIM(time_frequency)//"s")70 WRITE(time_frequency,*) write_period 71 PRINT*,TRIM(time_frequency) 72 status = NF90_PUT_ATT(ncid,NF90_GLOBAL,"time_frequency",TRIM(time_frequency)//"s") 70 73 71 status = NF90_ENDDEF(ncid)74 status = NF90_ENDDEF(ncid) 72 75 73 CALL getin("dt",dt) 74 status=NF90_PUT_VAR(ncid,dtid, dt) 76 CALL getin("dt",dt) 77 status=NF90_PUT_VAR(ncid,dtid, dt) 78 ENDIF 75 79 it=0 76 80 … … 79 83 SUBROUTINE update_time_counter(time) 80 84 USE netcdf_mod 85 USE mpipara 81 86 USE prec 82 87 IMPLICIT NONE … … 87 92 88 93 it=it+1 89 status=NF90_PUT_VAR(ncid,time_counter_id,time_array,start=(/ it /),count=(/ 1 /)) 90 status=NF90_SYNC(ncid) 94 IF (is_mpi_root) THEN 95 status=NF90_PUT_VAR(ncid,time_counter_id,time_array,start=(/ it /),count=(/ 1 /)) 96 status=NF90_SYNC(ncid) 97 ENDIF 98 91 99 END SUBROUTINE update_time_counter 92 100 93 101 SUBROUTINE close_time_counter 94 102 USE netcdf_mod 103 USE mpipara 95 104 IMPLICIT NONE 96 105 INTEGER :: status 97 106 98 status=NF90_CLOSE(ncid)107 IF (is_mpi_root) status=NF90_CLOSE(ncid) 99 108 100 109 END SUBROUTINE close_time_counter -
codes/icosagcm/trunk/src/timeloop_gcm.f90
r130 r131 11 11 USE advect_tracer_mod 12 12 USE physics_mod 13 USE mpipara 13 14 14 15 IMPLICIT NONE … … 120 121 DO it=0,itaumax 121 122 122 PRINT *,"It No :",It," t :",dt*It123 IF (is_mpi_root) PRINT *,"It No :",It," t :",dt*It 123 124 IF (mod(it,itau_out)==0 ) THEN 124 125 CALL writefield("q",f_q) … … 157 158 END DO 158 159 159 !CALL dissip(f_u,f_du,f_ps,f_phis, f_theta_rhodz,f_dtheta_rhodz)160 !CALL euler_scheme(.FALSE.)160 CALL dissip(f_u,f_du,f_ps,f_phis, f_theta_rhodz,f_dtheta_rhodz) 161 CALL euler_scheme(.FALSE.) 161 162 162 163 ! CALL advect_tracer(f_ps,f_u,f_q) … … 187 188 IMPLICIT NONE 188 189 INTEGER :: ind, stage 189 ! REAL(rstd), DIMENSION(4), PARAMETER :: coef = (/ 1., 4./3., 2., 4. /)190 190 REAL(rstd), DIMENSION(4), PARAMETER :: coef = (/ .25, 1./3., .5, 1. /) 191 191 REAL(rstd) :: tau
Note: See TracChangeset
for help on using the changeset viewer.